[alsa-devel] [PATCH 5/6] mfd: arizona: Add support for new micbias regulators

Lee Jones lee.jones at linaro.org
Fri Mar 24 10:42:23 CET 2017


On Tue, 21 Mar 2017, Charles Keepax wrote:

> Add mfd_cell's for each of the new micbias regulators,  provide the
> appropriate supply mapping for these, and remove the old code that
> configured the micbiases now that the regulator driver does so.
> 
> Signed-off-by: Charles Keepax <ckeepax at opensource.wolfsonmicro.com>
> ---
>  drivers/mfd/arizona-core.c | 56 ++++++++++++++++++----------------------------
>  1 file changed, 22 insertions(+), 34 deletions(-)

Applied, thanks.

> diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
> index b6d4bc6..e7eba5d 100644
> --- a/drivers/mfd/arizona-core.c
> +++ b/drivers/mfd/arizona-core.c
> @@ -936,10 +936,16 @@ static const char * const wm5102_supplies[] = {
>  	"CPVDD",
>  	"SPKVDDL",
>  	"SPKVDDR",
> +	"MICBIAS1",
> +	"MICBIAS2",
> +	"MICBIAS3",
>  };
>  
>  static const struct mfd_cell wm5102_devs[] = {
>  	{ .name = "arizona-micsupp" },
> +	{ .name = "arizona-micbias", .id = 1 },
> +	{ .name = "arizona-micbias", .id = 2 },
> +	{ .name = "arizona-micbias", .id = 3 },
>  	{ .name = "arizona-gpio" },
>  	{
>  		.name = "arizona-extcon",
> @@ -957,6 +963,9 @@ static const struct mfd_cell wm5102_devs[] = {
>  
>  static const struct mfd_cell wm5110_devs[] = {
>  	{ .name = "arizona-micsupp" },
> +	{ .name = "arizona-micbias", .id = 1 },
> +	{ .name = "arizona-micbias", .id = 2 },
> +	{ .name = "arizona-micbias", .id = 3 },
>  	{ .name = "arizona-gpio" },
>  	{
>  		.name = "arizona-extcon",
> @@ -976,9 +985,13 @@ static const char * const cs47l24_supplies[] = {
>  	"MICVDD",
>  	"CPVDD",
>  	"SPKVDD",
> +	"MICBIAS1",
> +	"MICBIAS2",
>  };
>  
>  static const struct mfd_cell cs47l24_devs[] = {
> +	{ .name = "arizona-micbias", .id = 1 },
> +	{ .name = "arizona-micbias", .id = 2 },
>  	{ .name = "arizona-gpio" },
>  	{ .name = "arizona-haptics" },
>  	{ .name = "arizona-pwm" },
> @@ -994,10 +1007,16 @@ static const char * const wm8997_supplies[] = {
>  	"DBVDD2",
>  	"CPVDD",
>  	"SPKVDD",
> +	"MICBIAS1",
> +	"MICBIAS2",
> +	"MICBIAS3",
>  };
>  
>  static const struct mfd_cell wm8997_devs[] = {
>  	{ .name = "arizona-micsupp" },
> +	{ .name = "arizona-micbias", .id = 1 },
> +	{ .name = "arizona-micbias", .id = 2 },
> +	{ .name = "arizona-micbias", .id = 3 },
>  	{ .name = "arizona-gpio" },
>  	{
>  		.name = "arizona-extcon",
> @@ -1015,6 +1034,9 @@ static const struct mfd_cell wm8997_devs[] = {
>  
>  static const struct mfd_cell wm8998_devs[] = {
>  	{ .name = "arizona-micsupp" },
> +	{ .name = "arizona-micbias", .id = 1 },
> +	{ .name = "arizona-micbias", .id = 2 },
> +	{ .name = "arizona-micbias", .id = 3 },
>  	{ .name = "arizona-gpio" },
>  	{
>  		.name = "arizona-extcon",
> @@ -1404,40 +1426,6 @@ int arizona_dev_init(struct arizona *arizona)
>  		goto err_reset;
>  	}
>  
> -	for (i = 0; i < ARIZONA_MAX_MICBIAS; i++) {
> -		if (!arizona->pdata.micbias[i].mV &&
> -		    !arizona->pdata.micbias[i].bypass)
> -			continue;
> -
> -		/* Apply default for bypass mode */
> -		if (!arizona->pdata.micbias[i].mV)
> -			arizona->pdata.micbias[i].mV = 2800;
> -
> -		val = (arizona->pdata.micbias[i].mV - 1500) / 100;
> -
> -		val <<= ARIZONA_MICB1_LVL_SHIFT;
> -
> -		if (arizona->pdata.micbias[i].ext_cap)
> -			val |= ARIZONA_MICB1_EXT_CAP;
> -
> -		if (arizona->pdata.micbias[i].discharge)
> -			val |= ARIZONA_MICB1_DISCH;
> -
> -		if (arizona->pdata.micbias[i].soft_start)
> -			val |= ARIZONA_MICB1_RATE;
> -
> -		if (arizona->pdata.micbias[i].bypass)
> -			val |= ARIZONA_MICB1_BYPASS;
> -
> -		regmap_update_bits(arizona->regmap,
> -				   ARIZONA_MIC_BIAS_CTRL_1 + i,
> -				   ARIZONA_MICB1_LVL_MASK |
> -				   ARIZONA_MICB1_EXT_CAP |
> -				   ARIZONA_MICB1_DISCH |
> -				   ARIZONA_MICB1_BYPASS |
> -				   ARIZONA_MICB1_RATE, val);
> -	}
> -
>  	for (i = 0; i < ARIZONA_MAX_INPUT; i++) {
>  		/* Default for both is 0 so noop with defaults */
>  		val = arizona->pdata.dmic_ref[i]

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog


More information about the Alsa-devel mailing list