Re: [PATCH RFC 07/12] arm64: dts: qcom: pm660: Add USB Type-C port controller node

From: Bryan O'Donoghue

Date: Sat Sep 26 2026 - 10:25:57 EST


On 26/09/2026 13:40, David Heidelberg via B4 Relay wrote:
From: Alexey Minnekhanov <alexeymin@xxxxxxxxxx>

Add the PM660 Type-C port controller and PD PHY device node.

As on PMI8998, the Type-C CC logic is part of the charger's USBIN
peripheral at 0x1300, the PD PHY is at 0x1700. The node uses the
'type-c-change' interrupt from the USBIN peripheral for CC state
notifications, plus the 8 PD PHY interrupts, including fr-swap.

The node is disabled by default; individual boards enable it and provide
the USB-C connector description with PD capabilities and port graph.

Assisted-by: LLM
Signed-off-by: Alexey Minnekhanov <alexeymin@xxxxxxxxxx>
Signed-off-by: David Heidelberg <david@xxxxxxx>
---
arch/arm64/boot/dts/qcom/pm660.dtsi | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/pm660.dtsi b/arch/arm64/boot/dts/qcom/pm660.dtsi
index 156b2ddff0dcb..37965a3607417 100644
--- a/arch/arm64/boot/dts/qcom/pm660.dtsi
+++ b/arch/arm64/boot/dts/qcom/pm660.dtsi
@@ -85,16 +85,43 @@ pm660_charger: charger@1000 {
io-channels = <&pm660_rradc 3>,
<&pm660_rradc 4>;
io-channel-names = "usbin_i", "usbin_v";
status = "disabled";
};
+ pm660_typec: typec@1300 {
+ compatible = "qcom,pm660-typec";
+ reg = <0x1300>,
+ <0x1700>;
+
+ interrupts = <0x0 0x13 0x7 IRQ_TYPE_EDGE_RISING>,
+ <0x0 0x17 0x0 IRQ_TYPE_EDGE_RISING>,
+ <0x0 0x17 0x1 IRQ_TYPE_EDGE_RISING>,
+ <0x0 0x17 0x2 IRQ_TYPE_EDGE_RISING>,
+ <0x0 0x17 0x3 IRQ_TYPE_EDGE_RISING>,
+ <0x0 0x17 0x4 IRQ_TYPE_EDGE_RISING>,
+ <0x0 0x17 0x5 IRQ_TYPE_EDGE_RISING>,
+ <0x0 0x17 0x6 IRQ_TYPE_EDGE_RISING>,
+ <0x0 0x17 0x7 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "type-c-change",
+ "sig-tx",
+ "sig-rx",
+ "msg-tx",
+ "msg-rx",
+ "msg-tx-failed",
+ "msg-tx-discarded",
+ "msg-rx-discarded",
+ "fr-swap";
+
+ status = "disabled";
+ };
+
pm660_temp: temp-alarm@2400 {
compatible = "qcom,spmi-temp-alarm";
reg = <0x2400>;
interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_RISING>;
io-channels = <&pm660_adc ADC5_DIE_TEMP>;
io-channel-names = "thermal";
#thermal-sensor-cells = <0>;
};

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>