Re: [PATCH v3 3/8] ASoC: Add sun8i digital audio codec

2017-01-31 Thread kbuild test robot
Hi Mylène,

[auto build test WARNING on next-20170130]
[also build test WARNING on v4.10-rc6]
[cannot apply to asoc/for-next robh/for-next mripard/sunxi/for-next v4.9-rc8 
v4.9-rc7 v4.9-rc6]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Myl-ne-Josserand/Add-sun8i-A33-audio-driver/20170131-181539


coccinelle warnings: (new ones prefixed by >>)

>> sound/soc/sunxi/sun8i-codec.c:487:3-8: No need to set .owner here. The core 
>> will do it.

Please review and possibly fold the followup patch.

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


Re: [PATCH v3 3/8] ASoC: Add sun8i digital audio codec

2017-01-31 Thread kbuild test robot
Hi Mylène,

[auto build test WARNING on next-20170130]
[also build test WARNING on v4.10-rc6]
[cannot apply to asoc/for-next robh/for-next mripard/sunxi/for-next v4.9-rc8 
v4.9-rc7 v4.9-rc6]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Myl-ne-Josserand/Add-sun8i-A33-audio-driver/20170131-181539


coccinelle warnings: (new ones prefixed by >>)

>> sound/soc/sunxi/sun8i-codec.c:487:3-8: No need to set .owner here. The core 
>> will do it.

Please review and possibly fold the followup patch.

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


Re: [PATCH v3 3/8] ASoC: Add sun8i digital audio codec

2017-01-31 Thread Maxime Ripard
On Tue, Jan 31, 2017 at 11:05:47AM +0100, Mylène Josserand wrote:
> Add the sun8i audio codec which handles the digital register of
> A33 codec.
> The driver handles only the basic playback from the DAC to headphones.
> All other features (microphone, capture, etc) will be added later.
> 
> Signed-off-by: Mylène Josserand 

Acked-by: Maxime Ripard 

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com


signature.asc
Description: PGP signature


Re: [PATCH v3 3/8] ASoC: Add sun8i digital audio codec

2017-01-31 Thread Maxime Ripard
On Tue, Jan 31, 2017 at 11:05:47AM +0100, Mylène Josserand wrote:
> Add the sun8i audio codec which handles the digital register of
> A33 codec.
> The driver handles only the basic playback from the DAC to headphones.
> All other features (microphone, capture, etc) will be added later.
> 
> Signed-off-by: Mylène Josserand 

Acked-by: Maxime Ripard 

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com


signature.asc
Description: PGP signature


[PATCH v3 3/8] ASoC: Add sun8i digital audio codec

2017-01-31 Thread Mylène Josserand
Add the sun8i audio codec which handles the digital register of
A33 codec.
The driver handles only the basic playback from the DAC to headphones.
All other features (microphone, capture, etc) will be added later.

Signed-off-by: Mylène Josserand 
---
 sound/soc/sunxi/Kconfig   |  11 +
 sound/soc/sunxi/Makefile  |   1 +
 sound/soc/sunxi/sun8i-codec.c | 499 ++
 3 files changed, 511 insertions(+)
 create mode 100644 sound/soc/sunxi/sun8i-codec.c

diff --git a/sound/soc/sunxi/Kconfig b/sound/soc/sunxi/Kconfig
index 6c344e16aca4..13a8267f17c7 100644
--- a/sound/soc/sunxi/Kconfig
+++ b/sound/soc/sunxi/Kconfig
@@ -9,6 +9,17 @@ config SND_SUN4I_CODEC
  Select Y or M to add support for the Codec embedded in the Allwinner
  A10 and affiliated SoCs.
 
+config SND_SUN8I_CODEC
+   tristate "Allwinner SUN8I audio codec"
+   depends on OF
+   depends on MACH_SUN8I || COMPILE_TEST
+   select REGMAP_MMIO
+   help
+ This option enables the digital part of the internal audio codec for
+ Allwinner sun8i SoC (and particularly A33).
+
+ Say Y or M if you want to add sun8i digital audio codec support.
+
 config SND_SUN8I_CODEC_ANALOG
tristate "Allwinner sun8i Codec Analog Controls Support"
depends on MACH_SUN8I || COMPILE_TEST
diff --git a/sound/soc/sunxi/Makefile b/sound/soc/sunxi/Makefile
index 241c0df9ca0c..1f1af6271731 100644
--- a/sound/soc/sunxi/Makefile
+++ b/sound/soc/sunxi/Makefile
@@ -2,3 +2,4 @@ obj-$(CONFIG_SND_SUN4I_CODEC) += sun4i-codec.o
 obj-$(CONFIG_SND_SUN4I_I2S) += sun4i-i2s.o
 obj-$(CONFIG_SND_SUN4I_SPDIF) += sun4i-spdif.o
 obj-$(CONFIG_SND_SUN8I_CODEC_ANALOG) += sun8i-codec-analog.o
