xref: /linux/Documentation/devicetree/bindings/net/pse-pd/ti,tps23881.yaml (revision 8be4d31cb8aaeea27bde4b7ddb26e28a89062ebf)
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/ti,tps23881.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: TI TPS23881 Power Sourcing Equipment controller
8
9maintainers:
10  - Kory Maincent <kory.maincent@bootlin.com>
11
12allOf:
13  - $ref: pse-controller.yaml#
14
15properties:
16  compatible:
17    enum:
18      - ti,tps23881
19
20  reg:
21    maxItems: 1
22
23  interrupts:
24    maxItems: 1
25
26  '#pse-cells':
27    const: 1
28
29  reset-gpios:
30    maxItems: 1
31
32  channels:
33    description: |
34      Defines the 8 physical delivery channels on the controller that can
35      be referenced by PSE PIs through their "pairsets" property. The actual
36      port matrix mapping is created when PSE PIs reference these channels in
37      their pairsets. For 4-pair operation, two channels from the same group
38      (0-3 or 4-7) must be referenced by a single PSE PI.
39    type: object
40    additionalProperties: false
41
42    properties:
43      "#address-cells":
44        const: 1
45
46      "#size-cells":
47        const: 0
48
49    patternProperties:
50      '^channel@[0-7]$':
51        type: object
52        additionalProperties: false
53
54        properties:
55          reg:
56            maxItems: 1
57
58        required:
59          - reg
60
61    required:
62      - "#address-cells"
63      - "#size-cells"
64
65unevaluatedProperties: false
66
67required:
68  - compatible
69  - reg
70  - interrupts
71
72examples:
73  - |
74    #include <dt-bindings/interrupt-controller/irq.h>
75
76    i2c {
77      #address-cells = <1>;
78      #size-cells = <0>;
79
80      ethernet-pse@20 {
81        compatible = "ti,tps23881";
82        reg = <0x20>;
83        interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
84        interrupt-parent = <&gpiog>;
85
86        channels {
87          #address-cells = <1>;
88          #size-cells = <0>;
89
90          phys0: channel@0 {
91            reg = <0>;
92          };
93
94          phys1: channel@1 {
95            reg = <1>;
96          };
97
98          phys2: channel@2 {
99            reg = <2>;
100          };
101        };
102
103        pse-pis {
104          #address-cells = <1>;
105          #size-cells = <0>;
106
107          pse_pi0: pse-pi@0 {
108            reg = <0>;
109            #pse-cells = <0>;
110            pairset-names = "alternative-a", "alternative-b";
111            pairsets = <&phys0>, <&phys1>;
112            polarity-supported = "MDI", "S";
113            vpwr-supply = <&vpwr1>;
114          };
115
116          pse_pi1: pse-pi@1 {
117            reg = <1>;
118            #pse-cells = <0>;
119            pairset-names = "alternative-a";
120            pairsets = <&phys2>;
121            polarity-supported = "MDI";
122            vpwr-supply = <&vpwr2>;
123          };
124        };
125      };
126    };
127