* [PATCH v2 net-next 1/4] dt-bindings: net: convert sff,sfp to dtschema
2022-07-04 13:42 [PATCH v2 net-next 0/4] dt-bindings: net: convert sff,sfp to dtschema Ioana Ciornei
@ 2022-07-04 13:42 ` Ioana Ciornei
2022-07-04 13:42 ` [PATCH v2 net-next 2/4] dt-bindings: net: sff,sfp: rename example dt nodes to be more generic Ioana Ciornei
` (2 subsequent siblings)
3 siblings, 0 replies; 9+ messages in thread
From: Ioana Ciornei @ 2022-07-04 13:42 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni; +Cc: robh+dt, linux, devicetree, Ioana Ciornei
Convert the sff,sfp.txt bindings to the DT schema format.
Also add the new path to the list of maintained files.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
Changes in v2:
- used the -gpios suffix
- restricted the use of some gpios if the compatible is sff,sff
.../devicetree/bindings/net/sff,sfp.txt | 85 -----------
.../devicetree/bindings/net/sff,sfp.yaml | 143 ++++++++++++++++++
MAINTAINERS | 1 +
3 files changed, 144 insertions(+), 85 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/net/sff,sfp.txt
create mode 100644 Documentation/devicetree/bindings/net/sff,sfp.yaml
diff --git a/Documentation/devicetree/bindings/net/sff,sfp.txt b/Documentation/devicetree/bindings/net/sff,sfp.txt
deleted file mode 100644
index 832139919f20..000000000000
--- a/Documentation/devicetree/bindings/net/sff,sfp.txt
+++ /dev/null
@@ -1,85 +0,0 @@
-Small Form Factor (SFF) Committee Small Form-factor Pluggable (SFP)
-Transceiver
-
-Required properties:
-
-- compatible : must be one of
- "sff,sfp" for SFP modules
- "sff,sff" for soldered down SFF modules
-
-- i2c-bus : phandle of an I2C bus controller for the SFP two wire serial
- interface
-
-Optional Properties:
-
-- mod-def0-gpios : GPIO phandle and a specifier of the MOD-DEF0 (AKA Mod_ABS)
- module presence input gpio signal, active (module absent) high. Must
- not be present for SFF modules
-
-- los-gpios : GPIO phandle and a specifier of the Receiver Loss of Signal
- Indication input gpio signal, active (signal lost) high
-
-- tx-fault-gpios : GPIO phandle and a specifier of the Module Transmitter
- Fault input gpio signal, active (fault condition) high
-
-- tx-disable-gpios : GPIO phandle and a specifier of the Transmitter Disable
- output gpio signal, active (Tx disable) high
-
-- rate-select0-gpios : GPIO phandle and a specifier of the Rx Signaling Rate
- Select (AKA RS0) output gpio signal, low: low Rx rate, high: high Rx rate
- Must not be present for SFF modules
-
-- rate-select1-gpios : GPIO phandle and a specifier of the Tx Signaling Rate
- Select (AKA RS1) output gpio signal (SFP+ only), low: low Tx rate, high:
- high Tx rate. Must not be present for SFF modules
-
-- maximum-power-milliwatt : Maximum module power consumption
- Specifies the maximum power consumption allowable by a module in the
- slot, in milli-Watts. Presently, modules can be up to 1W, 1.5W or 2W.
-
-Example #1: Direct serdes to SFP connection
-
-sfp_eth3: sfp-eth3 {
- compatible = "sff,sfp";
- i2c-bus = <&sfp_1g_i2c>;
- los-gpios = <&cpm_gpio2 22 GPIO_ACTIVE_HIGH>;
- mod-def0-gpios = <&cpm_gpio2 21 GPIO_ACTIVE_LOW>;
- maximum-power-milliwatt = <1000>;
- pinctrl-names = "default";
- pinctrl-0 = <&cpm_sfp_1g_pins &cps_sfp_1g_pins>;
- tx-disable-gpios = <&cps_gpio1 24 GPIO_ACTIVE_HIGH>;
- tx-fault-gpios = <&cpm_gpio2 19 GPIO_ACTIVE_HIGH>;
-};
-
-&cps_emac3 {
- phy-names = "comphy";
- phys = <&cps_comphy5 0>;
- sfp = <&sfp_eth3>;
-};
-
-Example #2: Serdes to PHY to SFP connection
-
-sfp_eth0: sfp-eth0 {
- compatible = "sff,sfp";
- i2c-bus = <&sfpp0_i2c>;
- los-gpios = <&cps_gpio1 28 GPIO_ACTIVE_HIGH>;
- mod-def0-gpios = <&cps_gpio1 27 GPIO_ACTIVE_LOW>;
- pinctrl-names = "default";
- pinctrl-0 = <&cps_sfpp0_pins>;
- tx-disable-gpios = <&cps_gpio1 29 GPIO_ACTIVE_HIGH>;
- tx-fault-gpios = <&cps_gpio1 26 GPIO_ACTIVE_HIGH>;
-};
-
-p0_phy: ethernet-phy@0 {
- compatible = "ethernet-phy-ieee802.3-c45";
- pinctrl-names = "default";
- pinctrl-0 = <&cpm_phy0_pins &cps_phy0_pins>;
- reg = <0>;
- interrupt = <&cpm_gpio2 18 IRQ_TYPE_EDGE_FALLING>;
- sfp = <&sfp_eth0>;
-};
-
-&cpm_eth0 {
- phy = <&p0_phy>;
- phy-mode = "10gbase-kr";
-};
diff --git a/Documentation/devicetree/bindings/net/sff,sfp.yaml b/Documentation/devicetree/bindings/net/sff,sfp.yaml
new file mode 100644
index 000000000000..86f3ed2546d9
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/sff,sfp.yaml
@@ -0,0 +1,143 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/net/sff,sfp.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Small Form Factor (SFF) Committee Small Form-factor Pluggable (SFP)
+ Transceiver
+
+maintainers:
+ - Russell King <linux@armlinux.org.uk>
+
+properties:
+ compatible:
+ enum:
+ - sff,sfp # for SFP modules
+ - sff,sff # for soldered down SFF modules
+
+ i2c-bus:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ phandle of an I2C bus controller for the SFP two wire serial
+
+ maximum-power-milliwatt:
+ maxItems: 1
+ description:
+ Maximum module power consumption Specifies the maximum power consumption
+ allowable by a module in the slot, in milli-Watts. Presently, modules can
+ be up to 1W, 1.5W or 2W.
+
+patternProperties:
+ "mod-def0-gpios":
+ maxItems: 1
+ description:
+ GPIO phandle and a specifier of the MOD-DEF0 (AKA Mod_ABS) module
+ presence input gpio signal, active (module absent) high. Must not be
+ present for SFF modules
+
+ "los-gpios":
+ maxItems: 1
+ description:
+ GPIO phandle and a specifier of the Receiver Loss of Signal Indication
+ input gpio signal, active (signal lost) high
+
+ "tx-fault-gpios":
+ maxItems: 1
+ description:
+ GPIO phandle and a specifier of the Module Transmitter Fault input gpio
+ signal, active (fault condition) high
+
+ "tx-disable-gpios":
+ maxItems: 1
+ description:
+ GPIO phandle and a specifier of the Transmitter Disable output gpio
+ signal, active (Tx disable) high
+
+ "rate-select0-gpios":
+ maxItems: 1
+ description:
+ GPIO phandle and a specifier of the Rx Signaling Rate Select (AKA RS0)
+ output gpio signal, low - low Rx rate, high - high Rx rate Must not be
+ present for SFF modules
+
+ "rate-select1-gpios":
+ maxItems: 1
+ description:
+ GPIO phandle and a specifier of the Tx Signaling Rate Select (AKA RS1)
+ output gpio signal (SFP+ only), low - low Tx rate, high - high Tx rate. Must
+ not be present for SFF modules
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: sff,sff
+ then:
+ properties:
+ mod-def0-gpios: false
+ rate-select0-gpios: false
+ rate-select1-gpios: false
+
+required:
+ - compatible
+ - i2c-bus
+
+additionalProperties: false
+
+examples:
+ - | # Direct serdes to SFP connection
+ #include <dt-bindings/gpio/gpio.h>
+
+ sfp_eth3: sfp-eth3 {
+ compatible = "sff,sfp";
+ i2c-bus = <&sfp_1g_i2c>;
+ los-gpios = <&cpm_gpio2 22 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&cpm_gpio2 21 GPIO_ACTIVE_LOW>;
+ maximum-power-milliwatt = <1000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&cpm_sfp_1g_pins &cps_sfp_1g_pins>;
+ tx-disable-gpios = <&cps_gpio1 24 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&cpm_gpio2 19 GPIO_ACTIVE_HIGH>;
+ };
+
+ cps_emac3 {
+ phy-names = "comphy";
+ phys = <&cps_comphy5 0>;
+ sfp = <&sfp_eth3>;
+ };
+
+ - | # Serdes to PHY to SFP connection
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ sfp_eth0: sfp-eth0 {
+ compatible = "sff,sfp";
+ i2c-bus = <&sfpp0_i2c>;
+ los-gpios = <&cps_gpio1 28 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&cps_gpio1 27 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&cps_sfpp0_pins>;
+ tx-disable-gpios = <&cps_gpio1 29 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&cps_gpio1 26 GPIO_ACTIVE_HIGH>;
+ };
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ p0_phy: ethernet-phy@0 {
+ compatible = "ethernet-phy-ieee802.3-c45";
+ pinctrl-names = "default";
+ pinctrl-0 = <&cpm_phy0_pins &cps_phy0_pins>;
+ reg = <0>;
+ interrupt = <&cpm_gpio2 18 IRQ_TYPE_EDGE_FALLING>;
+ sfp = <&sfp_eth0>;
+ };
+ };
+
+ cpm_eth0 {
+ phy = <&p0_phy>;
+ phy-mode = "10gbase-kr";
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 28108e4fdb8f..8677878603fe 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -18110,6 +18110,7 @@ SFF/SFP/SFP+ MODULE SUPPORT
M: Russell King <linux@armlinux.org.uk>
L: netdev@vger.kernel.org
S: Maintained
+F: Documentation/devicetree/bindings/net/sff,sfp.yaml
F: drivers/net/phy/phylink.c
F: drivers/net/phy/sfp*
F: include/linux/mdio/mdio-i2c.h
--
2.17.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 net-next 2/4] dt-bindings: net: sff,sfp: rename example dt nodes to be more generic
2022-07-04 13:42 [PATCH v2 net-next 0/4] dt-bindings: net: convert sff,sfp to dtschema Ioana Ciornei
2022-07-04 13:42 ` [PATCH v2 net-next 1/4] " Ioana Ciornei
@ 2022-07-04 13:42 ` Ioana Ciornei
2022-07-04 13:42 ` [PATCH v2 net-next 3/4] arch: arm64: dts: lx2160a-clearfog-itx: rename the sfp GPIO properties Ioana Ciornei
2022-07-04 13:42 ` [PATCH v2 net-next 4/4] arch: arm64: dts: marvell: " Ioana Ciornei
3 siblings, 0 replies; 9+ messages in thread
From: Ioana Ciornei @ 2022-07-04 13:42 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni; +Cc: robh+dt, linux, devicetree, Ioana Ciornei
Rename the dt nodes shown in the sff,sfp.yaml examples so that they are
generic and not really tied to a specific platform.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
Changes in v2:
- new patch
.../devicetree/bindings/net/sff,sfp.yaml | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/sff,sfp.yaml b/Documentation/devicetree/bindings/net/sff,sfp.yaml
index 86f3ed2546d9..e309395ea7e7 100644
--- a/Documentation/devicetree/bindings/net/sff,sfp.yaml
+++ b/Documentation/devicetree/bindings/net/sff,sfp.yaml
@@ -90,7 +90,7 @@ examples:
- | # Direct serdes to SFP connection
#include <dt-bindings/gpio/gpio.h>
- sfp_eth3: sfp-eth3 {
+ sfp1: sfp {
compatible = "sff,sfp";
i2c-bus = <&sfp_1g_i2c>;
los-gpios = <&cpm_gpio2 22 GPIO_ACTIVE_HIGH>;
@@ -102,19 +102,19 @@ examples:
tx-fault-gpios = <&cpm_gpio2 19 GPIO_ACTIVE_HIGH>;
};
- cps_emac3 {
+ ethernet {
phy-names = "comphy";
phys = <&cps_comphy5 0>;
- sfp = <&sfp_eth3>;
+ sfp = <&sfp1>;
};
- | # Serdes to PHY to SFP connection
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
- sfp_eth0: sfp-eth0 {
+ sfp2: sfp {
compatible = "sff,sfp";
- i2c-bus = <&sfpp0_i2c>;
+ i2c-bus = <&sfp_i2c>;
los-gpios = <&cps_gpio1 28 GPIO_ACTIVE_HIGH>;
mod-def0-gpios = <&cps_gpio1 27 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
@@ -127,17 +127,17 @@ examples:
#address-cells = <1>;
#size-cells = <0>;
- p0_phy: ethernet-phy@0 {
+ phy: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c45";
pinctrl-names = "default";
pinctrl-0 = <&cpm_phy0_pins &cps_phy0_pins>;
reg = <0>;
interrupt = <&cpm_gpio2 18 IRQ_TYPE_EDGE_FALLING>;
- sfp = <&sfp_eth0>;
+ sfp = <&sfp2>;
};
};
- cpm_eth0 {
- phy = <&p0_phy>;
+ ethernet {
+ phy = <&phy>;
phy-mode = "10gbase-kr";
};
--
2.17.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 net-next 3/4] arch: arm64: dts: lx2160a-clearfog-itx: rename the sfp GPIO properties
2022-07-04 13:42 [PATCH v2 net-next 0/4] dt-bindings: net: convert sff,sfp to dtschema Ioana Ciornei
2022-07-04 13:42 ` [PATCH v2 net-next 1/4] " Ioana Ciornei
2022-07-04 13:42 ` [PATCH v2 net-next 2/4] dt-bindings: net: sff,sfp: rename example dt nodes to be more generic Ioana Ciornei
@ 2022-07-04 13:42 ` Ioana Ciornei
2022-07-04 13:42 ` [PATCH v2 net-next 4/4] arch: arm64: dts: marvell: " Ioana Ciornei
3 siblings, 0 replies; 9+ messages in thread
From: Ioana Ciornei @ 2022-07-04 13:42 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni; +Cc: robh+dt, linux, devicetree, Ioana Ciornei
Rename the 'mod-def0-gpio' property to 'mod-def0-gpios' so that we use
the preferred -gpios suffix. Also, with this change the dtb_check will
not complain when trying to verify the DTS against the sff,sfp.yaml
binding.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
Changes in v2:
- new patch
.../boot/dts/freescale/fsl-lx2160a-clearfog-itx.dtsi | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-clearfog-itx.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a-clearfog-itx.dtsi
index 41702e7386e3..a7dcbecc1f41 100644
--- a/arch/arm64/boot/dts/freescale/fsl-lx2160a-clearfog-itx.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-clearfog-itx.dtsi
@@ -34,28 +34,28 @@
sfp0: sfp-0 {
compatible = "sff,sfp";
i2c-bus = <&sfp0_i2c>;
- mod-def0-gpio = <&gpio2 0 GPIO_ACTIVE_LOW>;
+ mod-def0-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
maximum-power-milliwatt = <2000>;
};
sfp1: sfp-1 {
compatible = "sff,sfp";
i2c-bus = <&sfp1_i2c>;
- mod-def0-gpio = <&gpio2 9 GPIO_ACTIVE_LOW>;
+ mod-def0-gpios = <&gpio2 9 GPIO_ACTIVE_LOW>;
maximum-power-milliwatt = <2000>;
};
sfp2: sfp-2 {
compatible = "sff,sfp";
i2c-bus = <&sfp2_i2c>;
- mod-def0-gpio = <&gpio2 10 GPIO_ACTIVE_LOW>;
+ mod-def0-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
maximum-power-milliwatt = <2000>;
};
sfp3: sfp-3 {
compatible = "sff,sfp";
i2c-bus = <&sfp3_i2c>;
- mod-def0-gpio = <&gpio2 11 GPIO_ACTIVE_LOW>;
+ mod-def0-gpios = <&gpio2 11 GPIO_ACTIVE_LOW>;
maximum-power-milliwatt = <2000>;
};
};
--
2.17.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 net-next 4/4] arch: arm64: dts: marvell: rename the sfp GPIO properties
2022-07-04 13:42 [PATCH v2 net-next 0/4] dt-bindings: net: convert sff,sfp to dtschema Ioana Ciornei
` (2 preceding siblings ...)
2022-07-04 13:42 ` [PATCH v2 net-next 3/4] arch: arm64: dts: lx2160a-clearfog-itx: rename the sfp GPIO properties Ioana Ciornei
@ 2022-07-04 13:42 ` Ioana Ciornei
3 siblings, 0 replies; 9+ messages in thread
From: Ioana Ciornei @ 2022-07-04 13:42 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni; +Cc: robh+dt, linux, devicetree, Ioana Ciornei
Rename the GPIO related sfp properties to include the preffered -gpios
suffix. Also, with this change the dtb_check will no longer complain
when trying to verify the DTS against the sff,sfp.yaml binding.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
Changes in v2:
- new patch
.../dts/marvell/armada-3720-turris-mox.dts | 10 ++++----
.../boot/dts/marvell/armada-3720-uDPU.dts | 16 ++++++-------
.../boot/dts/marvell/armada-7040-mochabin.dts | 16 ++++++-------
.../marvell/armada-8040-clearfog-gt-8k.dts | 4 ++--
.../boot/dts/marvell/armada-8040-mcbin.dtsi | 24 +++++++++----------
.../dts/marvell/armada-8040-puzzle-m801.dts | 16 ++++++-------
arch/arm64/boot/dts/marvell/cn9130-crb.dtsi | 6 ++---
arch/arm64/boot/dts/marvell/cn9130-db.dtsi | 8 +++----
arch/arm64/boot/dts/marvell/cn9131-db.dtsi | 8 +++----
arch/arm64/boot/dts/marvell/cn9132-db.dtsi | 8 +++----
10 files changed, 58 insertions(+), 58 deletions(-)
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
index caf9c8529fca..cbf75ddd6857 100644
--- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
@@ -100,11 +100,11 @@
sfp: sfp {
compatible = "sff,sfp";
i2c-bus = <&i2c0>;
- los-gpio = <&moxtet_sfp 0 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&moxtet_sfp 1 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&moxtet_sfp 2 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&moxtet_sfp 4 GPIO_ACTIVE_HIGH>;
- rate-select0-gpio = <&moxtet_sfp 5 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&moxtet_sfp 0 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&moxtet_sfp 1 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&moxtet_sfp 2 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&moxtet_sfp 4 GPIO_ACTIVE_HIGH>;
+ rate-select0-gpios = <&moxtet_sfp 5 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <3000>;
/* enabled by U-Boot if SFP module is present */
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
index a35317d24d6c..b20c8e7d923b 100644
--- a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
@@ -65,20 +65,20 @@
sfp_eth0: sfp-eth0 {
compatible = "sff,sfp";
i2c-bus = <&i2c0>;
- los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <3000>;
};
sfp_eth1: sfp-eth1 {
compatible = "sff,sfp";
i2c-bus = <&i2c1>;
- los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&gpiosb 8 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <3000>;
};
};
diff --git a/arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts b/arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts
index 39a8e5e99d79..5f6ed735e31a 100644
--- a/arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts
+++ b/arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts
@@ -34,20 +34,20 @@
sfp_eth0: sfp-eth0 {
compatible = "sff,sfp";
i2c-bus = <&cp0_i2c1>;
- los-gpio = <&sfp_gpio 3 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&sfp_gpio 2 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&sfp_gpio 1 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&sfp_gpio 0 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&sfp_gpio 3 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&sfp_gpio 2 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&sfp_gpio 1 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&sfp_gpio 0 GPIO_ACTIVE_HIGH>;
};
/* SFP 1G */
sfp_eth2: sfp-eth2 {
compatible = "sff,sfp";
i2c-bus = <&cp0_i2c0>;
- los-gpio = <&sfp_gpio 7 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&sfp_gpio 6 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&sfp_gpio 5 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&sfp_gpio 4 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&sfp_gpio 7 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&sfp_gpio 6 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&sfp_gpio 5 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&sfp_gpio 4 GPIO_ACTIVE_HIGH>;
};
};
diff --git a/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts b/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts
index 871f84b4a6ed..079c2745070a 100644
--- a/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts
+++ b/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts
@@ -64,8 +64,8 @@
sfp_cp0_eth0: sfp-cp0-eth0 {
compatible = "sff,sfp";
i2c-bus = <&cp0_i2c1>;
- mod-def0-gpio = <&cp0_gpio2 17 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&cp1_gpio1 29 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&cp0_gpio2 17 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&cp1_gpio1 29 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cp0_sfp_present_pins &cp1_sfp_tx_disable_pins>;
maximum-power-milliwatt = <2000>;
diff --git a/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi b/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi
index 779cf167c33e..33c179838e24 100644
--- a/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi
@@ -65,10 +65,10 @@
/* CON15,16 - CPM lane 4 */
compatible = "sff,sfp";
i2c-bus = <&sfpp0_i2c>;
- los-gpio = <&cp1_gpio1 28 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&cp1_gpio1 27 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&cp1_gpio1 29 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&cp1_gpio1 26 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&cp1_gpio1 28 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&cp1_gpio1 27 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&cp1_gpio1 29 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&cp1_gpio1 26 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cp1_sfpp0_pins>;
maximum-power-milliwatt = <2000>;
@@ -78,10 +78,10 @@
/* CON17,18 - CPS lane 4 */
compatible = "sff,sfp";
i2c-bus = <&sfpp1_i2c>;
- los-gpio = <&cp1_gpio1 8 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&cp1_gpio1 11 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&cp1_gpio1 10 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&cp0_gpio2 30 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&cp1_gpio1 8 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&cp1_gpio1 11 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&cp1_gpio1 10 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&cp0_gpio2 30 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cp1_sfpp1_pins &cp0_sfpp1_pins>;
maximum-power-milliwatt = <2000>;
@@ -91,10 +91,10 @@
/* CON13,14 - CPS lane 5 */
compatible = "sff,sfp";
i2c-bus = <&sfp_1g_i2c>;
- los-gpio = <&cp0_gpio2 22 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&cp0_gpio2 21 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&cp1_gpio1 24 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&cp0_gpio2 19 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&cp0_gpio2 22 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&cp0_gpio2 21 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&cp1_gpio1 24 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&cp0_gpio2 19 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cp0_sfp_1g_pins &cp1_sfp_1g_pins>;
maximum-power-milliwatt = <2000>;
diff --git a/arch/arm64/boot/dts/marvell/armada-8040-puzzle-m801.dts b/arch/arm64/boot/dts/marvell/armada-8040-puzzle-m801.dts
index 74bed79e4f5e..72e9b0f671a9 100644
--- a/arch/arm64/boot/dts/marvell/armada-8040-puzzle-m801.dts
+++ b/arch/arm64/boot/dts/marvell/armada-8040-puzzle-m801.dts
@@ -67,20 +67,20 @@
sfp_cp0_eth0: sfp-cp0-eth0 {
compatible = "sff,sfp";
i2c-bus = <&sfpplus0_i2c>;
- los-gpio = <&sfpplus_gpio 11 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&sfpplus_gpio 10 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&sfpplus_gpio 9 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&sfpplus_gpio 8 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&sfpplus_gpio 11 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&sfpplus_gpio 10 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&sfpplus_gpio 9 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&sfpplus_gpio 8 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <3000>;
};
sfp_cp1_eth0: sfp-cp1-eth0 {
compatible = "sff,sfp";
i2c-bus = <&sfpplus1_i2c>;
- los-gpio = <&sfpplus_gpio 3 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&sfpplus_gpio 2 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&sfpplus_gpio 1 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&sfpplus_gpio 0 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&sfpplus_gpio 3 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&sfpplus_gpio 2 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&sfpplus_gpio 1 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&sfpplus_gpio 0 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <3000>;
};
diff --git a/arch/arm64/boot/dts/marvell/cn9130-crb.dtsi b/arch/arm64/boot/dts/marvell/cn9130-crb.dtsi
index 1acd746284dc..8e4ec243fb8f 100644
--- a/arch/arm64/boot/dts/marvell/cn9130-crb.dtsi
+++ b/arch/arm64/boot/dts/marvell/cn9130-crb.dtsi
@@ -78,9 +78,9 @@
compatible = "sff,sfp";
i2c-bus = <&cp0_i2c1>;
mod-def0-gpios = <&expander0 3 GPIO_ACTIVE_LOW>;
- los-gpio = <&expander0 15 GPIO_ACTIVE_HIGH>;
- tx-disable-gpio = <&expander0 2 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&cp0_gpio1 24 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&expander0 15 GPIO_ACTIVE_HIGH>;
+ tx-disable-gpios = <&expander0 2 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&cp0_gpio1 24 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <3000>;
status = "okay";
};
diff --git a/arch/arm64/boot/dts/marvell/cn9130-db.dtsi b/arch/arm64/boot/dts/marvell/cn9130-db.dtsi
index 7e20987253a3..85d7ce13e70a 100644
--- a/arch/arm64/boot/dts/marvell/cn9130-db.dtsi
+++ b/arch/arm64/boot/dts/marvell/cn9130-db.dtsi
@@ -90,10 +90,10 @@
cp0_sfp_eth0: sfp-eth@0 {
compatible = "sff,sfp";
i2c-bus = <&cp0_sfpp0_i2c>;
- los-gpio = <&cp0_module_expander1 11 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&cp0_module_expander1 10 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&cp0_module_expander1 9 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&cp0_module_expander1 8 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&cp0_module_expander1 11 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&cp0_module_expander1 10 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&cp0_module_expander1 9 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&cp0_module_expander1 8 GPIO_ACTIVE_HIGH>;
/*
* SFP cages are unconnected on early PCBs because of an the I2C
* lanes not being connected. Prevent the port for being
diff --git a/arch/arm64/boot/dts/marvell/cn9131-db.dtsi b/arch/arm64/boot/dts/marvell/cn9131-db.dtsi
index b7fc241a228c..ff8422fae31b 100644
--- a/arch/arm64/boot/dts/marvell/cn9131-db.dtsi
+++ b/arch/arm64/boot/dts/marvell/cn9131-db.dtsi
@@ -37,10 +37,10 @@
cp1_sfp_eth1: sfp-eth1 {
compatible = "sff,sfp";
i2c-bus = <&cp1_i2c0>;
- los-gpio = <&cp1_gpio1 11 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&cp1_gpio1 10 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&cp1_gpio1 9 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&cp1_gpio1 8 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&cp1_gpio1 11 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&cp1_gpio1 10 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&cp1_gpio1 9 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&cp1_gpio1 8 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&cp1_sfp_pins>;
/*
diff --git a/arch/arm64/boot/dts/marvell/cn9132-db.dtsi b/arch/arm64/boot/dts/marvell/cn9132-db.dtsi
index 3f1795fb4fe7..512a4fa2861e 100644
--- a/arch/arm64/boot/dts/marvell/cn9132-db.dtsi
+++ b/arch/arm64/boot/dts/marvell/cn9132-db.dtsi
@@ -57,10 +57,10 @@
cp2_sfp_eth0: sfp-eth0 {
compatible = "sff,sfp";
i2c-bus = <&cp2_sfpp0_i2c>;
- los-gpio = <&cp2_module_expander1 11 GPIO_ACTIVE_HIGH>;
- mod-def0-gpio = <&cp2_module_expander1 10 GPIO_ACTIVE_LOW>;
- tx-disable-gpio = <&cp2_module_expander1 9 GPIO_ACTIVE_HIGH>;
- tx-fault-gpio = <&cp2_module_expander1 8 GPIO_ACTIVE_HIGH>;
+ los-gpios = <&cp2_module_expander1 11 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&cp2_module_expander1 10 GPIO_ACTIVE_LOW>;
+ tx-disable-gpios = <&cp2_module_expander1 9 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&cp2_module_expander1 8 GPIO_ACTIVE_HIGH>;
/*
* SFP cages are unconnected on early PCBs because of an the I2C
* lanes not being connected. Prevent the port for being
--
2.17.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 net-next 1/4] dt-bindings: net: convert sff,sfp to dtschema
2022-07-04 13:46 [PATCH v2 net-next 0/4] dt-bindings: net: convert sff,sfp to dtschema Ioana Ciornei
@ 2022-07-04 13:46 ` Ioana Ciornei
2022-07-05 21:29 ` Rob Herring
0 siblings, 1 reply; 9+ messages in thread
From: Ioana Ciornei @ 2022-07-04 13:46 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni, netdev
Cc: robh+dt, linux, devicetree, Ioana Ciornei
Convert the sff,sfp.txt bindings to the DT schema format.
Also add the new path to the list of maintained files.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
Changes in v2:
- used the -gpios suffix
- restricted the use of some gpios if the compatible is sff,sff
.../devicetree/bindings/net/sff,sfp.txt | 85 -----------
.../devicetree/bindings/net/sff,sfp.yaml | 143 ++++++++++++++++++
MAINTAINERS | 1 +
3 files changed, 144 insertions(+), 85 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/net/sff,sfp.txt
create mode 100644 Documentation/devicetree/bindings/net/sff,sfp.yaml
diff --git a/Documentation/devicetree/bindings/net/sff,sfp.txt b/Documentation/devicetree/bindings/net/sff,sfp.txt
deleted file mode 100644
index 832139919f20..000000000000
--- a/Documentation/devicetree/bindings/net/sff,sfp.txt
+++ /dev/null
@@ -1,85 +0,0 @@
-Small Form Factor (SFF) Committee Small Form-factor Pluggable (SFP)
-Transceiver
-
-Required properties:
-
-- compatible : must be one of
- "sff,sfp" for SFP modules
- "sff,sff" for soldered down SFF modules
-
-- i2c-bus : phandle of an I2C bus controller for the SFP two wire serial
- interface
-
-Optional Properties:
-
-- mod-def0-gpios : GPIO phandle and a specifier of the MOD-DEF0 (AKA Mod_ABS)
- module presence input gpio signal, active (module absent) high. Must
- not be present for SFF modules
-
-- los-gpios : GPIO phandle and a specifier of the Receiver Loss of Signal
- Indication input gpio signal, active (signal lost) high
-
-- tx-fault-gpios : GPIO phandle and a specifier of the Module Transmitter
- Fault input gpio signal, active (fault condition) high
-
-- tx-disable-gpios : GPIO phandle and a specifier of the Transmitter Disable
- output gpio signal, active (Tx disable) high
-
-- rate-select0-gpios : GPIO phandle and a specifier of the Rx Signaling Rate
- Select (AKA RS0) output gpio signal, low: low Rx rate, high: high Rx rate
- Must not be present for SFF modules
-
-- rate-select1-gpios : GPIO phandle and a specifier of the Tx Signaling Rate
- Select (AKA RS1) output gpio signal (SFP+ only), low: low Tx rate, high:
- high Tx rate. Must not be present for SFF modules
-
-- maximum-power-milliwatt : Maximum module power consumption
- Specifies the maximum power consumption allowable by a module in the
- slot, in milli-Watts. Presently, modules can be up to 1W, 1.5W or 2W.
-
-Example #1: Direct serdes to SFP connection
-
-sfp_eth3: sfp-eth3 {
- compatible = "sff,sfp";
- i2c-bus = <&sfp_1g_i2c>;
- los-gpios = <&cpm_gpio2 22 GPIO_ACTIVE_HIGH>;
- mod-def0-gpios = <&cpm_gpio2 21 GPIO_ACTIVE_LOW>;
- maximum-power-milliwatt = <1000>;
- pinctrl-names = "default";
- pinctrl-0 = <&cpm_sfp_1g_pins &cps_sfp_1g_pins>;
- tx-disable-gpios = <&cps_gpio1 24 GPIO_ACTIVE_HIGH>;
- tx-fault-gpios = <&cpm_gpio2 19 GPIO_ACTIVE_HIGH>;
-};
-
-&cps_emac3 {
- phy-names = "comphy";
- phys = <&cps_comphy5 0>;
- sfp = <&sfp_eth3>;
-};
-
-Example #2: Serdes to PHY to SFP connection
-
-sfp_eth0: sfp-eth0 {
- compatible = "sff,sfp";
- i2c-bus = <&sfpp0_i2c>;
- los-gpios = <&cps_gpio1 28 GPIO_ACTIVE_HIGH>;
- mod-def0-gpios = <&cps_gpio1 27 GPIO_ACTIVE_LOW>;
- pinctrl-names = "default";
- pinctrl-0 = <&cps_sfpp0_pins>;
- tx-disable-gpios = <&cps_gpio1 29 GPIO_ACTIVE_HIGH>;
- tx-fault-gpios = <&cps_gpio1 26 GPIO_ACTIVE_HIGH>;
-};
-
-p0_phy: ethernet-phy@0 {
- compatible = "ethernet-phy-ieee802.3-c45";
- pinctrl-names = "default";
- pinctrl-0 = <&cpm_phy0_pins &cps_phy0_pins>;
- reg = <0>;
- interrupt = <&cpm_gpio2 18 IRQ_TYPE_EDGE_FALLING>;
- sfp = <&sfp_eth0>;
-};
-
-&cpm_eth0 {
- phy = <&p0_phy>;
- phy-mode = "10gbase-kr";
-};
diff --git a/Documentation/devicetree/bindings/net/sff,sfp.yaml b/Documentation/devicetree/bindings/net/sff,sfp.yaml
new file mode 100644
index 000000000000..86f3ed2546d9
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/sff,sfp.yaml
@@ -0,0 +1,143 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/net/sff,sfp.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Small Form Factor (SFF) Committee Small Form-factor Pluggable (SFP)
+ Transceiver
+
+maintainers:
+ - Russell King <linux@armlinux.org.uk>
+
+properties:
+ compatible:
+ enum:
+ - sff,sfp # for SFP modules
+ - sff,sff # for soldered down SFF modules
+
+ i2c-bus:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ phandle of an I2C bus controller for the SFP two wire serial
+
+ maximum-power-milliwatt:
+ maxItems: 1
+ description:
+ Maximum module power consumption Specifies the maximum power consumption
+ allowable by a module in the slot, in milli-Watts. Presently, modules can
+ be up to 1W, 1.5W or 2W.
+
+patternProperties:
+ "mod-def0-gpios":
+ maxItems: 1
+ description:
+ GPIO phandle and a specifier of the MOD-DEF0 (AKA Mod_ABS) module
+ presence input gpio signal, active (module absent) high. Must not be
+ present for SFF modules
+
+ "los-gpios":
+ maxItems: 1
+ description:
+ GPIO phandle and a specifier of the Receiver Loss of Signal Indication
+ input gpio signal, active (signal lost) high
+
+ "tx-fault-gpios":
+ maxItems: 1
+ description:
+ GPIO phandle and a specifier of the Module Transmitter Fault input gpio
+ signal, active (fault condition) high
+
+ "tx-disable-gpios":
+ maxItems: 1
+ description:
+ GPIO phandle and a specifier of the Transmitter Disable output gpio
+ signal, active (Tx disable) high
+
+ "rate-select0-gpios":
+ maxItems: 1
+ description:
+ GPIO phandle and a specifier of the Rx Signaling Rate Select (AKA RS0)
+ output gpio signal, low - low Rx rate, high - high Rx rate Must not be
+ present for SFF modules
+
+ "rate-select1-gpios":
+ maxItems: 1
+ description:
+ GPIO phandle and a specifier of the Tx Signaling Rate Select (AKA RS1)
+ output gpio signal (SFP+ only), low - low Tx rate, high - high Tx rate. Must
+ not be present for SFF modules
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: sff,sff
+ then:
+ properties:
+ mod-def0-gpios: false
+ rate-select0-gpios: false
+ rate-select1-gpios: false
+
+required:
+ - compatible
+ - i2c-bus
+
+additionalProperties: false
+
+examples:
+ - | # Direct serdes to SFP connection
+ #include <dt-bindings/gpio/gpio.h>
+
+ sfp_eth3: sfp-eth3 {
+ compatible = "sff,sfp";
+ i2c-bus = <&sfp_1g_i2c>;
+ los-gpios = <&cpm_gpio2 22 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&cpm_gpio2 21 GPIO_ACTIVE_LOW>;
+ maximum-power-milliwatt = <1000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&cpm_sfp_1g_pins &cps_sfp_1g_pins>;
+ tx-disable-gpios = <&cps_gpio1 24 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&cpm_gpio2 19 GPIO_ACTIVE_HIGH>;
+ };
+
+ cps_emac3 {
+ phy-names = "comphy";
+ phys = <&cps_comphy5 0>;
+ sfp = <&sfp_eth3>;
+ };
+
+ - | # Serdes to PHY to SFP connection
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ sfp_eth0: sfp-eth0 {
+ compatible = "sff,sfp";
+ i2c-bus = <&sfpp0_i2c>;
+ los-gpios = <&cps_gpio1 28 GPIO_ACTIVE_HIGH>;
+ mod-def0-gpios = <&cps_gpio1 27 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&cps_sfpp0_pins>;
+ tx-disable-gpios = <&cps_gpio1 29 GPIO_ACTIVE_HIGH>;
+ tx-fault-gpios = <&cps_gpio1 26 GPIO_ACTIVE_HIGH>;
+ };
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ p0_phy: ethernet-phy@0 {
+ compatible = "ethernet-phy-ieee802.3-c45";
+ pinctrl-names = "default";
+ pinctrl-0 = <&cpm_phy0_pins &cps_phy0_pins>;
+ reg = <0>;
+ interrupt = <&cpm_gpio2 18 IRQ_TYPE_EDGE_FALLING>;
+ sfp = <&sfp_eth0>;
+ };
+ };
+
+ cpm_eth0 {
+ phy = <&p0_phy>;
+ phy-mode = "10gbase-kr";
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 28108e4fdb8f..8677878603fe 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -18110,6 +18110,7 @@ SFF/SFP/SFP+ MODULE SUPPORT
M: Russell King <linux@armlinux.org.uk>
L: netdev@vger.kernel.org
S: Maintained
+F: Documentation/devicetree/bindings/net/sff,sfp.yaml
F: drivers/net/phy/phylink.c
F: drivers/net/phy/sfp*
F: include/linux/mdio/mdio-i2c.h
--
2.17.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH v2 net-next 1/4] dt-bindings: net: convert sff,sfp to dtschema
2022-07-04 13:46 ` [PATCH v2 net-next 1/4] " Ioana Ciornei
@ 2022-07-05 21:29 ` Rob Herring
2022-07-05 21:34 ` Russell King (Oracle)
2022-07-07 8:52 ` Ioana Ciornei
0 siblings, 2 replies; 9+ messages in thread
From: Rob Herring @ 2022-07-05 21:29 UTC (permalink / raw)
To: Ioana Ciornei; +Cc: davem, edumazet, kuba, pabeni, netdev, linux, devicetree
On Mon, Jul 04, 2022 at 04:46:01PM +0300, Ioana Ciornei wrote:
> Convert the sff,sfp.txt bindings to the DT schema format.
> Also add the new path to the list of maintained files.
>
> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
> ---
> Changes in v2:
> - used the -gpios suffix
> - restricted the use of some gpios if the compatible is sff,sff
>
> .../devicetree/bindings/net/sff,sfp.txt | 85 -----------
> .../devicetree/bindings/net/sff,sfp.yaml | 143 ++++++++++++++++++
> MAINTAINERS | 1 +
> 3 files changed, 144 insertions(+), 85 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/net/sff,sfp.txt
> create mode 100644 Documentation/devicetree/bindings/net/sff,sfp.yaml
>
> diff --git a/Documentation/devicetree/bindings/net/sff,sfp.txt b/Documentation/devicetree/bindings/net/sff,sfp.txt
> deleted file mode 100644
> index 832139919f20..000000000000
> --- a/Documentation/devicetree/bindings/net/sff,sfp.txt
> +++ /dev/null
> @@ -1,85 +0,0 @@
> -Small Form Factor (SFF) Committee Small Form-factor Pluggable (SFP)
> -Transceiver
> -
> -Required properties:
> -
> -- compatible : must be one of
> - "sff,sfp" for SFP modules
> - "sff,sff" for soldered down SFF modules
> -
> -- i2c-bus : phandle of an I2C bus controller for the SFP two wire serial
> - interface
> -
> -Optional Properties:
> -
> -- mod-def0-gpios : GPIO phandle and a specifier of the MOD-DEF0 (AKA Mod_ABS)
> - module presence input gpio signal, active (module absent) high. Must
> - not be present for SFF modules
> -
> -- los-gpios : GPIO phandle and a specifier of the Receiver Loss of Signal
> - Indication input gpio signal, active (signal lost) high
> -
> -- tx-fault-gpios : GPIO phandle and a specifier of the Module Transmitter
> - Fault input gpio signal, active (fault condition) high
> -
> -- tx-disable-gpios : GPIO phandle and a specifier of the Transmitter Disable
> - output gpio signal, active (Tx disable) high
> -
> -- rate-select0-gpios : GPIO phandle and a specifier of the Rx Signaling Rate
> - Select (AKA RS0) output gpio signal, low: low Rx rate, high: high Rx rate
> - Must not be present for SFF modules
> -
> -- rate-select1-gpios : GPIO phandle and a specifier of the Tx Signaling Rate
> - Select (AKA RS1) output gpio signal (SFP+ only), low: low Tx rate, high:
> - high Tx rate. Must not be present for SFF modules
> -
> -- maximum-power-milliwatt : Maximum module power consumption
> - Specifies the maximum power consumption allowable by a module in the
> - slot, in milli-Watts. Presently, modules can be up to 1W, 1.5W or 2W.
> -
> -Example #1: Direct serdes to SFP connection
> -
> -sfp_eth3: sfp-eth3 {
> - compatible = "sff,sfp";
> - i2c-bus = <&sfp_1g_i2c>;
> - los-gpios = <&cpm_gpio2 22 GPIO_ACTIVE_HIGH>;
> - mod-def0-gpios = <&cpm_gpio2 21 GPIO_ACTIVE_LOW>;
> - maximum-power-milliwatt = <1000>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&cpm_sfp_1g_pins &cps_sfp_1g_pins>;
> - tx-disable-gpios = <&cps_gpio1 24 GPIO_ACTIVE_HIGH>;
> - tx-fault-gpios = <&cpm_gpio2 19 GPIO_ACTIVE_HIGH>;
> -};
> -
> -&cps_emac3 {
> - phy-names = "comphy";
> - phys = <&cps_comphy5 0>;
> - sfp = <&sfp_eth3>;
> -};
> -
> -Example #2: Serdes to PHY to SFP connection
> -
> -sfp_eth0: sfp-eth0 {
> - compatible = "sff,sfp";
> - i2c-bus = <&sfpp0_i2c>;
> - los-gpios = <&cps_gpio1 28 GPIO_ACTIVE_HIGH>;
> - mod-def0-gpios = <&cps_gpio1 27 GPIO_ACTIVE_LOW>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&cps_sfpp0_pins>;
> - tx-disable-gpios = <&cps_gpio1 29 GPIO_ACTIVE_HIGH>;
> - tx-fault-gpios = <&cps_gpio1 26 GPIO_ACTIVE_HIGH>;
> -};
> -
> -p0_phy: ethernet-phy@0 {
> - compatible = "ethernet-phy-ieee802.3-c45";
> - pinctrl-names = "default";
> - pinctrl-0 = <&cpm_phy0_pins &cps_phy0_pins>;
> - reg = <0>;
> - interrupt = <&cpm_gpio2 18 IRQ_TYPE_EDGE_FALLING>;
> - sfp = <&sfp_eth0>;
> -};
> -
> -&cpm_eth0 {
> - phy = <&p0_phy>;
> - phy-mode = "10gbase-kr";
> -};
> diff --git a/Documentation/devicetree/bindings/net/sff,sfp.yaml b/Documentation/devicetree/bindings/net/sff,sfp.yaml
> new file mode 100644
> index 000000000000..86f3ed2546d9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/sff,sfp.yaml
> @@ -0,0 +1,143 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/net/sff,sfp.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Small Form Factor (SFF) Committee Small Form-factor Pluggable (SFP)
> + Transceiver
> +
> +maintainers:
> + - Russell King <linux@armlinux.org.uk>
> +
> +properties:
> + compatible:
> + enum:
> + - sff,sfp # for SFP modules
> + - sff,sff # for soldered down SFF modules
> +
> + i2c-bus:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description:
> + phandle of an I2C bus controller for the SFP two wire serial
> +
> + maximum-power-milliwatt:
> + maxItems: 1
> + description:
> + Maximum module power consumption Specifies the maximum power consumption
> + allowable by a module in the slot, in milli-Watts. Presently, modules can
> + be up to 1W, 1.5W or 2W.
enum: [ 1000, 1500, 2000 ]
Or is it not just those values? Maybe 'maximum: 2000' instead.
> +
> +patternProperties:
> + "mod-def0-gpios":
These aren't patterns. Move to 'properties'.
> + maxItems: 1
> + description:
> + GPIO phandle and a specifier of the MOD-DEF0 (AKA Mod_ABS) module
> + presence input gpio signal, active (module absent) high. Must not be
> + present for SFF modules
> +
> + "los-gpios":
> + maxItems: 1
> + description:
> + GPIO phandle and a specifier of the Receiver Loss of Signal Indication
> + input gpio signal, active (signal lost) high
> +
> + "tx-fault-gpios":
> + maxItems: 1
> + description:
> + GPIO phandle and a specifier of the Module Transmitter Fault input gpio
> + signal, active (fault condition) high
> +
> + "tx-disable-gpios":
> + maxItems: 1
> + description:
> + GPIO phandle and a specifier of the Transmitter Disable output gpio
> + signal, active (Tx disable) high
> +
> + "rate-select0-gpios":
> + maxItems: 1
> + description:
> + GPIO phandle and a specifier of the Rx Signaling Rate Select (AKA RS0)
> + output gpio signal, low - low Rx rate, high - high Rx rate Must not be
> + present for SFF modules
> +
> + "rate-select1-gpios":
> + maxItems: 1
> + description:
> + GPIO phandle and a specifier of the Tx Signaling Rate Select (AKA RS1)
> + output gpio signal (SFP+ only), low - low Tx rate, high - high Tx rate. Must
> + not be present for SFF modules
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: sff,sff
> + then:
> + properties:
> + mod-def0-gpios: false
> + rate-select0-gpios: false
> + rate-select1-gpios: false
> +
> +required:
> + - compatible
> + - i2c-bus
> +
> +additionalProperties: false
> +
> +examples:
> + - | # Direct serdes to SFP connection
> + #include <dt-bindings/gpio/gpio.h>
> +
> + sfp_eth3: sfp-eth3 {
> + compatible = "sff,sfp";
> + i2c-bus = <&sfp_1g_i2c>;
> + los-gpios = <&cpm_gpio2 22 GPIO_ACTIVE_HIGH>;
> + mod-def0-gpios = <&cpm_gpio2 21 GPIO_ACTIVE_LOW>;
> + maximum-power-milliwatt = <1000>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&cpm_sfp_1g_pins &cps_sfp_1g_pins>;
> + tx-disable-gpios = <&cps_gpio1 24 GPIO_ACTIVE_HIGH>;
> + tx-fault-gpios = <&cpm_gpio2 19 GPIO_ACTIVE_HIGH>;
> + };
> +
> + cps_emac3 {
> + phy-names = "comphy";
> + phys = <&cps_comphy5 0>;
> + sfp = <&sfp_eth3>;
> + };
> +
> + - | # Serdes to PHY to SFP connection
> + #include <dt-bindings/gpio/gpio.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> + sfp_eth0: sfp-eth0 {
> + compatible = "sff,sfp";
> + i2c-bus = <&sfpp0_i2c>;
> + los-gpios = <&cps_gpio1 28 GPIO_ACTIVE_HIGH>;
> + mod-def0-gpios = <&cps_gpio1 27 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&cps_sfpp0_pins>;
> + tx-disable-gpios = <&cps_gpio1 29 GPIO_ACTIVE_HIGH>;
> + tx-fault-gpios = <&cps_gpio1 26 GPIO_ACTIVE_HIGH>;
> + };
> +
> + mdio {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + p0_phy: ethernet-phy@0 {
> + compatible = "ethernet-phy-ieee802.3-c45";
> + pinctrl-names = "default";
> + pinctrl-0 = <&cpm_phy0_pins &cps_phy0_pins>;
> + reg = <0>;
> + interrupt = <&cpm_gpio2 18 IRQ_TYPE_EDGE_FALLING>;
> + sfp = <&sfp_eth0>;
> + };
> + };
> +
> + cpm_eth0 {
> + phy = <&p0_phy>;
> + phy-mode = "10gbase-kr";
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 28108e4fdb8f..8677878603fe 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -18110,6 +18110,7 @@ SFF/SFP/SFP+ MODULE SUPPORT
> M: Russell King <linux@armlinux.org.uk>
> L: netdev@vger.kernel.org
> S: Maintained
> +F: Documentation/devicetree/bindings/net/sff,sfp.yaml
> F: drivers/net/phy/phylink.c
> F: drivers/net/phy/sfp*
> F: include/linux/mdio/mdio-i2c.h
> --
> 2.17.1
>
>
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH v2 net-next 1/4] dt-bindings: net: convert sff,sfp to dtschema
2022-07-05 21:29 ` Rob Herring
@ 2022-07-05 21:34 ` Russell King (Oracle)
2022-07-07 8:52 ` Ioana Ciornei
1 sibling, 0 replies; 9+ messages in thread
From: Russell King (Oracle) @ 2022-07-05 21:34 UTC (permalink / raw)
To: Rob Herring
Cc: Ioana Ciornei, davem, edumazet, kuba, pabeni, netdev, devicetree
On Tue, Jul 05, 2022 at 03:29:03PM -0600, Rob Herring wrote:
> On Mon, Jul 04, 2022 at 04:46:01PM +0300, Ioana Ciornei wrote:
> > + maximum-power-milliwatt:
> > + maxItems: 1
> > + description:
> > + Maximum module power consumption Specifies the maximum power consumption
> > + allowable by a module in the slot, in milli-Watts. Presently, modules can
> > + be up to 1W, 1.5W or 2W.
>
> enum: [ 1000, 1500, 2000 ]
>
> Or is it not just those values? Maybe 'maximum: 2000' instead.
There is no enforcing of the value, we just read the value from
firmware and use it as a limit for the module (and the module can
specify powers of 1.5W or 2W in its EEPROM, otherwise it defaults
to 1W. Future standards may allow higher power consumptions.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 net-next 1/4] dt-bindings: net: convert sff,sfp to dtschema
2022-07-05 21:29 ` Rob Herring
2022-07-05 21:34 ` Russell King (Oracle)
@ 2022-07-07 8:52 ` Ioana Ciornei
1 sibling, 0 replies; 9+ messages in thread
From: Ioana Ciornei @ 2022-07-07 8:52 UTC (permalink / raw)
To: Rob Herring
Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, netdev@vger.kernel.org, linux@armlinux.org.uk,
devicetree@vger.kernel.org
On Tue, Jul 05, 2022 at 03:29:03PM -0600, Rob Herring wrote:
> On Mon, Jul 04, 2022 at 04:46:01PM +0300, Ioana Ciornei wrote:
> > Convert the sff,sfp.txt bindings to the DT schema format.
> > Also add the new path to the list of maintained files.
> >
> > Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
> > ---
> > Changes in v2:
> > - used the -gpios suffix
> > - restricted the use of some gpios if the compatible is sff,sff
> >
> > .../devicetree/bindings/net/sff,sfp.txt | 85 -----------
> > .../devicetree/bindings/net/sff,sfp.yaml | 143 ++++++++++++++++++
> > MAINTAINERS | 1 +
> > 3 files changed, 144 insertions(+), 85 deletions(-)
> > delete mode 100644 Documentation/devicetree/bindings/net/sff,sfp.txt
> > create mode 100644 Documentation/devicetree/bindings/net/sff,sfp.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/net/sff,sfp.txt b/Documentation/devicetree/bindings/net/sff,sfp.txt
> > deleted file mode 100644
> > index 832139919f20..000000000000
> > --- a/Documentation/devicetree/bindings/net/sff,sfp.txt
> > +++ /dev/null
> > @@ -1,85 +0,0 @@
> > -Small Form Factor (SFF) Committee Small Form-factor Pluggable (SFP)
> > -Transceiver
(...)
> > + maximum-power-milliwatt:
> > + maxItems: 1
> > + description:
> > + Maximum module power consumption Specifies the maximum power consumption
> > + allowable by a module in the slot, in milli-Watts. Presently, modules can
> > + be up to 1W, 1.5W or 2W.
>
> enum: [ 1000, 1500, 2000 ]
>
> Or is it not just those values? Maybe 'maximum: 2000' instead.
Keeping in mind Russell's comment, I think I will leave this just as it
is since there is no enforcing made on the value.
>
> > +
> > +patternProperties:
> > + "mod-def0-gpios":
>
> These aren't patterns. Move to 'properties'.
Yes, I forgot to move them when I removed the '(s)?'
Thanks!
Ioana
^ permalink raw reply [flat|nested] 9+ messages in thread