pf0900
struct pf0900 *pf0900 = dev_get_drvdata(dev);
if (!pf0900 || !pf0900->dev)
dev_err(pf0900->dev, "Invalid register address: 0x%x\n", reg);
if (pf0900->crc_en) {
dev_err(pf0900->dev, "Read error at reg=0x%x: %d\n", reg, ret);
crc = crc8_j1850(pf0900->addr << 1 | 0x1, reg, FIELD_GET(GENMASK(7, 0), *val));
dev_err(pf0900->dev, "Crc check error!\n");
dev_err(pf0900->dev, "Read error at reg=0x%x: %d\n", reg, ret);
struct pf0900 *pf0900 = dev_get_drvdata(dev);
if (!pf0900 || !pf0900->dev)
dev_err(pf0900->dev, "Invalid register address: 0x%x\n", reg);
if (pf0900->crc_en) {
data[1] = crc8_j1850(pf0900->addr << 1, reg, data[0]);
dev_err(pf0900->dev, "Write reg=0x%x error!\n", reg);
struct pf0900 *pf0900 = data;
ret = regmap_read(pf0900->regmap, regu_irqs[i].reg, &val);
dev_err(pf0900->dev, "Failed to read %d\n", ret);
ret = regmap_write_bits(pf0900->regmap, regu_irqs[i].reg, val, val);
dev_err(pf0900->dev, "Failed to update %d\n", ret);
regulator_notifier_call_chain(pf0900->rdevs[regu],
regulator_notifier_call_chain(pf0900->rdevs[regu],
struct pf0900 *pf0900;
pf0900 = devm_kzalloc(&i2c->dev, sizeof(struct pf0900), GFP_KERNEL);
if (!pf0900)
pf0900->drvdata = drvdata;
pf0900->crc_en = of_property_read_bool(np, "nxp,i2c-crc-enable");
pf0900->irq = i2c->irq;
pf0900->dev = &i2c->dev;
pf0900->addr = i2c->addr;
dev_set_drvdata(&i2c->dev, pf0900);
pf0900->regmap = devm_regmap_init(&i2c->dev, &pf0900_regmap_bus, &i2c->dev,
if (IS_ERR(pf0900->regmap))
return dev_err_probe(&i2c->dev, PTR_ERR(pf0900->regmap),
ret = regmap_read(pf0900->regmap, PF0900_REG_DEV_ID, &device_id);
ret = regmap_read(pf0900->regmap, PF0900_REG_DEV_FAM, &device_fam);
config.regmap = pf0900->regmap;
config.dev = pf0900->dev;
pf0900->rdevs[i] = devm_regulator_register(pf0900->dev, desc, &config);
if (IS_ERR(pf0900->rdevs[i]))
return dev_err_probe(pf0900->dev, PTR_ERR(pf0900->rdevs[i]),
ret = devm_request_threaded_irq(pf0900->dev, pf0900->irq, NULL,
"pf0900-irq", pf0900);
return dev_err_probe(pf0900->dev, ret, "Failed to request IRQ: %d\n",
pf0900->irq);
ret = regmap_write_bits(pf0900->regmap, PF0900_REG_STATUS1_INT, PF0900_IRQ_PWRUP,
ret = regmap_update_bits(pf0900->regmap, PF0900_REG_STATUS1_MSK, PF0900_IRQ_PWRUP,
ret = regmap_update_bits(pf0900->regmap, PF0900_REG_SW_ILIM_MSK, PF0900_IRQ_SW1_IL |
ret = regmap_update_bits(pf0900->regmap, PF0900_REG_SW_UV_MSK, PF0900_IRQ_SW1_UV |
ret = regmap_update_bits(pf0900->regmap, PF0900_REG_SW_OV_MSK, PF0900_IRQ_SW1_OV |
ret = regmap_update_bits(pf0900->regmap, PF0900_REG_LDO_ILIM_MSK, PF0900_IRQ_LDO1_IL |
ret = regmap_update_bits(pf0900->regmap, PF0900_REG_LDO_UV_MSK, PF0900_IRQ_LDO1_UV |
ret = regmap_update_bits(pf0900->regmap, PF0900_REG_LDO_OV_MSK, PF0900_IRQ_LDO1_OV |