2018-01-26 08:25:46

by Lothar Waßmann

[permalink] [raw]
Subject: [PATCH 0/3] ARM: dts: imx6ull: fix some incompatibilities between i.MX6UL and i.MX6ULL

This patchset addresses some differences between i.MX6UL and i.MX6ULL
which have slipped through the cracks so far.

- UART8 is not on SPBA but on AIPS-3
- i.MX6ULL has an ESAI interface in the address range of the UART8 on i.MX6UL
- i.MX6ULL does not have a CAAM unit nor SIM interfaces



2018-01-26 08:24:52

by Lothar Waßmann

[permalink] [raw]
Subject: [PATCH 2/3] ARM: dts: imx6ull: add support for the esai interface

The address space taken by the UART8 on the i.MX6UL is used for the
ESAI interface on i.MX6ULL.

Since the ESAI unit on i.MX6ULL has two more bits in the TFCR register
(TFIN, TAENB) it deserves to get its own compatible string, though the
bits are currently not used by the driver.

Signed-off-by: Lothar Waßmann <[email protected]>
---
Documentation/devicetree/bindings/sound/fsl,esai.txt | 4 ++--
arch/arm/boot/dts/imx6ull.dtsi | 17 +++++++++++++++++
sound/soc/fsl/fsl_esai.c | 1 +
3 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/sound/fsl,esai.txt b/Documentation/devicetree/bindings/sound/fsl,esai.txt
index cacd18b..4103f46 100644
--- a/Documentation/devicetree/bindings/sound/fsl,esai.txt
+++ b/Documentation/devicetree/bindings/sound/fsl,esai.txt
@@ -7,8 +7,8 @@ other DSPs. It has up to six transmitters and four receivers.

Required properties:

- - compatible : Compatible list, must contain "fsl,imx35-esai" or
- "fsl,vf610-esai"
+ - compatible : Compatible list, must contain "fsl,imx35-esai",
+ "fsl,vf610-esai" or "fsl,imx6ull-esai"

- reg : Offset and length of the register set for the device.

diff --git a/arch/arm/boot/dts/imx6ull.dtsi b/arch/arm/boot/dts/imx6ull.dtsi
index abc815f..8724fdb2 100644
--- a/arch/arm/boot/dts/imx6ull.dtsi
+++ b/arch/arm/boot/dts/imx6ull.dtsi
@@ -47,6 +47,23 @@
aips-bus@2000000 {
spba-bus@2000000 {
/delete-node/ serial@2024000;
+
+ esai: esai@2024000 {
+ compatible = "fsl,imx6ull-esai", "fsl,imx35-esai";
+ reg = <0x02024000 0x4000>;
+ interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6ULL_CLK_ESAI_IPG>,
+ <&clks IMX6ULL_CLK_ESAI_MEM>,
+ <&clks IMX6ULL_CLK_ESAI_EXTAL>,
+ <&clks IMX6ULL_CLK_ESAI_IPG>,
+ <&clks IMX6UL_CLK_SPBA>;
+ clock-names = "core", "mem", "extal",
+ "fsys", "spba";
+ dmas = <&sdma 0 21 0>,
+ <&sdma 47 21 0>;
+ dma-names = "rx", "tx";
+ status = "disabled";
+ };
};
};

diff --git a/sound/soc/fsl/fsl_esai.c b/sound/soc/fsl/fsl_esai.c
index cef79a1..5b6a53f 100644
--- a/sound/soc/fsl/fsl_esai.c
+++ b/sound/soc/fsl/fsl_esai.c
@@ -910,6 +910,7 @@ static int fsl_esai_probe(struct platform_device *pdev)
}

static const struct of_device_id fsl_esai_dt_ids[] = {
+ { .compatible = "fsl,imx6ull-esai", },
{ .compatible = "fsl,imx35-esai", },
{ .compatible = "fsl,vf610-esai", },
{}
--
2.1.4


2018-01-26 08:44:18

by Lothar Waßmann

[permalink] [raw]
Subject: [PATCH 3/3] ARM: dts: imx6ull: address some more incompatibilites between i.MX6UL and i.MX6ULL

The i.MX6ULL doesn't have the CAAM engine nor any SIM interface.
These are currently not implemented for i.MX6UL but it cannot hurt to
delete the corresponding nodes from the i.MX6ULL DTB anyway.

Signed-off-by: Lothar Waßmann <[email protected]>
---
arch/arm/boot/dts/imx6ull.dtsi | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/imx6ull.dtsi b/arch/arm/boot/dts/imx6ull.dtsi
index 8724fdb2..da325cd 100644
--- a/arch/arm/boot/dts/imx6ull.dtsi
+++ b/arch/arm/boot/dts/imx6ull.dtsi
@@ -67,6 +67,12 @@
};
};

