Skip to content

Commit

Permalink
Merge branch 'dt-bindings-net-convert-sff-sfp-to-dtschema'
Browse files Browse the repository at this point in the history
Ioana Ciornei says:

====================
dt-bindings: net: convert sff,sfp to dtschema

This patch set converts the sff,sfp to dtschema.

The first patch does a somewhat mechanical conversion without changing
anything else beside the format in which the dt binding is presented.

In the second patch we rename some dt nodes to be generic. The last two
patches change the GPIO related properties so that they uses the -gpios
preferred suffix. This way, all the DTBs are passing the validation
against the sff,sfp.yaml binding.
====================

Link: https://lore.kernel.org/r/20220707091437.446458-1-ioana.ciornei@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Jakub Kicinski committed Jul 13, 2022
2 parents 5022e22 + 4ce223e commit d7d2730
Show file tree
Hide file tree
Showing 14 changed files with 205 additions and 147 deletions.
85 changes: 0 additions & 85 deletions Documentation/devicetree/bindings/net/sff,sfp.txt

This file was deleted.

142 changes: 142 additions & 0 deletions Documentation/devicetree/bindings/net/sff,sfp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# 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.

"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>
sfp1: sfp {
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>;
};
ethernet {
phy-names = "comphy";
phys = <&cps_comphy5 0>;
sfp = <&sfp1>;
};
- | # Serdes to PHY to SFP connection
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
sfp2: sfp {
compatible = "sff,sfp";
i2c-bus = <&sfp_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>;
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 = <&sfp2>;
};
};
ethernet {
phy = <&phy>;
phy-mode = "10gbase-kr";
};
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -18189,6 +18189,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
Expand Down
8 changes: 4 additions & 4 deletions arch/arm64/boot/dts/freescale/fsl-lx2160a-clearfog-itx.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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>;
};
};
Expand Down
10 changes: 5 additions & 5 deletions arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
16 changes: 8 additions & 8 deletions arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
Original file line number Diff line number Diff line change
Expand Up @@ -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>;
};
};
Expand Down
16 changes: 8 additions & 8 deletions arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts
Original file line number Diff line number Diff line change
Expand Up @@ -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>;
};
};

Expand Down
4 changes: 2 additions & 2 deletions arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts
Original file line number Diff line number Diff line change
Expand Up @@ -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>;
Expand Down
Loading

0 comments on commit d7d2730

Please sign in to comment.