Discussion:
[PATCH v2 0/6] ARM: DT/davinci: Audio for da850-evm in DT boot
Peter Ujfalusi
2014-08-01 06:13:24 UTC
Permalink
Hi,

Changes since v1:
- fixed the address missmatch for tlv320aic3106 codec (@1b -> 18)
- The edma patches has been taken by Vinod, they should be in linux-next soon.

The following series will enable audio via simple card on the board when booted
with DT.

For edma one patch is needed to have working dma:
http://marc.info/?l=linux-omap&m=140680159327749&w=2

Regards,
Peter
---
Peter Ujfalusi (6):
ARM: davinci: da8xx-dt: add OF_DEV_AUXDATA entry for mcasp0
ARM: DTS: da850: Add node for edma0
ARM: DTS: da850: Add node for McASP
ARM: DTS: da850-evm: Enable McASP via DT boot
ARM: DTS: da850-evm: Add node for tlv320aic3106 codec
ARM: DTS: da850-evm: Enable audio via simple-card

arch/arm/boot/dts/da850-evm.dts | 72 ++++++++++++++++++++++++++++++++++++++++
arch/arm/boot/dts/da850.dtsi | 19 +++++++++++
arch/arm/mach-davinci/da8xx-dt.c | 1 +
3 files changed, 92 insertions(+)
--
2.0.2
Peter Ujfalusi
2014-08-01 06:13:25 UTC
Permalink
Add OF_DEV_AUXDATA for mcasp to be able to use clocks.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
---
arch/arm/mach-davinci/da8xx-dt.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c
index ed1928740b5f..f703d82f08a8 100644
--- a/arch/arm/mach-davinci/da8xx-dt.c
+++ b/arch/arm/mach-davinci/da8xx-dt.c
@@ -46,6 +46,7 @@ static struct of_dev_auxdata da850_auxdata_lookup[] __initdata = {
OF_DEV_AUXDATA("ti,davinci_mdio", 0x01e24000, "davinci_mdio.0", NULL),
OF_DEV_AUXDATA("ti,davinci-dm6467-emac", 0x01e20000, "davinci_emac.1",
NULL),
+ OF_DEV_AUXDATA("ti,da830-mcasp-audio", 0x01d00000, "davinci-mcasp.0", NULL),
{}
};
--
2.0.2
Peter Ujfalusi
2014-08-01 06:13:26 UTC
Permalink
Add DT node for edma0.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
---
arch/arm/boot/dts/da850.dtsi | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
index b695548dbb4e..41ce4e8bf227 100644
--- a/arch/arm/boot/dts/da850.dtsi
+++ b/arch/arm/boot/dts/da850.dtsi
@@ -150,6 +150,12 @@
};

};
+ edma0: edma at 01c00000 {
+ compatible = "ti,edma3";
+ reg = <0x0 0x10000>;
+ interrupts = <11 13 12>;
+ #dma-cells = <1>;
+ };
serial0: serial at 1c42000 {
compatible = "ns16550a";
reg = <0x42000 0x100>;
--
2.0.2
Peter Ujfalusi
2014-08-01 06:13:27 UTC
Permalink
Node for mcasp0

Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
---
arch/arm/boot/dts/da850.dtsi | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
index 41ce4e8bf227..0bd98cd00816 100644
--- a/arch/arm/boot/dts/da850.dtsi
+++ b/arch/arm/boot/dts/da850.dtsi
@@ -276,6 +276,19 @@
ti,davinci-gpio-unbanked = <0>;
status = "disabled";
};
+
+ mcasp0: mcasp at 01d00000 {
+ compatible = "ti,da830-mcasp-audio";
+ reg = <0x100000 0x2000>,
+ <0x102000 0x400000>;
+ reg-names = "mpu", "dat";
+ interrupts = <54>;
+ interrupt-names = "common";
+ status = "disabled";
+ dmas = <&edma0 1>,
+ <&edma0 0>;
+ dma-names = "tx", "rx";
+ };
};
nand_cs3 at 62000000 {
compatible = "ti,davinci-nand";
--
2.0.2
Peter Ujfalusi
2014-08-01 06:13:28 UTC
Permalink
Add pinctrl nodes for the McASP0 pins and configure McASP to the desired
mode for the board.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
---
arch/arm/boot/dts/da850-evm.dts | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
index 1e11e5a5f723..1422c311af4c 100644
--- a/arch/arm/boot/dts/da850-evm.dts
+++ b/arch/arm/boot/dts/da850-evm.dts
@@ -17,6 +17,18 @@
soc {
pmx_core: pinmux at 1c14120 {
status = "okay";
+
+ mcasp0_pins: pinmux_mcasp0_pins {
+ pinctrl-single,bits = <
+ /*
+ * AHCLKX, ACLKX, AFSX, AHCLKR, ACLKR,
+ * AFSR, AMUTE
+ */
+ 0x00 0x11111111 0xffffffff
+ /* AXR11, AXR12 */
+ 0x04 0x00011000 0x000ff000
+ >;
+ };
};
serial0: serial at 1c42000 {
status = "okay";
@@ -170,3 +182,21 @@
};
};
};
+
+&mcasp0 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&mcasp0_pins>;
+
+ op-mode = <0>; /* MCASP_IIS_MODE */
+ tdm-slots = <2>;
+ /* 4 serializer */
+ serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
+ 0 0 0 0
+ 0 0 0 0
+ 0 0 0 1
+ 2 0 0 0
+ >;
+ tx-num-evt = <32>;
+ rx-num-evt = <32>;
+};
--
2.0.2
Peter Ujfalusi
2014-08-01 06:13:29 UTC
Permalink
The board uses aic3106 for audio.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
---
arch/arm/boot/dts/da850-evm.dts | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
index 1422c311af4c..41715b495861 100644
--- a/arch/arm/boot/dts/da850-evm.dts
+++ b/arch/arm/boot/dts/da850-evm.dts
@@ -51,6 +51,19 @@
tps: tps at 48 {
reg = <0x48>;
};
+ tlv320aic3106: tlv320aic3106 at 18 {
+ compatible = "ti,tlv320aic3106";
+ reg = <0x18>;
+ status = "okay";
+
+ /* Regulators */
+ IOVDD-supply = <&vdcdc2_reg>;
+ /* Derived from VBAT: Baseboard 3.3V / 1.8V */
+ AVDD-supply = <&vbat>;
+ DRVDD-supply = <&vbat>;
+ DVDD-supply = <&vbat>;
+ };
+
};
wdt: wdt at 1c21000 {
status = "okay";
--
2.0.2
Peter Ujfalusi
2014-08-01 06:13:30 UTC
Permalink
The audio on the board is using McASP <-> tlv320aic3106 codec and we have
LineIn and LineOut jacks.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi at ti.com>
---
arch/arm/boot/dts/da850-evm.dts | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
index 41715b495861..4f935ad9f27b 100644
--- a/arch/arm/boot/dts/da850-evm.dts
+++ b/arch/arm/boot/dts/da850-evm.dts
@@ -52,6 +52,7 @@
reg = <0x48>;
};
tlv320aic3106: tlv320aic3106 at 18 {
+ #sound-dai-cells = <0>;
compatible = "ti,tlv320aic3106";
reg = <0x18>;
status = "okay";
@@ -142,6 +143,33 @@
regulator-max-microvolt = <5000000>;
regulator-boot-on;
};
+
+ sound {
+ compatible = "simple-audio-card";
+ simple-audio-card,name = "DA850/OMAP-L138 EVM";
+ simple-audio-card,widgets =
+ "Line", "Line In",
+ "Line", "Line Out";
+ simple-audio-card,routing =
+ "LINE1L", "Line In",
+ "LINE1R", "Line In",
+ "Line Out", "LLOUT",
+ "Line Out", "RLOUT";
+ simple-audio-card,format = "dsp_b";
+ simple-audio-card,bitclock-master = <&link0_codec>;
+ simple-audio-card,frame-master = <&link0_codec>;
+ simple-audio-card,bitclock-inversion;
+
+ simple-audio-card,cpu {
+ sound-dai = <&mcasp0>;
+ system-clock-frequency = <24576000>;
+ };
+
+ link0_codec: simple-audio-card,codec {
+ sound-dai = <&tlv320aic3106>;
+ system-clock-frequency = <24576000>;
+ };
+ };
};

/include/ "tps6507x.dtsi"
@@ -197,6 +225,7 @@
};

&mcasp0 {
+ #sound-dai-cells = <0>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&mcasp0_pins>;
--
2.0.2
Sekhar Nori
2014-08-26 10:24:41 UTC
Permalink
Post by Peter Ujfalusi
Hi,
- The edma patches has been taken by Vinod, they should be in linux-next soon.
I assume all of these 6 patches are meant to go through ARM SoC. I have
applied all of them for v3.18.
Post by Peter Ujfalusi
The following series will enable audio via simple card on the board when booted
with DT.
Thanks for doing this.

Regards,
Sekhar
Sekhar Nori
2014-08-26 11:52:08 UTC
Permalink
Post by Sekhar Nori
Post by Peter Ujfalusi
Hi,
- The edma patches has been taken by Vinod, they should be in linux-next soon.
I assume all of these 6 patches are meant to go through ARM SoC. I have
applied all of them for v3.18.
Post by Peter Ujfalusi
The following series will enable audio via simple card on the board when booted
with DT.
Thanks for doing this.
Also tested audio playback and record on DA850 EVM. Works great!

Thanks,
Sekhar

Loading...