Lines Matching refs:dcdc
67 struct wm831x_dcdc *dcdc = rdev_get_drvdata(rdev); in wm831x_dcdc_get_mode() local
68 struct wm831x *wm831x = dcdc->wm831x; in wm831x_dcdc_get_mode()
69 u16 reg = dcdc->base + WM831X_DCDC_ON_CONFIG; in wm831x_dcdc_get_mode()
121 struct wm831x_dcdc *dcdc = rdev_get_drvdata(rdev); in wm831x_dcdc_set_mode() local
122 struct wm831x *wm831x = dcdc->wm831x; in wm831x_dcdc_set_mode()
123 u16 reg = dcdc->base + WM831X_DCDC_ON_CONFIG; in wm831x_dcdc_set_mode()
131 struct wm831x_dcdc *dcdc = rdev_get_drvdata(rdev); in wm831x_dcdc_set_suspend_mode() local
132 struct wm831x *wm831x = dcdc->wm831x; in wm831x_dcdc_set_suspend_mode()
133 u16 reg = dcdc->base + WM831X_DCDC_SLEEP_CONTROL; in wm831x_dcdc_set_suspend_mode()
140 struct wm831x_dcdc *dcdc = rdev_get_drvdata(rdev); in wm831x_dcdc_get_status() local
141 struct wm831x *wm831x = dcdc->wm831x; in wm831x_dcdc_get_status()
184 struct wm831x_dcdc *dcdc = data; in wm831x_dcdc_uv_irq() local
186 regulator_notifier_call_chain(dcdc->regulator, in wm831x_dcdc_uv_irq()
195 struct wm831x_dcdc *dcdc = data; in wm831x_dcdc_oc_irq() local
197 regulator_notifier_call_chain(dcdc->regulator, in wm831x_dcdc_oc_irq()
238 struct wm831x_dcdc *dcdc = rdev_get_drvdata(rdev); in wm831x_buckv_set_dvs() local
240 if (state == dcdc->dvs_gpio_state) in wm831x_buckv_set_dvs()
243 dcdc->dvs_gpio_state = state; in wm831x_buckv_set_dvs()
244 gpio_set_value(dcdc->dvs_gpio, state); in wm831x_buckv_set_dvs()
257 struct wm831x_dcdc *dcdc = rdev_get_drvdata(rdev); in wm831x_buckv_set_voltage_sel() local
258 struct wm831x *wm831x = dcdc->wm831x; in wm831x_buckv_set_voltage_sel()
259 int on_reg = dcdc->base + WM831X_DCDC_ON_CONFIG; in wm831x_buckv_set_voltage_sel()
260 int dvs_reg = dcdc->base + WM831X_DCDC_DVS_CONTROL; in wm831x_buckv_set_voltage_sel()
264 if (dcdc->dvs_gpio && dcdc->on_vsel == vsel) in wm831x_buckv_set_voltage_sel()
267 if (dcdc->dvs_gpio && dcdc->dvs_vsel == vsel) in wm831x_buckv_set_voltage_sel()
274 dcdc->on_vsel = vsel; in wm831x_buckv_set_voltage_sel()
276 if (!dcdc->dvs_gpio) in wm831x_buckv_set_voltage_sel()
290 if (vsel > dcdc->dvs_vsel) { in wm831x_buckv_set_voltage_sel()
295 dcdc->dvs_vsel = vsel; in wm831x_buckv_set_voltage_sel()
307 struct wm831x_dcdc *dcdc = rdev_get_drvdata(rdev); in wm831x_buckv_set_suspend_voltage() local
308 struct wm831x *wm831x = dcdc->wm831x; in wm831x_buckv_set_suspend_voltage()
309 u16 reg = dcdc->base + WM831X_DCDC_SLEEP_CONTROL; in wm831x_buckv_set_suspend_voltage()
321 struct wm831x_dcdc *dcdc = rdev_get_drvdata(rdev); in wm831x_buckv_get_voltage_sel() local
323 if (dcdc->dvs_gpio && dcdc->dvs_gpio_state) in wm831x_buckv_get_voltage_sel()
324 return dcdc->dvs_vsel; in wm831x_buckv_get_voltage_sel()
326 return dcdc->on_vsel; in wm831x_buckv_get_voltage_sel()
337 struct wm831x_dcdc *dcdc = rdev_get_drvdata(rdev); in wm831x_buckv_set_current_limit() local
338 struct wm831x *wm831x = dcdc->wm831x; in wm831x_buckv_set_current_limit()
339 u16 reg = dcdc->base + WM831X_DCDC_CONTROL_2; in wm831x_buckv_set_current_limit()
355 struct wm831x_dcdc *dcdc = rdev_get_drvdata(rdev); in wm831x_buckv_get_current_limit() local
356 struct wm831x *wm831x = dcdc->wm831x; in wm831x_buckv_get_current_limit()
357 u16 reg = dcdc->base + WM831X_DCDC_CONTROL_2; in wm831x_buckv_get_current_limit()
391 struct wm831x_dcdc *dcdc, in wm831x_buckv_dvs_init() argument
394 struct wm831x *wm831x = dcdc->wm831x; in wm831x_buckv_dvs_init()
404 dcdc->dvs_gpio_state = pdata->dvs_init_state; in wm831x_buckv_dvs_init()
407 dcdc->dvs_gpio_state ? GPIOF_INIT_HIGH : 0, in wm831x_buckv_dvs_init()
411 dcdc->name, ret); in wm831x_buckv_dvs_init()
415 dcdc->dvs_gpio = pdata->dvs_gpio; in wm831x_buckv_dvs_init()
426 pdata->dvs_control_src, dcdc->name); in wm831x_buckv_dvs_init()
433 if (!dcdc->dvs_vsel) { in wm831x_buckv_dvs_init()
435 dcdc->base + WM831X_DCDC_DVS_CONTROL, in wm831x_buckv_dvs_init()
436 WM831X_DC1_DVS_VSEL_MASK, dcdc->on_vsel); in wm831x_buckv_dvs_init()
438 dcdc->dvs_vsel = dcdc->on_vsel; in wm831x_buckv_dvs_init()
444 ret = wm831x_set_bits(wm831x, dcdc->base + WM831X_DCDC_DVS_CONTROL, in wm831x_buckv_dvs_init()
448 dcdc->name, ret); in wm831x_buckv_dvs_init()
458 struct wm831x_dcdc *dcdc; in wm831x_buckv_probe() local
470 dcdc = devm_kzalloc(&pdev->dev, sizeof(struct wm831x_dcdc), in wm831x_buckv_probe()
472 if (!dcdc) in wm831x_buckv_probe()
475 dcdc->wm831x = wm831x; in wm831x_buckv_probe()
483 dcdc->base = res->start; in wm831x_buckv_probe()
485 snprintf(dcdc->name, sizeof(dcdc->name), "DCDC%d", id + 1); in wm831x_buckv_probe()
486 dcdc->desc.name = dcdc->name; in wm831x_buckv_probe()
488 snprintf(dcdc->supply_name, sizeof(dcdc->supply_name), in wm831x_buckv_probe()
490 dcdc->desc.supply_name = dcdc->supply_name; in wm831x_buckv_probe()
492 dcdc->desc.id = id; in wm831x_buckv_probe()
493 dcdc->desc.type = REGULATOR_VOLTAGE; in wm831x_buckv_probe()
494 dcdc->desc.n_voltages = WM831X_BUCKV_MAX_SELECTOR + 1; in wm831x_buckv_probe()
495 dcdc->desc.ops = &wm831x_buckv_ops; in wm831x_buckv_probe()
496 dcdc->desc.owner = THIS_MODULE; in wm831x_buckv_probe()
497 dcdc->desc.enable_reg = WM831X_DCDC_ENABLE; in wm831x_buckv_probe()
498 dcdc->desc.enable_mask = 1 << id; in wm831x_buckv_probe()
500 ret = wm831x_reg_read(wm831x, dcdc->base + WM831X_DCDC_ON_CONFIG); in wm831x_buckv_probe()
505 dcdc->on_vsel = ret & WM831X_DC1_ON_VSEL_MASK; in wm831x_buckv_probe()
507 ret = wm831x_reg_read(wm831x, dcdc->base + WM831X_DCDC_DVS_CONTROL); in wm831x_buckv_probe()
512 dcdc->dvs_vsel = ret & WM831X_DC1_DVS_VSEL_MASK; in wm831x_buckv_probe()
514 if (pdata && pdata->dcdc[id]) in wm831x_buckv_probe()
515 wm831x_buckv_dvs_init(pdev, dcdc, in wm831x_buckv_probe()
516 pdata->dcdc[id]->driver_data); in wm831x_buckv_probe()
520 config.init_data = pdata->dcdc[id]; in wm831x_buckv_probe()
521 config.driver_data = dcdc; in wm831x_buckv_probe()
524 dcdc->regulator = devm_regulator_register(&pdev->dev, &dcdc->desc, in wm831x_buckv_probe()
526 if (IS_ERR(dcdc->regulator)) { in wm831x_buckv_probe()
527 ret = PTR_ERR(dcdc->regulator); in wm831x_buckv_probe()
537 dcdc->name, dcdc); in wm831x_buckv_probe()
548 dcdc->name, dcdc); in wm831x_buckv_probe()
555 platform_set_drvdata(pdev, dcdc); in wm831x_buckv_probe()
576 struct wm831x_dcdc *dcdc = rdev_get_drvdata(rdev); in wm831x_buckp_set_suspend_voltage() local
577 struct wm831x *wm831x = dcdc->wm831x; in wm831x_buckp_set_suspend_voltage()
578 u16 reg = dcdc->base + WM831X_DCDC_SLEEP_CONTROL; in wm831x_buckp_set_suspend_voltage()
610 struct wm831x_dcdc *dcdc; in wm831x_buckp_probe() local
622 dcdc = devm_kzalloc(&pdev->dev, sizeof(struct wm831x_dcdc), in wm831x_buckp_probe()
624 if (!dcdc) in wm831x_buckp_probe()
627 dcdc->wm831x = wm831x; in wm831x_buckp_probe()
635 dcdc->base = res->start; in wm831x_buckp_probe()
637 snprintf(dcdc->name, sizeof(dcdc->name), "DCDC%d", id + 1); in wm831x_buckp_probe()
638 dcdc->desc.name = dcdc->name; in wm831x_buckp_probe()
640 snprintf(dcdc->supply_name, sizeof(dcdc->supply_name), in wm831x_buckp_probe()
642 dcdc->desc.supply_name = dcdc->supply_name; in wm831x_buckp_probe()
644 dcdc->desc.id = id; in wm831x_buckp_probe()
645 dcdc->desc.type = REGULATOR_VOLTAGE; in wm831x_buckp_probe()
646 dcdc->desc.n_voltages = WM831X_BUCKP_MAX_SELECTOR + 1; in wm831x_buckp_probe()
647 dcdc->desc.ops = &wm831x_buckp_ops; in wm831x_buckp_probe()
648 dcdc->desc.owner = THIS_MODULE; in wm831x_buckp_probe()
649 dcdc->desc.vsel_reg = dcdc->base + WM831X_DCDC_ON_CONFIG; in wm831x_buckp_probe()
650 dcdc->desc.vsel_mask = WM831X_DC3_ON_VSEL_MASK; in wm831x_buckp_probe()
651 dcdc->desc.enable_reg = WM831X_DCDC_ENABLE; in wm831x_buckp_probe()
652 dcdc->desc.enable_mask = 1 << id; in wm831x_buckp_probe()
653 dcdc->desc.min_uV = 850000; in wm831x_buckp_probe()
654 dcdc->desc.uV_step = 25000; in wm831x_buckp_probe()
658 config.init_data = pdata->dcdc[id]; in wm831x_buckp_probe()
659 config.driver_data = dcdc; in wm831x_buckp_probe()
662 dcdc->regulator = devm_regulator_register(&pdev->dev, &dcdc->desc, in wm831x_buckp_probe()
664 if (IS_ERR(dcdc->regulator)) { in wm831x_buckp_probe()
665 ret = PTR_ERR(dcdc->regulator); in wm831x_buckp_probe()
675 dcdc->name, dcdc); in wm831x_buckp_probe()
682 platform_set_drvdata(pdev, dcdc); in wm831x_buckp_probe()
703 struct wm831x_dcdc *dcdc = rdev_get_drvdata(rdev); in wm831x_boostp_get_status() local
704 struct wm831x *wm831x = dcdc->wm831x; in wm831x_boostp_get_status()
741 int id = pdev->id % ARRAY_SIZE(pdata->dcdc); in wm831x_boostp_probe()
742 struct wm831x_dcdc *dcdc; in wm831x_boostp_probe() local
748 if (pdata == NULL || pdata->dcdc[id] == NULL) in wm831x_boostp_probe()
751 dcdc = devm_kzalloc(&pdev->dev, sizeof(struct wm831x_dcdc), GFP_KERNEL); in wm831x_boostp_probe()
752 if (!dcdc) in wm831x_boostp_probe()
755 dcdc->wm831x = wm831x; in wm831x_boostp_probe()
762 dcdc->base = res->start; in wm831x_boostp_probe()
764 snprintf(dcdc->name, sizeof(dcdc->name), "DCDC%d", id + 1); in wm831x_boostp_probe()
765 dcdc->desc.name = dcdc->name; in wm831x_boostp_probe()
766 dcdc->desc.id = id; in wm831x_boostp_probe()
767 dcdc->desc.type = REGULATOR_VOLTAGE; in wm831x_boostp_probe()
768 dcdc->desc.ops = &wm831x_boostp_ops; in wm831x_boostp_probe()
769 dcdc->desc.owner = THIS_MODULE; in wm831x_boostp_probe()
770 dcdc->desc.enable_reg = WM831X_DCDC_ENABLE; in wm831x_boostp_probe()
771 dcdc->desc.enable_mask = 1 << id; in wm831x_boostp_probe()
775 config.init_data = pdata->dcdc[id]; in wm831x_boostp_probe()
776 config.driver_data = dcdc; in wm831x_boostp_probe()
779 dcdc->regulator = devm_regulator_register(&pdev->dev, &dcdc->desc, in wm831x_boostp_probe()
781 if (IS_ERR(dcdc->regulator)) { in wm831x_boostp_probe()
782 ret = PTR_ERR(dcdc->regulator); in wm831x_boostp_probe()
792 dcdc->name, in wm831x_boostp_probe()
793 dcdc); in wm831x_boostp_probe()
800 platform_set_drvdata(pdev, dcdc); in wm831x_boostp_probe()
834 struct wm831x_dcdc *dcdc; in wm831x_epe_probe() local
839 dcdc = devm_kzalloc(&pdev->dev, sizeof(struct wm831x_dcdc), GFP_KERNEL); in wm831x_epe_probe()
840 if (!dcdc) in wm831x_epe_probe()
843 dcdc->wm831x = wm831x; in wm831x_epe_probe()
848 snprintf(dcdc->name, sizeof(dcdc->name), "EPE%d", id + 1); in wm831x_epe_probe()
849 dcdc->desc.name = dcdc->name; in wm831x_epe_probe()
850 dcdc->desc.id = id + WM831X_EPE_BASE; /* Offset in DCDC registers */ in wm831x_epe_probe()
851 dcdc->desc.ops = &wm831x_epe_ops; in wm831x_epe_probe()
852 dcdc->desc.type = REGULATOR_VOLTAGE; in wm831x_epe_probe()
853 dcdc->desc.owner = THIS_MODULE; in wm831x_epe_probe()
854 dcdc->desc.enable_reg = WM831X_DCDC_ENABLE; in wm831x_epe_probe()
855 dcdc->desc.enable_mask = 1 << dcdc->desc.id; in wm831x_epe_probe()
860 config.driver_data = dcdc; in wm831x_epe_probe()
863 dcdc->regulator = devm_regulator_register(&pdev->dev, &dcdc->desc, in wm831x_epe_probe()
865 if (IS_ERR(dcdc->regulator)) { in wm831x_epe_probe()
866 ret = PTR_ERR(dcdc->regulator); in wm831x_epe_probe()
872 platform_set_drvdata(pdev, dcdc); in wm831x_epe_probe()