diff mbox series

dt-bindings: usb: Add binding for ti,tps25750

Message ID 20230817235212.441254-1-alkuor@gmail.com
State Superseded
Headers show
Series dt-bindings: usb: Add binding for ti,tps25750 | expand

Commit Message

Abdel Alkuor Aug. 17, 2023, 11:52 p.m. UTC
From: Abdel Alkuor <abdelalkuor@geotab.com>

TPS25750 provides power negotiation and capabilities management
for USB Type-C applications.

Signed-off-by: Abdel Alkuor <abdelalkuor@geotab.com>
---
 .../devicetree/bindings/usb/ti,tps25750.yaml  | 84 +++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/usb/ti,tps25750.yaml

Comments

Krzysztof Kozlowski Aug. 18, 2023, 9:31 a.m. UTC | #1
On 18/08/2023 01:52, Abdel Alkuor wrote:
> From: Abdel Alkuor <abdelalkuor@geotab.com>
> 
> TPS25750 provides power negotiation and capabilities management
> for USB Type-C applications.
> 
> Signed-off-by: Abdel Alkuor <abdelalkuor@geotab.com>

Where is any user of it? DTS, driver or 3rd party upstream open-source
project?


A nit, subject: drop second/last, redundant "binding for". The
"dt-bindings" prefix is already stating that these are bindings.

> ---
>  .../devicetree/bindings/usb/ti,tps25750.yaml  | 84 +++++++++++++++++++
>  1 file changed, 84 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/usb/ti,tps25750.yaml
> 
> diff --git a/Documentation/devicetree/bindings/usb/ti,tps25750.yaml b/Documentation/devicetree/bindings/usb/ti,tps25750.yaml
> new file mode 100644
> index 000000000000..326c9c2f766b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/ti,tps25750.yaml
> @@ -0,0 +1,84 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/ti,tps25750.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Texas Instruments 25750 Type-C Port Switch and Power Delivery controller
> +
> +maintainers:
> +  - Abdel Alkuor <abdelalkuor@geotab.com>
> +
> +description: |
> +  Texas Instruments 25750 Type-C Port Switch and Power Delivery controller
> +
> +properties:
> +  compatible:
> +    enum:
> +      - ti,tps25750

Blank line

> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    description: |

Drop description

> +    maxItems: 1
> +
> +  interrupt-names:
> +    items:
> +      - const: irq

Drop interrupt-names, it is useless in this form.

> +
> +  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

maxItems: 1

