18c2ecf20Sopenharmony_ciSmall Form Factor (SFF) Committee Small Form-factor Pluggable (SFP)
28c2ecf20Sopenharmony_ciTransceiver
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ciRequired properties:
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci- compatible : must be one of
78c2ecf20Sopenharmony_ci  "sff,sfp" for SFP modules
88c2ecf20Sopenharmony_ci  "sff,sff" for soldered down SFF modules
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci- i2c-bus : phandle of an I2C bus controller for the SFP two wire serial
118c2ecf20Sopenharmony_ci  interface
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ciOptional Properties:
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci- mod-def0-gpios : GPIO phandle and a specifier of the MOD-DEF0 (AKA Mod_ABS)
168c2ecf20Sopenharmony_ci  module presence input gpio signal, active (module absent) high. Must
178c2ecf20Sopenharmony_ci  not be present for SFF modules
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci- los-gpios : GPIO phandle and a specifier of the Receiver Loss of Signal
208c2ecf20Sopenharmony_ci  Indication input gpio signal, active (signal lost) high
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci- tx-fault-gpios : GPIO phandle and a specifier of the Module Transmitter
238c2ecf20Sopenharmony_ci  Fault input gpio signal, active (fault condition) high
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci- tx-disable-gpios : GPIO phandle and a specifier of the Transmitter Disable
268c2ecf20Sopenharmony_ci  output gpio signal, active (Tx disable) high
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci- rate-select0-gpios : GPIO phandle and a specifier of the Rx Signaling Rate
298c2ecf20Sopenharmony_ci  Select (AKA RS0) output gpio signal, low: low Rx rate, high: high Rx rate
308c2ecf20Sopenharmony_ci  Must not be present for SFF modules
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci- rate-select1-gpios : GPIO phandle and a specifier of the Tx Signaling Rate
338c2ecf20Sopenharmony_ci  Select (AKA RS1) output gpio signal (SFP+ only), low: low Tx rate, high:
348c2ecf20Sopenharmony_ci  high Tx rate. Must not be present for SFF modules
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci- maximum-power-milliwatt : Maximum module power consumption
378c2ecf20Sopenharmony_ci  Specifies the maximum power consumption allowable by a module in the
388c2ecf20Sopenharmony_ci  slot, in milli-Watts.  Presently, modules can be up to 1W, 1.5W or 2W.
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciExample #1: Direct serdes to SFP connection
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_cisfp_eth3: sfp-eth3 {
438c2ecf20Sopenharmony_ci	compatible = "sff,sfp";
448c2ecf20Sopenharmony_ci	i2c-bus = <&sfp_1g_i2c>;
458c2ecf20Sopenharmony_ci	los-gpios = <&cpm_gpio2 22 GPIO_ACTIVE_HIGH>;
468c2ecf20Sopenharmony_ci	mod-def0-gpios = <&cpm_gpio2 21 GPIO_ACTIVE_LOW>;
478c2ecf20Sopenharmony_ci	maximum-power-milliwatt = <1000>;
488c2ecf20Sopenharmony_ci	pinctrl-names = "default";
498c2ecf20Sopenharmony_ci	pinctrl-0 = <&cpm_sfp_1g_pins &cps_sfp_1g_pins>;
508c2ecf20Sopenharmony_ci	tx-disable-gpios = <&cps_gpio1 24 GPIO_ACTIVE_HIGH>;
518c2ecf20Sopenharmony_ci	tx-fault-gpios = <&cpm_gpio2 19 GPIO_ACTIVE_HIGH>;
528c2ecf20Sopenharmony_ci};
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci&cps_emac3 {
558c2ecf20Sopenharmony_ci	phy-names = "comphy";
568c2ecf20Sopenharmony_ci	phys = <&cps_comphy5 0>;
578c2ecf20Sopenharmony_ci	sfp = <&sfp_eth3>;
588c2ecf20Sopenharmony_ci};
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ciExample #2: Serdes to PHY to SFP connection
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_cisfp_eth0: sfp-eth0 {
638c2ecf20Sopenharmony_ci	compatible = "sff,sfp";
648c2ecf20Sopenharmony_ci	i2c-bus = <&sfpp0_i2c>;
658c2ecf20Sopenharmony_ci	los-gpios = <&cps_gpio1 28 GPIO_ACTIVE_HIGH>;
668c2ecf20Sopenharmony_ci	mod-def0-gpios = <&cps_gpio1 27 GPIO_ACTIVE_LOW>;
678c2ecf20Sopenharmony_ci	pinctrl-names = "default";
688c2ecf20Sopenharmony_ci	pinctrl-0 = <&cps_sfpp0_pins>;
698c2ecf20Sopenharmony_ci	tx-disable-gpios = <&cps_gpio1 29 GPIO_ACTIVE_HIGH>;
708c2ecf20Sopenharmony_ci	tx-fault-gpios  = <&cps_gpio1 26 GPIO_ACTIVE_HIGH>;
718c2ecf20Sopenharmony_ci};
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_cip0_phy: ethernet-phy@0 {
748c2ecf20Sopenharmony_ci	compatible = "ethernet-phy-ieee802.3-c45";
758c2ecf20Sopenharmony_ci	pinctrl-names = "default";
768c2ecf20Sopenharmony_ci	pinctrl-0 = <&cpm_phy0_pins &cps_phy0_pins>;
778c2ecf20Sopenharmony_ci	reg = <0>;
788c2ecf20Sopenharmony_ci	interrupt = <&cpm_gpio2 18 IRQ_TYPE_EDGE_FALLING>;
798c2ecf20Sopenharmony_ci	sfp = <&sfp_eth0>;
808c2ecf20Sopenharmony_ci};
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci&cpm_eth0 {
838c2ecf20Sopenharmony_ci	phy = <&p0_phy>;
848c2ecf20Sopenharmony_ci	phy-mode = "10gbase-kr";
858c2ecf20Sopenharmony_ci};
86