.../devicetree/bindings/usb/ite,it5271.yaml | 176 +++++++++++++++++++++ MAINTAINERS | 8 + 2 files changed, 184 insertions(+)
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>
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
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
© 2016 - 2026 Red Hat, Inc.