eeprom: at25: allow page sizes greater than 16 bit
diff mbox series

Message ID 20200727111218.26926-1-ceggers@arri.de
State New
Headers show
Series
  • eeprom: at25: allow page sizes greater than 16 bit
Related show

Commit Message

Christian Eggers July 27, 2020, 11:12 a.m. UTC
Storage technologies like FRAM have no "write pages", the whole chip can
be written within one SPI transfer. For these chips, the page size can
be set equal to the device size. Currently available devices are already
bigger than 64 kiB.

Signed-off-by: Christian Eggers <ceggers@arri.de>
---
 drivers/misc/eeprom/at25.c | 2 +-
 include/linux/spi/eeprom.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Christian Eggers Aug. 4, 2020, 6:40 a.m. UTC | #1
Ping?

On Monday, 27 July 2020, 13:12:18 CEST, Christian Eggers wrote:
> Storage technologies like FRAM have no "write pages", the whole chip can
> be written within one SPI transfer. For these chips, the page size can
> be set equal to the device size. Currently available devices are already
> bigger than 64 kiB.
> 
> Signed-off-by: Christian Eggers <ceggers@arri.de>
> ---
>  drivers/misc/eeprom/at25.c | 2 +-
>  include/linux/spi/eeprom.h | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/misc/eeprom/at25.c b/drivers/misc/eeprom/at25.c
> index cde9a2fc1325..0e7c8dc01195 100644
> --- a/drivers/misc/eeprom/at25.c
> +++ b/drivers/misc/eeprom/at25.c
> @@ -261,7 +261,7 @@ static int at25_fw_to_chip(struct device *dev, struct
> spi_eeprom *chip)
> 
>  	if (device_property_read_u32(dev, "pagesize", &val) == 0 ||
>  	    device_property_read_u32(dev, "at25,page-size", &val) == 0) {
> -		chip->page_size = (u16)val;
> +		chip->page_size = val;
>  	} else {
>  		dev_err(dev, "Error: missing \"pagesize\" property\n");
>  		return -ENODEV;
> diff --git a/include/linux/spi/eeprom.h b/include/linux/spi/eeprom.h
> index aceccf9c71fb..1cca3dd5a748 100644
> --- a/include/linux/spi/eeprom.h
> +++ b/include/linux/spi/eeprom.h
> @@ -14,7 +14,7 @@
>  struct spi_eeprom {
>  	u32		byte_len;
>  	char		name[10];
> -	u16		page_size;		/* for writes */
> +	u32		page_size;		/* for writes */
>  	u16		flags;
>  #define	EE_ADDR1	0x0001			/*  8 bit addrs */
>  #define	EE_ADDR2	0x0002			/* 16 bit addrs */
Greg KH Aug. 4, 2020, 7:19 a.m. UTC | #2
On Tue, Aug 04, 2020 at 08:40:52AM +0200, Christian Eggers wrote:
> Ping?

It's the middle of the merge window now, I can't take any patches for
the next 2 weeks, sorry.  It is in my queue, and will be looked at after
5.9-rc1 is out.

thanks,

greg k-h

Patch
diff mbox series

diff --git a/drivers/misc/eeprom/at25.c b/drivers/misc/eeprom/at25.c
index cde9a2fc1325..0e7c8dc01195 100644
--- a/drivers/misc/eeprom/at25.c
+++ b/drivers/misc/eeprom/at25.c
@@ -261,7 +261,7 @@  static int at25_fw_to_chip(struct device *dev, struct spi_eeprom *chip)
 
 	if (device_property_read_u32(dev, "pagesize", &val) == 0 ||
 	    device_property_read_u32(dev, "at25,page-size", &val) == 0) {
-		chip->page_size = (u16)val;
+		chip->page_size = val;
 	} else {
 		dev_err(dev, "Error: missing \"pagesize\" property\n");
 		return -ENODEV;
diff --git a/include/linux/spi/eeprom.h b/include/linux/spi/eeprom.h
index aceccf9c71fb..1cca3dd5a748 100644
--- a/include/linux/spi/eeprom.h
+++ b/include/linux/spi/eeprom.h
@@ -14,7 +14,7 @@ 
 struct spi_eeprom {
 	u32		byte_len;
 	char		name[10];
-	u16		page_size;		/* for writes */
+	u32		page_size;		/* for writes */
 	u16		flags;
 #define	EE_ADDR1	0x0001			/*  8 bit addrs */
 #define	EE_ADDR2	0x0002			/* 16 bit addrs */