Message ID | 20181108063929.29720-4-anarsoul@gmail.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | Add support for audiocodec in Allwinner A64 | expand |
On Thu, Nov 8, 2018 at 2:42 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: > > This commit enables I2S, digital and analog parts of audiocodec on > Pinebook > > Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> > --- > .../dts/allwinner/sun50i-a64-pinebook.dts | 42 +++++++++++++++++++ > 1 file changed, 42 insertions(+) > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts > index 77fac84797e9..73f171f4ba9b 100644 > --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts > +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts > @@ -64,6 +64,23 @@ > compatible = "mmc-pwrseq-simple"; > reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ > }; > + > + speaker_amp: speaker_amp { > + compatible = "simple-audio-amplifier"; > + enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ You might want to add a sound-name-prefix property. See Documentation/devicetree/bindings/sound/name-prefix.txt Also this should have a reference to its power supply regulator. > + }; > +}; > + > +&codec { > + status = "okay"; > +}; > + > +&codec_analog { > + status = "okay"; > +}; > + > +&dai { > + status = "okay"; > }; > > &ehci0 { > @@ -267,6 +284,31 @@ > vcc-hdmi-supply = <®_dldo1>; > }; > > +&sound { > + status = "okay"; > + simple-audio-card,widgets = "Microphone", "Internal Microphone Left", > + "Microphone", "Internal Microphone Right", > + "Headphone", "Headphone Jack", > + "Speaker", "Internal Speaker"; > + simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; > + simple-audio-card,routing = > + "Left DAC", "AIF1 Slot 0 Left", > + "Right DAC", "AIF1 Slot 0 Right", > + "INL", "LINEOUT", > + "INR", "LINEOUT", > + "Internal Speaker", "OUTL", > + "Internal Speaker", "OUTR", > + "Headphone Jack", "HP", > + "AIF1 Slot 0 Left ADC", "Left ADC", > + "AIF1 Slot 0 Right ADC", "Right ADC", > + "Left ADC", "ADC", > + "Right ADC", "ADC", > + "Internal Microphone Left", "MBIAS", > + "MIC1", "Internal Microphone Left", > + "Internal Microphone Right", "HBIAS", > + "MIC2", "Internal Microphone Right"; The schematics is missing the actual jack, but this looks to be correct. ChenYu > +}; > + > &uart0 { > pinctrl-names = "default"; > pinctrl-0 = <&uart0_pb_pins>; > -- > 2.19.1 >
On Wed, Nov 7, 2018 at 11:30 PM Chen-Yu Tsai <wens@csie.org> wrote: > > On Thu, Nov 8, 2018 at 2:42 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: > > > > This commit enables I2S, digital and analog parts of audiocodec on > > Pinebook > > > > Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> > > --- > > .../dts/allwinner/sun50i-a64-pinebook.dts | 42 +++++++++++++++++++ > > 1 file changed, 42 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts > > index 77fac84797e9..73f171f4ba9b 100644 > > --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts > > @@ -64,6 +64,23 @@ > > compatible = "mmc-pwrseq-simple"; > > reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ > > }; > > + > > + speaker_amp: speaker_amp { > > + compatible = "simple-audio-amplifier"; > > + enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ > > You might want to add a sound-name-prefix property. See No need, there's only speaker amplifier in Pinebook. > > Documentation/devicetree/bindings/sound/name-prefix.txt > > Also this should have a reference to its power supply regulator. It's powered from V5P0_USB according to schematics, which comes out of 5V BOOST USB HOST MODE POWER - and it's not controlled by software. So there's nothing to reference. > > > + }; > > +}; > > + > > +&codec { > > + status = "okay"; > > +}; > > + > > +&codec_analog { > > + status = "okay"; > > +}; > > + > > +&dai { > > + status = "okay"; > > }; > > > > &ehci0 { > > @@ -267,6 +284,31 @@ > > vcc-hdmi-supply = <®_dldo1>; > > }; > > > > +&sound { > > + status = "okay"; > > + simple-audio-card,widgets = "Microphone", "Internal Microphone Left", > > + "Microphone", "Internal Microphone Right", > > + "Headphone", "Headphone Jack", > > + "Speaker", "Internal Speaker"; > > + simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; > > + simple-audio-card,routing = > > + "Left DAC", "AIF1 Slot 0 Left", > > + "Right DAC", "AIF1 Slot 0 Right", > > + "INL", "LINEOUT", > > + "INR", "LINEOUT", > > + "Internal Speaker", "OUTL", > > + "Internal Speaker", "OUTR", > > + "Headphone Jack", "HP", > > + "AIF1 Slot 0 Left ADC", "Left ADC", > > + "AIF1 Slot 0 Right ADC", "Right ADC", > > + "Left ADC", "ADC", > > + "Right ADC", "ADC", > > + "Internal Microphone Left", "MBIAS", > > + "MIC1", "Internal Microphone Left", > > + "Internal Microphone Right", "HBIAS", > > + "MIC2", "Internal Microphone Right"; > > The schematics is missing the actual jack, but this looks to be correct. > > ChenYu > > > +}; > > + > > &uart0 { > > pinctrl-names = "default"; > > pinctrl-0 = <&uart0_pb_pins>; > > -- > > 2.19.1 > >
On Wed, Nov 7, 2018 at 11:30 PM Chen-Yu Tsai <wens@csie.org> wrote: > > + > > + speaker_amp: speaker_amp { > > + compatible = "simple-audio-amplifier"; > > + enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ > > You might want to add a sound-name-prefix property. See > > Documentation/devicetree/bindings/sound/name-prefix.txt > > Also this should have a reference to its power supply regulator. You're right, it should reference its power supply which should be a fixed regulator controlled via GPIO from AXP803. Unfortunately there's no AXP803 GPIO support yet and simple-audio-amplifier doesn't have regulator property. I have no time (and interest) to work on it in near future, so if anyone wants to pick it up - feel free to do so. Regards, Vasily
On Thu, Nov 15, 2018 at 1:48 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: > > On Wed, Nov 7, 2018 at 11:30 PM Chen-Yu Tsai <wens@csie.org> wrote: > > > + > > > + speaker_amp: speaker_amp { > > > + compatible = "simple-audio-amplifier"; > > > + enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ > > > > You might want to add a sound-name-prefix property. See > > > > Documentation/devicetree/bindings/sound/name-prefix.txt > > > > Also this should have a reference to its power supply regulator. > > You're right, it should reference its power supply which should be a > fixed regulator controlled via GPIO from AXP803. > > Unfortunately there's no AXP803 GPIO support yet and > simple-audio-amplifier doesn't have regulator property. > > I have no time (and interest) to work on it in near future, so if > anyone wants to pick it up - feel free to do so. Understood. I can try to pick it up when I have some extra time. On the other hand, I tried this series on my Pine64 and (with the necessary device tree changes) on my Bananapi M64. While audio played (did not stall), no audio was actually coming out of the headphones I had plugged in. I made sure that all needed mixer controls were enabled, and the DAPM graph read all green from the DAI to the Headphone jack. Any ideas? Regards ChenYu
On Sat, Nov 17, 2018 at 8:02 AM Chen-Yu Tsai <wens@csie.org> wrote: > > On Thu, Nov 15, 2018 at 1:48 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote: > > > > On Wed, Nov 7, 2018 at 11:30 PM Chen-Yu Tsai <wens@csie.org> wrote: > > > > + > > > > + speaker_amp: speaker_amp { > > > > + compatible = "simple-audio-amplifier"; > > > > + enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ > > > > > > You might want to add a sound-name-prefix property. See > > > > > > Documentation/devicetree/bindings/sound/name-prefix.txt > > > > > > Also this should have a reference to its power supply regulator. > > > > You're right, it should reference its power supply which should be a > > fixed regulator controlled via GPIO from AXP803. > > > > Unfortunately there's no AXP803 GPIO support yet and > > simple-audio-amplifier doesn't have regulator property. > > > > I have no time (and interest) to work on it in near future, so if > > anyone wants to pick it up - feel free to do so. > > Understood. I can try to pick it up when I have some extra time. > > On the other hand, I tried this series on my Pine64 and (with > the necessary device tree changes) on my Bananapi M64. While > audio played (did not stall), no audio was actually coming out > of the headphones I had plugged in. I made sure that all needed > mixer controls were enabled, and the DAPM graph read all green > from the DAI to the Headphone jack. > > Any ideas? Please show output of amixer. My guess is that you don't have 'AIF1 DAC' enabled. > > Regards > ChenYu
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts index 77fac84797e9..73f171f4ba9b 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts @@ -64,6 +64,23 @@ compatible = "mmc-pwrseq-simple"; reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ }; + + speaker_amp: speaker_amp { + compatible = "simple-audio-amplifier"; + enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ + }; +}; + +&codec { + status = "okay"; +}; + +&codec_analog { + status = "okay"; +}; + +&dai { + status = "okay"; }; &ehci0 { @@ -267,6 +284,31 @@ vcc-hdmi-supply = <®_dldo1>; }; +&sound { + status = "okay"; + simple-audio-card,widgets = "Microphone", "Internal Microphone Left", + "Microphone", "Internal Microphone Right", + "Headphone", "Headphone Jack", + "Speaker", "Internal Speaker"; + simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; + simple-audio-card,routing = + "Left DAC", "AIF1 Slot 0 Left", + "Right DAC", "AIF1 Slot 0 Right", + "INL", "LINEOUT", + "INR", "LINEOUT", + "Internal Speaker", "OUTL", + "Internal Speaker", "OUTR", + "Headphone Jack", "HP", + "AIF1 Slot 0 Left ADC", "Left ADC", + "AIF1 Slot 0 Right ADC", "Right ADC", + "Left ADC", "ADC", + "Right ADC", "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>;
This commit enables I2S, digital and analog parts of audiocodec on Pinebook Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> --- .../dts/allwinner/sun50i-a64-pinebook.dts | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+)