Devicetree
 help / color / mirror / Atom feed
* [PATCH] dt-bindings: usb: Add ITE IT5271/IT5272/IT5273/IT5274 support
@ 2026-09-03 10:15 Amber Kao
  2026-09-03 10:22 ` sashiko-bot
  2026-09-07  9:02 ` Krzysztof Kozlowski
  0 siblings, 2 replies; 4+ messages in thread
From: Amber Kao @ 2026-09-03 10:15 UTC (permalink / raw)
  To: Amber Kao, Jeson Yang, Yaode Fang, Greg Kroah-Hartman,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: linux-usb, devicetree, linux-kernel, Amber Kao

Add device tree binding documentation for the ITE IT527x series
(IT5271, IT5272, IT5273, and IT5274) I2C-based USB Type-C Power
Delivery (PD) controllers.

The series comprises four variants differing by port count and
Power Range support:
- IT5271: single-port, SPR (Standard Power Range)
- IT5272: two-port, SPR
- IT5273: single-port, EPR (Extended Power Range)
- IT5274: two-port, EPR

Signed-off-by: Amber Kao <ite_pd@ite.com.tw>
---
The driver for this device family is shared with ITE IT8851/IT8853,
currently under review as a separate series:
https://patchwork.kernel.org/project/linux-usb/patch/20260807-ucsi-itepd-v7-2-998ac11ed0ef@ite.com.tw/

This binding is submitted independently so it can be reviewed on
its own; once the driver series lands, IT527x support will be
wired into it there.
---
 .../devicetree/bindings/usb/ite,it5271.yaml        | 176 +++++++++++++++++++++
 MAINTAINERS                                        |   8 +
 2 files changed, 184 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/ite,it5271.yaml b/Documentation/devicetree/bindings/usb/ite,it5271.yaml
new file mode 100644
index 000000000000..29cd7add9bde
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/ite,it5271.yaml
@@ -0,0 +1,176 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/ite,it5271.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ITE IT5271/IT5272/IT5273/IT5274 USB Type-C Power Delivery Controller
+
+maintainers:
+  - Amber Kao <amber.kao@ite.com.tw>
+
+description: |
+  The ITE IT527x series are I2C-based USB Type-C Power Delivery (PD)
+  controllers.
+  All variants support DFP/UFP/DRP roles, USB PD 3.1, Fast Role Swap,
+  USB4, and TBT3/TBT4 alternate modes.
+
+  The series comprises four ordering part numbers built on identical
+  silicon; port count and PD power range support are configured via
+  firmware/OTP rather than differing in the register interface itself:
+    - IT5271: single-port variant, SPR
+    - IT5272: two-port variant, SPR
+    - IT5273: single-port variant, EPR
+    - IT5274: two-port variant, EPR
+
+properties:
+  compatible:
+    oneOf:
+      - const: ite,it5271
+      - items:
+          - const: ite,it5272
+          - const: ite,it5271
+      - items:
+          - const: ite,it5273
+          - const: ite,it5271
+      - items:
+          - const: ite,it5274
+          - const: ite,it5271
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  wakeup-source: true
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  '^connector@[01]$':
+    $ref: /schemas/connector/usb-connector.yaml#
+    properties:
+      reg:
+        maxItems: 1
+    required:
+      - reg
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+anyOf:
+  - required:
+      - connector@0
+  - required:
+      - connector@1
+
+allOf:
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              enum:
+                - ite,it5272
+                - ite,it5274
+    then:
+      properties:
+        connector@1: false
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        /* IT5274: two-port, EPR variant */
+        typec@26 {
+            compatible = "ite,it5274", "ite,it5271";
+            reg = <0x26>;
+            interrupts-extended = <&tlmm 129 IRQ_TYPE_EDGE_FALLING>;
+            wakeup-source;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            connector@0 {
+                compatible = "usb-c-connector";
+                reg = <0>;
+                label = "USB-C-0";
+                power-role = "dual";
+                data-role = "dual";
+
+                ports {
+                    #address-cells = <1>;
+                    #size-cells = <0>;
+
+                    port@0 {
+                        reg = <0>;
+                        endpoint {
+                            remote-endpoint = <&eud_con>;
+                        };
+                    };
+
+                    port@1 {
+                        reg = <1>;
+                        endpoint {
+                            remote-endpoint = <&redriver_ss_out>;
+                        };
+                    };
+
+                    port@2 {
+                        reg = <2>;
+                        endpoint {
+                            remote-endpoint = <&dp_phy_out>;
+                        };
+                    };
+                };
+            };
+
+            connector@1 {
+                compatible = "usb-c-connector";
+                reg = <1>;
+                label = "USB-C-1";
+                power-role = "dual";
+                data-role = "dual";
+
+                ports {
+                    #address-cells = <1>;
+                    #size-cells = <0>;
+
+                    port@0 {
+                        reg = <0>;
+                        endpoint {
+                            remote-endpoint = <&usb1_hs_con>;
+                        };
+                    };
+
+                    port@1 {
+                        reg = <1>;
+                        endpoint {
+                            remote-endpoint = <&redriver1_ss_out>;
+                        };
+                    };
+
+                    port@2 {
+                        reg = <2>;
+                        endpoint {
+                            remote-endpoint = <&dp_phy1_out>;
+                        };
+                    };
+                };
+            };
+        };
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 4dfc1fb14ef7..1a35242257fc 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13940,6 +13940,14 @@ T:	git https://gitlab.freedesktop.org/drm/misc/kernel.git
 F:	Documentation/devicetree/bindings/display/bridge/ite,it66121.yaml
 F:	drivers/gpu/drm/bridge/ite-it66121.c
 
