* [PATCH v3 0/2] usb: typec: ucsi_ccg: Add CYPD6129/CYPD6229 support
@ 2026-10-12 9:16 Akash Kumar
2026-10-12 9:16 ` [PATCH v3 1/2] dt-bindings: usb: cypress,cypd4226: Add cypd6129/cypd6229 support Akash Kumar
2026-10-12 9:16 ` [PATCH v3 2/2] usb: typec: ucsi_ccg: Add cypd6129/cypd6229 OF device IDs Akash Kumar
0 siblings, 2 replies; 3+ messages in thread
From: Akash Kumar @ 2026-10-12 9:16 UTC (permalink / raw)
To: Greg Kroah-Hartman, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Dmitry Baryshkov, Krzysztof Kozlowski, Conor Dooley
Cc: linux-usb, linux-kernel, linux-arm-msm, devicetree
This series adds Device Tree and driver support for the Cypress CYPD6129
and CYPD6229 dual Type-C PD controllers.
The controllers use the existing I2C-based UCSI CCG interface. The series
updates the binding to describe the new compatibles and controller-specific
properties, and extends the UCSI CCG OF match table accordingly.
Patch 1 updates the Device Tree binding to:
- Add CYPD6129 and CYPD6229 compatible strings.
- Support the CYPD6229 fallback-compatible relationship with CYPD6129.
- Allow controller-specific I2C addresses and interrupt configurations.
- Add pinctrl and wakeup-source properties.
- Preserve the existing CYPD4226-specific constraints.
Patch 2 adds CYPD6129 and CYPD6229 to the UCSI CCG OF device ID table.
Changes in v3:
- Fold the new controller descriptions into the existing
cypress,cypd4226.yaml binding.
- Drop the standalone cypress,cypd6129.yaml binding file.
- Drop the Shikra DTS changes from this series.
- Add conditional binding constraints for CYPD4226 and CYPD6129/CYPD6229.
- Address review comments from the v1 submission.
Link to v2: Link: https://lore.kernel.org/all/20260820145036.2035641-1-akash.kumar@oss.qualcomm.com/
Link to v1: https://lore.kernel.org/all/20260820145036.2035641-1-akash.kumar@oss.qualcomm.com/
Akash Kumar (2):
dt-bindings: usb: cypress,cypd4226: Add cypd6129/cypd6229 support
usb: typec: ucsi_ccg: Add cypd6129/cypd6229 OF device IDs
.../bindings/usb/cypress,cypd4226.yaml | 90 +++++++++++++++++--
drivers/usb/typec/ucsi/ucsi_ccg.c | 2 +
2 files changed, 85 insertions(+), 7 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v3 1/2] dt-bindings: usb: cypress,cypd4226: Add cypd6129/cypd6229 support
2026-10-12 9:16 [PATCH v3 0/2] usb: typec: ucsi_ccg: Add CYPD6129/CYPD6229 support Akash Kumar
@ 2026-10-12 9:16 ` Akash Kumar
2026-10-12 9:16 ` [PATCH v3 2/2] usb: typec: ucsi_ccg: Add cypd6129/cypd6229 OF device IDs Akash Kumar
1 sibling, 0 replies; 3+ messages in thread
From: Akash Kumar @ 2026-10-12 9:16 UTC (permalink / raw)
To: Greg Kroah-Hartman, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Dmitry Baryshkov, Krzysztof Kozlowski, Conor Dooley
Cc: linux-usb, linux-kernel, linux-arm-msm, devicetree
From: Akash Kumar <akakum@qti.qualcomm.com>
Extend the binding to cover the Cypress cypd6129 and cypd6229 dual
Type-C PD controllers, which share the same I2C-controlled interface
as the cypd4226. Also add pinctrl and wakeup-source properties, and
relax reg/interrupts constraints that only applied to cypd4226.
Signed-off-by: Akash Kumar <akakum@qti.qualcomm.com>
---
.../bindings/usb/cypress,cypd4226.yaml | 90 +++++++++++++++++--
1 file changed, 83 insertions(+), 7 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml b/Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml
index 0620d82508c1..d923ef82ecfa 100644
--- a/Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml
+++ b/Documentation/devicetree/bindings/usb/cypress,cypd4226.yaml
@@ -4,18 +4,25 @@
$id: http://devicetree.org/schemas/usb/cypress,cypd4226.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
-title: Cypress cypd4226 Type-C Controller
+title: Cypress cypd4226/cypd6129/cypd6229 Type-C Controller
maintainers:
- Wayne Chang <waynec@nvidia.com>
+ - Akash Kumar <akash.kumar@oss.qualcomm.com>
description:
- The Cypress cypd4226 is a dual Type-C controller that is controlled
- via an I2C interface.
+ The Cypress cypd4226 is a dual Type-C controller, and the cypd6129 and
+ cypd6229 are dual Type-C PD controllers. All are controlled via an I2C
+ interface.
properties:
compatible:
- const: cypress,cypd4226
+ oneOf:
+ - const: cypress,cypd4226
+ - const: cypress,cypd6129
+ - items:
+ - const: cypress,cypd6229
+ - const: cypress,cypd6129
'#address-cells':
const: 1
@@ -24,11 +31,10 @@ properties:
const: 0
reg:
- const: 0x08
+ maxItems: 1
interrupts:
- items:
- - description: cypd4226 host interrupt
+ maxItems: 1
firmware-name:
enum:
@@ -40,6 +46,19 @@ properties:
- "nvidia,gpu" for the NVIDIA RTX product series
- "nvidia,jetson-agx-xavier" for the NVIDIA Jetson product series
+ pinctrl-0: true
+ pinctrl-1: true
+
+ pinctrl-names:
+ minItems: 1
+ items:
+ - const: default
+ - const: sleep
+
+ wakeup-source:
+ description: enable IRQ remote wakeup, see power/wakeup-source.txt
+ type: boolean
+
patternProperties:
'^connector@[01]$':
$ref: /schemas/connector/usb-connector.yaml#
@@ -57,6 +76,24 @@ anyOf:
- required:
- connector@1
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: cypress,cypd4226
+ then:
+ properties:
+ reg:
+ const: 0x08
+ pinctrl-0: false
+ pinctrl-1: false
+ pinctrl-names: false
+ wakeup-source: false
+ else:
+ properties:
+ firmware-name: false
+
additionalProperties: false
examples:
@@ -91,3 +128,42 @@ examples:
};
};
};
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ typec@40 {
+ compatible = "cypress,cypd6129";
+ reg = <0x40>;
+ interrupts-extended = <&tlmm 136 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-0 = <&usb0_intr_state>;
+ pinctrl-names = "default";
+ wakeup-source;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ connector@0 {
+ compatible = "usb-c-connector";
+ reg = <0>;
+ label = "USB-C";
+ data-role = "dual";
+ power-role = "dual";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ endpoint {
+ remote-endpoint = <&usb_role_switch0>;
+ };
+ };
+ };
+ };
+ };
+ };
--
2.43.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v3 2/2] usb: typec: ucsi_ccg: Add cypd6129/cypd6229 OF device IDs
2026-10-12 9:16 [PATCH v3 0/2] usb: typec: ucsi_ccg: Add CYPD6129/CYPD6229 support Akash Kumar
2026-10-12 9:16 ` [PATCH v3 1/2] dt-bindings: usb: cypress,cypd4226: Add cypd6129/cypd6229 support Akash Kumar
@ 2026-10-12 9:16 ` Akash Kumar
1 sibling, 0 replies; 3+ messages in thread
From: Akash Kumar @ 2026-10-12 9:16 UTC (permalink / raw)
To: Greg Kroah-Hartman, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Dmitry Baryshkov, Krzysztof Kozlowski, Conor Dooley
Cc: linux-usb, linux-kernel, linux-arm-msm, devicetree
From: Akash Kumar <akakum@qti.qualcomm.com>
Add compatible strings for the Cypress cypd6129 and cypd6229 dual
Type-C PD controllers to the of_device_id match table, matching the
corresponding dt-bindings update.
Signed-off-by: Akash Kumar <akakum@qti.qualcomm.com>
---
drivers/usb/typec/ucsi/ucsi_ccg.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/usb/typec/ucsi/ucsi_ccg.c b/drivers/usb/typec/ucsi/ucsi_ccg.c
index 3f12db95c7f4..34fde72fe0a6 100644
--- a/drivers/usb/typec/ucsi/ucsi_ccg.c
+++ b/drivers/usb/typec/ucsi/ucsi_ccg.c
@@ -1556,6 +1556,8 @@ static void ucsi_ccg_remove(struct i2c_client *client)
static const struct of_device_id ucsi_ccg_of_match_table[] = {
{ .compatible = "cypress,cypd4226", },
+ { .compatible = "cypress,cypd6129", },
+ { .compatible = "cypress,cypd6229", },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, ucsi_ccg_of_match_table);
--
2.43.0
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-12 9:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-12 9:16 [PATCH v3 0/2] usb: typec: ucsi_ccg: Add CYPD6129/CYPD6229 support Akash Kumar
2026-10-12 9:16 ` [PATCH v3 1/2] dt-bindings: usb: cypress,cypd4226: Add cypd6129/cypd6229 support Akash Kumar
2026-10-12 9:16 ` [PATCH v3 2/2] usb: typec: ucsi_ccg: Add cypd6129/cypd6229 OF device IDs Akash Kumar
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®