mbox series

[v9,0/8] Add support for audiocodec in Allwinner A64

Message ID 20181122102325.29495-1-wens@csie.org (mailing list archive)
Headers show
Series Add support for audiocodec in Allwinner A64 | expand

Message

Chen-Yu Tsai Nov. 22, 2018, 10:23 a.m. UTC
Hi everyone,

This is v9 of the A64 audio codec series, originally started by Vasily.
These are the last changes to make the A64 audio codec work correctly,
and be accurately represented in the device tree and in software.

Notably, the new driver changes cover regulator supplies for the simple
audio amplifier, which is used in the Pinebook for the internal
speakers, and the audio codec's internal headphone amp. There's also an
extra patch that enables SDM fractional clock support for the audio PLL
on the A64, which gives us accurate audio playback.

Patch 1 & 2 add the cpvdd regulator supply to the sun50i-codec-analog
dt bindings & driver.

Patch 3 & 4 add a regulator supply to the simple-audio-amplifier dt
bindings & driver.

Patch 5 adds SDM fractional clock support for the audio PLL on the A64.

Patch 6 ~ 8 add the device tree bits and enables audio on several
boards.

I have one extra patch for the Bananapi M64 that's not included here,
as I'm waiting for an accessory to test the microphone bias. I'll send
that one out once it's tested.

As always, we'll take the clock and dts patches after Mark has merged
the ASoC ones.

And a big thanks to Vasily for having worked on this for so long.

Regards
ChenYu

v9: - Dropped simple amplifier headphone amp device tree changes
    - Dropped "make enable-gpio optional for simple amplifier" 
    - Lowered oversampling rate from 512 to 128
    - Add regulator supply for audio codec CPVDD (headphone amp charge pump)
    - Hook up CPVDD regulator in board device trees
    - Add patch to enable SDM fractional clock support for audio PLL on A64
v8: - drop merged patches
    - add regulator property for simple amplifier, make enable-gpio
      optional
    - add regulator to speaker amp, introduce headphone amp
v7: - drop 'Mic' and 'Headset Mic' from dtsi
    - move AIF1 Slot 0 ADC to ADC route to sun8i-codec
    - drop BIAS routes for Pine64 and SoPine
v6: - driver patches has been merged through ASoC tree
    - rebase onto 4.20-rc1
    - Drop 'Speaker' from routes on sopine and pine64, they don't have
      speaker.
v5: - collect all the tags
v4: - dts: don't use 'Mic' and 'Headset Mic' widgets from sun8i-codec,
      define our board-level widgets instead.
v3: - renamed sunxi-adda-pr-regmap to sun8i-adda-pr-regmap
    - use ilog2() to calculate reg value for LRCK div instead of using a
      table
v2: - Use simple-amplifier for speaker amp on Pinebook
    - Rename sun50i-a64-i2s to sun50i-a64-codec-i2s to preserve compatible
      string for other 3 I2S modules in A64 in case if there's any
      incompatibility with H3

Chen-Yu Tsai (3):
  ASoC: dt-bindings: sun50i-codec-analog: Add headphone amp regulator
    supply
  ASoC: sunxi: sun50i-codec-analog: Add support for cpvdd regulator
    supply
  clk: sunxi-ng: sun50i: a64: Use sigma-delta modulation for audio PLL

Vasily Khoruzhick (5):
  ASoC: dt-bindings: add regulator property to simple amplifier
  ASoC: simple-amplifier: add VCC regulator widget
  arm64: dts: allwinner: a64: add nodes necessary for analog sound
    support
  arm64: dts: allwinner: a64: enable sound on Pine64 and SoPine
  arm64: dts: allwinner: a64: enable sound on Pinebook

 .../bindings/sound/simple-amplifier.txt       |  5 ++
 .../bindings/sound/sun50i-codec-analog.txt    |  2 +
 .../boot/dts/allwinner/sun50i-a64-pine64.dts  | 27 ++++++++++
 .../dts/allwinner/sun50i-a64-pinebook.dts     | 49 +++++++++++++++++
 .../allwinner/sun50i-a64-sopine-baseboard.dts | 26 +++++++++
 .../boot/dts/allwinner/sun50i-a64-sopine.dtsi |  4 ++
 arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 54 +++++++++++++++++++
 drivers/clk/sunxi-ng/ccu-sun50i-a64.c         | 37 ++++++++-----
 sound/soc/codecs/simple-amplifier.c           |  4 ++
 sound/soc/sunxi/sun50i-codec-analog.c         |  2 +
 10 files changed, 197 insertions(+), 13 deletions(-)

Comments