+ITE IT5271 TYPE-C PD CONTROLLER DRIVER
+M:	Amber Kao <amber.kao@ite.com.tw>
+M:	ITE PD TEAM <ite_pd@ite.com.tw>
+R:	Yaode Fang <Yaode.Fang@ite.com.tw>
+L:	linux-usb@vger.kernel.org
+S:	Maintained
+F:	Documentation/devicetree/bindings/usb/ite,it5271.yaml
+
 IVTV VIDEO4LINUX DRIVER
 M:	Andy Walls <awalls@md.metrocast.net>
 L:	linux-media@vger.kernel.org

---
base-commit: 786262be6048deab760f68c8acc2c85607165894
change-id: 20260903-it5271-binding-43a376f0b91f

Best regards,
--  
Amber Kao <ite_pd@ite.com.tw>


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] dt-bindings: usb: Add ITE IT5271/IT5272/IT5273/IT5274 support
  2026-09-03 10:15 [PATCH] dt-bindings: usb: Add ITE IT5271/IT5272/IT5273/IT5274 support Amber Kao
@ 2026-09-03 10:22 ` sashiko-bot
  2026-09-07  9:02 ` Krzysztof Kozlowski
  1 sibling, 0 replies; 4+ messages in thread
From: sashiko-bot @ 2026-09-03 10:22 UTC (permalink / raw)
  To: Amber Kao; +Cc: robh, conor+dt, devicetree

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Low] The schema fails to require `#address-cells` and `#size-cells` for the parent node, despite mandating child nodes with unit addresses.
- [Low] Misplaced entry in the MAINTAINERS file disrupting alphabetical order.
--

commit 837acb02e0d2d80f62a7b268e076746b70c411ef
Author: Amber Kao <ite_pd@ite.com.tw>

dt-bindings: usb: Add ITE IT5271/IT5272/IT5273/IT5274 support
    
Add device tree binding documentation for the ITE IT527x series
(IT5271, IT5272, IT5273, and IT5274) I2C-based USB Type-C Power
Delivery (PD) controllers.

> diff --git a/Documentation/devicetree/bindings/usb/ite,it5271.yaml b/Documentation/devicetree/bindings/usb/ite,it5271.yaml
> index 0000000000000..29cd7add9bde2
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/ite,it5271.yaml

[ ... ]

> +patternProperties:
> +  '^connector@[01]$':
> +    $ref: /schemas/connector/usb-connector.yaml#
> +    properties:
> +      reg:
> +        maxItems: 1
> +    required:
> +      - reg
> +    unevaluatedProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts

