Lines Matching +full:buck +full:- +full:d
1 // SPDX-License-Identifier: GPL-2.0
14 #include <linux/regulator/mt6397-regulator.h>
16 #include <dt-bindings/regulator/mediatek,mt6397-regulator.h>
24 * @vselctrl_reg: Register for controlling the buck control mode.
25 * @vselctrl_mask: Mask for query buck's voltage control mode.
49 .n_voltages = (max - min)/step + 1, \
174 ret = -EINVAL; in mt6397_regulator_set_mode()
178 dev_dbg(&rdev->dev, "mt6397 buck set_mode %#x, %#x, %#x, %#x\n", in mt6397_regulator_set_mode()
179 info->modeset_reg, info->modeset_mask, in mt6397_regulator_set_mode()
180 info->modeset_shift, val); in mt6397_regulator_set_mode()
182 val <<= info->modeset_shift; in mt6397_regulator_set_mode()
183 ret = regmap_update_bits(rdev->regmap, info->modeset_reg, in mt6397_regulator_set_mode()
184 info->modeset_mask, val); in mt6397_regulator_set_mode()
187 dev_err(&rdev->dev, in mt6397_regulator_set_mode()
188 "Failed to set mt6397 buck mode: %d\n", ret); in mt6397_regulator_set_mode()
200 ret = regmap_read(rdev->regmap, info->modeset_reg, ®val); in mt6397_regulator_get_mode()
202 dev_err(&rdev->dev, in mt6397_regulator_get_mode()
203 "Failed to get mt6397 buck mode: %d\n", ret); in mt6397_regulator_get_mode()
207 switch ((regval & info->modeset_mask) >> info->modeset_shift) { in mt6397_regulator_get_mode()
213 return -EINVAL; in mt6397_regulator_get_mode()
223 ret = regmap_read(rdev->regmap, info->desc.enable_reg, ®val); in mt6397_get_status()
225 dev_err(&rdev->dev, "Failed to get enable reg: %d\n", ret); in mt6397_get_status()
229 return (regval & info->qi) ? REGULATOR_STATUS_ON : REGULATOR_STATUS_OFF; in mt6397_get_status()
324 struct mt6397_chip *mt6397 = dev_get_drvdata(pdev->dev.parent); in mt6397_set_buck_vosel_reg()
330 if (regmap_read(mt6397->regmap, in mt6397_set_buck_vosel_reg()
333 dev_err(&pdev->dev, in mt6397_set_buck_vosel_reg()
334 "Failed to read buck ctrl\n"); in mt6397_set_buck_vosel_reg()
335 return -EIO; in mt6397_set_buck_vosel_reg()
350 struct mt6397_chip *mt6397 = dev_get_drvdata(pdev->dev.parent); in mt6397_regulator_probe()
356 /* Query buck controller to select activated voltage register part */ in mt6397_regulator_probe()
358 return -EIO; in mt6397_regulator_probe()
361 if (regmap_read(mt6397->regmap, MT6397_CID, ®_value) < 0) { in mt6397_regulator_probe()
362 dev_err(&pdev->dev, "Failed to read Chip ID\n"); in mt6397_regulator_probe()
363 return -EIO; in mt6397_regulator_probe()
365 dev_info(&pdev->dev, "Chip ID = 0x%x\n", reg_value); in mt6397_regulator_probe()
378 config.dev = &pdev->dev; in mt6397_regulator_probe()
380 config.regmap = mt6397->regmap; in mt6397_regulator_probe()
381 rdev = devm_regulator_register(&pdev->dev, in mt6397_regulator_probe()
384 dev_err(&pdev->dev, "failed to register %s\n", in mt6397_regulator_probe()
394 {"mt6397-regulator", 0},
400 { .compatible = "mediatek,mt6397-regulator", },
407 .name = "mt6397-regulator",