mirror of https://lore.kernel.org/lkml/
 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-07  9:02 ` Krzysztof Kozlowski
  0 siblings, 1 reply; 3+ 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	[flat|nested] 3+ messages in thread

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

Thread overview: 3+ 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-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

all inboxes | Powered by JetHome®