mvebu/omnia: fix the device tree
Backport [1] and fix [2] hardware buffer management. Also fix the IRQ storm caused by a misconfiguration of the PCA9538 interrupt pin [3]. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/arm/boot/dts/armada-385-turris-omnia.dts?id=018b88eee1a2efda26ed2f09aab33ccdc40ef18f [2] https://lore.kernel.org/linux-arm-kernel/20210217153038.1068170-1-rsalvaterra@gmail.com/ [3] https://lore.kernel.org/linux-arm-kernel/20210220231144.32325-1-kabel@kernel.org/ Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
This commit is contained in:
		 Rui Salvaterra
					Rui Salvaterra
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							547a932ee9
						
					
				
				
					commit
					6fe6b631ef
				
			| @@ -0,0 +1,74 @@ | |||||||
|  | From 018b88eee1a2efda26ed2f09aab33ccdc40ef18f Mon Sep 17 00:00:00 2001 | ||||||
|  | From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@kernel.org> | ||||||
|  | Date: Sun, 15 Nov 2020 14:59:17 +0100 | ||||||
|  | Subject: ARM: dts: turris-omnia: enable HW buffer management | ||||||
|  | MIME-Version: 1.0 | ||||||
|  | Content-Type: text/plain; charset=UTF-8 | ||||||
|  | Content-Transfer-Encoding: 8bit | ||||||
|  |  | ||||||
|  | The buffer manager is available on Turris Omnia but needs to be | ||||||
|  | described in device-tree to be used. | ||||||
|  |  | ||||||
|  | Signed-off-by: Marek Behún <kabel@kernel.org> | ||||||
|  | Fixes: 26ca8b52d6e1 ("ARM: dts: add support for Turris Omnia") | ||||||
|  | Cc: linux-arm-kernel@lists.infradead.org | ||||||
|  | Cc: Uwe Kleine-König <uwe@kleine-koenig.org> | ||||||
|  | Cc: Jason Cooper <jason@lakedaemon.net> | ||||||
|  | Cc: Gregory CLEMENT <gregory.clement@bootlin.com> | ||||||
|  | Cc: Andreas Färber <afaerber@suse.de> | ||||||
|  | Cc: Andrew Lunn <andrew@lunn.ch> | ||||||
|  | Cc: Rob Herring <robh+dt@kernel.org> | ||||||
|  | Cc: devicetree@vger.kernel.org | ||||||
|  | Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com> | ||||||
|  | --- | ||||||
|  |  arch/arm/boot/dts/armada-385-turris-omnia.dts | 17 +++++++++++++++++ | ||||||
|  |  1 file changed, 17 insertions(+) | ||||||
|  |  | ||||||
|  | (limited to 'arch/arm/boot/dts/armada-385-turris-omnia.dts') | ||||||
|  |  | ||||||
|  | --- a/arch/arm/boot/dts/armada-385-turris-omnia.dts | ||||||
|  | +++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts | ||||||
|  | @@ -84,12 +84,23 @@ | ||||||
|  |  	}; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | +&bm { | ||||||
|  | +	status = "okay"; | ||||||
|  | +}; | ||||||
|  | + | ||||||
|  | +&bm_bppi { | ||||||
|  | +	status = "okay"; | ||||||
|  | +}; | ||||||
|  | + | ||||||
|  |  /* Connected to 88E6176 switch, port 6 */ | ||||||
|  |  ð0 { | ||||||
|  |  	pinctrl-names = "default"; | ||||||
|  |  	pinctrl-0 = <&ge0_rgmii_pins>; | ||||||
|  |  	status = "okay"; | ||||||
|  |  	phy-mode = "rgmii"; | ||||||
|  | +	buffer-manager = <&bm>; | ||||||
|  | +	bm,pool-long = <0>; | ||||||
|  | +	bm,pool-short = <3>; | ||||||
|  |   | ||||||
|  |  	fixed-link { | ||||||
|  |  		speed = <1000>; | ||||||
|  | @@ -103,6 +114,9 @@ | ||||||
|  |  	pinctrl-0 = <&ge1_rgmii_pins>; | ||||||
|  |  	status = "okay"; | ||||||
|  |  	phy-mode = "rgmii"; | ||||||
|  | +	buffer-manager = <&bm>; | ||||||
|  | +	bm,pool-long = <1>; | ||||||
|  | +	bm,pool-short = <3>; | ||||||
|  |   | ||||||
|  |  	fixed-link { | ||||||
|  |  		speed = <1000>; | ||||||
|  | @@ -115,6 +129,9 @@ | ||||||
|  |  	status = "okay"; | ||||||
|  |  	phy-mode = "sgmii"; | ||||||
|  |  	phy = <&phy1>; | ||||||
|  | +	buffer-manager = <&bm>; | ||||||
|  | +	bm,pool-long = <2>; | ||||||
|  | +	bm,pool-short = <3>; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  |  &i2c0 { | ||||||
| @@ -0,0 +1,27 @@ | |||||||
|  | From 9704292ed3230ee19dc4dd64f7484301b728ffb7 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Rui Salvaterra <rsalvaterra@gmail.com> | ||||||
|  | Date: Wed, 17 Feb 2021 15:19:30 +0000 | ||||||
|  | Subject: [PATCH] ARM: dts: turris-omnia: fix hardware buffer management | ||||||
|  |  | ||||||
|  | Hardware buffer management has never worked on the Turris Omnia, as the | ||||||
|  | required MBus window hadn't been reserved. Fix thusly. | ||||||
|  |  | ||||||
|  | Fixes: 018b88eee1a2 ("ARM: dts: turris-omnia: enable HW buffer management") | ||||||
|  |  | ||||||
|  | Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> | ||||||
|  | --- | ||||||
|  |  arch/arm/boot/dts/armada-385-turris-omnia.dts | 3 ++- | ||||||
|  |  1 file changed, 2 insertions(+), 1 deletion(-) | ||||||
|  |  | ||||||
|  | --- a/arch/arm/boot/dts/armada-385-turris-omnia.dts | ||||||
|  | +++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts | ||||||
|  | @@ -31,7 +31,8 @@ | ||||||
|  |  		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 | ||||||
|  |  			  MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000 | ||||||
|  |  			  MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000 | ||||||
|  | -			  MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>; | ||||||
|  | +			  MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000 | ||||||
|  | +			  MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>; | ||||||
|  |   | ||||||
|  |  		internal-regs { | ||||||
|  |   | ||||||
| @@ -0,0 +1,64 @@ | |||||||
|  | From: "Marek Behún" <kabel@kernel.org> | ||||||
|  | To: Gregory CLEMENT <gregory.clement@bootlin.com> | ||||||
|  | Cc: "Marek Behún" <kabel@kernel.org>, Rui Salvaterra <rsalvaterra@gmail.com>, "Uwe Kleine-König" <uwe@kleine-koenig.org>, linux-arm-kernel@lists.infradead.org, Andrew Lunn <andrew@lunn.ch>, stable@vger.kernel.org | ||||||
|  | Subject: [PATCH mvebu-dt] ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin | ||||||
|  | Date: Sun, 21 Feb 2021 00:11:44 +0100 | ||||||
|  | Message-Id: <20210220231144.32325-1-kabel@kernel.org> | ||||||
|  | X-Mailer: git-send-email 2.26.2 | ||||||
|  | MIME-Version: 1.0 | ||||||
|  | Content-Type: text/plain; charset=UTF-8 | ||||||
|  | Content-Transfer-Encoding: 8bit | ||||||
|  |  | ||||||
|  | Use the `marvell,reg-init` DT property to configure the LED[2]/INTn pin | ||||||
|  | of the Marvell 88E1514 ethernet PHY on Turris Omnia into interrupt mode. | ||||||
|  |  | ||||||
|  | Without this the pin is by default in LED[2] mode, and the Marvell PHY | ||||||
|  | driver configures LED[2] into "On - Link, Blink - Activity" mode. | ||||||
|  |  | ||||||
|  | This fixes the issue where the pca9538 GPIO/interrupt controller (which | ||||||
|  | can't mask interrupts in HW) received too many interrupts and after a | ||||||
|  | time started ignoring the interrupt with error message: | ||||||
|  |   IRQ 71: nobody cared | ||||||
|  |  | ||||||
|  | There is a work in progress to have the Marvell PHY driver support | ||||||
|  | parsing PHY LED nodes from OF and registering the LEDs as Linux LED | ||||||
|  | class devices. Once this is done the PHY driver can also automatically | ||||||
|  | set the pin into INTn mode if it does not find LED[2] in OF. | ||||||
|  |  | ||||||
|  | Until then, though, we fix this via `marvell,reg-init` DT property. | ||||||
|  |  | ||||||
|  | Signed-off-by: Marek Behún <kabel@kernel.org> | ||||||
|  | Reported-by: Rui Salvaterra <rsalvaterra@gmail.com> | ||||||
|  | Fixes: 26ca8b52d6e1 ("ARM: dts: add support for Turris Omnia") | ||||||
|  | Cc: Uwe Kleine-König <uwe@kleine-koenig.org> | ||||||
|  | Cc: linux-arm-kernel@lists.infradead.org | ||||||
|  | Cc: Andrew Lunn <andrew@lunn.ch> | ||||||
|  | Cc: Gregory CLEMENT <gregory.clement@bootlin.com> | ||||||
|  | Cc: <stable@vger.kernel.org> | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | This patch fixes bug introduced with the commit that added Turris | ||||||
|  | Omnia's DTS (26ca8b52d6e1), but will not apply cleanly because there is | ||||||
|  | commit 8ee4a5f4f40d which changed node name and node compatible | ||||||
|  | property and this commit did not go into stable. | ||||||
|  |  | ||||||
|  | So either commit 8ee4a5f4f40d has also to go into stable before this, or | ||||||
|  | this patch has to be fixed a little in order to apply to 4.14+. | ||||||
|  |  | ||||||
|  | Please let me know how should I handle this. | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  arch/arm/boot/dts/armada-385-turris-omnia.dts | 1 + | ||||||
|  |  1 file changed, 1 insertion(+) | ||||||
|  |  | ||||||
|  | --- a/arch/arm/boot/dts/armada-385-turris-omnia.dts | ||||||
|  | +++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts | ||||||
|  | @@ -254,6 +254,7 @@ | ||||||
|  |  		status = "okay"; | ||||||
|  |  		compatible = "ethernet-phy-id0141.0DD1", "ethernet-phy-ieee802.3-c22"; | ||||||
|  |  		reg = <1>; | ||||||
|  | +		marvell,reg-init = <3 18 0 0x4985>; | ||||||
|  |   | ||||||
|  |  		/* irq is connected to &pcawan pin 7 */ | ||||||
|  |  	}; | ||||||
		Reference in New Issue
	
	Block a user