RE: [PATCH 9/9 v2] omap3: pm: introduce 3630 opps

2009-11-19 Thread Sripathy, Vishwanath


 -Original Message-
 From: Menon, Nishanth
 Sent: Friday, November 13, 2009 11:35 AM
 To: linux-omap
 Cc: Menon, Nishanth; Cousson, Benoit; Hunter, Jon; Kevin Hilman; Chikkature
 Rajashekar, Madhusudhan; Paul Walmsley; Dasgupta, Romit; Premi, Sanjeev;
 Shilimkar, Santosh; Aguirre, Sergio; Lam, SuiLun; Gopinath, Thara; Sripathy,
 Vishwanath
 Subject: [PATCH 9/9 v2] omap3: pm: introduce 3630 opps
 
 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=6123nav
 igationId=12836contentId=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.
 
 Range of OPPs supported by Devices(tentative)-
|-3630-600-| (default)
|-  3630-800  -| (device: TBD)
|-  3630-1000 -| (device: TBD)
 H/w OPP- OPP50 OPP100   OPP-Turbo   OPP1G-SB
 VDD1  OPP1  OPP2 OPP3OPP4
 VDD2  OPP1  OPP2 OPP2OPP2
 
 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.
 
 Tested on: SDP3430, SDP3630
 
 Cc: Benoit Cousson b-cous...@ti.com
 Cc: Jon Hunter jon-hun...@ti.com
 Cc: Kevin Hilman khil...@deeprootsystems.com
 Cc: Madhusudhan Chikkature Rajashekar madhu...@ti.com
 Cc: Paul Walmsley p...@pwsan.com
 Cc: Romit Dasgupta ro...@ti.com
 Cc: Sanjeev Premi pr...@ti.com
 Cc: Santosh Shilimkar santosh.shilim...@ti.com
 Cc: Sergio Alberto Aguirre Rodriguez saagui...@ti.com
 Cc: SuiLun Lam s-...@ti.com
 Cc: Thara Gopinath th...@ti.com
 Cc: Vishwanath Sripathy vishwanath...@ti.com
 
 Signed-off-by: Nishanth Menon n...@ti.com
 ---
  arch/arm/mach-omap2/omap3-opp.h |9 
  arch/arm/mach-omap2/pm34xx.c|   87
 +++---
  2 files changed, 80 insertions(+), 16 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/omap3-opp.h b/arch/arm/mach-omap2/omap3-
 opp.h
 index 7f27f44..a5880b8 100644
 --- a/arch/arm/mach-omap2/omap3-opp.h
 +++ b/arch/arm/mach-omap2/omap3-opp.h
 @@ -4,22 +4,31 @@
  #include plat/omap-pm.h
 
  /* MPU speeds */
 +#define S1000M  10
 +#define S800M   8
  #define S600M   6
  #define S550M   55000
  #define S500M   5
 +#define S300M   3
  #define S250M   25000
  #define S125M   12500
 
  /* DSP speeds */
 +#define S875M   87500
 +#define S660M   66000
 +#define S520M   52000
  #define S430M   43000
  #define S400M   4
  #define S360M   36000
 +#define S260M   26000
  #define S180M   18000
  #define S90M9000
 
  /* L3 speeds */
  #define S83M8300
 +#define S100M   1
  #define S166M   16600
 +#define S200M   2
 
  extern struct omap_opp *omap3_mpu_rate_table;
  extern struct omap_opp *omap3_dsp_rate_table;
 diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
 index 14131f8..86137bb 100644
 --- a/arch/arm/mach-omap2/pm34xx.c
 +++ b/arch/arm/mach-omap2/pm34xx.c
 @@ -141,6 +141,41 @@ static __initdata struct omap_opp
 omap34xx_dsp_rate_table[] = {
   {0, 0, 0, 0},
  };
 
 +static __initdata struct omap_opp omap36xx_mpu_rate_table[] = {
 + {0, 0, 0, 0},
 + /*OPP1 - 930mV - OPP50*/
 + {true, S300M, VDD1_OPP1, 0x1a},
 + /*OPP2 - 1.100V - OPP100*/
 + {true, S600M, VDD1_OPP2, 0x28},
 + /*OPP3 - 1.260V - OPP-Turbo*/
 + {false, S800M, VDD1_OPP3, 0x34},
 + /*OPP4 - 1.310V - OPP-SB*/
 + {false, S1000M, VDD1_OPP4, 0x38},
 + {0, 0, 0, 0},
 +};

OPP Table vsel values seem to be wrong. Eg: for OPP1 to get 930mV, vsel should 
be 0x1b. vsel=Ceiling((930-600)/12.5)

 +
 +static __initdata struct omap_opp omap36xx_l3_rate_table[] = {
 + {0, 0, 0, 0},
 + /*OPP1 - 930mV - OPP50 */
 + {true, S100M, VDD2_OPP1, 0x1a},
 + /*OPP2 - 1.375V - OPP100, OPP-Turbo, OPP-SB*/
 + {true, S200M, VDD2_OPP2, 0x2b},
 + {0, 0, 0, 0},
 +};
 +


