mirror of https://gitee.com/openkylin/linux.git
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"))
|
||||
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);
|
||||
if (!err)
|
||||
chip->byte_len = val;
|
||||
|
|
Loading…
Reference in New Issue