diff mbox series

eeprom: at25: allow page sizes greater than 16 bit

Message ID 20200727111218.26926-1-ceggers@arri.de (mailing list archive)
State New, archived
Headers show
Series eeprom: at25: allow page sizes greater than 16 bit | expand

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 Kroah-Hartman 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
diff mbox series

Patch

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 */