[PATCH] dt-bindings: usb: Add ITE IT5271/IT5272/IT5273/IT5274 support

From: Amber Kao

Date: Thu Sep 03 2026 - 06:50:48 EST


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@xxxxxxxxxx>
---
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@xxxxxxxxxx/

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@xxxxxxxxxx>
+
+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@xxxxxxxxxx>
+M: ITE PD TEAM <ite_pd@xxxxxxxxxx>
+R: Yaode Fang <Yaode.Fang@xxxxxxxxxx>
+L: linux-usb@xxxxxxxxxxxxxxx
+S: Maintained
+F: Documentation/devicetree/bindings/usb/ite,it5271.yaml
+
IVTV VIDEO4LINUX DRIVER
M: Andy Walls <awalls@xxxxxxxxxxxxxxxx>
L: linux-media@xxxxxxxxxxxxxxx

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

Best regards,
--
Amber Kao <ite_pd@xxxxxxxxxx>