[PATCH 2/2] arm64: dts: rockchip: Add the GPIO expander to Kobol Helios64

From: Igor Velkov via B4 Relay

Date: Fri Oct 09 2026 - 16:46:03 EST


From: Igor Velkov <iav@xxxxxx>

Helios64 has an ON Semiconductor PCA9655E 16-bit GPIO expander at 0x20
on I2C2, powered from VCC3V3_SYS_S3, with its lines on the P5 GPIO
header. Its INT# output goes to GPIO0_B1 with an external pull-up (R59
to 1V8_S3), so the pin has no internal bias. Schematic, sheet 34:
https://wiki.kobol.io/helios64/files/schematics/Helios64_Schematics_Rev1.2.pdf

Assisted-by: LLM
Signed-off-by: Igor Velkov <iav@xxxxxx>
---
.../boot/dts/rockchip/rk3399-kobol-helios64.dts | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
index d146e5075b4f..a860bd2b3afc 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
@@ -453,6 +453,20 @@ &i2c2 {
i2c-scl-falling-time-ns = <30>;
status = "okay";

+ gpio@20 {
+ compatible = "onnn,pca9655", "nxp,pca9555";
+ reg = <0x20>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <RK_PB1 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&exp16_int_l>;
+ vcc-supply = <&vcc3v3_sys_s3>;
+ };
+
temp@4c {
compatible = "national,lm75";
reg = <0x4c>;
@@ -493,6 +507,12 @@ user1_btn: user1-btn {
};
};

+ expander {
+ exp16_int_l: exp16-int-l {
+ rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
gmac {
gphy_reset: gphy-reset {
rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>;

--
2.43.0