Hi Tony, If found this patch in your omap-for-v3.16/pm-signed tag and tested it on top of Linus master + omap 3.16 dt + Tomi fbdev omap. I assumed it's going upstream for 3.16(?). First of all; is this safe on OMAP4460? As far as I understand voltage scaling on 4460 has never been mainline, but this code enables voltage scaling for all omap4 parts. More below. On 11 April 2014 01:47, Tony Lindgren <tony@xxxxxxxxxxx> wrote: > We are currently disabling the init of voltage scaling > for device tree. With the voltage scaling problems fixed > for omap3 in general, there's no need to disable the voltage > scaling init for device tree based booting. > > Cc: Kevin Hilman <khilman@xxxxxxxxxx> > Cc: Nishanth Menon <nm@xxxxxx> > Cc: Paul Walmsley <paul@xxxxxxxxx> > Cc: Tero Kristo <t-kristo@xxxxxx> > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> > --- > arch/arm/mach-omap2/pm.c | 28 ++++++++++++---------------- > 1 file changed, 12 insertions(+), 16 deletions(-) > > diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c > index e1b4141..ccefd11 100644 > --- a/arch/arm/mach-omap2/pm.c > +++ b/arch/arm/mach-omap2/pm.c > @@ -287,25 +287,21 @@ omap_postcore_initcall(omap2_common_pm_init); > > int __init omap2_common_pm_late_init(void) > { > - /* > - * In the case of DT, the PMIC and SR initialization will be done using > - * a completely different mechanism. > - * Disable this part if a DT blob is available. > - */ > - if (!of_have_populated_dt()) { > - > - /* Init the voltage layer */ > - omap_pmic_late_init(); > - omap_voltage_late_init(); > + if (of_have_populated_dt()) { > + omap3_twl_init(); > + omap4_twl_init(); > + } > > - /* Initialize the voltages */ > - omap3_init_voltages(); > - omap4_init_voltages(); > + /* Init the voltage layer */ > + omap_pmic_late_init(); > + omap_voltage_late_init(); > > - /* Smartreflex device init */ > - omap_devinit_smartreflex(); > + /* Initialize the voltages */ > + omap3_init_voltages(); > + omap4_init_voltages(); > > - } > + /* Smartreflex device init */ > + omap_devinit_smartreflex(); > > /* cpufreq dummy device instantiation */ > omap_init_cpufreq(); > -- In omap4_twl_init() we have: if (!cpu_is_omap44xx()) return -ENODEV; voltdm = voltdm_lookup("mpu"); omap_voltage_register_pmic(voltdm, &omap4_mpu_pmic); voltdm = voltdm_lookup("iva"); omap_voltage_register_pmic(voltdm, &omap4_iva_pmic); voltdm = voltdm_lookup("core"); omap_voltage_register_pmic(voltdm, &omap4_core_pmic); As far as I understand the setup above is only valid for 4430 and not 4460 since it is hook up to the twl in diffent way. External switcher (TPS62361) for mpu rail and the other rails are used differently. I also get the following messages on boot now: [ 2.458740] twl: not initialized [ 2.462127] twl6030_uv_to_vsel:OUT OF RANGE! non mapped vsel for 1375000 Vs max 1316660 [ 2.470581] twl6030_uv_to_vsel:OUT OF RANGE! non mapped vsel for 1375000 Vs max 1316660 [ 2.479003] twl6030_uv_to_vsel:OUT OF RANGE! non mapped vsel for 1375000 Vs max 1316660 [ 2.487457] twl6030_uv_to_vsel:OUT OF RANGE! non mapped vsel for 1375000 Vs max 1316660 [ 2.495880] twl6030_uv_to_vsel:OUT OF RANGE! non mapped vsel for 1375000 Vs max 1316660 [ 2.504302] twl6030_uv_to_vsel:OUT OF RANGE! non mapped vsel for 1375000 Vs max 1316660 [ 2.512725] twl6030_uv_to_vsel:OUT OF RANGE! non mapped vsel for 1410000 Vs max 1316660 [ 2.521179] omap2_set_init_voltage: unable to find boot up OPP for vdd_mpu [ 2.528411] omap2_set_init_voltage: unable to set vdd_mpu [ 2.534088] omap2_set_init_voltage: unable to find boot up OPP for vdd_core [ 2.541412] omap2_set_init_voltage: unable to set vdd_core [ 2.547210] omap2_set_init_voltage: unable to find boot up OPP for vdd_iva [ 2.554443] omap2_set_init_voltage: unable to set vdd_iva It doesn't seem too happy on my 4460. regards Joachim Eastwood -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html