Re: [PATCH 1/3] dt-bindings: usb: typec: Add Cypress CYPD6129 UCSI controller compatible

From: Dmitry Baryshkov

Date: Wed May 20 2026 - 06:07:34 EST


On Wed, May 20, 2026 at 03:07:32PM +0530, Akash Kumar wrote:
> Document the "cypress,cypd6129" compatible string for the Cypress/Infineon
> EZ-PD CCGx UCSI controller.
>
> The CYPD6129 is compatible with the existing CCGx binding, so allow it as a
> valid compatible and permit the existing "cypress,cypd4226" fallback where
> appropriate.
>
> Signed-off-by: Akash Kumar <akash.kumar@xxxxxxxxxxxxxxxx>
> ---
> .../bindings/usb/cypress,cypd4226.yaml | 73 ++++++++++++++-----
> 1 file changed, 55 insertions(+), 18 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml b/Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml
> index 0620d82508c1..90769c43ac95 100644
> --- a/Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml
> +++ b/Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml
> @@ -15,7 +15,13 @@ description:
>
> properties:
> compatible:
> - const: cypress,cypd4226
> + oneOf:
> + - enum:
> + - cypress,cypd6129
> + - cypress,cypd4226
> + - items:
> + - const: cypress,cypd6129
> + - const: cypress,cypd4226
>
> '#address-cells':
> const: 1
> @@ -63,10 +69,42 @@ examples:
> - |
> #include <dt-bindings/interrupt-controller/arm-gic.h>
> i2c {
> - #address-cells = <1>;
> - #size-cells = <0>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + #interrupt-cells = <2>;
> +
> + typec@8 {
> + compatible = "cypress,cypd6129";

What does this example bring here?

> + reg = <0x08>;
> + interrupt-parent = <&node>;
> + interrupts = <GPIO IRQ_TYPE_LEVEL_LOW>;
> + firmware-name = "ccg_primary.cyacd2";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + connector@0 {
> + compatible = "usb-c-connector";
> + reg = <0>;
> + label = "USB-C";
> + data-role = "dual";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
>
> - typec@8 {
> + port@0 {
> + reg = <0>;
> + endpoint {
> + remote-endpoint = <&usb_role_switch0>;
> + };
> + };
> + };
> + };
> + };
> + };
> +
> + - |
> + typec@8 {

Ugh, definitely not. The default here is #size-cells = <1>, which is not
suitable for I2C devices.

> compatible = "cypress,cypd4226";
> reg = <0x08>;
> interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
> @@ -74,20 +112,19 @@ examples:
> #address-cells = <1>;
> #size-cells = <0>;
> connector@0 {
> - compatible = "usb-c-connector";

Don't mix cleanups (whitespace changes) and sensible changes.

> - reg = <0>;
> - label = "USB-C";
> - data-role = "dual";
> - ports {
> - #address-cells = <1>;
> - #size-cells = <0>;
> - port@0 {
> - reg = <0>;
> - endpoint {
> - remote-endpoint = <&usb_role_switch0>;
> - };
> + compatible = "usb-c-connector";
> + reg = <0>;
> + label = "USB-C";
> + data-role = "dual";
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + port@0 {
> + reg = <0>;
> + endpoint {
> + remote-endpoint = <&usb_role_switch0>;
> + };
> + };
> };
> - };
> };
> - };
> };
> --
> 2.43.0
>

--
With best wishes
Dmitry