mbox series

[v4,0/9] Add support for audiocodec in Allwinner A64

Message ID 20181016030239.15449-1-anarsoul@gmail.com (mailing list archive)
Headers show
Series Add support for audiocodec in Allwinner A64 | expand

Message

Vasily Khoruzhick Oct. 16, 2018, 3:02 a.m. UTC
This series adds Allwinner A64 audiocodec support into sun4i-i2s,
sun8i-codec drivers, introduces new sun50i-codec-analog driver and enables
sound on Pine64, SoPine boards and Pinebook.

I2S for audiocodec in A64 is different from other 3 I2S modules but
similar to one in A10, digital part of codec is compatible with A33 and
analog controls part is completely different from other SoCs - it shares
only few bits in few registers, so adding support for it into existing
sun8i-codec-analog would mean duplicating all the widgets, controls and
some routes and making it hard to read. Therefore it makes sense to
introduce new driver.

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
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
v4: - dts: don't use 'Mic' and 'Headset Mic' widgets from sun8i-codec,
      define our board-level widgets instead.

Marcus Cooper (1):
  ASoC: sun4i-i2s: Add compatibility with A64 codec I2S

Vasily Khoruzhick (8):
  ASoC: sun8i-codec: Don't hardcode BCLK / LRCK ratio
  ASoC: sun8i-codec-analog: split regmap code into separate driver
  ASoC: dt-binding: Add bindings for Allwinner A64 codec's analog path
    controls
  ASoC: sunxi: Add new driver for Allwinner A64 codec's analog path
    controls
  ASoC: sunxi: allow the sun8i-codec driver to be built on ARM64
  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

 .../devicetree/bindings/sound/sun4i-i2s.txt   |   2 +
 .../bindings/sound/sun50i-codec-analog.txt    |  12 +
 .../boot/dts/allwinner/sun50i-a64-pine64.dts  |  29 ++
 .../dts/allwinner/sun50i-a64-pinebook.dts     |  42 ++
 .../allwinner/sun50i-a64-sopine-baseboard.dts |  29 ++
 arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi |  58 +++
 sound/soc/sunxi/Kconfig                       |  17 +-
 sound/soc/sunxi/Makefile                      |   2 +
 sound/soc/sunxi/sun4i-i2s.c                   |  21 +
 sound/soc/sunxi/sun50i-codec-analog.c         | 444 ++++++++++++++++++
 sound/soc/sunxi/sun8i-adda-pr-regmap.c        | 102 ++++
 sound/soc/sunxi/sun8i-adda-pr-regmap.h        |   7 +
 sound/soc/sunxi/sun8i-codec-analog.c          |  79 +---
 sound/soc/sunxi/sun8i-codec.c                 |  26 +-
 14 files changed, 787 insertions(+), 83 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/sound/sun50i-codec-analog.txt
 create mode 100644 sound/soc/sunxi/sun50i-codec-analog.c
 create mode 100644 sound/soc/sunxi/sun8i-adda-pr-regmap.c
 create mode 100644 sound/soc/sunxi/sun8i-adda-pr-regmap.h

Comments

Maxime Ripard Oct. 16, 2018, 7:08 a.m. UTC | #1
Hi,

On Mon, Oct 15, 2018 at 08:02:30PM -0700, Vasily Khoruzhick wrote:
> This series adds Allwinner A64 audiocodec support into sun4i-i2s,
> sun8i-codec drivers, introduces new sun50i-codec-analog driver and enables
> sound on Pine64, SoPine boards and Pinebook.
> 
> I2S for audiocodec in A64 is different from other 3 I2S modules but
> similar to one in A10, digital part of codec is compatible with A33 and
> analog controls part is completely different from other SoCs - it shares
> only few bits in few registers, so adding support for it into existing
> sun8i-codec-analog would mean duplicating all the widgets, controls and
> some routes and making it hard to read. Therefore it makes sense to
> introduce new driver.
> 
> 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
> 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
> v4: - dts: don't use 'Mic' and 'Headset Mic' widgets from sun8i-codec,
>       define our board-level widgets instead.

You also need to collect the tags that are given by the various people
involved in that review :)

Maxime
Maxime Ripard Oct. 16, 2018, 11:49 a.m. UTC | #2
On Tue, Oct 16, 2018 at 12:13:26AM -0700, Vasily Khoruzhick wrote:
> On Tue, Oct 16, 2018, 00:09 Maxime Ripard <[1]maxime.ripard@bootlin.com> wrote:
> 
>     Hi,
> 
>     On Mon, Oct 15, 2018 at 08:02:30PM -0700, Vasily Khoruzhick wrote:
>     > This series adds Allwinner A64 audiocodec support into sun4i-i2s,
>     > sun8i-codec drivers, introduces new sun50i-codec-analog driver and
>     enables
>     > sound on Pine64, SoPine boards and Pinebook.
>     >
>     > I2S for audiocodec in A64 is different from other 3 I2S modules but
>     > similar to one in A10, digital part of codec is compatible with A33 and
>     > analog controls part is completely different from other SoCs - it shares
>     > only few bits in few registers, so adding support for it into existing
>     > sun8i-codec-analog would mean duplicating all the widgets, controls and
>     > some routes and making it hard to read. Therefore it makes sense to
>     > introduce new driver.
>     >
>     > 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
>     > 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
>     > v4: - dts: don't use 'Mic' and 'Headset Mic' widgets from sun8i-codec,
>     >       define our board-level widgets instead.
> 
>     You also need to collect the tags that are given by the various people
>     involved in that review :)
> 
> 
> My bad. Do you want me to send v5 with all the tags?

Yep, please, thankS!

Maxime