[2/4] arm64: dts: imx8mn: add spba bus node
diff mbox series

Message ID 1609243245-9671-3-git-send-email-peng.fan@nxp.com
State New, archived
Headers show
Series
  • arm64: dts: imx8m: add spda bus
Related show

Commit Message

Peng Fan Dec. 29, 2020, noon UTC
From: Peng Fan <peng.fan@nxp.com>

According to RM, there is a spba bus inside aips3 and aips1, add it.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mm.dtsi | 362 +++++++++++-----------
 1 file changed, 189 insertions(+), 173 deletions(-)

Comments

Adam Ford Dec. 29, 2020, 12:26 p.m. UTC | #1
On Tue, Dec 29, 2020 at 6:15 AM <peng.fan@nxp.com> wrote:
>
> From: Peng Fan <peng.fan@nxp.com>
>
> According to RM, there is a spba bus inside aips3 and aips1, add it.
>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/imx8mm.dtsi | 362 +++++++++++-----------
>  1 file changed, 189 insertions(+), 173 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> index c824f2615fe8..91f85b8cee9a 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> @@ -269,117 +269,125 @@ aips1: bus@30000000 {
>                         #size-cells = <1>;
>                         ranges = <0x30000000 0x30000000 0x400000>;
>
> -                       sai1: sai@30010000 {
> -                               #sound-dai-cells = <0>;
> -                               compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
> -                               reg = <0x30010000 0x10000>;
> -                               interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_SAI1_IPG>,
> -                                        <&clk IMX8MM_CLK_SAI1_ROOT>,
> -                                        <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> -                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
> -                               dmas = <&sdma2 0 2 0>, <&sdma2 1 2 0>;
> -                               dma-names = "rx", "tx";
> -                               status = "disabled";
> -                       };
> +                       bus@30000000 {

There is already a bus@30000000 (aips1), and I think the system
doesn't like it when there are multiple busses with the same name.

There was some discussion on fixing the 8mn [1], but it doesn't look
like it went anywhere.

I am guessing the Mini will need something similar to the nano.

[1] - https://patchwork.kernel.org/project/linux-arm-kernel/patch/1607324004-12960-1-git-send-email-shengjiu.wang@nxp.com/

adam



> +                               compatible = "fsl,spba-bus", "simple-bus";
> +                               #address-cells = <1>;
> +                               #size-cells = <1>;
> +                               reg = <0x30000000 0x100000>;
> +                               ranges;
> +
> +                               sai1: sai@30010000 {
> +                                       #sound-dai-cells = <0>;
> +                                       compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
> +                                       reg = <0x30010000 0x10000>;
> +                                       interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_SAI1_IPG>,
> +                                                <&clk IMX8MM_CLK_SAI1_ROOT>,
> +                                                <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> +                                       clock-names = "bus", "mclk1", "mclk2", "mclk3";
> +                                       dmas = <&sdma2 0 2 0>, <&sdma2 1 2 0>;
> +                                       dma-names = "rx", "tx";
> +                                       status = "disabled";
> +                               };
>
> -                       sai2: sai@30020000 {
> -                               #sound-dai-cells = <0>;
> -                               compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
> -                               reg = <0x30020000 0x10000>;
> -                               interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_SAI2_IPG>,
> -                                       <&clk IMX8MM_CLK_SAI2_ROOT>,
> -                                       <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> -                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
> -                               dmas = <&sdma2 2 2 0>, <&sdma2 3 2 0>;
> -                               dma-names = "rx", "tx";
> -                               status = "disabled";
> -                       };
> +                               sai2: sai@30020000 {
> +                                       #sound-dai-cells = <0>;
> +                                       compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
> +                                       reg = <0x30020000 0x10000>;
> +                                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_SAI2_IPG>,
> +                                               <&clk IMX8MM_CLK_SAI2_ROOT>,
> +                                               <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> +                                       clock-names = "bus", "mclk1", "mclk2", "mclk3";
> +                                       dmas = <&sdma2 2 2 0>, <&sdma2 3 2 0>;
> +                                       dma-names = "rx", "tx";
> +                                       status = "disabled";
> +                               };
>
> -                       sai3: sai@30030000 {
> -                               #sound-dai-cells = <0>;
> -                               compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
> -                               reg = <0x30030000 0x10000>;
> -                               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_SAI3_IPG>,
> -                                        <&clk IMX8MM_CLK_SAI3_ROOT>,
> -                                        <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> -                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
> -                               dmas = <&sdma2 4 2 0>, <&sdma2 5 2 0>;
> -                               dma-names = "rx", "tx";
> -                               status = "disabled";
> -                       };
> +                               sai3: sai@30030000 {
> +                                       #sound-dai-cells = <0>;
> +                                       compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
> +                                       reg = <0x30030000 0x10000>;
> +                                       interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_SAI3_IPG>,
> +                                                <&clk IMX8MM_CLK_SAI3_ROOT>,
> +                                                <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> +                                       clock-names = "bus", "mclk1", "mclk2", "mclk3";
> +                                       dmas = <&sdma2 4 2 0>, <&sdma2 5 2 0>;
> +                                       dma-names = "rx", "tx";
> +                                       status = "disabled";
> +                               };
>
> -                       sai5: sai@30050000 {
> -                               #sound-dai-cells = <0>;
> -                               compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
> -                               reg = <0x30050000 0x10000>;
> -                               interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_SAI5_IPG>,
> -                                        <&clk IMX8MM_CLK_SAI5_ROOT>,
> -                                        <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> -                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
> -                               dmas = <&sdma2 8 2 0>, <&sdma2 9 2 0>;
> -                               dma-names = "rx", "tx";
> -                               status = "disabled";
> -                       };
> +                               sai5: sai@30050000 {
> +                                       #sound-dai-cells = <0>;
> +                                       compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
> +                                       reg = <0x30050000 0x10000>;
> +                                       interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_SAI5_IPG>,
> +                                                <&clk IMX8MM_CLK_SAI5_ROOT>,
> +                                                <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> +                                       clock-names = "bus", "mclk1", "mclk2", "mclk3";
> +                                       dmas = <&sdma2 8 2 0>, <&sdma2 9 2 0>;
> +                                       dma-names = "rx", "tx";
> +                                       status = "disabled";
> +                               };
>
> -                       sai6: sai@30060000 {
> -                               #sound-dai-cells = <0>;
> -                               compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
> -                               reg = <0x30060000 0x10000>;
> -                               interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_SAI6_IPG>,
> -                                        <&clk IMX8MM_CLK_SAI6_ROOT>,
> -                                        <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> -                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
> -                               dmas = <&sdma2 10 2 0>, <&sdma2 11 2 0>;
> -                               dma-names = "rx", "tx";
> -                               status = "disabled";
> -                       };
> +                               sai6: sai@30060000 {
> +                                       #sound-dai-cells = <0>;
> +                                       compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
> +                                       reg = <0x30060000 0x10000>;
> +                                       interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_SAI6_IPG>,
> +                                                <&clk IMX8MM_CLK_SAI6_ROOT>,
> +                                                <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> +                                       clock-names = "bus", "mclk1", "mclk2", "mclk3";
> +                                       dmas = <&sdma2 10 2 0>, <&sdma2 11 2 0>;
> +                                       dma-names = "rx", "tx";
> +                                       status = "disabled";
> +                               };
>
> -                       micfil: audio-controller@30080000 {
> -                               compatible = "fsl,imx8mm-micfil";
> -                               reg = <0x30080000 0x10000>;
> -                               interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
> -                                            <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
> -                                            <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
> -                                            <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_PDM_IPG>,
> -                                        <&clk IMX8MM_CLK_PDM_ROOT>,
> -                                        <&clk IMX8MM_AUDIO_PLL1_OUT>,
> -                                        <&clk IMX8MM_AUDIO_PLL2_OUT>,
> -                                        <&clk IMX8MM_CLK_EXT3>;
> -                               clock-names = "ipg_clk", "ipg_clk_app",
> -                                             "pll8k", "pll11k", "clkext3";
> -                               dmas = <&sdma2 24 25 0x80000000>;
> -                               dma-names = "rx";
> -                               status = "disabled";
> -                       };
> +                               micfil: audio-controller@30080000 {
> +                                       compatible = "fsl,imx8mm-micfil";
> +                                       reg = <0x30080000 0x10000>;
> +                                       interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
> +                                                    <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
> +                                                    <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
> +                                                    <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_PDM_IPG>,
> +                                                <&clk IMX8MM_CLK_PDM_ROOT>,
> +                                                <&clk IMX8MM_AUDIO_PLL1_OUT>,
> +                                                <&clk IMX8MM_AUDIO_PLL2_OUT>,
> +                                                <&clk IMX8MM_CLK_EXT3>;
> +                                       clock-names = "ipg_clk", "ipg_clk_app",
> +                                                     "pll8k", "pll11k", "clkext3";
> +                                       dmas = <&sdma2 24 25 0x80000000>;
> +                                       dma-names = "rx";
> +                                       status = "disabled";
> +                               };
>
> -                       spdif1: spdif@30090000 {
> -                               compatible = "fsl,imx35-spdif";
> -                               reg = <0x30090000 0x10000>;
> -                               interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_AUDIO_AHB>, /* core */
> -                                        <&clk IMX8MM_CLK_24M>, /* rxtx0 */
> -                                        <&clk IMX8MM_CLK_SPDIF1>, /* rxtx1 */
> -                                        <&clk IMX8MM_CLK_DUMMY>, /* rxtx2 */
> -                                        <&clk IMX8MM_CLK_DUMMY>, /* rxtx3 */
> -                                        <&clk IMX8MM_CLK_DUMMY>, /* rxtx4 */
> -                                        <&clk IMX8MM_CLK_AUDIO_AHB>, /* rxtx5 */
> -                                        <&clk IMX8MM_CLK_DUMMY>, /* rxtx6 */
> -                                        <&clk IMX8MM_CLK_DUMMY>, /* rxtx7 */
> -                                        <&clk IMX8MM_CLK_DUMMY>; /* spba */
> -                               clock-names = "core", "rxtx0",
> -                                             "rxtx1", "rxtx2",
> -                                             "rxtx3", "rxtx4",
> -                                             "rxtx5", "rxtx6",
> -                                             "rxtx7", "spba";
> -                               dmas = <&sdma2 28 18 0>, <&sdma2 29 18 0>;
> -                               dma-names = "rx", "tx";
> -                               status = "disabled";
> +                               spdif1: spdif@30090000 {
> +                                       compatible = "fsl,imx35-spdif";
> +                                       reg = <0x30090000 0x10000>;
> +                                       interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_AUDIO_AHB>, /* core */
> +                                                <&clk IMX8MM_CLK_24M>, /* rxtx0 */
> +                                                <&clk IMX8MM_CLK_SPDIF1>, /* rxtx1 */
> +                                                <&clk IMX8MM_CLK_DUMMY>, /* rxtx2 */
> +                                                <&clk IMX8MM_CLK_DUMMY>, /* rxtx3 */
> +                                                <&clk IMX8MM_CLK_DUMMY>, /* rxtx4 */
> +                                                <&clk IMX8MM_CLK_AUDIO_AHB>, /* rxtx5 */
> +                                                <&clk IMX8MM_CLK_DUMMY>, /* rxtx6 */
> +                                                <&clk IMX8MM_CLK_DUMMY>, /* rxtx7 */
> +                                                <&clk IMX8MM_CLK_DUMMY>; /* spba */
> +                                       clock-names = "core", "rxtx0",
> +                                                     "rxtx1", "rxtx2",
> +                                                     "rxtx3", "rxtx4",
> +                                                     "rxtx5", "rxtx6",
> +                                                     "rxtx7", "spba";
> +                                       dmas = <&sdma2 28 18 0>, <&sdma2 29 18 0>;
> +                                       dma-names = "rx", "tx";
> +                                       status = "disabled";
> +                               };
>                         };
>
>                         gpio1: gpio@30200000 {
> @@ -660,80 +668,88 @@ aips3: bus@30800000 {
>                         ranges = <0x30800000 0x30800000 0x400000>,
>                                  <0x8000000 0x8000000 0x10000000>;
>
> -                       ecspi1: spi@30820000 {
> -                               compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
> +                       bus@30800000 {
> +                               compatible = "fsl,spba-bus", "simple-bus";
>                                 #address-cells = <1>;
> -                               #size-cells = <0>;
> -                               reg = <0x30820000 0x10000>;
> -                               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_ECSPI1_ROOT>,
> -                                        <&clk IMX8MM_CLK_ECSPI1_ROOT>;
> -                               clock-names = "ipg", "per";
> -                               dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>;
> -                               dma-names = "rx", "tx";
> -                               status = "disabled";
> -                       };
> +                               #size-cells = <1>;
> +                               reg = <0x30800000 0x100000>;
> +                               ranges;
> +
> +                               ecspi1: spi@30820000 {
> +                                       compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
> +                                       #address-cells = <1>;
> +                                       #size-cells = <0>;
> +                                       reg = <0x30820000 0x10000>;
> +                                       interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_ECSPI1_ROOT>,
> +                                                <&clk IMX8MM_CLK_ECSPI1_ROOT>;
> +                                       clock-names = "ipg", "per";
> +                                       dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>;
> +                                       dma-names = "rx", "tx";
> +                                       status = "disabled";
> +                               };
>
> -                       ecspi2: spi@30830000 {
> -                               compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
> -                               #address-cells = <1>;
> -                               #size-cells = <0>;
> -                               reg = <0x30830000 0x10000>;
> -                               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_ECSPI2_ROOT>,
> -                                        <&clk IMX8MM_CLK_ECSPI2_ROOT>;
> -                               clock-names = "ipg", "per";
> -                               dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>;
> -                               dma-names = "rx", "tx";
> -                               status = "disabled";
> -                       };
> +                               ecspi2: spi@30830000 {
> +                                       compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
> +                                       #address-cells = <1>;
> +                                       #size-cells = <0>;
> +                                       reg = <0x30830000 0x10000>;
> +                                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_ECSPI2_ROOT>,
> +                                                <&clk IMX8MM_CLK_ECSPI2_ROOT>;
> +                                       clock-names = "ipg", "per";
> +                                       dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>;
> +                                       dma-names = "rx", "tx";
> +                                       status = "disabled";
> +                               };
>
> -                       ecspi3: spi@30840000 {
> -                               compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
> -                               #address-cells = <1>;
> -                               #size-cells = <0>;
> -                               reg = <0x30840000 0x10000>;
> -                               interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_ECSPI3_ROOT>,
> -                                        <&clk IMX8MM_CLK_ECSPI3_ROOT>;
> -                               clock-names = "ipg", "per";
> -                               dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>;
> -                               dma-names = "rx", "tx";
> -                               status = "disabled";
> -                       };
> +                               ecspi3: spi@30840000 {
> +                                       compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
> +                                       #address-cells = <1>;
> +                                       #size-cells = <0>;
> +                                       reg = <0x30840000 0x10000>;
> +                                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_ECSPI3_ROOT>,
> +                                                <&clk IMX8MM_CLK_ECSPI3_ROOT>;
> +                                       clock-names = "ipg", "per";
> +                                       dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>;
> +                                       dma-names = "rx", "tx";
> +                                       status = "disabled";
> +                               };
>
> -                       uart1: serial@30860000 {
> -                               compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
> -                               reg = <0x30860000 0x10000>;
> -                               interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_UART1_ROOT>,
> -                                        <&clk IMX8MM_CLK_UART1_ROOT>;
> -                               clock-names = "ipg", "per";
> -                               dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>;
> -                               dma-names = "rx", "tx";
> -                               status = "disabled";
> -                       };
> +                               uart1: serial@30860000 {
> +                                       compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
> +                                       reg = <0x30860000 0x10000>;
> +                                       interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_UART1_ROOT>,
> +                                                <&clk IMX8MM_CLK_UART1_ROOT>;
> +                                       clock-names = "ipg", "per";
> +                                       dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>;
> +                                       dma-names = "rx", "tx";
> +                                       status = "disabled";
> +                               };
>
> -                       uart3: serial@30880000 {
> -                               compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
> -                               reg = <0x30880000 0x10000>;
> -                               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_UART3_ROOT>,
> -                                        <&clk IMX8MM_CLK_UART3_ROOT>;
> -                               clock-names = "ipg", "per";
> -                               dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>;
> -                               dma-names = "rx", "tx";
> -                               status = "disabled";
> -                       };
> +                               uart3: serial@30880000 {
> +                                       compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
> +                                       reg = <0x30880000 0x10000>;
> +                                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_UART3_ROOT>,
> +                                                <&clk IMX8MM_CLK_UART3_ROOT>;
> +                                       clock-names = "ipg", "per";
> +                                       dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>;
> +                                       dma-names = "rx", "tx";
> +                                       status = "disabled";
> +                               };
>
> -                       uart2: serial@30890000 {
> -                               compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
> -                               reg = <0x30890000 0x10000>;
> -                               interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
> -                               clocks = <&clk IMX8MM_CLK_UART2_ROOT>,
> -                                        <&clk IMX8MM_CLK_UART2_ROOT>;
> -                               clock-names = "ipg", "per";
> -                               status = "disabled";
> +                               uart2: serial@30890000 {
> +                                       compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
> +                                       reg = <0x30890000 0x10000>;
> +                                       interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
> +                                       clocks = <&clk IMX8MM_CLK_UART2_ROOT>,
> +                                                <&clk IMX8MM_CLK_UART2_ROOT>;
> +                                       clock-names = "ipg", "per";
> +                                       status = "disabled";
> +                               };
>                         };
>
>                         crypto: crypto@30900000 {
> --
> 2.28.0
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Krzysztof Kozlowski Dec. 29, 2020, 4:12 p.m. UTC | #2
On Tue, Dec 29, 2020 at 06:26:41AM -0600, Adam Ford wrote:
> On Tue, Dec 29, 2020 at 6:15 AM <peng.fan@nxp.com> wrote:
> >
> > From: Peng Fan <peng.fan@nxp.com>
> >
> > According to RM, there is a spba bus inside aips3 and aips1, add it.
> >
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > ---
> >  arch/arm64/boot/dts/freescale/imx8mm.dtsi | 362 +++++++++++-----------
> >  1 file changed, 189 insertions(+), 173 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > index c824f2615fe8..91f85b8cee9a 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > @@ -269,117 +269,125 @@ aips1: bus@30000000 {
> >                         #size-cells = <1>;
> >                         ranges = <0x30000000 0x30000000 0x400000>;
> >
> > -                       sai1: sai@30010000 {
> > -                               #sound-dai-cells = <0>;
> > -                               compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
> > -                               reg = <0x30010000 0x10000>;
> > -                               interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
> > -                               clocks = <&clk IMX8MM_CLK_SAI1_IPG>,
> > -                                        <&clk IMX8MM_CLK_SAI1_ROOT>,
> > -                                        <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> > -                               clock-names = "bus", "mclk1", "mclk2", "mclk3";
> > -                               dmas = <&sdma2 0 2 0>, <&sdma2 1 2 0>;
> > -                               dma-names = "rx", "tx";
> > -                               status = "disabled";
> > -                       };
> > +                       bus@30000000 {
> 
> There is already a bus@30000000 (aips1), and I think the system
> doesn't like it when there are multiple busses with the same name.
> 
> There was some discussion on fixing the 8mn [1], but it doesn't look
> like it went anywhere.
> 
> I am guessing the Mini will need something similar to the nano.
> 
> [1] - https://patchwork.kernel.org/project/linux-arm-kernel/patch/1607324004-12960-1-git-send-email-shengjiu.wang@nxp.com/

Several replies from S.j. Wang are missing from LKML (and maybe
patchwork?) but we reached a conclusion:
https://lore.kernel.org/linux-arm-kernel/20201208090601.GA8347@kozik-lap/

Either you do some remapping of address space or just rename the "bus"
nodes (e.g. generic bus-1 or a specific spba-bus).

Best regards,
Krzysztof
Peng Fan Dec. 30, 2020, 2:34 a.m. UTC | #3
> Subject: Re: [PATCH 2/4] arm64: dts: imx8mn: add spba bus node
> 
> On Tue, Dec 29, 2020 at 06:26:41AM -0600, Adam Ford wrote:
> > On Tue, Dec 29, 2020 at 6:15 AM <peng.fan@nxp.com> wrote:
> > >
> > > From: Peng Fan <peng.fan@nxp.com>
> > >
> > > According to RM, there is a spba bus inside aips3 and aips1, add it.
> > >
> > > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > > ---
> > >  arch/arm64/boot/dts/freescale/imx8mm.dtsi | 362
> > > +++++++++++-----------
> > >  1 file changed, 189 insertions(+), 173 deletions(-)
> > >
> > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > > b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > > index c824f2615fe8..91f85b8cee9a 100644
> > > --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > > +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > > @@ -269,117 +269,125 @@ aips1: bus@30000000 {
> > >                         #size-cells = <1>;
> > >                         ranges = <0x30000000 0x30000000
> 0x400000>;
> > >
> > > -                       sai1: sai@30010000 {
> > > -                               #sound-dai-cells = <0>;
> > > -                               compatible = "fsl,imx8mm-sai",
> "fsl,imx8mq-sai";
> > > -                               reg = <0x30010000 0x10000>;
> > > -                               interrupts = <GIC_SPI 95
> IRQ_TYPE_LEVEL_HIGH>;
> > > -                               clocks = <&clk
> IMX8MM_CLK_SAI1_IPG>,
> > > -                                        <&clk
> IMX8MM_CLK_SAI1_ROOT>,
> > > -                                        <&clk
> IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> > > -                               clock-names = "bus", "mclk1",
> "mclk2", "mclk3";
> > > -                               dmas = <&sdma2 0 2 0>, <&sdma2
> 1 2 0>;
> > > -                               dma-names = "rx", "tx";
> > > -                               status = "disabled";
> > > -                       };
> > > +                       bus@30000000 {
> >
> > There is already a bus@30000000 (aips1), and I think the system
> > doesn't like it when there are multiple busses with the same name.
> >
> > There was some discussion on fixing the 8mn [1], but it doesn't look
> > like it went anywhere.
> >
> > I am guessing the Mini will need something similar to the nano.
> >
> > [1] -
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatc
> >
> hwork.kernel.org%2Fproject%2Flinux-arm-kernel%2Fpatch%2F1607324004-1
> 29
> >
> 60-1-git-send-email-shengjiu.wang%40nxp.com%2F&amp;data=04%7C01%7
> Cpeng
> > .fan%40nxp.com%7C970d320f3ef7413296ed08d8ac1486f9%7C686ea1d3bc
> 2b4c6fa9
> >
> 2cd99c5c301635%7C0%7C0%7C637448551481206715%7CUnknown%7CTW
> FpbGZsb3d8ey
> >
> JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D
> %7C200
> >
> 0&amp;sdata=xKgYHCDyitbUyTPKVuwQV%2FCoJvepCbdBJ1MD9vP%2B6MY
> %3D&amp;res
> > erved=0
> 
> Several replies from S.j. Wang are missing from LKML (and maybe
> patchwork?) but we reached a conclusion:

Thanks for the pointing, I'll give a look. If S.J take it, I'll leave it to S.J.

Thanks,
Peng. 

> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.ke
> rnel.org%2Flinux-arm-kernel%2F20201208090601.GA8347%40kozik-lap%2F&
> amp;data=04%7C01%7Cpeng.fan%40nxp.com%7C970d320f3ef7413296ed08
> d8ac1486f9%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63744
> 8551481206715%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL
> CJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&amp;sdata=nk
> t0J5RtzA%2B29nK4aPnd434FNQV8MUZ%2F8Aq64o6hl6I%3D&amp;reserved
> =0
> 
> Either you do some remapping of address space or just rename the "bus"
> nodes (e.g. generic bus-1 or a specific spba-bus).
> 
> Best regards,
> Krzysztof
Adam Ford March 31, 2021, 6:23 p.m. UTC | #4
On Tue, Dec 29, 2020 at 8:34 PM Peng Fan <peng.fan@nxp.com> wrote:
>
> > Subject: Re: [PATCH 2/4] arm64: dts: imx8mn: add spba bus node
> >
> > On Tue, Dec 29, 2020 at 06:26:41AM -0600, Adam Ford wrote:
> > > On Tue, Dec 29, 2020 at 6:15 AM <peng.fan@nxp.com> wrote:
> > > >
> > > > From: Peng Fan <peng.fan@nxp.com>
> > > >
> > > > According to RM, there is a spba bus inside aips3 and aips1, add it.
> > > >
> > > > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > > > ---
> > > >  arch/arm64/boot/dts/freescale/imx8mm.dtsi | 362
> > > > +++++++++++-----------
> > > >  1 file changed, 189 insertions(+), 173 deletions(-)
> > > >
> > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > > > b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > > > index c824f2615fe8..91f85b8cee9a 100644
> > > > --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > > > +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > > > @@ -269,117 +269,125 @@ aips1: bus@30000000 {
> > > >                         #size-cells = <1>;
> > > >                         ranges = <0x30000000 0x30000000
> > 0x400000>;
> > > >
> > > > -                       sai1: sai@30010000 {
> > > > -                               #sound-dai-cells = <0>;
> > > > -                               compatible = "fsl,imx8mm-sai",
> > "fsl,imx8mq-sai";
> > > > -                               reg = <0x30010000 0x10000>;
> > > > -                               interrupts = <GIC_SPI 95
> > IRQ_TYPE_LEVEL_HIGH>;
> > > > -                               clocks = <&clk
> > IMX8MM_CLK_SAI1_IPG>,
> > > > -                                        <&clk
> > IMX8MM_CLK_SAI1_ROOT>,
> > > > -                                        <&clk
> > IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
> > > > -                               clock-names = "bus", "mclk1",
> > "mclk2", "mclk3";
> > > > -                               dmas = <&sdma2 0 2 0>, <&sdma2
> > 1 2 0>;
> > > > -                               dma-names = "rx", "tx";
> > > > -                               status = "disabled";
> > > > -                       };
> > > > +                       bus@30000000 {
> > >
> > > There is already a bus@30000000 (aips1), and I think the system
> > > doesn't like it when there are multiple busses with the same name.
> > >
> > > There was some discussion on fixing the 8mn [1], but it doesn't look
> > > like it went anywhere.
> > >
> > > I am guessing the Mini will need something similar to the nano.
> > >
> > > [1] -
> > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatc
> > >
> > hwork.kernel.org%2Fproject%2Flinux-arm-kernel%2Fpatch%2F1607324004-1
> > 29
> > >
> > 60-1-git-send-email-shengjiu.wang%40nxp.com%2F&amp;data=04%7C01%7
> > Cpeng
> > > .fan%40nxp.com%7C970d320f3ef7413296ed08d8ac1486f9%7C686ea1d3bc
> > 2b4c6fa9
> > >
> > 2cd99c5c301635%7C0%7C0%7C637448551481206715%7CUnknown%7CTW
> > FpbGZsb3d8ey
> > >
> > JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D
> > %7C200
> > >
> > 0&amp;sdata=xKgYHCDyitbUyTPKVuwQV%2FCoJvepCbdBJ1MD9vP%2B6MY
> > %3D&amp;res
> > > erved=0
> >
> > Several replies from S.j. Wang are missing from LKML (and maybe
> > patchwork?) but we reached a conclusion:
>
> Thanks for the pointing, I'll give a look. If S.J take it, I'll leave it to S.J.

Peng or S.J,

I don't see this was ever finished.  On the Nano, there is an spba-bus
under the aips1 bus, but I am not seeing anything on aips3 yet.   It
appears to have been abandoned.  The NXP kernel doesn't show either
spba-bus on the imx8m Mini either, but the documentation for the Mini
makes it look like it should work.  Do you want me to submit a patch
for any of this?

adam
>
> Thanks,
> Peng.
>
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.ke
> > rnel.org%2Flinux-arm-kernel%2F20201208090601.GA8347%40kozik-lap%2F&
> > amp;data=04%7C01%7Cpeng.fan%40nxp.com%7C970d320f3ef7413296ed08
> > d8ac1486f9%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63744
> > 8551481206715%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL
> > CJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&amp;sdata=nk
> > t0J5RtzA%2B29nK4aPnd434FNQV8MUZ%2F8Aq64o6hl6I%3D&amp;reserved
> > =0
> >
> > Either you do some remapping of address space or just rename the "bus"
> > nodes (e.g. generic bus-1 or a specific spba-bus).
> >
> > Best regards,
> > Krzysztof

Patch
diff mbox series

diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
index c824f2615fe8..91f85b8cee9a 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
@@ -269,117 +269,125 @@  aips1: bus@30000000 {
 			#size-cells = <1>;
 			ranges = <0x30000000 0x30000000 0x400000>;
 
-			sai1: sai@30010000 {
-				#sound-dai-cells = <0>;
-				compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
-				reg = <0x30010000 0x10000>;
-				interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_SAI1_IPG>,
-					 <&clk IMX8MM_CLK_SAI1_ROOT>,
-					 <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
-				clock-names = "bus", "mclk1", "mclk2", "mclk3";
-				dmas = <&sdma2 0 2 0>, <&sdma2 1 2 0>;
-				dma-names = "rx", "tx";
-				status = "disabled";
-			};
+			bus@30000000 {
+				compatible = "fsl,spba-bus", "simple-bus";
+				#address-cells = <1>;
+				#size-cells = <1>;
+				reg = <0x30000000 0x100000>;
+				ranges;
+
+				sai1: sai@30010000 {
+					#sound-dai-cells = <0>;
+					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
+					reg = <0x30010000 0x10000>;
+					interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_SAI1_IPG>,
+						 <&clk IMX8MM_CLK_SAI1_ROOT>,
+						 <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
+					clock-names = "bus", "mclk1", "mclk2", "mclk3";
+					dmas = <&sdma2 0 2 0>, <&sdma2 1 2 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
 
-			sai2: sai@30020000 {
-				#sound-dai-cells = <0>;
-				compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
-				reg = <0x30020000 0x10000>;
-				interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_SAI2_IPG>,
-					<&clk IMX8MM_CLK_SAI2_ROOT>,
-					<&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
-				clock-names = "bus", "mclk1", "mclk2", "mclk3";
-				dmas = <&sdma2 2 2 0>, <&sdma2 3 2 0>;
-				dma-names = "rx", "tx";
-				status = "disabled";
-			};
+				sai2: sai@30020000 {
+					#sound-dai-cells = <0>;
+					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
+					reg = <0x30020000 0x10000>;
+					interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_SAI2_IPG>,
+						<&clk IMX8MM_CLK_SAI2_ROOT>,
+						<&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
+					clock-names = "bus", "mclk1", "mclk2", "mclk3";
+					dmas = <&sdma2 2 2 0>, <&sdma2 3 2 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
 
-			sai3: sai@30030000 {
-				#sound-dai-cells = <0>;
-				compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
-				reg = <0x30030000 0x10000>;
-				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_SAI3_IPG>,
-					 <&clk IMX8MM_CLK_SAI3_ROOT>,
-					 <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
-				clock-names = "bus", "mclk1", "mclk2", "mclk3";
-				dmas = <&sdma2 4 2 0>, <&sdma2 5 2 0>;
-				dma-names = "rx", "tx";
-				status = "disabled";
-			};
+				sai3: sai@30030000 {
+					#sound-dai-cells = <0>;
+					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
+					reg = <0x30030000 0x10000>;
+					interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_SAI3_IPG>,
+						 <&clk IMX8MM_CLK_SAI3_ROOT>,
+						 <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
+					clock-names = "bus", "mclk1", "mclk2", "mclk3";
+					dmas = <&sdma2 4 2 0>, <&sdma2 5 2 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
 
-			sai5: sai@30050000 {
-				#sound-dai-cells = <0>;
-				compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
-				reg = <0x30050000 0x10000>;
-				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_SAI5_IPG>,
-					 <&clk IMX8MM_CLK_SAI5_ROOT>,
-					 <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
-				clock-names = "bus", "mclk1", "mclk2", "mclk3";
-				dmas = <&sdma2 8 2 0>, <&sdma2 9 2 0>;
-				dma-names = "rx", "tx";
-				status = "disabled";
-			};
+				sai5: sai@30050000 {
+					#sound-dai-cells = <0>;
+					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
+					reg = <0x30050000 0x10000>;
+					interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_SAI5_IPG>,
+						 <&clk IMX8MM_CLK_SAI5_ROOT>,
+						 <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
+					clock-names = "bus", "mclk1", "mclk2", "mclk3";
+					dmas = <&sdma2 8 2 0>, <&sdma2 9 2 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
 
-			sai6: sai@30060000 {
-				#sound-dai-cells = <0>;
-				compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
-				reg = <0x30060000 0x10000>;
-				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_SAI6_IPG>,
-					 <&clk IMX8MM_CLK_SAI6_ROOT>,
-					 <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
-				clock-names = "bus", "mclk1", "mclk2", "mclk3";
-				dmas = <&sdma2 10 2 0>, <&sdma2 11 2 0>;
-				dma-names = "rx", "tx";
-				status = "disabled";
-			};
+				sai6: sai@30060000 {
+					#sound-dai-cells = <0>;
+					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
+					reg = <0x30060000 0x10000>;
+					interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_SAI6_IPG>,
+						 <&clk IMX8MM_CLK_SAI6_ROOT>,
+						 <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
+					clock-names = "bus", "mclk1", "mclk2", "mclk3";
+					dmas = <&sdma2 10 2 0>, <&sdma2 11 2 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
 
-			micfil: audio-controller@30080000 {
-				compatible = "fsl,imx8mm-micfil";
-				reg = <0x30080000 0x10000>;
-				interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
-					     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_PDM_IPG>,
-					 <&clk IMX8MM_CLK_PDM_ROOT>,
-					 <&clk IMX8MM_AUDIO_PLL1_OUT>,
-					 <&clk IMX8MM_AUDIO_PLL2_OUT>,
-					 <&clk IMX8MM_CLK_EXT3>;
-				clock-names = "ipg_clk", "ipg_clk_app",
-					      "pll8k", "pll11k", "clkext3";
-				dmas = <&sdma2 24 25 0x80000000>;
-				dma-names = "rx";
-				status = "disabled";
-			};
+				micfil: audio-controller@30080000 {
+					compatible = "fsl,imx8mm-micfil";
+					reg = <0x30080000 0x10000>;
+					interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+						     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+						     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
+						     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_PDM_IPG>,
+						 <&clk IMX8MM_CLK_PDM_ROOT>,
+						 <&clk IMX8MM_AUDIO_PLL1_OUT>,
+						 <&clk IMX8MM_AUDIO_PLL2_OUT>,
+						 <&clk IMX8MM_CLK_EXT3>;
+					clock-names = "ipg_clk", "ipg_clk_app",
+						      "pll8k", "pll11k", "clkext3";
+					dmas = <&sdma2 24 25 0x80000000>;
+					dma-names = "rx";
+					status = "disabled";
+				};
 
-			spdif1: spdif@30090000 {
-				compatible = "fsl,imx35-spdif";
-				reg = <0x30090000 0x10000>;
-				interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_AUDIO_AHB>, /* core */
-					 <&clk IMX8MM_CLK_24M>, /* rxtx0 */
-					 <&clk IMX8MM_CLK_SPDIF1>, /* rxtx1 */
-					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx2 */
-					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx3 */
-					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx4 */
-					 <&clk IMX8MM_CLK_AUDIO_AHB>, /* rxtx5 */
-					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx6 */
-					 <&clk IMX8MM_CLK_DUMMY>, /* rxtx7 */
-					 <&clk IMX8MM_CLK_DUMMY>; /* spba */
-				clock-names = "core", "rxtx0",
-					      "rxtx1", "rxtx2",
-					      "rxtx3", "rxtx4",
-					      "rxtx5", "rxtx6",
-					      "rxtx7", "spba";
-				dmas = <&sdma2 28 18 0>, <&sdma2 29 18 0>;
-				dma-names = "rx", "tx";
-				status = "disabled";
+				spdif1: spdif@30090000 {
+					compatible = "fsl,imx35-spdif";
+					reg = <0x30090000 0x10000>;
+					interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_AUDIO_AHB>, /* core */
+						 <&clk IMX8MM_CLK_24M>, /* rxtx0 */
+						 <&clk IMX8MM_CLK_SPDIF1>, /* rxtx1 */
+						 <&clk IMX8MM_CLK_DUMMY>, /* rxtx2 */
+						 <&clk IMX8MM_CLK_DUMMY>, /* rxtx3 */
+						 <&clk IMX8MM_CLK_DUMMY>, /* rxtx4 */
+						 <&clk IMX8MM_CLK_AUDIO_AHB>, /* rxtx5 */
+						 <&clk IMX8MM_CLK_DUMMY>, /* rxtx6 */
+						 <&clk IMX8MM_CLK_DUMMY>, /* rxtx7 */
+						 <&clk IMX8MM_CLK_DUMMY>; /* spba */
+					clock-names = "core", "rxtx0",
+						      "rxtx1", "rxtx2",
+						      "rxtx3", "rxtx4",
+						      "rxtx5", "rxtx6",
+						      "rxtx7", "spba";
+					dmas = <&sdma2 28 18 0>, <&sdma2 29 18 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
 			};
 
 			gpio1: gpio@30200000 {
@@ -660,80 +668,88 @@  aips3: bus@30800000 {
 			ranges = <0x30800000 0x30800000 0x400000>,
 				 <0x8000000 0x8000000 0x10000000>;
 
-			ecspi1: spi@30820000 {
-				compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
+			bus@30800000 {
+				compatible = "fsl,spba-bus", "simple-bus";
 				#address-cells = <1>;
-				#size-cells = <0>;
-				reg = <0x30820000 0x10000>;
-				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_ECSPI1_ROOT>,
-					 <&clk IMX8MM_CLK_ECSPI1_ROOT>;
-				clock-names = "ipg", "per";
-				dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>;
-				dma-names = "rx", "tx";
-				status = "disabled";
-			};
+				#size-cells = <1>;
+				reg = <0x30800000 0x100000>;
+				ranges;
+
+				ecspi1: spi@30820000 {
+					compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
+					#address-cells = <1>;
+					#size-cells = <0>;
+					reg = <0x30820000 0x10000>;
+					interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_ECSPI1_ROOT>,
+						 <&clk IMX8MM_CLK_ECSPI1_ROOT>;
+					clock-names = "ipg", "per";
+					dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
 
-			ecspi2: spi@30830000 {
-				compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
-				#address-cells = <1>;
-				#size-cells = <0>;
-				reg = <0x30830000 0x10000>;
-				interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_ECSPI2_ROOT>,
-					 <&clk IMX8MM_CLK_ECSPI2_ROOT>;
-				clock-names = "ipg", "per";
-				dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>;
-				dma-names = "rx", "tx";
-				status = "disabled";
-			};
+				ecspi2: spi@30830000 {
+					compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
+					#address-cells = <1>;
+					#size-cells = <0>;
+					reg = <0x30830000 0x10000>;
+					interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_ECSPI2_ROOT>,
+						 <&clk IMX8MM_CLK_ECSPI2_ROOT>;
+					clock-names = "ipg", "per";
+					dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
 
-			ecspi3: spi@30840000 {
-				compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
-				#address-cells = <1>;
-				#size-cells = <0>;
-				reg = <0x30840000 0x10000>;
-				interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_ECSPI3_ROOT>,
-					 <&clk IMX8MM_CLK_ECSPI3_ROOT>;
-				clock-names = "ipg", "per";
-				dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>;
-				dma-names = "rx", "tx";
-				status = "disabled";
-			};
+				ecspi3: spi@30840000 {
+					compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
+					#address-cells = <1>;
+					#size-cells = <0>;
+					reg = <0x30840000 0x10000>;
+					interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_ECSPI3_ROOT>,
+						 <&clk IMX8MM_CLK_ECSPI3_ROOT>;
+					clock-names = "ipg", "per";
+					dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
 
-			uart1: serial@30860000 {
-				compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
-				reg = <0x30860000 0x10000>;
-				interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_UART1_ROOT>,
-					 <&clk IMX8MM_CLK_UART1_ROOT>;
-				clock-names = "ipg", "per";
-				dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>;
-				dma-names = "rx", "tx";
-				status = "disabled";
-			};
+				uart1: serial@30860000 {
+					compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
+					reg = <0x30860000 0x10000>;
+					interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_UART1_ROOT>,
+						 <&clk IMX8MM_CLK_UART1_ROOT>;
+					clock-names = "ipg", "per";
+					dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
 
-			uart3: serial@30880000 {
-				compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
-				reg = <0x30880000 0x10000>;
-				interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_UART3_ROOT>,
-					 <&clk IMX8MM_CLK_UART3_ROOT>;
-				clock-names = "ipg", "per";
-				dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>;
-				dma-names = "rx", "tx";
-				status = "disabled";
-			};
+				uart3: serial@30880000 {
+					compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
+					reg = <0x30880000 0x10000>;
+					interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_UART3_ROOT>,
+						 <&clk IMX8MM_CLK_UART3_ROOT>;
+					clock-names = "ipg", "per";
+					dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>;
+					dma-names = "rx", "tx";
+					status = "disabled";
+				};
 
-			uart2: serial@30890000 {
-				compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
-				reg = <0x30890000 0x10000>;
-				interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
-				clocks = <&clk IMX8MM_CLK_UART2_ROOT>,
-					 <&clk IMX8MM_CLK_UART2_ROOT>;
-				clock-names = "ipg", "per";
-				status = "disabled";
+				uart2: serial@30890000 {
+					compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
+					reg = <0x30890000 0x10000>;
+					interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+					clocks = <&clk IMX8MM_CLK_UART2_ROOT>,
+						 <&clk IMX8MM_CLK_UART2_ROOT>;
+					clock-names = "ipg", "per";
+					status = "disabled";
+				};
 			};
 
 			crypto: crypto@30900000 {