Lines Matching refs:eeprom
78 * @eeprom: EEPROM device to write to
90 static int rave_sp_eeprom_io(struct rave_sp_eeprom *eeprom,
97 const unsigned int cmd_size = eeprom->header_size + data_size;
107 cmd[offset++] = eeprom->address;
117 if (offset < eeprom->header_size)
126 ret = rave_sp_exec(eeprom->sp, cmd, cmd_size, page, rsp_size);
142 * @eeprom: EEPROM device to access
156 rave_sp_eeprom_page_access(struct rave_sp_eeprom *eeprom,
181 ret = rave_sp_eeprom_io(eeprom, RAVE_SP_EEPROM_READ,
190 ret = rave_sp_eeprom_io(eeprom, type, page_nr, &page);
207 * @eeprom: EEPROM device to access
220 static int rave_sp_eeprom_access(struct rave_sp_eeprom *eeprom,
230 mutex_lock(&eeprom->mutex);
259 ret = rave_sp_eeprom_page_access(eeprom, type, offset,
269 mutex_unlock(&eeprom->mutex);
273 static int rave_sp_eeprom_reg_read(void *eeprom, unsigned int offset,
276 return rave_sp_eeprom_access(eeprom, RAVE_SP_EEPROM_READ,
280 static int rave_sp_eeprom_reg_write(void *eeprom, unsigned int offset,
283 return rave_sp_eeprom_access(eeprom, RAVE_SP_EEPROM_WRITE,
293 struct rave_sp_eeprom *eeprom;
312 eeprom = devm_kzalloc(dev, sizeof(*eeprom), GFP_KERNEL);
313 if (!eeprom)
316 eeprom->address = reg[0];
317 eeprom->sp = sp;
318 eeprom->dev = dev;
321 eeprom->header_size = RAVE_SP_EEPROM_HEADER_BIG;
323 eeprom->header_size = RAVE_SP_EEPROM_HEADER_SMALL;
325 mutex_init(&eeprom->mutex);
328 of_property_read_string(np, "zii,eeprom-name", &config.name);
329 config.priv = eeprom;
344 { .compatible = "zii,rave-sp-eeprom" },