From 06b57f1d9ea7b495af4b3e3b4372e5a4ebc1f7d9 Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Fri, 1 Aug 2014 09:13:25 +0300 Subject: [PATCH 1/6] ARM: davinci: da8xx-dt: add OF_DEV_AUXDATA entry for mcasp0 Add OF_DEV_AUXDATA for mcasp to be able to use clocks. Signed-off-by: Peter Ujfalusi Signed-off-by: Sekhar Nori --- 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), {} }; From ee766e4d0712e510898e4413fd968f8cdb450bcf Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Fri, 1 Aug 2014 09:13:26 +0300 Subject: [PATCH 2/6] ARM: DTS: da850: Add node for edma0 Add DT node for edma0. Signed-off-by: Peter Ujfalusi Signed-off-by: Sekhar Nori --- 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 @@ mii_pins: pinmux_mii_pins { }; }; + edma0: edma@01c00000 { + compatible = "ti,edma3"; + reg = <0x0 0x10000>; + interrupts = <11 13 12>; + #dma-cells = <1>; + }; serial0: serial@1c42000 { compatible = "ns16550a"; reg = <0x42000 0x100>; From db74904eb84c6ad3bde17ccd9d7ee1e2a7822ed9 Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Fri, 1 Aug 2014 09:13:27 +0300 Subject: [PATCH 3/6] ARM: DTS: da850: Add node for McASP Node for mcasp0 Signed-off-by: Peter Ujfalusi Signed-off-by: Sekhar Nori --- 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 @@ gpio: gpio@1e26000 { ti,davinci-gpio-unbanked = <0>; status = "disabled"; }; + + mcasp0: mcasp@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@62000000 { compatible = "ti,davinci-nand"; From 4ec582e924825e649ca4cdc1fb9eac0b97c75d60 Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Fri, 1 Aug 2014 09:13:28 +0300 Subject: [PATCH 4/6] ARM: DTS: da850-evm: Enable McASP via DT boot Add pinctrl nodes for the McASP0 pins and configure McASP to the desired mode for the board. Signed-off-by: Peter Ujfalusi Signed-off-by: Sekhar Nori --- 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@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@1c42000 { status = "okay"; @@ -170,3 +182,21 @@ ldo2_reg: regulator@4 { }; }; }; + +&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>; +}; From 204a87ed4bf80257ed89fd1647628d6b05545ad0 Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Fri, 1 Aug 2014 09:13:29 +0300 Subject: [PATCH 5/6] ARM: DTS: da850-evm: Add node for tlv320aic3106 codec The board uses aic3106 for audio. Signed-off-by: Peter Ujfalusi Signed-off-by: Sekhar Nori --- 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 @@ i2c0: i2c@1c22000 { tps: tps@48 { reg = <0x48>; }; + tlv320aic3106: tlv320aic3106@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@1c21000 { status = "okay"; From 3f526696e7840239844fc7ff9b5cf014d7192c42 Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Fri, 1 Aug 2014 09:13:30 +0300 Subject: [PATCH 6/6] ARM: DTS: da850-evm: Enable audio via simple-card The audio on the board is using McASP <-> tlv320aic3106 codec and we have LineIn and LineOut jacks. Signed-off-by: Peter Ujfalusi Signed-off-by: Sekhar Nori --- 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 @@ tps: tps@48 { reg = <0x48>; }; tlv320aic3106: tlv320aic3106@18 { + #sound-dai-cells = <0>; compatible = "ti,tlv320aic3106"; reg = <0x18>; status = "okay"; @@ -142,6 +143,33 @@ vbat: fixedregulator@0 { 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 @@ ldo2_reg: regulator@4 { }; &mcasp0 { + #sound-dai-cells = <0>; status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&mcasp0_pins>;