* [PATCH 0/3] arm64: dts: imx8dxl: add audio support for imx8dxl
@ 2024-04-02 21:02 Frank Li
2024-04-02 21:02 ` [PATCH 1/3] arm64: dts: imx8dxl-ss-adma: delete unused node Frank Li
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Frank Li @ 2024-04-02 21:02 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Frank Li
This patches depend on dts part in
https://lore.kernel.org/imx/20240328-asrc_8qxp-v8-0-801cd6bb5be2@nxp.com/T/#t
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Frank Li (3):
arm64: dts: imx8dxl-ss-adma: delete unused node
arm64: dts: imx8dxl-ss-adma: update audio node power domains and IRQ number
arm64: dts: imx8dxl-evk: add audio nodes
arch/arm64/boot/dts/freescale/imx8dxl-evk.dts | 234 +++++++++++++++++++++
arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi | 78 +++++++
2 files changed, 312 insertions(+)
---
base-commit: 2d13a7797c3970a4eea160844d8905c93065634f
change-id: 20240402-b4-dts_dxl_audio-74ba02030a72
Best regards,
---
Frank Li <Frank.Li@nxp.com>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 5+ messages in thread* [PATCH 1/3] arm64: dts: imx8dxl-ss-adma: delete unused node 2024-04-02 21:02 [PATCH 0/3] arm64: dts: imx8dxl: add audio support for imx8dxl Frank Li @ 2024-04-02 21:02 ` Frank Li 2024-04-02 21:02 ` [PATCH 2/3] arm64: dts: imx8dxl-ss-adma: update audio node power domains and IRQ number Frank Li 2024-04-02 21:02 ` [PATCH 3/3] arm64: dts: imx8dxl-evk: add audio nodes Frank Li 2 siblings, 0 replies; 5+ messages in thread From: Frank Li @ 2024-04-02 21:02 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Frank Li Delete unused node in adma subsystem. Signed-off-by: Frank Li <Frank.Li@nxp.com> --- arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi b/arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi index 5d012c95222f5..f5dcdd9405928 100644 --- a/arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi @@ -3,6 +3,20 @@ * Copyright 2019~2020, 2022 NXP */ +/delete-node/ &asrc1; +/delete-node/ &asrc1_lpcg; +/delete-node/ &adc1; +/delete-node/ &adc1_lpcg; +/delete-node/ &amix; +/delete-node/ &amix_lpcg; +/delete-node/ &edma1; +/delete-node/ &esai0; +/delete-node/ &esai0_lpcg; +/delete-node/ &sai4; +/delete-node/ &sai4_lpcg; +/delete-node/ &sai5; +/delete-node/ &sai5_lpcg; + &audio_ipg_clk { clock-frequency = <160000000>; }; -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] arm64: dts: imx8dxl-ss-adma: update audio node power domains and IRQ number 2024-04-02 21:02 [PATCH 0/3] arm64: dts: imx8dxl: add audio support for imx8dxl Frank Li 2024-04-02 21:02 ` [PATCH 1/3] arm64: dts: imx8dxl-ss-adma: delete unused node Frank Li @ 2024-04-02 21:02 ` Frank Li 2024-04-02 21:02 ` [PATCH 3/3] arm64: dts: imx8dxl-evk: add audio nodes Frank Li 2 siblings, 0 replies; 5+ messages in thread From: Frank Li @ 2024-04-02 21:02 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Frank Li The power domains of i.MX8DXL's acm is difference i.MX8QXP. IRQ number of sai[0..3] and spdif0 are also difference. Update power domains information for i.MX8DXL. Update sai[0..3] and spdif0's IRQ number for i.MX8DXL. Signed-off-by: Frank Li <Frank.Li@nxp.com> --- arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi b/arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi index f5dcdd9405928..72434529f78e6 100644 --- a/arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8dxl-ss-adma.dtsi @@ -17,6 +17,49 @@ /delete-node/ &sai5; /delete-node/ &sai5_lpcg; +&acm { + compatible = "fsl,imx8dxl-acm"; + power-domains = <&pd IMX_SC_R_AUDIO_CLK_0>, + <&pd IMX_SC_R_AUDIO_CLK_1>, + <&pd IMX_SC_R_MCLK_OUT_0>, + <&pd IMX_SC_R_MCLK_OUT_1>, + <&pd IMX_SC_R_AUDIO_PLL_0>, + <&pd IMX_SC_R_AUDIO_PLL_1>, + <&pd IMX_SC_R_ASRC_0>, + <&pd IMX_SC_R_SAI_0>, + <&pd IMX_SC_R_SAI_1>, + <&pd IMX_SC_R_SAI_2>, + <&pd IMX_SC_R_SAI_3>, + <&pd IMX_SC_R_SPDIF_0>, + <&pd IMX_SC_R_MQS_0>; + clocks = <&aud_rec0_lpcg IMX_LPCG_CLK_0>, + <&aud_rec1_lpcg IMX_LPCG_CLK_0>, + <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>, + <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>, + <&clk_ext_aud_mclk0>, + <&clk_ext_aud_mclk1>, + <&clk_spdif0_rx>, + <&clk_sai0_rx_bclk>, + <&clk_sai0_tx_bclk>, + <&clk_sai1_rx_bclk>, + <&clk_sai1_tx_bclk>, + <&clk_sai2_rx_bclk>, + <&clk_sai3_rx_bclk>; + clock-names = "aud_rec_clk0_lpcg_clk", + "aud_rec_clk1_lpcg_clk", + "aud_pll_div_clk0_lpcg_clk", + "aud_pll_div_clk1_lpcg_clk", + "ext_aud_mclk0", + "ext_aud_mclk1", + "spdif0_rx", + "sai0_rx_bclk", + "sai0_tx_bclk", + "sai1_rx_bclk", + "sai1_tx_bclk", + "sai2_rx_bclk", + "sai3_rx_bclk"; +}; + &audio_ipg_clk { clock-frequency = <160000000>; }; @@ -191,3 +234,24 @@ &lpspi2 { &lpspi3 { interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>; }; + +&sai0 { + interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; +}; + +&sai1 { + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; +}; + +&sai2 { + interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; +}; + +&sai3 { + interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>; +}; + +&spdif0 { + interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>, /* rx */ + <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>; /* tx */ +}; -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] arm64: dts: imx8dxl-evk: add audio nodes 2024-04-02 21:02 [PATCH 0/3] arm64: dts: imx8dxl: add audio support for imx8dxl Frank Li 2024-04-02 21:02 ` [PATCH 1/3] arm64: dts: imx8dxl-ss-adma: delete unused node Frank Li 2024-04-02 21:02 ` [PATCH 2/3] arm64: dts: imx8dxl-ss-adma: update audio node power domains and IRQ number Frank Li @ 2024-04-02 21:02 ` Frank Li 2024-04-22 3:42 ` Shawn Guo 2 siblings, 1 reply; 5+ messages in thread From: Frank Li @ 2024-04-02 21:02 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Frank Li Add audio nodes for imx8dxl-evk boards. Signed-off-by: Frank Li <Frank.Li@nxp.com> --- arch/arm64/boot/dts/freescale/imx8dxl-evk.dts | 234 ++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts index 2123d431e0613..ba4cdc3534362 100644 --- a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts @@ -125,6 +125,81 @@ mii_select: regulator-4 { enable-active-high; regulator-always-on; }; + + bt_sco_codec: bt_sco_codec { + #sound-dai-cells = <1>; + compatible = "linux,bt-sco"; + }; + + sound-bt-sco { + compatible = "simple-audio-card"; + simple-audio-card,name = "bt-sco-audio"; + simple-audio-card,format = "dsp_a"; + simple-audio-card,bitclock-inversion; + simple-audio-card,frame-master = <&btcpu>; + simple-audio-card,bitclock-master = <&btcpu>; + + btcpu: simple-audio-card,cpu { + sound-dai = <&sai0>; + dai-tdm-slot-num = <2>; + dai-tdm-slot-width = <16>; + }; + + simple-audio-card,codec { + sound-dai = <&bt_sco_codec 1>; + }; + }; + + sound-wm8960-1 { + compatible = "fsl,imx7d-evk-wm8960", "fsl,imx-audio-wm8960"; + model = "wm8960-audio"; + audio-cpu = <&sai1>; + audio-codec = <&wm8960_1>; + audio-asrc = <&asrc0>; + 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", + "LINPUT1", "Mic Jack", + "Mic Jack", "MICB"; + }; + + sound-wm8960-2 { + compatible = "fsl,imx7d-evk-wm8960", "fsl,imx-audio-wm8960"; + model = "wm8960-audio-2"; + audio-cpu = <&sai2>; + audio-codec = <&wm8960_2>; + capture-only; + 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", + "LINPUT1", "Mic Jack", + "Mic Jack", "MICB"; + }; + + sound-wm8960-3 { + compatible = "fsl,imx7d-evk-wm8960", "fsl,imx-audio-wm8960"; + model = "wm8960-audio-3"; + audio-cpu = <&sai3>; + audio-codec = <&wm8960_3>; + capture-only; + 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", + "LINPUT1", "Mic Jack", + "Mic Jack", "MICB"; + }; }; &adc0 { @@ -132,6 +207,11 @@ &adc0 { status = "okay"; }; +&asrc0 { + fsl,asrc-rate = <48000>; + status = "okay"; +}; + &eqos { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_eqos>; @@ -259,6 +339,78 @@ max7322: gpio@68 { }; }; + i2c@1 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0x1>; + + wm8960_1: wm8960@1a { + compatible = "wlf,wm8960"; + reg = <0x1a>; + clocks = <&mclkout1_lpcg IMX_LPCG_CLK_0>; + clock-names = "mclk"; + wlf,shared-lrclk; + wlf,hp-cfg = <2 2 3>; + wlf,gpio-cfg = <1 3>; + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, + <&mclkout1_lpcg IMX_LPCG_CLK_0>; + assigned-clock-rates = <786432000>, + <49152000>, + <12288000>, + <12288000>; + }; + }; + + i2c@2 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0x2>; + + wm8960_2: wm8960@1a { + compatible = "wlf,wm8960"; + reg = <0x1a>; + clocks = <&mclkout1_lpcg IMX_LPCG_CLK_0>; + clock-names = "mclk"; + wlf,shared-lrclk; + wlf,hp-cfg = <2 2 3>; + wlf,gpio-cfg = <1 3>; + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, + <&mclkout1_lpcg IMX_LPCG_CLK_0>; + assigned-clock-rates = <786432000>, + <49152000>, + <12288000>, + <12288000>; + }; + }; + + i2c@3 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0x3>; + + wm8960_3: wm8960@1a { + compatible = "wlf,wm8960"; + reg = <0x1a>; + clocks = <&mclkout1_lpcg IMX_LPCG_CLK_0>; + clock-names = "mclk"; + wlf,shared-lrclk; + wlf,hp-cfg = <2 2 3>; + wlf,gpio-cfg = <1 3>; + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, + <&mclkout1_lpcg IMX_LPCG_CLK_0>; + assigned-clock-rates = <786432000>, + <49152000>, + <12288000>, + <12288000>; + }; + }; + i2c@4 { #address-cells = <1>; #size-cells = <0>; @@ -362,6 +514,53 @@ &lsio_gpio5 { status = "okay"; }; +&sai0 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai0>; + #sound-dai-cells = <0>; + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, + <&sai0_lpcg IMX_LPCG_CLK_0>; + assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>; + status = "okay"; +}; + +&sai1 { + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, + <&sai1_lpcg IMX_LPCG_CLK_0>; + assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai1>; + status = "okay"; +}; + +&sai2 { + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, + <&sai2_lpcg IMX_LPCG_CLK_0>; + assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai2>; + fsl,sai-asynchronous; + status = "okay"; +}; + +&sai3 { + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, + <&sai3_lpcg IMX_LPCG_CLK_0>; + assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai3>; + fsl,sai-asynchronous; + status = "okay"; +}; + &thermal_zones { pmic-thermal { polling-delay-passive = <250>; @@ -595,6 +794,41 @@ IMX8DXL_UART0_TX_ADMA_UART0_TX 0x06000020 >; }; + pinctrl_sai0: sai0grp { + fsl,pins = < + IMX8DXL_SPI0_CS0_ADMA_SAI0_RXD 0x06000060 + IMX8DXL_SPI0_CS1_ADMA_SAI0_RXC 0x06000040 + IMX8DXL_SPI0_SCK_ADMA_SAI0_TXC 0x06000060 + IMX8DXL_SPI0_SDI_ADMA_SAI0_TXD 0x06000060 + IMX8DXL_SPI0_SDO_ADMA_SAI0_TXFS 0x06000040 + >; + }; + + pinctrl_sai1: sai1grp { + fsl,pins = < + IMX8DXL_FLEXCAN0_RX_ADMA_SAI1_TXC 0x06000040 + IMX8DXL_FLEXCAN0_TX_ADMA_SAI1_TXFS 0x06000040 + IMX8DXL_FLEXCAN1_RX_ADMA_SAI1_TXD 0x06000060 + IMX8DXL_FLEXCAN1_TX_ADMA_SAI1_RXD 0x06000060 + >; + }; + + pinctrl_sai2: sai2grp { + fsl,pins = < + IMX8DXL_SNVS_TAMPER_OUT3_ADMA_SAI2_RXC 0x06000040 + IMX8DXL_SNVS_TAMPER_IN0_ADMA_SAI2_RXFS 0x06000040 + IMX8DXL_SNVS_TAMPER_OUT4_ADMA_SAI2_RXD 0x06000060 + >; + }; + + pinctrl_sai3: sai3grp { + fsl,pins = < + IMX8DXL_SNVS_TAMPER_IN1_ADMA_SAI3_RXC 0x06000040 + IMX8DXL_SNVS_TAMPER_IN3_ADMA_SAI3_RXFS 0x06000040 + IMX8DXL_SNVS_TAMPER_IN2_ADMA_SAI3_RXD 0x06000060 + >; + }; + pinctrl_usdhc1: usdhc1grp { fsl,pins = < IMX8DXL_EMMC0_CLK_CONN_EMMC0_CLK 0x06000041 -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 3/3] arm64: dts: imx8dxl-evk: add audio nodes 2024-04-02 21:02 ` [PATCH 3/3] arm64: dts: imx8dxl-evk: add audio nodes Frank Li @ 2024-04-22 3:42 ` Shawn Guo 0 siblings, 0 replies; 5+ messages in thread From: Shawn Guo @ 2024-04-22 3:42 UTC (permalink / raw) To: Frank Li Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, devicetree, imx, linux-arm-kernel, linux-kernel On Tue, Apr 02, 2024 at 05:02:30PM -0400, Frank Li wrote: > Add audio nodes for imx8dxl-evk boards. > > Signed-off-by: Frank Li <Frank.Li@nxp.com> > --- > arch/arm64/boot/dts/freescale/imx8dxl-evk.dts | 234 ++++++++++++++++++++++++++ > 1 file changed, 234 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts > index 2123d431e0613..ba4cdc3534362 100644 > --- a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts > +++ b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts > @@ -125,6 +125,81 @@ mii_select: regulator-4 { > enable-active-high; > regulator-always-on; > }; > + > + bt_sco_codec: bt_sco_codec { Hyphen is recommended for node name. > + #sound-dai-cells = <1>; > + compatible = "linux,bt-sco"; We usually have 'compatible' go first. > + }; > + > + sound-bt-sco { > + compatible = "simple-audio-card"; > + simple-audio-card,name = "bt-sco-audio"; > + simple-audio-card,format = "dsp_a"; > + simple-audio-card,bitclock-inversion; > + simple-audio-card,frame-master = <&btcpu>; > + simple-audio-card,bitclock-master = <&btcpu>; > + > + btcpu: simple-audio-card,cpu { > + sound-dai = <&sai0>; > + dai-tdm-slot-num = <2>; > + dai-tdm-slot-width = <16>; > + }; > + > + simple-audio-card,codec { > + sound-dai = <&bt_sco_codec 1>; > + }; > + }; > + > + sound-wm8960-1 { > + compatible = "fsl,imx7d-evk-wm8960", "fsl,imx-audio-wm8960"; > + model = "wm8960-audio"; > + audio-cpu = <&sai1>; > + audio-codec = <&wm8960_1>; > + audio-asrc = <&asrc0>; > + 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", > + "LINPUT1", "Mic Jack", > + "Mic Jack", "MICB"; Nit: can we do this? audio-routing = "Headphone Jack", "HP_L", "Headphone Jack", "HP_R", ... > + }; > + > + sound-wm8960-2 { > + compatible = "fsl,imx7d-evk-wm8960", "fsl,imx-audio-wm8960"; > + model = "wm8960-audio-2"; > + audio-cpu = <&sai2>; > + audio-codec = <&wm8960_2>; > + capture-only; > + 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", > + "LINPUT1", "Mic Jack", > + "Mic Jack", "MICB"; > + }; > + > + sound-wm8960-3 { > + compatible = "fsl,imx7d-evk-wm8960", "fsl,imx-audio-wm8960"; > + model = "wm8960-audio-3"; > + audio-cpu = <&sai3>; > + audio-codec = <&wm8960_3>; > + capture-only; > + 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", > + "LINPUT1", "Mic Jack", > + "Mic Jack", "MICB"; > + }; > }; > > &adc0 { > @@ -132,6 +207,11 @@ &adc0 { > status = "okay"; > }; > > +&asrc0 { > + fsl,asrc-rate = <48000>; One space around = > + status = "okay"; > +}; > + > &eqos { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_eqos>; > @@ -259,6 +339,78 @@ max7322: gpio@68 { > }; > }; > > + i2c@1 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0x1>; > + > + wm8960_1: wm8960@1a { > + compatible = "wlf,wm8960"; > + reg = <0x1a>; > + clocks = <&mclkout1_lpcg IMX_LPCG_CLK_0>; > + clock-names = "mclk"; > + wlf,shared-lrclk; > + wlf,hp-cfg = <2 2 3>; > + wlf,gpio-cfg = <1 3>; > + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, > + <&mclkout1_lpcg IMX_LPCG_CLK_0>; > + assigned-clock-rates = <786432000>, > + <49152000>, > + <12288000>, > + <12288000>; > + }; > + }; > + > + i2c@2 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0x2>; > + > + wm8960_2: wm8960@1a { > + compatible = "wlf,wm8960"; > + reg = <0x1a>; > + clocks = <&mclkout1_lpcg IMX_LPCG_CLK_0>; > + clock-names = "mclk"; > + wlf,shared-lrclk; > + wlf,hp-cfg = <2 2 3>; > + wlf,gpio-cfg = <1 3>; > + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, > + <&mclkout1_lpcg IMX_LPCG_CLK_0>; > + assigned-clock-rates = <786432000>, > + <49152000>, > + <12288000>, > + <12288000>; > + }; > + }; > + > + i2c@3 { > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0x3>; > + > + wm8960_3: wm8960@1a { audio-codec for node name. > + compatible = "wlf,wm8960"; > + reg = <0x1a>; > + clocks = <&mclkout1_lpcg IMX_LPCG_CLK_0>; > + clock-names = "mclk"; > + wlf,shared-lrclk; > + wlf,hp-cfg = <2 2 3>; > + wlf,gpio-cfg = <1 3>; > + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, > + <&mclkout1_lpcg IMX_LPCG_CLK_0>; > + assigned-clock-rates = <786432000>, > + <49152000>, > + <12288000>, > + <12288000>; > + }; > + }; > + > i2c@4 { > #address-cells = <1>; > #size-cells = <0>; > @@ -362,6 +514,53 @@ &lsio_gpio5 { > status = "okay"; > }; > > +&sai0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_sai0>; > + #sound-dai-cells = <0>; > + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, > + <&sai0_lpcg IMX_LPCG_CLK_0>; assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, ... > + assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>; > + status = "okay"; > +}; > + > +&sai1 { > + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, > + <&sai1_lpcg IMX_LPCG_CLK_0>; > + assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_sai1>; > + status = "okay"; > +}; > + > +&sai2 { > + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, > + <&sai2_lpcg IMX_LPCG_CLK_0>; > + assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_sai2>; > + fsl,sai-asynchronous; > + status = "okay"; > +}; > + > +&sai3 { > + assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>, > + <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>, > + <&sai3_lpcg IMX_LPCG_CLK_0>; > + assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_sai3>; > + fsl,sai-asynchronous; > + status = "okay"; > +}; > + > &thermal_zones { > pmic-thermal { > polling-delay-passive = <250>; > @@ -595,6 +794,41 @@ IMX8DXL_UART0_TX_ADMA_UART0_TX 0x06000020 > >; > }; > > + pinctrl_sai0: sai0grp { > + fsl,pins = < > + IMX8DXL_SPI0_CS0_ADMA_SAI0_RXD 0x06000060 > + IMX8DXL_SPI0_CS1_ADMA_SAI0_RXC 0x06000040 > + IMX8DXL_SPI0_SCK_ADMA_SAI0_TXC 0x06000060 > + IMX8DXL_SPI0_SDI_ADMA_SAI0_TXD 0x06000060 > + IMX8DXL_SPI0_SDO_ADMA_SAI0_TXFS 0x06000040 > + >; > + }; > + > + pinctrl_sai1: sai1grp { > + fsl,pins = < > + IMX8DXL_FLEXCAN0_RX_ADMA_SAI1_TXC 0x06000040 Can the indent between pin constant and value be tabs instead of spaces? Shawn > + IMX8DXL_FLEXCAN0_TX_ADMA_SAI1_TXFS 0x06000040 > + IMX8DXL_FLEXCAN1_RX_ADMA_SAI1_TXD 0x06000060 > + IMX8DXL_FLEXCAN1_TX_ADMA_SAI1_RXD 0x06000060 > + >; > + }; > + > + pinctrl_sai2: sai2grp { > + fsl,pins = < > + IMX8DXL_SNVS_TAMPER_OUT3_ADMA_SAI2_RXC 0x06000040 > + IMX8DXL_SNVS_TAMPER_IN0_ADMA_SAI2_RXFS 0x06000040 > + IMX8DXL_SNVS_TAMPER_OUT4_ADMA_SAI2_RXD 0x06000060 > + >; > + }; > + > + pinctrl_sai3: sai3grp { > + fsl,pins = < > + IMX8DXL_SNVS_TAMPER_IN1_ADMA_SAI3_RXC 0x06000040 > + IMX8DXL_SNVS_TAMPER_IN3_ADMA_SAI3_RXFS 0x06000040 > + IMX8DXL_SNVS_TAMPER_IN2_ADMA_SAI3_RXD 0x06000060 > + >; > + }; > + > pinctrl_usdhc1: usdhc1grp { > fsl,pins = < > IMX8DXL_EMMC0_CLK_CONN_EMMC0_CLK 0x06000041 > > -- > 2.34.1 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-04-22 3:42 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-04-02 21:02 [PATCH 0/3] arm64: dts: imx8dxl: add audio support for imx8dxl Frank Li 2024-04-02 21:02 ` [PATCH 1/3] arm64: dts: imx8dxl-ss-adma: delete unused node Frank Li 2024-04-02 21:02 ` [PATCH 2/3] arm64: dts: imx8dxl-ss-adma: update audio node power domains and IRQ number Frank Li 2024-04-02 21:02 ` [PATCH 3/3] arm64: dts: imx8dxl-evk: add audio nodes Frank Li 2024-04-22 3:42 ` Shawn Guo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).