arm64: dts: imx8mm-nitrogen-r2: add audio
authorAdrien Grassein <adrien.grassein@gmail.com>
Tue, 23 Feb 2021 19:16:51 +0000 (20:16 +0100)
committerShawn Guo <shawnguo@kernel.org>
Mon, 15 Mar 2021 04:22:31 +0000 (12:22 +0800)
Add audio description and pin muxing.

Signed-off-by: Adrien Grassein <adrien.grassein@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts

index b26e726..70ec5d2 100644 (file)
                gpio = <&gpio3 20 GPIO_ACTIVE_HIGH>;
                enable-active-high;
        };
+
+       sound-wm8960 {
+               audio-cpu = <&sai1>;
+               audio-codec = <&wm8960>;
+               audio-routing =
+                       "Headphone Jack", "HP_L",
+                       "Headphone Jack", "HP_R",
+                       "Ext Spk", "SPK_LP",
+                       "Ext Spk", "SPK_LN",
+                       "Ext Spk", "SPK_RP",
+                       "Ext Spk", "SPK_RN",
+                       "RINPUT1", "Mic Jack",
+                       "Mic Jack", "MICB";
+               compatible = "fsl,imx-audio-wm8960";
+               /* JD2: hp detect high for headphone*/
+               hp-det-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
+               /* Jack is not stuffed */
+               mic-det-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+               model = "wm8960-audio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_sound_wm8960>;
+       };
 };
 
 &A53_0 {
        };
 };
 
+&i2c4 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       status = "okay";
+
+       wm8960: codec@1a {
+               compatible = "wlf,wm8960";
+               reg = <0x1a>;
+               clocks = <&clk IMX8MM_CLK_SAI1_ROOT>;
+               clock-names = "mclk1";
+               wlf,shared-lrclk;
+               #sound-dai-cells = <0>;
+       };
+};
+
 &pwm1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
+&sai1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       status = "okay";
+};
+
+&sai2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai2>;
+       status = "okay";
+};
+
 /* BT */
 &uart1 {
        pinctrl-names = "default";
                >;
        };
 
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL 0x400001c3
+                       MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA 0x400001c3
+               >;
+       };
+
        pinctrl_i2c3a_rv4162: i2c3a-rv4162grp {
                fsl,pins = <
                        MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22 0x1c0
                >;
        };
 
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       /* wm8960 */
+                       MX8MM_IOMUXC_SAI1_MCLK_SAI1_MCLK        0xd6
+                       MX8MM_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC     0xd6
+                       MX8MM_IOMUXC_SAI1_TXC_SAI1_TX_BCLK      0xd6
+                       MX8MM_IOMUXC_SAI1_TXD0_SAI1_TX_DATA0    0xd6
+                       MX8MM_IOMUXC_SAI1_RXD0_SAI1_RX_DATA0    0xd6
+               >;
+       };
+
+       pinctrl_sai2: sai2grp {
+               fsl,pins = <
+                       /* Bluetooth PCM */
+                       MX8MM_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC     0xd6
+                       MX8MM_IOMUXC_SAI2_TXC_SAI2_TX_BCLK      0xd6
+                       MX8MM_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0    0xd6
+                       MX8MM_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0    0xd6
+               >;
+       };
+
+       pinctrl_sound_wm8960: sound-wm8960grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10      0x80
+                       MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28       0x80
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX 0x140