eeprom: at24: Add support for address-width property
Provide a flexible way to determine the addressing bits of eeprom. Pass the addressing bits to driver through address-width property. Signed-off-by: Alan Chiang <alanx.chiang@intel.com> Signed-off-by: Andy Yeh <andy.yeh@intel.com> Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
This commit is contained in:
parent
21d0405450
commit
a2b3bf4846
@ -478,6 +478,23 @@ static void at24_properties_to_pdata(struct device *dev,
|
|||||||
if (device_property_present(dev, "no-read-rollover"))
|
if (device_property_present(dev, "no-read-rollover"))
|
||||||
chip->flags |= AT24_FLAG_NO_RDROL;
|
chip->flags |= AT24_FLAG_NO_RDROL;
|
||||||
|
|
||||||
|
err = device_property_read_u32(dev, "address-width", &val);
|
||||||
|
if (!err) {
|
||||||
|
switch (val) {
|
||||||
|
case 8:
|
||||||
|
if (chip->flags & AT24_FLAG_ADDR16)
|
||||||
|
dev_warn(dev, "Override address width to be 8, while default is 16\n");
|
||||||
|
chip->flags &= ~AT24_FLAG_ADDR16;
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
chip->flags |= AT24_FLAG_ADDR16;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
dev_warn(dev, "Bad \"address-width\" property: %u\n",
|
||||||
|
val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = device_property_read_u32(dev, "size", &val);
|
err = device_property_read_u32(dev, "size", &val);
|
||||||
if (!err)
|
if (!err)
|
||||||
chip->byte_len = val;
|
chip->byte_len = val;
|
||||||
|
Loading…
Reference in New Issue
Block a user