Mention branches and keyring.
[releases.git] / bindings / usb / ti,tps6598x.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/usb/ti,tps6598x.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Texas Instruments 6598x Type-C Port Switch and Power Delivery controller
8
9 maintainers:
10   - Bryan O'Donoghue <bryan.odonoghue@linaro.org>
11
12 description: |
13   Texas Instruments 6598x Type-C Port Switch and Power Delivery controller
14
15   A variant of this controller known as Apple CD321x or Apple ACE is also
16   present on hardware with Apple SoCs such as the M1.
17
18 properties:
19   compatible:
20     enum:
21       - ti,tps6598x
22       - apple,cd321x
23       - ti,tps25750
24
25   reg:
26     minItems: 1
27     items:
28       - description: main PD controller address
29       - description: |
30           I2C slave address field in PBMs input data
31           which is used as the device address when writing the
32           patch for TPS25750.
33           The patch address can be any value except 0x00, 0x20,
34           0x21, 0x22, and 0x23
35
36   reg-names:
37     items:
38       - const: main
39       - const: patch-address
40
41   reset-gpios:
42     description: GPIO used for the HRESET pin.
43     maxItems: 1
44
45   wakeup-source: true
46
47   interrupts:
48     maxItems: 1
49
50   interrupt-names:
51     items:
52       - const: irq
53
54   connector:
55     $ref: /schemas/connector/usb-connector.yaml#
56
57   firmware-name:
58     description: |
59       Should contain the name of the default patch binary
60       file located on the firmware search path which is
61       used to switch the controller into APP mode.
62       This is used when tps25750 doesn't have an EEPROM
63       connected to it.
64     maxItems: 1
65
66 required:
67   - compatible
68   - reg
69
70 allOf:
71   - if:
72       properties:
73         compatible:
74           contains:
75             const: ti,tps25750
76     then:
77       properties:
78         reg:
79           maxItems: 2
80
81         connector:
82           required:
83             - data-role
84
85       required:
86         - connector
87         - reg-names
88     else:
89       properties:
90         reg:
91           maxItems: 1
92
93 additionalProperties: false
94
95 examples:
96   - |
97     #include <dt-bindings/gpio/gpio.h>
98     #include <dt-bindings/interrupt-controller/irq.h>
99     i2c {
100         #address-cells = <1>;
101         #size-cells = <0>;
102
103         tps6598x: tps6598x@38 {
104             compatible = "ti,tps6598x";
105             reg = <0x38>;
106             wakeup-source;
107
108             interrupt-parent = <&msmgpio>;
109             interrupts = <107 IRQ_TYPE_LEVEL_LOW>;
110             interrupt-names = "irq";
111
112             pinctrl-names = "default";
113             pinctrl-0 = <&typec_pins>;
114             reset-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
115
116             typec_con: connector {
117                 compatible = "usb-c-connector";
118                 label = "USB-C";
119                 port {
120                     typec_ep: endpoint {
121                         remote-endpoint = <&otg_ep>;
122                     };
123                 };
124             };
125         };
126     };
127
128   - |
129     #include <dt-bindings/interrupt-controller/irq.h>
130     i2c {
131         #address-cells = <1>;
132         #size-cells = <0>;
133
134         typec@21 {
135             compatible = "ti,tps25750";
136             reg = <0x21>, <0x0f>;
137             reg-names = "main", "patch-address";
138
139             interrupt-parent = <&msmgpio>;
140             interrupts = <100 IRQ_TYPE_LEVEL_LOW>;
141             interrupt-names = "irq";
142             firmware-name = "/*(DEBLOBBED)*/";
143
144             pinctrl-names = "default";
145             pinctrl-0 = <&typec_pins>;
146
147             typec_con0: connector {
148                 compatible = "usb-c-connector";
149                 label = "USB-C";
150                 data-role = "dual";
151                 port {
152                     typec_ep0: endpoint {
153                         remote-endpoint = <&otg_ep>;
154                     };
155                 };
156             };
157         };
158     };
159 ...