Commit 6060d554 authored by Abdel Alkuor's avatar Abdel Alkuor Committed by Greg Kroah-Hartman
Browse files

dt-bindings: usb: tps6598x: Add tps25750



TPS25750 is USB TypeC PD controller which is a subset of TPS6598x.

Signed-off-by: default avatarAbdel Alkuor <abdelalkuor@geotab.com>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20231003155842.57313-2-alkuor@gmail.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 14485de4
Loading
Loading
Loading
Loading
+80 −1
Original line number Diff line number Diff line
@@ -20,8 +20,23 @@ properties:
    enum:
      - ti,tps6598x
      - apple,cd321x
      - ti,tps25750

  reg:
    maxItems: 1
    minItems: 1
    items:
      - description: main PD controller address
      - description: |
          I2C slave address field in PBMs input data
          which is used as the device address when writing the
          patch for TPS25750.
          The patch address can be any value except 0x00, 0x20,
          0x21, 0x22, and 0x23

  reg-names:
    items:
      - const: main
      - const: patch-address

  wakeup-source: true

@@ -32,10 +47,42 @@ properties:
    items:
      - const: irq

  firmware-name:
    description: |
      Should contain the name of the default patch binary
      file located on the firmware search path which is
      used to switch the controller into APP mode.
      This is used when tps25750 doesn't have an EEPROM
      connected to it.
    maxItems: 1

required:
  - compatible
  - reg

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: ti,tps25750
    then:
      properties:
        reg:
          maxItems: 2

        connector:
          required:
            - data-role

      required:
        - connector
        - reg-names
    else:
      properties:
        reg:
          maxItems: 1

additionalProperties: true

examples:
@@ -68,4 +115,36 @@ examples:
            };
        };
    };

  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        typec@21 {
            compatible = "ti,tps25750";
            reg = <0x21>, <0x0f>;
            reg-names = "main", "patch-address";

            interrupt-parent = <&msmgpio>;
            interrupts = <100 IRQ_TYPE_LEVEL_LOW>;
            interrupt-names = "irq";
            firmware-name = "tps25750.bin";

            pinctrl-names = "default";
            pinctrl-0 = <&typec_pins>;

            typec_con0: connector {
                compatible = "usb-c-connector";
                label = "USB-C";
                data-role = "dual";
                port {
                    typec_ep0: endpoint {
                        remote-endpoint = <&otg_ep>;
                    };
                };
            };
        };
    };
...