linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/5] arm64: dts: imx8mq: Add SDMA nodes
@ 2019-02-25 13:17 Daniel Baluta
  2019-02-25 13:17 ` [PATCH 2/5] arm64: dts: imx8mq: Add SAI2 node Daniel Baluta
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Daniel Baluta @ 2019-02-25 13:17 UTC (permalink / raw)
  To: shawnguo
  Cc: S.j. Wang, angus, robh+dt, mark.rutland, s.hauer, kernel,
	festevam, l.stach, Abel Vesa, ccaione, baruch, agx, devicetree,
	linux-arm-kernel, linux-kernel, dl-linux-imx, Aisheng Dong,
	Daniel Baluta, Anson Huang

SDMA1 is part of AIPS-3 region and SDMA2 is part
of AIPS-1 region.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
[initial submit in i.MX internal tree]
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
[adaptation for linux-next]
---
 arch/arm64/boot/dts/freescale/imx8mq.dtsi | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
index 9155bd4784eb..87839c5c8a7f 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
@@ -234,6 +234,17 @@
 				status = "disabled";
 			};
 
+			sdma2: sdma@302c0000 {
+				compatible = "fsl,imx8mq-sdma", "fsl,imx7d-sdma";
+				reg = <0x302c0000 0x10000>;
+				interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_SDMA2_ROOT>,
+					 <&clk IMX8MQ_CLK_SDMA2_ROOT>;
+				clock-names = "ipg", "ahb";
+				#dma-cells = <3>;
+				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
+			};
+
 			iomuxc: iomuxc@30330000 {
 				compatible = "fsl,imx8mq-iomuxc";
 				reg = <0x30330000 0x10000>;
@@ -575,6 +586,17 @@
 				status = "disabled";
 			};
 
+			sdma1: sdma@30bd0000 {
+				compatible = "fsl,imx8mq-sdma", "fsl,imx7d-sdma";
+				reg = <0x30bd0000 0x10000>;
+				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_SDMA1_ROOT>,
+					 <&clk IMX8MQ_CLK_SDMA1_ROOT>;
+				clock-names = "ipg", "ahb";
+				#dma-cells = <3>;
+				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
+			};
+
 			fec1: ethernet@30be0000 {
 				compatible = "fsl,imx8mq-fec", "fsl,imx6sx-fec";
 				reg = <0x30be0000 0x10000>;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/5] arm64: dts: imx8mq: Add SAI2 node
  2019-02-25 13:17 [PATCH 1/5] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta
@ 2019-02-25 13:17 ` Daniel Baluta
  2019-02-25 13:17 ` [PATCH 3/5] arm64: dts: imx8qm: Add SAI pinctrl configuration Daniel Baluta
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Daniel Baluta @ 2019-02-25 13:17 UTC (permalink / raw)
  To: shawnguo
  Cc: S.j. Wang, angus, robh+dt, mark.rutland, s.hauer, kernel,
	festevam, l.stach, Abel Vesa, ccaione, baruch, agx, devicetree,
	linux-arm-kernel, linux-kernel, dl-linux-imx, Aisheng Dong,
	Daniel Baluta

SAI2 is part of AIPS-3 memory region and it's the DAI through
which the wm8524 codec gets its data.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mq.dtsi | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
index 87839c5c8a7f..807497450f6a 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
@@ -489,6 +489,22 @@
 				status = "disabled";
 			};
 
+			sai2: sai@308b0000 {
+				#sound-dai-cells = <0>;
+				compatible = "fsl,imx8mq-sai",
+					     "fsl,imx6sx-sai";
+				reg = <0x308b0000 0x10000>;
+				interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clk IMX8MQ_CLK_SAI2_IPG>,
+					 <&clk IMX8MQ_CLK_DUMMY>,
+					 <&clk IMX8MQ_CLK_SAI2_ROOT>,
+					 <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
+				clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+				dmas = <&sdma1 10 24 0>, <&sdma1 11 24 0>;
+				dma-names = "rx", "tx";
+				status = "disabled";
+			};
+
 			i2c1: i2c@30a20000 {
 				compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c";
 				reg = <0x30a20000 0x10000>;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/5] arm64: dts: imx8qm: Add SAI pinctrl configuration
  2019-02-25 13:17 [PATCH 1/5] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta
  2019-02-25 13:17 ` [PATCH 2/5] arm64: dts: imx8mq: Add SAI2 node Daniel Baluta
