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

eeprom: at24: implement support for 'num-addresses' property

If the device node defines 'num-addresses', let it override the default
behavior.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>

+8 -5
+8 -5
drivers/misc/eeprom/at24.c
··· 641 641 if (!is_power_of_2(page_size)) 642 642 dev_warn(dev, "page_size looks suspicious (no power of 2)!\n"); 643 643 644 - if (flags & AT24_FLAG_TAKE8ADDR) 645 - num_addresses = 8; 646 - else 647 - num_addresses = DIV_ROUND_UP(byte_len, 648 - (flags & AT24_FLAG_ADDR16) ? 65536 : 256); 644 + err = device_property_read_u32(dev, "num-addresses", &num_addresses); 645 + if (err) { 646 + if (flags & AT24_FLAG_TAKE8ADDR) 647 + num_addresses = 8; 648 + else 649 + num_addresses = DIV_ROUND_UP(byte_len, 650 + (flags & AT24_FLAG_ADDR16) ? 65536 : 256); 651 + } 649 652 650 653 if ((flags & AT24_FLAG_SERIAL) && (flags & AT24_FLAG_MAC)) { 651 654 dev_err(dev,