> +
> +  connector:
> +    type: object
> +    $ref: ../connector/usb-connector.yaml#
> +    description:
> +      Properties for usb c connector.
> +    required:
> +      - data-role
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - connector
> +
> +additionalProperties: true
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        tps25750: tps25750@21 {

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation


> +            compatible = "ti,tps25750";
> +            reg = <0x21>;
> +


Best regards,
Krzysztof
Abdel Alkuor Aug. 18, 2023, 3:35 p.m. UTC | #2
On Fri, Aug 18, 2023 at 11:31:35AM +0200, Krzysztof Kozlowski wrote:
> Where is any user of it? DTS, driver or 3rd party upstream open-source
> project?
>
Yes, for Geotab. We are working on bringing up a new BSP and we have tps25750
which doesn't have a driver in Linux yet. We developed the driver but I thought
I needed to get the dt-bindings accepted first before sending the patch for
the driver.

Sorry, this is my first time contributing to Linux. Maybe this question
was asked before but for some reason I couldn't find it.

What is usually the process? Should I upload the driver too?

> 
> A nit, subject: drop second/last, redundant "binding for". The
> "dt-bindings" prefix is already stating that these are bindings.
>

> > +      - ti,tps25750
> 
> Blank line
> 
> > +  reg:

> > +  interrupts:
> > +    description: |
> 
> Drop description
>

> > +  interrupt-names:
> > +    items:
> > +      - const: irq
> 
> Drop interrupt-names, it is useless in this form.
> 

> > +  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
> 
> maxItems: 1
> 

> > +        tps25750: tps25750@21 {
> 
> Node names should be generic. See also an explanation and list of
> examples (not exhaustive) in DT specification:
> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
> 
> 
> > +            compatible = "ti,tps25750";
> > +            reg = <0x21>;
> > +
> 
> 
> Best regards,
> Krzysztof
> 

Thanks for the review. I've addressed your comments in v2

Best Regards,
Abdel
Krzysztof Kozlowski Aug. 19, 2023, 7:09 a.m. UTC | #3
On 18/08/2023 17:35, Abdel Alkuor wrote:
> On Fri, Aug 18, 2023 at 11:31:35AM +0200, Krzysztof Kozlowski wrote:
>> Where is any user of it? DTS, driver or 3rd party upstream open-source
>> project?
>>
> Yes, for Geotab. We are working on bringing up a new BSP and we have tps25750
> which doesn't have a driver in Linux yet. We developed the driver but I thought
> I needed to get the dt-bindings accepted first before sending the patch for
> the driver.
> 
> Sorry, this is my first time contributing to Linux. Maybe this question
> was asked before but for some reason I couldn't find it.
> 
> What is usually the process? Should I upload the driver too?

Yes, please upload in one patchset, in following order:
1. This bindings patch
2. Driver patch


Best regards,
Krzysztof
Abdel Alkuor Aug. 20, 2023, 3:55 a.m. UTC | #4
On Sat, Aug 19, 2023 at 09:09:03AM +0200, Krzysztof Kozlowski wrote:
> On 18/08/2023 17:35, Abdel Alkuor wrote:
> > On Fri, Aug 18, 2023 at 11:31:35AM +0200, Krzysztof Kozlowski wrote:
> >> Where is any user of it? DTS, driver or 3rd party upstream open-source
> >> project?
> >>
> > Yes, for Geotab. We are working on bringing up a new BSP and we have tps25750
> > which doesn't have a driver in Linux yet. We developed the driver but I thought
> > I needed to get the dt-bindings accepted first before sending the patch for
> > the driver.
> > 
> > Sorry, this is my first time contributing to Linux. Maybe this question
> > was asked before but for some reason I couldn't find it.
> > 
> > What is usually the process? Should I upload the driver too?
> 
> Yes, please upload in one patchset, in following order:
> 1. This bindings patch
> 2. Driver patch
>

Will do. Thanks.

Abdel
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/usb/ti,tps25750.yaml b/Documentation/devicetree/bindings/usb/ti,tps25750.yaml
new file mode 100644
index 000000000000..326c9c2f766b
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/ti,tps25750.yaml
@@ -0,0 +1,84 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/ti,tps25750.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments 25750 Type-C Port Switch and Power Delivery controller
+
+maintainers:
+  - Abdel Alkuor <abdelalkuor@geotab.com>
+
+description: |
+  Texas Instruments 25750 Type-C Port Switch and Power Delivery controller
+
+properties:
+  compatible:
+    enum:
+      - ti,tps25750
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description: |
+    maxItems: 1
+
+  interrupt-names:
+    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
+
+  connector:
+    type: object
+    $ref: ../connector/usb-connector.yaml#
+    description:
+      Properties for usb c connector.
+    required:
+      - data-role
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - connector
+
+additionalProperties: true
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        tps25750: tps25750@21 {
+            compatible = "ti,tps25750";
+            reg = <0x21>;
+
+            interrupt-parent = <&msmgpio>;
+            interrupts = <107 IRQ_TYPE_LEVEL_LOW>;
+            interrupt-names = "irq";
+
+            firmware-name = "tps25750.bin";
+
+            pinctrl-names = "default";
+            pinctrl-0 = <&typec_pins>;
+
+            typec_con: connector {
+                compatible = "usb-c-connector";
+                label = "USB-C";
+                data-role = "dual";
+                port {
+                    typec_ep: endpoint {
+                        remote-endpoint = <&otg_ep>;
+                    };
+                };
+            };
+        };
+    };
+...