diff mbox

ARM: dts: am335x-wega: Add audio support

Message ID 1470841935-14190-1-git-send-email-s.mueller-klieser@phytec.de (mailing list archive)
State New, archived
Headers show

Commit Message

Stefan Müller-Klieser Aug. 10, 2016, 3:12 p.m. UTC
The wega board has a TLV320AIC3007 connected via McASP0. In the default
configuration, no external crystal is mounted. We run a system clock of
25 MHz, so we use the audio codec PLL for audio clock generation.

Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de>
---
 arch/arm/boot/dts/am335x-wega.dtsi | 62 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

Comments

Peter Ujfalusi Aug. 11, 2016, 9:25 a.m. UTC | #1
On 08/10/16 18:12, Stefan Müller-Klieser wrote:
> The wega board has a TLV320AIC3007 connected via McASP0. In the default
> configuration, no external crystal is mounted. We run a system clock of
> 25 MHz, so we use the audio codec PLL for audio clock generation.

It is great that the "ti,da830-evm-audio" works for you. I hope I will have
time soon to work on the McASP driver's CCF support in the near future.

Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com>

> Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de>
> ---
>  arch/arm/boot/dts/am335x-wega.dtsi | 62 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 62 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/am335x-wega.dtsi b/arch/arm/boot/dts/am335x-wega.dtsi
> index 282f6d4..7f5f8ed 100644
> --- a/arch/arm/boot/dts/am335x-wega.dtsi
> +++ b/arch/arm/boot/dts/am335x-wega.dtsi
> @@ -11,6 +11,10 @@
>  	model = "Phytec AM335x phyBOARD-WEGA";
>  	compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx";
>  
> +	sound: sound_iface {
> +		compatible = "ti,da830-evm-audio";
> +	};
> +
>  	regulators {
>  		compatible = "simple-bus";
>  
> @@ -24,6 +28,58 @@
>  	};
>  };
>  
> +/* Audio */
> +&am33xx_pinmux {
> +	mcasp0_pins: pinmux_mcasp0 {
> +		pinctrl-single,pins = <
> +			AM33XX_IOPAD(0x9AC, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_ahclkx.mcasp0_ahclkx */
> +			AM33XX_IOPAD(0x990, PIN_INPUT_PULLDOWN | MUX_MODE0)  /* mcasp0_aclkx.mcasp0_aclkx */
> +			AM33XX_IOPAD(0x994, PIN_INPUT_PULLDOWN | MUX_MODE0)  /* mcasp0_fsx.mcasp0_fsx */
> +			AM33XX_IOPAD(0x998, PIN_INPUT_PULLDOWN | MUX_MODE0)  /* mcasp0_axr0.mcasp0_axr0 */
> +			AM33XX_IOPAD(0x9A8, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr1.mcasp0_axr1 */
> +		>;
> +	};
> +};
> +
> +&i2c0 {
> +	tlv320aic3007: tlv320aic3007@18 {
> +		compatible = "ti,tlv320aic3007";
> +		reg = <0x18>;
> +		AVDD-supply = <&vcc3v3>;
> +		IOVDD-supply = <&vcc3v3>;
> +		DRVDD-supply = <&vcc3v3>;
> +		DVDD-supply = <&vdig1_reg>;
> +		status = "okay";
> +	};
> +};
> +
> +&mcasp0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&mcasp0_pins>;
> +	op-mode = <0>; /* DAVINCI_MCASP_IIS_MODE */
> +	tdm-slots = <2>;
> +	serial-dir = <
> +		2 1 0 0 /* # 0: INACTIVE, 1: TX, 2: RX */
> +	>;
> +	tx-num-evt = <16>;
> +	rt-num-evt = <16>;
> +	status = "okay";
> +};
> +
> +&sound {
> +	ti,model = "AM335x-Wega";
> +	ti,audio-codec = <&tlv320aic3007>;
> +	ti,mcasp-controller = <&mcasp0>;
> +	ti,audio-routing =
> +		"Line Out",		"LLOUT",
> +		"Line Out",		"RLOUT",
> +		"LINE1L",		"Line In",
> +		"LINE1R",		"Line In";
> +	clocks = <&mcasp0_fck>;
> +	clock-names = "mclk";
> +	status = "okay";
> +};
> +
>  /* CAN Busses */
>  &am33xx_pinmux {
>  	dcan1_pins: pinmux_dcan1 {
> @@ -99,6 +155,12 @@
>  	status = "okay";
>  };
>  
> +/* Power */
> +&vdig1_reg {
> +	regulator-boot-on;
> +	regulator-always-on;
> +};
> +
>  /* UARTs */
>  &am33xx_pinmux {
>  	uart0_pins: pinmux_uart0 {
>
Tony Lindgren Aug. 26, 2016, 3:24 p.m. UTC | #2
* Peter Ujfalusi <peter.ujfalusi@ti.com> [160811 02:26]:
> On 08/10/16 18:12, Stefan Müller-Klieser wrote:
> > The wega board has a TLV320AIC3007 connected via McASP0. In the default
> > configuration, no external crystal is mounted. We run a system clock of
> > 25 MHz, so we use the audio codec PLL for audio clock generation.
> 
> It is great that the "ti,da830-evm-audio" works for you. I hope I will have
> time soon to work on the McASP driver's CCF support in the near future.
> 
> Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com>

Applying into omap-for-v4.9/dt thanks.

Tony
diff mbox

Patch

diff --git a/arch/arm/boot/dts/am335x-wega.dtsi b/arch/arm/boot/dts/am335x-wega.dtsi
index 282f6d4..7f5f8ed 100644
--- a/arch/arm/boot/dts/am335x-wega.dtsi
+++ b/arch/arm/boot/dts/am335x-wega.dtsi
@@ -11,6 +11,10 @@ 
 	model = "Phytec AM335x phyBOARD-WEGA";
 	compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx";
 
+	sound: sound_iface {
+		compatible = "ti,da830-evm-audio";
+	};
+
 	regulators {
 		compatible = "simple-bus";
 
@@ -24,6 +28,58 @@ 
 	};
 };
 
+/* Audio */
+&am33xx_pinmux {
+	mcasp0_pins: pinmux_mcasp0 {
+		pinctrl-single,pins = <
+			AM33XX_IOPAD(0x9AC, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_ahclkx.mcasp0_ahclkx */
+			AM33XX_IOPAD(0x990, PIN_INPUT_PULLDOWN | MUX_MODE0)  /* mcasp0_aclkx.mcasp0_aclkx */
+			AM33XX_IOPAD(0x994, PIN_INPUT_PULLDOWN | MUX_MODE0)  /* mcasp0_fsx.mcasp0_fsx */
+			AM33XX_IOPAD(0x998, PIN_INPUT_PULLDOWN | MUX_MODE0)  /* mcasp0_axr0.mcasp0_axr0 */
+			AM33XX_IOPAD(0x9A8, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr1.mcasp0_axr1 */
+		>;
+	};
+};
+
+&i2c0 {
+	tlv320aic3007: tlv320aic3007@18 {
+		compatible = "ti,tlv320aic3007";
+		reg = <0x18>;
+		AVDD-supply = <&vcc3v3>;
+		IOVDD-supply = <&vcc3v3>;
+		DRVDD-supply = <&vcc3v3>;
+		DVDD-supply = <&vdig1_reg>;
+		status = "okay";
+	};
+};
+
+&mcasp0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mcasp0_pins>;
+	op-mode = <0>; /* DAVINCI_MCASP_IIS_MODE */
+	tdm-slots = <2>;
+	serial-dir = <
+		2 1 0 0 /* # 0: INACTIVE, 1: TX, 2: RX */
+	>;
+	tx-num-evt = <16>;
+	rt-num-evt = <16>;
+	status = "okay";
+};
+
+&sound {
+	ti,model = "AM335x-Wega";
+	ti,audio-codec = <&tlv320aic3007>;
+	ti,mcasp-controller = <&mcasp0>;
+	ti,audio-routing =
+		"Line Out",		"LLOUT",
+		"Line Out",		"RLOUT",
+		"LINE1L",		"Line In",
+		"LINE1R",		"Line In";
+	clocks = <&mcasp0_fck>;
+	clock-names = "mclk";
+	status = "okay";
+};
+
 /* CAN Busses */
 &am33xx_pinmux {
 	dcan1_pins: pinmux_dcan1 {
@@ -99,6 +155,12 @@ 
 	status = "okay";
 };
 
+/* Power */
+&vdig1_reg {
+	regulator-boot-on;
+	regulator-always-on;
+};
+
 /* UARTs */
 &am33xx_pinmux {
 	uart0_pins: pinmux_uart0 {