Lines Matching full:max8998

3 // max8998.c - Voltage regulator driver for the Maxim 8998
22 #include <linux/mfd/max8998.h>
23 #include <linux/mfd/max8998-private.h>
83 struct max8998_data *max8998 = rdev_get_drvdata(rdev); in max8998_ldo_is_enabled() local
84 struct i2c_client *i2c = max8998->iodev->i2c; in max8998_ldo_is_enabled()
106 struct max8998_data *max8998 = rdev_get_drvdata(rdev); in max8998_ldo_enable() local
107 struct i2c_client *i2c = max8998->iodev->i2c; in max8998_ldo_enable()
119 struct max8998_data *max8998 = rdev_get_drvdata(rdev); in max8998_ldo_disable() local
120 struct i2c_client *i2c = max8998->iodev->i2c; in max8998_ldo_disable()
134 struct max8998_data *max8998 = rdev_get_drvdata(rdev); in max8998_get_voltage_register() local
171 reg = MAX8998_REG_BUCK1_VOLTAGE1 + max8998->buck1_idx; in max8998_get_voltage_register()
174 reg = MAX8998_REG_BUCK2_VOLTAGE1 + max8998->buck2_idx; in max8998_get_voltage_register()
195 struct max8998_data *max8998 = rdev_get_drvdata(rdev); in max8998_get_voltage_sel() local
196 struct i2c_client *i2c = max8998->iodev->i2c; in max8998_get_voltage_sel()
217 struct max8998_data *max8998 = rdev_get_drvdata(rdev); in max8998_set_voltage_ldo_sel() local
218 struct i2c_client *i2c = max8998->iodev->i2c; in max8998_set_voltage_ldo_sel()
244 struct max8998_data *max8998 = rdev_get_drvdata(rdev); in max8998_set_voltage_buck_sel() local
245 struct max8998_platform_data *pdata = max8998->iodev->pdata; in max8998_set_voltage_buck_sel()
246 struct i2c_client *i2c = max8998->iodev->i2c; in max8998_set_voltage_buck_sel()
257 dev_dbg(max8998->dev, in max8998_set_voltage_buck_sel()
260 selector, max8998->buck1_vol[0], max8998->buck1_vol[1], in max8998_set_voltage_buck_sel()
261 max8998->buck1_vol[2], max8998->buck1_vol[3]); in max8998_set_voltage_buck_sel()
268 for (j = 0; j < ARRAY_SIZE(max8998->buck1_vol); j++) { in max8998_set_voltage_buck_sel()
269 if (max8998->buck1_vol[j] == selector) { in max8998_set_voltage_buck_sel()
270 max8998->buck1_idx = j; in max8998_set_voltage_buck_sel()
281 max8998->buck1_idx = (buck1_last_val % 2) + 2; in max8998_set_voltage_buck_sel()
282 dev_dbg(max8998->dev, "max8998->buck1_idx:%d\n", in max8998_set_voltage_buck_sel()
283 max8998->buck1_idx); in max8998_set_voltage_buck_sel()
284 max8998->buck1_vol[max8998->buck1_idx] = selector; in max8998_set_voltage_buck_sel()
290 pdata->buck1_set2, max8998->buck1_idx); in max8998_set_voltage_buck_sel()
293 dev_dbg(max8998->dev, "%s: SET1:%d, SET2:%d\n", in max8998_set_voltage_buck_sel()
303 dev_dbg(max8998->dev, in max8998_set_voltage_buck_sel()
305 selector, max8998->buck2_vol[0], max8998->buck2_vol[1]); in max8998_set_voltage_buck_sel()
310 for (j = 0; j < ARRAY_SIZE(max8998->buck2_vol); j++) { in max8998_set_voltage_buck_sel()
311 if (max8998->buck2_vol[j] == selector) { in max8998_set_voltage_buck_sel()
312 max8998->buck2_idx = j; in max8998_set_voltage_buck_sel()
324 max8998->buck2_vol[max8998->buck2_idx] = selector; in max8998_set_voltage_buck_sel()
325 buck2_gpio_set(pdata->buck2_set3, max8998->buck2_idx); in max8998_set_voltage_buck_sel()
327 dev_dbg(max8998->dev, "%s: SET3:%d\n", i2c->name, in max8998_set_voltage_buck_sel()
348 struct max8998_data *max8998 = rdev_get_drvdata(rdev); in max8998_set_voltage_buck_time_sel() local
349 struct i2c_client *i2c = max8998->iodev->i2c; in max8998_set_voltage_buck_time_sel()
363 /* MAX8998 has ENRAMP bit implemented, so test it*/ in max8998_set_voltage_buck_time_sel()
364 if (max8998->iodev->type == TYPE_MAX8998 && !(val & MAX8998_ENRAMP)) in max8998_set_voltage_buck_time_sel()
377 struct max8998_data *max8998 = rdev_get_drvdata(rdev); in max8998_set_current_limit() local
378 struct i2c_client *i2c = max8998->iodev->i2c; in max8998_set_current_limit()
420 struct max8998_data *max8998 = rdev_get_drvdata(rdev); in max8998_get_current_limit() local
421 struct i2c_client *i2c = max8998->iodev->i2c; in max8998_get_current_limit()
548 gpio = of_get_named_gpio(pmic_np, "max8998,pmic-buck1-dvs-gpios", 0); in max8998_pmic_dt_parse_dvs_gpio()
555 gpio = of_get_named_gpio(pmic_np, "max8998,pmic-buck1-dvs-gpios", 1); in max8998_pmic_dt_parse_dvs_gpio()
562 gpio = of_get_named_gpio(pmic_np, "max8998,pmic-buck2-dvs-gpio", 0); in max8998_pmic_dt_parse_dvs_gpio()
621 pdata->buck_voltage_lock = of_property_read_bool(pmic_np, "max8998,pmic-buck-voltage-lock"); in max8998_pmic_dt_parse_pdata()
624 "max8998,pmic-buck1-default-dvs-idx", in max8998_pmic_dt_parse_pdata()
632 "max8998,pmic-buck2-default-dvs-idx", in max8998_pmic_dt_parse_pdata()
640 "max8998,pmic-buck1-dvs-voltage", in max8998_pmic_dt_parse_pdata()
649 "max8998,pmic-buck2-dvs-voltage", in max8998_pmic_dt_parse_pdata()
666 struct max8998_data *max8998; in max8998_pmic_probe() local
682 max8998 = devm_kzalloc(&pdev->dev, sizeof(struct max8998_data), in max8998_pmic_probe()
684 if (!max8998) in max8998_pmic_probe()
687 max8998->dev = &pdev->dev; in max8998_pmic_probe()
688 max8998->iodev = iodev; in max8998_pmic_probe()
689 max8998->num_regulators = pdata->num_regulators; in max8998_pmic_probe()
690 platform_set_drvdata(pdev, max8998); in max8998_pmic_probe()
691 i2c = max8998->iodev->i2c; in max8998_pmic_probe()
693 max8998->buck1_idx = pdata->buck1_default_idx; in max8998_pmic_probe()
694 max8998->buck2_idx = pdata->buck2_default_idx; in max8998_pmic_probe()
700 /* Check if MAX8998 voltage selection GPIOs are defined */ in max8998_pmic_probe()
706 "MAX8998 SET1 GPIO defined as 0 !\n"); in max8998_pmic_probe()
713 "MAX8998 SET2 GPIO defined as 0 !\n"); in max8998_pmic_probe()
718 gpio_request(pdata->buck1_set1, "MAX8998 BUCK1_SET1"); in max8998_pmic_probe()
720 max8998->buck1_idx & 0x1); in max8998_pmic_probe()
723 gpio_request(pdata->buck1_set2, "MAX8998 BUCK1_SET2"); in max8998_pmic_probe()
725 (max8998->buck1_idx >> 1) & 0x1); in max8998_pmic_probe()
737 max8998->buck1_vol[v] = i; in max8998_pmic_probe()
749 "MAX8998 SET3 GPIO defined as 0 !\n"); in max8998_pmic_probe()
753 gpio_request(pdata->buck2_set3, "MAX8998 BUCK2_SET3"); in max8998_pmic_probe()
755 max8998->buck2_idx & 0x1); in max8998_pmic_probe()
767 max8998->buck2_vol[v] = i; in max8998_pmic_probe()
778 config.dev = max8998->dev; in max8998_pmic_probe()
781 config.driver_data = max8998; in max8998_pmic_probe()
787 dev_err(max8998->dev, "regulator %s init failed (%d)\n", in max8998_pmic_probe()
797 { "max8998-pmic", TYPE_MAX8998 },
805 .name = "max8998-pmic",