Integrate Freescale SGTL5000 analogue audio codec support.

Signed-off-by: Marcel Ziswiler <mar...@ziswiler.com>
Reviewed-by: Stephen Warren <swar...@nvidia.com>
---
Changes in v2:
- Using simple-audio-card as suggested by Fabio.

 arch/arm/boot/dts/tegra30-apalis.dtsi  | 65 ++++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/tegra30-colibri.dtsi | 65 ++++++++++++++++++++++++++++++++++
 2 files changed, 130 insertions(+)

diff --git a/arch/arm/boot/dts/tegra30-apalis.dtsi 
b/arch/arm/boot/dts/tegra30-apalis.dtsi
index a5446cb..fa3bc92 100644
--- a/arch/arm/boot/dts/tegra30-apalis.dtsi
+++ b/arch/arm/boot/dts/tegra30-apalis.dtsi
@@ -47,6 +47,24 @@
                pinctrl-0 = <&state_default>;
 
                state_default: pinmux {
+                       /* Apalis Analogue Audio */
+                       clk1_out_pw4 {
+                               nvidia,pins = "clk1_out_pw4";
+                               nvidia,function = "extperiph1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+                       dap3_fs_pp0 {
+                               nvidia,pins =   "dap3_fs_pp0",
+                                               "dap3_sclk_pp3",
+                                               "dap3_din_pp1",
+                                               "dap3_dout_pp2";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                       };
+
                        /* Apalis BKL1_ON */
                        pv2 {
                                nvidia,pins = "pv2";
@@ -404,6 +422,16 @@
                status = "okay";
                clock-frequency = <100000>;
 
+               /* SGTL5000 audio codec */
+               sgtl5000: codec@0a {
+                       #sound-dai-cells = <0>;
+                       compatible = "fsl,sgtl5000";
+                       reg = <0x0a>;
+                       VDDA-supply = <&sys_3v3_reg>;
+                       VDDIO-supply = <&sys_3v3_reg>;
+                       clocks = <&tegra_car TEGRA30_CLK_EXTERN1>;
+               };
+
                pmic: tps65911@2d {
                        compatible = "ti,tps65911";
                        reg = <0x2d>;
@@ -635,6 +663,13 @@
                nvidia,sys-clock-req-active-high;
        };
 
+       ahub@70080000 {
+               i2s@70080500 {
+                       #sound-dai-cells = <0>;
+                       status = "okay";
+               };
+       };
+
        sdhci@78000600 {
                status = "okay";
                bus-width = <8>;
@@ -684,4 +719,34 @@
                        regulator-always-on;
                };
        };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,name = "Toradex Apalis T30";
+               simple-audio-card,routing =
+                       "Headphone Jack", "HP_OUT",
+                       "LINE_IN", "Line In Jack",
+                       "MIC_IN", "Microphone Jack";
+               simple-audio-card,widgets =
+                       "Headphone", "Headphone Jack",
+                       "Line In", "Line In Jack",
+                       "Microphone", "Microphone Jack";
+
+               simple-audio-card,codec {
+                       bitclock-master;
+                       clocks = <&tegra_car TEGRA30_CLK_EXTERN1>;
+                       frame-master;
+                       sound-dai = <&sgtl5000>;
+               };
+
+               simple-audio-card,cpu {
+                       bitclock-master;
+                       clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
+                                <&tegra_car TEGRA30_CLK_PLL_A_OUT0>;
+                       frame-master;
+                       master-clkdir-out;
+                       sound-dai = <&tegra_i2s2>;
+               };
+       };
 };
diff --git a/arch/arm/boot/dts/tegra30-colibri.dtsi 
b/arch/arm/boot/dts/tegra30-colibri.dtsi
index c4ed1be..1f97348 100644
--- a/arch/arm/boot/dts/tegra30-colibri.dtsi
+++ b/arch/arm/boot/dts/tegra30-colibri.dtsi
@@ -29,6 +29,24 @@
                pinctrl-0 = <&state_default>;
 
                state_default: pinmux {
+                       /* Colibri Analogue Audio */
+                       clk1_out_pw4 {
+                               nvidia,pins = "clk1_out_pw4";
+                               nvidia,function = "extperiph1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+                       dap3_fs_pp0 {
+                               nvidia,pins =   "dap3_fs_pp0",
+                                               "dap3_sclk_pp3",
+                                               "dap3_din_pp1",
+                                               "dap3_dout_pp2";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                       };
+
                        /* Colibri BL_ON */
                        pv2 {
                                nvidia,pins = "pv2";
@@ -182,6 +200,16 @@
                status = "okay";
                clock-frequency = <100000>;
 
+               /* SGTL5000 audio codec */
+               sgtl5000: codec@0a {
+                       #sound-dai-cells = <0>;
+                       compatible = "fsl,sgtl5000";
+                       reg = <0x0a>;
+                       VDDA-supply = <&sys_3v3_reg>;
+                       VDDIO-supply = <&sys_3v3_reg>;
+                       clocks = <&tegra_car TEGRA30_CLK_EXTERN1>;
+               };
+
                pmic: tps65911@2d {
                        compatible = "ti,tps65911";
                        reg = <0x2d>;
@@ -331,6 +359,13 @@
                nvidia,sys-clock-req-active-high;
        };
 
+       ahub@70080000 {
+               i2s@70080500 {
+                       #sound-dai-cells = <0>;
+                       status = "okay";
+               };
+       };
+
        emmc: sdhci@78000600 {
                status = "okay";
                bus-width = <8>;
@@ -383,4 +418,34 @@
                        regulator-always-on;
                };
        };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,name = "Toradex Colibri T30";
+               simple-audio-card,routing =
+                       "Headphone Jack", "HP_OUT",
+                       "LINE_IN", "Line In Jack",
+                       "MIC_IN", "Microphone Jack";
+               simple-audio-card,widgets =
+                       "Headphone", "Headphone Jack",
+                       "Line In", "Line In Jack",
+                       "Microphone", "Microphone Jack";
+
+               simple-audio-card,codec {
+                       bitclock-master;
+                       clocks = <&tegra_car TEGRA30_CLK_EXTERN1>;
+                       frame-master;
+                       sound-dai = <&sgtl5000>;
+               };
+
+               simple-audio-card,cpu {
+                       bitclock-master;
+                       clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
+                                <&tegra_car TEGRA30_CLK_PLL_A_OUT0>;
+                       frame-master;
+                       master-clkdir-out;
+                       sound-dai = <&tegra_i2s2>;
+               };
+       };
 };
-- 
1.9.3

--
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