+ aips-bus@2100000 {
+ /delete-node/ caam@21400000;
+ /delete-node/ sim@218c0000;
+ /delete-node/ sim@21b40000;
+ };
+
aips3: aips-bus@2200000 {
compatible = "fsl,aips-bus", "simple-bus";
#address-cells = <1>;
--
2.1.4


2018-01-26 08:45:35

by Lothar Waßmann

[permalink] [raw]
Subject: [PATCH 1/3] ARM: dts: imx6ull: fix the i.MX6ULL UART8 configuration

UART8 on i.MX6ULL is not located on the SPBA bus like on i.MX6UL but
on the (otherwise unused) AIPS-3 bus.
Create the appropriate AIPS-3 bus configuration and move the uart8
definition where it belongs.

Signed-off-by: Lothar Waßmann <[email protected]>
---
arch/arm/boot/dts/imx6ull.dtsi | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

diff --git a/arch/arm/boot/dts/imx6ull.dtsi b/arch/arm/boot/dts/imx6ull.dtsi
index 0c18291..abc815f 100644
--- a/arch/arm/boot/dts/imx6ull.dtsi
+++ b/arch/arm/boot/dts/imx6ull.dtsi
@@ -41,3 +41,32 @@

#include "imx6ul.dtsi"
#include "imx6ull-pinfunc.h"
+
+/ {
+ soc {
+ aips-bus@2000000 {
+ spba-bus@2000000 {
+ /delete-node/ serial@2024000;
+ };
+ };
+
+ aips3: aips-bus@2200000 {
+ compatible = "fsl,aips-bus", "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0x02200000 0x100000>;
+ ranges;
+
+ uart8: serial@2288000 {
+ compatible = "fsl,imx6ul-uart",
+ "fsl,imx6q-uart";
+ reg = <0x02288000 0x4000>;
+ interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_IPG>,
+ <&clks IMX6UL_CLK_UART8_SERIAL>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+ };
+ };
+};
--
2.1.4


2018-01-26 08:58:23

by Dong Aisheng

[permalink] [raw]
Subject: Re: [PATCH 1/3] ARM: dts: imx6ull: fix the i.MX6ULL UART8 configuration

On Fri, Jan 26, 2018 at 09:23:50AM +0100, Lothar Wa?mann wrote:
> UART8 on i.MX6ULL is not located on the SPBA bus like on i.MX6UL but
> on the (otherwise unused) AIPS-3 bus.
> Create the appropriate AIPS-3 bus configuration and move the uart8
> definition where it belongs.
>
> Signed-off-by: Lothar Wa?mann <[email protected]>

Stefan seemed already fixed this.

See:
https://patchwork.kernel.org/patch/10156125/

Regards
Dong Aisheng

> ---
> arch/arm/boot/dts/imx6ull.dtsi | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/arch/arm/boot/dts/imx6ull.dtsi b/arch/arm/boot/dts/imx6ull.dtsi
> index 0c18291..abc815f 100644
> --- a/arch/arm/boot/dts/imx6ull.dtsi
> +++ b/arch/arm/boot/dts/imx6ull.dtsi
> @@ -41,3 +41,32 @@
>
> #include "imx6ul.dtsi"
> #include "imx6ull-pinfunc.h"
> +
> +/ {
> + soc {
> + aips-bus@2000000 {
> + spba-bus@2000000 {
> + /delete-node/ serial@2024000;
> + };
> + };
> +
> + aips3: aips-bus@2200000 {
> + compatible = "fsl,aips-bus", "simple-bus";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + reg = <0x02200000 0x100000>;
> + ranges;
> +
> + uart8: serial@2288000 {
> + compatible = "fsl,imx6ul-uart",
> + "fsl,imx6q-uart";
> + reg = <0x02288000 0x4000>;
> + interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clks IMX6UL_CLK_IPG>,
> + <&clks IMX6UL_CLK_UART8_SERIAL>;
> + clock-names = "ipg", "per";
> + status = "disabled";
> + };
> + };
> + };
> +};
> --
> 2.1.4
>

2018-01-26 09:06:02

by Dong Aisheng

[permalink] [raw]
Subject: Re: [PATCH 2/3] ARM: dts: imx6ull: add support for the esai interface

On Fri, Jan 26, 2018 at 09:23:51AM +0100, Lothar Wa?mann wrote:
> The address space taken by the UART8 on the i.MX6UL is used for the
> ESAI interface on i.MX6ULL.
>
> Since the ESAI unit on i.MX6ULL has two more bits in the TFCR register
> (TFIN, TAENB) it deserves to get its own compatible string, though the
> bits are currently not used by the driver.
>
> Signed-off-by: Lothar Wa?mann <[email protected]>
> ---
> Documentation/devicetree/bindings/sound/fsl,esai.txt | 4 ++--
> arch/arm/boot/dts/imx6ull.dtsi | 17 +++++++++++++++++
> sound/soc/fsl/fsl_esai.c | 1 +

Should them be separate patches?

Otherwise this patch is ok to me.

Acked-by: Dong Aisheng <[email protected]>

Regards
Dong Aisheng

> 3 files changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/sound/fsl,esai.txt b/Documentation/devicetree/bindings/sound/fsl,esai.txt
> index cacd18b..4103f46 100644
> --- a/Documentation/devicetree/bindings/sound/fsl,esai.txt
> +++ b/Documentation/devicetree/bindings/sound/fsl,esai.txt
> @@ -7,8 +7,8 @@ other DSPs. It has up to six transmitters and four receivers.
>
> Required properties:
>
> - - compatible : Compatible list, must contain "fsl,imx35-esai" or
> - "fsl,vf610-esai"
> + - compatible : Compatible list, must contain "fsl,imx35-esai",
> + "fsl,vf610-esai" or "fsl,imx6ull-esai"
>
> - reg : Offset and length of the register set for the device.
>
> diff --git a/arch/arm/boot/dts/imx6ull.dtsi b/arch/arm/boot/dts/imx6ull.dtsi
> index abc815f..8724fdb2 100644
> --- a/arch/arm/boot/dts/imx6ull.dtsi
> +++ b/arch/arm/boot/dts/imx6ull.dtsi
> @@ -47,6 +47,23 @@
> aips-bus@2000000 {
> spba-bus@2000000 {
> /delete-node/ serial@2024000;
> +
> + esai: esai@2024000 {
> + compatible = "fsl,imx6ull-esai", "fsl,imx35-esai";
> + reg = <0x02024000 0x4000>;
> + interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clks IMX6ULL_CLK_ESAI_IPG>,
> + <&clks IMX6ULL_CLK_ESAI_MEM>,
> + <&clks IMX6ULL_CLK_ESAI_EXTAL>,
> + <&clks IMX6ULL_CLK_ESAI_IPG>,
> + <&clks IMX6UL_CLK_SPBA>;
> + clock-names = "core", "mem", "extal",
> + "fsys", "spba";
> + dmas = <&sdma 0 21 0>,
> + <&sdma 47 21 0>;
> + dma-names = "rx", "tx";
> + status = "disabled";
> + };
> };
> };
>
> diff --git a/sound/soc/fsl/fsl_esai.c b/sound/soc/fsl/fsl_esai.c
> index cef79a1..5b6a53f 100644
> --- a/sound/soc/fsl/fsl_esai.c
> +++ b/sound/soc/fsl/fsl_esai.c
> @@ -910,6 +910,7 @@ static int fsl_esai_probe(struct platform_device *pdev)
> }
>
> static const struct of_device_id fsl_esai_dt_ids[] = {
> + { .compatible = "fsl,imx6ull-esai", },
> { .compatible = "fsl,imx35-esai", },
> { .compatible = "fsl,vf610-esai", },
> {}
> --
> 2.1.4
>

2018-01-26 09:07:31

by Dong Aisheng

[permalink] [raw]
Subject: Re: [PATCH 3/3] ARM: dts: imx6ull: address some more incompatibilites between i.MX6UL and i.MX6ULL

On Fri, Jan 26, 2018 at 09:23:52AM +0100, Lothar Wa?mann wrote:
> The i.MX6ULL doesn't have the CAAM engine nor any SIM interface.
> These are currently not implemented for i.MX6UL but it cannot hurt to
> delete the corresponding nodes from the i.MX6ULL DTB anyway.
>
> Signed-off-by: Lothar Wa?mann <[email protected]>

Acked-by: Dong Aisheng <[email protected]>

Regards
Dong Aisheng

> ---
> arch/arm/boot/dts/imx6ull.dtsi | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm/boot/dts/imx6ull.dtsi b/arch/arm/boot/dts/imx6ull.dtsi
> index 8724fdb2..da325cd 100644
> --- a/arch/arm/boot/dts/imx6ull.dtsi
> +++ b/arch/arm/boot/dts/imx6ull.dtsi
> @@ -67,6 +67,12 @@
> };
> };
>
> + aips-bus@2100000 {
> + /delete-node/ caam@21400000;
> + /delete-node/ sim@218c0000;
> + /delete-node/ sim@21b40000;
> + };
> +
> aips3: aips-bus@2200000 {
> compatible = "fsl,aips-bus", "simple-bus";
> #address-cells = <1>;
> --
> 2.1.4
>

2018-02-05 06:09:29

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH 2/3] ARM: dts: imx6ull: add support for the esai interface