Vasily Khoruzhick Nov. 23, 2018, 4:26 a.m. UTC | #1
On Thursday, November 22, 2018 2:23:17 AM PST Chen-Yu Tsai wrote:
> Hi everyone,
> 
> This is v9 of the A64 audio codec series, originally started by Vasily.
> These are the last changes to make the A64 audio codec work correctly,
> and be accurately represented in the device tree and in software.
> 
> Notably, the new driver changes cover regulator supplies for the simple
> audio amplifier, which is used in the Pinebook for the internal
> speakers, and the audio codec's internal headphone amp. There's also an
> extra patch that enables SDM fractional clock support for the audio PLL
> on the A64, which gives us accurate audio playback.
> 
> Patch 1 & 2 add the cpvdd regulator supply to the sun50i-codec-analog
> dt bindings & driver.
> 
> Patch 3 & 4 add a regulator supply to the simple-audio-amplifier dt
> bindings & driver.
> 
> Patch 5 adds SDM fractional clock support for the audio PLL on the A64.
> 
> Patch 6 ~ 8 add the device tree bits and enables audio on several
> boards.
> 
> I have one extra patch for the Bananapi M64 that's not included here,
> as I'm waiting for an accessory to test the microphone bias. I'll send
> that one out once it's tested.
> 
> As always, we'll take the clock and dts patches after Mark has merged
> the ASoC ones.
> 
> And a big thanks to Vasily for having worked on this for so long.

Thank you for picking it up!

Just a minor note: hpvcc-supply should be a property of codec_analog in 
sun50i-a64-pinebook.dts

Otherwise looks fine, tested on Pinebook and Pine64-LTS.

Tested-by: Vasily Khoruzhick <anarsoul@gmail.com> 

> Regards
> ChenYu
> 
> v9: - Dropped simple amplifier headphone amp device tree changes
>     - Dropped "make enable-gpio optional for simple amplifier"
>     - Lowered oversampling rate from 512 to 128
>     - Add regulator supply for audio codec CPVDD (headphone amp charge pump)
> - Hook up CPVDD regulator in board device trees
>     - Add patch to enable SDM fractional clock support for audio PLL on A64
> v8: - drop merged patches
>     - add regulator property for simple amplifier, make enable-gpio
>       optional
>     - add regulator to speaker amp, introduce headphone amp
> v7: - drop 'Mic' and 'Headset Mic' from dtsi
>     - move AIF1 Slot 0 ADC to ADC route to sun8i-codec
>     - drop BIAS routes for Pine64 and SoPine
> v6: - driver patches has been merged through ASoC tree
>     - rebase onto 4.20-rc1
>     - Drop 'Speaker' from routes on sopine and pine64, they don't have
>       speaker.
> v5: - collect all the tags
> v4: - dts: don't use 'Mic' and 'Headset Mic' widgets from sun8i-codec,
>       define our board-level widgets instead.
> v3: - renamed sunxi-adda-pr-regmap to sun8i-adda-pr-regmap
>     - use ilog2() to calculate reg value for LRCK div instead of using a
>       table
> v2: - Use simple-amplifier for speaker amp on Pinebook
>     - Rename sun50i-a64-i2s to sun50i-a64-codec-i2s to preserve compatible
>       string for other 3 I2S modules in A64 in case if there's any
>       incompatibility with H3
> 
> Chen-Yu Tsai (3):
>   ASoC: dt-bindings: sun50i-codec-analog: Add headphone amp regulator
>     supply
>   ASoC: sunxi: sun50i-codec-analog: Add support for cpvdd regulator
>     supply
>   clk: sunxi-ng: sun50i: a64: Use sigma-delta modulation for audio PLL
> 
> Vasily Khoruzhick (5):
>   ASoC: dt-bindings: add regulator property to simple amplifier
>   ASoC: simple-amplifier: add VCC regulator widget
>   arm64: dts: allwinner: a64: add nodes necessary for analog sound
>     support
>   arm64: dts: allwinner: a64: enable sound on Pine64 and SoPine
>   arm64: dts: allwinner: a64: enable sound on Pinebook
> 
>  .../bindings/sound/simple-amplifier.txt       |  5 ++
>  .../bindings/sound/sun50i-codec-analog.txt    |  2 +
>  .../boot/dts/allwinner/sun50i-a64-pine64.dts  | 27 ++++++++++
>  .../dts/allwinner/sun50i-a64-pinebook.dts     | 49 +++++++++++++++++
>  .../allwinner/sun50i-a64-sopine-baseboard.dts | 26 +++++++++
>  .../boot/dts/allwinner/sun50i-a64-sopine.dtsi |  4 ++
>  arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 54 +++++++++++++++++++
>  drivers/clk/sunxi-ng/ccu-sun50i-a64.c         | 37 ++++++++-----
>  sound/soc/codecs/simple-amplifier.c           |  4 ++
>  sound/soc/sunxi/sun50i-codec-analog.c         |  2 +
>  10 files changed, 197 insertions(+), 13 deletions(-)
Chen-Yu Tsai Nov. 23, 2018, 4:37 a.m. UTC | #2
On Fri, Nov 23, 2018 at 12:26 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote:
>
> On Thursday, November 22, 2018 2:23:17 AM PST Chen-Yu Tsai wrote:
> > Hi everyone,
> >
> > This is v9 of the A64 audio codec series, originally started by Vasily.
> > These are the last changes to make the A64 audio codec work correctly,
> > and be accurately represented in the device tree and in software.
> >
> > Notably, the new driver changes cover regulator supplies for the simple
> > audio amplifier, which is used in the Pinebook for the internal
> > speakers, and the audio codec's internal headphone amp. There's also an
> > extra patch that enables SDM fractional clock support for the audio PLL
> > on the A64, which gives us accurate audio playback.
> >
> > Patch 1 & 2 add the cpvdd regulator supply to the sun50i-codec-analog
> > dt bindings & driver.
> >
> > Patch 3 & 4 add a regulator supply to the simple-audio-amplifier dt
> > bindings & driver.
> >
> > Patch 5 adds SDM fractional clock support for the audio PLL on the A64.
> >
> > Patch 6 ~ 8 add the device tree bits and enables audio on several
> > boards.
> >
> > I have one extra patch for the Bananapi M64 that's not included here,
> > as I'm waiting for an accessory to test the microphone bias. I'll send
> > that one out once it's tested.
> >
> > As always, we'll take the clock and dts patches after Mark has merged
> > the ASoC ones.
> >
> > And a big thanks to Vasily for having worked on this for so long.
>
> Thank you for picking it up!
>
> Just a minor note: hpvcc-supply should be a property of codec_analog in
> sun50i-a64-pinebook.dts

