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

Signed-off-by: Dmitry Lavnikevich <d.lavnikev...@sam-solutions.com>
---
 arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi | 101 ++++++++++++++++++++++++++-
 arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi |  15 ++++
 2 files changed, 114 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi 
b/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi
index f1bdcae..6b2c892 100644
--- a/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi
@@ -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";
 };
diff --git a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi 
b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
index aa22756..ab3b1f9 100644
--- a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
@@ -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
+                       >;
+               };
        };
 };
 
-- 
2.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to