[Severity: Low]
Should `#address-cells` and `#size-cells` be added to this required list?

Since the schema mandates child connector nodes with unit addresses (`reg`),
device trees missing `#address-cells` and `#size-cells` in the parent node will
pass schema validation silently, even though they are structurally invalid and
will trigger `dtc` warnings (e.g., node has a unit name, but no reg or
#address-cells).

> +
> +anyOf:
> +  - required:
> +      - connector@0

[ ... ]

> diff --git a/MAINTAINERS b/MAINTAINERS
> index 4dfc1fb14ef72..1a35242257fc8 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -13940,6 +13940,14 @@ T:	git https://gitlab.freedesktop.org/drm/misc/kernel.git
>  F:	Documentation/devicetree/bindings/display/bridge/ite,it66121.yaml
>  F:	drivers/gpu/drm/bridge/ite-it66121.c
>  
> +ITE IT5271 TYPE-C PD CONTROLLER DRIVER

[Severity: Low]
Does this new entry disrupt the alphabetical ordering of the MAINTAINERS file?

"ITE IT5271 TYPE-C PD CONTROLLER DRIVER" is currently placed after "ITE
IT66121 HDMI BRIDGE", which violates the expected alphabetical sorting.

> +M:	Amber Kao <amber.kao@ite.com.tw>
> +M:	ITE PD TEAM <ite_pd@ite.com.tw>
> +R:	Yaode Fang <Yaode.Fang@ite.com.tw>
> +L:	linux-usb@vger.kernel.org
> +S:	Maintained
> +F:	Documentation/devicetree/bindings/usb/ite,it5271.yaml
> +

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260903-it5271-binding-v1-1-1abd2c8cea85@ite.com.tw?part=1

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] dt-bindings: usb: Add ITE IT5271/IT5272/IT5273/IT5274 support
  2026-09-03 10:15 [PATCH] dt-bindings: usb: Add ITE IT5271/IT5272/IT5273/IT5274 support Amber Kao
  2026-09-03 10:22 ` sashiko-bot
@ 2026-09-07  9:02 ` Krzysztof Kozlowski
  2026-09-07  9:57   ` amber.kao
  1 sibling, 1 reply; 4+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-07  9:02 UTC (permalink / raw)
  To: Amber Kao
  Cc: Amber Kao, Jeson Yang, Yaode Fang, Greg Kroah-Hartman,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-usb,
	devicetree, linux-kernel

On Thu, Sep 03, 2026 at 06:15:43PM +0800, Amber Kao wrote:
> Add device tree binding documentation for the ITE IT527x series
> (IT5271, IT5272, IT5273, and IT5274) I2C-based USB Type-C Power
> Delivery (PD) controllers.
> 
> The series comprises four variants differing by port count and
> Power Range support:
> - IT5271: single-port, SPR (Standard Power Range)
> - IT5272: two-port, SPR
> - IT5273: single-port, EPR (Extended Power Range)
> - IT5274: two-port, EPR
> 
> Signed-off-by: Amber Kao <ite_pd@ite.com.tw>
> ---
> The driver for this device family is shared with ITE IT8851/IT8853,
> currently under review as a separate series:
> https://patchwork.kernel.org/project/linux-usb/patch/20260807-ucsi-itepd-v7-2-998ac11ed0ef@ite.com.tw/
> 
> This binding is submitted independently so it can be reviewed on

No, it cannot be reviewed on its own, because splitting it means you
have undocumented compatibles in the other patchset.

And if you do not, then there is no user for this binding.


> its own; once the driver series lands, IT527x support will be
> wired into it there.

Then what is the point of this binding now?

> ---
>  .../devicetree/bindings/usb/ite,it5271.yaml        | 176 +++++++++++++++++++++
>  MAINTAINERS                                        |   8 +
>  2 files changed, 184 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/usb/ite,it5271.yaml b/Documentation/devicetree/bindings/usb/ite,it5271.yaml
> new file mode 100644
> index 000000000000..29cd7add9bde
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/ite,it5271.yaml
> @@ -0,0 +1,176 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/ite,it5271.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ITE IT5271/IT5272/IT5273/IT5274 USB Type-C Power Delivery Controller
> +
> +maintainers:
> +  - Amber Kao <amber.kao@ite.com.tw>
> +
> +description: |
> +  The ITE IT527x series are I2C-based USB Type-C Power Delivery (PD)
> +  controllers.
> +  All variants support DFP/UFP/DRP roles, USB PD 3.1, Fast Role Swap,
> +  USB4, and TBT3/TBT4 alternate modes.
> +
> +  The series comprises four ordering part numbers built on identical
> +  silicon; port count and PD power range support are configured via
> +  firmware/OTP rather than differing in the register interface itself:
> +    - IT5271: single-port variant, SPR
> +    - IT5272: two-port variant, SPR
> +    - IT5273: single-port variant, EPR
> +    - IT5274: two-port variant, EPR
> +

Why isn't this entire binding part of the other file?

> +properties:
> +  compatible:
> +    oneOf:
> +      - const: ite,it5271
> +      - items:
> +          - const: ite,it5272

enum

I finished actually here, becausr I still find reviewing outside of
driver a waste of our time.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH] dt-bindings: usb: Add ITE IT5271/IT5272/IT5273/IT5274 support
  2026-09-07  9:02 ` Krzysztof Kozlowski