On Fri, Jan 26, 2018 at 09:23:51AM +0100, Lothar Wa?mann wrote:
> The address space taken by the UART8 on the i.MX6UL is used for the
> ESAI interface on i.MX6ULL.
>
> Since the ESAI unit on i.MX6ULL has two more bits in the TFCR register
> (TFIN, TAENB) it deserves to get its own compatible string, though the
> bits are currently not used by the driver.
>
> Signed-off-by: Lothar Wa?mann <[email protected]>
> ---
> Documentation/devicetree/bindings/sound/fsl,esai.txt | 4 ++--
> arch/arm/boot/dts/imx6ull.dtsi | 17 +++++++++++++++++
> sound/soc/fsl/fsl_esai.c | 1 +
> 3 files changed, 20 insertions(+), 2 deletions(-)

As mentioned, this really should be 3 patches. At least split out the
dts file.

>
> diff --git a/Documentation/devicetree/bindings/sound/fsl,esai.txt b/Documentation/devicetree/bindings/sound/fsl,esai.txt
> index cacd18b..4103f46 100644
> --- a/Documentation/devicetree/bindings/sound/fsl,esai.txt
> +++ b/Documentation/devicetree/bindings/sound/fsl,esai.txt
> @@ -7,8 +7,8 @@ other DSPs. It has up to six transmitters and four receivers.
>
> Required properties:
>
> - - compatible : Compatible list, must contain "fsl,imx35-esai" or
> - "fsl,vf610-esai"
> + - compatible : Compatible list, must contain "fsl,imx35-esai",
> + "fsl,vf610-esai" or "fsl,imx6ull-esai"

