Commit | Line | Data |
---|---|---|
70991f1e IC |
1 | # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
2 | %YAML 1.2 | |
3 | --- | |
4 | $id: "http://devicetree.org/schemas/net/sff,sfp.yaml#" | |
5 | $schema: "http://devicetree.org/meta-schemas/core.yaml#" | |
6 | ||
7 | title: Small Form Factor (SFF) Committee Small Form-factor Pluggable (SFP) | |
8 | Transceiver | |
9 | ||
10 | maintainers: | |
11 | - Russell King <linux@armlinux.org.uk> | |
12 | ||
13 | properties: | |
14 | compatible: | |
15 | enum: | |
16 | - sff,sfp # for SFP modules | |
17 | - sff,sff # for soldered down SFF modules | |
18 | ||
19 | i2c-bus: | |
20 | $ref: /schemas/types.yaml#/definitions/phandle | |
21 | description: | |
22 | phandle of an I2C bus controller for the SFP two wire serial | |
23 | ||
24 | maximum-power-milliwatt: | |
a272bcb9 RKO |
25 | minimum: 1000 |
26 | default: 1000 | |
70991f1e IC |
27 | description: |
28 | Maximum module power consumption Specifies the maximum power consumption | |
29 | allowable by a module in the slot, in milli-Watts. Presently, modules can | |
30 | be up to 1W, 1.5W or 2W. | |
31 | ||
32 | "mod-def0-gpios": | |
33 | maxItems: 1 | |
34 | description: | |
35 | GPIO phandle and a specifier of the MOD-DEF0 (AKA Mod_ABS) module | |
36 | presence input gpio signal, active (module absent) high. Must not be | |
37 | present for SFF modules | |
38 | ||
39 | "los-gpios": | |
40 | maxItems: 1 | |
41 | description: | |
42 | GPIO phandle and a specifier of the Receiver Loss of Signal Indication | |
43 | input gpio signal, active (signal lost) high | |
44 | ||
45 | "tx-fault-gpios": | |
46 | maxItems: 1 | |
47 | description: | |
48 | GPIO phandle and a specifier of the Module Transmitter Fault input gpio | |
49 | signal, active (fault condition) high | |
50 | ||
51 | "tx-disable-gpios": | |
52 | maxItems: 1 | |
53 | description: | |
54 | GPIO phandle and a specifier of the Transmitter Disable output gpio | |
55 | signal, active (Tx disable) high | |
56 | ||
57 | "rate-select0-gpios": | |
58 | maxItems: 1 | |
59 | description: | |
60 | GPIO phandle and a specifier of the Rx Signaling Rate Select (AKA RS0) | |
61 | output gpio signal, low - low Rx rate, high - high Rx rate Must not be | |
62 | present for SFF modules | |
63 | ||
64 | "rate-select1-gpios": | |
65 | maxItems: 1 | |
66 | description: | |
67 | GPIO phandle and a specifier of the Tx Signaling Rate Select (AKA RS1) | |
68 | output gpio signal (SFP+ only), low - low Tx rate, high - high Tx rate. Must | |
69 | not be present for SFF modules | |
70 | ||
71 | allOf: | |
72 | - if: | |
73 | properties: | |
74 | compatible: | |
75 | contains: | |
76 | const: sff,sff | |
77 | then: | |
78 | properties: | |
79 | mod-def0-gpios: false | |
80 | rate-select0-gpios: false | |
81 | rate-select1-gpios: false | |
82 | ||
83 | required: | |
84 | - compatible | |
85 | - i2c-bus | |
86 | ||
87 | additionalProperties: false | |
88 | ||
89 | examples: | |
90 | - | # Direct serdes to SFP connection | |
91 | #include <dt-bindings/gpio/gpio.h> | |
92 | ||
7ff7c992 | 93 | sfp1: sfp { |
70991f1e IC |
94 | compatible = "sff,sfp"; |
95 | i2c-bus = <&sfp_1g_i2c>; | |
96 | los-gpios = <&cpm_gpio2 22 GPIO_ACTIVE_HIGH>; | |
97 | mod-def0-gpios = <&cpm_gpio2 21 GPIO_ACTIVE_LOW>; | |
98 | maximum-power-milliwatt = <1000>; | |
99 | pinctrl-names = "default"; | |
100 | pinctrl-0 = <&cpm_sfp_1g_pins &cps_sfp_1g_pins>; | |
101 | tx-disable-gpios = <&cps_gpio1 24 GPIO_ACTIVE_HIGH>; | |
102 | tx-fault-gpios = <&cpm_gpio2 19 GPIO_ACTIVE_HIGH>; | |
103 | }; | |
104 | ||
7ff7c992 | 105 | ethernet { |
70991f1e IC |
106 | phy-names = "comphy"; |
107 | phys = <&cps_comphy5 0>; | |
7ff7c992 | 108 | sfp = <&sfp1>; |
70991f1e IC |
109 | }; |
110 | ||
111 | - | # Serdes to PHY to SFP connection | |
112 | #include <dt-bindings/gpio/gpio.h> | |
113 | #include <dt-bindings/interrupt-controller/arm-gic.h> | |
114 | ||
7ff7c992 | 115 | sfp2: sfp { |
70991f1e | 116 | compatible = "sff,sfp"; |
7ff7c992 | 117 | i2c-bus = <&sfp_i2c>; |
70991f1e IC |
118 | los-gpios = <&cps_gpio1 28 GPIO_ACTIVE_HIGH>; |
119 | mod-def0-gpios = <&cps_gpio1 27 GPIO_ACTIVE_LOW>; | |
120 | pinctrl-names = "default"; | |
121 | pinctrl-0 = <&cps_sfpp0_pins>; | |
122 | tx-disable-gpios = <&cps_gpio1 29 GPIO_ACTIVE_HIGH>; | |
123 | tx-fault-gpios = <&cps_gpio1 26 GPIO_ACTIVE_HIGH>; | |
124 | }; | |
125 | ||
126 | mdio { | |
127 | #address-cells = <1>; | |
128 | #size-cells = <0>; | |
129 | ||
7ff7c992 | 130 | phy: ethernet-phy@0 { |
70991f1e IC |
131 | compatible = "ethernet-phy-ieee802.3-c45"; |
132 | pinctrl-names = "default"; | |
133 | pinctrl-0 = <&cpm_phy0_pins &cps_phy0_pins>; | |
134 | reg = <0>; | |
135 | interrupt = <&cpm_gpio2 18 IRQ_TYPE_EDGE_FALLING>; | |
7ff7c992 | 136 | sfp = <&sfp2>; |
70991f1e IC |
137 | }; |
138 | }; | |
139 | ||
7ff7c992 IC |
140 | ethernet { |
141 | phy = <&phy>; | |
70991f1e IC |
142 | phy-mode = "10gbase-kr"; |
143 | }; |