@ 2026-09-07  9:57   ` amber.kao
  0 siblings, 0 replies; 4+ messages in thread
From: amber.kao @ 2026-09-07  9:57 UTC (permalink / raw)
  To: krzk, ite_pd
  Cc: jeson.yang, Yaode.Fang, gregkh, robh, krzk+dt, conor+dt,
	linux-usb, devicetree, linux-kernel

On Mon, Sep 07, 2026 at 05:03:00PM +0800, Krzysztof Kozlowski wrote:
> On Thu, Sep 03, 2026 at 06:15:43PM +0800, Amber Kao wrote:
> > This binding is submitted independently so it can be reviewed on
> 
> No, it cannot be reviewed on its own, because splitting it means you
> have undocumented compatibles in the other patchset.
> 
> And if you do not, then there is no user for this binding.
> 
> > its own; once the driver series lands, IT527x support will be wired
> > into it there.
> 
> Then what is the point of this binding now?

Understood, that's a fair point — reviewing a binding without a driver
user in tree is a waste of everyone's time. I'll drop this standalone
binding patch.

> > +    - IT5271: single-port variant, SPR
> > +    - IT5272: two-port variant, SPR
> > +    - IT5273: single-port variant, EPR
> > +    - IT5274: two-port variant, EPR
> > +
> 
> Why isn't this entire binding part of the other file?

IT527x and IT885x are different hardware, which is why we described
them in separate DT bindings. However, since their UCSI operational
flow is similar, they share the same driver (ucsi_itepd.c).

> > +properties:
> > +  compatible:
> > +    oneOf:
> > +      - const: ite,it5271
> > +      - items:
> > +          - const: ite,it5272
> 
> enum

Noted, will fix in the next submission.

> I finished actually here, becausr I still find reviewing outside of
> driver a waste of our time.

Instead of resubmitting this binding alone, I'm planning to send a new
series containing both the binding (with the enum fix) and the
corresponding compatible strings added to ucsi_itepd.c, so there's
always a driver user for the binding under review.

One thing I'd like to check first: the base IT8851/IT8853 series this
depends on has already picked up Reviewed-by tags from Heikki Krogerus
and Rob Herring, but hasn't landed in mainline yet. Heikki previously
suggested it's fine to send a follow-up series before the base lands,
as long as the dependency is noted in the cover letter. Given that,
would you be okay with me sending the IT527x driver+binding series now
with that dependency called out, or would you prefer I wait until the
IT8851/IT8853 series is actually merged first?

Best regards,
Amber Kao

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-09-07  9:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-03 10:15 [PATCH] dt-bindings: usb: Add ITE IT5271/IT5272/IT5273/IT5274 support Amber Kao
2026-09-03 10:22 ` sashiko-bot
2026-09-07  9:02 ` Krzysztof Kozlowski
2026-09-07  9:57   ` amber.kao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox