Lines Matching +full:pmic +full:- +full:id
1 // SPDX-License-Identifier: GPL-2.0-only
3 * isl6271a-regulator.c
23 /* PMIC details */
31 struct isl_pmic *pmic = rdev_get_drvdata(dev); in isl6271a_get_voltage_sel() local
34 mutex_lock(&pmic->mtx); in isl6271a_get_voltage_sel()
36 idx = i2c_smbus_read_byte(pmic->client); in isl6271a_get_voltage_sel()
38 dev_err(&pmic->client->dev, "Error getting voltage\n"); in isl6271a_get_voltage_sel()
40 mutex_unlock(&pmic->mtx); in isl6271a_get_voltage_sel()
47 struct isl_pmic *pmic = rdev_get_drvdata(dev); in isl6271a_set_voltage_sel() local
50 mutex_lock(&pmic->mtx); in isl6271a_set_voltage_sel()
52 err = i2c_smbus_write_byte(pmic->client, selector); in isl6271a_set_voltage_sel()
54 dev_err(&pmic->client->dev, "Error setting voltage\n"); in isl6271a_set_voltage_sel()
56 mutex_unlock(&pmic->mtx); in isl6271a_set_voltage_sel()
74 .id = 0,
83 .id = 1,
91 .id = 2,
102 const struct i2c_device_id *id = i2c_client_get_device_id(i2c); in isl6271a_probe() local
105 struct regulator_init_data *init_data = dev_get_platdata(&i2c->dev); in isl6271a_probe()
106 struct isl_pmic *pmic; in isl6271a_probe() local
109 if (!i2c_check_functionality(i2c->adapter, I2C_FUNC_SMBUS_BYTE_DATA)) in isl6271a_probe()
110 return -EIO; in isl6271a_probe()
112 pmic = devm_kzalloc(&i2c->dev, sizeof(struct isl_pmic), GFP_KERNEL); in isl6271a_probe()
113 if (!pmic) in isl6271a_probe()
114 return -ENOMEM; in isl6271a_probe()
116 pmic->client = i2c; in isl6271a_probe()
118 mutex_init(&pmic->mtx); in isl6271a_probe()
121 config.dev = &i2c->dev; in isl6271a_probe()
126 config.driver_data = pmic; in isl6271a_probe()
128 rdev = devm_regulator_register(&i2c->dev, &isl_rd[i], &config); in isl6271a_probe()
130 dev_err(&i2c->dev, "failed to register %s\n", id->name); in isl6271a_probe()
135 i2c_set_clientdata(i2c, pmic); in isl6271a_probe()