devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Marek Behún" <kabel@kernel.org>
To: Gregory CLEMENT <gregory.clement@bootlin.com>
Cc: arm@kernel.org, "Marek Behún" <kabel@kernel.org>,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Russell King - ARM Linux admin" <linux@armlinux.org.uk>,
	linux-arm-kernel@lists.infradead.org,
	"Uwe Kleine-König" <uwe@kleine-koenig.org>,
	"Jason Cooper" <jason@lakedaemon.net>,
	"Andreas Färber" <afaerber@suse.de>,
	"Rob Herring" <robh+dt@kernel.org>,
	devicetree@vger.kernel.org
Subject: [PATCH mvebu-dt v3.1 4/7] ARM: dts: turris-omnia: add SFP node
Date: Mon, 16 Nov 2020 13:24:22 +0100	[thread overview]
Message-ID: <20201116122422.6840-1-kabel@kernel.org> (raw)
In-Reply-To: <20201115135923.11523-5-kabel@kernel.org>

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
---
 arch/arm/boot/dts/armada-385-turris-omnia.dts | 30 ++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/armada-385-turris-omnia.dts b/arch/arm/boot/dts/armada-385-turris-omnia.dts
index 7ccebf7d1757..aea07b352d24 100644
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -82,6 +82,24 @@ pcie@3,0 {
 			};
 		};
 	};
+
+	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 @@ fixed-link {
 
 /* WAN port */
 &eth2 {
+	/*
+	 * 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 @@ i2c@3 {
 			/* routed to PCIe2 connector (CN62A) */
 		};
 
-		i2c@4 {
+		sfp_i2c: i2c@4 {
 			#address-cells = <1>;
 			#size-cells = <0>;
 			reg = <4>;
-- 
2.26.2


  reply	other threads:[~2020-11-16 12:38 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-15 13:59 [PATCH mvebu-dt v3 0/7] Turris Omnia device-tree changes Marek Behún
2020-11-15 13:59 ` [PATCH mvebu-dt v3 1/7] ARM: dts: turris-omnia: enable HW buffer management Marek Behún
2020-11-15 13:59 ` [PATCH mvebu-dt v3 2/7] ARM: dts: turris-omnia: add comphy handle to eth2 Marek Behún
2020-11-15 13:59 ` [PATCH mvebu-dt v3 3/7] ARM: dts: turris-omnia: describe switch interrupt Marek Behún
2020-11-15 13:59 ` [PATCH mvebu-dt v3 4/7] ARM: dts: turris-omnia: add SFP node Marek Behún
2020-11-16 12:24   ` Marek Behún [this message]
2020-11-16 12:28     ` [PATCH mvebu-dt v3.1 " Marek Behún
2020-11-16 12:34     ` Russell King - ARM Linux admin
2020-11-16 12:53       ` Marek Behún
2020-11-15 13:59 ` [PATCH mvebu-dt v3 5/7] ARM: dts: turris-omnia: add LED controller node Marek Behún
2020-11-15 13:59 ` [PATCH mvebu-dt v3 6/7] ARM: dts: turris-omnia: update ethernet-phy node and handle name Marek Behún
2020-11-15 13:59 ` [PATCH mvebu-dt v3 7/7] ARM: dts: turris-omnia: remove unneeded status = "okay" properties Marek Behún
2020-11-30 10:43 ` [PATCH mvebu-dt v3 0/7] Turris Omnia device-tree changes Gregory CLEMENT

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201116122422.6840-1-kabel@kernel.org \
    --to=kabel@kernel.org \
    --cc=afaerber@suse.de \
    --cc=andrew@lunn.ch \
    --cc=arm@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregory.clement@bootlin.com \
    --cc=jason@lakedaemon.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=robh+dt@kernel.org \
    --cc=uwe@kleine-koenig.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).