Hi,
I am getting the following error, while booting linux,
omap_voltage_late_init: Voltage driver support not added
I have been going through the documentation provided in linux, which is relevant to this current problem.
I have observed that this has something to deal with the voltage and frequency maps which should be present in the DT, is that right ?
Also, I have seen that under arch/arm/mach-omap2/ there are three files mainly dealing with this,
io.c ->
#ifdef CONFIG_SOC_AM33XX void __init am33xx_init_early(void) { omap2_set_globals_tap(AM335X_CLASS, AM33XX_L4_WK_IO_ADDRESS(AM33XX_TAP_BASE)); omap2_control_base_init(); omap3xxx_check_revision(); am33xx_check_features(); omap2_prcm_base_init(); am33xx_powerdomains_init(); am33xx_clockdomains_init(); am33xx_hwmod_init(); omap_hwmod_init_postsetup(); omap_clk_soc_init = am33xx_dt_clk_init; } void __init am33xx_init_late(void) { omap_common_late_init(); } #endif
pm.c ->
int __init omap2_common_pm_late_init(void) { /* Init the voltage layer */ omap3_twl_init(); omap4_twl_init(); omap_voltage_late_init(); /* Initialize the voltages */ omap3_init_voltages(); omap4_init_voltages(); /* Smartreflex device init */ omap_devinit_smartreflex(); return 0; }
voltage.c ->
int __init omap_voltage_late_init(void) { struct voltagedomain *voltdm; if (list_empty(&voltdm_list)) { pr_err("%s: Voltage driver support not added\n", __func__); return -EINVAL; } list_for_each_entry(voltdm, &voltdm_list, node) { struct clk *sys_ck; if (!voltdm->scalable) continue; sys_ck = clk_get(NULL, voltdm->sys_clk.name); if (IS_ERR(sys_ck)) { pr_warn("%s: Could not get sys clk.\n", __func__); return -EINVAL; } voltdm->sys_clk.rate = clk_get_rate(sys_ck); WARN_ON(!voltdm->sys_clk.rate); clk_put(sys_ck); if (voltdm->vc) { voltdm->scale = omap_vc_bypass_scale; omap_vc_init_channel(voltdm); } if (voltdm->vp) { voltdm->scale = omap_vp_forceupdate_scale; omap_vp_init(voltdm); } } return 0; }
FYI,
I am using a custom board based on AM3352.
DTS includes,
#include "am33xx.dtsi"
DTS has the following entry for cpu,
cpus { cpu@0 { cpu0-supply = <&dcdc2_reg>; }; };