Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8fa91c8e authored by Dmitry Lavnikevich's avatar Dmitry Lavnikevich Committed by Shawn Guo
Browse files

ARM: dts: pbab01: enable I2S audio on phyFLEX-i.MX6 boards



Audio on phyFLEX boards is presented by tlv320aic3007 codec connected
over SSI interface.

Signed-off-by: default avatarDmitry Lavnikevich <d.lavnikevich@sam-solutions.com>
Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
parent d76fab80
Loading
Loading
Loading
Loading
+99 −2
Original line number Diff line number Diff line
@@ -9,10 +9,96 @@
 * http://www.gnu.org/copyleft/gpl.html
 */

#include <dt-bindings/sound/fsl-imx-audmux.h>

/ {
	chosen {
		linux,stdout-path = &uart4;
	};

	regulators {
		sound_1v8: regulator@2 {
			compatible = "regulator-fixed";
			reg = <2>;
			regulator-name = "i2s-audio-1v8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		sound_3v3: regulator@3 {
			compatible = "regulator-fixed";
			reg = <3>;
			regulator-name = "i2s-audio-3v3";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
		};
	};

	tlv320_mclk: oscillator {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <19200000>;
		clock-output-names = "tlv320-mclk";
	};

	sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "OnboardTLV320AIC3007";
		simple-audio-card,format = "i2s";
		simple-audio-card,bitclock-master = <&dailink_master>;
		simple-audio-card,frame-master = <&dailink_master>;
		simple-audio-card,widgets =
			"Microphone", "Mic Jack",
			"Line", "Line In",
			"Line", "Line Out",
			"Speaker", "Speaker",
			"Headphone", "Headphone Jack";
		simple-audio-card,routing =
			"Line Out", "LLOUT",
			"Line Out", "RLOUT",
			"Speaker", "SPOP",
			"Speaker", "SPOM",
			"Headphone Jack", "HPLOUT",
			"Headphone Jack", "HPROUT",
			"MIC3L", "Mic Jack",
			"MIC3R", "Mic Jack",
			"Mic Jack", "Mic Bias",
			"LINE1L", "Line In",
			"LINE1R", "Line In";

		simple-audio-card,cpu {
			sound-dai = <&ssi2>;
		};

		dailink_master: simple-audio-card,codec {
			sound-dai = <&codec>;
			clocks = <&tlv320_mclk>;
		};
	};

};

&audmux {
	status = "okay";

	ssi2 {
		fsl,audmux-port = <1>;
		fsl,port-config = <
			(IMX_AUDMUX_V2_PTCR_TFSDIR |
			IMX_AUDMUX_V2_PTCR_TFSEL(4) |
			IMX_AUDMUX_V2_PTCR_TCLKDIR |
			IMX_AUDMUX_V2_PTCR_TCSEL(4))
			IMX_AUDMUX_V2_PDCR_RXDSEL(4)
		>;
	};

	pins5 {
		fsl,audmux-port = <4>;
		fsl,port-config = <
			0x00000000
			IMX_AUDMUX_V2_PDCR_RXDSEL(1)
		>;
	};
};

&fec {
@@ -30,9 +116,16 @@
&i2c2 {
	status = "okay";

	tlv320@18 {
		compatible = "ti,tlv320aic3x";
	codec: tlv320@18 {
		compatible = "ti,tlv320aic3007";
		#sound-dai-cells = <0>;
		reg = <0x18>;
		ai3x-micbias-vg = <2>;

		AVDD-supply = <&sound_3v3>;
		IOVDD-supply = <&sound_3v3>;
		DRVDD-supply = <&sound_3v3>;
		DVDD-supply = <&sound_1v8>;
	};

	stmpe@41 {
@@ -55,6 +148,10 @@
	status = "okay";
};

&ssi2 {
	status = "okay";
};

&uart3 {
	status = "okay";
};
+15 −0
Original line number Diff line number Diff line
@@ -58,6 +58,12 @@
	};
};

&audmux {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_audmux>;
	status = "disabled";
};

&ecspi3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi3>;
@@ -319,6 +325,15 @@
				MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000
			>;
		};

		pinctrl_audmux: audmuxgrp {
			fsl,pins = <
				MX6QDL_PAD_DISP0_DAT16__AUD5_TXC	0x130b0
				MX6QDL_PAD_DISP0_DAT17__AUD5_TXD	0x110b0
				MX6QDL_PAD_DISP0_DAT18__AUD5_TXFS	0x130b0
				MX6QDL_PAD_DISP0_DAT19__AUD5_RXD	0x130b0
			>;
		};
	};
};