160 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---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 controller8 9maintainers:10 - Bryan O'Donoghue <bryan.odonoghue@linaro.org>11 12description: |13 Texas Instruments 6598x Type-C Port Switch and Power Delivery controller14 15 A variant of this controller known as Apple CD321x or Apple ACE is also16 present on hardware with Apple SoCs such as the M1.17 18properties:19 compatible:20 enum:21 - ti,tps6598x22 - apple,cd321x23 - ti,tps2575024 25 reg:26 minItems: 127 items:28 - description: main PD controller address29 - description: |30 I2C slave address field in PBMs input data31 which is used as the device address when writing the32 patch for TPS25750.33 The patch address can be any value except 0x00, 0x20,34 0x21, 0x22, and 0x2335 36 reg-names:37 items:38 - const: main39 - const: patch-address40 41 reset-gpios:42 description: GPIO used for the HRESET pin.43 maxItems: 144 45 wakeup-source: true46 47 interrupts:48 maxItems: 149 50 interrupt-names:51 items:52 - const: irq53 54 connector:55 $ref: /schemas/connector/usb-connector.yaml#56 57 firmware-name:58 description: |59 Should contain the name of the default patch binary60 file located on the firmware search path which is61 used to switch the controller into APP mode.62 This is used when tps25750 doesn't have an EEPROM63 connected to it.64 maxItems: 165 66required:67 - compatible68 - reg69 70allOf:71 - if:72 properties:73 compatible:74 contains:75 const: ti,tps2575076 then:77 properties:78 reg:79 maxItems: 280 81 connector:82 required:83 - data-role84 85 required:86 - connector87 - reg-names88 else:89 properties:90 reg:91 maxItems: 192 93additionalProperties: false94 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...160