diff --git a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
index c0c9eb08f598..d50a5a1cce39 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
@@ -417,6 +417,15 @@ &i2c2 {
 	pinctrl-0 = <&pinctrl_i2c2>;
 	status = "okay";
 
+	m2_expander: pcal6408@20 {
+		compatible = "nxp,pcal6408";
+		reg = <0x20>;
+		gpio-controller;
+		#gpio-cells = <2>;
+		gpio-line-names = "UNUSED", "IND_RST_15.4", "WL_WAKE_IN",
+		"BT_WAKE_IN", "RST_IND", "UNUSED", "UNUSED", "UNUSED";
+	};
+
 	adv_bridge: adv7535@3d {
 		compatible = "adi,adv7535";
 		reg = <0x3d>;
@@ -478,6 +487,10 @@ pca6416: gpio@20 {
 		gpio-controller;
 		#gpio-cells = <2>;
 		vcc-supply = <&buck4_reg>;
+                interrupt-parent = <&gpio1>;
+                interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
+                pinctrl-names = "default";
+                pinctrl-0 = <&pinctrl_gpioirq>;
 	};
 
 	ak4458_1: ak4458@10 {
@@ -791,6 +804,12 @@ &gpu {
 };
 
 &iomuxc {
+        pinctrl_gpioirq: pca6416irq {
+                fsl,pins = <
+                        MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12 0x141
+                >;
+        };
+
 	pinctrl_ir_recv: ir-recv {
 		fsl,pins = <
 			MX8MM_IOMUXC_GPIO1_IO13_GPIO1_IO13		0x4f
