> From: Eduardo Valentin [mailto:eduardo.valentin@xxxxxxxxx] > Sent: Friday, December 11, 2009 4:12 AM > > Hello Nishanth, > > On Wed, Dec 09, 2009 at 07:17:14AM +0100, ext Nishanth Menon wrote: > > Introduce the OMAP3630 OPPs including the defined OPP tuples. > > > > Further information on OMAP3630 can be found here: > > > http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=61 > 23&navigationId=12836&contentId=52606 > > > > OMAP36xx family introduces: > > VDD1 with 4 OPPs, of which OPP3 & 4 are available only on devices yet > > to be introduced in 36xx family. Meanwhile, VDD2 has 2 opps. > > > > Device Support of OPPs-> > > |<-3630-600->| (default) > > |<- 3630-800 ->| (device: TBD) > > |<- 3630-1000 ->| (device: TBD) > > H/w OPP-> OPP50 OPP100 OPP-Turbo OPP1G-SB > > VDD1 OPP1 OPP2 OPP3 OPP4 > > VDD2 OPP1 OPP2 OPP2 OPP2 > > > > Note: > > a) TI h/w naming for OPPs are now standardized in terms of OPP50, 100, > > Turbo and SB. This maps as shown above to the opp IDs (s/w term). > > b) For boards which need custom VDD1/2 OPPs, the opp table can be > > updated by the board file on a need basis after the > > omap3_pm_init_opp_table call. The OPPs introduced here are the > > official OPP table at this point in time. > > > > [ ... ] > > > > > +static struct omap_opp_def __initdata omap36xx_mpu_rate_table[] = { > > + /* OPP1 - OPP50 */ > > + OMAP_OPP_DEF(true, 300000000, 930000), > > + /* OPP2 - OPP100 */ > > + OMAP_OPP_DEF(true, 600000000, 1100000), > > + /* OPP3 - OPP-Turbo */ > > + OMAP_OPP_DEF(false, 800000000, 1260000), > > + /* OPP4 - OPP-SB */ > > + OMAP_OPP_DEF(false, 1000000000, 1310000), > > + OMAP_OPP_DEF_TERMINATOR > > What else needs to be done in order to enable OPP-Turbo & OPP-SB ? Sigh - long story ;) but in a short line: you just need to call opp_enable(freq) in your board file while we send a future patch to enable auto detection: DISCLAIMER: for 3630, there may not be a way to differentiate between devices other than some specific one - and board file may need to enable the opp that board has (shrug.. I know it is not a good idea - but there are some non-technical reasons involved - still waiting for confirmation before being able to share additional info on list). > > > > +}; > > + > > +static struct omap_opp_def __initdata omap36xx_l3_rate_table[] = { > > + /* OPP1 - OPP50 */ > > + OMAP_OPP_DEF(true, 100000000, 930000), > > + /* OPP2 - OPP100, OPP-Turbo, OPP-SB */ > > + OMAP_OPP_DEF(true, 200000000, 1137500), > > + OMAP_OPP_DEF_TERMINATOR > > +}; > > + > > +static struct omap_opp_def __initdata omap36xx_dsp_rate_table[] = { > > + /* OPP1 - OPP50 */ > > + OMAP_OPP_DEF(true, 260000000, 930000), > > + /* OPP2 - OPP100 */ > > + OMAP_OPP_DEF(true, 520000000, 1100000), > > + /* OPP3 - OPP-Turbo */ > > + OMAP_OPP_DEF(false, 660000000, 1260000), > > + /* OPP4 - OPP-SB */ > > + OMAP_OPP_DEF(false, 875000000, 1310000), > > + OMAP_OPP_DEF_TERMINATOR > > +}; > > + > > /* OMAP3 Rate Table */ > > struct omap_opp *omap3_mpu_rate_table; > > struct omap_opp *omap3_dsp_rate_table; > > @@ -1296,18 +1328,27 @@ static void __init configure_vc(void) > > void __init omap3_pm_init_opp_table(void) > > { > > int i; > > + struct omap_opp_def **omap3_opp_def_list; > > struct omap_opp_def *omap34xx_opp_def_list[] = { > > omap34xx_mpu_rate_table, > > omap34xx_l3_rate_table, > > omap34xx_dsp_rate_table > > }; > > + struct omap_opp_def *omap36xx_opp_def_list[] = { > > + omap36xx_mpu_rate_table, > > + omap36xx_l3_rate_table, > > + omap36xx_dsp_rate_table > > + }; > > struct omap_opp **omap3_rate_tables[] = { > > &omap3_mpu_rate_table, > > &omap3_l3_rate_table, > > &omap3_dsp_rate_table > > }; > > + > > + omap3_opp_def_list = cpu_is_omap3630() ? omap36xx_opp_def_list : > > + omap34xx_opp_def_list; > > for (i = 0; i < ARRAY_SIZE(omap3_rate_tables); i++) { > > - *omap3_rate_tables[i] = > opp_init_list(omap34xx_opp_def_list[i]); > > + *omap3_rate_tables[i] = opp_init_list(omap3_opp_def_list[i]); > > /* We dont want half configured system at the moment */ > > BUG_ON(IS_ERR(omap3_rate_tables[i])); > > } > > -- > > 1.6.3.3 > > -- > Eduardo Valentin -- 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