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