Same case

 +static __initdata struct omap_opp omap36xx_dsp_rate_table[] = {
 + {0, 0, 0, 0},
 + /*OPP1 - OPP50*/
 + {true, S260M, VDD1_OPP1, 0x1a},
 + /*OPP2 - OPP100*/
 + {true, S520M, VDD1_OPP2, 0x28},
 + /*OPP3 - OPP-Turbo*/
 + {false, S660M, VDD1_OPP3, 0x34},
 + /*OPP4 - OPP-SB*/
 + {false, S875M, VDD1_OPP4, 0x38},
 + {0, 0, 0, 0},
 +};
 +

Same case

  struct omap_opp *omap3_mpu_rate_table;
  struct omap_opp *omap3_dsp_rate_table;
  struct omap_opp *omap3_l3_rate_table;
 @@ -1287,22 +1322,42 @@ static void __init configure_vc(void)
  void __init omap3_pm_init_opp_table(void)
  {
   

Re: [PATCH 9/9 v2] omap3: pm: introduce 3630 opps

2009-11-18 Thread Jon Hunter


Menon, Nishanth 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=6123navigationId=12836contentId=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.

Range of OPPs supported by Devices(tentative)-
   |-3630-600-| (default)
   |-  3630-800  -| (device: TBD)
   |-  3630-1000 -| (device: TBD)
H/w OPP- OPP50 OPP100   OPP-Turbo   OPP1G-SB
VDD1  OPP1  OPP2 OPP3OPP4
VDD2  OPP1  OPP2 OPP2OPP2

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.

Tested on: SDP3430, SDP3630

Cc: Benoit Cousson b-cous...@ti.com
Cc: Jon Hunter jon-hun...@ti.com
Cc: Kevin Hilman khil...@deeprootsystems.com
Cc: Madhusudhan Chikkature Rajashekar madhu...@ti.com
Cc: Paul Walmsley p...@pwsan.com
Cc: Romit Dasgupta ro...@ti.com
Cc: Sanjeev Premi pr...@ti.com
Cc: Santosh Shilimkar santosh.shilim...@ti.com
Cc: Sergio Alberto Aguirre Rodriguez saagui...@ti.com
Cc: SuiLun Lam s-...@ti.com
Cc: Thara Gopinath th...@ti.com
Cc: Vishwanath Sripathy vishwanath...@ti.com

Signed-off-by: Nishanth Menon n...@ti.com
---
 arch/arm/mach-omap2/omap3-opp.h |9 
 arch/arm/mach-omap2/pm34xx.c|   87 +++---
 2 files changed, 80 insertions(+), 16 deletions(-)

diff --git a/arch/arm/mach-omap2/omap3-opp.h b/arch/arm/mach-omap2/omap3-opp.h
index 7f27f44..a5880b8 100644
--- a/arch/arm/mach-omap2/omap3-opp.h
+++ b/arch/arm/mach-omap2/omap3-opp.h
@@ -4,22 +4,31 @@
 #include plat/omap-pm.h
 
 /* MPU speeds */

+#define S1000M  10
+#define S800M   8
 #define S600M   6
 #define S550M   55000
 #define S500M   5
+#define S300M   3
 #define S250M   25000
 #define S125M   12500
 
 /* DSP speeds */

+#define S875M   87500
+#define S660M   66000
+#define S520M   52000
 #define S430M   43000
 #define S400M   4
 #define S360M   36000
+#define S260M   26000
 #define S180M   18000
 #define S90M9000
 
 /* L3 speeds */

 #define S83M8300
+#define S100M   1
 #define S166M   16600
+#define S200M   2
 
 extern struct omap_opp *omap3_mpu_rate_table;

 extern struct omap_opp *omap3_dsp_rate_table;
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index 14131f8..86137bb 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -141,6 +141,41 @@ static __initdata struct omap_opp 
omap34xx_dsp_rate_table[] = {
{0, 0, 0, 0},
 };
 
+static __initdata struct omap_opp omap36xx_mpu_rate_table[] = {

+   {0, 0, 0, 0},
+   /*OPP1 - 930mV - OPP50*/
+   {true, S300M, VDD1_OPP1, 0x1a},
+   /*OPP2 - 1.100V - OPP100*/
+   {true, S600M, VDD1_OPP2, 0x28},
+   /*OPP3 - 1.260V - OPP-Turbo*/
+   {false, S800M, VDD1_OPP3, 0x34},
+   /*OPP4 - 1.310V - OPP-SB*/
+   {false, S1000M, VDD1_OPP4, 0x38},
+   {0, 0, 0, 0},
+};
+
+static __initdata struct omap_opp omap36xx_l3_rate_table[] = {
+   {0, 0, 0, 0},
+   /*OPP1 - 930mV - OPP50 */
+   {true, S100M, VDD2_OPP1, 0x1a},
+   /*OPP2 - 1.375V - OPP100, OPP-Turbo, OPP-SB*/



Nishanth, can you correct the above comment? This should be 1.1375V and 
not 1.375V.


Cheers
Jon
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html