+obj-$(CONFIG_SND_SUN8I_CODEC) += sun8i-codec.o
diff --git a/sound/soc/sunxi/sun8i-codec.c b/sound/soc/sunxi/sun8i-codec.c
new file mode 100644
index ..27fede54671b
--- /dev/null
+++ b/sound/soc/sunxi/sun8i-codec.c
@@ -0,0 +1,499 @@
+/*
+ * This driver supports the digital controls for the internal codec
+ * found in Allwinner's A33 SoCs.
+ *
+ * (C) Copyright 2010-2016
+ * Reuuimlla Technology Co., Ltd. 
+ * huangxin 
+ * Mylène Josserand 
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+
+#define SUN8I_SYSCLK_CTL   0x00c
+#define SUN8I_SYSCLK_CTL_AIF1CLK_ENA   11
+#define SUN8I_SYSCLK_CTL_AIF1CLK_SRC_PLL   9
+#define SUN8I_SYSCLK_CTL_AIF1CLK_SRC   8
+#define SUN8I_SYSCLK_CTL_SYSCLK_ENA3
+#define SUN8I_SYSCLK_CTL_SYSCLK_SRC0
+#define SUN8I_MOD_CLK_ENA  0x010
+#define SUN8I_MOD_CLK_ENA_AIF1 15
+#define SUN8I_MOD_CLK_ENA_DAC  2
+#define SUN8I_MOD_RST_CTL  0x014
+#define SUN8I_MOD_RST_CTL_AIF1 15
+#define SUN8I_MOD_RST_CTL_DAC  2
+#define SUN8I_SYS_SR_CTRL  0x018
+#define SUN8I_SYS_SR_CTRL_AIF1_FS  12
+#define SUN8I_SYS_SR_CTRL_AIF2_FS  8
+#define SUN8I_AIF1CLK_CTRL 0x040
+#define SUN8I_AIF1CLK_CTRL_AIF1_MSTR_MOD   15
+#define SUN8I_AIF1CLK_CTRL_AIF1_BCLK_INV   14
+#define SUN8I_AIF1CLK_CTRL_AIF1_LRCK_INV   13
+#define SUN8I_AIF1CLK_CTRL_AIF1_BCLK_DIV   9
+#define SUN8I_AIF1CLK_CTRL_AIF1_LRCK_DIV   6
+#define SUN8I_AIF1CLK_CTRL_AIF1_LRCK_DIV_16(1 << 6)
+#define SUN8I_AIF1CLK_CTRL_AIF1_WORD_SIZ   4
+#define SUN8I_AIF1CLK_CTRL_AIF1_WORD_SIZ_16(1 << 4)
+#define SUN8I_AIF1CLK_CTRL_AIF1_DATA_FMT   2
+#define SUN8I_AIF1_DACDAT_CTRL 0x048
+#define SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0L_ENA   15
+#define SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0R_ENA   14
+#define SUN8I_DAC_DIG_CTRL 0x120
+#define SUN8I_DAC_DIG_CTRL_ENDA15
+#define SUN8I_DAC_MXR_SRC  0x130
+#define SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF1DA0L15
+#define SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF1DA1L14
+#define SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF2DACL13
+#define SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_ADCL 

[PATCH v3 3/8] ASoC: Add sun8i digital audio codec

2017-01-31 Thread Mylène Josserand
Add the sun8i audio codec which handles the digital register of
A33 codec.
The driver handles only the basic playback from the DAC to headphones.
All other features (microphone, capture, etc) will be added later.

Signed-off-by: Mylène Josserand 
---
 sound/soc/sunxi/Kconfig   |  11 +
 sound/soc/sunxi/Makefile  |   1 +
 sound/soc/sunxi/sun8i-codec.c | 499 ++
 3 files changed, 511 insertions(+)
 create mode 100644 sound/soc/sunxi/sun8i-codec.c

diff --git a/sound/soc/sunxi/Kconfig b/sound/soc/sunxi/Kconfig
index 6c344e16aca4..13a8267f17c7 100644
--- a/sound/soc/sunxi/Kconfig
+++ b/sound/soc/sunxi/Kconfig
@@ -9,6 +9,17 @@ config SND_SUN4I_CODEC
  Select Y or M to add support for the Codec embedded in the Allwinner
  A10 and affiliated SoCs.
 
+config SND_SUN8I_CODEC
+   tristate "Allwinner SUN8I audio codec"
+   depends on OF
+   depends on MACH_SUN8I || COMPILE_TEST
+   select REGMAP_MMIO
+   help
+ This option enables the digital part of the internal audio codec for
+ Allwinner sun8i SoC (and particularly A33).
+
+ Say Y or M if you want to add sun8i digital audio codec support.
+
 config SND_SUN8I_CODEC_ANALOG
tristate "Allwinner sun8i Codec Analog Controls Support"
depends on MACH_SUN8I || COMPILE_TEST
diff --git a/sound/soc/sunxi/Makefile b/sound/soc/sunxi/Makefile
index 241c0df9ca0c..1f1af6271731 100644
--- a/sound/soc/sunxi/Makefile
+++ b/sound/soc/sunxi/Makefile
@@ -2,3 +2,4 @@ obj-$(CONFIG_SND_SUN4I_CODEC) += sun4i-codec.o
 obj-$(CONFIG_SND_SUN4I_I2S) += sun4i-i2s.o
 obj-$(CONFIG_SND_SUN4I_SPDIF) += sun4i-spdif.o
 obj-$(CONFIG_SND_SUN8I_CODEC_ANALOG) += sun8i-codec-analog.o
+obj-$(CONFIG_SND_SUN8I_CODEC) += sun8i-codec.o
diff --git a/sound/soc/sunxi/sun8i-codec.c b/sound/soc/sunxi/sun8i-codec.c
new file mode 100644
index ..27fede54671b
--- /dev/null
+++ b/sound/soc/sunxi/sun8i-codec.c
@@ -0,0 +1,499 @@
+/*
+ * This driver supports the digital controls for the internal codec
+ * found in Allwinner's A33 SoCs.
+ *
+ * (C) Copyright 2010-2016
+ * Reuuimlla Technology Co., Ltd. 
+ * huangxin 
+ * Mylène Josserand 
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+
+#define SUN8I_SYSCLK_CTL   0x00c
+#define SUN8I_SYSCLK_CTL_AIF1CLK_ENA   11
+#define SUN8I_SYSCLK_CTL_AIF1CLK_SRC_PLL   9
+#define SUN8I_SYSCLK_CTL_AIF1CLK_SRC   8
+#define SUN8I_SYSCLK_CTL_SYSCLK_ENA3
+#define SUN8I_SYSCLK_CTL_SYSCLK_SRC0
+#define SUN8I_MOD_CLK_ENA  0x010
+#define SUN8I_MOD_CLK_ENA_AIF1 15
+#define SUN8I_MOD_CLK_ENA_DAC  2
+#define SUN8I_MOD_RST_CTL  0x014
+#define SUN8I_MOD_RST_CTL_AIF1 15
+#define SUN8I_MOD_RST_CTL_DAC  2
+#define SUN8I_SYS_SR_CTRL  0x018
+#define SUN8I_SYS_SR_CTRL_AIF1_FS  12
+#define SUN8I_SYS_SR_CTRL_AIF2_FS  8
+#define SUN8I_AIF1CLK_CTRL 0x040
+#define SUN8I_AIF1CLK_CTRL_AIF1_MSTR_MOD   15
+#define SUN8I_AIF1CLK_CTRL_AIF1_BCLK_INV   14
+#define SUN8I_AIF1CLK_CTRL_AIF1_LRCK_INV   13
+#define SUN8I_AIF1CLK_CTRL_AIF1_BCLK_DIV   9
+#define SUN8I_AIF1CLK_CTRL_AIF1_LRCK_DIV   6
+#define SUN8I_AIF1CLK_CTRL_AIF1_LRCK_DIV_16(1 << 6)
+#define SUN8I_AIF1CLK_CTRL_AIF1_WORD_SIZ   4
+#define SUN8I_AIF1CLK_CTRL_AIF1_WORD_SIZ_16(1 << 4)
+#define SUN8I_AIF1CLK_CTRL_AIF1_DATA_FMT   2
+#define SUN8I_AIF1_DACDAT_CTRL 0x048
+#define SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0L_ENA   15
+#define SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0R_ENA   14
+#define SUN8I_DAC_DIG_CTRL 0x120
+#define SUN8I_DAC_DIG_CTRL_ENDA15
+#define SUN8I_DAC_MXR_SRC  0x130
+#define SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF1DA0L15
+#define SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF1DA1L14
+#define SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF2DACL13
+#define SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_ADCL12
+#define SUN8I_DAC_MXR_SRC_DACR_MXR_SRC_AIF1DA0R11
+#define