Please reformat as on compatible per line.

>
> - reg : Offset and length of the register set for the device.
>
> diff --git a/arch/arm/boot/dts/imx6ull.dtsi b/arch/arm/boot/dts/imx6ull.dtsi
> index abc815f..8724fdb2 100644
> --- a/arch/arm/boot/dts/imx6ull.dtsi
> +++ b/arch/arm/boot/dts/imx6ull.dtsi
> @@ -47,6 +47,23 @@
> aips-bus@2000000 {
> spba-bus@2000000 {
> /delete-node/ serial@2024000;
> +
> + esai: esai@2024000 {
> + compatible = "fsl,imx6ull-esai", "fsl,imx35-esai";
> + reg = <0x02024000 0x4000>;
> + interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clks IMX6ULL_CLK_ESAI_IPG>,
> + <&clks IMX6ULL_CLK_ESAI_MEM>,
> + <&clks IMX6ULL_CLK_ESAI_EXTAL>,
> + <&clks IMX6ULL_CLK_ESAI_IPG>,
> + <&clks IMX6UL_CLK_SPBA>;
> + clock-names = "core", "mem", "extal",
> + "fsys", "spba";
> + dmas = <&sdma 0 21 0>,
> + <&sdma 47 21 0>;
> + dma-names = "rx", "tx";
> + status = "disabled";

Don't show status in examples.

> + };
> };
> };
>
> diff --git a/sound/soc/fsl/fsl_esai.c b/sound/soc/fsl/fsl_esai.c
> index cef79a1..5b6a53f 100644
> --- a/sound/soc/fsl/fsl_esai.c
> +++ b/sound/soc/fsl/fsl_esai.c
> @@ -910,6 +910,7 @@ static int fsl_esai_probe(struct platform_device *pdev)
> }
>
> static const struct of_device_id fsl_esai_dt_ids[] = {
> + { .compatible = "fsl,imx6ull-esai", },
> { .compatible = "fsl,imx35-esai", },
> { .compatible = "fsl,vf610-esai", },
> {}
> --
> 2.1.4
>