Lines Matching refs:chip

105 	struct da9211 *chip = rdev_get_drvdata(rdev);  in da9211_buck_get_mode()  local
109 ret = regmap_read(chip->regmap, DA9211_REG_BUCKA_CONF+id, &data); in da9211_buck_get_mode()
132 struct da9211 *chip = rdev_get_drvdata(rdev); in da9211_buck_set_mode() local
147 return regmap_update_bits(chip->regmap, DA9211_REG_BUCKA_CONF+id, in da9211_buck_set_mode()
155 struct da9211 *chip = rdev_get_drvdata(rdev); in da9211_set_current_limit() local
159 switch (chip->chip_id) { in da9211_set_current_limit()
180 return regmap_update_bits(chip->regmap, in da9211_set_current_limit()
192 struct da9211 *chip = rdev_get_drvdata(rdev); in da9211_get_current_limit() local
197 switch (chip->chip_id) { in da9211_get_current_limit()
211 ret = regmap_read(chip->regmap, DA9211_REG_BUCK_ILIM, &data); in da9211_get_current_limit()
314 struct da9211 *chip = data; in da9211_irq_handler() local
317 err = regmap_read(chip->regmap, DA9211_REG_EVENT_B, &reg_val); in da9211_irq_handler()
322 regulator_notifier_call_chain(chip->rdev[0], in da9211_irq_handler()
325 err = regmap_write(chip->regmap, DA9211_REG_EVENT_B, in da9211_irq_handler()
334 regulator_notifier_call_chain(chip->rdev[1], in da9211_irq_handler()
337 err = regmap_write(chip->regmap, DA9211_REG_EVENT_B, in da9211_irq_handler()
348 dev_err(chip->dev, "I2C error : %d\n", err); in da9211_irq_handler()
352 static int da9211_regulator_init(struct da9211 *chip) in da9211_regulator_init() argument
358 ret = regmap_read(chip->regmap, DA9211_REG_CONFIG_E, &data); in da9211_regulator_init()
360 dev_err(chip->dev, "Failed to read CONFIG_E reg: %d\n", ret); in da9211_regulator_init()
368 if (chip->pdata->num_buck == 1 && data == 0x00) in da9211_regulator_init()
369 chip->num_regulator = 1; in da9211_regulator_init()
370 else if (chip->pdata->num_buck == 2 && data != 0x00) in da9211_regulator_init()
371 chip->num_regulator = 2; in da9211_regulator_init()
373 dev_err(chip->dev, "Configuration is mismatched\n"); in da9211_regulator_init()
377 for (i = 0; i < chip->num_regulator; i++) { in da9211_regulator_init()
378 config.init_data = chip->pdata->init_data[i]; in da9211_regulator_init()
379 config.dev = chip->dev; in da9211_regulator_init()
380 config.driver_data = chip; in da9211_regulator_init()
381 config.regmap = chip->regmap; in da9211_regulator_init()
382 config.of_node = chip->pdata->reg_node[i]; in da9211_regulator_init()
384 if (gpio_is_valid(chip->pdata->gpio_ren[i])) { in da9211_regulator_init()
385 config.ena_gpio = chip->pdata->gpio_ren[i]; in da9211_regulator_init()
392 chip->rdev[i] = devm_regulator_register(chip->dev, in da9211_regulator_init()
394 if (IS_ERR(chip->rdev[i])) { in da9211_regulator_init()
395 dev_err(chip->dev, in da9211_regulator_init()
397 return PTR_ERR(chip->rdev[i]); in da9211_regulator_init()
400 if (chip->chip_irq != 0) { in da9211_regulator_init()
401 ret = regmap_update_bits(chip->regmap, in da9211_regulator_init()
404 dev_err(chip->dev, in da9211_regulator_init()
420 struct da9211 *chip; in da9211_i2c_probe() local
424 chip = devm_kzalloc(&i2c->dev, sizeof(struct da9211), GFP_KERNEL); in da9211_i2c_probe()
425 if (!chip) in da9211_i2c_probe()
428 chip->dev = &i2c->dev; in da9211_i2c_probe()
429 chip->regmap = devm_regmap_init_i2c(i2c, &da9211_regmap_config); in da9211_i2c_probe()
430 if (IS_ERR(chip->regmap)) { in da9211_i2c_probe()
431 error = PTR_ERR(chip->regmap); in da9211_i2c_probe()
432 dev_err(chip->dev, "Failed to allocate register map: %d\n", in da9211_i2c_probe()
437 i2c_set_clientdata(i2c, chip); in da9211_i2c_probe()
439 chip->pdata = i2c->dev.platform_data; in da9211_i2c_probe()
441 ret = regmap_read(chip->regmap, DA9211_REG_DEVICE_ID, &data); in da9211_i2c_probe()
443 dev_err(chip->dev, "Failed to read DEVICE_ID reg: %d\n", ret); in da9211_i2c_probe()
449 chip->chip_id = DA9211; in da9211_i2c_probe()
452 chip->chip_id = DA9213; in da9211_i2c_probe()
455 chip->chip_id = DA9215; in da9211_i2c_probe()
458 dev_err(chip->dev, "Unsupported device id = 0x%x.\n", data); in da9211_i2c_probe()
462 if (!chip->pdata) in da9211_i2c_probe()
463 chip->pdata = da9211_parse_regulators_dt(chip->dev); in da9211_i2c_probe()
465 if (IS_ERR(chip->pdata)) { in da9211_i2c_probe()
466 dev_err(chip->dev, "No regulators defined for the platform\n"); in da9211_i2c_probe()
467 return PTR_ERR(chip->pdata); in da9211_i2c_probe()
470 chip->chip_irq = i2c->irq; in da9211_i2c_probe()
472 if (chip->chip_irq != 0) { in da9211_i2c_probe()
473 ret = devm_request_threaded_irq(chip->dev, chip->chip_irq, NULL, in da9211_i2c_probe()
476 "da9211", chip); in da9211_i2c_probe()
478 dev_err(chip->dev, "Failed to request IRQ: %d\n", in da9211_i2c_probe()
479 chip->chip_irq); in da9211_i2c_probe()
483 dev_warn(chip->dev, "No IRQ configured\n"); in da9211_i2c_probe()
486 ret = da9211_regulator_init(chip); in da9211_i2c_probe()
489 dev_err(chip->dev, "Failed to initialize regulator: %d\n", ret); in da9211_i2c_probe()