From 80213e6c39c393d1fed20680f6157f0c4f7bfc17 Mon Sep 17 00:00:00 2001
From: Gianfranco Mariotti <gianfranco.mariotti@seco.com>
Date: Thu, 25 May 2023 15:40:06 +0200
Subject: [PATCH] [D18] add gpio expander PCAL6416 support

---
 arch/arm64/boot/dts/seco/seco-imx8mp-d18.dts | 28 +++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/seco/seco-imx8mp-d18.dts b/arch/arm64/boot/dts/seco/seco-imx8mp-d18.dts
index 487b4e3ef5b09..be83034e8100b 100644
--- a/arch/arm64/boot/dts/seco/seco-imx8mp-d18.dts
+++ b/arch/arm64/boot/dts/seco/seco-imx8mp-d18.dts
@@ -54,6 +54,17 @@ reg_audio_pwr: regulator-audio-pwr {
 		regulator-always-on;
 	};
 
+	reg_pca6416_20: regulator-pca6416-20-pwr {
+		compatible = "regulator-fixed";
+		regulator-name = "pca6416-20-pwr";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
 	bt_sco_codec: bt_sco_codec {
 	};
 
@@ -291,10 +302,16 @@ &i2c3 {
 	status = "okay";
 
 	pca6416: gpio@20 {
-		compatible = "ti,tca6416";
+		compatible = "nxp,pcal6416";
 		reg = <0x20>;
 		gpio-controller;
 		#gpio-cells = <2>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_pca6416_20>;
+		interrupt-parent = <&gpio1>;
+		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
 	};
 };
 
@@ -523,6 +540,15 @@ MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL	0x400001c3
 			MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA	0x400001c3
 			MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD		0x40000019
 			MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC		0x40000019
+
+			/* GPIO expander 0x20 */
+			MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07		0x40000
+		>;
+	};
+
+	pinctrl_pca6416_20: pca641620 {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO01__GPIO1_IO01	0x0
 		>;
 	};
 
-- 
GitLab