diff mbox series

nvmem: uniphier: change access unit from 32bit to 8bit

Message ID 1511327699-26396-1-git-send-email-hayashi.kunihiko@socionext.com
State Accepted
Commit 683618b0639387c5eda79b2f2753c35f3dd648d7
Headers show
Series nvmem: uniphier: change access unit from 32bit to 8bit | expand

Commit Message

Kunihiko Hayashi Nov. 22, 2017, 5:14 a.m. UTC
The efuse on UniPhier allows 8bit access according to the specification.
Since bit offset of nvmem is limited to 0-7, it is desiable to change
access unit of nvmem to 8bit.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>

---
 drivers/nvmem/uniphier-efuse.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

-- 
2.7.4

Comments

Masahiro Yamada Nov. 22, 2017, 6:21 a.m. UTC | #1
2017-11-22 14:14 GMT+09:00 Kunihiko Hayashi <hayashi.kunihiko@socionext.com>:
> The efuse on UniPhier allows 8bit access according to the specification.

> Since bit offset of nvmem is limited to 0-7, it is desiable to change

> access unit of nvmem to 8bit.

>

> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>



Tested on LD4, sLD8, Pro4, PXs2, LD11, LD20, and PXs3.
All worked for me.

Tested-by: Masahiro Yamada <yamada.masahiro@socionext.com>


Thanks.


-- 
Best Regards
Masahiro Yamada
Keiji Hayashibara Nov. 22, 2017, 6:46 a.m. UTC | #2
Reviewed-by: Keiji Hayashibara <hayashibara.keiji@socionext.com>


Thanks.

-----
Best Regards,
Keiji Hayashibara

> -----Original Message-----

> From: Kunihiko Hayashi [mailto:hayashi.kunihiko@socionext.com]

> Sent: Wednesday, November 22, 2017 2:15 PM

> To: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

> Cc: Yamada, Masahiro/山田 真弘 <yamada.masahiro@socionext.com>; Hayashibara, Keiji/林原 啓二

> <hayashibara.keiji@socionext.com>; masami.hiramatsu@linaro.org; jaswinder.singh@linaro.org;

> linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; Hayashi, Kunihiko/林 邦彦

> <hayashi.kunihiko@socionext.com>

> Subject: [PATCH] nvmem: uniphier: change access unit from 32bit to 8bit

> 

> The efuse on UniPhier allows 8bit access according to the specification.

> Since bit offset of nvmem is limited to 0-7, it is desiable to change access unit of nvmem to 8bit.

> 

> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>

> ---

>  drivers/nvmem/uniphier-efuse.c | 10 +++++-----

>  1 file changed, 5 insertions(+), 5 deletions(-)

> 

> diff --git a/drivers/nvmem/uniphier-efuse.c b/drivers/nvmem/uniphier-efuse.c index 2bb45c4..fac3122 100644

> --- a/drivers/nvmem/uniphier-efuse.c

> +++ b/drivers/nvmem/uniphier-efuse.c

> @@ -27,11 +27,11 @@ static int uniphier_reg_read(void *context,

>  			     unsigned int reg, void *_val, size_t bytes)  {

>  	struct uniphier_efuse_priv *priv = context;

> -	u32 *val = _val;

> +	u8 *val = _val;

>  	int offs;

> 

> -	for (offs = 0; offs < bytes; offs += sizeof(u32))

> -		*val++ = readl(priv->base + reg + offs);

> +	for (offs = 0; offs < bytes; offs += sizeof(u8))

> +		*val++ = readb(priv->base + reg + offs);

> 

>  	return 0;

>  }

> @@ -53,8 +53,8 @@ static int uniphier_efuse_probe(struct platform_device *pdev)

>  	if (IS_ERR(priv->base))

>  		return PTR_ERR(priv->base);

> 

> -	econfig.stride = 4;

> -	econfig.word_size = 4;

> +	econfig.stride = 1;

> +	econfig.word_size = 1;

>  	econfig.read_only = true;

>  	econfig.reg_read = uniphier_reg_read;

>  	econfig.size = resource_size(res);

> --

> 2.7.4
Kunihiko Hayashi Dec. 13, 2017, 9:31 a.m. UTC | #3
Hello Srinivas,

This patch was already reviewed and tested for all UniPhier SoCs:
https://patchwork.kernel.org/patch/10069557/

Do you have any comments, or would you please pick it up?

Thank you,

On Wed, 22 Nov 2017 14:14:59 +0900 Kunihiko Hayashi <hayashi.kunihiko@socionext.com> wrote:

> The efuse on UniPhier allows 8bit access according to the specification.

> Since bit offset of nvmem is limited to 0-7, it is desiable to change

> access unit of nvmem to 8bit.

> 

> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>

> ---

>  drivers/nvmem/uniphier-efuse.c | 10 +++++-----

>  1 file changed, 5 insertions(+), 5 deletions(-)

> 

> diff --git a/drivers/nvmem/uniphier-efuse.c b/drivers/nvmem/uniphier-efuse.c

> index 2bb45c4..fac3122 100644

> --- a/drivers/nvmem/uniphier-efuse.c

> +++ b/drivers/nvmem/uniphier-efuse.c