@ 2019-02-25 13:17 ` Daniel Baluta
  2019-02-25 13:17 ` [PATCH 4/5] arm64: dts: imx8qm: Enable SAI2 for wm8524 codec Daniel Baluta
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Daniel Baluta @ 2019-02-25 13:17 UTC (permalink / raw)
  To: shawnguo
  Cc: S.j. Wang, angus, robh+dt, mark.rutland, s.hauer, kernel,
	festevam, l.stach, Abel Vesa, ccaione, baruch, agx, devicetree,
	linux-arm-kernel, linux-kernel, dl-linux-imx, Aisheng Dong,
	Daniel Baluta

This sets the pin configuration for SAI pins BLCK/MCLK/FSYNC/DATA.
GPIO_01 is used for mute.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
index 54737bf1772f..d21ee2a5312c 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
@@ -223,6 +223,16 @@
 		>;
 	};
 
+	pinctrl_sai2: sai2grp {
+		fsl,pins = <
+			MX8MQ_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC     0xd6
+			MX8MQ_IOMUXC_SAI2_TXC_SAI2_TX_BCLK      0xd6
+			MX8MQ_IOMUXC_SAI2_MCLK_SAI2_MCLK        0xd6
+			MX8MQ_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0    0xd6
+			MX8MQ_IOMUXC_GPIO1_IO08_GPIO1_IO8       0xd6
+		>;
+	};
+
 	pinctrl_i2c1: i2c1grp {
 		fsl,pins = <
 			MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL			0x4000007f
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 4/5] arm64: dts: imx8qm: Enable SAI2 for wm8524 codec
  2019-02-25 13:17 [PATCH 1/5] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta
  2019-02-25 13:17 ` [PATCH 2/5] arm64: dts: imx8mq: Add SAI2 node Daniel Baluta
  2019-02-25 13:17 ` [PATCH 3/5] arm64: dts: imx8qm: Add SAI pinctrl configuration Daniel Baluta
@ 2019-02-25 13:17 ` Daniel Baluta
  2019-02-25 13:17 ` [PATCH 5/5] arm64: dts: imx8qm: Enable " Daniel Baluta
  2019-02-25 13:23 ` [PATCH 1/5] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta
  4 siblings, 0 replies; 6+ messages in thread
From: Daniel Baluta @ 2019-02-25 13:17 UTC (permalink / raw)
  To: shawnguo
  Cc: S.j. Wang, angus, robh+dt, mark.rutland, s.hauer, kernel,
	festevam, l.stach, Abel Vesa, ccaione, baruch, agx, devicetree,
	linux-arm-kernel, linux-kernel, dl-linux-imx, Aisheng Dong,
	Daniel Baluta

This enables SAI2 digital audio interface to be used with
wm8524 codec.

wm8524 works only in slave mode, so we make sure that IMX8MQ_CLK_SAI2
has an appropriate frequency in order to easily derive rates divisible
with 8000.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
index d21ee2a5312c..58de4a3d6029 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
@@ -52,6 +52,15 @@
 	};
 };
 
+&sai2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_sai2>;
+	assigned-clocks = <&clk IMX8MQ_CLK_SAI2>;
+	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+	assigned-clock-rates = <24576000>;
+	status = "okay";
+};
+
 &i2c1 {
 	clock-frequency = <100000>;
 	pinctrl-names = "default";
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 5/5] arm64: dts: imx8qm: Enable wm8524 codec
  2019-02-25 13:17 [PATCH 1/5] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta
                   ` (2 preceding siblings ...)
  2019-02-25 13:17 ` [PATCH 4/5] arm64: dts: imx8qm: Enable SAI2 for wm8524 codec Daniel Baluta
@ 2019-02-25 13:17 ` Daniel Baluta
  2019-02-25 13:23 ` [PATCH 1/5] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta
  4 siblings, 0 replies; 6+ messages in thread
From: Daniel Baluta @ 2019-02-25 13:17 UTC (permalink / raw)
  To: shawnguo
  Cc: S.j. Wang, angus, robh+dt, mark.rutland, s.hauer, kernel,
	festevam, l.stach, Abel Vesa, ccaione, baruch, agx, devicetree,
	linux-arm-kernel, linux-kernel, dl-linux-imx, Aisheng Dong,
	Daniel Baluta

This uses simple-audio-card machine driver adding 1 CPU DAI
and 1 Codec DAI.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 29 ++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
index 58de4a3d6029..77f590c13ee0 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
@@ -31,6 +31,35 @@
 		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
 	};
+
+	wm8524: audio-codec-0 {
+		#sound-dai-cells = <0>;
+		compatible = "wlf,wm8524";
+		clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
+		clock-names = "mclk";
+		wlf,mute-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+	};
+
+	sound-wm8524 {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "wm8524-audio";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,frame-master = <&cpudai>;
+		simple-audio-card,bitclock-master = <&cpudai>;
+		simple-audio-card,widgets =
+			"Line", "Left Line Out Jack",
+			"Line", "Right Line Out Jack";
+		simple-audio-card,routing =
+			"Left Line Out Jack", "LINEVOUTL",
+			"Right Line Out Jack", "LINEVOUTR";
+		cpudai: simple-audio-card,cpu {
+			sound-dai = <&sai2>;
+		};
+		link_codec: simple-audio-card,codec {
+			sound-dai = <&wm8524>;
+			clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
+		};
+	};
 };
 
 &fec1 {
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/5] arm64: dts: imx8mq: Add SDMA nodes
  2019-02-25 13:17 [PATCH 1/5] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta
                   ` (3 preceding siblings ...)
  2019-02-25 13:17 ` [PATCH 5/5] arm64: dts: imx8qm: Enable " Daniel Baluta
@ 2019-02-25 13:23 ` Daniel Baluta
  4 siblings, 0 replies; 6+ messages in thread
