linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/4] Enable wm8524 on i.MX8MQ-EVK
@ 2019-03-01 16:36 Daniel Baluta
  2019-03-01 16:36 ` [PATCH v5 1/4] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Daniel Baluta @ 2019-03-01 16:36 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,
	kuninori.morimoto.gx, spencercw, Daniel Baluta

Changes since v4 (after Fabio's review)
	- removed mclk0 from sai2 node because it is not yet supported by SAI driver
	- s/audio-codec-0/audio-codec
	- squashed patches 4 and 5

Changes since v3:
	- use "arm64: dts: imx8mq-evk" prefix for patches specific to 8MQ-EVK
	- squash together patches for setting up SAI (previous 3/5 and 4/5)
	- add back and document "fsl, imx8mq-sdma" compatbile string

Changes since v2:
        - s/QM/MQ after Chris comments

Changes since v1:
        - added cover letter
        - remove "fsl,imx8mq-sdma" compatible for sdma.

Daniel Baluta (4):
  arm64: dts: imx8mq: Add SDMA nodes
  bindings: fsl-imx-sdma: Document fsl,imx8mq-sdma compatbile string
  arm64: dts: imx8mq: Add SAI2 node
  arm64: dts: imx8mq-evk: Enable audio codec wm8952

 .../devicetree/bindings/dma/fsl-imx-sdma.txt  |  1 +
 arch/arm64/boot/dts/freescale/imx8mq-evk.dts  | 48 +++++++++++++++++++
 arch/arm64/boot/dts/freescale/imx8mq.dtsi     | 37 ++++++++++++++
 3 files changed, 86 insertions(+)

-- 
2.17.1


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

* [PATCH v5 1/4] arm64: dts: imx8mq: Add SDMA nodes
  2019-03-01 16:36 [PATCH v5 0/4] Enable wm8524 on i.MX8MQ-EVK Daniel Baluta
@ 2019-03-01 16:36 ` Daniel Baluta
  2019-03-01 16:36 ` [PATCH v5 2/4] bindings: fsl-imx-sdma: Document fsl,imx8mq-sdma compatbile string Daniel Baluta
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Daniel Baluta @ 2019-03-01 16:36 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,
	kuninori.morimoto.gx, spencercw, Daniel Baluta, Anson Huang

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

Reviewed-by: Fabio Estevam <festevam@gmail.com>
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..9d48450453fb 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] 5+ messages in thread

* [PATCH v5 2/4] bindings: fsl-imx-sdma: Document fsl,imx8mq-sdma compatbile string
  2019-03-01 16:36 [PATCH v5 0/4] Enable wm8524 on i.MX8MQ-EVK Daniel Baluta
  2019-03-01 16:36 ` [PATCH v5 1/4] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta
@ 2019-03-01 16:36 ` Daniel Baluta
  2019-03-01 16:36 ` [PATCH v5 3/4] arm64: dts: imx8mq: Add SAI2 node Daniel Baluta
  2019-03-01 16:36 ` [PATCH v5 4/4] arm64: dts: imx8mq-evk: Enable audio codec wm8524 Daniel Baluta
  3 siblings, 0 replies; 5+ messages in thread
From: Daniel Baluta @ 2019-03-01 16:36 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,
	kuninori.morimoto.gx, spencercw, Daniel Baluta

Add imx8mq sdma support.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
 Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
index 3c9a57a8443b..9d8bbac27d8b 100644
--- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
+++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
@@ -9,6 +9,7 @@ Required properties:
       "fsl,imx53-sdma"
       "fsl,imx6q-sdma"
       "fsl,imx7d-sdma"
+      "fsl,imx8mq-sdma"
   The -to variants should be preferred since they allow to determine the
   correct ROM script addresses needed for the driver to work without additional
   firmware.
-- 
2.17.1


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

* [PATCH v5 3/4] arm64: dts: imx8mq: Add SAI2 node
  2019-03-01 16:36 [PATCH v5 0/4] Enable wm8524 on i.MX8MQ-EVK Daniel Baluta
  2019-03-01 16:36 ` [PATCH v5 1/4] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta
  2019-03-01 16:36 ` [PATCH v5 2/4] bindings: fsl-imx-sdma: Document fsl,imx8mq-sdma compatbile string Daniel Baluta
@ 2019-03-01 16:36 ` Daniel Baluta
  2019-03-01 16:36 ` [PATCH v5 4/4] arm64: dts: imx8mq-evk: Enable audio codec wm8524 Daniel Baluta
  3 siblings, 0 replies; 5+ messages in thread
From: Daniel Baluta @ 2019-03-01 16:36 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,
	kuninori.morimoto.gx, spencercw, Daniel Baluta

SAI2 is part of AIPS-3 memory region.

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

diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
index 9d48450453fb..b39c6c75c043 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
@@ -489,6 +489,21 @@
 				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_SAI2_ROOT>,
+					 <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
+				clock-names = "bus", "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] 5+ messages in thread

* [PATCH v5 4/4] arm64: dts: imx8mq-evk: Enable audio codec wm8524
  2019-03-01 16:36 [PATCH v5 0/4] Enable wm8524 on i.MX8MQ-EVK Daniel Baluta
                   ` (2 preceding siblings ...)
  2019-03-01 16:36 ` [PATCH v5 3/4] arm64: dts: imx8mq: Add SAI2 node Daniel Baluta
@ 2019-03-01 16:36 ` Daniel Baluta
  3 siblings, 0 replies; 5+ messages in thread
From: Daniel Baluta @ 2019-03-01 16:36 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,
	kuninori.morimoto.gx, spencercw, Daniel Baluta

The main Audio DAC used on the EVK board is wm8524.
The EVK provides the MCLK to wm8524.

Digital interface is SAI2 which includes three signals:
SYNC_CLK, BCLK and DACDAT.

This patch sets:
	* SAI2 pinctrl configuration
	* clock hierarchy
	* wm8524 codec

Then uses simple-card machine driver to connect them
into a sound card.

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

diff --git a/arch/arm64/boot/dts/freescale/imx8mq-evk.dts b/arch/arm64/boot/dts/freescale/imx8mq-evk.dts
index 54737bf1772f..8666af6bea5b 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 {
+		#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 {
@@ -52,6 +81,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";
@@ -223,6 +261,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] 5+ messages in thread

end of thread, other threads:[~2019-03-01 16:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-01 16:36 [PATCH v5 0/4] Enable wm8524 on i.MX8MQ-EVK Daniel Baluta
2019-03-01 16:36 ` [PATCH v5 1/4] arm64: dts: imx8mq: Add SDMA nodes Daniel Baluta
2019-03-01 16:36 ` [PATCH v5 2/4] bindings: fsl-imx-sdma: Document fsl,imx8mq-sdma compatbile string Daniel Baluta
2019-03-01 16:36 ` [PATCH v5 3/4] arm64: dts: imx8mq: Add SAI2 node Daniel Baluta
2019-03-01 16:36 ` [PATCH v5 4/4] arm64: dts: imx8mq-evk: Enable audio codec wm8524 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).