Message ID | 20181122102325.29495-9-wens@csie.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for audiocodec in Allwinner A64 | expand |
On Thursday, November 22, 2018 2:23:25 AM PST Chen-Yu Tsai wrote: > From: Vasily Khoruzhick <anarsoul@gmail.com> > > The Pinebook has a headphone jack tied to the HP headphone output of > the SoC, and internal speakers connected to the LINEOUT of the SoC, > through a standalone amplifier. > > This commit enables I2S, digital and analog parts of audio codec on > Pinebook, along with a device node for the external amplifier. > > Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> > [wens@csie.org: dropped headphone_amp; added headphone amp regulator supply; > fixed speaker_amp node name and sound-name-prefix name] > Signed-off-by: Chen-Yu Tsai <wens@csie.org> > --- > .../dts/allwinner/sun50i-a64-pinebook.dts | 49 +++++++++++++++++++ > 1 file changed, 49 insertions(+) > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts > b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts index > ec537c529726..b6d0b926a2ff 100644 > --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts > +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts > @@ -74,6 +74,32 @@ > compatible = "mmc-pwrseq-simple"; > reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ > }; > + > + speaker_amp: audio-amplifier { > + compatible = "simple-audio-amplifier"; > + /* > + * TODO This is actually a fixed regulator controlled by > + * the GPIO line on the PMIC. This should be corrected > + * once GPIO support is added for this PMIC. > + */ > + VCC-supply = <®_ldo_io0>; > + enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ > + sound-name-prefix = "Speaker Amp"; > + }; > + > +}; > + > +&codec { > + hpvcc-supply = <®_eldo1>; It should be a property of codec_analog, not codec > + status = "okay"; > +}; > + > +&codec_analog { > + status = "okay"; > +}; > + > +&dai { > + status = "okay"; > }; > > &ehci0 { > @@ -277,6 +303,29 @@ > vcc-hdmi-supply = <®_dldo1>; > }; > > +&sound { > + status = "okay"; > + simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; > + simple-audio-card,widgets = "Microphone", "Internal Microphone Left", > + "Microphone", "Internal Microphone Right", > + "Headphone", "Headphone Jack", > + "Speaker", "Internal Speaker"; > + simple-audio-card,routing = > + "Left DAC", "AIF1 Slot 0 Left", > + "Right DAC", "AIF1 Slot 0 Right", > + "Speaker Amp INL", "LINEOUT", > + "Speaker Amp INR", "LINEOUT", > + "Internal Speaker", "Speaker Amp OUTL", > + "Internal Speaker", "Speaker Amp OUTR", > + "Headphone Jack", "HP", > + "AIF1 Slot 0 Left ADC", "Left ADC", > + "AIF1 Slot 0 Right ADC", "Right ADC", > + "Internal Microphone Left", "MBIAS", > + "MIC1", "Internal Microphone Left", > + "Internal Microphone Right", "HBIAS", > + "MIC2", "Internal Microphone Right"; > +}; > + > &uart0 { > pinctrl-names = "default"; > pinctrl-0 = <&uart0_pb_pins>;
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts index ec537c529726..b6d0b926a2ff 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts @@ -74,6 +74,32 @@ compatible = "mmc-pwrseq-simple"; reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ }; + + speaker_amp: audio-amplifier { + compatible = "simple-audio-amplifier"; + /* + * TODO This is actually a fixed regulator controlled by + * the GPIO line on the PMIC. This should be corrected + * once GPIO support is added for this PMIC. + */ + VCC-supply = <®_ldo_io0>; + enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ + sound-name-prefix = "Speaker Amp"; + }; + +}; + +&codec { + hpvcc-supply = <®_eldo1>; + status = "okay"; +}; + +&codec_analog { + status = "okay"; +}; + +&dai { + status = "okay"; }; &ehci0 { @@ -277,6 +303,29 @@ vcc-hdmi-supply = <®_dldo1>; }; +&sound { + status = "okay"; + simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; + simple-audio-card,widgets = "Microphone", "Internal Microphone Left", + "Microphone", "Internal Microphone Right", + "Headphone", "Headphone Jack", + "Speaker", "Internal Speaker"; + simple-audio-card,routing = + "Left DAC", "AIF1 Slot 0 Left", + "Right DAC", "AIF1 Slot 0 Right", + "Speaker Amp INL", "LINEOUT", + "Speaker Amp INR", "LINEOUT", + "Internal Speaker", "Speaker Amp OUTL", + "Internal Speaker", "Speaker Amp OUTR", + "Headphone Jack", "HP", + "AIF1 Slot 0 Left ADC", "Left ADC", + "AIF1 Slot 0 Right ADC", "Right ADC", + "Internal Microphone Left", "MBIAS", + "MIC1", "Internal Microphone Left", + "Internal Microphone Right", "HBIAS", + "MIC2", "Internal Microphone Right"; +}; + &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pb_pins>;