Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a2b3bf48 authored by Alan Chiang's avatar Alan Chiang Committed by Bartosz Golaszewski
Browse files

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: default avatarAlan Chiang <alanx.chiang@intel.com>
Signed-off-by: default avatarAndy Yeh <andy.yeh@intel.com>
Signed-off-by: default avatarBartosz Golaszewski <brgl@bgdev.pl>
parent 21d04054
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -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;