RE: [PATCH v2] OMAP3: introduce OMAP3630

2009-10-15 Thread Pais, Allen
Muxes for OMAP 3630.

Signed-off-by: Allen Pais allen.p...@ti.com
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
index b5fac32..93abb74 100644
--- a/arch/arm/mach-omap2/mux.c
+++ b/arch/arm/mach-omap2/mux.c
@@ -551,6 +551,42 @@ MUX_CFG_34XX(AF13_3430_MMC3_DAT3, 0x5e2,
 MUX_CFG_34XX(AF26_34XX_SYS_NIRQ, 0x1E0,
OMAP3_WAKEUP_EN | OMAP34XX_PIN_INPUT_PULLUP |
OMAP34XX_MUX_MODE0)
+
+/*Muxes for 3630 */
+MUX_CFG_34XX(H26_3630_DSS_DATA18, 0x100,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(H25_3630_DSS_DATA19, 0x102,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(E28_3630_DSS_DATA20, 0x104,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(J26_3630_DSS_DATA21, 0x106,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AC27_3630_DSS_DATA22, 0x108,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AC28_3630_DSS_DATA23, 0x10A,
+   OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
+MUX_CFG_34XX(AF9_3630_ETKD8, 0x5EC,
+   OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AG9_3630_ETKD9, 0x5EE,
+   OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AG7_3630_ETKD12, 0x5F0,
+   OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
+MUX_CFG_34XX(AA25_3630_UART2_TX, 0x178,
+   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AD25_3630_UART2_RX, 0x17A,
+   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AB25_3630_UART2_RTS, 0x176,
+   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(AB26_3630_UART2_CTS, 0x174,
+   OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
+MUX_CFG_34XX(H20_UART3_RX_IRRX, 0x19E,
+   OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
+MUX_CFG_34XX(H21_UART3_TX_IRTX, 0x1A0,
+   OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
+
 };
 
 #define OMAP34XX_PINS_SZ   ARRAY_SIZE(omap34xx_pins)
diff --git a/arch/arm/plat-omap/include/mach/mux.h 
b/arch/arm/plat-omap/include/mach/mux.h
index 0f49d2d..8d8cbe1 100644
--- a/arch/arm/plat-omap/include/mach/mux.h
+++ b/arch/arm/plat-omap/include/mach/mux.h
@@ -890,6 +890,32 @@ enum omap34xx_index {
 
/* SYS_NIRQ T2 INT1 */
AF26_34XX_SYS_NIRQ,
+
+   /*Muxes for 3630*/
+   K28_3630_CAM_D6,
+   L28_3630_CAM_D7,
+   K27_3630_CAM_D8,
+   L27_3630_CAM_D9,
+
+   H26_3630_DSS_DATA18,
+   H25_3630_DSS_DATA19,
+   E28_3630_DSS_DATA20,
+   J26_3630_DSS_DATA21,
+   AC27_3630_DSS_DATA22,
+   AC28_3630_DSS_DATA23,
+
+   AF9_3630_ETKD8,
+   AG9_3630_ETKD9,
+   AG7_3630_ETK12,
+
+   AA25_3630_UART2_TX,
+   AD25_3630_UART2_RX,
+   AB25_3630_UART2_RTS,
+   AB26_3630_UART2_CTS,
+
+   H20_UART3_RX_IRRX,
+   H21_UART3_TX_IRTX,
+
 };
 
 struct omap_mux_cfg {--
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


RE: [PATCH v2] OMAP3: introduce OMAP3630

2009-10-15 Thread Hemanth V
 Muxes for OMAP 3630.

What is the plan to add omap_cfg_reg calls for these new pins, which actually
configures these pin muxes.

Thanks
Hemanth


 Signed-off-by: Allen Pais allen.p...@ti.com
 diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
 index b5fac32..93abb74 100644
 --- a/arch/arm/mach-omap2/mux.c
 +++ b/arch/arm/mach-omap2/mux.c
 @@ -551,6 +551,42 @@ MUX_CFG_34XX(AF13_3430_MMC3_DAT3, 0x5e2,
  MUX_CFG_34XX(AF26_34XX_SYS_NIRQ, 0x1E0,
   OMAP3_WAKEUP_EN | OMAP34XX_PIN_INPUT_PULLUP |
   OMAP34XX_MUX_MODE0)
 +
 +/*Muxes for 3630 */
 +MUX_CFG_34XX(H26_3630_DSS_DATA18, 0x100,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(H25_3630_DSS_DATA19, 0x102,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(E28_3630_DSS_DATA20, 0x104,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(J26_3630_DSS_DATA21, 0x106,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AC27_3630_DSS_DATA22, 0x108,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AC28_3630_DSS_DATA23, 0x10A,
 + OMAP34XX_MUX_MODE3 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +
 +MUX_CFG_34XX(AF9_3630_ETKD8, 0x5EC,
 + OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AG9_3630_ETKD9, 0x5EE,
 + OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AG7_3630_ETKD12, 0x5F0,
 + OMAP34XX_MUX_MODE1 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +
 +MUX_CFG_34XX(AA25_3630_UART2_TX, 0x178,
 + OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AD25_3630_UART2_RX, 0x17A,
 + OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AB25_3630_UART2_RTS, 0x176,
 + OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(AB26_3630_UART2_CTS, 0x174,
 + OMAP34XX_MUX_MODE5 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +
 +MUX_CFG_34XX(H20_UART3_RX_IRRX, 0x19E,
 + OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +MUX_CFG_34XX(H21_UART3_TX_IRTX, 0x1A0,
 + OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
 +
  };

  #define OMAP34XX_PINS_SZ ARRAY_SIZE(omap34xx_pins)
 diff --git a/arch/arm/plat-omap/include/mach/mux.h
 b/arch/arm/plat-omap/include/mach/mux.h
 index 0f49d2d..8d8cbe1 100644
 --- a/arch/arm/plat-omap/include/mach/mux.h
 +++ b/arch/arm/plat-omap/include/mach/mux.h
 @@ -890,6 +890,32 @@ enum omap34xx_index {

   /* SYS_NIRQ T2 INT1 */
   AF26_34XX_SYS_NIRQ,
 +
 + /*Muxes for 3630*/
 + K28_3630_CAM_D6,
 + L28_3630_CAM_D7,
 + K27_3630_CAM_D8,
 + L27_3630_CAM_D9,
 +
 + H26_3630_DSS_DATA18,
 + H25_3630_DSS_DATA19,
 + E28_3630_DSS_DATA20,
 + J26_3630_DSS_DATA21,
 + AC27_3630_DSS_DATA22,
 + AC28_3630_DSS_DATA23,
 +
 + AF9_3630_ETKD8,
 + AG9_3630_ETKD9,
 + AG7_3630_ETK12,
 +
 + AA25_3630_UART2_TX,
 + AD25_3630_UART2_RX,
 + AB25_3630_UART2_RTS,
 + AB26_3630_UART2_CTS,
 +
 + H20_UART3_RX_IRRX,
 + H21_UART3_TX_IRTX,
 +
  };

  struct omap_mux_cfg {--
 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




--
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


RE: [PATCH v2] OMAP3: introduce OMAP3630

2009-10-08 Thread Aguirre Rodriguez, Sergio Alberto
 

 -Original Message-
 From: Menon, Nishanth 
 Sent: Thursday, October 08, 2009 12:32 PM
 To: linux-omap
 Cc: Menon, Nishanth; Chikkature Rajashekar, Madhusudhan; 
 Pandita, Vikram; Pais, Allen; Gadiyar, Anand; Cousson, 
 Benoit; Felipe Balbi; Kevin Hilman; Premi, Sanjeev; 
 Shilimkar, Santosh; Aguirre Rodriguez, Sergio Alberto; Tony Lindgren
 Subject: [PATCH v2] OMAP3: introduce OMAP3630
 
 Device intro:
 OMAP3630 is the latest in the family of OMAP3 devices
 and among the changes it introduces are:
 
 New OPP levels for new voltage and frequency levels. a bunch of
 Bug fixes to various modules feature additions, notably with ISP,
 sDMA etc.
 
 Details about the chip is available here:
 http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?t
emplateId=6123navigationId=12836contentId=52606
 
 Strategy used:
 Strategy to introduce this device into Linux was discussed here:
 Ref: http://marc.info/?t=12534330343r=1w=2
 
 Two approaches were available:
 a) Consider 3630 generation of devices as a new family of silicon
 b) Consider 3630 as an offshoot of 3430 family of devices
 
 As a common consensus, (b) seems to be more valid for 3630 as:
 * There are changes which are easily handled by using FEATURES
   infrastructure.
   For details how to do this, see thread:
   http://marc.info/?t=12505099851r=1w=2
 * Most of existing 34xx infrastructure can be reused(almost 90%+)
   - so no ugly if (cpu_is_omap34xx() || cpu_is_omap36xx())
 all over the place
   - lesser chance of bugs due to reuse of proven code flow
   - 36xx specific handling can still be done where required
 within the existing infrastructure
 
 NOTE:
 * If additional 34xx series are added, OMAP3430_REV_ES can be
   added on top of the existing 3630 ones are renumbered
 
 This patch was tested on SDP3430. zoom3/sdp3630 support needs
 further follow on patches
 
 Signed-off-by: Madhusudhan Chikkature Rajashekar madhu...@ti.com
 Signed-off-by: Nishanth Menon n...@ti.com
 Signed-off-by: Vikram Pandita vikram.pand...@ti.com
 Cc: Allen Pais allen.p...@ti.com
 Cc: Anand Gadiyar gadi...@ti.com
 Cc: Benoit Cousson b-cous...@ti.com
 Cc: Felipe Balbi felipe.ba...@nokia.com
 Cc: Kevin Hilman khil...@deeprootsystems.com
 Cc: Sanjeev Premi pr...@ti.com
 Cc: Santosh Shilimkar santosh.shilim...@ti.com
 Cc: Sergio Alberto Aguirre Rodriguez saagui...@ti.com
 Cc: Tony Lindgren t...@atomide.com
 ---
  arch/arm/mach-omap2/id.c  |   31 
 ---
  arch/arm/plat-omap/include/mach/cpu.h |6 ++
  2 files changed, 34 insertions(+), 3 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
 index 03b80f2..3fc5e4e 100644
 --- a/arch/arm/mach-omap2/id.c
 +++ b/arch/arm/mach-omap2/id.c
 @@ -186,6 +186,7 @@ void __init omap3_check_revision(void)
  {
   u32 cpuid, idcode;
   u16 hawkeye;
 + u16 omap_type;
   u8 rev;
   char *rev_name = ES1.0;
  
 @@ -210,7 +211,10 @@ void __init omap3_check_revision(void)
   hawkeye = (idcode  12)  0x;
   rev = (idcode  28)  0xff;
  
 - if (hawkeye == 0xb7ae) {

 + omap_type = omap_rev()  16;

This is wrong.

omap_rev() returns omap_revision static var, which is not yet assigned at this 
point.

So, this line needs to go _after_ below switch. [1]


 + switch (hawkeye) {
 + case 0xb7ae:
 + /* Handle 34xx devices */
   switch (rev) {
   case 0:
   omap_revision = OMAP3430_REV_ES2_0;
 @@ -231,12 +235,33 @@ void __init omap3_check_revision(void)
   default:
   /* Use the latest known revision as default */
   omap_revision = OMAP3430_REV_ES3_1;
 - rev_name = Unknown revision\n;
 + rev_name = Unknown 34xx revision\n;
   }
 + break;
 + case 0xb891:
 + /* Handle 36xx devices
 +  * But, override for display purposes
 +  */
 + omap_type = 0x3630;
 + switch (rev) {
 + case 0:
 + omap_revision = OMAP3630_REV_ES1_0;
 + rev_name = ES1.0;
 + break;
 + default:
 + /* Use the latest known revision as default */
 + omap_revision = OMAP3630_REV_ES1_0;
 + rev_name = Unknown 36xx revision\n;
 + }
 + break;
 + default:
 + /* Unknown default to latest rev as default*/
 + omap_revision = OMAP3630_REV_ES1_0;
 + rev_name = Unknown revision\n;
   }
  

[1] Here:
 omap_type = omap_rev()  16;

Regards,
Sergio

  out:
 - pr_info(OMAP%04x %s\n, omap_rev()  16, rev_name);
 + pr_info(OMAP%04x %s\n, omap_type, rev_name);

  }
  
  #define OMAP3_SHOW_FEATURE(feat) \
 diff --git a/arch/arm/plat-omap/include/mach/cpu.h 
 

RE: [PATCH v2] OMAP3: introduce OMAP3630

2009-10-08 Thread Aguirre Rodriguez, Sergio Alberto
 

From: linux-omap-ow...@vger.kernel.org 
[mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of 
Aguirre Rodriguez, Sergio Alberto
Sent: Thursday, October 08, 2009 2:59 PM
 From: Menon, Nishanth 
 Sent: Thursday, October 08, 2009 12:32 PM
  
  Device intro:
  OMAP3630 is the latest in the family of OMAP3 devices
  and among the changes it introduces are:
  
  New OPP levels for new voltage and frequency levels. a bunch of
  Bug fixes to various modules feature additions, notably with ISP,
  sDMA etc.
  
  Details about the chip is available here:
  http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?t
 emplateId=6123navigationId=12836contentId=52606
  
  Strategy used:
  Strategy to introduce this device into Linux was discussed here:
  Ref: http://marc.info/?t=12534330343r=1w=2
  
  Two approaches were available:
  a) Consider 3630 generation of devices as a new family of silicon
  b) Consider 3630 as an offshoot of 3430 family of devices
  
  As a common consensus, (b) seems to be more valid for 3630 as:
  * There are changes which are easily handled by using FEATURES
infrastructure.
For details how to do this, see thread:
http://marc.info/?t=12505099851r=1w=2
  * Most of existing 34xx infrastructure can be reused(almost 90%+)
  - so no ugly if (cpu_is_omap34xx() || cpu_is_omap36xx())
all over the place
  - lesser chance of bugs due to reuse of proven code flow
  - 36xx specific handling can still be done where required
within the existing infrastructure
  
  NOTE:
  * If additional 34xx series are added, OMAP3430_REV_ES can be
added on top of the existing 3630 ones are renumbered
  
  This patch was tested on SDP3430. zoom3/sdp3630 support needs
  further follow on patches
  
  Signed-off-by: Madhusudhan Chikkature Rajashekar madhu...@ti.com
  Signed-off-by: Nishanth Menon n...@ti.com
  Signed-off-by: Vikram Pandita vikram.pand...@ti.com
  Cc: Allen Pais allen.p...@ti.com
  Cc: Anand Gadiyar gadi...@ti.com
  Cc: Benoit Cousson b-cous...@ti.com
  Cc: Felipe Balbi felipe.ba...@nokia.com
  Cc: Kevin Hilman khil...@deeprootsystems.com
  Cc: Sanjeev Premi pr...@ti.com
  Cc: Santosh Shilimkar santosh.shilim...@ti.com
  Cc: Sergio Alberto Aguirre Rodriguez saagui...@ti.com
  Cc: Tony Lindgren t...@atomide.com
  ---
   arch/arm/mach-omap2/id.c  |   31 
  ---
   arch/arm/plat-omap/include/mach/cpu.h |6 ++
   2 files changed, 34 insertions(+), 3 deletions(-)
  
  diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
  index 03b80f2..3fc5e4e 100644
  --- a/arch/arm/mach-omap2/id.c
  +++ b/arch/arm/mach-omap2/id.c
  @@ -186,6 +186,7 @@ void __init omap3_check_revision(void)
   {
  u32 cpuid, idcode;
  u16 hawkeye;
  +   u16 omap_type;
  u8 rev;
  char *rev_name = ES1.0;
   
  @@ -210,7 +211,10 @@ void __init omap3_check_revision(void)
  hawkeye = (idcode  12)  0x;
  rev = (idcode  28)  0xff;
   
  -   if (hawkeye == 0xb7ae) {
 
  +   omap_type = omap_rev()  16;
 
 This is wrong.
 
 omap_rev() returns omap_revision static var, which is not yet 
 assigned at this point.
 
 So, this line needs to go _after_ below switch. [1]

Actually, omap_type is not used anywhere else than the end printk,
so why creating a var for that?

How about this instead:

#define omap_type() (omap_rev()  16)

Regards,
Sergio
 
 
  +   switch (hawkeye) {
  +   case 0xb7ae:
  +   /* Handle 34xx devices */
  switch (rev) {
  case 0:
  omap_revision = OMAP3430_REV_ES2_0;
  @@ -231,12 +235,33 @@ void __init omap3_check_revision(void)
  default:
  /* Use the latest known revision as default */
  omap_revision = OMAP3430_REV_ES3_1;
  -   rev_name = Unknown revision\n;
  +   rev_name = Unknown 34xx revision\n;
  }
  +   break;
  +   case 0xb891:
  +   /* Handle 36xx devices
  +* But, override for display purposes
  +*/
  +   omap_type = 0x3630;
  +   switch (rev) {
  +   case 0:
  +   omap_revision = OMAP3630_REV_ES1_0;
  +   rev_name = ES1.0;
  +   break;
  +   default:
  +   /* Use the latest known revision as default */
  +   omap_revision = OMAP3630_REV_ES1_0;
  +   rev_name = Unknown 36xx revision\n;
  +   }
  +   break;
  +   default:
  +   /* Unknown default to latest rev as default*/
  +   omap_revision = OMAP3630_REV_ES1_0;
  +   rev_name = Unknown revision\n;
  }
   
 
 [1] Here:
  omap_type = omap_rev()  16;
 
 Regards,
 Sergio
 
   out:
  -   pr_info(OMAP%04x %s\n, omap_rev()  16, rev_name);
  +   pr_info(OMAP%04x %s\n, omap_type, rev_name);
 
   }
   
   #define OMAP3_SHOW_FEATURE(feat)   \
  diff --git