pca9450
struct pca9450 *pca9450 = data;
struct regmap *regmap = pca9450->regmap;
dev_err(pca9450->dev,
dev_warn(pca9450->dev, "PWRON interrupt.\n");
dev_warn(pca9450->dev, "WDOGB interrupt.\n");
dev_warn(pca9450->dev, "VRFLT1 interrupt.\n");
dev_warn(pca9450->dev, "VRFLT2 interrupt.\n");
dev_warn(pca9450->dev, "LOWVSYS interrupt.\n");
dev_warn(pca9450->dev, "IRQ_THERM_105 interrupt.\n");
dev_warn(pca9450->dev, "IRQ_THERM_125 interrupt.\n");
struct pca9450 *pca9450 = data->cb_data;
struct i2c_client *i2c = container_of(pca9450->dev, struct i2c_client, dev);
struct pca9450 *pca9450 = rdev_get_drvdata(rdev);
static int pca9450_of_init(struct pca9450 *pca9450)
struct i2c_client *i2c = container_of(pca9450->dev, struct i2c_client, dev);
ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_RESET_CTRL,
if (pca9450->sd_vsel_fixed_low)
ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_RESET_CTRL,
if (pca9450->sd_vsel_gpio && !gpiod_get_value(pca9450->sd_vsel_gpio))
ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_PWRCTRL,
ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_CONFIG2,
struct pca9450 *pca9450;
pca9450 = devm_kzalloc(&i2c->dev, sizeof(struct pca9450), GFP_KERNEL);
if (!pca9450)
pca9450->rcnt = ARRAY_SIZE(pca9450a_regulators);
pca9450->rcnt = ARRAY_SIZE(pca9450bc_regulators);
pca9450->rcnt = ARRAY_SIZE(pca9451a_regulators);
pca9450->rcnt = ARRAY_SIZE(pca9451a_regulators);
pca9450->irq = i2c->irq;
pca9450->type = type;
pca9450->dev = &i2c->dev;
dev_set_drvdata(&i2c->dev, pca9450);
pca9450->regmap = devm_regmap_init_i2c(i2c,
if (IS_ERR(pca9450->regmap))
return dev_err_probe(&i2c->dev, PTR_ERR(pca9450->regmap),
ret = regmap_read(pca9450->regmap, PCA9450_REG_DEV_ID, &device_id);
for (i = 0; i < pca9450->rcnt; i++) {
config.regmap = pca9450->regmap;
config.dev = pca9450->dev;
config.driver_data = pca9450;
rdev = devm_regulator_register(pca9450->dev, desc, &config);
return dev_err_probe(pca9450->dev, PTR_ERR(rdev),
if (pca9450->irq) {
ret = devm_request_threaded_irq(pca9450->dev, pca9450->irq, NULL,
"pca9450-irq", pca9450);
return dev_err_probe(pca9450->dev, ret, "Failed to request IRQ: %d\n",
pca9450->irq);
ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_INT1_MSK,
ret = regmap_clear_bits(pca9450->regmap, PCA9450_REG_BUCK123_DVS,
ret = pca9450_of_init(pca9450);
pca9450->sd_vsel_gpio = gpiod_get_optional(&ldo5->dev, "sd-vsel", GPIOD_IN);
if (IS_ERR(pca9450->sd_vsel_gpio))
return dev_err_probe(&i2c->dev, PTR_ERR(pca9450->sd_vsel_gpio),
pca9450->sd_vsel_fixed_low =
pca9450_i2c_restart_handler, pca9450))