|
@@ -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;
|