| 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 |
| @@ -88,6 +88,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 { |
| @@ -132,10 +150,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>; |
| @@ -201,7 +229,7 @@ |
| /* routed to PCIe2 connector (CN62A) */ |
| }; |
| |
| - i2c@4 { |
| + sfp_i2c: i2c@4 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <4>; |