File Index
Files and directories
Sign in
FILE

ti,tps6598x.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml 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
  7title: Texas Instruments 6598x Type-C Port Switch and Power Delivery controller
  8
  9maintainers:
 10  - Bryan O'Donoghue <bryan.odonoghue@linaro.org>
 11
 12description: |
 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
 18properties:
 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
 66required:
 67  - compatible
 68  - reg
 69
 70allOf:
 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
 93additionalProperties: false
 94
 95examples:
 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 = "tps25750.bin";
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...
~/ Read-only file preview.