diff mbox series

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

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

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(-)

-- 
2.28.0

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
diff mbox series

Patch

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 {