Thanks. I'll fix that up when applying.

> Otherwise looks fine, tested on Pinebook and Pine64-LTS.
>
> Tested-by: Vasily Khoruzhick <anarsoul@gmail.com>

Great!

ChenYu
Chen-Yu Tsai Nov. 23, 2018, 4:03 p.m. UTC | #3
On Fri, Nov 23, 2018 at 12:37 PM Chen-Yu Tsai <wens@csie.org> wrote:
>
> On Fri, Nov 23, 2018 at 12:26 PM Vasily Khoruzhick <anarsoul@gmail.com> wrote:
> >
> > On Thursday, November 22, 2018 2:23:17 AM PST Chen-Yu Tsai wrote:
> > > Hi everyone,
> > >
> > > This is v9 of the A64 audio codec series, originally started by Vasily.
> > > These are the last changes to make the A64 audio codec work correctly,
> > > and be accurately represented in the device tree and in software.
> > >
> > > Notably, the new driver changes cover regulator supplies for the simple
> > > audio amplifier, which is used in the Pinebook for the internal
> > > speakers, and the audio codec's internal headphone amp. There's also an
> > > extra patch that enables SDM fractional clock support for the audio PLL
> > > on the A64, which gives us accurate audio playback.
> > >
> > > Patch 1 & 2 add the cpvdd regulator supply to the sun50i-codec-analog
> > > dt bindings & driver.
> > >
> > > Patch 3 & 4 add a regulator supply to the simple-audio-amplifier dt
> > > bindings & driver.
> > >
> > > Patch 5 adds SDM fractional clock support for the audio PLL on the A64.
> > >
> > > Patch 6 ~ 8 add the device tree bits and enables audio on several
> > > boards.
> > >
> > > I have one extra patch for the Bananapi M64 that's not included here,
> > > as I'm waiting for an accessory to test the microphone bias. I'll send
> > > that one out once it's tested.
> > >
> > > As always, we'll take the clock and dts patches after Mark has merged
> > > the ASoC ones.
> > >
> > > And a big thanks to Vasily for having worked on this for so long.
> >
> > Thank you for picking it up!
> >
> > Just a minor note: hpvcc-supply should be a property of codec_analog in
> > sun50i-a64-pinebook.dts
>
> Thanks. I'll fix that up when applying.

Merged the remaining 4 patches with the misplaced regulator supply property
in the last patch fixed.

ChenYu

> > Otherwise looks fine, tested on Pinebook and Pine64-LTS.
> >
> > Tested-by: Vasily Khoruzhick <anarsoul@gmail.com>
>
> Great!
>
> ChenYu