[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <68b987de-9229-4606-a972-650b3f486e19@broadcom.com>
Date: Tue, 4 Sep 2018 13:39:30 -0700
From: Ray Jui <ray.jui@...adcom.com>
To: Florian Fainelli <f.fainelli@...il.com>,
linux-arm-kernel@...ts.infradead.org
Cc: Rob Herring <robh+dt@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Ray Jui <rjui@...adcom.com>,
Scott Branden <sbranden@...adcom.com>,
Jon Mason <jonmason@...adcom.com>,
"maintainer:BROADCOM IPROC ARM ARCHITECTURE"
<bcm-kernel-feedback-list@...adcom.com>,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@...r.kernel.org>,
open list <linux-kernel@...r.kernel.org>, andrew@...n.ch,
rmk+kernel@...linux.org.uk
Subject: Re: [PATCH v3 1/3] ARM: dts: NSP: Enable SFP on bcm958625hr
On 8/31/2018 12:20 PM, Florian Fainelli wrote:
> Enable the SFP connected to port 5 of the switch and wire up all GPIOs
> to the SFP cage. Because of a hardware limitation of the i2c controller
> on the iProc SoCs which prevents large i2c (> 63 bytes) transactions to
> work, we use the i2c-gpio interface instead, which does not have that
> limitation. This allows us to read the SFP module EEPROM, which would
> not be possible otherwise since it exceeds that size during a single
> read transfer.
>
> Signed-off-by: Florian Fainelli <f.fainelli@...il.com>
> ---
> arch/arm/boot/dts/bcm958625hr.dts | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/arch/arm/boot/dts/bcm958625hr.dts b/arch/arm/boot/dts/bcm958625hr.dts
> index ea3fc194f8f3..a53a2f629d74 100644
> --- a/arch/arm/boot/dts/bcm958625hr.dts
> +++ b/arch/arm/boot/dts/bcm958625hr.dts
> @@ -58,6 +58,24 @@
> open-source;
> priority = <200>;
> };
> +
> + /* Hardware I2C block cannot do more than 63 bytes per transfer,
> + * which would prevent reading from a SFP's EEPROM (256 byte).
> + */
> + i2c1: i2c {
> + compatible = "i2c-gpio";
> + sda-gpios = <&gpioa 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> + scl-gpios = <&gpioa 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> + };
> +
> + sfp: sfp {
> + compatible = "sff,sfp";
> + i2c-bus = <&i2c1>;
> + mod-def0-gpios = <&gpioa 28 GPIO_ACTIVE_LOW>;
> + los-gpios = <&gpioa 24 GPIO_ACTIVE_HIGH>;
> + tx-fault-gpios = <&gpioa 30 GPIO_ACTIVE_HIGH>;
> + tx-disable-gpios = <&gpioa 26 GPIO_ACTIVE_HIGH>;
> + };
> };
>
> &amac0 {
> @@ -210,6 +228,14 @@
> reg = <4>;
> };
>
> + port@5 {
> + label = "sfp";
> + phy-mode = "sgmii";
> + reg = <5>;
> + sfp = <&sfp>;
> + managed = "in-band-status";
> + };
> +
> port@8 {
> ethernet = <&amac2>;
> label = "cpu";
>
Looks good to me. Thanks!
Reviewed-by: Ray Jui <ray.jui@...adcom.com>
Powered by blists - more mailing lists