Lines Matching refs:voltdm

13 static u32 _vp_set_init_voltage(struct voltagedomain *voltdm, u32 volt)  in _vp_set_init_voltage()  argument
15 struct omap_vp_instance *vp = voltdm->vp; in _vp_set_init_voltage()
19 vsel = voltdm->pmic->uv_to_vsel(volt); in _vp_set_init_voltage()
21 vpconfig = voltdm->read(vp->vpconfig); in _vp_set_init_voltage()
26 voltdm->write(vpconfig, vp->vpconfig); in _vp_set_init_voltage()
29 voltdm->write((vpconfig | vp->common->vpconfig_initvdd), in _vp_set_init_voltage()
33 voltdm->write(vpconfig, vp->vpconfig); in _vp_set_init_voltage()
39 void __init omap_vp_init(struct voltagedomain *voltdm) in omap_vp_init() argument
41 struct omap_vp_instance *vp = voltdm->vp; in omap_vp_init()
45 if (!voltdm->pmic || !voltdm->pmic->uv_to_vsel) { in omap_vp_init()
46 pr_err("%s: No PMIC info for vdd_%s\n", __func__, voltdm->name); in omap_vp_init()
50 if (!voltdm->read || !voltdm->write) { in omap_vp_init()
52 __func__, voltdm->name); in omap_vp_init()
59 sys_clk_rate = voltdm->sys_clk.rate / 1000; in omap_vp_init()
61 timeout = (sys_clk_rate * voltdm->pmic->vp_timeout_us) / 1000; in omap_vp_init()
62 vddmin = max(voltdm->vp_param->vddmin, voltdm->pmic->vddmin); in omap_vp_init()
63 vddmax = min(voltdm->vp_param->vddmax, voltdm->pmic->vddmax); in omap_vp_init()
64 vddmin = voltdm->pmic->uv_to_vsel(vddmin); in omap_vp_init()
65 vddmax = voltdm->pmic->uv_to_vsel(vddmax); in omap_vp_init()
67 waittime = DIV_ROUND_UP(voltdm->pmic->step_size * sys_clk_rate, in omap_vp_init()
68 1000 * voltdm->pmic->slew_rate); in omap_vp_init()
69 vstepmin = voltdm->pmic->vp_vstepmin; in omap_vp_init()
70 vstepmax = voltdm->pmic->vp_vstepmax; in omap_vp_init()
76 val = (voltdm->pmic->vp_erroroffset << in omap_vp_init()
77 __ffs(voltdm->vp->common->vpconfig_erroroffset_mask)) | in omap_vp_init()
79 voltdm->write(val, vp->vpconfig); in omap_vp_init()
84 voltdm->write(val, vp->vstepmin); in omap_vp_init()
89 voltdm->write(val, vp->vstepmax); in omap_vp_init()
95 voltdm->write(val, vp->vlimitto); in omap_vp_init()
98 int omap_vp_update_errorgain(struct voltagedomain *voltdm, in omap_vp_update_errorgain() argument
103 if (!voltdm->vp) in omap_vp_update_errorgain()
107 volt_data = omap_voltage_get_voltdata(voltdm, target_volt); in omap_vp_update_errorgain()
112 voltdm->rmw(voltdm->vp->common->vpconfig_errorgain_mask, in omap_vp_update_errorgain()
114 __ffs(voltdm->vp->common->vpconfig_errorgain_mask), in omap_vp_update_errorgain()
115 voltdm->vp->vpconfig); in omap_vp_update_errorgain()
121 int omap_vp_forceupdate_scale(struct voltagedomain *voltdm, in omap_vp_forceupdate_scale() argument
124 struct omap_vp_instance *vp = voltdm->vp; in omap_vp_forceupdate_scale()
129 ret = omap_vc_pre_scale(voltdm, target_volt, &target_vsel, &current_vsel); in omap_vp_forceupdate_scale()
145 __func__, voltdm->name); in omap_vp_forceupdate_scale()
149 vpconfig = _vp_set_init_voltage(voltdm, target_volt); in omap_vp_forceupdate_scale()
152 voltdm->write(vpconfig | vp->common->vpconfig_forceupdate, in omap_vp_forceupdate_scale()
153 voltdm->vp->vpconfig); in omap_vp_forceupdate_scale()
164 __func__, voltdm->name); in omap_vp_forceupdate_scale()
166 omap_vc_post_scale(voltdm, target_volt, target_vsel, current_vsel); in omap_vp_forceupdate_scale()
182 __func__, voltdm->name); in omap_vp_forceupdate_scale()
185 voltdm->write(vpconfig, vp->vpconfig); in omap_vp_forceupdate_scale()
197 void omap_vp_enable(struct voltagedomain *voltdm) in omap_vp_enable() argument
202 if (!voltdm || IS_ERR(voltdm)) { in omap_vp_enable()
207 vp = voltdm->vp; in omap_vp_enable()
208 if (!voltdm->read || !voltdm->write) { in omap_vp_enable()
210 __func__, voltdm->name); in omap_vp_enable()
218 volt = voltdm_get_voltage(voltdm); in omap_vp_enable()
221 __func__, voltdm->name); in omap_vp_enable()
225 vpconfig = _vp_set_init_voltage(voltdm, volt); in omap_vp_enable()
229 voltdm->write(vpconfig, vp->vpconfig); in omap_vp_enable()
241 void omap_vp_disable(struct voltagedomain *voltdm) in omap_vp_disable() argument
247 if (!voltdm || IS_ERR(voltdm)) { in omap_vp_disable()
252 vp = voltdm->vp; in omap_vp_disable()
253 if (!voltdm->read || !voltdm->write) { in omap_vp_disable()
255 __func__, voltdm->name); in omap_vp_disable()
262 __func__, voltdm->name); in omap_vp_disable()
267 vpconfig = voltdm->read(vp->vpconfig); in omap_vp_disable()
269 voltdm->write(vpconfig, vp->vpconfig); in omap_vp_disable()
274 omap_test_timeout((voltdm->read(vp->vstatus)), in omap_vp_disable()
278 pr_warn("%s: vdd_%s idle timedout\n", __func__, voltdm->name); in omap_vp_disable()