Lines Matching refs:wm8350
114 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_isink_set_current() local
125 val = wm8350_reg_read(wm8350, WM8350_CURRENT_SINK_DRIVER_A) & in wm8350_isink_set_current()
127 wm8350_reg_write(wm8350, WM8350_CURRENT_SINK_DRIVER_A, in wm8350_isink_set_current()
131 val = wm8350_reg_read(wm8350, WM8350_CURRENT_SINK_DRIVER_B) & in wm8350_isink_set_current()
133 wm8350_reg_write(wm8350, WM8350_CURRENT_SINK_DRIVER_B, in wm8350_isink_set_current()
145 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_isink_get_current() local
151 val = wm8350_reg_read(wm8350, WM8350_CURRENT_SINK_DRIVER_A) & in wm8350_isink_get_current()
155 val = wm8350_reg_read(wm8350, WM8350_CURRENT_SINK_DRIVER_B) & in wm8350_isink_get_current()
168 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_isink_enable() local
173 switch (wm8350->pmic.isink_A_dcdc) { in wm8350_isink_enable()
176 wm8350_set_bits(wm8350, WM8350_POWER_MGMT_7, in wm8350_isink_enable()
178 wm8350_set_bits(wm8350, WM8350_CSA_FLASH_CONTROL, in wm8350_isink_enable()
180 wm8350_set_bits(wm8350, WM8350_DCDC_LDO_REQUESTED, in wm8350_isink_enable()
181 1 << (wm8350->pmic.isink_A_dcdc - in wm8350_isink_enable()
189 switch (wm8350->pmic.isink_B_dcdc) { in wm8350_isink_enable()
192 wm8350_set_bits(wm8350, WM8350_POWER_MGMT_7, in wm8350_isink_enable()
194 wm8350_set_bits(wm8350, WM8350_CSB_FLASH_CONTROL, in wm8350_isink_enable()
196 wm8350_set_bits(wm8350, WM8350_DCDC_LDO_REQUESTED, in wm8350_isink_enable()
197 1 << (wm8350->pmic.isink_B_dcdc - in wm8350_isink_enable()
212 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_isink_disable() local
217 switch (wm8350->pmic.isink_A_dcdc) { in wm8350_isink_disable()
220 wm8350_clear_bits(wm8350, WM8350_DCDC_LDO_REQUESTED, in wm8350_isink_disable()
221 1 << (wm8350->pmic.isink_A_dcdc - in wm8350_isink_disable()
223 wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_7, in wm8350_isink_disable()
231 switch (wm8350->pmic.isink_B_dcdc) { in wm8350_isink_disable()
234 wm8350_clear_bits(wm8350, WM8350_DCDC_LDO_REQUESTED, in wm8350_isink_disable()
235 1 << (wm8350->pmic.isink_B_dcdc - in wm8350_isink_disable()
237 wm8350_clear_bits(wm8350, WM8350_POWER_MGMT_7, in wm8350_isink_disable()
252 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_isink_is_enabled() local
257 return wm8350_reg_read(wm8350, WM8350_CURRENT_SINK_DRIVER_A) & in wm8350_isink_is_enabled()
260 return wm8350_reg_read(wm8350, WM8350_CURRENT_SINK_DRIVER_B) & in wm8350_isink_is_enabled()
268 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_isink_enable_time() local
274 reg = wm8350_reg_read(wm8350, WM8350_CSA_FLASH_CONTROL); in wm8350_isink_enable_time()
277 reg = wm8350_reg_read(wm8350, WM8350_CSB_FLASH_CONTROL); in wm8350_isink_enable_time()
311 int wm8350_isink_set_flash(struct wm8350 *wm8350, int isink, u16 mode, in wm8350_isink_set_flash() argument
317 wm8350_reg_write(wm8350, WM8350_CSA_FLASH_CONTROL, in wm8350_isink_set_flash()
323 wm8350_reg_write(wm8350, WM8350_CSB_FLASH_CONTROL, in wm8350_isink_set_flash()
337 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_dcdc_set_suspend_voltage() local
341 dev_dbg(wm8350->dev, "%s %d mV %d\n", __func__, dcdc, uV / 1000); in wm8350_dcdc_set_suspend_voltage()
367 val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_DC1_VSEL_MASK; in wm8350_dcdc_set_suspend_voltage()
368 wm8350_reg_write(wm8350, volt_reg, val | sel); in wm8350_dcdc_set_suspend_voltage()
374 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_dcdc_set_suspend_enable() local
380 val = wm8350_reg_read(wm8350, WM8350_DCDC1_LOW_POWER) in wm8350_dcdc_set_suspend_enable()
382 wm8350_reg_write(wm8350, WM8350_DCDC1_LOW_POWER, in wm8350_dcdc_set_suspend_enable()
383 val | wm8350->pmic.dcdc1_hib_mode); in wm8350_dcdc_set_suspend_enable()
386 val = wm8350_reg_read(wm8350, WM8350_DCDC3_LOW_POWER) in wm8350_dcdc_set_suspend_enable()
388 wm8350_reg_write(wm8350, WM8350_DCDC3_LOW_POWER, in wm8350_dcdc_set_suspend_enable()
389 val | wm8350->pmic.dcdc3_hib_mode); in wm8350_dcdc_set_suspend_enable()
392 val = wm8350_reg_read(wm8350, WM8350_DCDC4_LOW_POWER) in wm8350_dcdc_set_suspend_enable()
394 wm8350_reg_write(wm8350, WM8350_DCDC4_LOW_POWER, in wm8350_dcdc_set_suspend_enable()
395 val | wm8350->pmic.dcdc4_hib_mode); in wm8350_dcdc_set_suspend_enable()
398 val = wm8350_reg_read(wm8350, WM8350_DCDC6_LOW_POWER) in wm8350_dcdc_set_suspend_enable()
400 wm8350_reg_write(wm8350, WM8350_DCDC6_LOW_POWER, in wm8350_dcdc_set_suspend_enable()
401 val | wm8350->pmic.dcdc6_hib_mode); in wm8350_dcdc_set_suspend_enable()
414 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_dcdc_set_suspend_disable() local
420 val = wm8350_reg_read(wm8350, WM8350_DCDC1_LOW_POWER); in wm8350_dcdc_set_suspend_disable()
421 wm8350->pmic.dcdc1_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; in wm8350_dcdc_set_suspend_disable()
422 wm8350_reg_write(wm8350, WM8350_DCDC1_LOW_POWER, in wm8350_dcdc_set_suspend_disable()
426 val = wm8350_reg_read(wm8350, WM8350_DCDC3_LOW_POWER); in wm8350_dcdc_set_suspend_disable()
427 wm8350->pmic.dcdc3_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; in wm8350_dcdc_set_suspend_disable()
428 wm8350_reg_write(wm8350, WM8350_DCDC3_LOW_POWER, in wm8350_dcdc_set_suspend_disable()
432 val = wm8350_reg_read(wm8350, WM8350_DCDC4_LOW_POWER); in wm8350_dcdc_set_suspend_disable()
433 wm8350->pmic.dcdc4_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; in wm8350_dcdc_set_suspend_disable()
434 wm8350_reg_write(wm8350, WM8350_DCDC4_LOW_POWER, in wm8350_dcdc_set_suspend_disable()
438 val = wm8350_reg_read(wm8350, WM8350_DCDC6_LOW_POWER); in wm8350_dcdc_set_suspend_disable()
439 wm8350->pmic.dcdc6_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; in wm8350_dcdc_set_suspend_disable()
440 wm8350_reg_write(wm8350, WM8350_DCDC6_LOW_POWER, in wm8350_dcdc_set_suspend_disable()
454 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_dcdc25_set_suspend_enable() local
460 val = wm8350_reg_read(wm8350, WM8350_DCDC2_CONTROL) in wm8350_dcdc25_set_suspend_enable()
462 wm8350_reg_write(wm8350, WM8350_DCDC2_CONTROL, val | in wm8350_dcdc25_set_suspend_enable()
466 val = wm8350_reg_read(wm8350, WM8350_DCDC5_CONTROL) in wm8350_dcdc25_set_suspend_enable()
468 wm8350_reg_write(wm8350, WM8350_DCDC5_CONTROL, val | in wm8350_dcdc25_set_suspend_enable()
479 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_dcdc25_set_suspend_disable() local
485 val = wm8350_reg_read(wm8350, WM8350_DCDC2_CONTROL) in wm8350_dcdc25_set_suspend_disable()
487 wm8350_reg_write(wm8350, WM8350_DCDC2_CONTROL, val | in wm8350_dcdc25_set_suspend_disable()
491 val = wm8350_reg_read(wm8350, WM8350_DCDC5_CONTROL) in wm8350_dcdc25_set_suspend_disable()
493 wm8350_reg_write(wm8350, WM8350_DCDC5_CONTROL, val | in wm8350_dcdc25_set_suspend_disable()
505 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_dcdc_set_suspend_mode() local
511 hib_mode = &wm8350->pmic.dcdc1_hib_mode; in wm8350_dcdc_set_suspend_mode()
514 hib_mode = &wm8350->pmic.dcdc3_hib_mode; in wm8350_dcdc_set_suspend_mode()
517 hib_mode = &wm8350->pmic.dcdc4_hib_mode; in wm8350_dcdc_set_suspend_mode()
520 hib_mode = &wm8350->pmic.dcdc6_hib_mode; in wm8350_dcdc_set_suspend_mode()
552 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_ldo_set_suspend_voltage() local
556 dev_dbg(wm8350->dev, "%s %d mV %d\n", __func__, ldo, uV / 1000); in wm8350_ldo_set_suspend_voltage()
580 val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_LDO1_VSEL_MASK; in wm8350_ldo_set_suspend_voltage()
581 wm8350_reg_write(wm8350, volt_reg, val | sel); in wm8350_ldo_set_suspend_voltage()
587 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_ldo_set_suspend_enable() local
609 val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_LDO1_HIB_MODE_MASK; in wm8350_ldo_set_suspend_enable()
610 wm8350_reg_write(wm8350, volt_reg, val); in wm8350_ldo_set_suspend_enable()
616 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_ldo_set_suspend_disable() local
638 val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_LDO1_HIB_MODE_MASK; in wm8350_ldo_set_suspend_disable()
639 wm8350_reg_write(wm8350, volt_reg, val | WM8350_LDO1_HIB_MODE_DIS); in wm8350_ldo_set_suspend_disable()
643 int wm8350_dcdc_set_slot(struct wm8350 *wm8350, int dcdc, u16 start, in wm8350_dcdc_set_slot() argument
649 dev_dbg(wm8350->dev, "%s %d start %d stop %d\n", in wm8350_dcdc_set_slot()
679 val = wm8350_reg_read(wm8350, slot_reg) & in wm8350_dcdc_set_slot()
682 wm8350_reg_write(wm8350, slot_reg, in wm8350_dcdc_set_slot()
691 int wm8350_ldo_set_slot(struct wm8350 *wm8350, int ldo, u16 start, u16 stop) in wm8350_ldo_set_slot() argument
696 dev_dbg(wm8350->dev, "%s %d start %d stop %d\n", in wm8350_ldo_set_slot()
720 val = wm8350_reg_read(wm8350, slot_reg) & ~WM8350_LDO1_SDSLOT_MASK; in wm8350_ldo_set_slot()
721 wm8350_reg_write(wm8350, slot_reg, val | ((start << 10) | (stop << 6))); in wm8350_ldo_set_slot()
726 int wm8350_dcdc25_set_mode(struct wm8350 *wm8350, int dcdc, u16 mode, in wm8350_dcdc25_set_mode() argument
731 dev_dbg(wm8350->dev, "%s %d mode: %s %s\n", __func__, dcdc, in wm8350_dcdc25_set_mode()
736 val = wm8350_reg_read(wm8350, WM8350_DCDC2_CONTROL) in wm8350_dcdc25_set_mode()
739 wm8350_reg_write(wm8350, WM8350_DCDC2_CONTROL, val | in wm8350_dcdc25_set_mode()
746 val = wm8350_reg_read(wm8350, WM8350_DCDC5_CONTROL) in wm8350_dcdc25_set_mode()
749 wm8350_reg_write(wm8350, WM8350_DCDC5_CONTROL, val | in wm8350_dcdc25_set_mode()
763 static int force_continuous_enable(struct wm8350 *wm8350, int dcdc, int enable) in force_continuous_enable() argument
785 ret = wm8350_set_bits(wm8350, reg, in force_continuous_enable()
788 ret = wm8350_clear_bits(wm8350, reg, in force_continuous_enable()
795 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_dcdc_set_mode() local
810 wm8350_set_bits(wm8350, WM8350_DCDC_ACTIVE_OPTIONS, val); in wm8350_dcdc_set_mode()
811 wm8350_clear_bits(wm8350, WM8350_DCDC_SLEEP_OPTIONS, val); in wm8350_dcdc_set_mode()
812 force_continuous_enable(wm8350, dcdc, 1); in wm8350_dcdc_set_mode()
816 wm8350_set_bits(wm8350, WM8350_DCDC_ACTIVE_OPTIONS, val); in wm8350_dcdc_set_mode()
817 wm8350_clear_bits(wm8350, WM8350_DCDC_SLEEP_OPTIONS, val); in wm8350_dcdc_set_mode()
818 force_continuous_enable(wm8350, dcdc, 0); in wm8350_dcdc_set_mode()
822 force_continuous_enable(wm8350, dcdc, 0); in wm8350_dcdc_set_mode()
823 wm8350_clear_bits(wm8350, WM8350_DCDC_SLEEP_OPTIONS, val); in wm8350_dcdc_set_mode()
824 wm8350_clear_bits(wm8350, WM8350_DCDC_ACTIVE_OPTIONS, val); in wm8350_dcdc_set_mode()
828 force_continuous_enable(wm8350, dcdc, 0); in wm8350_dcdc_set_mode()
829 wm8350_set_bits(wm8350, WM8350_DCDC_SLEEP_OPTIONS, val); in wm8350_dcdc_set_mode()
838 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_dcdc_get_mode() local
862 active = wm8350_reg_read(wm8350, WM8350_DCDC_ACTIVE_OPTIONS) & mask; in wm8350_dcdc_get_mode()
863 force = wm8350_reg_read(wm8350, reg) & WM8350_DCDC1_FORCE_PWM_ENA; in wm8350_dcdc_get_mode()
864 sleep = wm8350_reg_read(wm8350, WM8350_DCDC_SLEEP_OPTIONS) & mask; in wm8350_dcdc_get_mode()
866 dev_dbg(wm8350->dev, "mask %x active %x sleep %x force %x", in wm8350_dcdc_get_mode()
1171 struct wm8350 *wm8350 = dev_get_drvdata(&pdev->dev); in wm8350_regulator_probe() local
1183 val = wm8350_reg_read(wm8350, WM8350_DCDC1_LOW_POWER); in wm8350_regulator_probe()
1184 wm8350->pmic.dcdc1_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; in wm8350_regulator_probe()
1187 val = wm8350_reg_read(wm8350, WM8350_DCDC3_LOW_POWER); in wm8350_regulator_probe()
1188 wm8350->pmic.dcdc3_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; in wm8350_regulator_probe()
1191 val = wm8350_reg_read(wm8350, WM8350_DCDC4_LOW_POWER); in wm8350_regulator_probe()
1192 wm8350->pmic.dcdc4_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; in wm8350_regulator_probe()
1195 val = wm8350_reg_read(wm8350, WM8350_DCDC6_LOW_POWER); in wm8350_regulator_probe()
1196 wm8350->pmic.dcdc6_hib_mode = val & WM8350_DCDC_HIB_MODE_MASK; in wm8350_regulator_probe()
1203 config.regmap = wm8350->regmap; in wm8350_regulator_probe()
1215 ret = wm8350_register_irq(wm8350, wm8350_reg[pdev->id].irq, in wm8350_regulator_probe()
1229 struct wm8350 *wm8350 = rdev_get_drvdata(rdev); in wm8350_regulator_remove() local
1231 wm8350_free_irq(wm8350, wm8350_reg[pdev->id].irq, rdev); in wm8350_regulator_remove()
1236 int wm8350_register_regulator(struct wm8350 *wm8350, int reg, in wm8350_register_regulator() argument
1244 if (wm8350->pmic.pdev[reg]) in wm8350_register_regulator()
1248 reg > wm8350->pmic.max_dcdc) in wm8350_register_regulator()
1251 reg > wm8350->pmic.max_isink) in wm8350_register_regulator()
1258 wm8350->pmic.pdev[reg] = pdev; in wm8350_register_regulator()
1260 initdata->driver_data = wm8350; in wm8350_register_regulator()
1263 pdev->dev.parent = wm8350->dev; in wm8350_register_regulator()
1264 platform_set_drvdata(pdev, wm8350); in wm8350_register_regulator()
1269 dev_err(wm8350->dev, "Failed to register regulator %d: %d\n", in wm8350_register_regulator()
1272 wm8350->pmic.pdev[reg] = NULL; in wm8350_register_regulator()
1295 int wm8350_register_led(struct wm8350 *wm8350, int lednum, int dcdc, int isink, in wm8350_register_led() argument
1302 if (lednum >= ARRAY_SIZE(wm8350->pmic.led) || lednum < 0) { in wm8350_register_led()
1303 dev_err(wm8350->dev, "Invalid LED index %d\n", lednum); in wm8350_register_led()
1307 led = &wm8350->pmic.led[lednum]; in wm8350_register_led()
1310 dev_err(wm8350->dev, "LED %d already allocated\n", lednum); in wm8350_register_led()
1316 dev_err(wm8350->dev, "Failed to allocate LED %d\n", lednum); in wm8350_register_led()
1329 ret = wm8350_register_regulator(wm8350, isink, &led->isink_init); in wm8350_register_led()
1341 ret = wm8350_register_regulator(wm8350, dcdc, &led->dcdc_init); in wm8350_register_led()
1349 wm8350->pmic.isink_A_dcdc = dcdc; in wm8350_register_led()
1352 wm8350->pmic.isink_B_dcdc = dcdc; in wm8350_register_led()
1357 pdev->dev.parent = wm8350->dev; in wm8350_register_led()
1360 dev_err(wm8350->dev, "Failed to register LED %d: %d\n", in wm8350_register_led()