MLK-16929-3: dts: arm64: fsl imx8mq evk pdm mic support
authorAdrian Alonso <adrian.alonso@nxp.com>
Fri, 1 Dec 2017 16:21:28 +0000 (10:21 -0600)
committerNitin Garg <nitin.garg@nxp.com>
Tue, 20 Mar 2018 19:50:04 +0000 (14:50 -0500)
Add pdm mic support on imx8mq evk platform
Hardware modifications connect PDM mic:

PDM pin    SAI-3 pad    Test point
------------------------------------
BCLK       SAI3_RXC     TP1802
DATA       SAI3_RXD     TP1804

Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Documentation/devicetree/bindings/sound/imx-pdm-mic.txt [new file with mode: 0644]
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/fsl-imx8mq-evk-pdm.dts [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/sound/imx-pdm-mic.txt b/Documentation/devicetree/bindings/sound/imx-pdm-mic.txt
new file mode 100644 (file)
index 0000000..bde8313
--- /dev/null
@@ -0,0 +1,16 @@
+Freescale i.MX audio complex PDM microphone
+
+Required properties:
+- compatible: "fsl,imx-pdm-mic"
+- model: The user-visible name of this sound complex
+- audio-cpu : The phandle of the i.MX SAI controller
+- decimation : The PDM decimation factor <64>
+
+Example:
+
+sound-pdm {
+       compatible = "fsl,imx-pdm-mic";
+       model = "imx-pdm-audio";
+       audio-cpu = <&sai3>;
+       decimation = <64>;
+};
index d27b51b..69ae948 100644 (file)
@@ -47,7 +47,8 @@ dtb-$(CONFIG_ARCH_FSL_IMX8MQ) += fsl-imx8mq-evk.dtb \
                                 fsl-imx8mq-evk-pcie1-m2.dtb \
                                 fsl-imx8mq-evk-lcdif-adv7535.dtb \
                                 fsl-imx8mq-evk-lcdif-rm67191.dtb \
-                                fsl-imx8mq-evk-mipi-csi2.dtb
+                                fsl-imx8mq-evk-mipi-csi2.dtb \
+                                fsl-imx8mq-evk-pdm.dtb
 
 always         := $(dtb-y)
 subdir-y       := $(dts-dirs)
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8mq-evk-pdm.dts b/arch/arm64/boot/dts/freescale/fsl-imx8mq-evk-pdm.dts
new file mode 100644 (file)
index 0000000..a2e84ee
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017 NXP
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include "fsl-imx8mq-evk.dts"
+
+/ {
+       sound-pdm {
+               compatible = "fsl,imx-pdm-mic";
+               model = "imx-pdm-audio";
+               audio-cpu = <&sai3>;
+               decimation = <64>;
+               status = "okay";
+       };
+};
+
+&iomuxc {
+       imx8mq-evk {
+               pinctrl_sai3: sai3grp {
+                       fsl,pins = <
+                               MX8MQ_IOMUXC_SAI3_RXC_SAI3_RX_BCLK      0xd6
+                               MX8MQ_IOMUXC_SAI3_RXD_SAI3_RX_DATA0     0xd6
+                       >;
+               };
+       };
+};
+
+&sai3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai3>;
+       assigned-clocks = <&clk IMX8MQ_CLK_SAI3_SRC>,
+                       <&clk IMX8MQ_CLK_SAI3_DIV>;
+       assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <0>, <24576000>;
+       status = "okay";
+};