/openbmc/linux/drivers/regulator/ |
H A D | max77620-regulator.c | 99 static int max77620_regulator_get_fps_src(struct max77620_regulator *pmic, in max77620_regulator_get_fps_src() argument 102 struct max77620_regulator_info *rinfo = pmic->rinfo[id]; in max77620_regulator_get_fps_src() 106 ret = regmap_read(pmic->rmap, rinfo->fps_addr, &val); in max77620_regulator_get_fps_src() 108 dev_err(pmic->dev, "Reg 0x%02x read failed %d\n", in max77620_regulator_get_fps_src() 116 static int max77620_regulator_set_fps_src(struct max77620_regulator *pmic, in max77620_regulator_set_fps_src() argument 119 struct max77620_regulator_info *rinfo = pmic->rinfo[id]; in max77620_regulator_set_fps_src() 134 ret = regmap_read(pmic->rmap, rinfo->fps_addr, &val); in max77620_regulator_set_fps_src() 136 dev_err(pmic->dev, "Reg 0x%02x read failed %d\n", in max77620_regulator_set_fps_src() 141 pmic->active_fps_src[id] = ret; in max77620_regulator_set_fps_src() 145 dev_err(pmic->dev, "Invalid FPS %d for regulator %d\n", in max77620_regulator_set_fps_src() [all …]
|
H A D | tps65910-regulator.c | 391 struct tps65910_reg *pmic = rdev_get_drvdata(dev); in tps65910_set_mode() local 395 reg = pmic->get_ctrl_reg(id); in tps65910_set_mode() 416 struct tps65910_reg *pmic = rdev_get_drvdata(dev); in tps65910_get_mode() local 420 reg = pmic->get_ctrl_reg(id); in tps65910_get_mode() 514 struct tps65910_reg *pmic = rdev_get_drvdata(dev); in tps65910_get_voltage_sel() local 518 reg = pmic->get_ctrl_reg(id); in tps65910_get_voltage_sel() 557 struct tps65910_reg *pmic = rdev_get_drvdata(dev); in tps65911_get_voltage_sel() local 562 reg = pmic->get_ctrl_reg(id); in tps65911_get_voltage_sel() 634 struct tps65910_reg *pmic = rdev_get_drvdata(dev); in tps65910_set_voltage_sel() local 638 reg = pmic->get_ctrl_reg(id); in tps65910_set_voltage_sel() [all …]
|
H A D | isl6271a-regulator.c | 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() [all …]
|
H A D | palmas-regulator.c | 442 struct palmas_pmic *pmic = rdev_get_drvdata(dev); in palmas_set_mode_smps() local 443 struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata; in palmas_set_mode_smps() 448 ret = palmas_smps_read(pmic->palmas, rinfo->ctrl_addr, ®); in palmas_set_mode_smps() 471 pmic->current_reg_mode[id] = reg & PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK; in palmas_set_mode_smps() 473 palmas_smps_write(pmic->palmas, rinfo->ctrl_addr, reg); in palmas_set_mode_smps() 476 pmic->desc[id].enable_val = pmic->current_reg_mode[id]; in palmas_set_mode_smps() 483 struct palmas_pmic *pmic = rdev_get_drvdata(dev); in palmas_get_mode_smps() local 487 reg = pmic->current_reg_mode[id] & PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK; in palmas_get_mode_smps() 505 struct palmas_pmic *pmic = rdev_get_drvdata(rdev); in palmas_smps_set_ramp_delay() local 506 struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata; in palmas_smps_set_ramp_delay() [all …]
|
H A D | max8907-regulator.c | 279 struct max8907_regulator *pmic; in max8907_regulator_probe() local 290 pmic = devm_kzalloc(&pdev->dev, sizeof(*pmic), GFP_KERNEL); in max8907_regulator_probe() 291 if (!pmic) in max8907_regulator_probe() 294 platform_set_drvdata(pdev, pmic); in max8907_regulator_probe() 296 memcpy(pmic->desc, max8907_regulators, sizeof(pmic->desc)); in max8907_regulator_probe() 305 pmic->desc[MAX8907_SD1].min_uV = 637500; in max8907_regulator_probe() 306 pmic->desc[MAX8907_SD1].uV_step = 12500; in max8907_regulator_probe() 307 pmic->desc[MAX8907_SD1].n_voltages = in max8907_regulator_probe() 320 config.driver_data = pmic; in max8907_regulator_probe() 324 switch (pmic->desc[i].id) { in max8907_regulator_probe() [all …]
|
/openbmc/linux/drivers/mfd/ |
H A D | intel_soc_pmic_bxtwc.c | 293 struct intel_soc_pmic *pmic = context; in regmap_ipc_byte_reg_read() local 295 if (!pmic) in regmap_ipc_byte_reg_read() 307 ret = intel_scu_ipc_dev_command(pmic->scu, PMC_PMIC_ACCESS, in regmap_ipc_byte_reg_read() 323 struct intel_soc_pmic *pmic = context; in regmap_ipc_byte_reg_write() local 325 if (!pmic) in regmap_ipc_byte_reg_write() 338 return intel_scu_ipc_dev_command(pmic->scu, PMC_PMIC_ACCESS, in regmap_ipc_byte_reg_write() 368 struct intel_soc_pmic *pmic = dev_get_drvdata(dev); in val_show() local 370 ret = regmap_read(pmic->regmap, bxtwc_reg_addr, &val); in val_show() 384 struct intel_soc_pmic *pmic = dev_get_drvdata(dev); in val_store() local 390 ret = regmap_write(pmic->regmap, bxtwc_reg_addr, val); in val_store() [all …]
|
H A D | hi655x-pmic.c | 94 struct hi655x_pmic *pmic; in hi655x_pmic_probe() local 98 pmic = devm_kzalloc(dev, sizeof(*pmic), GFP_KERNEL); in hi655x_pmic_probe() 99 if (!pmic) in hi655x_pmic_probe() 101 pmic->dev = dev; in hi655x_pmic_probe() 107 pmic->regmap = devm_regmap_init_mmio_clk(dev, NULL, base, in hi655x_pmic_probe() 109 if (IS_ERR(pmic->regmap)) in hi655x_pmic_probe() 110 return PTR_ERR(pmic->regmap); in hi655x_pmic_probe() 112 regmap_read(pmic->regmap, HI655X_BUS_ADDR(HI655X_VER_REG), &pmic->ver); in hi655x_pmic_probe() 113 if ((pmic->ver < PMU_VER_START) || (pmic->ver > PMU_VER_END)) { in hi655x_pmic_probe() 114 dev_warn(dev, "PMU version %d unsupported\n", pmic->ver); in hi655x_pmic_probe() [all …]
|
H A D | qcom-spmi-pmic.c | 30 struct qcom_spmi_pmic pmic; member 155 memcpy(&ctx->pmic, &base_ctx->pmic, sizeof(ctx->pmic)); in pmic_spmi_get_base_revid() 165 struct qcom_spmi_pmic *pmic) in pmic_spmi_load_revid() argument 169 ret = regmap_read(map, PMIC_TYPE, &pmic->type); in pmic_spmi_load_revid() 173 if (pmic->type != PMIC_TYPE_VALUE) in pmic_spmi_load_revid() 176 ret = regmap_read(map, PMIC_SUBTYPE, &pmic->subtype); in pmic_spmi_load_revid() 180 pmic->name = of_match_device(pmic_spmi_id_table, dev)->compatible; in pmic_spmi_load_revid() 182 ret = regmap_read(map, PMIC_REV2, &pmic->rev2); in pmic_spmi_load_revid() 186 ret = regmap_read(map, PMIC_REV3, &pmic->minor); in pmic_spmi_load_revid() 190 ret = regmap_read(map, PMIC_REV4, &pmic->major); in pmic_spmi_load_revid() [all …]
|
H A D | intel_soc_pmic_chtdc_ti.c | 110 struct intel_soc_pmic *pmic; in chtdc_ti_probe() local 113 pmic = devm_kzalloc(dev, sizeof(*pmic), GFP_KERNEL); in chtdc_ti_probe() 114 if (!pmic) in chtdc_ti_probe() 117 i2c_set_clientdata(i2c, pmic); in chtdc_ti_probe() 119 pmic->regmap = devm_regmap_init_i2c(i2c, &chtdc_ti_regmap_config); in chtdc_ti_probe() 120 if (IS_ERR(pmic->regmap)) in chtdc_ti_probe() 121 return PTR_ERR(pmic->regmap); in chtdc_ti_probe() 122 pmic->irq = i2c->irq; in chtdc_ti_probe() 124 ret = devm_regmap_add_irq_chip(dev, pmic->regmap, pmic->irq, in chtdc_ti_probe() 127 &pmic->irq_chip_data); in chtdc_ti_probe() [all …]
|
H A D | intel_soc_pmic_mrfld.c | 77 struct intel_soc_pmic *pmic = context; in bcove_ipc_byte_reg_read() local 81 ret = intel_scu_ipc_dev_ioread8(pmic->scu, reg, &ipc_out); in bcove_ipc_byte_reg_read() 92 struct intel_soc_pmic *pmic = context; in bcove_ipc_byte_reg_write() local 95 return intel_scu_ipc_dev_iowrite8(pmic->scu, reg, ipc_in); in bcove_ipc_byte_reg_write() 109 struct intel_soc_pmic *pmic; in bcove_probe() local 113 pmic = devm_kzalloc(dev, sizeof(*pmic), GFP_KERNEL); in bcove_probe() 114 if (!pmic) in bcove_probe() 117 pmic->scu = devm_intel_scu_ipc_dev_get(dev); in bcove_probe() 118 if (!pmic->scu) in bcove_probe() 121 platform_set_drvdata(pdev, pmic); in bcove_probe() [all …]
|
H A D | intel_soc_pmic_crc.c | 171 struct intel_soc_pmic *pmic; in crystal_cove_i2c_probe() local 179 pmic = devm_kzalloc(dev, sizeof(*pmic), GFP_KERNEL); in crystal_cove_i2c_probe() 180 if (!pmic) in crystal_cove_i2c_probe() 183 i2c_set_clientdata(i2c, pmic); in crystal_cove_i2c_probe() 185 pmic->regmap = devm_regmap_init_i2c(i2c, config->regmap_config); in crystal_cove_i2c_probe() 186 if (IS_ERR(pmic->regmap)) in crystal_cove_i2c_probe() 187 return PTR_ERR(pmic->regmap); in crystal_cove_i2c_probe() 189 pmic->irq = i2c->irq; in crystal_cove_i2c_probe() 191 ret = devm_regmap_add_irq_chip(dev, pmic->regmap, pmic->irq, in crystal_cove_i2c_probe() 193 0, config->irq_chip, &pmic->irq_chip_data); in crystal_cove_i2c_probe() [all …]
|
H A D | intel_soc_pmic_chtwc.c | 191 struct intel_soc_pmic *pmic; in cht_wc_probe() local 205 pmic = devm_kzalloc(dev, sizeof(*pmic), GFP_KERNEL); in cht_wc_probe() 206 if (!pmic) in cht_wc_probe() 211 pmic->cht_wc_model = (long)id->driver_data; in cht_wc_probe() 213 pmic->irq = client->irq; in cht_wc_probe() 214 pmic->dev = dev; in cht_wc_probe() 215 i2c_set_clientdata(client, pmic); in cht_wc_probe() 217 pmic->regmap = devm_regmap_init(dev, NULL, client, &cht_wc_regmap_cfg); in cht_wc_probe() 218 if (IS_ERR(pmic->regmap)) in cht_wc_probe() 219 return PTR_ERR(pmic->regmap); in cht_wc_probe() [all …]
|
H A D | hi6421-pmic-core.c | 52 struct hi6421_pmic *pmic; in hi6421_pmic_probe() local 64 pmic = devm_kzalloc(&pdev->dev, sizeof(*pmic), GFP_KERNEL); in hi6421_pmic_probe() 65 if (!pmic) in hi6421_pmic_probe() 72 pmic->regmap = devm_regmap_init_mmio_clk(&pdev->dev, NULL, base, in hi6421_pmic_probe() 74 if (IS_ERR(pmic->regmap)) { in hi6421_pmic_probe() 76 PTR_ERR(pmic->regmap)); in hi6421_pmic_probe() 77 return PTR_ERR(pmic->regmap); in hi6421_pmic_probe() 80 platform_set_drvdata(pdev, pmic); in hi6421_pmic_probe() 85 regmap_update_bits(pmic->regmap, HI6421_OCP_DEB_CTRL_REG, in hi6421_pmic_probe()
|
H A D | mt6397-core.c | 296 struct mt6397_chip *pmic; in mt6397_probe() local 299 pmic = devm_kzalloc(&pdev->dev, sizeof(*pmic), GFP_KERNEL); in mt6397_probe() 300 if (!pmic) in mt6397_probe() 303 pmic->dev = &pdev->dev; in mt6397_probe() 309 pmic->regmap = dev_get_regmap(pdev->dev.parent, NULL); in mt6397_probe() 310 if (!pmic->regmap) in mt6397_probe() 317 ret = regmap_read(pmic->regmap, pmic_core->cid_addr, &id); in mt6397_probe() 323 pmic->chip_id = (id >> pmic_core->cid_shift) & 0xff; in mt6397_probe() 325 platform_set_drvdata(pdev, pmic); in mt6397_probe() 327 pmic->irq = platform_get_irq(pdev, 0); in mt6397_probe() [all …]
|
/openbmc/u-boot/include/power/ |
H A D | pmic.h | 45 struct pmic; 47 int (*fg_battery_check) (struct pmic *p, struct pmic *bat); 48 int (*fg_battery_update) (struct pmic *p, struct pmic *bat); 52 int (*chrg_type) (struct pmic *p); 53 int (*chrg_bat_present) (struct pmic *p); 54 int (*chrg_state) (struct pmic *p, int state, int current); 59 int (*battery_init) (struct pmic *bat, struct pmic *p1, 60 struct pmic *p2, struct pmic *p3); 61 int (*battery_charge) (struct pmic *bat); 63 struct pmic *chrg, *fg, *muic; [all …]
|
/openbmc/u-boot/drivers/power/ |
H A D | Kconfig | 5 source "drivers/power/pmic/Kconfig" 18 bool "board without a pmic" 23 bool "axp152 pmic support" 28 Select this to enable support for the axp152 pmic found on most 32 bool "axp209 pmic support" 37 Select this to enable support for the axp209 pmic found on most 41 bool "axp221 / axp223 pmic support" 46 Select this to enable support for the axp221/axp223 pmic found on most 50 bool "axp809 pmic support" 55 Say y here to enable support for the axp809 pmic found on A80 boards. [all …]
|
H A D | power_core.c | 20 int check_reg(struct pmic *p, u32 reg) in check_reg() 31 int pmic_set_output(struct pmic *p, u32 reg, int out, int on) in pmic_set_output() 49 struct pmic *pmic_alloc(void) in pmic_alloc() 51 struct pmic *p; in pmic_alloc() 66 struct pmic *pmic_get(const char *s) in pmic_get() 68 struct pmic *p; in pmic_get() 81 static int pmic_dump(struct pmic *p) in pmic_dump() 114 struct pmic *p; in pmic_list_names() 127 struct pmic *p; in do_pmic() 210 pmic, CONFIG_SYS_MAXARGS, 1, do_pmic,
|
/openbmc/linux/drivers/watchdog/ |
H A D | stpmic1_wdt.c | 31 struct stpmic1 *pmic; member 39 return regmap_update_bits(wdt->pmic->regmap, in pmic_wdt_start() 47 return regmap_update_bits(wdt->pmic->regmap, in pmic_wdt_stop() 55 return regmap_update_bits(wdt->pmic->regmap, in pmic_wdt_ping() 66 return regmap_write(wdt->pmic->regmap, WCHDG_TIMER_CR, timeout - 1); in pmic_wdt_set_timeout() 86 struct stpmic1 *pmic; in pmic_wdt_probe() local 92 pmic = dev_get_drvdata(dev->parent); in pmic_wdt_probe() 93 if (!pmic) in pmic_wdt_probe() 100 wdt->pmic = pmic; in pmic_wdt_probe() 118 dev_dbg(wdt->pmic->dev, "PMIC Watchdog driver probed\n"); in pmic_wdt_probe()
|
/openbmc/u-boot/drivers/power/regulator/ |
H A D | rk8xx.c | 89 static const struct rk8xx_reg_info *get_buck_reg(struct udevice *pmic, in get_buck_reg() argument 92 struct rk8xx_priv *priv = dev_get_priv(pmic); in get_buck_reg() 101 static int _buck_set_value(struct udevice *pmic, int buck, int uvolt) in _buck_set_value() argument 103 const struct rk8xx_reg_info *info = get_buck_reg(pmic, buck - 1); in _buck_set_value() 113 return pmic_clrsetbits(pmic, info->vsel_reg, mask, val); in _buck_set_value() 116 static int _buck_set_enable(struct udevice *pmic, int buck, bool enable) in _buck_set_enable() argument 124 ret = pmic_clrsetbits(pmic, REG_DCDC_ILMAX, 0, 3 << (buck * 2)); in _buck_set_enable() 127 ret = pmic_clrsetbits(pmic, REG_DCDC_UV_ACT, 1 << buck, 0); in _buck_set_enable() 132 return pmic_clrsetbits(pmic, REG_DCDC_EN, mask, enable ? mask : 0); in _buck_set_enable() 136 static const struct rk8xx_reg_info *get_ldo_reg(struct udevice *pmic, in get_ldo_reg() argument [all …]
|
H A D | tps65090_regulator.c | 27 struct udevice *pmic = dev_get_parent(dev); in tps65090_fet_get_enable() local 33 ret = pmic_reg_read(pmic, REG_FET_BASE + fet_id); in tps65090_fet_get_enable() 49 static int tps65090_fet_set(struct udevice *pmic, int fet_id, bool set) in tps65090_fet_set() argument 59 if (pmic_reg_write(pmic, REG_FET_BASE + fet_id, value)) in tps65090_fet_set() 64 ret = pmic_reg_read(pmic, REG_FET_BASE + fet_id); in tps65090_fet_set() 87 struct udevice *pmic = dev_get_parent(dev); in tps65090_fet_set_enable() local 97 ret = tps65090_fet_set(pmic, fet_id, enable); in tps65090_fet_set_enable() 105 tps65090_fet_set(pmic, fet_id, false); in tps65090_fet_set_enable()
|
/openbmc/linux/Documentation/devicetree/bindings/regulator/ |
H A D | palmas-pmic.txt | 12 ti,twl6035-pmic 13 ti,twl6036-pmic 14 ti,twl6037-pmic 15 ti,tps65913-pmic 16 ti,tps65914-pmic 17 ti,tps65917-pmic 18 ti,tps659038-pmic 20 ti,palmas-pmic 35 For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP, 48 ti,mode-sleep - mode to adopt in pmic sleep 0 - off, 1 - auto, [all …]
|
/openbmc/u-boot/doc/driver-model/ |
H A D | pmic-framework.txt | 27 - drivers/power/pmic/pmic-uclass.c 28 - include/power/pmic.h 63 the PMIC devices should also support this. By the pmic and regulator API's, 78 use pmic read/write directly. 84 * Header: 'include/power/pmic.h' 85 * Core: 'drivers/power/pmic/pmic-uclass.c' 89 * Example: 'drivers/power/pmic/max77686.c' 93 As an example of the pmic driver, please refer to the MAX77686 driver. 99 The 'pmic; command also supports the new API. So the pmic command can be enabled 101 The new pmic command allows to: [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/mfd/ |
H A D | max8998.txt | 20 - reg: Specifies the i2c slave address of the pmic block. It should be 0x66. 26 - max8998,pmic-buck1-dvs-gpios: GPIO specifiers for two host gpios used 29 - max8998,pmic-buck2-dvs-gpio: GPIO specifier for host gpio used 32 - max8998,pmic-buck1-default-dvs-idx: Default voltage setting selected from 36 - max8998,pmic-buck2-default-dvs-idx: Default voltage setting selected from 40 - max8998,pmic-buck-voltage-lock: If present, disallows changing of 43 Additional properties required if max8998,pmic-buck1-dvs-gpios is defined: 44 - max8998,pmic-buck1-dvs-voltage: An array of 4 voltage values in microvolts 47 Additional properties required if max8998,pmic-buck2-dvs-gpio is defined: 48 - max8998,pmic-buck2-dvs-voltage: An array of 2 voltage values in microvolts [all …]
|
/openbmc/u-boot/drivers/power/pmic/ |
H A D | as3722_gpio.c | 14 int as3722_gpio_configure(struct udevice *pmic, unsigned int gpio, in as3722_gpio_configure() argument 26 err = pmic_reg_write(pmic, AS3722_GPIO_CONTROL(gpio), value); in as3722_gpio_configure() 38 struct udevice *pmic = dev_get_parent(dev); in as3722_gpio_set_value() local 46 err = pmic_reg_read(pmic, AS3722_GPIO_SIGNAL_OUT); in as3722_gpio_set_value() 61 err = pmic_reg_write(pmic, AS3722_GPIO_SIGNAL_OUT, value); in as3722_gpio_set_value() 73 struct udevice *pmic = dev_get_parent(dev); in as3722_gpio_direction_output() local 84 err = pmic_reg_write(pmic, AS3722_GPIO_CONTROL(gpio), value); in as3722_gpio_direction_output() 91 err = as3722_gpio_set_value(pmic, gpio, value); in as3722_gpio_direction_output()
|
/openbmc/linux/arch/arm64/boot/dts/qcom/ |
H A D | sc8180x-pmics.dtsi | 71 pmc8180_0: pmic@0 { 72 compatible = "qcom,pm8150", "qcom,spmi-pmic"; 155 pmic@1 { 156 compatible = "qcom,pmc8180", "qcom,spmi-pmic"; 162 pmic@2 { 163 compatible = "qcom,smb2351", "qcom,spmi-pmic"; 196 pmic@6 { 197 compatible = "qcom,pm8150c", "qcom,spmi-pmic"; 203 pmic@8 { 204 compatible = "qcom,pm8150", "qcom,spmi-pmic"; [all …]
|