Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

eeprom: at25: allow page sizes greater than 16 bit

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>
Link: https://lore.kernel.org/r/20200727111218.26926-1-ceggers@arri.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Christian Eggers and committed by
Greg Kroah-Hartman
d3cd0071 d162219c

+2 -2
+1 -1
drivers/misc/eeprom/at25.c
··· 261 261 262 262 if (device_property_read_u32(dev, "pagesize", &val) == 0 || 263 263 device_property_read_u32(dev, "at25,page-size", &val) == 0) { 264 - chip->page_size = (u16)val; 264 + chip->page_size = val; 265 265 } else { 266 266 dev_err(dev, "Error: missing \"pagesize\" property\n"); 267 267 return -ENODEV;
+1 -1
include/linux/spi/eeprom.h
··· 14 14 struct spi_eeprom { 15 15 u32 byte_len; 16 16 char name[10]; 17 - u16 page_size; /* for writes */ 17 + u32 page_size; /* for writes */ 18 18 u16 flags; 19 19 #define EE_ADDR1 0x0001 /* 8 bit addrs */ 20 20 #define EE_ADDR2 0x0002 /* 16 bit addrs */