forked from rpms/kernel
		
	fixes for Marvell a37xx EspressoBin, latest RPi3+ patches, rebase fixes for lan78xx
This commit is contained in:
		
							parent
							
								
									fa7ce1c7b8
								
							
						
					
					
						commit
						215fbf0212
					
				| @ -1,79 +1,452 @@ | |||||||
| From 6ed88d188a8240ba44da6578eab7d17e036d0e61 Mon Sep 17 00:00:00 2001 | From bce4fe9fa48df0cbbe842e80d9a520f7265b4cd4 Mon Sep 17 00:00:00 2001 | ||||||
| From: Phil Elwell <phil@raspberrypi.org> | From: Dave Stevenson <dave.stevenson@raspberrypi.org> | ||||||
| Date: Tue, 17 Oct 2017 15:04:29 +0100 | Date: Wed, 4 Apr 2018 16:34:24 +0100 | ||||||
| Subject: [PATCH] lan78xx: Enable LEDs if no valid EEPROM or OTP | Subject: [PATCH 5/9] net: lan78xx: Allow for VLAN headers in timeout. | ||||||
| 
 | 
 | ||||||
| For applications of the LAN78xx that don't have valid programmed | The frame abort timeout being set by lan78xx_set_rx_max_frame_length | ||||||
| EEPROMs or OTPs, enabling both LEDs by default seems reasonable. | didn't account for any VLAN headers, resulting in very low | ||||||
|  | throughput if used with tagged VLANs. | ||||||
|  | Use VLAN_ETH_HLEN instead of ETH_HLEN to correct for this. | ||||||
| 
 | 
 | ||||||
| Signed-off-by: Phil Elwell <phil@raspberrypi.org> | See https://github.com/raspberrypi/linux/issues/2458 | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org> | ||||||
| ---
 | ---
 | ||||||
