Message ID | 1414590424-25585-3-git-send-email-d.lavnikevich@sam-solutions.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Oct 29, 2014 at 04:47:03PM +0300, Dmitry Lavnikevich wrote: > Audio on phyFLEX boards is presented by tlv320aic3007 codec connected > over SSI interface. > > Signed-off-by: Dmitry Lavnikevich <d.lavnikevich@sam-solutions.com> > --- > arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi | 100 ++++++++++++++++++++++++++- > arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi | 15 ++++ > 2 files changed, 113 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi b/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi > index f1bdcae5b97d..cb8f1b6ec083 100644 > --- a/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi > +++ b/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi > @@ -9,10 +9,73 @@ > * 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>; > + }; > + }; > + > }; > > &fec { > @@ -27,12 +90,45 @@ > status = "okay"; > }; > > +&ssi2 { > + status = "okay"; > +}; > + > +&audmux { Please sort the nodes alphabetically in label name. > + 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 { Have a new line between nodes. > + fsl,audmux-port = <4>; > + fsl,port-config = < > + 0x00000000 > + IMX_AUDMUX_V2_PDCR_RXDSEL(1) > + >; > + }; > +}; > + > &i2c2 { > status = "okay"; > > - tlv320@18 { > - compatible = "ti,tlv320aic3x"; > + codec: tlv320@18 { > + compatible = "ti,tlv320aic3007"; Both compatible strings are documented in Documentation/devicetree/bindings/sound/tlv320aic3x.txt. But I hope this change will not cause any DT compatible issues. > + #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 { > diff --git a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi > index aa2275671d2c..d7f34664e008 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 { Please sort the pinctrl entries alphabetically. Shawn > + fsl,pins = < > + MX6QDL_PAD_DISP0_DAT16__AUD5_TXC 0x130b0 > + MX6QDL_PAD_DISP0_DAT18__AUD5_TXFS 0x130b0 > + MX6QDL_PAD_DISP0_DAT17__AUD5_TXD 0x110b0 > + 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 majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/
> On 3Nov, 2014, at 09:14, Shawn Guo <shawn.guo@linaro.org> wrote: > On Wed, Oct 29, 2014 at 04:47:03PM +0300, Dmitry Lavnikevich wrote: >> + fsl,audmux-port = <4>; >> + fsl,port-config = < >> + 0x00000000 >> + IMX_AUDMUX_V2_PDCR_RXDSEL(1) >> + >; >> + }; >> +}; >> + >> &i2c2 { >> status = "okay"; >> >> - tlv320@18 { >> - compatible = "ti,tlv320aic3x"; >> + codec: tlv320@18 { >> + compatible = "ti,tlv320aic3007"; > > Both compatible strings are documented in > Documentation/devicetree/bindings/sound/tlv320aic3x.txt. But I hope > this change will not cause any DT compatible issues. This change is needed because unlike other tlv320aic3x-codecs tlv320aic3007 has D-class amplifier which is controlled by set of registers that in case of 3x-codecs control mono output. I will correct patches according to other notes and soon will resend patchset.
diff --git a/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi b/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi index f1bdcae5b97d..cb8f1b6ec083 100644 --- a/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi +++ b/arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi @@ -9,10 +9,73 @@ * 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>; + }; + }; + }; &fec { @@ -27,12 +90,45 @@ status = "okay"; }; +&ssi2 { + status = "okay"; +}; + +&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) + >; + }; +}; + &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 { diff --git a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi index aa2275671d2c..d7f34664e008 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_DAT18__AUD5_TXFS 0x130b0 + MX6QDL_PAD_DISP0_DAT17__AUD5_TXD 0x110b0 + MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x130b0 + >; + }; }; };
Audio on phyFLEX boards is presented by tlv320aic3007 codec connected over SSI interface. Signed-off-by: Dmitry Lavnikevich <d.lavnikevich@sam-solutions.com> --- arch/arm/boot/dts/imx6qdl-phytec-pbab01.dtsi | 100 ++++++++++++++++++++++++++- arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi | 15 ++++ 2 files changed, 113 insertions(+), 2 deletions(-)