From: Abel Vesa Date: Fri, 1 May 2020 07:59:44 +0000 (+0300) Subject: arm64: dts: imx8mp: Make audio_blk_ctrl single node for combo driver X-Git-Tag: rel_imx_5.10.35_2.0.0-somdevices.0~577^2~2^2~385 X-Git-Url: https://git.somdevices.com/?a=commitdiff_plain;h=482838aa8bf0ad44dbb8b0eeb83d1dd7904f8c03;p=linux.git arm64: dts: imx8mp: Make audio_blk_ctrl single node for combo driver Make the audio_blk_ctrl dts node a single one and change all the references to it accordingly. Do this in order to have a single combo driver for audio_blk_ctrl. Some of the features of the audio_ctrl will be used by some different drivers in a way those drivers will know best, so adding the syscon compatible we allow those to do just that. Those drivers will have to also add the audiomix PD to their devicetree node in order to make sure audio_blk_ctrl is on while they are operating. Signed-off-by: Abel Vesa Reviewed-by: Dong Aisheng Tested-by: Daniel Baluta --- diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts index dbc857d408d7..fa82d2a99a66 100644 --- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts @@ -392,7 +392,7 @@ codec: wm8960@1a { compatible = "wlf,wm8960"; reg = <0x1a>; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>; + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>; clock-names = "mclk"; wlf,shared-lrclk; wlf,hp-cfg = <3 2 3>; @@ -494,8 +494,8 @@ assigned-clocks = <&clk IMX8MP_CLK_SAI3>; assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; assigned-clock-rates = <12288000>; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI3_IPG>, <&clk IMX8MP_CLK_DUMMY>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_IPG>, <&clk IMX8MP_CLK_DUMMY>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, <&clk IMX8MP_CLK_DUMMY>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; fsl,sai-mclk-direction-output; diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi index 5d724369a3bd..bc35be876d14 100644 --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi @@ -1283,8 +1283,8 @@ compatible = "fsl,imx8mq-sai", "fsl,imx6sx-sai"; reg = <0x30c10000 0x10000>; interrupts = ; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI1_IPG>, <&clk IMX8MP_CLK_DUMMY>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI1_IPG>, <&clk IMX8MP_CLK_DUMMY>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI1_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, <&clk IMX8MP_CLK_DUMMY>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; dmas = <&sdma2 0 2 0>, <&sdma2 1 2 0>; @@ -1299,8 +1299,8 @@ compatible = "fsl,imx8mq-sai", "fsl,imx6sx-sai"; reg = <0x30c20000 0x10000>; interrupts = ; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI2_IPG>, <&clk IMX8MP_CLK_DUMMY>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI2_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI2_IPG>, <&clk IMX8MP_CLK_DUMMY>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI2_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, <&clk IMX8MP_CLK_DUMMY>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; dmas = <&sdma2 2 2 0>, <&sdma2 3 2 0>; @@ -1315,8 +1315,8 @@ compatible = "fsl,imx8mq-sai", "fsl,imx6sx-sai"; reg = <0x30c30000 0x10000>; interrupts = ; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI3_IPG>, <&clk IMX8MP_CLK_DUMMY>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_IPG>, <&clk IMX8MP_CLK_DUMMY>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, <&clk IMX8MP_CLK_DUMMY>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; dmas = <&sdma2 4 2 0>, <&sdma2 5 2 0>; @@ -1331,8 +1331,8 @@ compatible = "fsl,imx8mq-sai", "fsl,imx6sx-sai"; reg = <0x30c50000 0x10000>; interrupts = ; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI5_IPG>, <&clk IMX8MP_CLK_DUMMY>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI5_IPG>, <&clk IMX8MP_CLK_DUMMY>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI5_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, <&clk IMX8MP_CLK_DUMMY>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; dmas = <&sdma2 8 2 0>, <&sdma2 9 2 0>; @@ -1347,9 +1347,9 @@ compatible = "fsl,imx8mq-sai", "fsl,imx6sx-sai"; reg = <0x30c60000 0x10000>; interrupts = ; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI6_IPG>, + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI6_IPG>, <&clk IMX8MP_CLK_DUMMY>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI6_MCLK1>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI6_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, <&clk IMX8MP_CLK_DUMMY>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; @@ -1364,8 +1364,8 @@ compatible = "fsl,imx8mq-sai", "fsl,imx6sx-sai"; reg = <0x30c80000 0x10000>; interrupts = ; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI7_IPG>, <&clk IMX8MP_CLK_DUMMY>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI7_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI7_IPG>, <&clk IMX8MP_CLK_DUMMY>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI7_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, <&clk IMX8MP_CLK_DUMMY>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; dmas = <&sdma2 12 2 0>, <&sdma2 13 2 0>; @@ -1379,7 +1379,7 @@ compatible = "fsl,imx8mn-easrc"; reg = <0x30c90000 0x10000>; interrupts = ; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_ASRC_IPG>; + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_ASRC_IPG>; clock-names = "mem"; dmas = <&sdma2 16 23 0> , <&sdma2 17 23 0>, <&sdma2 18 23 0> , <&sdma2 19 23 0>, @@ -1403,8 +1403,8 @@ , , ; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_PDM_IPG>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_PDM_ROOT>, + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_PDM_IPG>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_PDM_ROOT>, <&clk IMX8MP_AUDIO_PLL1_OUT>, <&clk IMX8MP_AUDIO_PLL2_OUT>, <&clk IMX8MP_CLK_EXT3>; @@ -1420,7 +1420,7 @@ compatible = "fsl,imx8mp-aud2htx"; reg = <0x30cb0000 0x10000>; interrupts = ; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_AUD2HTX_IPG>; + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_AUD2HTX_IPG>; clock-names = "bus"; dmas = <&sdma2 26 2 0>; dma-names = "tx"; @@ -1437,14 +1437,14 @@ , /* XCVR PHY - SPDIF wakeup IRQ */ ; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_EARC_IPG>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_EARC_PHY>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SPBA2_ROOT>; + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_EARC_IPG>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_EARC_PHY>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SPBA2_ROOT>; clock-names = "ipg", "phy", "spba"; dmas = <&sdma2 30 2 0>, <&sdma2 31 2 0>; dma-names = "rx", "tx"; fsl,xcvr-fw = "imx/xcvr/xcvr-imx8mp.bin"; - resets = <&audiomix_reset 0>; + resets = <&audio_blk_ctrl 0>; power-domains = <&audiomix_pd>; status = "disabled"; }; @@ -1454,8 +1454,8 @@ compatible = "fsl,imx8mp-sdma", "fsl,imx7d-sdma"; reg = <0x30e00000 0x10000>; interrupts = ; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SDMA3_ROOT>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SDMA3_ROOT>; + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SDMA3_ROOT>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SDMA3_ROOT>; clock-names = "ipg", "ahb"; #dma-cells = <3>; fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; @@ -1468,8 +1468,8 @@ compatible = "fsl,imx8mp-sdma", "fsl,imx7d-sdma"; reg = <0x30e10000 0x10000>; interrupts = ; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SDMA2_ROOT>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SDMA2_ROOT>; + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SDMA2_ROOT>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SDMA2_ROOT>; clock-names = "ipg", "ahb"; #dma-cells = <3>; fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; @@ -1478,13 +1478,22 @@ status = "disabled"; }; + audio_blk_ctrl: audio-blk-ctrl@30e20000 { + compatible = "fsl,imx8mp-audio-blk-ctrl", "syscon"; + reg = <0x30e20000 0x50C>; + power-domains = <&audiomix_pd>; + + #clock-cells = <1>; + #reset-cells = <1>; + }; + mu2: mu2@30e60000 { compatible = "fsl,imx8-mu-dsp", "fsl,imx6sx-mu"; reg = <0x30E60000 0x10000>; interrupts = ; fsl,dsp_ap_mu_id = <2>; #mbox-cells = <2>; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_MU2_ROOT>; + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_MU2_ROOT>; status = "okay"; }; @@ -1703,10 +1712,10 @@ compatible = "fsl,imx8mp-dsp-v1"; memory-region = <&dsp_reserved>; reg = <0x0 0x3B6E8000 0x0 0x88000>; - clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_OCRAMA_IPG>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_DSP_ROOT>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_DSPDBG_ROOT>, - <&audiomix_clk IMX8MP_CLK_AUDIOMIX_MU2_ROOT>; + clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_OCRAMA_IPG>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_DSP_ROOT>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_DSPDBG_ROOT>, + <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_MU2_ROOT>; clock-names = "ocram", "core", "debug", "mu2"; fsl,dsp-firmware = "imx/dsp/hifi4.bin"; power-domains = <&audiomix_pd>;