Lines Matching refs:chip
97 struct da9211 *chip = rdev_get_drvdata(rdev); in da9211_buck_get_mode() local
101 ret = regmap_read(chip->regmap, DA9211_REG_BUCKA_CONF+id, &data); in da9211_buck_get_mode()
124 struct da9211 *chip = rdev_get_drvdata(rdev); in da9211_buck_set_mode() local
139 return regmap_update_bits(chip->regmap, DA9211_REG_BUCKA_CONF+id, in da9211_buck_set_mode()
147 struct da9211 *chip = rdev_get_drvdata(rdev); in da9211_set_current_limit() local
151 switch (chip->chip_id) { in da9211_set_current_limit()
168 return regmap_update_bits(chip->regmap, in da9211_set_current_limit()
180 struct da9211 *chip = rdev_get_drvdata(rdev); in da9211_get_current_limit() local
185 switch (chip->chip_id) { in da9211_get_current_limit()
196 ret = regmap_read(chip->regmap, DA9211_REG_BUCK_ILIM, &data); in da9211_get_current_limit()
299 struct da9211 *chip = data; in da9211_irq_handler() local
302 err = regmap_read(chip->regmap, DA9211_REG_EVENT_B, ®_val); in da9211_irq_handler()
307 regulator_notifier_call_chain(chip->rdev[0], in da9211_irq_handler()
310 err = regmap_write(chip->regmap, DA9211_REG_EVENT_B, in da9211_irq_handler()
319 regulator_notifier_call_chain(chip->rdev[1], in da9211_irq_handler()
322 err = regmap_write(chip->regmap, DA9211_REG_EVENT_B, in da9211_irq_handler()
333 dev_err(chip->dev, "I2C error : %d\n", err); in da9211_irq_handler()
337 static int da9211_regulator_init(struct da9211 *chip) in da9211_regulator_init() argument
343 ret = regmap_read(chip->regmap, DA9211_REG_CONFIG_E, &data); in da9211_regulator_init()
345 dev_err(chip->dev, "Failed to read CONFIG_E reg: %d\n", ret); in da9211_regulator_init()
353 if ((chip->pdata->num_buck == 2 && data == 0x40) in da9211_regulator_init()
354 || (chip->pdata->num_buck == 1 && data == 0x00)) { in da9211_regulator_init()
356 chip->num_regulator = 1; in da9211_regulator_init()
358 chip->num_regulator = 2; in da9211_regulator_init()
360 dev_err(chip->dev, "Configuration is mismatched\n"); in da9211_regulator_init()
364 for (i = 0; i < chip->num_regulator; i++) { in da9211_regulator_init()
365 config.init_data = chip->pdata->init_data[i]; in da9211_regulator_init()
366 config.dev = chip->dev; in da9211_regulator_init()
367 config.driver_data = chip; in da9211_regulator_init()
368 config.regmap = chip->regmap; in da9211_regulator_init()
369 config.of_node = chip->pdata->reg_node[i]; in da9211_regulator_init()
371 if (gpio_is_valid(chip->pdata->gpio_ren[i])) { in da9211_regulator_init()
372 config.ena_gpio = chip->pdata->gpio_ren[i]; in da9211_regulator_init()
379 chip->rdev[i] = devm_regulator_register(chip->dev, in da9211_regulator_init()
381 if (IS_ERR(chip->rdev[i])) { in da9211_regulator_init()
382 dev_err(chip->dev, in da9211_regulator_init()
384 return PTR_ERR(chip->rdev[i]); in da9211_regulator_init()
387 if (chip->chip_irq != 0) { in da9211_regulator_init()
388 ret = regmap_update_bits(chip->regmap, in da9211_regulator_init()
391 dev_err(chip->dev, in da9211_regulator_init()
407 struct da9211 *chip; in da9211_i2c_probe() local
411 chip = devm_kzalloc(&i2c->dev, sizeof(struct da9211), GFP_KERNEL); in da9211_i2c_probe()
412 if (!chip) in da9211_i2c_probe()
415 chip->dev = &i2c->dev; in da9211_i2c_probe()
416 chip->regmap = devm_regmap_init_i2c(i2c, &da9211_regmap_config); in da9211_i2c_probe()
417 if (IS_ERR(chip->regmap)) { in da9211_i2c_probe()
418 error = PTR_ERR(chip->regmap); in da9211_i2c_probe()
419 dev_err(chip->dev, "Failed to allocate register map: %d\n", in da9211_i2c_probe()
424 i2c_set_clientdata(i2c, chip); in da9211_i2c_probe()
426 chip->pdata = i2c->dev.platform_data; in da9211_i2c_probe()
428 ret = regmap_read(chip->regmap, DA9211_REG_DEVICE_ID, &data); in da9211_i2c_probe()
430 dev_err(chip->dev, "Failed to read DEVICE_ID reg: %d\n", ret); in da9211_i2c_probe()
436 chip->chip_id = DA9211; in da9211_i2c_probe()
439 chip->chip_id = DA9213; in da9211_i2c_probe()
442 dev_err(chip->dev, "Unsupported device id = 0x%x.\n", data); in da9211_i2c_probe()
446 if (!chip->pdata) in da9211_i2c_probe()
447 chip->pdata = da9211_parse_regulators_dt(chip->dev); in da9211_i2c_probe()
449 if (IS_ERR(chip->pdata)) { in da9211_i2c_probe()
450 dev_err(chip->dev, "No regulators defined for the platform\n"); in da9211_i2c_probe()
451 return PTR_ERR(chip->pdata); in da9211_i2c_probe()
454 chip->chip_irq = i2c->irq; in da9211_i2c_probe()
456 if (chip->chip_irq != 0) { in da9211_i2c_probe()
457 ret = devm_request_threaded_irq(chip->dev, chip->chip_irq, NULL, in da9211_i2c_probe()
460 "da9211", chip); in da9211_i2c_probe()
462 dev_err(chip->dev, "Failed to request IRQ: %d\n", in da9211_i2c_probe()
463 chip->chip_irq); in da9211_i2c_probe()
467 dev_warn(chip->dev, "No IRQ configured\n"); in da9211_i2c_probe()
470 ret = da9211_regulator_init(chip); in da9211_i2c_probe()
473 dev_err(chip->dev, "Failed to initialize regulator: %d\n", ret); in da9211_i2c_probe()