Re: [RESEND PATCH 1/6] mfd: arizona: Add support for WM8280/WM8281

2015-03-03 Thread Lee Jones
On Tue, 03 Mar 2015, Charles Keepax wrote:

 From: Richard Fitzgerald r...@opensource.wolfsonmicro.com
 
 This adds support for the Wolfson Microelectronics WM8280 and WM8281
 codecs.
 
 Signed-off-by: Richard Fitzgerald r...@opensource.wolfsonmicro.com
 Acked-by: Lee Jones lee.jo...@linaro.org
 [ Minor fixup to remove potentially uninitialised variable. ]
 Signed-off-by: Charles Keepax ckee...@opensource.wolfsonmicro.com
 ---
  drivers/mfd/Kconfig  |5 +++--
  drivers/mfd/arizona-core.c   |   15 +--
  drivers/mfd/arizona-i2c.c|2 ++
  drivers/mfd/arizona-irq.c|1 +
  drivers/mfd/arizona-spi.c|2 ++
  include/linux/mfd/arizona/core.h |1 +
  6 files changed, 22 insertions(+), 4 deletions(-)

Applied, thanks.

Will send out pull-request once this has had time to soak in -next. 

 diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
 index 0ad88c7..b5fb03c 100644
 --- a/drivers/mfd/Kconfig
 +++ b/drivers/mfd/Kconfig
 @@ -1290,10 +1290,11 @@ config MFD_WM5102
 Support for Wolfson Microelectronics WM5102 low power audio SoC
  
  config MFD_WM5110
 - bool Wolfson Microelectronics WM5110
 + bool Wolfson Microelectronics WM5110 and WM8280/WM8281
   depends on MFD_ARIZONA
   help
 -   Support for Wolfson Microelectronics WM5110 low power audio SoC
 +   Support for Wolfson Microelectronics WM5110 and WM8280/WM8281
 +   low power audio SoC
  
  config MFD_WM8997
   bool Wolfson Microelectronics WM8997
 diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
 index 09ba8f1..9f81998 100644
 --- a/drivers/mfd/arizona-core.c
 +++ b/drivers/mfd/arizona-core.c
 @@ -567,6 +567,7 @@ static int arizona_of_get_core_pdata(struct arizona 
 *arizona)
  const struct of_device_id arizona_of_match[] = {
   { .compatible = wlf,wm5102, .data = (void *)WM5102 },
   { .compatible = wlf,wm5110, .data = (void *)WM5110 },
 + { .compatible = wlf,wm8280, .data = (void *)WM8280 },
   { .compatible = wlf,wm8997, .data = (void *)WM8997 },
   {},
  };
 @@ -671,6 +672,7 @@ int arizona_dev_init(struct arizona *arizona)
   switch (arizona-type) {
   case WM5102:
   case WM5110:
 + case WM8280:
   case WM8997:
   for (i = 0; i  ARRAY_SIZE(wm5102_core_supplies); i++)
   arizona-core_supplies[i].supply
 @@ -834,11 +836,19 @@ int arizona_dev_init(struct arizona *arizona)
  #endif
  #ifdef CONFIG_MFD_WM5110
   case 0x5110:
 - type_name = WM5110;
 - if (arizona-type != WM5110) {
 + switch (arizona-type) {
 + case WM5110:
 + type_name = WM5110;
 + break;
 + case WM8280:
 + type_name = WM8280;
 + break;
 + default:
 + type_name = WM5110;
   dev_err(arizona-dev, WM5110 registered as %d\n,
   arizona-type);
   arizona-type = WM5110;
 + break;
   }
   apply_patch = wm5110_patch;
   break;
 @@ -1010,6 +1020,7 @@ int arizona_dev_init(struct arizona *arizona)
 ARRAY_SIZE(wm5102_devs), NULL, 0, NULL);
   break;
   case WM5110:
 + case WM8280:
   ret = mfd_add_devices(arizona-dev, -1, wm5110_devs,
 ARRAY_SIZE(wm5110_devs), NULL, 0, NULL);
   break;
 diff --git a/drivers/mfd/arizona-i2c.c b/drivers/mfd/arizona-i2c.c
 index 9d4156f..ff782a5d 100644
 --- a/drivers/mfd/arizona-i2c.c
 +++ b/drivers/mfd/arizona-i2c.c
 @@ -44,6 +44,7 @@ static int arizona_i2c_probe(struct i2c_client *i2c,
  #endif
  #ifdef CONFIG_MFD_WM5110
   case WM5110:
 + case WM8280:
   regmap_config = wm5110_i2c_regmap;
   break;
  #endif
 @@ -87,6 +88,7 @@ static int arizona_i2c_remove(struct i2c_client *i2c)
  static const struct i2c_device_id arizona_i2c_id[] = {
   { wm5102, WM5102 },
   { wm5110, WM5110 },
 + { wm8280, WM8280 },
   { wm8997, WM8997 },
   { }
  };
 diff --git a/drivers/mfd/arizona-irq.c b/drivers/mfd/arizona-irq.c
 index 3a3fe7c..d063b94 100644
 --- a/drivers/mfd/arizona-irq.c
 +++ b/drivers/mfd/arizona-irq.c
 @@ -211,6 +211,7 @@ int arizona_irq_init(struct arizona *arizona)
  #endif
  #ifdef CONFIG_MFD_WM5110
   case WM5110:
 + case WM8280:
   aod = wm5110_aod;
  
   switch (arizona-rev) {
 diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
 index 8ef58bc..1e845f6 100644
 --- a/drivers/mfd/arizona-spi.c
 +++ b/drivers/mfd/arizona-spi.c
 @@ -44,6 +44,7 @@ static int arizona_spi_probe(struct spi_device *spi)
  #endif
  #ifdef CONFIG_MFD_WM5110
   case WM5110:
 + case WM8280:
   regmap_config = wm5110_spi_regmap;
   break;
  #endif
 @@ -84,6 +85,7 @@ 

[RESEND PATCH 1/6] mfd: arizona: Add support for WM8280/WM8281

2015-03-03 Thread Charles Keepax
From: Richard Fitzgerald r...@opensource.wolfsonmicro.com

This adds support for the Wolfson Microelectronics WM8280 and WM8281
codecs.

Signed-off-by: Richard Fitzgerald r...@opensource.wolfsonmicro.com
Acked-by: Lee Jones lee.jo...@linaro.org
[ Minor fixup to remove potentially uninitialised variable. ]
Signed-off-by: Charles Keepax ckee...@opensource.wolfsonmicro.com
---
 drivers/mfd/Kconfig  |5 +++--
 drivers/mfd/arizona-core.c   |   15 +--
 drivers/mfd/arizona-i2c.c|2 ++
 drivers/mfd/arizona-irq.c|1 +
 drivers/mfd/arizona-spi.c|2 ++
 include/linux/mfd/arizona/core.h |1 +
 6 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 0ad88c7..b5fb03c 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -1290,10 +1290,11 @@ config MFD_WM5102
  Support for Wolfson Microelectronics WM5102 low power audio SoC
 
 config MFD_WM5110
-   bool Wolfson Microelectronics WM5110
+   bool Wolfson Microelectronics WM5110 and WM8280/WM8281
depends on MFD_ARIZONA
help
- Support for Wolfson Microelectronics WM5110 low power audio SoC
+ Support for Wolfson Microelectronics WM5110 and WM8280/WM8281
+ low power audio SoC
 
 config MFD_WM8997
bool Wolfson Microelectronics WM8997
diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index 09ba8f1..9f81998 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -567,6 +567,7 @@ static int arizona_of_get_core_pdata(struct arizona 
*arizona)
 const struct of_device_id arizona_of_match[] = {
{ .compatible = wlf,wm5102, .data = (void *)WM5102 },
{ .compatible = wlf,wm5110, .data = (void *)WM5110 },
+   { .compatible = wlf,wm8280, .data = (void *)WM8280 },
{ .compatible = wlf,wm8997, .data = (void *)WM8997 },
{},
 };
@@ -671,6 +672,7 @@ int arizona_dev_init(struct arizona *arizona)
switch (arizona-type) {
case WM5102:
case WM5110:
+   case WM8280:
case WM8997:
for (i = 0; i  ARRAY_SIZE(wm5102_core_supplies); i++)
arizona-core_supplies[i].supply
@@ -834,11 +836,19 @@ int arizona_dev_init(struct arizona *arizona)
 #endif
 #ifdef CONFIG_MFD_WM5110
case 0x5110:
-   type_name = WM5110;
-   if (arizona-type != WM5110) {
+   switch (arizona-type) {
+   case WM5110:
+   type_name = WM5110;
+   break;
+   case WM8280:
+   type_name = WM8280;
+   break;
+   default:
+   type_name = WM5110;
dev_err(arizona-dev, WM5110 registered as %d\n,
arizona-type);
arizona-type = WM5110;
+   break;
}
apply_patch = wm5110_patch;
break;
@@ -1010,6 +1020,7 @@ int arizona_dev_init(struct arizona *arizona)
  ARRAY_SIZE(wm5102_devs), NULL, 0, NULL);
break;
case WM5110:
+   case WM8280:
ret = mfd_add_devices(arizona-dev, -1, wm5110_devs,
  ARRAY_SIZE(wm5110_devs), NULL, 0, NULL);
break;
diff --git a/drivers/mfd/arizona-i2c.c b/drivers/mfd/arizona-i2c.c
index 9d4156f..ff782a5d 100644
--- a/drivers/mfd/arizona-i2c.c
+++ b/drivers/mfd/arizona-i2c.c
@@ -44,6 +44,7 @@ static int arizona_i2c_probe(struct i2c_client *i2c,
 #endif
 #ifdef CONFIG_MFD_WM5110
case WM5110:
+   case WM8280:
regmap_config = wm5110_i2c_regmap;
break;
 #endif
@@ -87,6 +88,7 @@ static int arizona_i2c_remove(struct i2c_client *i2c)
 static const struct i2c_device_id arizona_i2c_id[] = {
{ wm5102, WM5102 },
{ wm5110, WM5110 },
+   { wm8280, WM8280 },
{ wm8997, WM8997 },
{ }
 };
diff --git a/drivers/mfd/arizona-irq.c b/drivers/mfd/arizona-irq.c
index 3a3fe7c..d063b94 100644
--- a/drivers/mfd/arizona-irq.c
+++ b/drivers/mfd/arizona-irq.c
@@ -211,6 +211,7 @@ int arizona_irq_init(struct arizona *arizona)
 #endif
 #ifdef CONFIG_MFD_WM5110
case WM5110:
+   case WM8280:
aod = wm5110_aod;
 
switch (arizona-rev) {
diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
index 8ef58bc..1e845f6 100644
--- a/drivers/mfd/arizona-spi.c
+++ b/drivers/mfd/arizona-spi.c
@@ -44,6 +44,7 @@ static int arizona_spi_probe(struct spi_device *spi)
 #endif
 #ifdef CONFIG_MFD_WM5110
case WM5110:
+   case WM8280:
regmap_config = wm5110_spi_regmap;
break;
 #endif
@@ -84,6 +85,7 @@ static int arizona_spi_remove(struct spi_device *spi)
 static const struct spi_device_id arizona_spi_ids[] = {
{ wm5102, 

[RESEND PATCH 1/6] mfd: arizona: Add support for WM8280/WM8281

2015-02-10 Thread Charles Keepax
From: Richard Fitzgerald r...@opensource.wolfsonmicro.com

This adds support for the Wolfson Microelectronics WM8280 and WM8281
codecs.

Signed-off-by: Richard Fitzgerald r...@opensource.wolfsonmicro.com
Acked-by: Lee Jones lee.jo...@linaro.org
[ Minor fixup to remove potentially uninitialised variable. ]
Signed-off-by: Charles Keepax ckee...@opensource.wolfsonmicro.com
---
 drivers/mfd/Kconfig  |5 +++--
 drivers/mfd/arizona-core.c   |   15 +--
 drivers/mfd/arizona-i2c.c|2 ++
 drivers/mfd/arizona-irq.c|1 +
 drivers/mfd/arizona-spi.c|2 ++
 include/linux/mfd/arizona/core.h |1 +
 6 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 38356e3..9b5e605 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -1289,10 +1289,11 @@ config MFD_WM5102
  Support for Wolfson Microelectronics WM5102 low power audio SoC
 
 config MFD_WM5110
-   bool Wolfson Microelectronics WM5110
+   bool Wolfson Microelectronics WM5110 and WM8280/WM8281
depends on MFD_ARIZONA
help
- Support for Wolfson Microelectronics WM5110 low power audio SoC
+ Support for Wolfson Microelectronics WM5110 and WM8280/WM8281
+ low power audio SoC
 
 config MFD_WM8997
bool Wolfson Microelectronics WM8997
diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index 09ba8f1..9f81998 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -567,6 +567,7 @@ static int arizona_of_get_core_pdata(struct arizona 
*arizona)
 const struct of_device_id arizona_of_match[] = {
{ .compatible = wlf,wm5102, .data = (void *)WM5102 },
{ .compatible = wlf,wm5110, .data = (void *)WM5110 },
+   { .compatible = wlf,wm8280, .data = (void *)WM8280 },
{ .compatible = wlf,wm8997, .data = (void *)WM8997 },
{},
 };
@@ -671,6 +672,7 @@ int arizona_dev_init(struct arizona *arizona)
switch (arizona-type) {
case WM5102:
case WM5110:
+   case WM8280:
case WM8997:
for (i = 0; i  ARRAY_SIZE(wm5102_core_supplies); i++)
arizona-core_supplies[i].supply
@@ -834,11 +836,19 @@ int arizona_dev_init(struct arizona *arizona)
 #endif
 #ifdef CONFIG_MFD_WM5110
case 0x5110:
-   type_name = WM5110;
-   if (arizona-type != WM5110) {
+   switch (arizona-type) {
+   case WM5110:
+   type_name = WM5110;
+   break;
+   case WM8280:
+   type_name = WM8280;
+   break;
+   default:
+   type_name = WM5110;
dev_err(arizona-dev, WM5110 registered as %d\n,
arizona-type);
arizona-type = WM5110;
+   break;
}
apply_patch = wm5110_patch;
break;
@@ -1010,6 +1020,7 @@ int arizona_dev_init(struct arizona *arizona)
  ARRAY_SIZE(wm5102_devs), NULL, 0, NULL);
break;
case WM5110:
+   case WM8280:
ret = mfd_add_devices(arizona-dev, -1, wm5110_devs,
  ARRAY_SIZE(wm5110_devs), NULL, 0, NULL);
break;
diff --git a/drivers/mfd/arizona-i2c.c b/drivers/mfd/arizona-i2c.c
index 9d4156f..ff782a5d 100644
--- a/drivers/mfd/arizona-i2c.c
+++ b/drivers/mfd/arizona-i2c.c
@@ -44,6 +44,7 @@ static int arizona_i2c_probe(struct i2c_client *i2c,
 #endif
 #ifdef CONFIG_MFD_WM5110
case WM5110:
+   case WM8280:
regmap_config = wm5110_i2c_regmap;
break;
 #endif
@@ -87,6 +88,7 @@ static int arizona_i2c_remove(struct i2c_client *i2c)
 static const struct i2c_device_id arizona_i2c_id[] = {
{ wm5102, WM5102 },
{ wm5110, WM5110 },
+   { wm8280, WM8280 },
{ wm8997, WM8997 },
{ }
 };
diff --git a/drivers/mfd/arizona-irq.c b/drivers/mfd/arizona-irq.c
index 3a3fe7c..d063b94 100644
--- a/drivers/mfd/arizona-irq.c
+++ b/drivers/mfd/arizona-irq.c
@@ -211,6 +211,7 @@ int arizona_irq_init(struct arizona *arizona)
 #endif
 #ifdef CONFIG_MFD_WM5110
case WM5110:
+   case WM8280:
aod = wm5110_aod;
 
switch (arizona-rev) {
diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
index 8ef58bc..1e845f6 100644
--- a/drivers/mfd/arizona-spi.c
+++ b/drivers/mfd/arizona-spi.c
@@ -44,6 +44,7 @@ static int arizona_spi_probe(struct spi_device *spi)
 #endif
 #ifdef CONFIG_MFD_WM5110
case WM5110:
+   case WM8280:
regmap_config = wm5110_spi_regmap;
break;
 #endif
@@ -84,6 +85,7 @@ static int arizona_spi_remove(struct spi_device *spi)
 static const struct spi_device_id arizona_spi_ids[] = {
{ wm5102, 

[RESEND PATCH 1/6] mfd: arizona: Add support for WM8280/WM8281

2015-01-17 Thread Charles Keepax
From: Richard Fitzgerald r...@opensource.wolfsonmicro.com

This adds support for the Wolfson Microelectronics WM8280 and WM8281
codecs.

Signed-off-by: Richard Fitzgerald r...@opensource.wolfsonmicro.com
Acked-by: Lee Jones lee.jo...@linaro.org
[ Minor fixup to remove potentially uninitialised variable. ]
Signed-off-by: Charles Keepax ckee...@opensource.wolfsonmicro.com
---
 drivers/mfd/Kconfig  |5 +++--
 drivers/mfd/arizona-core.c   |   15 +--
 drivers/mfd/arizona-i2c.c|2 ++
 drivers/mfd/arizona-irq.c|1 +
 drivers/mfd/arizona-spi.c|2 ++
 include/linux/mfd/arizona/core.h |1 +
 6 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 2e6b731..9cbb8d5 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -1250,10 +1250,11 @@ config MFD_WM5102
  Support for Wolfson Microelectronics WM5102 low power audio SoC
 
 config MFD_WM5110
-   bool Wolfson Microelectronics WM5110
+   bool Wolfson Microelectronics WM5110 and WM8280/WM8281
depends on MFD_ARIZONA
help
- Support for Wolfson Microelectronics WM5110 low power audio SoC
+ Support for Wolfson Microelectronics WM5110 and WM8280/WM8281
+ low power audio SoC
 
 config MFD_WM8997
bool Wolfson Microelectronics WM8997
diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index bce7c07..da17178 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -567,6 +567,7 @@ static int arizona_of_get_core_pdata(struct arizona 
*arizona)
 const struct of_device_id arizona_of_match[] = {
{ .compatible = wlf,wm5102, .data = (void *)WM5102 },
{ .compatible = wlf,wm5110, .data = (void *)WM5110 },
+   { .compatible = wlf,wm8280, .data = (void *)WM8280 },
{ .compatible = wlf,wm8997, .data = (void *)WM8997 },
{},
 };
@@ -671,6 +672,7 @@ int arizona_dev_init(struct arizona *arizona)
switch (arizona-type) {
case WM5102:
case WM5110:
+   case WM8280:
case WM8997:
for (i = 0; i  ARRAY_SIZE(wm5102_core_supplies); i++)
arizona-core_supplies[i].supply
@@ -834,11 +836,19 @@ int arizona_dev_init(struct arizona *arizona)
 #endif
 #ifdef CONFIG_MFD_WM5110
case 0x5110:
-   type_name = WM5110;
-   if (arizona-type != WM5110) {
+   switch (arizona-type) {
+   case WM5110:
+   type_name = WM5110;
+   break;
+   case WM8280:
+   type_name = WM8280;
+   break;
+   default:
+   type_name = WM5110;
dev_err(arizona-dev, WM5110 registered as %d\n,
arizona-type);
arizona-type = WM5110;
+   break;
}
apply_patch = wm5110_patch;
break;
@@ -1010,6 +1020,7 @@ int arizona_dev_init(struct arizona *arizona)
  ARRAY_SIZE(wm5102_devs), NULL, 0, NULL);
break;
case WM5110:
+   case WM8280:
ret = mfd_add_devices(arizona-dev, -1, wm5110_devs,
  ARRAY_SIZE(wm5110_devs), NULL, 0, NULL);
break;
diff --git a/drivers/mfd/arizona-i2c.c b/drivers/mfd/arizona-i2c.c
index 9d4156f..ff782a5d 100644
--- a/drivers/mfd/arizona-i2c.c
+++ b/drivers/mfd/arizona-i2c.c
@@ -44,6 +44,7 @@ static int arizona_i2c_probe(struct i2c_client *i2c,
 #endif
 #ifdef CONFIG_MFD_WM5110
case WM5110:
+   case WM8280:
regmap_config = wm5110_i2c_regmap;
break;
 #endif
@@ -87,6 +88,7 @@ static int arizona_i2c_remove(struct i2c_client *i2c)
 static const struct i2c_device_id arizona_i2c_id[] = {
{ wm5102, WM5102 },
{ wm5110, WM5110 },
+   { wm8280, WM8280 },
{ wm8997, WM8997 },
{ }
 };
diff --git a/drivers/mfd/arizona-irq.c b/drivers/mfd/arizona-irq.c
index 3a3fe7c..d063b94 100644
--- a/drivers/mfd/arizona-irq.c
+++ b/drivers/mfd/arizona-irq.c
@@ -211,6 +211,7 @@ int arizona_irq_init(struct arizona *arizona)
 #endif
 #ifdef CONFIG_MFD_WM5110
case WM5110:
+   case WM8280:
aod = wm5110_aod;
 
switch (arizona-rev) {
diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
index 8ef58bc..1e845f6 100644
--- a/drivers/mfd/arizona-spi.c
+++ b/drivers/mfd/arizona-spi.c
@@ -44,6 +44,7 @@ static int arizona_spi_probe(struct spi_device *spi)
 #endif
 #ifdef CONFIG_MFD_WM5110
case WM5110:
+   case WM8280:
regmap_config = wm5110_spi_regmap;
break;
 #endif
@@ -84,6 +85,7 @@ static int arizona_spi_remove(struct spi_device *spi)
 static const struct spi_device_id arizona_spi_ids[] = {
{ wm5102,