|  drivers/net/usb/lan78xx.c | 6 ++++++ |  drivers/net/usb/lan78xx.c | 5 +++-- | ||||||
|  1 file changed, 6 insertions(+) |  1 file changed, 3 insertions(+), 2 deletions(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
 | diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
 | ||||||
| index a21039852f8d..cd20ce4ed87d 100644
 | index 0867f7275852..5b46998a6dce 100644
 | ||||||
| --- a/drivers/net/usb/lan78xx.c
 | --- a/drivers/net/usb/lan78xx.c
 | ||||||
| +++ b/drivers/net/usb/lan78xx.c
 | +++ b/drivers/net/usb/lan78xx.c
 | ||||||
| @@ -2414,6 +2414,12 @@ static int lan78xx_reset(struct lan78xx_net *dev)
 | @@ -2178,7 +2178,7 @@ static int lan78xx_change_mtu(struct net_device *netdev, int new_mtu)
 | ||||||
|  |  	if ((ll_mtu % dev->maxpacket) == 0) | ||||||
|  |  		return -EDOM; | ||||||
|   |   | ||||||
|  	ret = lan78xx_read_reg(dev, HW_CFG, &buf); | -	ret = lan78xx_set_rx_max_frame_length(dev, new_mtu + ETH_HLEN);
 | ||||||
|  	buf |= HW_CFG_MEF_; | +	ret = lan78xx_set_rx_max_frame_length(dev, new_mtu + VLAN_ETH_HLEN);
 | ||||||
| +
 |  | ||||||
| +	/* If no valid EEPROM and no valid OTP, enable the LEDs by default */
 |  | ||||||
| +	if (lan78xx_read_eeprom(dev, 0, 0, NULL) &&
 |  | ||||||
| +	    lan78xx_read_otp(dev, 0, 0, NULL))
 |  | ||||||
| +	    buf |= HW_CFG_LED0_EN_ | HW_CFG_LED1_EN_;
 |  | ||||||
| +
 |  | ||||||
|  	ret = lan78xx_write_reg(dev, HW_CFG, buf); |  | ||||||
|   |   | ||||||
|  	ret = lan78xx_read_reg(dev, USB_CFG0, &buf); |  	netdev->mtu = new_mtu; | ||||||
| From 4a4710f3847cd087e150f83382dffd92e09d9914 Mon Sep 17 00:00:00 2001 |   | ||||||
|  | @@ -2467,7 +2467,8 @@ static int lan78xx_reset(struct lan78xx_net *dev)
 | ||||||
|  |  	buf |= FCT_TX_CTL_EN_; | ||||||
|  |  	ret = lan78xx_write_reg(dev, FCT_TX_CTL, buf); | ||||||
|  |   | ||||||
|  | -	ret = lan78xx_set_rx_max_frame_length(dev, dev->net->mtu + ETH_HLEN);
 | ||||||
|  | +	ret = lan78xx_set_rx_max_frame_length(dev,
 | ||||||
|  | +					      dev->net->mtu + VLAN_ETH_HLEN);
 | ||||||
|  |   | ||||||
|  |  	ret = lan78xx_read_reg(dev, MAC_RX, &buf); | ||||||
|  |  	buf |= MAC_RX_RXEN_; | ||||||
|  | -- 
 | ||||||
|  | 2.17.0 | ||||||
|  | 
 | ||||||
|  | From 6fecd97fd35e9c624d101495ca34c83b1cb23e3d Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Dave Stevenson <dave.stevenson@raspberrypi.org> | ||||||
|  | Date: Mon, 9 Apr 2018 14:31:54 +0100 | ||||||
|  | Subject: [PATCH 6/9] net: lan78xx: Request s/w csum check on VLAN tagged | ||||||
|  |  packets. | ||||||
|  | 
 | ||||||
|  | There appears to be some issue in the LAN78xx where the checksum | ||||||
|  | computed on a VLAN tagged packet is incorrect, or at least not | ||||||
|  | in the form that the kernel is after. This is most easily shown | ||||||
|  | by pinging a device via a VLAN tagged interface and it will dump | ||||||
|  | out the error message and stack trace from netdev_rx_csum_fault. | ||||||
|  | It has also been seen with standard TCP and UDP packets. | ||||||
|  | 
 | ||||||
|  | Until this is fully understood, request that the network stack | ||||||
|  | computes the checksum on packets signalled as having a VLAN tag | ||||||
|  | applied. | ||||||
|  | 
 | ||||||
|  | See https://github.com/raspberrypi/linux/issues/2458 | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org> | ||||||
|  | ---
 | ||||||
|  |  drivers/net/usb/lan78xx.c | 6 +++++- | ||||||
|  |  1 file changed, 5 insertions(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
 | ||||||
|  | index 5b46998a6dce..6b61bb21f2ae 100644
 | ||||||
|  | --- a/drivers/net/usb/lan78xx.c
 | ||||||
|  | +++ b/drivers/net/usb/lan78xx.c
 | ||||||
|  | @@ -2920,8 +2920,12 @@ static void lan78xx_rx_csum_offload(struct lan78xx_net *dev,
 | ||||||
|  |  				    struct sk_buff *skb, | ||||||
|  |  				    u32 rx_cmd_a, u32 rx_cmd_b) | ||||||
|  |  { | ||||||
|  | +	/* Checksum offload appears to be flawed if used with VLANs.
 | ||||||
|  | +	 * Elect for sw checksum check instead.
 | ||||||
|  | +	 */
 | ||||||
|  |  	if (!(dev->net->features & NETIF_F_RXCSUM) || | ||||||
|  | -	    unlikely(rx_cmd_a & RX_CMD_A_ICSM_)) {
 | ||||||
|  | +	    unlikely(rx_cmd_a & RX_CMD_A_ICSM_) ||
 | ||||||
|  | +	    (rx_cmd_a & RX_CMD_A_FVTG_)) {
 | ||||||
|  |  		skb->ip_summed = CHECKSUM_NONE; | ||||||
|  |  	} else { | ||||||
|  |  		skb->csum = ntohs((u16)(rx_cmd_b >> RX_CMD_B_CSUM_SHIFT_)); | ||||||
|  | -- 
 | ||||||
|  | 2.17.0 | ||||||
|  | 
 | ||||||
|  | From 7528d39c5d01383fadb17a84b9840f9f685d1e0b Mon Sep 17 00:00:00 2001 | ||||||
| From: Phil Elwell <phil@raspberrypi.org> | From: Phil Elwell <phil@raspberrypi.org> | ||||||
| Date: Sat, 17 Mar 2018 00:10:02 +0100 | Date: Thu, 19 Apr 2018 17:59:38 +0100 | ||||||
| Subject: [PATCH] lan78xx: Read MAC address from DT if present | Subject: [PATCH 7/9] lan78xx: Read MAC address from DT if present | ||||||
| 
 | 
 | ||||||
| There is a standard mechanism for locating and using a MAC address from | There is a standard mechanism for locating and using a MAC address from | ||||||
| the Device Tree. Use this facility in the lan78xx driver to support | the Device Tree. Use this facility in the lan78xx driver to support | ||||||
| applications without programmed EEPROM or OTP. | applications without programmed EEPROM or OTP. At the same time, | ||||||
|  | regularise the handling of the different address sources. | ||||||
| 
 | 
 | ||||||
| Signed-off-by: Phil Elwell <phil@raspberrypi.org> | Signed-off-by: Phil Elwell <phil@raspberrypi.org> | ||||||
| ---
 | ---
 | ||||||
|  drivers/net/usb/lan78xx.c | 10 ++++++++++ |  drivers/net/usb/lan78xx.c | 42 +++++++++++++++++++-------------------- | ||||||
|  1 file changed, 10 insertions(+) |  1 file changed, 20 insertions(+), 22 deletions(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
 | diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
 | ||||||
| index 60a604cc7647..a21039852f8d 100644
 | index 6b61bb21f2ae..6c38a74bb32d 100644
 | ||||||
| --- a/drivers/net/usb/lan78xx.c
 | --- a/drivers/net/usb/lan78xx.c
 | ||||||
| +++ b/drivers/net/usb/lan78xx.c
 | +++ b/drivers/net/usb/lan78xx.c
 | ||||||
| @@ -36,6 +36,7 @@
 | @@ -37,6 +37,7 @@
 | ||||||
|  #include <linux/irq.h> |  | ||||||
|  #include <linux/irqchip/chained_irq.h> |  #include <linux/irqchip/chained_irq.h> | ||||||
|  #include <linux/microchipphy.h> |  #include <linux/microchipphy.h> | ||||||
| +#include <linux/of_net.h>
 |  | ||||||
|  #include <linux/phy.h> |  #include <linux/phy.h> | ||||||
|  | +#include <linux/of_net.h>
 | ||||||
|  #include "lan78xx.h" |  #include "lan78xx.h" | ||||||
|   |   | ||||||
| @@ -1639,6 +1640,14 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev)
 |  #define DRIVER_AUTHOR	"WOOJUNG HUH <woojung.huh@microchip.com>" | ||||||
|  	u32 addr_lo, addr_hi; | @@ -1652,34 +1653,31 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev)
 | ||||||
|  	int ret; |  	addr[5] = (addr_hi >> 8) & 0xFF; | ||||||
|  	u8 addr[6]; |   | ||||||
| +	const u8 *mac_addr;
 |  	if (!is_valid_ether_addr(addr)) { | ||||||
|  | -		/* reading mac address from EEPROM or OTP */
 | ||||||
|  | -		if ((lan78xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
 | ||||||
|  | -					 addr) == 0) ||
 | ||||||
|  | -		    (lan78xx_read_otp(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
 | ||||||
|  | -				      addr) == 0)) {
 | ||||||
|  | -			if (is_valid_ether_addr(addr)) {
 | ||||||
|  | -				/* eeprom values are valid so use them */
 | ||||||
|  | -				netif_dbg(dev, ifup, dev->net,
 | ||||||
|  | -					  "MAC address read from EEPROM");
 | ||||||
|  | -			} else {
 | ||||||
|  | -				/* generate random MAC */
 | ||||||
|  | -				random_ether_addr(addr);
 | ||||||
|  | -				netif_dbg(dev, ifup, dev->net,
 | ||||||
|  | -					  "MAC address set to random addr");
 | ||||||
|  | -			}
 | ||||||
|  | -
 | ||||||
|  | -			addr_lo = addr[0] | (addr[1] << 8) |
 | ||||||
|  | -				  (addr[2] << 16) | (addr[3] << 24);
 | ||||||
|  | -			addr_hi = addr[4] | (addr[5] << 8);
 | ||||||
|  | -
 | ||||||
|  | -			ret = lan78xx_write_reg(dev, RX_ADDRL, addr_lo);
 | ||||||
|  | -			ret = lan78xx_write_reg(dev, RX_ADDRH, addr_hi);
 | ||||||
|  | +		if (!eth_platform_get_mac_address(&dev->udev->dev, addr)) {
 | ||||||
|  | +			/* valid address present in Device Tree */
 | ||||||
|  | +			netif_dbg(dev, ifup, dev->net,
 | ||||||
|  | +				  "MAC address read from Device Tree");
 | ||||||
|  | +		} else if (((lan78xx_read_eeprom(dev, EEPROM_MAC_OFFSET,
 | ||||||
|  | +						 ETH_ALEN, addr) == 0) ||
 | ||||||
|  | +			    (lan78xx_read_otp(dev, EEPROM_MAC_OFFSET,
 | ||||||
|  | +					      ETH_ALEN, addr) == 0)) &&
 | ||||||
|  | +			   is_valid_ether_addr(addr)) {
 | ||||||
|  | +			/* eeprom values are valid so use them */
 | ||||||
|  | +			netif_dbg(dev, ifup, dev->net,
 | ||||||
|  | +				  "MAC address read from EEPROM");
 | ||||||
|  |  		} else { | ||||||
|  |  			/* generate random MAC */ | ||||||
|  |  			random_ether_addr(addr); | ||||||
|  |  			netif_dbg(dev, ifup, dev->net, | ||||||
|  |  				  "MAC address set to random addr"); | ||||||
|  |  		} | ||||||
| +
 | +
 | ||||||
| +	/* maybe the boot loader passed the MAC address in devicetree */
 | +		addr_lo = addr[0] | (addr[1] << 8) |
 | ||||||
| +	mac_addr = of_get_mac_address(dev->udev->dev.of_node);
 | +			  (addr[2] << 16) | (addr[3] << 24);
 | ||||||
| +	if (mac_addr) {
 | +		addr_hi = addr[4] | (addr[5] << 8);
 | ||||||
| +		ether_addr_copy(addr, mac_addr);
 | +
 | ||||||
| +		goto set_mac_addr;
 | +		ret = lan78xx_write_reg(dev, RX_ADDRL, addr_lo);
 | ||||||
|  | +		ret = lan78xx_write_reg(dev, RX_ADDRH, addr_hi);
 | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  |  	ret = lan78xx_write_reg(dev, MAF_LO(0), addr_lo); | ||||||
|  | -- 
 | ||||||
|  | 2.17.0 | ||||||
|  | 
 | ||||||
|  | From f8f9ad43b37f5db5895619e4304aa9ba286cbbb0 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Phil Elwell <phil@raspberrypi.org> | ||||||
|  | Date: Thu, 19 Apr 2018 17:59:40 +0100 | ||||||
|  | Subject: [PATCH 8/9] dt-bindings: Document the DT bindings for lan78xx | ||||||
|  | 
 | ||||||
|  | The Microchip LAN78XX family of devices are Ethernet controllers with | ||||||
|  | a USB interface. Despite being discoverable devices it can be useful to | ||||||
|  | be able to configure them from Device Tree, particularly in low-cost | ||||||
|  | applications without an EEPROM or programmed OTP. | ||||||
|  | 
 | ||||||
|  | Document the supported properties in a bindings file. | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Phil Elwell <phil@raspberrypi.org> | ||||||
|  | Reviewed-by: Andrew Lunn <andrew@lunn.ch> | ||||||
|  | ---
 | ||||||
|  |  .../bindings/net/microchip,lan78xx.txt        | 54 +++++++++++++++++++ | ||||||
|  |  1 file changed, 54 insertions(+) | ||||||
|  |  create mode 100644 Documentation/devicetree/bindings/net/microchip,lan78xx.txt | ||||||
|  | 
 | ||||||
|  | diff --git a/Documentation/devicetree/bindings/net/microchip,lan78xx.txt b/Documentation/devicetree/bindings/net/microchip,lan78xx.txt
 | ||||||
|  | new file mode 100644 | ||||||
|  | index 000000000000..76786a0f6d3d
 | ||||||
|  | --- /dev/null
 | ||||||
|  | +++ b/Documentation/devicetree/bindings/net/microchip,lan78xx.txt
 | ||||||
|  | @@ -0,0 +1,54 @@
 | ||||||
|  | +Microchip LAN78xx Gigabit Ethernet controller
 | ||||||
|  | +
 | ||||||
|  | +The LAN78XX devices are usually configured by programming their OTP or with
 | ||||||
|  | +an external EEPROM, but some platforms (e.g. Raspberry Pi 3 B+) have neither.
 | ||||||
|  | +The Device Tree properties, if present, override the OTP and EEPROM.
 | ||||||
|  | +
 | ||||||
|  | +Required properties:
 | ||||||
|  | +- compatible: Should be one of "usb424,7800", "usb424,7801" or "usb424,7850".
 | ||||||
|  | +
 | ||||||
|  | +Optional properties:
 | ||||||
|  | +- local-mac-address:   see ethernet.txt
 | ||||||
|  | +- mac-address:         see ethernet.txt
 | ||||||
|  | +
 | ||||||
|  | +Optional properties of the embedded PHY:
 | ||||||
|  | +- microchip,led-modes: a 0..4 element vector, with each element configuring
 | ||||||
|  | +  the operating mode of an LED. Omitted LEDs are turned off. Allowed values
 | ||||||
|  | +  are defined in "include/dt-bindings/net/microchip-lan78xx.h".
 | ||||||
|  | +
 | ||||||
|  | +Example:
 | ||||||
|  | +
 | ||||||
|  | +/* Based on the configuration for a Raspberry Pi 3 B+ */
 | ||||||
|  | +&usb {
 | ||||||
|  | +	usb-port@1 {
 | ||||||
|  | +		compatible = "usb424,2514";
 | ||||||
|  | +		reg = <1>;
 | ||||||
|  | +		#address-cells = <1>;
 | ||||||
|  | +		#size-cells = <0>;
 | ||||||
|  | +
 | ||||||
|  | +		usb-port@1 {
 | ||||||
|  | +			compatible = "usb424,2514";
 | ||||||
|  | +			reg = <1>;
 | ||||||
|  | +			#address-cells = <1>;
 | ||||||
|  | +			#size-cells = <0>;
 | ||||||
|  | +
 | ||||||
|  | +			ethernet: ethernet@1 {
 | ||||||
|  | +				compatible = "usb424,7800";
 | ||||||
|  | +				reg = <1>;
 | ||||||
|  | +				local-mac-address = [ 00 11 22 33 44 55 ];
 | ||||||
|  | +
 | ||||||
|  | +				mdio {
 | ||||||
|  | +					#address-cells = <0x1>;
 | ||||||
|  | +					#size-cells = <0x0>;
 | ||||||
|  | +					eth_phy: ethernet-phy@1 {
 | ||||||
|  | +						reg = <1>;
 | ||||||
|  | +						microchip,led-modes = <
 | ||||||
|  | +							LAN78XX_LINK_1000_ACTIVITY
 | ||||||
|  | +							LAN78XX_LINK_10_100_ACTIVITY
 | ||||||
|  | +						>;
 | ||||||
|  | +					};
 | ||||||
|  | +				};
 | ||||||
|  | +			};
 | ||||||
|  | +		};
 | ||||||
|  | +	};
 | ||||||
|  | +};
 | ||||||
|  | -- 
 | ||||||
|  | 2.17.0 | ||||||
|  | 
 | ||||||
|  | From be24db04ec2949e9b03763366f100ae40836c61e Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Peter Robinson <pbrobinson@gmail.com> | ||||||
|  | Date: Mon, 23 Apr 2018 14:31:26 +0100 | ||||||
|  | Subject: [PATCH 9/9] lan78xx: Read LED states from Device Tree | ||||||
|  | 
 | ||||||
|  | Add support for DT property "microchip,led-modes", a vector of zero | ||||||
|  | to four cells (u32s) in the range 0-15, each of which sets the mode | ||||||
|  | for one of the LEDs. Some possible values are: | ||||||
|  | 
 | ||||||
|  |     0=link/activity          1=link1000/activity | ||||||
|  |     2=link100/activity       3=link10/activity | ||||||
|  |     4=link100/1000/activity  5=link10/1000/activity | ||||||
|  |     6=link10/100/activity    14=off    15=on | ||||||
|  | 
 | ||||||
|  | These values are given symbolic constants in a dt-bindings header. | ||||||
|  | 
 | ||||||
|  | Also use the presence of the DT property to indicate that the | ||||||
|  | LEDs should be enabled - necessary in the event that no valid OTP | ||||||
|  | or EEPROM is available. | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Phil Elwell <phil@raspberrypi.org> | ||||||
|  | Reviewed-by: Andrew Lunn <andrew@lunn.ch> | ||||||
|  | ---
 | ||||||
|  |  MAINTAINERS                                 |  1 + | ||||||
|  |  drivers/net/phy/microchip.c                 | 25 ++++++++++++++++ | ||||||
|  |  drivers/net/usb/lan78xx.c                   | 32 ++++++++++++++++++++- | ||||||
|  |  include/dt-bindings/net/microchip-lan78xx.h | 21 ++++++++++++++ | ||||||
|  |  include/linux/microchipphy.h                |  3 ++ | ||||||
|  |  5 files changed, 81 insertions(+), 1 deletion(-) | ||||||
|  |  create mode 100644 include/dt-bindings/net/microchip-lan78xx.h | ||||||
|  | 
 | ||||||
|  | diff --git a/MAINTAINERS b/MAINTAINERS
 | ||||||
|  | index 6e950b8b4a41..c7d5f8c60a2c 100644
 | ||||||
|  | --- a/MAINTAINERS
 | ||||||
|  | +++ b/MAINTAINERS
 | ||||||
|  | @@ -14437,6 +14437,7 @@ M:	Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
 | ||||||
|  |  L:	netdev@vger.kernel.org | ||||||
|  |  S:	Maintained | ||||||
|  |  F:	drivers/net/usb/lan78xx.* | ||||||
|  | +F:	include/dt-bindings/net/microchip-lan78xx.h
 | ||||||
|  |   | ||||||
|  |  USB MASS STORAGE DRIVER | ||||||
|  |  M:	Alan Stern <stern@rowland.harvard.edu> | ||||||
|  | diff --git a/drivers/net/phy/microchip.c b/drivers/net/phy/microchip.c
 | ||||||
|  | index a97ac8c12c4c..2d67937866a3 100644
 | ||||||
|  | --- a/drivers/net/phy/microchip.c
 | ||||||
|  | +++ b/drivers/net/phy/microchip.c
 | ||||||
|  | @@ -21,6 +21,8 @@
 | ||||||
|  |  #include <linux/phy.h> | ||||||
|  |  #include <linux/microchipphy.h> | ||||||
|  |  #include <linux/delay.h> | ||||||
|  | +#include <linux/of.h>
 | ||||||
|  | +#include <dt-bindings/net/microchip-lan78xx.h>
 | ||||||
|  |   | ||||||
|  |  #define DRIVER_AUTHOR	"WOOJUNG HUH <woojung.huh@microchip.com>" | ||||||
|  |  #define DRIVER_DESC	"Microchip LAN88XX PHY driver" | ||||||
|  | @@ -225,6 +227,8 @@ static int lan88xx_probe(struct phy_device *phydev)
 | ||||||
|  |  { | ||||||
|  |  	struct device *dev = &phydev->mdio.dev; | ||||||
|  |  	struct lan88xx_priv *priv; | ||||||
|  | +	u32 led_modes[4];
 | ||||||
|  | +	int len;
 | ||||||
|  |   | ||||||
|  |  	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); | ||||||
|  |  	if (!priv) | ||||||
|  | @@ -232,6 +236,27 @@ static int lan88xx_probe(struct phy_device *phydev)
 | ||||||
|  |   | ||||||
|  |  	priv->wolopts = 0; | ||||||
|  |   | ||||||
|  | +	len = of_property_read_variable_u32_array(dev->of_node,
 | ||||||
|  | +						  "microchip,led-modes",
 | ||||||
|  | +						  led_modes,
 | ||||||
|  | +						  0,
 | ||||||
|  | +						  ARRAY_SIZE(led_modes));
 | ||||||
|  | +	if (len >= 0) {
 | ||||||
|  | +		u32 reg = 0;
 | ||||||
|  | +		int i;
 | ||||||
|  | +
 | ||||||
|  | +		for (i = 0; i < len; i++) {
 | ||||||
|  | +			if (led_modes[i] > 15)
 | ||||||
|  | +				return -EINVAL;
 | ||||||
|  | +			reg |= led_modes[i] << (i * 4);
 | ||||||
|  | +		}
 | ||||||
|  | +		for (; i < ARRAY_SIZE(led_modes); i++)
 | ||||||
|  | +			reg |= LAN78XX_FORCE_LED_OFF << (i * 4);
 | ||||||
|  | +		(void)phy_write(phydev, LAN78XX_PHY_LED_MODE_SELECT, reg);
 | ||||||
|  | +	} else if (len == -EOVERFLOW) {
 | ||||||
|  | +		return -EINVAL;
 | ||||||
| +	}
 | +	}
 | ||||||
|  | +
 | ||||||
|  |  	/* these values can be used to identify internal PHY */ | ||||||
|  |  	priv->chip_id = phy_read_mmd(phydev, 3, LAN88XX_MMD3_CHIP_ID); | ||||||
|  |  	priv->chip_rev = phy_read_mmd(phydev, 3, LAN88XX_MMD3_CHIP_REV); | ||||||
|  | diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
 | ||||||
|  | index 6c38a74bb32d..01b876daa600 100644
 | ||||||
|  | --- a/drivers/net/usb/lan78xx.c
 | ||||||
|  | +++ b/drivers/net/usb/lan78xx.c
 | ||||||
|  | @@ -37,6 +37,7 @@
 | ||||||
|  |  #include <linux/irqchip/chained_irq.h> | ||||||
|  |  #include <linux/microchipphy.h> | ||||||
|  |  #include <linux/phy.h> | ||||||
|  | +#include <linux/of_mdio.h>
 | ||||||
|  |  #include <linux/of_net.h> | ||||||
|  |  #include "lan78xx.h" | ||||||
|   |   | ||||||
|  	ret = lan78xx_read_reg(dev, RX_ADDRL, &addr_lo); | @@ -1760,6 +1761,7 @@ static int lan78xx_mdiobus_write(struct mii_bus *bus, int phy_id, int idx,
 | ||||||
|  	ret = lan78xx_read_reg(dev, RX_ADDRH, &addr_hi); |  | ||||||
| @@ -1667,6 +1676,7 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev)
 |  | ||||||
|  					  "MAC address set to random addr"); |  | ||||||
|  			} |  | ||||||
|   |   | ||||||
| +set_mac_addr:
 |  static int lan78xx_mdio_init(struct lan78xx_net *dev) | ||||||
|  			addr_lo = addr[0] | (addr[1] << 8) | |  { | ||||||
|  				  (addr[2] << 16) | (addr[3] << 24); | +	struct device_node *node;
 | ||||||
|  			addr_hi = addr[4] | (addr[5] << 8); |  	int ret; | ||||||
|  |   | ||||||
|  |  	dev->mdiobus = mdiobus_alloc(); | ||||||
|  | @@ -1788,7 +1790,13 @@ static int lan78xx_mdio_init(struct lan78xx_net *dev)
 | ||||||
|  |  		break; | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  | -	ret = mdiobus_register(dev->mdiobus);
 | ||||||
|  | +	node = of_get_child_by_name(dev->udev->dev.of_node, "mdio");
 | ||||||
|  | +	if (node) {
 | ||||||
|  | +		ret = of_mdiobus_register(dev->mdiobus, node);
 | ||||||
|  | +		of_node_put(node);
 | ||||||
|  | +	} else {
 | ||||||
|  | +		ret = mdiobus_register(dev->mdiobus);
 | ||||||
|  | +	}
 | ||||||
|  |  	if (ret) { | ||||||
|  |  		netdev_err(dev->net, "can't register MDIO bus\n"); | ||||||
|  |  		goto exit1; | ||||||
|  | @@ -2077,6 +2085,28 @@ static int lan78xx_phy_init(struct lan78xx_net *dev)
 | ||||||
|  |  	mii_adv = (u32)mii_advertise_flowctrl(dev->fc_request_control); | ||||||
|  |  	phydev->advertising |= mii_adv_to_ethtool_adv_t(mii_adv); | ||||||
|  |   | ||||||
|  | +	if (phydev->mdio.dev.of_node) {
 | ||||||
|  | +		u32 reg;
 | ||||||
|  | +		int len;
 | ||||||
|  | +
 | ||||||
|  | +		len = of_property_count_elems_of_size(phydev->mdio.dev.of_node,
 | ||||||
|  | +						      "microchip,led-modes",
 | ||||||
|  | +						      sizeof(u32));
 | ||||||
|  | +		if (len >= 0) {
 | ||||||
|  | +			/* Ensure the appropriate LEDs are enabled */
 | ||||||
|  | +			lan78xx_read_reg(dev, HW_CFG, ®);
 | ||||||
|  | +			reg &= ~(HW_CFG_LED0_EN_ |
 | ||||||
|  | +				 HW_CFG_LED1_EN_ |
 | ||||||
|  | +				 HW_CFG_LED2_EN_ |
 | ||||||
|  | +				 HW_CFG_LED3_EN_);
 | ||||||
|  | +			reg |= (len > 0) * HW_CFG_LED0_EN_ |
 | ||||||
|  | +				(len > 1) * HW_CFG_LED1_EN_ |
 | ||||||
|  | +				(len > 2) * HW_CFG_LED2_EN_ |
 | ||||||
|  | +				(len > 3) * HW_CFG_LED3_EN_;
 | ||||||
|  | +			lan78xx_write_reg(dev, HW_CFG, reg);
 | ||||||
|  | +		}
 | ||||||
|  | +	}
 | ||||||
|  | +
 | ||||||
|  |  	genphy_config_aneg(phydev); | ||||||
|  |   | ||||||
|  |  	dev->fc_autoneg = phydev->autoneg; | ||||||
|  | diff --git a/include/dt-bindings/net/microchip-lan78xx.h b/include/dt-bindings/net/microchip-lan78xx.h
 | ||||||
|  | new file mode 100644 | ||||||
|  | index 000000000000..0742ff075307
 | ||||||
|  | --- /dev/null
 | ||||||
|  | +++ b/include/dt-bindings/net/microchip-lan78xx.h
 | ||||||
|  | @@ -0,0 +1,21 @@
 | ||||||
|  | +/* SPDX-License-Identifier: GPL-2.0 */
 | ||||||
|  | +#ifndef _DT_BINDINGS_MICROCHIP_LAN78XX_H
 | ||||||
|  | +#define _DT_BINDINGS_MICROCHIP_LAN78XX_H
 | ||||||
|  | +
 | ||||||
|  | +/* LED modes for LAN7800/LAN7850 embedded PHY */
 | ||||||
|  | +
 | ||||||
|  | +#define LAN78XX_LINK_ACTIVITY           0
 | ||||||
|  | +#define LAN78XX_LINK_1000_ACTIVITY      1
 | ||||||
|  | +#define LAN78XX_LINK_100_ACTIVITY       2
 | ||||||
|  | +#define LAN78XX_LINK_10_ACTIVITY        3
 | ||||||
|  | +#define LAN78XX_LINK_100_1000_ACTIVITY  4
 | ||||||
|  | +#define LAN78XX_LINK_10_1000_ACTIVITY   5
 | ||||||
|  | +#define LAN78XX_LINK_10_100_ACTIVITY    6
 | ||||||
|  | +#define LAN78XX_DUPLEX_COLLISION        8
 | ||||||
|  | +#define LAN78XX_COLLISION               9
 | ||||||
|  | +#define LAN78XX_ACTIVITY                10
 | ||||||
|  | +#define LAN78XX_AUTONEG_FAULT           12
 | ||||||
|  | +#define LAN78XX_FORCE_LED_OFF           14
 | ||||||
|  | +#define LAN78XX_FORCE_LED_ON            15
 | ||||||
|  | +
 | ||||||
|  | +#endif
 | ||||||
|  | diff --git a/include/linux/microchipphy.h b/include/linux/microchipphy.h
 | ||||||
|  | index 8f9c90379732..fd1fc8c248ef 100644
 | ||||||
|  | --- a/include/linux/microchipphy.h
 | ||||||
|  | +++ b/include/linux/microchipphy.h
 | ||||||
|  | @@ -78,4 +78,7 @@
 | ||||||
|  |  #define LAN88XX_EXT_PAGE_TR_LOW_DATA		17 | ||||||
|  |  #define LAN88XX_EXT_PAGE_TR_HIGH_DATA		18 | ||||||
|  |   | ||||||
|  | +/* Registers specific to the LAN7800/LAN7850 embedded phy */
 | ||||||
|  | +#define LAN78XX_PHY_LED_MODE_SELECT		(0x1D)
 | ||||||
|  | +
 | ||||||
|  |  #endif /* _MICROCHIPPHY_H */ | ||||||
|  | -- 
 | ||||||
|  | 2.17.0 | ||||||
|  | |||||||
							
								
								
									
										560
									
								
								bcm2837-rpi-initial-3plus-support.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										560
									
								
								bcm2837-rpi-initial-3plus-support.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,560 @@ | |||||||
|  | From patchwork Sat Apr 21 11:28:34 2018 | ||||||
|  | Content-Type: text/plain; charset="utf-8" | ||||||
|  | MIME-Version: 1.0 | ||||||
|  | Content-Transfer-Encoding: 7bit | ||||||
|  | Subject: [V2,1/9] ARM: dts: bcm283x: Fix PWM pin assignment | ||||||
|  | From: Stefan Wahren <stefan.wahren@i2se.com> | ||||||
|  | X-Patchwork-Id: 10354085 | ||||||
|  | Message-Id: <1524310122-9439-2-git-send-email-stefan.wahren@i2se.com> | ||||||
|  | To: Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, | ||||||
|  |  Eric Anholt <eric@anholt.net>, Catalin Marinas <catalin.marinas@arm.com>,  | ||||||
|  |  Will Deacon <will.deacon@arm.com> | ||||||
|  | Cc: Stefan Wahren <stefan.wahren@i2se.com>, devicetree@vger.kernel.org, | ||||||
|  |  Florian Fainelli <f.fainelli@gmail.com>, Arnd Bergmann <arnd@arndb.de>, | ||||||
|  |  Scott Branden <sbranden@broadcom.com>, Ray Jui <rjui@broadcom.com>, | ||||||
|  |  Phil Elwell <phil@raspberrypi.org>, Alexander Graf <agraf@suse.de>, | ||||||
|  |  bcm-kernel-feedback-list@broadcom.com, | ||||||
|  |  linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org | ||||||
|  | Date: Sat, 21 Apr 2018 13:28:34 +0200 | ||||||
|  | 
 | ||||||
|  | All RPi 1 and 2 boards used the PWM (audio out) on pin 40 and 45. | ||||||
|  | So it was easy to define them in bcm2835-rpi.dtsi. Starting with RPi 3 | ||||||
|  | this wont work anymore, because it uses pin 40 and 41. Furthermore the | ||||||
|  | Zero variants doesn't have audio out. | ||||||
|  | 
 | ||||||
|  | This patch fixes this pin conflict by moving the PWM node to the board-level. | ||||||
|  | 
 | ||||||
|  | Change summary: | ||||||
|  | RPi 3 B:      PWM1 45 -> 41 | ||||||
|  | Zero, Zero W: PWM disabled | ||||||
|  | all other:    no functional change | ||||||
|  | 
 | ||||||
|  | Reported-by: Baruch Siach <baruch@tkos.co.il> | ||||||
|  | Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> | ||||||
|  | Reviewed-by: Eric Anholt <eric@anholt.net> | ||||||
|  | ---
 | ||||||
|  |  arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 6 ++++++ | ||||||
|  |  arch/arm/boot/dts/bcm2835-rpi-a.dts      | 6 ++++++ | ||||||
|  |  arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 6 ++++++ | ||||||
|  |  arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 6 ++++++ | ||||||
|  |  arch/arm/boot/dts/bcm2835-rpi-b.dts      | 6 ++++++ | ||||||
|  |  arch/arm/boot/dts/bcm2835-rpi.dtsi       | 6 ------ | ||||||
|  |  arch/arm/boot/dts/bcm2836-rpi-2-b.dts    | 6 ++++++ | ||||||
|  |  arch/arm/boot/dts/bcm2837-rpi-3-b.dts    | 6 ++++++ | ||||||
|  |  8 files changed, 42 insertions(+), 6 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
 | ||||||
|  | index aa1fc7b..2cd9c5e 100644
 | ||||||
|  | --- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
 | ||||||
|  | +++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
 | ||||||
|  | @@ -101,6 +101,12 @@
 | ||||||
|  |  	hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | +&pwm {
 | ||||||
|  | +	pinctrl-names = "default";
 | ||||||
|  | +	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  |  &uart0 { | ||||||
|  |  	pinctrl-names = "default"; | ||||||
|  |  	pinctrl-0 = <&uart0_gpio14>; | ||||||
|  | diff --git a/arch/arm/boot/dts/bcm2835-rpi-a.dts b/arch/arm/boot/dts/bcm2835-rpi-a.dts
 | ||||||
|  | index 425f6b0..067d1f0 100644
 | ||||||
|  | --- a/arch/arm/boot/dts/bcm2835-rpi-a.dts
 | ||||||
|  | +++ b/arch/arm/boot/dts/bcm2835-rpi-a.dts
 | ||||||
|  | @@ -96,6 +96,12 @@
 | ||||||
|  |  	hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | +&pwm {
 | ||||||
|  | +	pinctrl-names = "default";
 | ||||||
|  | +	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  |  &uart0 { | ||||||
|  |  	pinctrl-names = "default"; | ||||||
|  |  	pinctrl-0 = <&uart0_gpio14>; | ||||||
|  | diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
 | ||||||
|  | index effa195..cfbdaac 100644
 | ||||||
|  | --- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
 | ||||||
|  | +++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
 | ||||||
|  | @@ -103,6 +103,12 @@
 | ||||||
|  |  	hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | +&pwm {
 | ||||||
|  | +	pinctrl-names = "default";
 | ||||||
|  | +	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  |  &uart0 { | ||||||
|  |  	pinctrl-names = "default"; | ||||||
|  |  	pinctrl-0 = <&uart0_gpio14>; | ||||||
|  | diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
 | ||||||
|  | index 772ec3b..5641d16 100644
 | ||||||
|  | --- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
 | ||||||
|  | +++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
 | ||||||
|  | @@ -96,6 +96,12 @@
 | ||||||
|  |  	hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | +&pwm {
 | ||||||
|  | +	pinctrl-names = "default";
 | ||||||
|  | +	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  |  &uart0 { | ||||||
|  |  	pinctrl-names = "default"; | ||||||
|  |  	pinctrl-0 = <&uart0_gpio14>; | ||||||
|  | diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts
 | ||||||
|  | index 434483d..31ff602 100644
 | ||||||
|  | --- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
 | ||||||
|  | +++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
 | ||||||
|  | @@ -91,6 +91,12 @@
 | ||||||
|  |  	hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | +&pwm {
 | ||||||
|  | +	pinctrl-names = "default";
 | ||||||
|  | +	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  |  &uart0 { | ||||||
|  |  	pinctrl-names = "default"; | ||||||
|  |  	pinctrl-0 = <&uart0_gpio14>; | ||||||
|  | diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
 | ||||||
|  | index 6c3cfaa..cb2d6d7 100644
 | ||||||
|  | --- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
 | ||||||
|  | +++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
 | ||||||
|  | @@ -83,12 +83,6 @@
 | ||||||
|  |  	bus-width = <4>; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | -&pwm {
 | ||||||
|  | -	pinctrl-names = "default";
 | ||||||
|  | -	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
 | ||||||
|  | -	status = "okay";
 | ||||||
|  | -};
 | ||||||
|  | -
 | ||||||
|  |  &usb { | ||||||
|  |  	power-domains = <&power RPI_POWER_DOMAIN_USB>; | ||||||
|  |  }; | ||||||
|  | diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
 | ||||||
|  | index 5c339ad..2fef70a 100644
 | ||||||
|  | --- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
 | ||||||
|  | +++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
 | ||||||
|  | @@ -41,6 +41,12 @@
 | ||||||
|  |  	hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | +&pwm {
 | ||||||
|  | +	pinctrl-names = "default";
 | ||||||
|  | +	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  |  &uart0 { | ||||||
|  |  	pinctrl-names = "default"; | ||||||
|  |  	pinctrl-0 = <&uart0_gpio14>; | ||||||
|  | diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
 | ||||||
|  | index 0b31d99..cc39b6f 100644
 | ||||||
|  | --- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
 | ||||||
|  | +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
 | ||||||
|  | @@ -42,6 +42,12 @@
 | ||||||
|  |  	}; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | +&pwm {
 | ||||||
|  | +	pinctrl-names = "default";
 | ||||||
|  | +	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>;
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  |  /* uart0 communicates with the BT module */ | ||||||
|  |  &uart0 { | ||||||
|  |  	pinctrl-names = "default"; | ||||||
|  | From patchwork Sat Apr 21 11:28:35 2018 | ||||||
|  | Content-Type: text/plain; charset="utf-8" | ||||||
|  | MIME-Version: 1.0 | ||||||
|  | Content-Transfer-Encoding: 7bit | ||||||
|  | Subject: [V2,2/9] ARM: dts: bcm2837: Add missing GPIOs of Expander | ||||||
|  | From: Stefan Wahren <stefan.wahren@i2se.com> | ||||||
|  | X-Patchwork-Id: 10354079 | ||||||
|  | Message-Id: <1524310122-9439-3-git-send-email-stefan.wahren@i2se.com> | ||||||
|  | To: Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, | ||||||
|  |  Eric Anholt <eric@anholt.net>, Catalin Marinas <catalin.marinas@arm.com>,  | ||||||
|  |  Will Deacon <will.deacon@arm.com> | ||||||
|  | Cc: Stefan Wahren <stefan.wahren@i2se.com>, devicetree@vger.kernel.org, | ||||||
|  |  Florian Fainelli <f.fainelli@gmail.com>, Arnd Bergmann <arnd@arndb.de>, | ||||||
|  |  Scott Branden <sbranden@broadcom.com>, Ray Jui <rjui@broadcom.com>, | ||||||
|  |  Phil Elwell <phil@raspberrypi.org>, Alexander Graf <agraf@suse.de>, | ||||||
|  |  bcm-kernel-feedback-list@broadcom.com, | ||||||
|  |  linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org | ||||||
|  | Date: Sat, 21 Apr 2018 13:28:35 +0200 | ||||||
|  | 
 | ||||||
|  | After commit a98d90e7d588 ("gpio: raspberrypi-exp: Driver for RPi3 GPIO | ||||||
|  | expander via mailbox service") we are able to control the rest of the | ||||||
|  | GPIOs of the RPi 3. So add all the missing parts (ACT LED, | ||||||
|  | Wifi & BT control, HDMI detect) to the DT. | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> | ||||||
|  | Reviewed-by: Eric Anholt <eric@anholt.net> | ||||||
|  | ---
 | ||||||
|  |  arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 20 +++++++++++++++++++- | ||||||
|  |  1 file changed, 19 insertions(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
 | ||||||
|  | index cc39b6f..c318bcb 100644
 | ||||||
|  | --- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
 | ||||||
|  | +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
 | ||||||
|  | @@ -20,9 +20,14 @@
 | ||||||
|  |   | ||||||
|  |  	leds { | ||||||
|  |  		act { | ||||||
|  | -			gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
 | ||||||
|  | +			gpios = <&expgpio 2 GPIO_ACTIVE_HIGH>;
 | ||||||
|  |  		}; | ||||||
|  |  	}; | ||||||
|  | +
 | ||||||
|  | +	wifi_pwrseq: wifi-pwrseq {
 | ||||||
|  | +		compatible = "mmc-pwrseq-simple";
 | ||||||
|  | +		reset-gpios = <&expgpio 1 GPIO_ACTIVE_HIGH>;
 | ||||||
|  | +	};
 | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  |  &firmware { | ||||||
|  | @@ -48,6 +53,10 @@
 | ||||||
|  |  	status = "okay"; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | +&hdmi {
 | ||||||
|  | +	hpd-gpios = <&expgpio 4 GPIO_ACTIVE_LOW>;
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  |  /* uart0 communicates with the BT module */ | ||||||
|  |  &uart0 { | ||||||
|  |  	pinctrl-names = "default"; | ||||||
|  | @@ -57,6 +66,7 @@
 | ||||||
|  |  	bluetooth { | ||||||
|  |  		compatible = "brcm,bcm43438-bt"; | ||||||
|  |  		max-speed = <2000000>; | ||||||
|  | +		shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
 | ||||||
|  |  	}; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | @@ -69,11 +79,19 @@
 | ||||||
|  |   | ||||||
|  |  /* SDHCI is used to control the SDIO for wireless */ | ||||||
|  |  &sdhci { | ||||||
|  | +	#address-cells = <1>;
 | ||||||
|  | +	#size-cells = <0>;
 | ||||||
|  |  	pinctrl-names = "default"; | ||||||
|  |  	pinctrl-0 = <&emmc_gpio34>; | ||||||
|  |  	status = "okay"; | ||||||
|  |  	bus-width = <4>; | ||||||
|  |  	non-removable; | ||||||
|  | +	mmc-pwrseq = <&wifi_pwrseq>;
 | ||||||
|  | +
 | ||||||
|  | +	brcmf: wifi@1 {
 | ||||||
|  | +		reg = <1>;
 | ||||||
|  | +		compatible = "brcm,bcm4329-fmac";
 | ||||||
|  | +	};
 | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  |  /* SDHOST is used to drive the SD card */ | ||||||
|  | From patchwork Sat Apr 21 11:28:36 2018 | ||||||
|  | Content-Type: text/plain; charset="utf-8" | ||||||
|  | MIME-Version: 1.0 | ||||||
|  | Content-Transfer-Encoding: 7bit | ||||||
|  | Subject: [V2,3/9] dt-bindings: bcm: Add Raspberry Pi 3 B+ | ||||||
|  | From: Stefan Wahren <stefan.wahren@i2se.com> | ||||||
|  | X-Patchwork-Id: 10354081 | ||||||
|  | Message-Id: <1524310122-9439-4-git-send-email-stefan.wahren@i2se.com> | ||||||
|  | To: Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, | ||||||
|  |  Eric Anholt <eric@anholt.net>, Catalin Marinas <catalin.marinas@arm.com>,  | ||||||
|  |  Will Deacon <will.deacon@arm.com> | ||||||
|  | Cc: Stefan Wahren <stefan.wahren@i2se.com>, devicetree@vger.kernel.org, | ||||||
|  |  Florian Fainelli <f.fainelli@gmail.com>, Arnd Bergmann <arnd@arndb.de>, | ||||||
|  |  Scott Branden <sbranden@broadcom.com>, Ray Jui <rjui@broadcom.com>, | ||||||
|  |  Phil Elwell <phil@raspberrypi.org>, Alexander Graf <agraf@suse.de>, | ||||||
|  |  bcm-kernel-feedback-list@broadcom.com, | ||||||
|  |  linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org | ||||||
|  | Date: Sat, 21 Apr 2018 13:28:36 +0200 | ||||||
|  | 
 | ||||||
|  | This adds the root properties for the Raspberry Pi 3 B+ | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> | ||||||
|  | Reviewed-by: Eric Anholt <eric@anholt.net> | ||||||
|  | Reviewed-by: Rob Herring <robh@kernel.org> | ||||||
|  | ---
 | ||||||
|  |  Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt | 4 ++++ | ||||||
|  |  1 file changed, 4 insertions(+) | ||||||
|  | 
 | ||||||
|  | diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
 | ||||||
|  | index 3e3efa0..1e3e29a 100644
 | ||||||
|  | --- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
 | ||||||
|  | +++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
 | ||||||
|  | @@ -34,6 +34,10 @@ Raspberry Pi 3 Model B
 | ||||||
|  |  Required root node properties: | ||||||
|  |  compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; | ||||||
|  |   | ||||||
|  | +Raspberry Pi 3 Model B+
 | ||||||
|  | +Required root node properties:
 | ||||||
|  | +compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837";
 | ||||||
|  | +
 | ||||||
|  |  Raspberry Pi Compute Module | ||||||
|  |  Required root node properties: | ||||||
|  |  compatible = "raspberrypi,compute-module", "brcm,bcm2835"; | ||||||
|  | From patchwork Sat Apr 21 11:28:37 2018 | ||||||
|  | Content-Type: text/plain; charset="utf-8" | ||||||
|  | MIME-Version: 1.0 | ||||||
|  | Content-Transfer-Encoding: 7bit | ||||||
|  | Subject: [V2,4/9] ARM: dts: bcm2837: Add Raspberry Pi 3 B+ | ||||||
|  | From: Stefan Wahren <stefan.wahren@i2se.com> | ||||||
|  | X-Patchwork-Id: 10354075 | ||||||
|  | Message-Id: <1524310122-9439-5-git-send-email-stefan.wahren@i2se.com> | ||||||
|  | To: Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, | ||||||
|  |  Eric Anholt <eric@anholt.net>, Catalin Marinas <catalin.marinas@arm.com>,  | ||||||
|  |  Will Deacon <will.deacon@arm.com> | ||||||
|  | Cc: Stefan Wahren <stefan.wahren@i2se.com>, devicetree@vger.kernel.org, | ||||||
|  |  Florian Fainelli <f.fainelli@gmail.com>, Arnd Bergmann <arnd@arndb.de>, | ||||||
|  |  Scott Branden <sbranden@broadcom.com>, Ray Jui <rjui@broadcom.com>, | ||||||
|  |  Phil Elwell <phil@raspberrypi.org>, Alexander Graf <agraf@suse.de>, | ||||||
|  |  bcm-kernel-feedback-list@broadcom.com, | ||||||
|  |  linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org | ||||||
|  | Date: Sat, 21 Apr 2018 13:28:37 +0200 | ||||||
|  | 
 | ||||||
|  | The Raspberry Pi 3 B+ has the following major differences compared | ||||||
|  | to the model 3 B: | ||||||
|  | * Microchip LAN7515 (Gigabit Ethernet with integrated USB 2.0 HUB) | ||||||
|  | * Cypress CYW43455 (802.11n/ac and BT 4.2) | ||||||
|  | 
 | ||||||
|  | We need to add the USB LAN chip so the bootloader can add the MAC address. | ||||||
|  | This is necessary because there ain't an EEPROM or a valid OTP. | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Phil Elwell <phil@raspberrypi.org> | ||||||
|  | Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> | ||||||
|  | Reviewed-by: Eric Anholt <eric@anholt.net> | ||||||
|  | ---
 | ||||||
|  |  arch/arm/boot/dts/Makefile                 |   1 + | ||||||
|  |  arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 108 +++++++++++++++++++++++++++++ | ||||||
|  |  arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi |  27 ++++++++ | ||||||
|  |  3 files changed, 136 insertions(+) | ||||||
|  |  create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | ||||||
|  |  create mode 100644 arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi | ||||||
|  | 
 | ||||||
|  | diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
 | ||||||
|  | index 7e24249..a300a35 100644
 | ||||||
|  | --- a/arch/arm/boot/dts/Makefile
 | ||||||
|  | +++ b/arch/arm/boot/dts/Makefile
 | ||||||
|  | @@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
 | ||||||
|  |  	bcm2835-rpi-a-plus.dtb \ | ||||||
|  |  	bcm2836-rpi-2-b.dtb \ | ||||||
|  |  	bcm2837-rpi-3-b.dtb \ | ||||||
|  | +	bcm2837-rpi-3-b-plus.dtb \
 | ||||||
|  |  	bcm2835-rpi-zero.dtb \ | ||||||
|  |  	bcm2835-rpi-zero-w.dtb | ||||||
|  |  dtb-$(CONFIG_ARCH_BCM_5301X) += \ | ||||||
|  | diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
 | ||||||
|  | new file mode 100644 | ||||||
|  | index 0000000..4adb85e
 | ||||||
|  | --- /dev/null
 | ||||||
|  | +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
 | ||||||
|  | @@ -0,0 +1,108 @@
 | ||||||
|  | +// SPDX-License-Identifier: GPL-2.0
 | ||||||
|  | +/dts-v1/;
 | ||||||
|  | +#include "bcm2837.dtsi"
 | ||||||
|  | +#include "bcm2835-rpi.dtsi"
 | ||||||
|  | +#include "bcm283x-rpi-lan7515.dtsi"
 | ||||||
|  | +#include "bcm283x-rpi-usb-host.dtsi"
 | ||||||
|  | +
 | ||||||
|  | +/ {
 | ||||||
|  | +	compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837";
 | ||||||
|  | +	model = "Raspberry Pi 3 Model B+";
 | ||||||
|  | +
 | ||||||
|  | +	chosen {
 | ||||||
|  | +		/* 8250 auxiliary UART instead of pl011 */
 | ||||||
|  | +		stdout-path = "serial1:115200n8";
 | ||||||
|  | +	};
 | ||||||
|  | +
 | ||||||
|  | +	memory {
 | ||||||
|  | +		reg = <0 0x40000000>;
 | ||||||
|  | +	};
 | ||||||
|  | +
 | ||||||
|  | +	leds {
 | ||||||
|  | +		act {
 | ||||||
|  | +			gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
 | ||||||
|  | +		};
 | ||||||
|  | +
 | ||||||
|  | +		pwr {
 | ||||||
|  | +			label = "PWR";
 | ||||||
|  | +			gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
 | ||||||
|  | +		};
 | ||||||
|  | +	};
 | ||||||
|  | +
 | ||||||
|  | +	wifi_pwrseq: wifi-pwrseq {
 | ||||||
|  | +		compatible = "mmc-pwrseq-simple";
 | ||||||
|  | +		reset-gpios = <&expgpio 1 GPIO_ACTIVE_HIGH>;
 | ||||||
|  | +	};
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  | +&firmware {
 | ||||||
|  | +	expgpio: gpio {
 | ||||||
|  | +		compatible = "raspberrypi,firmware-gpio";
 | ||||||
|  | +		gpio-controller;
 | ||||||
|  | +		#gpio-cells = <2>;
 | ||||||
|  | +		gpio-line-names = "BT_ON",
 | ||||||
|  | +				  "WL_ON",
 | ||||||
|  | +				  "STATUS_LED",
 | ||||||
|  | +				  "LAN_RUN",
 | ||||||
|  | +				  "",
 | ||||||
|  | +				  "CAM_GPIO0",
 | ||||||
|  | +				  "CAM_GPIO1",
 | ||||||
|  | +				  "";
 | ||||||
|  | +		status = "okay";
 | ||||||
|  | +	};
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  | +&hdmi {
 | ||||||
|  | +	hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  | +&pwm {
 | ||||||
|  | +	pinctrl-names = "default";
 | ||||||
|  | +	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>;
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  | +/* SDHCI is used to control the SDIO for wireless */
 | ||||||
|  | +&sdhci {
 | ||||||
|  | +	#address-cells = <1>;
 | ||||||
|  | +	#size-cells = <0>;
 | ||||||
|  | +	pinctrl-names = "default";
 | ||||||
|  | +	pinctrl-0 = <&emmc_gpio34>;
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +	bus-width = <4>;
 | ||||||
|  | +	non-removable;
 | ||||||
|  | +	mmc-pwrseq = <&wifi_pwrseq>;
 | ||||||
|  | +
 | ||||||
|  | +	brcmf: wifi@1 {
 | ||||||
|  | +		reg = <1>;
 | ||||||
|  | +		compatible = "brcm,bcm4329-fmac";
 | ||||||
|  | +	};
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  | +/* SDHOST is used to drive the SD card */
 | ||||||
|  | +&sdhost {
 | ||||||
|  | +	pinctrl-names = "default";
 | ||||||
|  | +	pinctrl-0 = <&sdhost_gpio48>;
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +	bus-width = <4>;
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  | +/* uart0 communicates with the BT module */
 | ||||||
|  | +&uart0 {
 | ||||||
|  | +	pinctrl-names = "default";
 | ||||||
|  | +	pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>;
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +
 | ||||||
|  | +	bluetooth {
 | ||||||
|  | +		compatible = "brcm,bcm43438-bt";
 | ||||||
|  | +		max-speed = <2000000>;
 | ||||||
|  | +		shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
 | ||||||
|  | +	};
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  | +/* uart1 is mapped to the pin header */
 | ||||||
|  | +&uart1 {
 | ||||||
|  | +	pinctrl-names = "default";
 | ||||||
|  | +	pinctrl-0 = <&uart1_gpio14>;
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +};
 | ||||||
|  | diff --git a/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
 | ||||||
|  | new file mode 100644 | ||||||
|  | index 0000000..9403da0
 | ||||||
|  | --- /dev/null
 | ||||||
|  | +++ b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
 | ||||||
|  | @@ -0,0 +1,27 @@
 | ||||||
|  | +// SPDX-License-Identifier: GPL-2.0
 | ||||||
|  | +/ {
 | ||||||
|  | +	aliases {
 | ||||||
|  | +		ethernet0 = ðernet;
 | ||||||
|  | +	};
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  | +&usb {
 | ||||||
|  | +	usb-port@1 {
 | ||||||
|  | +		compatible = "usb424,2514";
 | ||||||
|  | +		reg = <1>;
 | ||||||
|  | +		#address-cells = <1>;
 | ||||||
|  | +		#size-cells = <0>;
 | ||||||
|  | +
 | ||||||
|  | +		usb-port@1 {
 | ||||||
|  | +			compatible = "usb424,2514";
 | ||||||
|  | +			reg = <1>;
 | ||||||
|  | +			#address-cells = <1>;
 | ||||||
|  | +			#size-cells = <0>;
 | ||||||
|  | +
 | ||||||
|  | +			ethernet: ethernet@1 {
 | ||||||
|  | +				compatible = "usb424,7800";
 | ||||||
|  | +				reg = <1>;
 | ||||||
|  | +			};
 | ||||||
|  | +		};
 | ||||||
|  | +	};
 | ||||||
|  | +};
 | ||||||
|  | From patchwork Sat Apr 21 11:28:42 2018 | ||||||
|  | Content-Type: text/plain; charset="utf-8" | ||||||
|  | MIME-Version: 1.0 | ||||||
|  | Content-Transfer-Encoding: 7bit | ||||||
|  | Subject: [V2,9/9] arm64: dts: broadcom: Add reference to Raspberry Pi 3 B+ | ||||||
|  | From: Stefan Wahren <stefan.wahren@i2se.com> | ||||||
|  | X-Patchwork-Id: 10354077 | ||||||
|  | Message-Id: <1524310122-9439-10-git-send-email-stefan.wahren@i2se.com> | ||||||
|  | To: Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, | ||||||
|  |  Eric Anholt <eric@anholt.net>, Catalin Marinas <catalin.marinas@arm.com>,  | ||||||
|  |  Will Deacon <will.deacon@arm.com> | ||||||
|  | Cc: Stefan Wahren <stefan.wahren@i2se.com>, devicetree@vger.kernel.org, | ||||||
|  |  Florian Fainelli <f.fainelli@gmail.com>, Arnd Bergmann <arnd@arndb.de>, | ||||||
|  |  Scott Branden <sbranden@broadcom.com>, Ray Jui <rjui@broadcom.com>, | ||||||
|  |  Phil Elwell <phil@raspberrypi.org>, Alexander Graf <agraf@suse.de>, | ||||||
|  |  bcm-kernel-feedback-list@broadcom.com, | ||||||
|  |  linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org | ||||||
|  | Date: Sat, 21 Apr 2018 13:28:42 +0200 | ||||||
|  | 
 | ||||||
|  | This adds a reference to the dts of the Raspberry Pi 3 B+ | ||||||
|  | in arm, so don't need to maintain the content in arm64. | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> | ||||||
|  | Reviewed-by: Eric Anholt <eric@anholt.net> | ||||||
|  | ---
 | ||||||
|  |  arch/arm64/boot/dts/broadcom/Makefile                 | 3 ++- | ||||||
|  |  arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts | 2 ++ | ||||||
|  |  2 files changed, 4 insertions(+), 1 deletion(-) | ||||||
|  |  create mode 100644 arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts | ||||||
|  | 
 | ||||||
|  | diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile
 | ||||||
|  | index 2a2591e..1193a9e 100644
 | ||||||
|  | --- a/arch/arm64/boot/dts/broadcom/Makefile
 | ||||||
|  | +++ b/arch/arm64/boot/dts/broadcom/Makefile
 | ||||||
|  | @@ -1,5 +1,6 @@
 | ||||||
|  |  # SPDX-License-Identifier: GPL-2.0 | ||||||
|  | -dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb
 | ||||||
|  | +dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \
 | ||||||
|  | +			      bcm2837-rpi-3-b-plus.dtb
 | ||||||
|  |   | ||||||
|  |  subdir-y	+= northstar2 | ||||||
|  |  subdir-y	+= stingray | ||||||
|  | diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts
 | ||||||
|  | new file mode 100644 | ||||||
|  | index 0000000..46ad202
 | ||||||
|  | --- /dev/null
 | ||||||
|  | +++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts
 | ||||||
|  | @@ -0,0 +1,2 @@
 | ||||||
|  | +// SPDX-License-Identifier: GPL-2.0
 | ||||||
|  | +#include "arm/bcm2837-rpi-3-b-plus.dts"
 | ||||||
| @ -1,209 +0,0 @@ | |||||||
| From defa4876ece55751c691d17ffc928d9bfe049585 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Stefan Wahren <stefan.wahren@i2se.com> |  | ||||||
| Date: Fri, 16 Mar 2018 22:56:59 +0100 |  | ||||||
| Subject: [PATCH] arm64: dts: broadcom: Add reference to Raspberry Pi 3 B+ |  | ||||||
| 
 |  | ||||||
| This adds a reference to the dts file of the Raspberry Pi 3 B+ |  | ||||||
| 
 |  | ||||||
| Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> |  | ||||||
| ---
 |  | ||||||
|  arch/arm64/boot/dts/broadcom/Makefile                 | 3 ++- |  | ||||||
|  arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts | 2 ++ |  | ||||||
|  2 files changed, 4 insertions(+), 1 deletion(-) |  | ||||||
|  create mode 100644 arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts |  | ||||||
| 
 |  | ||||||
| diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile
 |  | ||||||
| index 2a2591ef1fee..1193a9e34bbb 100644
 |  | ||||||
| --- a/arch/arm64/boot/dts/broadcom/Makefile
 |  | ||||||
| +++ b/arch/arm64/boot/dts/broadcom/Makefile
 |  | ||||||
| @@ -1,5 +1,6 @@
 |  | ||||||
|  # SPDX-License-Identifier: GPL-2.0 |  | ||||||
| -dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb
 |  | ||||||
| +dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \
 |  | ||||||
| +			      bcm2837-rpi-3-b-plus.dtb
 |  | ||||||
|   |  | ||||||
|  subdir-y	+= northstar2 |  | ||||||
|  subdir-y	+= stingray |  | ||||||
| diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts
 |  | ||||||
| new file mode 100644 |  | ||||||
| index 000000000000..46ad2023cccf
 |  | ||||||
| --- /dev/null
 |  | ||||||
| +++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts
 |  | ||||||
| @@ -0,0 +1,2 @@
 |  | ||||||
| +// SPDX-License-Identifier: GPL-2.0
 |  | ||||||
| +#include "arm/bcm2837-rpi-3-b-plus.dts"
 |  | ||||||
| 
 |  | ||||||
| From c7c06c54087dfadd065abcba0b7f614f7a88d549 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Phil Elwell <phil@raspberrypi.org> |  | ||||||
| Date: Fri, 16 Mar 2018 22:42:28 +0100 |  | ||||||
| Subject: [PATCH] ARM: dts: bcm2837: Add Raspberry Pi 3 B+ |  | ||||||
| 
 |  | ||||||
| The Raspberry Pi 3 B+ has the following major differences compared |  | ||||||
| to the model 3 B: |  | ||||||
| * Microchip LAN7515 (Gigabit Ethernet) |  | ||||||
| * Cypress CYW43455 (802.11ac and BT 4.2) |  | ||||||
| 
 |  | ||||||
| Signed-off-by: Phil Elwell <phil@raspberrypi.org> |  | ||||||
| Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> |  | ||||||
| ---
 |  | ||||||
|  arch/arm/boot/dts/Makefile                 |   1 + |  | ||||||
|  arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 102 +++++++++++++++++++++++++++++ |  | ||||||
|  arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi |  27 ++++++++ |  | ||||||
|  3 files changed, 130 insertions(+) |  | ||||||
|  create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts |  | ||||||
|  create mode 100644 arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi |  | ||||||
| 
 |  | ||||||
| diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
 |  | ||||||
| index 3b471e6787ff..dee85f848de9 100644
 |  | ||||||
| --- a/arch/arm/boot/dts/Makefile
 |  | ||||||
| +++ b/arch/arm/boot/dts/Makefile
 |  | ||||||
| @@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
 |  | ||||||
|  	bcm2835-rpi-a-plus.dtb \ |  | ||||||
|  	bcm2836-rpi-2-b.dtb \ |  | ||||||
|  	bcm2837-rpi-3-b.dtb \ |  | ||||||
| +	bcm2837-rpi-3-b-plus.dtb \
 |  | ||||||
|  	bcm2835-rpi-zero.dtb \ |  | ||||||
|  	bcm2835-rpi-zero-w.dtb |  | ||||||
|  dtb-$(CONFIG_ARCH_BCM_5301X) += \ |  | ||||||
| diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
 |  | ||||||
| new file mode 100644 |  | ||||||
| index 000000000000..fb9f6f7e965c
 |  | ||||||
| --- /dev/null
 |  | ||||||
| +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
 |  | ||||||
| @@ -0,0 +1,102 @@
 |  | ||||||
| +// SPDX-License-Identifier: GPL-2.0
 |  | ||||||
| +/dts-v1/;
 |  | ||||||
| +#include "bcm2837.dtsi"
 |  | ||||||
| +#include "bcm2835-rpi.dtsi"
 |  | ||||||
| +#include "bcm283x-rpi-lan7515.dtsi"
 |  | ||||||
| +#include "bcm283x-rpi-usb-host.dtsi"
 |  | ||||||
| +
 |  | ||||||
| +/ {
 |  | ||||||
| +	compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837";
 |  | ||||||
| +	model = "Raspberry Pi 3 Model B+";
 |  | ||||||
| +
 |  | ||||||
| +	chosen {
 |  | ||||||
| +		/* 8250 auxiliary UART instead of pl011 */
 |  | ||||||
| +		stdout-path = "serial1:115200n8";
 |  | ||||||
| +	};
 |  | ||||||
| +
 |  | ||||||
| +	memory {
 |  | ||||||
| +		reg = <0 0x40000000>;
 |  | ||||||
| +	};
 |  | ||||||
| +
 |  | ||||||
| +	leds {
 |  | ||||||
| +		act {
 |  | ||||||
| +			gpios = <&gpio 29 0>;
 |  | ||||||
| +		};
 |  | ||||||
| +
 |  | ||||||
| +		pwr {
 |  | ||||||
| +			label = "PWR";
 |  | ||||||
| +			gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
 |  | ||||||
| +		};
 |  | ||||||
| +	};
 |  | ||||||
| +
 |  | ||||||
| +	wifi_pwrseq: wifi-pwrseq {
 |  | ||||||
| +		compatible = "mmc-pwrseq-simple";
 |  | ||||||
| +		reset-gpios = <&expgpio 1 GPIO_ACTIVE_HIGH>;
 |  | ||||||
| +	};
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +&firmware {
 |  | ||||||
| +	expgpio: gpio {
 |  | ||||||
| +		compatible = "raspberrypi,firmware-gpio";
 |  | ||||||
| +		gpio-controller;
 |  | ||||||
| +		#gpio-cells = <2>;
 |  | ||||||
| +		gpio-line-names = "BT_ON",
 |  | ||||||
| +				  "WL_ON",
 |  | ||||||
| +				  "STATUS_LED",
 |  | ||||||
| +				  "LAN_RUN",
 |  | ||||||
| +				  "",
 |  | ||||||
| +				  "CAM_GPIO0",
 |  | ||||||
| +				  "CAM_GPIO1",
 |  | ||||||
| +				  "";
 |  | ||||||
| +		status = "okay";
 |  | ||||||
| +	};
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +&hdmi {
 |  | ||||||
| +	hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +/* uart0 communicates with the BT module */
 |  | ||||||
| +&uart0 {
 |  | ||||||
| +	pinctrl-names = "default";
 |  | ||||||
| +	pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>;
 |  | ||||||
| +	status = "okay";
 |  | ||||||
| +
 |  | ||||||
| +	bluetooth {
 |  | ||||||
| +		compatible = "brcm,bcm43438-bt";
 |  | ||||||
| +		max-speed = <2000000>;
 |  | ||||||
| +		shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
 |  | ||||||
| +	};
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +/* uart1 is mapped to the pin header */
 |  | ||||||
| +&uart1 {
 |  | ||||||
| +	pinctrl-names = "default";
 |  | ||||||
| +	pinctrl-0 = <&uart1_gpio14>;
 |  | ||||||
| +	status = "okay";
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +/* SDHCI is used to control the SDIO for wireless */
 |  | ||||||
| +&sdhci {
 |  | ||||||
| +	#address-cells = <1>;
 |  | ||||||
| +	#size-cells = <0>;
 |  | ||||||
| +	pinctrl-names = "default";
 |  | ||||||
| +	pinctrl-0 = <&emmc_gpio34>;
 |  | ||||||
| +	status = "okay";
 |  | ||||||
| +	bus-width = <4>;
 |  | ||||||
| +	non-removable;
 |  | ||||||
| +	mmc-pwrseq = <&wifi_pwrseq>;
 |  | ||||||
| +
 |  | ||||||
| +	brcmf: wifi@1 {
 |  | ||||||
| +		reg = <1>;
 |  | ||||||
| +		compatible = "brcm,bcm4329-fmac";
 |  | ||||||
| +	};
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +/* SDHOST is used to drive the SD card */
 |  | ||||||
| +&sdhost {
 |  | ||||||
| +	pinctrl-names = "default";
 |  | ||||||
| +	pinctrl-0 = <&sdhost_gpio48>;
 |  | ||||||
| +	status = "okay";
 |  | ||||||
| +	bus-width = <4>;
 |  | ||||||
| +};
 |  | ||||||
| diff --git a/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
 |  | ||||||
| new file mode 100644 |  | ||||||
| index 000000000000..169203c5ce8b
 |  | ||||||
| --- /dev/null
 |  | ||||||
| +++ b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
 |  | ||||||
| @@ -0,0 +1,27 @@
 |  | ||||||
| +// SPDX-License-Identifier: GPL-2.0
 |  | ||||||
| +/ {
 |  | ||||||
| +	aliases {
 |  | ||||||
| +		ethernet0 = ðernet;
 |  | ||||||
| +	};
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +&usb {
 |  | ||||||
| +	usb1@1 {
 |  | ||||||
| +		compatible = "usb424,2514";
 |  | ||||||
| +		reg = <1>;
 |  | ||||||
| +		#address-cells = <1>;
 |  | ||||||
| +		#size-cells = <0>;
 |  | ||||||
| +
 |  | ||||||
| +		usb1_1@1 {
 |  | ||||||
| +			compatible = "usb424,2514";
 |  | ||||||
| +			reg = <1>;
 |  | ||||||
| +			#address-cells = <1>;
 |  | ||||||
| +			#size-cells = <0>;
 |  | ||||||
| +
 |  | ||||||
| +			ethernet: usbether@1 {
 |  | ||||||
| +				compatible = "usb424,7800";
 |  | ||||||
| +				reg = <1>;
 |  | ||||||
| +			};
 |  | ||||||
| +		};
 |  | ||||||
| +	};
 |  | ||||||
| +};
 |  | ||||||
| 
 |  | ||||||
							
								
								
									
										13
									
								
								kernel.spec
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								kernel.spec
									
									
									
									
									
								
							| @ -594,13 +594,19 @@ Patch310: arm-tegra-fix-nouveau-crash.patch | |||||||
| # https://patchwork.kernel.org/patch/10346089/ | # https://patchwork.kernel.org/patch/10346089/ | ||||||
| Patch311: arm-dts-Add-am335x-pocketbeagle.patch | Patch311: arm-dts-Add-am335x-pocketbeagle.patch | ||||||
| 
 | 
 | ||||||
|  | # https://patchwork.kernel.org/patch/10354521/ | ||||||
|  | # https://patchwork.kernel.org/patch/10354187/ | ||||||
|  | # https://patchwork.kernel.org/patch/10306793/ | ||||||
|  | # https://patchwork.kernel.org/patch/10133165/ | ||||||
|  | Patch315: mvebu-a37xx-fixes.patch | ||||||
|  | 
 | ||||||
| # Fix USB on the RPi https://patchwork.kernel.org/patch/9879371/ | # Fix USB on the RPi https://patchwork.kernel.org/patch/9879371/ | ||||||
| Patch320: bcm283x-dma-mapping-skip-USB-devices-when-configuring-DMA-during-probe.patch | Patch320: bcm283x-dma-mapping-skip-USB-devices-when-configuring-DMA-during-probe.patch | ||||||
| 
 | 
 | ||||||
| Patch324: bcm283x-clk-audio-fixes.patch | Patch324: bcm283x-clk-audio-fixes.patch | ||||||
| 
 | 
 | ||||||
| # Enabling Patches for the RPi3+ | # Enabling Patches for the RPi3+ | ||||||
| Patch330: bcm2837-rpi-initial-support-for-the-3.patch | Patch330: bcm2837-rpi-initial-3plus-support.patch | ||||||
| Patch332: bcm2837-enable-pmu.patch | Patch332: bcm2837-enable-pmu.patch | ||||||
| Patch333: bcm2837-lan78xx-fixes.patch | Patch333: bcm2837-lan78xx-fixes.patch | ||||||
| 
 | 
 | ||||||
| @ -1872,6 +1878,11 @@ fi | |||||||
| # | # | ||||||
| # | # | ||||||
| %changelog | %changelog | ||||||
|  | * Mon Apr 24 2018 Peter Robinson <pbrobinson@fedoraproject.org> | ||||||
|  | - Add fixes for Marvell a37xx EspressoBin | ||||||
|  | - Update to latest Raspberry Pi 3+ fixes | ||||||
|  | - More fixes for lan78xx on the Raspberry Pi 3+ | ||||||
|  | 
 | ||||||
| * Tue Apr 24 2018 Justin M. Forbes <jforbes@fedoraproject.org> - 4.17.0-0.rc2.git1.1 | * Tue Apr 24 2018 Justin M. Forbes <jforbes@fedoraproject.org> - 4.17.0-0.rc2.git1.1 | ||||||
| - Linux v4.17-rc2-58-g24cac7009cb1 | - Linux v4.17-rc2-58-g24cac7009cb1 | ||||||
| - Reenable debugging options. | - Reenable debugging options. | ||||||
|  | |||||||
							
								
								
									
										190
									
								
								mvebu-a37xx-fixes.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										190
									
								
								mvebu-a37xx-fixes.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,190 @@ | |||||||
|  | From patchwork Sun Apr 22 12:33:46 2018 | ||||||
|  | Content-Type: text/plain; charset="utf-8" | ||||||
|  | MIME-Version: 1.0 | ||||||
|  | Content-Transfer-Encoding: 7bit | ||||||
|  | Subject: serial: mvebu-uart: Fix local flags handling on termios update | ||||||
|  | From: Marc Zyngier <Marc.Zyngier@arm.com> | ||||||
|  | X-Patchwork-Id: 10354521 | ||||||
|  | Message-Id: <20180422123346.15538-1-marc.zyngier@arm.com> | ||||||
|  | To: linux-arm-kernel@lists.infradead.org, | ||||||
|  | 	linux-kernel@vger.kernel.org | ||||||
|  | Cc: Gregory CLEMENT <gregory.clement@free-electrons.com>, | ||||||
|  |  Allen Yan <yanwei@marvell.com>, | ||||||
|  |  Greg Kroah-Hartman <gregkh@linuxfoundation.org>, | ||||||
|  |  Miquel Raynal <miquel.raynal@free-electrons.com> | ||||||
|  | Date: Sun, 22 Apr 2018 13:33:46 +0100 | ||||||
|  | 
 | ||||||
|  | Commit 68a0db1d7da2 reworked the baud rate selection, but also added | ||||||
|  | a (not so) subtle change in the way the local flags (c_lflag in the | ||||||
|  | termios structure) are handled, forcing the new flags to always be the | ||||||
|  | same as the old ones. | ||||||
|  | 
 | ||||||
|  | The reason for that particular change is both obscure and undocumented. | ||||||
|  | It also completely breaks userspace. Something as trivial as getty is | ||||||
|  | unusable: | ||||||
|  | 
 | ||||||
|  | <example> | ||||||
|  | 	Debian GNU/Linux 9 sy-borg ttyMV0 | ||||||
|  | 
 | ||||||
|  | 	sy-borg login: root | ||||||
|  | 	root | ||||||
|  | 	[timeout] | ||||||
|  | 
 | ||||||
|  | 	Debian GNU/Linux 9 sy-borg ttyMV0 | ||||||
|  | </example> | ||||||
|  | 
 | ||||||
|  | which is quite obvious in retrospect: getty cannot get in control of | ||||||
|  | the echo mode, is stuck in canonical mode, and times out without ever | ||||||
|  | seeing anything valid. It also begs the question of how this change was | ||||||
|  | ever tested. | ||||||
|  | 
 | ||||||
|  | The fix is pretty obvious: stop messing with c_lflag, and the world | ||||||
|  | will be a happier place. | ||||||
|  | 
 | ||||||
|  | Cc: stable@vger.kernel.org # 4.15+ | ||||||
|  | Fixes: 68a0db1d7da2 ("serial: mvebu-uart: add function to change baudrate") | ||||||
|  | Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> | ||||||
|  | ---
 | ||||||
|  |  drivers/tty/serial/mvebu-uart.c | 1 - | ||||||
|  |  1 file changed, 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/drivers/tty/serial/mvebu-uart.c b/drivers/tty/serial/mvebu-uart.c
 | ||||||
|  | index 750e5645dc85..f503fab1e268 100644
 | ||||||
|  | --- a/drivers/tty/serial/mvebu-uart.c
 | ||||||
|  | +++ b/drivers/tty/serial/mvebu-uart.c
 | ||||||
|  | @@ -495,7 +495,6 @@ static void mvebu_uart_set_termios(struct uart_port *port,
 | ||||||
|  |  		termios->c_iflag |= old->c_iflag & ~(INPCK | IGNPAR); | ||||||
|  |  		termios->c_cflag &= CREAD | CBAUD; | ||||||
|  |  		termios->c_cflag |= old->c_cflag & ~(CREAD | CBAUD); | ||||||
|  | -		termios->c_lflag = old->c_lflag;
 | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  |  	spin_unlock_irqrestore(&port->lock, flags); | ||||||
|  | From patchwork Sun Mar 25 19:57:36 2018 | ||||||
|  | Content-Type: text/plain; charset="utf-8" | ||||||
|  | MIME-Version: 1.0 | ||||||
|  | Content-Transfer-Encoding: 8bit | ||||||
|  | Subject: arm64: dts: armada-3720-espressobin: wire up spi flash | ||||||
|  | From: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de> | ||||||
|  | X-Patchwork-Id: 10306793 | ||||||
|  | Message-Id: <20180325195736.19782-1-u.kleine-koenig@pengutronix.de> | ||||||
|  | To: Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>, | ||||||
|  |  Gregory Clement <gregory.clement@bootlin.com>, | ||||||
|  |  Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> | ||||||
|  | Cc: Ellie Reeves <ellierevves@gmail.com>, | ||||||
|  |  linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de | ||||||
|  | Date: Sun, 25 Mar 2018 21:57:36 +0200 | ||||||
|  | 
 | ||||||
|  | From: Ellie Reeves <ellierevves@gmail.com> | ||||||
|  | 
 | ||||||
|  | This is the storage the machine boots from by default. The partitioning | ||||||
|  | is taken from the U-Boot that is shipped with the board. There is some | ||||||
|  | more space on the flash that isn't used. | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Ellie Reeves <ellierevves@gmail.com> | ||||||
|  | Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | ||||||
|  | ---
 | ||||||
|  |  .../boot/dts/marvell/armada-3720-espressobin.dts   | 27 ++++++++++++++++++++++ | ||||||
|  |  1 file changed, 27 insertions(+) | ||||||
|  | 
 | ||||||
|  | diff --git a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
 | ||||||
|  | index 882d6e4a04e4..5f98c2fecca4 100644
 | ||||||
|  | --- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
 | ||||||
|  | +++ b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
 | ||||||
|  | @@ -108,6 +108,33 @@
 | ||||||
|  |  	status = "okay"; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | +&spi0 {
 | ||||||
|  | +	status = "okay";
 | ||||||
|  | +
 | ||||||
|  | +	flash@0 {
 | ||||||
|  | +		reg = <0>;
 | ||||||
|  | +		compatible = "winbond,w25q32dw", "jedec,spi-flash";
 | ||||||
|  | +		spi-max-frequency = <104000000>;
 | ||||||
|  | +		m25p,fast-read;
 | ||||||
|  | +
 | ||||||
|  | +		partitions {
 | ||||||
|  | +			compatible = "fixed-partitions";
 | ||||||
|  | +			#address-cells = <1>;
 | ||||||
|  | +			#size-cells = <1>;
 | ||||||
|  | +
 | ||||||
|  | +			partition@0 {
 | ||||||
|  | +				label = "uboot";
 | ||||||
|  | +				reg = <0 0x180000>;
 | ||||||
|  | +			};
 | ||||||
|  | +
 | ||||||
|  | +			partition@180000 {
 | ||||||
|  | +				label = "ubootenv";
 | ||||||
|  | +				reg = <0x180000 0x10000>;
 | ||||||
|  | +			};
 | ||||||
|  | +		};
 | ||||||
|  | +	};
 | ||||||
|  | +};
 | ||||||
|  | +
 | ||||||
|  |  /* Exported on the micro USB connector J5 through an FTDI */ | ||||||
|  |  &uart0 { | ||||||
|  |  	pinctrl-names = "default"; | ||||||
|  | From patchwork Sat Apr 21 14:03:42 2018 | ||||||
|  | Content-Type: text/plain; charset="utf-8" | ||||||
|  | MIME-Version: 1.0 | ||||||
|  | Content-Transfer-Encoding: 7bit | ||||||
|  | Subject: arm64: dts: marvell: armada-37xx: reserve memory for ATF | ||||||
|  | From: Miquel Raynal <miquel.raynal@bootlin.com> | ||||||
|  | X-Patchwork-Id: 10354187 | ||||||
|  | Message-Id: <20180421140342.25082-1-miquel.raynal@bootlin.com> | ||||||
|  | To: Gregory Clement <gregory.clement@bootlin.com>, | ||||||
|  |  Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>, | ||||||
|  |  Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> | ||||||
|  | Cc: Mark Rutland <mark.rutland@arm.com>, devicetree@vger.kernel.org, | ||||||
|  |  Antoine Tenart <antoine.tenart@bootlin.com>, | ||||||
|  |  Catalin Marinas <catalin.marinas@arm.com>, | ||||||
|  |  Will Deacon <will.deacon@arm.com>,  | ||||||
|  |  Maxime Chevallier <maxime.chevallier@bootlin.com>, | ||||||
|  |  Nadav Haklai <nadavh@marvell.com>, Rob Herring <robh+dt@kernel.org>,  | ||||||
|  |  Thomas Petazzoni <thomas.petazzoni@bootlin.com>, | ||||||
|  |  Miquel Raynal <miquel.raynal@bootlin.com>, Victor Gu <xigu@marvell.com>,  | ||||||
|  |  linux-arm-kernel@lists.infradead.org | ||||||
|  | Date: Sat, 21 Apr 2018 16:03:42 +0200 | ||||||
|  | 
 | ||||||
|  | From: Victor Gu <xigu@marvell.com> | ||||||
|  | 
 | ||||||
|  | The PSCI area should be reserved in Linux for PSCI operations such as | ||||||
|  | suspend/resume. | ||||||
|  | 
 | ||||||
|  | Reserve 2MiB of memory which matches the area used by ATF (BL1, BL2, | ||||||
|  | BL3x, see [1] in ATF source code). This covers all PSCI code and data | ||||||
|  | area and is 2MiB aligned, which is required by Linux for huge pages | ||||||
|  | handling. | ||||||
|  | 
 | ||||||
|  | [1] plat/marvell/a3700/common/include/platform_def.h | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Victor Gu <xigu@marvell.com> | ||||||
|  | [miquel.raynal@bootlin.com: reword of commit message] | ||||||
|  | Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> | ||||||
|  | ---
 | ||||||
|  |  arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 11 +++++++++++ | ||||||
|  |  1 file changed, 11 insertions(+) | ||||||
|  | 
 | ||||||
|  | diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
 | ||||||
|  | index 97207a61bc79..429ce91bfc39 100644
 | ||||||
|  | --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
 | ||||||
|  | +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
 | ||||||
|  | @@ -22,6 +22,17 @@
 | ||||||
|  |  		serial1 = &uart1; | ||||||
|  |  	}; | ||||||
|  |   | ||||||
|  | +	reserved-memory {
 | ||||||
|  | +		#address-cells = <2>;
 | ||||||
|  | +		#size-cells = <2>;
 | ||||||
|  | +		ranges;
 | ||||||
|  | +
 | ||||||
|  | +		psci-area@4000000 {
 | ||||||
|  | +			reg = <0 0x4000000 0 0x200000>;
 | ||||||
|  | +			no-map;
 | ||||||
|  | +		};
 | ||||||
|  | +	};
 | ||||||
|  | +
 | ||||||
|  |  	cpus { | ||||||
|  |  		#address-cells = <1>; | ||||||
|  |  		#size-cells = <0>; | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user