• Home
  • Raw
  • Download

Lines Matching +full:low +full:- +full:dropout

1 // SPDX-License-Identifier: GPL-2.0-only
5 * Copyright (C) 2008-2009 ST-Ericsson AB
6 * Low-level control of the AB3100 IC Low Dropout (LDO)
164 err = abx500_get_register_interruptible(abreg->dev, 0, abreg->regreg, in ab3100_enable_regulator()
167 dev_warn(&reg->dev, "failed to get regid %d value\n", in ab3100_enable_regulator()
168 abreg->regreg); in ab3100_enable_regulator()
178 err = abx500_set_register_interruptible(abreg->dev, 0, abreg->regreg, in ab3100_enable_regulator()
181 dev_warn(&reg->dev, "failed to set regid %d value\n", in ab3100_enable_regulator()
182 abreg->regreg); in ab3100_enable_regulator()
200 if (abreg->regreg == AB3100_LDO_D) { in ab3100_disable_regulator()
201 dev_info(&reg->dev, "disabling LDO D - shut down system\n"); in ab3100_disable_regulator()
203 return abx500_set_register_interruptible(abreg->dev, 0, in ab3100_disable_regulator()
210 err = abx500_get_register_interruptible(abreg->dev, 0, abreg->regreg, in ab3100_disable_regulator()
213 dev_err(&reg->dev, "unable to get register 0x%x\n", in ab3100_disable_regulator()
214 abreg->regreg); in ab3100_disable_regulator()
218 return abx500_set_register_interruptible(abreg->dev, 0, abreg->regreg, in ab3100_disable_regulator()
228 err = abx500_get_register_interruptible(abreg->dev, 0, abreg->regreg, in ab3100_is_enabled_regulator()
231 dev_err(&reg->dev, "unable to get register 0x%x\n", in ab3100_is_enabled_regulator()
232 abreg->regreg); in ab3100_is_enabled_regulator()
249 err = abx500_get_register_interruptible(abreg->dev, 0, in ab3100_get_voltage_regulator()
250 abreg->regreg, &regval); in ab3100_get_voltage_regulator()
252 dev_warn(&reg->dev, in ab3100_get_voltage_regulator()
254 abreg->regreg); in ab3100_get_voltage_regulator()
262 if (regval >= reg->desc->n_voltages) { in ab3100_get_voltage_regulator()
263 dev_err(&reg->dev, in ab3100_get_voltage_regulator()
265 abreg->regreg); in ab3100_get_voltage_regulator()
266 return -EINVAL; in ab3100_get_voltage_regulator()
269 return reg->desc->volt_table[regval]; in ab3100_get_voltage_regulator()
279 err = abx500_get_register_interruptible(abreg->dev, 0, in ab3100_set_voltage_regulator_sel()
280 abreg->regreg, &regval); in ab3100_set_voltage_regulator_sel()
282 dev_warn(&reg->dev, in ab3100_set_voltage_regulator_sel()
284 abreg->regreg); in ab3100_set_voltage_regulator_sel()
292 err = abx500_set_register_interruptible(abreg->dev, 0, in ab3100_set_voltage_regulator_sel()
293 abreg->regreg, regval); in ab3100_set_voltage_regulator_sel()
295 dev_warn(&reg->dev, "failed to set regulator register %02x\n", in ab3100_set_voltage_regulator_sel()
296 abreg->regreg); in ab3100_set_voltage_regulator_sel()
310 if (abreg->regreg == AB3100_LDO_E) in ab3100_set_suspend_voltage_regulator()
312 else if (abreg->regreg == AB3100_BUCK) in ab3100_set_suspend_voltage_regulator()
315 return -EINVAL; in ab3100_set_suspend_voltage_regulator()
320 err = abx500_get_register_interruptible(abreg->dev, 0, in ab3100_set_suspend_voltage_regulator()
323 dev_warn(&reg->dev, in ab3100_set_suspend_voltage_regulator()
333 err = abx500_set_register_interruptible(abreg->dev, 0, in ab3100_set_suspend_voltage_regulator()
336 dev_warn(&reg->dev, "failed to set regulator register %02x\n", in ab3100_set_suspend_voltage_regulator()
337 abreg->regreg); in ab3100_set_suspend_voltage_regulator()
349 if (abreg->plfdata) in ab3100_get_voltage_regulator_external()
350 return abreg->plfdata->external_voltage; in ab3100_get_voltage_regulator_external()
385 * voltage is defined in the board set-up if any.
509 if (desc->id == id) in ab3100_regulator_register()
512 if (desc->id != id) in ab3100_regulator_register()
513 return -ENODEV; in ab3100_regulator_register()
519 * Initialize per-regulator struct. in ab3100_regulator_register()
525 reg->dev = &pdev->dev; in ab3100_regulator_register()
527 reg->plfdata = plfdata; in ab3100_regulator_register()
528 config.init_data = &plfdata->reg_constraints[i]; in ab3100_regulator_register()
533 config.dev = &pdev->dev; in ab3100_regulator_register()
536 rdev = devm_regulator_register(&pdev->dev, desc, &config); in ab3100_regulator_register()
539 dev_err(&pdev->dev, in ab3100_regulator_register()
541 __func__, desc->name, in ab3100_regulator_register()
565 * bit 7-5 controls voltage. Bit 4 turns regulator ON(1) or OFF(0).
566 * Bit 3-2 controls sleep enable and bit 1-0 controls sleep mode.
588 /* BUCK 0x7D: 1.2V, ON, SLEEP_A and B, SLEEP low power */
619 err = abx500_set_register_interruptible(&pdev->dev, 0, in ab3100_regulator_of_probe()
623 dev_err(&pdev->dev, "regulator initialization failed with error %d\n", in ab3100_regulator_of_probe()
644 struct ab3100_platform_data *plfdata = dev_get_platdata(&pdev->dev); in ab3100_regulators_probe()
645 struct device_node *np = pdev->dev.of_node; in ab3100_regulators_probe()
651 err = abx500_get_register_interruptible(&pdev->dev, 0, in ab3100_regulators_probe()
654 dev_err(&pdev->dev, "could not read initial status of LDO_D\n"); in ab3100_regulators_probe()
658 dev_notice(&pdev->dev, in ab3100_regulators_probe()
661 dev_notice(&pdev->dev, in ab3100_regulators_probe()
665 err = of_regulator_match(&pdev->dev, np, in ab3100_regulators_probe()
669 dev_err(&pdev->dev, in ab3100_regulators_probe()
678 err = abx500_set_register_interruptible(&pdev->dev, 0, in ab3100_regulators_probe()
680 plfdata->reg_initvals[i]); in ab3100_regulators_probe()
682 dev_err(&pdev->dev, "regulator initialization failed with error %d\n", in ab3100_regulators_probe()
693 desc->id); in ab3100_regulators_probe()
703 .name = "ab3100-regulators",
724 MODULE_ALIAS("platform:ab3100-regulators");