diff mbox

[v5,1/2] mfd: arizona: Add support for INn_Mode register control

Message ID 1409365639-5320-2-git-send-email-ideal.song@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Inha Song Aug. 30, 2014, 2:27 a.m. UTC
Some boards need to set the INn_MODE[1:0] register to change
the input signal patch. This wlf,inmode property is optional.
If present, values must be specified less than or equal to
the number of input singals. If values less than the number
of input signals, elements that has not been specifed are set
to 0 by default.

Example:
   - wlf,inmode = <2 0 2>;	/* IN1, IN3 use DMIC */

Signed-off-by: Inha Song <ideal.song@samsung.com>
Reviewed-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
---
 drivers/mfd/arizona-core.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Lee Jones Sept. 1, 2014, 8:32 a.m. UTC | #1
On Sat, 30 Aug 2014, Inha Song wrote:

> Some boards need to set the INn_MODE[1:0] register to change
> the input signal patch. This wlf,inmode property is optional.
> If present, values must be specified less than or equal to
> the number of input singals. If values less than the number
> of input signals, elements that has not been specifed are set
> to 0 by default.
> 
> Example:
>    - wlf,inmode = <2 0 2>;	/* IN1, IN3 use DMIC */
> 
> Signed-off-by: Inha Song <ideal.song@samsung.com>
> Reviewed-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
> ---
>  drivers/mfd/arizona-core.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)

That looks better.

Applied, thanks.

Charles,
  Can you confirm your Reviewed-by for this version of the patch
  please?

> diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
> index 10a0cb9..31757f7 100644
> --- a/drivers/mfd/arizona-core.c
> +++ b/drivers/mfd/arizona-core.c
> @@ -534,7 +534,11 @@ EXPORT_SYMBOL_GPL(arizona_of_get_named_gpio);
>  static int arizona_of_get_core_pdata(struct arizona *arizona)
>  {
>  	struct arizona_pdata *pdata = &arizona->pdata;
> +	struct property *prop;
> +	const __be32 *cur;
> +	u32 val;
>  	int ret, i;
> +	int count = 0;
>  
>  	pdata->reset = arizona_of_get_named_gpio(arizona, "wlf,reset", true);
>  
> @@ -560,6 +564,15 @@ static int arizona_of_get_core_pdata(struct arizona *arizona)
>  			ret);
>  	}
>  
> +	of_property_for_each_u32(arizona->dev->of_node, "wlf,inmode", prop,
> +				 cur, val) {
> +		if (count == ARRAY_SIZE(arizona->pdata.inmode))
> +			break;
> +
> +		arizona->pdata.inmode[count] = val;
> +		count++;
> +	}
> +
>  	return 0;
>  }
>
Charles Keepax Sept. 1, 2014, 9:03 a.m. UTC | #2
On Mon, Sep 01, 2014 at 09:32:33AM +0100, Lee Jones wrote:
> On Sat, 30 Aug 2014, Inha Song wrote:
> 
> > Some boards need to set the INn_MODE[1:0] register to change
> > the input signal patch. This wlf,inmode property is optional.
> > If present, values must be specified less than or equal to
> > the number of input singals. If values less than the number
> > of input signals, elements that has not been specifed are set
> > to 0 by default.
> > 
> > Example:
> >    - wlf,inmode = <2 0 2>;	/* IN1, IN3 use DMIC */
> > 
> > Signed-off-by: Inha Song <ideal.song@samsung.com>
> > Reviewed-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
> > ---
> >  drivers/mfd/arizona-core.c | 13 +++++++++++++
> >  1 file changed, 13 insertions(+)
> 
> That looks better.
> 
> Applied, thanks.
> 
> Charles,
>   Can you confirm your Reviewed-by for this version of the patch
>   please?

Yeah all looks fine to me.

Reviewed-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>

Thanks,
Charles
diff mbox

Patch

diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index 10a0cb9..31757f7 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -534,7 +534,11 @@  EXPORT_SYMBOL_GPL(arizona_of_get_named_gpio);
 static int arizona_of_get_core_pdata(struct arizona *arizona)
 {
 	struct arizona_pdata *pdata = &arizona->pdata;
+	struct property *prop;
+	const __be32 *cur;
+	u32 val;
 	int ret, i;
+	int count = 0;
 
 	pdata->reset = arizona_of_get_named_gpio(arizona, "wlf,reset", true);
 
@@ -560,6 +564,15 @@  static int arizona_of_get_core_pdata(struct arizona *arizona)
 			ret);
 	}
 
+	of_property_for_each_u32(arizona->dev->of_node, "wlf,inmode", prop,
+				 cur, val) {
+		if (count == ARRAY_SIZE(arizona->pdata.inmode))
+			break;
+
+		arizona->pdata.inmode[count] = val;
+		count++;
+	}
+
 	return 0;
 }