forked from openwrt/openwrt
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mvebu: backport Turris Omnia DTS changes to 5.10
Kernel 5.10 receives the complete set of improvements from 5.11/5.12. While we are at it, move the patches accepted upstream to the 0xx series. Signed-off-by: Klaus Kudielka <klaus.kudielka@gmail.com>
- Loading branch information
Showing
6 changed files
with
410 additions
and
4 deletions.
There are no files selected for viewing
37 changes: 37 additions & 0 deletions
37
...t/linux/mvebu/patches-5.10/003-v5.11-ARM-dts-turris-omnia-add-comphy-handle-to-eth2.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
From 9ec25ef84832209a8326f9a71fe3ba14f4bcf301 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:18 +0100 | ||
Subject: ARM: dts: turris-omnia: add comphy handle to eth2 | ||
MIME-Version: 1.0 | ||
Content-Type: text/plain; charset=UTF-8 | ||
Content-Transfer-Encoding: 8bit | ||
|
||
The eth2 controller on Turris Omnia is connected to SerDes. For SFP to | ||
be able to switch between 1G and 2.5G modes the comphy link has to be | ||
defined. | ||
|
||
Signed-off-by: Marek Behún <kabel@kernel.org> | ||
Fixes: f3a6a9f3704a ("ARM: dts: add description for Armada 38x ...") | ||
Reviewed-by: Andrew Lunn <andrew@lunn.ch> | ||
Reviewed-by: Andreas Färber <afaerber@suse.de> | ||
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: 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 | 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 | ||
@@ -129,6 +129,7 @@ | ||
status = "okay"; | ||
phy-mode = "sgmii"; | ||
phy = <&phy1>; | ||
+ phys = <&comphy5 2>; | ||
buffer-manager = <&bm>; | ||
bm,pool-long = <2>; | ||
bm,pool-short = <3>; |
61 changes: 61 additions & 0 deletions
61
...t/linux/mvebu/patches-5.10/004-v5.11-ARM-dts-turris-omnia-describe-switch-interrupt.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
From d29b67c220caf5f4905e1f1576e71bcb6de4af9e 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:19 +0100 | ||
Subject: ARM: dts: turris-omnia: describe switch interrupt | ||
MIME-Version: 1.0 | ||
Content-Type: text/plain; charset=UTF-8 | ||
Content-Transfer-Encoding: 8bit | ||
|
||
Describe switch interrupt for Turris Omnia so that the CPU does not have | ||
to poll the switch. We also need to to set mpp45 pin to gpio function | ||
for this. | ||
|
||
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 | 12 +++++++++++- | ||
1 file changed, 11 insertions(+), 1 deletion(-) | ||
|
||
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts | ||
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts | ||
@@ -261,13 +261,18 @@ | ||
|
||
/* Switch MV88E6176 at address 0x10 */ | ||
switch@10 { | ||
+ pinctrl-names = "default"; | ||
+ pinctrl-0 = <&swint_pins>; | ||
compatible = "marvell,mv88e6085"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
- dsa,member = <0 0>; | ||
|
||
+ dsa,member = <0 0>; | ||
reg = <0x10>; | ||
|
||
+ interrupt-parent = <&gpio1>; | ||
+ interrupts = <13 IRQ_TYPE_LEVEL_LOW>; | ||
+ | ||
ports { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
@@ -320,6 +325,11 @@ | ||
marvell,function = "gpio"; | ||
}; | ||
|
||
+ swint_pins: swint-pins { | ||
+ marvell,pins = "mpp45"; | ||
+ marvell,function = "gpio"; | ||
+ }; | ||
+ | ||
spi0cs0_pins: spi0cs0-pins { | ||
marvell,pins = "mpp25"; | ||
marvell,function = "spi0"; |
90 changes: 90 additions & 0 deletions
90
target/linux/mvebu/patches-5.10/005-v5.11-ARM-dts-turris-omnia-add-SFP-node.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
From add2d65962977caf23ca2fa21a2457d31b636574 Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@kernel.org> | ||
Date: Mon, 16 Nov 2020 13:24:22 +0100 | ||
Subject: ARM: dts: turris-omnia: add SFP node | ||
MIME-Version: 1.0 | ||
Content-Type: text/plain; charset=UTF-8 | ||
Content-Transfer-Encoding: 8bit | ||
|
||
Turris Omnia has an SFP cage that, together with WAN PHY, is connected | ||
to eth2 SerDes via a SerDes multiplexor. When a SFP module is present, | ||
the multiplexor switches the SerDes signal from PHY to SFP. | ||
|
||
Describe the SFP cage, but leave it disabled. Until phylink has support | ||
for such configuration, we are leaving it to U-Boot to enable SFP and | ||
disable WAN PHY at boot time depending on whether a SFP module is | ||
present. | ||
|
||
Signed-off-by: Marek Behún <kabel@kernel.org> | ||
Fixes: 26ca8b52d6e1 ("ARM: dts: add support for Turris Omnia") | ||
Reviewed-by: Andrew Lunn <andrew@lunn.ch> | ||
Cc: Russell King - ARM Linux admin <linux@armlinux.org.uk> | ||
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: 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 | 30 ++++++++++++++++++++++++++- | ||
1 file changed, 29 insertions(+), 1 deletion(-) | ||
|
||
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts | ||
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts | ||
@@ -82,6 +82,24 @@ | ||
}; | ||
}; | ||
}; | ||
+ | ||
+ sfp: sfp { | ||
+ compatible = "sff,sfp"; | ||
+ i2c-bus = <&sfp_i2c>; | ||
+ tx-fault-gpios = <&pcawan 0 GPIO_ACTIVE_HIGH>; | ||
+ tx-disable-gpios = <&pcawan 1 GPIO_ACTIVE_HIGH>; | ||
+ rate-select0-gpios = <&pcawan 2 GPIO_ACTIVE_HIGH>; | ||
+ los-gpios = <&pcawan 3 GPIO_ACTIVE_HIGH>; | ||
+ mod-def0-gpios = <&pcawan 4 GPIO_ACTIVE_LOW>; | ||
+ maximum-power-milliwatt = <3000>; | ||
+ | ||
+ /* | ||
+ * For now this has to be enabled at boot time by U-Boot when | ||
+ * a SFP module is present. Read more in the comment in the | ||
+ * eth2 node below. | ||
+ */ | ||
+ status = "disabled"; | ||
+ }; | ||
}; | ||
|
||
&bm { | ||
@@ -126,10 +144,20 @@ | ||
|
||
/* WAN port */ | ||
ð2 { | ||
+ /* | ||
+ * eth2 is connected via a multiplexor to both the SFP cage and to | ||
+ * ethernet-phy@1. The multiplexor switches the signal to SFP cage when | ||
+ * a SFP module is present, as determined by the mode-def0 GPIO. | ||
+ * | ||
+ * Until kernel supports this configuration properly, in case SFP module | ||
+ * is present, U-Boot has to enable the sfp node above, remove phy | ||
+ * handle and add managed = "in-band-status" property. | ||
+ */ | ||
status = "okay"; | ||
phy-mode = "sgmii"; | ||
phy = <&phy1>; | ||
phys = <&comphy5 2>; | ||
+ sfp = <&sfp>; | ||
buffer-manager = <&bm>; | ||
bm,pool-long = <2>; | ||
bm,pool-short = <3>; | ||
@@ -195,7 +223,7 @@ | ||
/* routed to PCIe2 connector (CN62A) */ | ||
}; | ||
|
||
- i2c@4 { | ||
+ sfp_i2c: i2c@4 { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
reg = <4>; |
160 changes: 160 additions & 0 deletions
160
target/linux/mvebu/patches-5.10/006-v5.11-ARM-dts-turris-omnia-add-LED-controller-node.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,160 @@ | ||
From 91dd42d0e30fdbb250c61d1192af569f07e6ada4 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:21 +0100 | ||
Subject: ARM: dts: turris-omnia: add LED controller node | ||
MIME-Version: 1.0 | ||
Content-Type: text/plain; charset=UTF-8 | ||
Content-Transfer-Encoding: 8bit | ||
|
||
Linux now has incomplete support for the LED controller on Turris Omnia: | ||
it can set brightness and colors for each LED. | ||
|
||
The controller can also put these LEDs into HW controlled mode, in which | ||
the LEDs are controlled by HW: for example the WAN LED is connected via | ||
MCU to the WAN PHY LED pin. | ||
|
||
The driver does not support these HW controlled modes yet, and on probe | ||
puts the LEDs into SW controlled mode. | ||
|
||
Add node describing the LED controller, but disable it for now. | ||
|
||
Signed-off-by: Marek Behún <kabel@kernel.org> | ||
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: 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 | 111 +++++++++++++++++++++++++- | ||
1 file changed, 110 insertions(+), 1 deletion(-) | ||
|
||
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts | ||
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts | ||
@@ -12,6 +12,7 @@ | ||
|
||
#include <dt-bindings/gpio/gpio.h> | ||
#include <dt-bindings/input/input.h> | ||
+#include <dt-bindings/leds/common.h> | ||
#include "armada-385.dtsi" | ||
|
||
/ { | ||
@@ -181,7 +182,115 @@ | ||
reg = <0>; | ||
|
||
/* STM32F0 command interface at address 0x2a */ | ||
- /* leds device (in STM32F0) at address 0x2b */ | ||
+ | ||
+ led-controller@2b { | ||
+ compatible = "cznic,turris-omnia-leds"; | ||
+ reg = <0x2b>; | ||
+ #address-cells = <1>; | ||
+ #size-cells = <0>; | ||
+ | ||
+ /* | ||
+ * LEDs are controlled by MCU (STM32F0) at | ||
+ * address 0x2b. | ||
+ * | ||
+ * The driver does not support HW control mode | ||
+ * for the LEDs yet. Disable the LEDs for now. | ||
+ * | ||
+ * Also LED functions are not stable yet: | ||
+ * - there are 3 LEDs connected via MCU to PCIe | ||
+ * ports. One of these ports supports mSATA. | ||
+ * There is no mSATA nor PCIe function. | ||
+ * For now we use LED_FUNCTION_WLAN, since | ||
+ * in most cases users have wifi cards in | ||
+ * these slots | ||
+ * - there are 2 LEDs dedicated for user: A and | ||
+ * B. Again there is no such function defined. | ||
+ * For now we use LED_FUNCTION_INDICATOR | ||
+ */ | ||
+ status = "disabled"; | ||
+ | ||
+ multi-led@0 { | ||
+ reg = <0x0>; | ||
+ color = <LED_COLOR_ID_RGB>; | ||
+ function = LED_FUNCTION_INDICATOR; | ||
+ function-enumerator = <2>; | ||
+ }; | ||
+ | ||
+ multi-led@1 { | ||
+ reg = <0x1>; | ||
+ color = <LED_COLOR_ID_RGB>; | ||
+ function = LED_FUNCTION_INDICATOR; | ||
+ function-enumerator = <1>; | ||
+ }; | ||
+ | ||
+ multi-led@2 { | ||
+ reg = <0x2>; | ||
+ color = <LED_COLOR_ID_RGB>; | ||
+ function = LED_FUNCTION_WLAN; | ||
+ function-enumerator = <3>; | ||
+ }; | ||
+ | ||
+ multi-led@3 { | ||
+ reg = <0x3>; | ||
+ color = <LED_COLOR_ID_RGB>; | ||
+ function = LED_FUNCTION_WLAN; | ||
+ function-enumerator = <2>; | ||
+ }; | ||
+ | ||
+ multi-led@4 { | ||
+ reg = <0x4>; | ||
+ color = <LED_COLOR_ID_RGB>; | ||
+ function = LED_FUNCTION_WLAN; | ||
+ function-enumerator = <1>; | ||
+ }; | ||
+ | ||
+ multi-led@5 { | ||
+ reg = <0x5>; | ||
+ color = <LED_COLOR_ID_RGB>; | ||
+ function = LED_FUNCTION_WAN; | ||
+ }; | ||
+ | ||
+ multi-led@6 { | ||
+ reg = <0x6>; | ||
+ color = <LED_COLOR_ID_RGB>; | ||
+ function = LED_FUNCTION_LAN; | ||
+ function-enumerator = <4>; | ||
+ }; | ||
+ | ||
+ multi-led@7 { | ||
+ reg = <0x7>; | ||
+ color = <LED_COLOR_ID_RGB>; | ||
+ function = LED_FUNCTION_LAN; | ||
+ function-enumerator = <3>; | ||
+ }; | ||
+ | ||
+ multi-led@8 { | ||
+ reg = <0x8>; | ||
+ color = <LED_COLOR_ID_RGB>; | ||
+ function = LED_FUNCTION_LAN; | ||
+ function-enumerator = <2>; | ||
+ }; | ||
+ | ||
+ multi-led@9 { | ||
+ reg = <0x9>; | ||
+ color = <LED_COLOR_ID_RGB>; | ||
+ function = LED_FUNCTION_LAN; | ||
+ function-enumerator = <1>; | ||
+ }; | ||
+ | ||
+ multi-led@a { | ||
+ reg = <0xa>; | ||
+ color = <LED_COLOR_ID_RGB>; | ||
+ function = LED_FUNCTION_LAN; | ||
+ function-enumerator = <0>; | ||
+ }; | ||
+ | ||
+ multi-led@b { | ||
+ reg = <0xb>; | ||
+ color = <LED_COLOR_ID_RGB>; | ||
+ function = LED_FUNCTION_POWER; | ||
+ }; | ||
+ }; | ||
|
||
eeprom@54 { | ||
compatible = "atmel,24c64"; |
Oops, something went wrong.