Lines Matching +full:ips +full:- +full:supply
361 .n_voltages = (((_max) - (_min)) / (_step) + 1), \
383 .n_voltages = (((_max) - (_min)) / (_step) + 1), \
461 switch (axp20x->variant) {
491 return -ENOTSUPP;
510 dev_err(axp20x->dev, "unsupported ramp value %d", ramp);
511 return -EINVAL;
517 return regmap_update_bits(axp20x->regmap, reg, mask, cfg);
525 switch (axp20x->variant) {
528 rdev->constraints && rdev->constraints->soft_start) {
701 AXP_DESC_IO(AXP22X, LDO_IO0, "ldo_io0", "ips", 700, 3800, 100,
707 AXP_DESC_IO(AXP22X, LDO_IO1, "ldo_io1", "ips", 700, 3800, 100,
711 AXP_DESC_FIXED(AXP22X, RTC_LDO, "rtc_ldo", "ips", 3000),
765 AXP_DESC_FIXED(AXP313A, RTC_LDO, "rtc-ldo", "vin1", 1800),
959 AXP_DESC_IO(AXP803, LDO_IO0, "ldo-io0", "ips", 700, 3300, 100,
963 AXP_DESC_IO(AXP803, LDO_IO1, "ldo-io1", "ips", 700, 3300, 100,
967 AXP_DESC_FIXED(AXP803, RTC_LDO, "rtc-ldo", "ips", 3000),
1110 AXP_DESC_IO(AXP809, LDO_IO0, "ldo_io0", "ips", 700, 3800, 100,
1118 AXP_DESC_IO(AXP809, LDO_IO1, "ldo_io1", "ips", 700, 3800, 100,
1122 AXP_DESC_FIXED(AXP809, RTC_LDO, "rtc_ldo", "ips", 1800),
1199 AXP_DESC_FIXED(AXP813, RTC_LDO, "rtc-ldo", "ips", 1800),
1200 AXP_DESC_IO(AXP813, LDO_IO0, "ldo-io0", "ips", 700, 3300, 100,
1204 AXP_DESC_IO(AXP813, LDO_IO1, "ldo-io1", "ips", 700, 3300, 100,
1299 /* Supply comes from DCDC5 */
1303 /* Supply comes from DCDC1 */
1306 /* Supply comes from ALDO1 */
1307 AXP_DESC_FIXED(AXP15060, RTC_LDO, "rtc-ldo", NULL, 1800),
1312 struct axp20x_dev *axp20x = dev_get_drvdata(pdev->dev.parent);
1316 switch (axp20x->variant) {
1338 if (axp20x->variant == AXP806_ID)
1355 dev_err(&pdev->dev,
1357 return -EINVAL;
1362 dev_err(&pdev->dev,
1364 return -EINVAL;
1372 dev_warn(&pdev->dev, "DCDC frequency too low. Set to %ukHz\n",
1378 dev_warn(&pdev->dev, "DCDC frequency too high. Set to %ukHz\n",
1382 dcdcfreq = (dcdcfreq - min) / step;
1384 return regmap_update_bits(axp20x->regmap, reg,
1394 np = of_node_get(pdev->dev.parent->of_node);
1400 dev_warn(&pdev->dev, "regulators node not found\n");
1402 of_property_read_u32(regulators, "x-powers,dcdc-freq", &dcdcfreq);
1405 dev_err(&pdev->dev, "Error setting dcdc frequency: %d\n", ret);
1420 switch (axp20x->variant) {
1424 return -EINVAL;
1430 workmode <<= ffs(mask) - 1;
1444 return -EINVAL;
1446 mask = AXP22X_WORKMODE_DCDCX_MASK(id - AXP22X_DCDC1);
1447 workmode <<= id - AXP22X_DCDC1;
1452 return -EINVAL;
1454 mask = AXP22X_WORKMODE_DCDCX_MASK(id - AXP803_DCDC1);
1455 workmode <<= id - AXP803_DCDC1;
1460 return -EINVAL;
1462 mask = AXP22X_WORKMODE_DCDCX_MASK(id - AXP813_DCDC1);
1463 workmode <<= id - AXP813_DCDC1;
1469 return -EINVAL;
1471 mask = AXP22X_WORKMODE_DCDCX_MASK(id - AXP15060_DCDC1);
1472 workmode <<= id - AXP15060_DCDC1;
1478 return -EINVAL;
1481 return regmap_update_bits(rdev->regmap, reg, mask, workmode);
1485 * This function checks whether a regulator is part of a poly-phase
1496 switch (axp20x->variant) {
1499 regmap_read(axp20x->regmap, AXP803_POLYPHASE_CTRL, ®);
1510 regmap_read(axp20x->regmap, AXP806_DCDC_MODE_CTRL2, ®);
1527 regmap_read(axp20x->regmap, AXP15060_DCDC_MODE_CTRL1, ®);
1538 regmap_read(axp20x->regmap, AXP323_DCDC_MODE_CTRL2, ®);
1556 struct axp20x_dev *axp20x = dev_get_drvdata(pdev->dev.parent);
1559 .dev = pdev->dev.parent,
1560 .regmap = axp20x->regmap,
1570 switch (axp20x->variant) {
1580 drivevbus = of_property_read_bool(pdev->dev.parent->of_node,
1581 "x-powers,drive-vbus-en");
1595 drivevbus = of_property_read_bool(pdev->dev.parent->of_node,
1596 "x-powers,drive-vbus-en");
1609 drivevbus = of_property_read_bool(pdev->dev.parent->of_node,
1610 "x-powers,drive-vbus-en");
1617 dev_err(&pdev->dev, "Unsupported AXP variant: %d\n",
1618 axp20x->variant);
1619 return -EINVAL;
1630 * If this regulator is a slave in a poly-phase setup,
1638 if (axp20x->variant == AXP813_ID && i == AXP813_FLDO3)
1643 * connected internally, so we have to handle their supply
1647 * so the supply names are correctly read. See the last
1655 new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc),
1658 return -ENOMEM;
1661 new_desc->supply_name = dcdc1_name;
1668 new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc),
1671 return -ENOMEM;
1674 new_desc->supply_name = dcdc5_name;
1680 new_desc = devm_kzalloc(&pdev->dev, sizeof(*desc),
1683 return -ENOMEM;
1686 new_desc->supply_name = aldo1_name;
1690 rdev = devm_regulator_register(&pdev->dev, desc, &config);
1692 dev_err(&pdev->dev, "Failed to register %s\n",
1698 ret = of_property_read_u32(rdev->dev.of_node,
1699 "x-powers,dcdc-workmode",
1703 dev_err(&pdev->dev, "Failed to set workmode on %s\n",
1704 rdev->desc->name);
1713 of_property_read_string(rdev->dev.of_node,
1714 "regulator-name",
1720 of_property_read_string(rdev->dev.of_node,
1721 "regulator-name",
1725 of_property_read_string(rdev->dev.of_node,
1726 "regulator-name",
1732 regmap_update_bits(axp20x->regmap, AXP20X_OVER_TMP,
1734 rdev = devm_regulator_register(&pdev->dev,
1738 dev_err(&pdev->dev, "Failed to register drivevbus\n");
1749 .name = "axp20x-regulator",
1759 MODULE_ALIAS("platform:axp20x-regulator");