diff mbox

[v3,1/2] mfd: arizona: Add support for INn_Modec register control

Message ID 20140818200003.2ab8aca0@songinha-Samsung-DeskTop-System (mailing list archive)
State New, archived
Headers show

Commit Message

Inha Song Aug. 18, 2014, 11 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>
---
 drivers/mfd/arizona-core.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Charles Keepax Aug. 18, 2014, 2:23 p.m. UTC | #1
On Mon, Aug 18, 2014 at 08:00:03PM +0900, 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>

Thanks,
Charles
Lee Jones Aug. 28, 2014, 11:36 a.m. UTC | #2
On Mon, 18 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>
> ---
>  drivers/mfd/arizona-core.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
> index 10a0cb9..81e6db8 100644
> --- a/drivers/mfd/arizona-core.c
> +++ b/drivers/mfd/arizona-core.c
> @@ -534,7 +534,7 @@ EXPORT_SYMBOL_GPL(arizona_of_get_named_gpio);
>  static int arizona_of_get_core_pdata(struct arizona *arizona)
>  {
>  	struct arizona_pdata *pdata = &arizona->pdata;
> -	int ret, i;
> +	int ret, i, proplen;
>  
>  	pdata->reset = arizona_of_get_named_gpio(arizona, "wlf,reset", true);
>  
> @@ -560,6 +560,12 @@ static int arizona_of_get_core_pdata(struct arizona *arizona)
>  			ret);
>  	}
>  
> +	proplen = of_property_count_u32_elems(arizona->dev->of_node,
> +					      "wlf,inmode");
> +	if (proplen > 0 && proplen <= ARRAY_SIZE(arizona->pdata.inmode))
> +		of_property_read_u32_array(arizona->dev->of_node, "wlf,inmode",
> +					   arizona->pdata.inmode, proplen);

of_property_for_each_u32()?
Inha Song Aug. 29, 2014, 8:02 a.m. UTC | #3
Hi, Lee
Thanks for your review.

On Thu, 28 Aug 2014 12:36:51 +0100
Lee Jones <lee.jones@linaro.org> wrote:

> On Mon, 18 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>
> > ---
> >  drivers/mfd/arizona-core.c | 8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
> > index 10a0cb9..81e6db8 100644
> > --- a/drivers/mfd/arizona-core.c
> > +++ b/drivers/mfd/arizona-core.c
> > @@ -534,7 +534,7 @@ EXPORT_SYMBOL_GPL(arizona_of_get_named_gpio);
> >  static int arizona_of_get_core_pdata(struct arizona *arizona)
> >  {
> >  	struct arizona_pdata *pdata = &arizona->pdata;
> > -	int ret, i;
> > +	int ret, i, proplen;
> >  
> >  	pdata->reset = arizona_of_get_named_gpio(arizona, "wlf,reset", true);
> >  
> > @@ -560,6 +560,12 @@ static int arizona_of_get_core_pdata(struct arizona *arizona)
> >  			ret);
> >  	}
> >  
> > +	proplen = of_property_count_u32_elems(arizona->dev->of_node,
> > +					      "wlf,inmode");
> > +	if (proplen > 0 && proplen <= ARRAY_SIZE(arizona->pdata.inmode))
> > +		of_property_read_u32_array(arizona->dev->of_node, "wlf,inmode",
> > +					   arizona->pdata.inmode, proplen);
> 
> of_property_for_each_u32()?

Is it more clear to use of_property_for_each_u32() instead of
of_property_read_u32_array()?

If so, I will fix in v5.

Best regards,
Inha Song.

> 
> -- 
> Lee Jones
> Linaro STMicroelectronics Landing Team Lead
> Linaro.org ? Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog
Lee Jones Aug. 29, 2014, 8:17 a.m. UTC | #4
On Fri, 29 Aug 2014, Inha Song wrote:

> Hi, Lee
> Thanks for your review.
> 
> On Thu, 28 Aug 2014 12:36:51 +0100
> Lee Jones <lee.jones@linaro.org> wrote:
> 
> > On Mon, 18 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>
> > > ---
> > >  drivers/mfd/arizona-core.c | 8 +++++++-
> > >  1 file changed, 7 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
> > > index 10a0cb9..81e6db8 100644
> > > --- a/drivers/mfd/arizona-core.c
> > > +++ b/drivers/mfd/arizona-core.c
> > > @@ -534,7 +534,7 @@ EXPORT_SYMBOL_GPL(arizona_of_get_named_gpio);
> > >  static int arizona_of_get_core_pdata(struct arizona *arizona)
> > >  {
> > >  	struct arizona_pdata *pdata = &arizona->pdata;
> > > -	int ret, i;
> > > +	int ret, i, proplen;
> > >  
> > >  	pdata->reset = arizona_of_get_named_gpio(arizona, "wlf,reset", true);
> > >  
> > > @@ -560,6 +560,12 @@ static int arizona_of_get_core_pdata(struct arizona *arizona)
> > >  			ret);
> > >  	}
> > >  
> > > +	proplen = of_property_count_u32_elems(arizona->dev->of_node,
> > > +					      "wlf,inmode");
> > > +	if (proplen > 0 && proplen <= ARRAY_SIZE(arizona->pdata.inmode))
> > > +		of_property_read_u32_array(arizona->dev->of_node, "wlf,inmode",
> > > +					   arizona->pdata.inmode, proplen);
> > 
> > of_property_for_each_u32()?
> 
> Is it more clear to use of_property_for_each_u32() instead of
> of_property_read_u32_array()?

It prevents you from having to use of_property_count_u32_elems() first.

> If so, I will fix in v5.
Inha Song Aug. 29, 2014, 8:42 a.m. UTC | #5
On Fri, 29 Aug 2014 09:17:41 +0100
Lee Jones <lee.jones@linaro.org> wrote:

> On Fri, 29 Aug 2014, Inha Song wrote:
> 
> > Hi, Lee
> > Thanks for your review.
> > 
> > On Thu, 28 Aug 2014 12:36:51 +0100
> > Lee Jones <lee.jones@linaro.org> wrote:
> > 
> > > On Mon, 18 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>
> > > > ---
> > > >  drivers/mfd/arizona-core.c | 8 +++++++-
> > > >  1 file changed, 7 insertions(+), 1 deletion(-)
> > > > 
> > > > diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
> > > > index 10a0cb9..81e6db8 100644
> > > > --- a/drivers/mfd/arizona-core.c
> > > > +++ b/drivers/mfd/arizona-core.c
> > > > @@ -534,7 +534,7 @@ EXPORT_SYMBOL_GPL(arizona_of_get_named_gpio);
> > > >  static int arizona_of_get_core_pdata(struct arizona *arizona)
> > > >  {
> > > >  	struct arizona_pdata *pdata = &arizona->pdata;
> > > > -	int ret, i;
> > > > +	int ret, i, proplen;
> > > >  
> > > >  	pdata->reset = arizona_of_get_named_gpio(arizona, "wlf,reset", true);
> > > >  
> > > > @@ -560,6 +560,12 @@ static int arizona_of_get_core_pdata(struct arizona *arizona)
> > > >  			ret);
> > > >  	}
> > > >  
> > > > +	proplen = of_property_count_u32_elems(arizona->dev->of_node,
> > > > +					      "wlf,inmode");
> > > > +	if (proplen > 0 && proplen <= ARRAY_SIZE(arizona->pdata.inmode))
> > > > +		of_property_read_u32_array(arizona->dev->of_node, "wlf,inmode",
> > > > +					   arizona->pdata.inmode, proplen);
> > > 
> > > of_property_for_each_u32()?
> > 
> > Is it more clear to use of_property_for_each_u32() instead of
> > of_property_read_u32_array()?
> 
> It prevents you from having to use of_property_count_u32_elems() first.

OK, I will fix this. Thanks.

Best regards,
Inha Song.
diff mbox

Patch

diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c
index 10a0cb9..81e6db8 100644
--- a/drivers/mfd/arizona-core.c
+++ b/drivers/mfd/arizona-core.c
@@ -534,7 +534,7 @@  EXPORT_SYMBOL_GPL(arizona_of_get_named_gpio);
 static int arizona_of_get_core_pdata(struct arizona *arizona)
 {
 	struct arizona_pdata *pdata = &arizona->pdata;
-	int ret, i;
+	int ret, i, proplen;
 
 	pdata->reset = arizona_of_get_named_gpio(arizona, "wlf,reset", true);
 
@@ -560,6 +560,12 @@  static int arizona_of_get_core_pdata(struct arizona *arizona)
 			ret);
 	}
 
+	proplen = of_property_count_u32_elems(arizona->dev->of_node,
+					      "wlf,inmode");
+	if (proplen > 0 && proplen <= ARRAY_SIZE(arizona->pdata.inmode))
+		of_property_read_u32_array(arizona->dev->of_node, "wlf,inmode",
+					   arizona->pdata.inmode, proplen);
+
 	return 0;
 }