> @@ -27,11 +27,11 @@ static int uniphier_reg_read(void *context,

>  			     unsigned int reg, void *_val, size_t bytes)

>  {

>  	struct uniphier_efuse_priv *priv = context;

> -	u32 *val = _val;

> +	u8 *val = _val;

>  	int offs;

>  

> -	for (offs = 0; offs < bytes; offs += sizeof(u32))

> -		*val++ = readl(priv->base + reg + offs);

> +	for (offs = 0; offs < bytes; offs += sizeof(u8))

> +		*val++ = readb(priv->base + reg + offs);

>  

>  	return 0;

>  }

> @@ -53,8 +53,8 @@ static int uniphier_efuse_probe(struct platform_device *pdev)

>  	if (IS_ERR(priv->base))

>  		return PTR_ERR(priv->base);

>  

> -	econfig.stride = 4;

> -	econfig.word_size = 4;

> +	econfig.stride = 1;

> +	econfig.word_size = 1;

>  	econfig.read_only = true;

>  	econfig.reg_read = uniphier_reg_read;

>  	econfig.size = resource_size(res);

> -- 

> 2.7.4


---
Best Regards,
Kunihiko Hayashi
Srinivas Kandagatla Dec. 13, 2017, 9:36 a.m. UTC | #4
On 13/12/17 09:31, Kunihiko Hayashi wrote:
> Hello Srinivas,

> 

> This patch was already reviewed and tested for all UniPhier SoCs:

> https://patchwork.kernel.org/patch/10069557/

> 

> Do you have any comments, or would you please pick it up?


Thanks for your patience,

I will send it along with other fixes to Greg Sometime this week!

Rgrds,
Srini
> 

> Thank you,

> 

> On Wed, 22 Nov 2017 14:14:59 +0900 Kunihiko Hayashi <hayashi.kunihiko@socionext.com> wrote:

> 

>> The efuse on UniPhier allows 8bit access according to the specification.

>> Since bit offset of nvmem is limited to 0-7, it is desiable to change

>> access unit of nvmem to 8bit.

>>

>> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>

>> ---

>>   drivers/nvmem/uniphier-efuse.c | 10 +++++-----

>>   1 file changed, 5 insertions(+), 5 deletions(-)

>>

>> diff --git a/drivers/nvmem/uniphier-efuse.c b/drivers/nvmem/uniphier-efuse.c

>> index 2bb45c4..fac3122 100644

>> --- a/drivers/nvmem/uniphier-efuse.c

>> +++ b/drivers/nvmem/uniphier-efuse.c

>> @@ -27,11 +27,11 @@ static int uniphier_reg_read(void *context,

>>   			     unsigned int reg, void *_val, size_t bytes)

>>   {

>>   	struct uniphier_efuse_priv *priv = context;

>> -	u32 *val = _val;

>> +	u8 *val = _val;

>>   	int offs;

>>   

>> -	for (offs = 0; offs < bytes; offs += sizeof(u32))

>> -		*val++ = readl(priv->base + reg + offs);

>> +	for (offs = 0; offs < bytes; offs += sizeof(u8))

>> +		*val++ = readb(priv->base + reg + offs);

>>   

>>   	return 0;

>>   }

>> @@ -53,8 +53,8 @@ static int uniphier_efuse_probe(struct platform_device *pdev)

>>   	if (IS_ERR(priv->base))

>>   		return PTR_ERR(priv->base);

>>   

>> -	econfig.stride = 4;

>> -	econfig.word_size = 4;

>> +	econfig.stride = 1;

>> +	econfig.word_size = 1;

>>   	econfig.read_only = true;

>>   	econfig.reg_read = uniphier_reg_read;

>>   	econfig.size = resource_size(res);

>> -- 

>> 2.7.4

> 

> ---

> Best Regards,

> Kunihiko Hayashi

> 

>
diff mbox series

Patch

diff --git a/drivers/nvmem/uniphier-efuse.c b/drivers/nvmem/uniphier-efuse.c
index 2bb45c4..fac3122 100644
--- a/drivers/nvmem/uniphier-efuse.c
+++ b/drivers/nvmem/uniphier-efuse.c
@@ -27,11 +27,11 @@  static int uniphier_reg_read(void *context,
 			     unsigned int reg, void *_val, size_t bytes)
 {
 	struct uniphier_efuse_priv *priv = context;
-	u32 *val = _val;
+	u8 *val = _val;
 	int offs;
 
-	for (offs = 0; offs < bytes; offs += sizeof(u32))
-		*val++ = readl(priv->base + reg + offs);
+	for (offs = 0; offs < bytes; offs += sizeof(u8))
+		*val++ = readb(priv->base + reg + offs);
 
 	return 0;
 }
@@ -53,8 +53,8 @@  static int uniphier_efuse_probe(struct platform_device *pdev)
 	if (IS_ERR(priv->base))
 		return PTR_ERR(priv->base);
 
-	econfig.stride = 4;
-	econfig.word_size = 4;
+	econfig.stride = 1;
+	econfig.word_size = 1;
 	econfig.read_only = true;
 	econfig.reg_read = uniphier_reg_read;
 	econfig.size = resource_size(res);