1
0
Fork 0

LF-1569 dts: arm64: imx8mn-evk: enable 8mic revE board

Add support for 8mic rev E PDM mic array board
support for gpio leds and software keys events:

SW1: KEY_F9 Factory reset for Android
SW2: VOLUME_MUTE
SW3: VOLUME_UP
SW4: VOLUME_DOWN

Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
5.4-rM2-2.2.x-imx-squashed
Fugang Duan 2020-06-19 15:35:18 +08:00
parent d07cf6a7eb
commit 236e62fc5e
2 changed files with 121 additions and 1 deletions

View File

@ -59,7 +59,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk-8mic-revE.dtb imx8mm-evk-8mic-swpdm.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-ab2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mn-evk.dtb imx8mn-evk-rm67191.dtb imx8mn-ddr4-evk.dtb imx8mn-ddr4-evk-ak5558.dtb \
imx8mn-ddr4-evk-rm67191.dtb imx8mn-ddr4-evk-rpmsg.dtb imx8mn-ddr4-evk-usd-wifi.dtb \
imx8mn-evk-ak5558.dtb imx8mn-evk-rpmsg.dtb
imx8mn-evk-ak5558.dtb imx8mn-evk-rpmsg.dtb imx8mn-evk-8mic-revE.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr4-evk-root.dtb imx8mn-ddr4-evk-inmate.dtb imx8mn-evk-root.dtb imx8mn-evk-inmate.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mn-ab2.dtb imx8mn-ddr4-ab2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb imx8mp-evk-root.dtb imx8mp-evk-inmate.dtb imx8mp-evk-rpmsg.dtb \

View File

@ -0,0 +1,120 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
* Copyright 2020 NXP
*/
#include "imx8mn-evk.dts"
/ {
mic_leds {
compatible = "gpio-leds";
mic0 {
label = "mic0";
gpios = <&pca9555 5 GPIO_ACTIVE_LOW>;
default-state = "off";
};
mic1 {
label = "mic1";
gpios = <&pca9555 7 GPIO_ACTIVE_LOW>;
default-state = "off";
};
mic2 {
label = "mic2";
gpios = <&pca9555 6 GPIO_ACTIVE_LOW>;
default-state = "off";
};
mic3 {
label = "mic3";
gpios = <&pca9555 2 GPIO_ACTIVE_LOW>;
default-state = "off";
};
mic4 {
label = "mic4";
gpios = <&pca9555 1 GPIO_ACTIVE_LOW>;
default-state = "off";
};
mic5 {
label = "mic5";
gpios = <&pca9555 0 GPIO_ACTIVE_LOW>;
default-state = "off";
};
mic6 {
label = "mic6";
gpios = <&pca9555 4 GPIO_ACTIVE_LOW>;
default-state = "off";
};
mic7 {
label = "mic7";
gpios = <&pca9555 3 GPIO_ACTIVE_LOW>;
default-state = "off";
};
};
sw_keys {
compatible = "gpio-keys";
sw4: volume_down {
label = "Volume Down";
gpios = <&pca9555 14 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEDOWN>;
};
sw3: volume_up {
label = "Volume Up";
gpios = <&pca9555 15 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
};
sw2: volume_mute {
label = "Volume Mute";
gpios = <&pca9555 16 GPIO_ACTIVE_LOW>;
linux,code = <KEY_MUTE>;
};
sw1: key_act {
label = "Key Act";
gpios = <&pca9555 17 GPIO_ACTIVE_LOW>;
linux,code = <KEY_F9>;
};
};
reg_vddext_3v3: regulator-vddext {
compatible = "regulator-fixed";
regulator-name = "VDDEXT_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
&iomuxc {
pinctrl_swpdm_mute_irq: swpdm_mute_grp {
fsl,pins = <
MX8MN_IOMUXC_ECSPI1_MISO_GPIO5_IO8 0x19
>;
};
pinctrl_pushbutton_irq: pushbutton_grp {
fsl,pins = <
MX8MN_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x19
>;
};
};
&i2c3 {
pca9555: gpio@21 {
compatible = "nxp,pca9555";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pushbutton_irq>;
reg = <0x21>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio5>;
interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
vcc-supply = <&reg_vddext_3v3>;
status = "okay";
};
};
&uart3 {
status = "disabled";
};