xref: /linux/Documentation/devicetree/bindings/net/pse-pd/skyworks,si3474.yaml (revision ec2e0fb07d789976c601bec19ecced7a501c3705)
1*7cb4d28eSPiotr Kubik# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*7cb4d28eSPiotr Kubik%YAML 1.2
3*7cb4d28eSPiotr Kubik---
4*7cb4d28eSPiotr Kubik$id: http://devicetree.org/schemas/net/pse-pd/skyworks,si3474.yaml#
5*7cb4d28eSPiotr Kubik$schema: http://devicetree.org/meta-schemas/core.yaml#
6*7cb4d28eSPiotr Kubik
7*7cb4d28eSPiotr Kubiktitle: Skyworks Si3474 Power Sourcing Equipment controller
8*7cb4d28eSPiotr Kubik
9*7cb4d28eSPiotr Kubikmaintainers:
10*7cb4d28eSPiotr Kubik  - Piotr Kubik <piotr.kubik@adtran.com>
11*7cb4d28eSPiotr Kubik
12*7cb4d28eSPiotr KubikallOf:
13*7cb4d28eSPiotr Kubik  - $ref: pse-controller.yaml#
14*7cb4d28eSPiotr Kubik
15*7cb4d28eSPiotr Kubikproperties:
16*7cb4d28eSPiotr Kubik  compatible:
17*7cb4d28eSPiotr Kubik    enum:
18*7cb4d28eSPiotr Kubik      - skyworks,si3474
19*7cb4d28eSPiotr Kubik
20*7cb4d28eSPiotr Kubik  reg:
21*7cb4d28eSPiotr Kubik    maxItems: 2
22*7cb4d28eSPiotr Kubik
23*7cb4d28eSPiotr Kubik  reg-names:
24*7cb4d28eSPiotr Kubik    items:
25*7cb4d28eSPiotr Kubik      - const: main
26*7cb4d28eSPiotr Kubik      - const: secondary
27*7cb4d28eSPiotr Kubik
28*7cb4d28eSPiotr Kubik  channels:
29*7cb4d28eSPiotr Kubik    description: The Si3474 is a single-chip PoE PSE controller managing
30*7cb4d28eSPiotr Kubik      8 physical power delivery channels. Internally, it's structured
31*7cb4d28eSPiotr Kubik      into two logical "Quads".
32*7cb4d28eSPiotr Kubik      Quad 0 Manages physical channels ('ports' in datasheet) 0, 1, 2, 3
33*7cb4d28eSPiotr Kubik      Quad 1 Manages physical channels ('ports' in datasheet) 4, 5, 6, 7.
34*7cb4d28eSPiotr Kubik
35*7cb4d28eSPiotr Kubik    type: object
36*7cb4d28eSPiotr Kubik    additionalProperties: false
37*7cb4d28eSPiotr Kubik
38*7cb4d28eSPiotr Kubik    properties:
39*7cb4d28eSPiotr Kubik      "#address-cells":
40*7cb4d28eSPiotr Kubik        const: 1
41*7cb4d28eSPiotr Kubik
42*7cb4d28eSPiotr Kubik      "#size-cells":
43*7cb4d28eSPiotr Kubik        const: 0
44*7cb4d28eSPiotr Kubik
45*7cb4d28eSPiotr Kubik    patternProperties:
46*7cb4d28eSPiotr Kubik      '^channel@[0-7]$':
47*7cb4d28eSPiotr Kubik        type: object
48*7cb4d28eSPiotr Kubik        additionalProperties: false
49*7cb4d28eSPiotr Kubik
50*7cb4d28eSPiotr Kubik        properties:
51*7cb4d28eSPiotr Kubik          reg:
52*7cb4d28eSPiotr Kubik            maxItems: 1
53*7cb4d28eSPiotr Kubik
54*7cb4d28eSPiotr Kubik        required:
55*7cb4d28eSPiotr Kubik          - reg
56*7cb4d28eSPiotr Kubik
57*7cb4d28eSPiotr Kubik    required:
58*7cb4d28eSPiotr Kubik      - "#address-cells"
59*7cb4d28eSPiotr Kubik      - "#size-cells"
60*7cb4d28eSPiotr Kubik
61*7cb4d28eSPiotr Kubikrequired:
62*7cb4d28eSPiotr Kubik  - compatible
63*7cb4d28eSPiotr Kubik  - reg
64*7cb4d28eSPiotr Kubik  - pse-pis
65*7cb4d28eSPiotr Kubik
66*7cb4d28eSPiotr KubikunevaluatedProperties: false
67*7cb4d28eSPiotr Kubik
68*7cb4d28eSPiotr Kubikexamples:
69*7cb4d28eSPiotr Kubik  - |
70*7cb4d28eSPiotr Kubik    i2c {
71*7cb4d28eSPiotr Kubik      #address-cells = <1>;
72*7cb4d28eSPiotr Kubik      #size-cells = <0>;
73*7cb4d28eSPiotr Kubik
74*7cb4d28eSPiotr Kubik      ethernet-pse@26 {
75*7cb4d28eSPiotr Kubik        compatible = "skyworks,si3474";
76*7cb4d28eSPiotr Kubik        reg-names = "main", "secondary";
77*7cb4d28eSPiotr Kubik        reg = <0x26>, <0x27>;
78*7cb4d28eSPiotr Kubik
79*7cb4d28eSPiotr Kubik        channels {
80*7cb4d28eSPiotr Kubik          #address-cells = <1>;
81*7cb4d28eSPiotr Kubik          #size-cells = <0>;
82*7cb4d28eSPiotr Kubik          phys0_0: channel@0 {
83*7cb4d28eSPiotr Kubik            reg = <0>;
84*7cb4d28eSPiotr Kubik          };
85*7cb4d28eSPiotr Kubik          phys0_1: channel@1 {
86*7cb4d28eSPiotr Kubik            reg = <1>;
87*7cb4d28eSPiotr Kubik          };
88*7cb4d28eSPiotr Kubik          phys0_2: channel@2 {
89*7cb4d28eSPiotr Kubik            reg = <2>;
90*7cb4d28eSPiotr Kubik          };
91*7cb4d28eSPiotr Kubik          phys0_3: channel@3 {
92*7cb4d28eSPiotr Kubik            reg = <3>;
93*7cb4d28eSPiotr Kubik          };
94*7cb4d28eSPiotr Kubik          phys0_4: channel@4 {
95*7cb4d28eSPiotr Kubik            reg = <4>;
96*7cb4d28eSPiotr Kubik          };
97*7cb4d28eSPiotr Kubik          phys0_5: channel@5 {
98*7cb4d28eSPiotr Kubik            reg = <5>;
99*7cb4d28eSPiotr Kubik          };
100*7cb4d28eSPiotr Kubik          phys0_6: channel@6 {
101*7cb4d28eSPiotr Kubik            reg = <6>;
102*7cb4d28eSPiotr Kubik          };
103*7cb4d28eSPiotr Kubik          phys0_7: channel@7 {
104*7cb4d28eSPiotr Kubik            reg = <7>;
105*7cb4d28eSPiotr Kubik          };
106*7cb4d28eSPiotr Kubik        };
107*7cb4d28eSPiotr Kubik        pse-pis {
108*7cb4d28eSPiotr Kubik          #address-cells = <1>;
109*7cb4d28eSPiotr Kubik          #size-cells = <0>;
110*7cb4d28eSPiotr Kubik          pse_pi0: pse-pi@0 {
111*7cb4d28eSPiotr Kubik            reg = <0>;
112*7cb4d28eSPiotr Kubik            #pse-cells = <0>;
113*7cb4d28eSPiotr Kubik            pairset-names = "alternative-a", "alternative-b";
114*7cb4d28eSPiotr Kubik            pairsets = <&phys0_0>, <&phys0_1>;
115*7cb4d28eSPiotr Kubik            polarity-supported = "MDI-X", "S";
116*7cb4d28eSPiotr Kubik            vpwr-supply = <&reg_pse>;
117*7cb4d28eSPiotr Kubik          };
118*7cb4d28eSPiotr Kubik          pse_pi1: pse-pi@1 {
119*7cb4d28eSPiotr Kubik            reg = <1>;
120*7cb4d28eSPiotr Kubik            #pse-cells = <0>;
121*7cb4d28eSPiotr Kubik            pairset-names = "alternative-a", "alternative-b";
122*7cb4d28eSPiotr Kubik            pairsets = <&phys0_2>, <&phys0_3>;
123*7cb4d28eSPiotr Kubik            polarity-supported = "MDI-X", "S";
124*7cb4d28eSPiotr Kubik            vpwr-supply = <&reg_pse>;
125*7cb4d28eSPiotr Kubik          };
126*7cb4d28eSPiotr Kubik          pse_pi2: pse-pi@2 {
127*7cb4d28eSPiotr Kubik            reg = <2>;
128*7cb4d28eSPiotr Kubik            #pse-cells = <0>;
129*7cb4d28eSPiotr Kubik            pairset-names = "alternative-a", "alternative-b";
130*7cb4d28eSPiotr Kubik            pairsets = <&phys0_4>, <&phys0_5>;
131*7cb4d28eSPiotr Kubik            polarity-supported = "MDI-X", "S";
132*7cb4d28eSPiotr Kubik            vpwr-supply = <&reg_pse>;
133*7cb4d28eSPiotr Kubik          };
134*7cb4d28eSPiotr Kubik          pse_pi3: pse-pi@3 {
135*7cb4d28eSPiotr Kubik            reg = <3>;
136*7cb4d28eSPiotr Kubik            #pse-cells = <0>;
137*7cb4d28eSPiotr Kubik            pairset-names = "alternative-a", "alternative-b";
138*7cb4d28eSPiotr Kubik            pairsets = <&phys0_6>, <&phys0_7>;
139*7cb4d28eSPiotr Kubik            polarity-supported = "MDI-X", "S";
140*7cb4d28eSPiotr Kubik            vpwr-supply = <&reg_pse>;
141*7cb4d28eSPiotr Kubik          };
142*7cb4d28eSPiotr Kubik        };
143*7cb4d28eSPiotr Kubik      };
144*7cb4d28eSPiotr Kubik    };
145