Patchwork [U-Boot] power: twl6035: cleanup register access API

login
register
mail settings
Submitter Nishanth Menon
Date March 12, 2013, 8:39 p.m.
Message ID <1363120740-13775-1-git-send-email-nm@ti.com>
Download mbox | patch
Permalink /patch/227112/
State Changes Requested
Delegated to: Tom Rini
Headers show

Comments

Nishanth Menon - March 12, 2013, 8:39 p.m.
commit 21144298 (power: twl6035: add palmas PMIC support)
introduced twl6035_i2c_[read|write]_u8
Then, commit dd23e59d (omap5: pbias ldo9 turn on)
introduced palmas_[read|write]_u8
for precisely the same access function. TWL6035 belongs to
the palmas family, so instead of having an palmas API,
we could use twl6035 API instead (which is used elsewhere
as well).

Account for the parameter change while doing the change and
remove palmas register accessors.

Cc: Balaji T K <balajitk@ti.com>
Cc: Sricharan R <r.sricharan@ti.com>
Reported-by: Ruchika Kharwar <ruchika@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
---
 drivers/power/twl6035.c |   15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)
SRICHARAN R - March 13, 2013, 5:23 a.m.
On Wednesday 13 March 2013 02:09 AM, Nishanth Menon wrote:
> commit 21144298 (power: twl6035: add palmas PMIC support)
> introduced twl6035_i2c_[read|write]_u8
> Then, commit dd23e59d (omap5: pbias ldo9 turn on)
> introduced palmas_[read|write]_u8
> for precisely the same access function. TWL6035 belongs to
> the palmas family, so instead of having an palmas API,
> we could use twl6035 API instead (which is used elsewhere
> as well).
>
> Account for the parameter change while doing the change and
> remove palmas register accessors.
>
> Cc: Balaji T K <balajitk@ti.com>
> Cc: Sricharan R <r.sricharan@ti.com>
> Reported-by: Ruchika Kharwar <ruchika@ti.com>
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
>  drivers/power/twl6035.c |   15 ++-------------
>  1 file changed, 2 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/power/twl6035.c b/drivers/power/twl6035.c
> index d3de698..b0b2406 100644
> --- a/drivers/power/twl6035.c
> +++ b/drivers/power/twl6035.c
> @@ -34,17 +34,6 @@ int twl6035_i2c_read_u8(u8 chip_no, u8 *val, u8 reg)
>  	return i2c_read(chip_no, reg, 1, val, 1);
>  }
>  
> -/* To align with i2c mw/mr address, reg, val command syntax */
> -static inline int palmas_write_u8(u8 chip_no, u8 reg, u8 val)
> -{
> -	return i2c_write(chip_no, reg, 1, &val, 1);
> -}
> -
> -static inline int palmas_read_u8(u8 chip_no, u8 reg, u8 *val)
> -{
> -	return i2c_read(chip_no, reg, 1, val, 1);
> -}
> -
>  void twl6035_init_settings(void)
>  {
>  	return;
> @@ -57,7 +46,7 @@ int twl6035_mmc1_poweron_ldo(void)
>  	/* set LDO9 TWL6035 to 3V */
>  	val = 0x2b; /* (3 -.9)*28 +1 */
>  
> -	if (palmas_write_u8(0x48, LDO9_VOLTAGE, val)) {
> +	if (twl6035_i2c_write_u8(0x48, val, LDO9_VOLTAGE)) {
>  		printf("twl6035: could not set LDO9 voltage.\n");
>  		return 1;
>  	}
> @@ -65,7 +54,7 @@ int twl6035_mmc1_poweron_ldo(void)
>  	/* TURN ON LDO9 */
>  	val = LDO_ON | LDO_MODE_SLEEP | LDO_MODE_ACTIVE;
>  
> -	if (palmas_write_u8(0x48, LDO9_CTRL, val)) {
> +	if (twl6035_i2c_write_u8(0x48, val, LDO9_CTRL)) {
>  		printf("twl6035: could not turn on LDO9.\n");
>  		return 1;
>  	}
Reviewed-by: R Sricharan <r.sricharan@ti.com>

Regards,
 Sricharan
balajitk@ti.com - March 13, 2013, 6:54 a.m.
Hi,

On Wednesday 13 March 2013 02:09 AM, Nishanth Menon wrote:
> commit 21144298 (power: twl6035: add palmas PMIC support)
> introduced twl6035_i2c_[read|write]_u8
> Then, commit dd23e59d (omap5: pbias ldo9 turn on)
> introduced palmas_[read|write]_u8
> for precisely the same access function. TWL6035 belongs to
> the palmas family, so instead of having an palmas API,
> we could use twl6035 API instead (which is used elsewhere
> as well).

can you provide reference where twl6035 API is used ?

>
> Account for the parameter change while doing the change and
> remove palmas register accessors.

That is the reason ("parameter change") for introducing
palmas_write/read_u8 :-)

I think twl6035_i2c_read/write_u8 should have parameter
reg address and value interchanged or should get completely removed.
twl6035_i2c_read/write_u8 is based on legacy implementation
of twl6030/twl4030.


>
> Cc: Balaji T K <balajitk@ti.com>
> Cc: Sricharan R <r.sricharan@ti.com>
> Reported-by: Ruchika Kharwar <ruchika@ti.com>
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
>   drivers/power/twl6035.c |   15 ++-------------
>   1 file changed, 2 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/power/twl6035.c b/drivers/power/twl6035.c
> index d3de698..b0b2406 100644
> --- a/drivers/power/twl6035.c
> +++ b/drivers/power/twl6035.c
> @@ -34,17 +34,6 @@ int twl6035_i2c_read_u8(u8 chip_no, u8 *val, u8 reg)
>   	return i2c_read(chip_no, reg, 1, val, 1);
>   }
>
> -/* To align with i2c mw/mr address, reg, val command syntax */
> -static inline int palmas_write_u8(u8 chip_no, u8 reg, u8 val)

Please note the reg address, val order with i2c_write API.
It aligns with i2c mw/mr command @ u-boot cmd line,
with kernel APIs, i2cget, i2cset utilities.

It don't see a reason why twl6035_i2c_read/write_u8
should have parameters interchanged.

Thanks and Regards
Balaji T K

> -{
> -	return i2c_write(chip_no, reg, 1, &val, 1);
> -}
> -
> -static inline int palmas_read_u8(u8 chip_no, u8 reg, u8 *val)
> -{
> -	return i2c_read(chip_no, reg, 1, val, 1);
> -}
> -
>   void twl6035_init_settings(void)
>   {
>   	return;
> @@ -57,7 +46,7 @@ int twl6035_mmc1_poweron_ldo(void)
>   	/* set LDO9 TWL6035 to 3V */
>   	val = 0x2b; /* (3 -.9)*28 +1 */
>
> -	if (palmas_write_u8(0x48, LDO9_VOLTAGE, val)) {
> +	if (twl6035_i2c_write_u8(0x48, val, LDO9_VOLTAGE)) {
>   		printf("twl6035: could not set LDO9 voltage.\n");
>   		return 1;
>   	}
> @@ -65,7 +54,7 @@ int twl6035_mmc1_poweron_ldo(void)
>   	/* TURN ON LDO9 */
>   	val = LDO_ON | LDO_MODE_SLEEP | LDO_MODE_ACTIVE;
>
> -	if (palmas_write_u8(0x48, LDO9_CTRL, val)) {
> +	if (twl6035_i2c_write_u8(0x48, val, LDO9_CTRL)) {
>   		printf("twl6035: could not turn on LDO9.\n");
>   		return 1;
>   	}
>
Nishanth Menon - March 13, 2013, 1:05 p.m.
On 12:24-20130313, Balaji T K wrote:
> Hi,
> 
> On Wednesday 13 March 2013 02:09 AM, Nishanth Menon wrote:
> >commit 21144298 (power: twl6035: add palmas PMIC support)
> >introduced twl6035_i2c_[read|write]_u8
> >Then, commit dd23e59d (omap5: pbias ldo9 turn on)
> >introduced palmas_[read|write]_u8
> >for precisely the same access function. TWL6035 belongs to
> >the palmas family, so instead of having an palmas API,
> >we could use twl6035 API instead (which is used elsewhere
> >as well).
> 
> can you provide reference where twl6035 API is used ?
This is based on commit 21144298 - the exposed API for the rest is what
the intent was supposed to be.
> 
> >
> >Account for the parameter change while doing the change and
> >remove palmas register accessors.
> 
> That is the reason ("parameter change") for introducing
> palmas_write/read_u8 :-)
> 
> I think twl6035_i2c_read/write_u8 should have parameter
> reg address and value interchanged or should get completely removed.
> twl6035_i2c_read/write_u8 is based on legacy implementation
> of twl6030/twl4030.
> 
> 
> >
> >Cc: Balaji T K <balajitk@ti.com>
> >Cc: Sricharan R <r.sricharan@ti.com>
> >Reported-by: Ruchika Kharwar <ruchika@ti.com>
> >Signed-off-by: Nishanth Menon <nm@ti.com>
> >---
> >  drivers/power/twl6035.c |   15 ++-------------
> >  1 file changed, 2 insertions(+), 13 deletions(-)
> >
> >diff --git a/drivers/power/twl6035.c b/drivers/power/twl6035.c
> >index d3de698..b0b2406 100644
> >--- a/drivers/power/twl6035.c
> >+++ b/drivers/power/twl6035.c
> >@@ -34,17 +34,6 @@ int twl6035_i2c_read_u8(u8 chip_no, u8 *val, u8 reg)
> >  	return i2c_read(chip_no, reg, 1, val, 1);
> >  }
> >
> >-/* To align with i2c mw/mr address, reg, val command syntax */
> >-static inline int palmas_write_u8(u8 chip_no, u8 reg, u8 val)
> 
> Please note the reg address, val order with i2c_write API.
> It aligns with i2c mw/mr command @ u-boot cmd line,
> with kernel APIs, i2cget, i2cset utilities.
> 
> It don't see a reason why twl6035_i2c_read/write_u8
> should have parameters interchanged.
Then we should rather *fix* function usage *NOT* introduce an new
function for the same job!

But wait an min, twl4030_i2c_[read|write]_u8 follows the same proto as
twl6035_i2c_read/write_u8!
You are welcome to fix both while at it. But please *DONOT* introduce
duplicate functions on style need!

Patch

diff --git a/drivers/power/twl6035.c b/drivers/power/twl6035.c
index d3de698..b0b2406 100644
--- a/drivers/power/twl6035.c
+++ b/drivers/power/twl6035.c
@@ -34,17 +34,6 @@  int twl6035_i2c_read_u8(u8 chip_no, u8 *val, u8 reg)
 	return i2c_read(chip_no, reg, 1, val, 1);
 }
 
-/* To align with i2c mw/mr address, reg, val command syntax */
-static inline int palmas_write_u8(u8 chip_no, u8 reg, u8 val)
-{
-	return i2c_write(chip_no, reg, 1, &val, 1);
-}
-
-static inline int palmas_read_u8(u8 chip_no, u8 reg, u8 *val)
-{
-	return i2c_read(chip_no, reg, 1, val, 1);
-}
-
 void twl6035_init_settings(void)
 {
 	return;
@@ -57,7 +46,7 @@  int twl6035_mmc1_poweron_ldo(void)
 	/* set LDO9 TWL6035 to 3V */
 	val = 0x2b; /* (3 -.9)*28 +1 */
 
-	if (palmas_write_u8(0x48, LDO9_VOLTAGE, val)) {
+	if (twl6035_i2c_write_u8(0x48, val, LDO9_VOLTAGE)) {
 		printf("twl6035: could not set LDO9 voltage.\n");
 		return 1;
 	}
@@ -65,7 +54,7 @@  int twl6035_mmc1_poweron_ldo(void)
 	/* TURN ON LDO9 */
 	val = LDO_ON | LDO_MODE_SLEEP | LDO_MODE_ACTIVE;
 
-	if (palmas_write_u8(0x48, LDO9_CTRL, val)) {
+	if (twl6035_i2c_write_u8(0x48, val, LDO9_CTRL)) {
 		printf("twl6035: could not turn on LDO9.\n");
 		return 1;
 	}