# 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:
    minimum: 1000
    default: 1000
    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";
    };
