ASoC/ARM: tegra: apalis/colibri t30: sgtl5000 audio
Subsystems (5)
v3 cover ASoC/ARM: tegra: apalis/colibri t30: sgtl5000 audio
This series adds/integrates Freescale SGTL5000 analogue audio codec support.
Changes in v3:
- Revert to not using simple-audio-card being incompatible with tegra.
- Rebased to for-next.
Changes in v2:
- Using simple-audio-card as suggested by Fabio.
Marcel Ziswiler (3):
ASoC: tegra: add tegra sgtl5000 machine driver
ARM: tegra: apalis/colibri t30: integrate audio support
ARM: tegra: enable sgtl5000 audio
.../bindings/sound/nvidia,tegra-audio-sgtl5000.txt | 45 +++++ arch/arm/boot/dts/tegra30-apalis.dtsi | 49 +++++ arch/arm/boot/dts/tegra30-colibri.dtsi | 49 +++++ arch/arm/configs/tegra_defconfig | 1 + sound/soc/tegra/Kconfig | 10 + sound/soc/tegra/Makefile | 2 + sound/soc/tegra/tegra_sgtl5000.c | 216 +++++++++++++++++++++ 7 files changed, 372 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-sgtl5000.txt create mode 100644 sound/soc/tegra/tegra_sgtl5000.c
Signature · 1 line
1.9.3
PATCH v3 1/3 ASoC: tegra: add tegra sgtl5000 machine driver
This binding and driver describe/support playback to headphones, and capture from line-in and microphone.
This driver is useful for the Toradex Apalis T30 and Colibri T30 modules.
---
Changes in v3:
- Revert to not using simple-audio-card being incompatible with tegra.
- Rebased to for-next.
Changes in v2:
- Using simple-audio-card as suggested by Fabio.
.../bindings/sound/nvidia,tegra-audio-sgtl5000.txt | 45 +++++ sound/soc/tegra/Kconfig | 10 + sound/soc/tegra/Makefile | 2 + sound/soc/tegra/tegra_sgtl5000.c | 216 +++++++++++++++++++++ 4 files changed, 273 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-sgtl5000.txt create mode 100644 sound/soc/tegra/tegra_sgtl5000.c
Documentation/devicetree/bindings/sound/nvidia,tegra-audio-sgtl5000.txt new file +45 -0
@@ -0,0 +1,45 @@ +NVIDIA Tegra audio complex, with SGTL5000 CODEC + +Required properties: +- compatible : "nvidia,tegra-audio-sgtl5000" +- clocks : Must contain an entry for each entry in clock-names. + See ../clocks/clock-bindings.txt for details. +- clock-names : Must include the following entries: + - pll_a + - pll_a_out0 + - mclk (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) +- nvidia,model : The user-visible name of this sound complex. +- nvidia,audio-routing : A list of the connections between audio components. + Each entry is a pair of strings, the first being the connection's sink, + the second being the connection's source. Valid names for sources and + sinks are the SGTL5000's pins (as documented in its binding), and the jacks + on the board: + + * Headphones + * Line-in Jack + * Mic Jack + +- nvidia,i2s-controller : The phandle of the Tegra I2S controller that's + connected to the CODEC. +- nvidia,audio-codec : The phandle of the SGTL5000 audio codec. + +Example: + +sound { + compatible = "toradex,tegra-audio-sgtl5000-apalis_t30", + "nvidia,tegra-audio-sgtl5000"; + nvidia,model = "Toradex Apalis T30"; + + nvidia,audio-routing = + "Headphone Jack", "HP_OUT", + "LINE_IN", "Line In Jack", + "MIC_IN", "Mic Jack"; + + nvidia,i2s-controller = <&tegra_i2s2>; + nvidia,audio-codec = <&sgtl5000>; + + clocks = <&tegra_car TEGRA30_CLK_PLL_A>, + <&tegra_car TEGRA30_CLK_PLL_A_OUT0>, + <&tegra_car TEGRA30_CLK_EXTERN1>; + clock-names = "pll_a", "pll_a_out0", "mclk"; +};
sound/soc/tegra/Kconfig +10 -0
@@ -128,3 +128,13 @@ config SND_SOC_TEGRA_MAX98090 help Say Y or M here if you want to add support for SoC audio on Tegra boards using the MAX98090 codec, such as Venice2. + +config SND_SOC_TEGRA_SGTL5000 + tristate "SoC Audio support for Tegra boards using a SGTL5000 codec" + depends on SND_SOC_TEGRA && I2C && GPIOLIB + select SND_SOC_TEGRA20_I2S if ARCH_TEGRA_2x_SOC + select SND_SOC_TEGRA30_I2S if ARCH_TEGRA_3x_SOC + select SND_SOC_SGTL5000 + help + Say Y or M here if you want to add support for SoC audio on Tegra + boards using the SGTL5000 codec, such as Apalis/Colibri T30.
sound/soc/tegra/Makefile +2 -0
@@ -25,6 +25,7 @@ snd-soc-tegra-wm9712-objs := tegra_wm9712.o snd-soc-tegra-trimslice-objs := trimslice.o snd-soc-tegra-alc5632-objs := tegra_alc5632.o snd-soc-tegra-max98090-objs := tegra_max98090.o +snd-soc-tegra-sgtl5000-objs := tegra_sgtl5000.o obj-$(CONFIG_SND_SOC_TEGRA_RT5640) += snd-soc-tegra-rt5640.o obj-$(CONFIG_SND_SOC_TEGRA_WM8753) += snd-soc-tegra-wm8753.o
@@ -33,3 +34,4 @@ obj-$(CONFIG_SND_SOC_TEGRA_WM9712) += snd-soc-tegra-wm9712.o obj-$(CONFIG_SND_SOC_TEGRA_TRIMSLICE) += snd-soc-tegra-trimslice.o obj-$(CONFIG_SND_SOC_TEGRA_ALC5632) += snd-soc-tegra-alc5632.o obj-$(CONFIG_SND_SOC_TEGRA_MAX98090) += snd-soc-tegra-max98090.o +obj-$(CONFIG_SND_SOC_TEGRA_SGTL5000) += snd-soc-tegra-sgtl5000.o
sound/soc/tegra/tegra_sgtl5000.c new file +216 -0
216 lines not on this page · raw message
Signature · 1 line
1.9.3
Mark Brown
maintainerRe: [PATCH v3 1/3] ASoC: tegra: add tegra sgtl5000 machine driver
Quoted 11 lines · Marcel Ziswiler
This binding and driver describe/support playback to headphones, and capture from line-in and microphone.
This driver is useful for the Toradex Apalis T30 and Colibri T30 modules.
Signed-off-by Marcel Ziswiler <[email protected]>Reviewed-by Stephen Warren <[email protected]>---
Changes in v3:
- Revert to not using simple-audio-card being incompatible with tegra.
- Rebased to for-next.
I can't help but think that't there's still room for a Tegra simple card
here, there doesn't seem to be anything particularly CODEC specific
about the driver here - it *could* use simple-card were it not for the
CPU side. This also seems like a specific example of the same problem
we see with supporting DPCM in simple-card, we need a way for CPUs to
be able to say that they need some general setup that covers the CPU
internal configuration.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141007/f251941f/attachment.sig>
PATCH v3 2/3 ARM: tegra: apalis/colibri t30: integrate audio support
In reply to Marcel ZiswilerIntegrate Freescale SGTL5000 analogue audio codec support.
---
Changes in v3:
- Revert to not using simple-audio-card being incompatible with tegra.
- Rebased to for-next.
Changes in v2:
- Using simple-audio-card as suggested by Fabio.
arch/arm/boot/dts/tegra30-apalis.dtsi | 49 ++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/tegra30-colibri.dtsi | 49 ++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+)
arch/arm/boot/dts/tegra30-apalis.dtsi +49 -0
@@ -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,15 @@ status = "okay"; clock-frequency = <100000>; + /* SGTL5000 audio codec */ + sgtl5000: codec@0a { + 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 +662,12 @@ nvidia,sys-clock-req-active-high; }; + ahub@70080000 { + i2s@70080500 { + status = "okay"; + }; + }; + sdhci@78000600 { status = "okay"; bus-width = <8>;
@@ -684,4 +717,20 @@ regulator-always-on; }; }; + + sound { + compatible = "toradex,tegra-audio-sgtl5000-apalis_t30", + "nvidia,tegra-audio-sgtl5000"; + nvidia,model = "Toradex Apalis T30"; + nvidia,audio-routing = + "Headphone Jack", "HP_OUT", + "LINE_IN", "Line In Jack", + "MIC_IN", "Mic Jack"; + nvidia,i2s-controller = <&tegra_i2s2>; + nvidia,audio-codec = <&sgtl5000>; + clocks = <&tegra_car TEGRA30_CLK_PLL_A>, + <&tegra_car TEGRA30_CLK_PLL_A_OUT0>, + <&tegra_car TEGRA30_CLK_EXTERN1>; + clock-names = "pll_a", "pll_a_out0", "mclk"; + }; };
arch/arm/boot/dts/tegra30-colibri.dtsi +49 -0
71 lines not on this page · raw message
Signature · 1 line
1.9.3
PATCH v3 3/3 ARM: tegra: enable sgtl5000 audio
In reply to Marcel ZiswilerThe NVIDIA Tegra 3 based Apalis T30 and Colibri T30 modules contain a Freescale SGTL5000 analogue audio codec.
---
Changes in v3:
- Revert to not using simple-audio-card being incompatible with tegra.
- Rebased to for-next.
Changes in v2:
- Using simple-audio-card as suggested by Fabio.
arch/arm/configs/tegra_defconfig | 1 + 1 file changed, 1 insertion(+)
arch/arm/configs/tegra_defconfig +1 -0
@@ -210,6 +210,7 @@ CONFIG_SND_SOC_TEGRA_WM8903=y CONFIG_SND_SOC_TEGRA_TRIMSLICE=y CONFIG_SND_SOC_TEGRA_ALC5632=y CONFIG_SND_SOC_TEGRA_MAX98090=y +CONFIG_SND_SOC_TEGRA_SGTL5000=y CONFIG_USB=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_EHCI_HCD=y
Signature · 1 line
1.9.3