From: Daniel Baluta @ 2019-02-25 13:23 UTC (permalink / raw)
  To: shawnguo
  Cc: dl-linux-imx, linux-kernel, robh+dt, Aisheng Dong, ccaione,
	angus, devicetree, festevam, agx, baruch, mark.rutland,
	Abel Vesa, linux-arm-kernel, S.j. Wang, Anson Huang, l.stach,
	kernel, s.hauer

Please ignore this, I sent it from the wrong repo. I swear that I
double checked.

Will sent v2 with correct base.


On Mon, 2019-02-25 at 13:17 +0000, Daniel Baluta wrote:
> SDMA1 is part of AIPS-3 region and SDMA2 is part
> of AIPS-1 region.
> 
> Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> [initial submit in i.MX internal tree]
> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
> [adaptation for linux-next]
> ---
>  arch/arm64/boot/dts/freescale/imx8mq.dtsi | 22
> ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> index 9155bd4784eb..87839c5c8a7f 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> @@ -234,6 +234,17 @@
>  				status = "disabled";
>  			};
>  
> +			sdma2: sdma@302c0000 {
> +				compatible = "fsl,imx8mq-sdma",
> "fsl,imx7d-sdma";
> +				reg = <0x302c0000 0x10000>;
> +				interrupts = <GIC_SPI 103
> IRQ_TYPE_LEVEL_HIGH>;
> +				clocks = <&clk IMX8MQ_CLK_SDMA2_ROOT>,
> +					 <&clk IMX8MQ_CLK_SDMA2_ROOT>;
> +				clock-names = "ipg", "ahb";
> +				#dma-cells = <3>;
> +				fsl,sdma-ram-script-name =
> "imx/sdma/sdma-imx7d.bin";
> +			};
> +
>  			iomuxc: iomuxc@30330000 {
>  				compatible = "fsl,imx8mq-iomuxc";
>  				reg = <0x30330000 0x10000>;
> @@ -575,6 +586,17 @@
>  				status = "disabled";
>  			};
>  
> +			sdma1: sdma@30bd0000 {
> +				compatible = "fsl,imx8mq-sdma",
> "fsl,imx7d-sdma";
> +				reg = <0x30bd0000 0x10000>;
> +				interrupts = <GIC_SPI 2
> IRQ_TYPE_LEVEL_HIGH>;
> +				clocks = <&clk IMX8MQ_CLK_SDMA1_ROOT>,
> +					 <&clk IMX8MQ_CLK_SDMA1_ROOT>;
> +				clock-names = "ipg", "ahb";
> +				#dma-cells = <3>;
> +				fsl,sdma-ram-script-name =
> "imx/sdma/sdma-imx7d.bin";
> +			};
> +
>  			fec1: ethernet@30be0000 {
>  				compatible = "fsl,imx8mq-fec",
> "fsl,imx6sx-fec";
>  				reg = <0x30be0000 0x10000>;

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-02-25 13:23 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-25 13:17 [PATCH 1/5] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta
2019-02-25 13:17 ` [PATCH 2/5] arm64: dts: imx8mq: Add SAI2 node Daniel Baluta
2019-02-25 13:17 ` [PATCH 3/5] arm64: dts: imx8qm: Add SAI pinctrl configuration Daniel Baluta
2019-02-25 13:17 ` [PATCH 4/5] arm64: dts: imx8qm: Enable SAI2 for wm8524 codec Daniel Baluta
2019-02-25 13:17 ` [PATCH 5/5] arm64: dts: imx8qm: Enable " Daniel Baluta
2019-02-25 13:23 ` [PATCH 1/5] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).