summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/net/pse-pd/ti,tps23881.yaml
blob: bb1ee33986555059779f155b46b982256454649d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/pse-pd/ti,tps23881.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TI TPS23881 Power Sourcing Equipment controller

maintainers:
  - Kory Maincent <kory.maincent@bootlin.com>

allOf:
  - $ref: pse-controller.yaml#

properties:
  compatible:
    enum:
      - ti,tps23881

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  '#pse-cells':
    const: 1

  reset-gpios:
    maxItems: 1

  channels:
    description: |
      Defines the 8 physical delivery channels on the controller that can
      be referenced by PSE PIs through their "pairsets" property. The actual
      port matrix mapping is created when PSE PIs reference these channels in
      their pairsets. For 4-pair operation, two channels from the same group
      (0-3 or 4-7) must be referenced by a single PSE PI.
    type: object
    additionalProperties: false

    properties:
      "#address-cells":
        const: 1

      "#size-cells":
        const: 0

    patternProperties:
      '^channel@[0-7]$':
        type: object
        additionalProperties: false

        properties:
          reg:
            maxItems: 1

        required:
          - reg

    required:
      - "#address-cells"
      - "#size-cells"

unevaluatedProperties: false

required:
  - compatible
  - reg
  - interrupts

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      ethernet-pse@20 {
        compatible = "ti,tps23881";
        reg = <0x20>;
        interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
        interrupt-parent = <&gpiog>;

        channels {
          #address-cells = <1>;
          #size-cells = <0>;

          phys0: channel@0 {
            reg = <0>;
          };

          phys1: channel@1 {
            reg = <1>;
          };

          phys2: channel@2 {
            reg = <2>;
          };
        };

        pse-pis {
          #address-cells = <1>;
          #size-cells = <0>;

          pse_pi0: pse-pi@0 {
            reg = <0>;
            #pse-cells = <0>;
            pairset-names = "alternative-a", "alternative-b";
            pairsets = <&phys0>, <&phys1>;
            polarity-supported = "MDI", "S";
            vpwr-supply = <&vpwr1>;
          };

          pse_pi1: pse-pi@1 {
            reg = <1>;
            #pse-cells = <0>;
            pairset-names = "alternative-a";
            pairsets = <&phys2>;
            polarity-supported = "MDI";
            vpwr-supply = <&vpwr2>;
          };
        };
      };
    };