Message ID | 20230927175348.18041-2-alkuor@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add TPS25750 USB type-C PD controller support | expand |
On 27/09/2023 19:53, Abdel Alkuor wrote: > From: Abdel Alkuor <abdelalkuor@geotab.com> > > TPS25750 is USB TypeC PD controller which is a subset of TPS6598x. > > Signed-off-by: Abdel Alkuor <abdelalkuor@geotab.com> > --- > Changes in v7: > - Define reg at top-level > - Remove description from reg-names > Changes in v6: > - Use reg property for patch address > Changes in v5: > - Add tps25750 bindings > > .../devicetree/bindings/usb/ti,tps6598x.yaml | 81 ++++++++++++++++++- > 1 file changed, 80 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml b/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml > index 5497a60cddbc..9303d00b89de 100644 > --- a/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml > +++ b/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml > @@ -20,8 +20,18 @@ 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 > > wakeup-source: true > > @@ -32,10 +42,47 @@ 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 > + > + reg-names: > + items: > + - const: main > + - const: patch-address This should be at top level. I wrote it last time - do not define properties in if:then:, but in top-level. Best regards, Krzysztof
On Thu, Sep 28, 2023 at 07:37:24AM +0200, Krzysztof Kozlowski wrote: > On 27/09/2023 19:53, Abdel Alkuor wrote: > > From: Abdel Alkuor <abdelalkuor@geotab.com> > > > > TPS25750 is USB TypeC PD controller which is a subset of TPS6598x. > > > > Signed-off-by: Abdel Alkuor <abdelalkuor@geotab.com> > > --- > > Changes in v7: > > - Define reg at top-level > > - Remove description from reg-names > > Changes in v6: > > - Use reg property for patch address > > Changes in v5: > > - Add tps25750 bindings > > > > .../devicetree/bindings/usb/ti,tps6598x.yaml | 81 ++++++++++++++++++- > > 1 file changed, 80 insertions(+), 1 deletion(-) > > > > diff --git a/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml b/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml > > index 5497a60cddbc..9303d00b89de 100644 > > --- a/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml > > +++ b/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml > > @@ -20,8 +20,18 @@ 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 > > > > wakeup-source: true > > > > @@ -32,10 +42,47 @@ 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 > > + > > + reg-names: > > + items: > > + - const: main > > + - const: patch-address > > This should be at top level. I wrote it last time - do not define > properties in if:then:, but in top-level. > Sorry, I thought only reg that should be defined on the top level as you mentioned in the previous review. I misread your intention that any property should also be defined in top-level. I will fix it in v8. > Best regards, > Krzysztof > Thank you for your time and your patience. Abdel
diff --git a/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml b/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml index 5497a60cddbc..9303d00b89de 100644 --- a/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml +++ b/Documentation/devicetree/bindings/usb/ti,tps6598x.yaml @@ -20,8 +20,18 @@ 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 wakeup-source: true @@ -32,10 +42,47 @@ 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 + + reg-names: + items: + - const: main + - const: patch-address + + 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>; + }; + }; + }; + }; + }; ...