Re: [PATCH 2/3] OMAP3630: PM: implement Foward Body-Bias for OPP1G

2010-04-23 Thread Eduardo Valentin
On Thu, Apr 22, 2010 at 03:56:53PM +0200, ext Nishanth Menon wrote:
 Turquette, Mike had written, on 04/21/2010 04:21 PM, the following:
 [...]
 
   
   /**
  + * voltscale_adaptive_body_bias - controls ABB ldo during voltage scaling
  + * @target_volt: target voltage determines if ABB ldo is active or 
  bypassed
  + *
  + * Adaptive Body-Bias is a technique in all OMAP silicon that uses the 
  45nm
  + * process.  ABB can boost voltage in high OPPs for silicon with weak
  + * characteristics (forward Body-Bias) as well as lower voltage in low 
  OPPs
  + * for silicon with strong characteristics (Reverse Body-Bias).
  + *
  + * Only Foward Body-Bias for operating at high OPPs is implemented 
  below, per
  + * recommendations from silicon team.
  + * Reverse Body-Bias for saving power in active cases and sleep cases is 
  not
  + * yet implemented.
  + * OMAP4 hardward also supports ABB ldo, but no recommendations have 
  been made
  + * to implement it yet.
  + */
  +int voltscale_adaptive_body_bias(unsigned long target_volt)
  +{
  + u32 sr2en_enabled;
  + int timeout;
  + int sr2_wtcnt_value;
  +
  + /* calculate SR2_WTCNT_VALUE settling time */
  + sr2_wtcnt_value = (ABB_MAX_SETTLING_TIME *
  + (clk_get_rate(sys_ck) / 100) / 8);
  +
  + /* has SR2EN been enabled previously? */
  + sr2en_enabled = (prm_read_mod_reg(OMAP3430_GR_MOD,
  + OMAP3_PRM_LDO_ABB_CTRL_OFFSET) 
  + OMAP3630_SR2EN);
  +
  + /* select fast, nominal or slow OPP for ABB ldo */
  + /* FIXME: include OMAP4 once recommendations are complete */
  + if (cpu_is_omap3630()  (target_volt = 135)) {
  You are creating two steps to decide if you apply or not FBB.
  Here and also bellow (omap voltage scale). Would it make sense to bind it
  per opp? I mean just a flag on opp dat then you apply or not based on that 
  flag.
  Same for RBB.
  
  Eduardo,
  
  Thanks for reviewing.
  
  There has been some offline discussion about the best way to handle the 
  the relationship between FBB enable flags and OPPs:
  
  1) extend OPP table
  2) piggyback on Thara's SR hwmod structures
  This probably won't work given Paul's review comments
  3) other wacky stuff
  
  After some discussion about the best way to do this I will definitely 
  lose the duplicate checks and replace with some nice table look-up.
  
  Extending the OPP table is gross for OMAP2 and OMAP3430.  Piggybacking 
  on SR stuff is just a hack and there is no real relationship between ABB 
  ldo and SR.  The crux of the issue is how to relate FBB enable flags to 
  OPP table.  hwmod?  Ideas on this are very welcome.
  
 might be a good idea for using
 I vote for 2) omap_volt_data in voltage.c and using the flag there.

This was actually what I was also thinking. if you stick your flag on 
omap_volt_data
should be enough.

 
 1) is a bad idea as ABB is not present in older silicon and opp table 
 should ideally be independent of silicon and contain only common data..

indeed.

 
 [...]
 
 -- 
 Regards,
 Nishanth Menon
--
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: I2C: Errata ID i207: Clear wrong RDR interrupt

2010-04-23 Thread G, Manjunath Kondaiah

Tony, 

 -Original Message-
 From: Tony Lindgren [mailto:t...@atomide.com] 
 Sent: Thursday, April 22, 2010 3:13 AM
 To: G, Manjunath Kondaiah
 Cc: linux-...@vger.kernel.org; linux-omap@vger.kernel.org; 
 ben-li...@fluff.org; Kalliguddi, Hema; Menon, Nishanth
 Subject: Re: [PATCH v2] OMAP3: I2C: Errata ID i207: Clear 
 wrong RDR interrupt
 
 * Manjunatha GK manj...@ti.com [100413 06:32]:
  Under certain rare conditions, I2C_STAT[13].RDR bit may be set
  and the corresponding interrupt fire, even there is no data in
  the receive FIFO, or the I2C data transfer is still ongoing.
  These spurious RDR events must be ignored by the software.
  
  This patch handles and ignores RDR spurious interrupts.
  
  Patch tested on OMAP zoom3 board.
  
  Signed-off-by: Manjunatha GK manj...@ti.com
  Cc: linux-omap@vger.kernel.org
  Cc: linux-...@vger.kernel.org
  Cc: ben-li...@fluff.org
  Cc: Kalliguddi, Hema hem...@ti.com
  Cc: Nishanth Menon n...@ti.com
  ---
  Review comments for earlier post can be found at:
  https://patchwork.kernel.org/patch/90122/
  
   drivers/i2c/busses/i2c-omap.c |   32 
 +++-
   1 files changed, 31 insertions(+), 1 deletions(-)
  
  diff --git a/drivers/i2c/busses/i2c-omap.c 
 b/drivers/i2c/busses/i2c-omap.c
  index ae6f5c1..d4ec886 100644
  --- a/drivers/i2c/busses/i2c-omap.c
  +++ b/drivers/i2c/busses/i2c-omap.c
  @@ -733,10 +733,40 @@ complete:
  }
  if (stat  (OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR)) {
  u8 num_bytes = 1;
  +
  +   /*
  +* I2C Errata(Errata Nos. OMAP2: 1.67, 
 OMAP3: 1.8)
  +* Not applicable for OMAP4.
  +* Under certain rare conditions, RDR 
 could be set again
  +* when the bus is busy, then ignore 
 the interrupt and
  +* clear the interrupt.
  +*/
  +   if ((stat  OMAP_I2C_STAT_RDR)  
 !cpu_is_omap44xx()) {
  +   /* Step 1: If RDR is set, clear it */
  +   omap_i2c_ack_stat(dev, stat  
 OMAP_I2C_STAT_RDR);
  +
  +   /* Step 2: */
  +   if(!(omap_i2c_read_reg(dev, 
 OMAP_I2C_STAT_REG)
  +
 OMAP_I2C_STAT_BB)) {
  +   /* Step 3: */
  +   while(omap_i2c_read_reg(dev,
  +   OMAP_I2C_STAT_REG)
  +
 OMAP_I2C_STAT_RDR) {
  +   
 omap_i2c_ack_stat(dev, stat
  +
 OMAP_I2C_STAT_RDR);
  +   dev_err(dev-dev,
  +   I2C : RDR when 
 the bus is busy.\n);
  +   continue;
  +   }
  +
  +   }
  +   else
  +   return IRQ_HANDLED;
  +   }
 
 Please move these hacks into a separate inline function that 
 you initialize
 during the init. Then in the function you do it if 
 OMAP_I2C_QUIRK_1234 flag
 has been set.
 
 In general, it seems that a lot of TI omap4 patches just do:
 
 if (!cpu_is_omap4430()) {
   indent_old_code_even_more
   ...
 } else {
   add_hacks_for_omap4
   ...
 }
 
 And sprinkle that all over the place.
 
 This is not a maintainable way of doing things. Please do something
 like this instead:
 
 #ifdef CONFIG_ARCH_OMAP4
 static inline void omap_i2c_quirk_1234(struct device *dev)
 {
   /* Do hacks here */ 
 }
 #else
 static inline void omap_i2c_quirk_1234(struct device *dev)
 {
 }
 #endif

This might create issue for multi omap build?

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


[PATCHV4] OMAP3: SDRC : Errata 1.176 Fix - Accesses to DDR stall in SDRC after a Warm-reset

2010-04-23 Thread Reddy, Teerth
From: Teerth Reddy tee...@ti.com

This patch has the workaround for errata 1.176.
In some cases, user is not able to access DDR memory after
warm-reset.This situation occurs while the warm-reset
happens during a read access to DDR memory. In that
particular conditions, DDR memory does not respond to a
corrupted read command due to the warm reset occurence but
SDRC is waiting for read completion.SDRC is not sensitive to
the warm reset, but the interconect is reset on the fly,
thus causing a misalignment between SDRC logic, interconect
logic and DDR memory state.

Root cause description: A corrupted read transaction is
issued to a closed row: (address0, bank0) instead of the
expected read access, violating protocol.

Failure signature: Once the failure occurs and system has
restarted, memory content is not accessible.SDRC registers
can be accessed successfully, until 1st access to memory
location is performed. After 1st access to memory is done,
SDRC is stuck.

WORKAROUND
Steps to perform before a SW reset is trigged, if user needs
to generate a SW reset and keep DDR memory content:
1. Enable self-refresh on idle request
2. Put SDRC in idle
3. Wait until SDRC goes to idle
4. Generate SW reset

Steps to perform after warm reset occurs:
If HW warm reset is the source, apply below steps before
any accesses to SDRAM:
1. Reset SMS and SDRC
2. Re-initialize SMS, SDRC and memory

This would need the u-boot/x-loader workaround changes
as well for the reboot to work correctly.

Thanks to Paul Walmsley p...@pwsan.com for suggesting
usefull changes.

Signed-off-by: Teerth Reddy tee...@ti.com
---
 arch/arm/mach-omap2/prcm.c |   10 --
 arch/arm/mach-omap2/sram34xx.S |   50 
 arch/arm/plat-omap/include/plat/sram.h |7 
 arch/arm/plat-omap/sram.c  |   19 
 4 files changed, 83 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c
index 9537f6f..e0a4e98 100644
--- a/arch/arm/mach-omap2/prcm.c
+++ b/arch/arm/mach-omap2/prcm.c
@@ -27,6 +27,7 @@
 #include plat/prcm.h
 #include plat/irqs.h
 #include plat/control.h
+#include plat/sram.h
 
 #include clock.h
 #include clock2xxx.h
@@ -141,6 +142,8 @@ void omap_prcm_arch_reset(char mode, const char *cmd)
omap2xxx_clk_prepare_for_reboot();
 
prcm_offs = WKUP_MOD;
+   prm_set_mod_reg_bits(OMAP_RST_DPLL3, prcm_offs,
+OMAP2_RM_RSTCTRL);
} else if (cpu_is_omap34xx()) {
u32 l;
 
@@ -152,14 +155,15 @@ void omap_prcm_arch_reset(char mode, const char *cmd)
 * cf. OMAP34xx TRM, Initialization / Software Booting
 * Configuration. */
omap_writel(l, OMAP343X_SCRATCHPAD + 4);
+   /* Disable interrupts before reset */
+   local_irq_disable();
+   /* This function does not return */
+   omap3_warmreset();
} else if (cpu_is_omap44xx())
prcm_offs = OMAP4430_PRM_DEVICE_MOD;
else
WARN_ON(1);
 
-   if (cpu_is_omap24xx() | cpu_is_omap34xx())
-   prm_set_mod_reg_bits(OMAP_RST_DPLL3, prcm_offs,
-OMAP2_RM_RSTCTRL);
if (cpu_is_omap44xx())
prm_set_mod_reg_bits(OMAP_RST_DPLL3, prcm_offs,
 OMAP4_RM_RSTCTRL);
diff --git a/arch/arm/mach-omap2/sram34xx.S b/arch/arm/mach-omap2/sram34xx.S
index de99ba2..ab9b7db 100644
--- a/arch/arm/mach-omap2/sram34xx.S
+++ b/arch/arm/mach-omap2/sram34xx.S
@@ -33,6 +33,8 @@
 
 #include sdrc.h
 #include cm.h
+#include prcm-common.h
+#include prm.h
 
.text
 
@@ -68,6 +70,9 @@
 /* CM_CLKSEL1_PLL bit settings */
 #define CORE_DPLL_CLKOUT_DIV_SHIFT 0x1b
 
+/* PRM_RSTCTRL bit setting */
+#define EN_DPLL3_RESET  0x4
+
 /*
  * omap3_sram_configure_core_dpll - change DPLL3 M2 divider
  *
@@ -313,3 +318,48 @@ core_m2_mask_val:
 ENTRY(omap3_sram_configure_core_dpll_sz)
.word   . - omap3_sram_configure_core_dpll
 
+
+/**
+ * omap3_sram_warmreset -
+ *
+ * Enable SDRC self refresh on idle request, put SDRC in idle,
+ * wait until SDRC goes to idle
+ * Enable DPLL3 reset bit in OMAP2_RM_RSTCTRL
+ */
+
+ENTRY(omap3_sram_warmreset)
+sdram_in_selfrefresh1:
+   ldr r11, omap3_sdrc_power1  @ read the SDRC_POWER register
+   ldr r12, [r11]  @ read the contents of SDRC_POWER
+   orr r12, r12, #SRFRONIDLEREQ_MASK   @ enable self refresh on idle
+   str r12, [r11]  @ write back to SDRC_POWER register
+   ldr r12, [r11]  @ posted-write barrier for SDRC
+   ldr r11, omap3_cm_iclken1_core1 @ read the CM_ICLKEN1_CORE reg
+   ldr r12, [r11]
+   bic r12, r12, #EN_SDRC_MASK @ disable iclk bit for SDRC
+   str r12, [r11]
+wait_sdrc_idle2:
+ 

Re: [PATCH] twl6030: regulator: Remove vsel tables and use formula for calculation

2010-04-23 Thread Mark Brown
On Thu, Apr 22, 2010 at 02:18:32PM +0530, Rajendra Nayak wrote:
 All twl6030 regulators can be programmed from 1.0v to 3.3v
 with 100mV steps.
 The below formula can be used to calculate the vsel values
 to be programmed in the VREG_VOLTAGE registers.

Acked-by: Mark Brown broo...@opensource.wolfsonmicro.com
--
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 4/4][v4] OMAP:iommu- add TLB preservation support

2010-04-23 Thread Hiroshi DOYU
Hi Hari,

From: ext Hari Kanigeri h-kanige...@ti.com
Subject: [PATCH 4/4][v4] OMAP:iommu- add TLB preservation support
Date: Fri, 23 Apr 2010 01:16:36 +0200

 This patch adds TLB preservation support to IOMMU module
 
 Signed-off-by: Hari Kanigeri h-kanige...@ti.com
 Signed-off-by: Hiroshi Doyu hiroshi.d...@nokia.com

The above should be Acked-by:?

BTW:
Now the code gets a bit complicated for tlb iteration. So what about
introducing the following macro?

Not yet tested, though

From a88de5ab41792b5a34c460741b8f75f1611327b9 Mon Sep 17 00:00:00 2001
From: Hiroshi DOYU hiroshi.d...@nokia.com
Date: Fri, 23 Apr 2010 15:18:46 +0300
Subject: [PATCH 1/1] omap iommu: introduce iteration macro for iotlb entries 
scan

There are some places to scan iotlb entries. This iteration macro
could make these code a bit simpler.

Signed-off-by: Hiroshi DOYU hiroshi.d...@nokia.com
---
 arch/arm/plat-omap/iommu.c |   55 ++-
 1 files changed, 28 insertions(+), 27 deletions(-)

diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
index 1e83fac..d09a0a1 100644
--- a/arch/arm/plat-omap/iommu.c
+++ b/arch/arm/plat-omap/iommu.c
@@ -25,6 +25,9 @@
 
 #include iopgtable.h
 
+#define for_each_iotlb_cr(obj, n, i, cr)   \
+   for (i = 0; (i  n)  (cr = get_iotlb_cr(obj, i)); i++)
+
 /* accommodate the difference between omap1 and omap2/3 */
 static const struct iommu_functions *arch_iommu;
 
@@ -211,6 +214,19 @@ static inline ssize_t iotlb_dump_cr(struct iommu *obj, 
struct cr_regs *cr,
return arch_iommu-dump_cr(obj, cr, buf);
 }
 
+static struct cr_regs get_iotlb_cr(struct iommu *obj, int n)
+{
+   struct cr_regs cr;
+   struct iotlb_lock l;
+
+   iotlb_lock_get(obj, l);
+   l.vict = n;
+   iotlb_lock_set(obj, l);
+   iotlb_read_cr(obj, cr);
+
+   return cr;
+}
+
 /**
  * load_iotlb_entry - Set an iommu tlb entry
  * @obj:   target iommu
@@ -218,7 +234,6 @@ static inline ssize_t iotlb_dump_cr(struct iommu *obj, 
struct cr_regs *cr,
  **/
 int load_iotlb_entry(struct iommu *obj, struct iotlb_entry *e)
 {
-   int i;
int err = 0;
struct iotlb_lock l;
struct cr_regs *cr;
@@ -235,21 +250,20 @@ int load_iotlb_entry(struct iommu *obj, struct 
iotlb_entry *e)
goto out;
}
if (!e-prsvd) {
-   for (i = l.base; i  obj-nr_tlb_entries; i++) {
-   struct cr_regs tmp;
+   int i;
+   struct cr_regs tmp;
 
-   iotlb_lock_get(obj, l);
-   l.vict = i;
-   iotlb_lock_set(obj, l);
-   iotlb_read_cr(obj, tmp);
+   for_each_iotlb_cr(obj, obj-nr_tlb_entries, i, tmp)
if (!iotlb_cr_valid(tmp))
break;
-   }
+
if (i == obj-nr_tlb_entries) {
dev_dbg(obj-dev, %s: full: no entry\n, __func__);
err = -EBUSY;
goto out;
}
+
+   iotlb_lock_get(obj, l);
} else {
l.vict = l.base;
iotlb_lock_set(obj, l);
@@ -285,20 +299,15 @@ EXPORT_SYMBOL_GPL(load_iotlb_entry);
  **/
 void flush_iotlb_page(struct iommu *obj, u32 da)
 {
-   struct iotlb_lock l;
int i;
+   struct cr_regs cr;
 
clk_enable(obj-clk);
 
-   for (i = 0; i  obj-nr_tlb_entries; i++) {
-   struct cr_regs cr;
+   for_each_iotlb_cr(obj, obj-nr_tlb_entries, i, cr) {
u32 start;
size_t bytes;
 
-   iotlb_lock_get(obj, l);
-   l.vict = i;
-   iotlb_lock_set(obj, l);
-   iotlb_read_cr(obj, cr);
if (!iotlb_cr_valid(cr))
continue;
 
@@ -308,7 +317,6 @@ void flush_iotlb_page(struct iommu *obj, u32 da)
if ((start = da)  (da  start + bytes)) {
dev_dbg(obj-dev, %s: %08x=%08x(%x)\n,
__func__, start, da, bytes);
-   iotlb_load_cr(obj, cr);
iommu_write_reg(obj, 1, MMU_FLUSH_ENTRY);
}
}
@@ -379,26 +387,19 @@ EXPORT_SYMBOL_GPL(iommu_dump_ctx);
 static int __dump_tlb_entries(struct iommu *obj, struct cr_regs *crs, int num)
 {
int i;
-   struct iotlb_lock saved, l;
+   struct iotlb_lock saved;
+   struct cr_regs tmp;
struct cr_regs *p = crs;
 
clk_enable(obj-clk);
-
iotlb_lock_get(obj, saved);
-   memcpy(l, saved, sizeof(saved));
 
-   for (i = 0; i  num; i++) {
-   struct cr_regs tmp;
-
-   iotlb_lock_get(obj, l);
-   l.vict = i;
-   iotlb_lock_set(obj, l);
-   iotlb_read_cr(obj, tmp);
+   for_each_iotlb_cr(obj, num, i, tmp) {
if (!iotlb_cr_valid(tmp))
 

[PATCH v2] omap_hsmmc: improve interrupt synchronisation

2010-04-23 Thread Adrian Hunter

From ad2e1cd024ccf9144b6620cfe808893719db738f Mon Sep 17 00:00:00 2001

From: Adrian Hunter adrian.hun...@nokia.com
Date: Wed, 14 Apr 2010 16:26:45 +0300
Subject: [PATCH] omap_hsmmc: improve interrupt synchronisation

The following changes were needed:
- do not use in_interrupt() because it will not work
with threaded interrupts

In addition, the following improvements were made:
- ensure DMA is unmapped only after the final DMA interrupt
- ensure a request is completed only after the final DMA interrupt
- disable controller interrupts when a request is not in progress
- remove the spin-lock protecting the start of a new request from
an unexpected interrupt because the locking was complicated and
a 'req_in_progress' flag suffices (since the spin-lock only defers
the unexpected interrupts anyway)
- instead use the spin-lock to protect the MMC interrupt handler
from the DMA interrupt handler
- remove the semaphore preventing DMA from being started while
the previous DMA is still in progress - the other changes make that
impossible, so it is now a BUG_ON condition
- ensure the controller interrupt status is clear before exiting
the interrrupt handler

In general, these changes make the code safer but do not fix any specific
bugs so backporting is not necessary.

Signed-off-by: Adrian Hunter adrian.hun...@nokia.com
---


Changes from version 1:
- use a spin-lock to protect the MMC interrupt handler
from the DMA interrupt handler
- use do {} while loop instead of goto in omap_hsmmc_irq

S Venkatraman's request to use omap_hsmmc_dma_cleanup(host, 0) in
omap_hsmmc_dma_cb() was not done because the code was not
sufficiently the same.


drivers/mmc/host/omap_hsmmc.c |  262 +
1 files changed, 134 insertions(+), 128 deletions(-)

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index c0b5021..cc0272d 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -157,12 +157,10 @@ struct omap_hsmmc_host {
 */
struct  regulator   *vcc;
struct  regulator   *vcc_aux;
-   struct  semaphore   sem;
struct  work_struct mmc_carddetect_work;
void__iomem *base;
resource_size_t mapbase;
spinlock_t  irq_lock; /* Prevent races with irq handler */
-   unsigned long   flags;
unsigned intid;
unsigned intdma_len;
unsigned intdma_sg_idx;
@@ -183,6 +181,7 @@ struct omap_hsmmc_host {
int protect_card;
int reqs_blocked;
int use_reg;
+   int req_in_progress;

struct  omap_mmc_platform_data  *pdata;
};
@@ -480,6 +479,27 @@ static void omap_hsmmc_stop_clock(struct omap_hsmmc_host 
*host)
dev_dbg(mmc_dev(host-mmc), MMC Clock is not stoped\n);
}

+static void omap_hsmmc_enable_irq(struct omap_hsmmc_host *host)
+{
+   unsigned int irq_mask;
+
+   if (host-use_dma)
+   irq_mask = INT_EN_MASK  ~(BRR_ENABLE | BWR_ENABLE);
+   else
+   irq_mask = INT_EN_MASK;
+
+   OMAP_HSMMC_WRITE(host-base, STAT, STAT_CLEAR);
+   OMAP_HSMMC_WRITE(host-base, ISE, irq_mask);
+   OMAP_HSMMC_WRITE(host-base, IE, irq_mask);
+}
+
+static void omap_hsmmc_disable_irq(struct omap_hsmmc_host *host)
+{
+   OMAP_HSMMC_WRITE(host-base, ISE, 0);
+   OMAP_HSMMC_WRITE(host-base, IE, 0);
+   OMAP_HSMMC_WRITE(host-base, STAT, STAT_CLEAR);
+}
+
#ifdef CONFIG_PM

/*
@@ -548,9 +568,7 @@ static int omap_hsmmc_context_restore(struct 
omap_hsmmc_host *host)
 time_before(jiffies, timeout))
;

-   OMAP_HSMMC_WRITE(host-base, STAT, STAT_CLEAR);
-   OMAP_HSMMC_WRITE(host-base, ISE, INT_EN_MASK);
-   OMAP_HSMMC_WRITE(host-base, IE, INT_EN_MASK);
+   omap_hsmmc_disable_irq(host);

/* Do not initialize card-specific things if the power is off */
if (host-power_mode == MMC_POWER_OFF)
@@ -653,6 +671,8 @@ static void send_init_stream(struct omap_hsmmc_host *host)
return;

disable_irq(host-irq);
+
+   OMAP_HSMMC_WRITE(host-base, IE, INT_EN_MASK);
OMAP_HSMMC_WRITE(host-base, CON,
OMAP_HSMMC_READ(host-base, CON) | INIT_STREAM);
OMAP_HSMMC_WRITE(host-base, CMD, INIT_STREAM_CMD);
@@ -718,17 +738,7 @@ omap_hsmmc_start_command(struct omap_hsmmc_host *host, 
struct mmc_command *cmd,
mmc_hostname(host-mmc), cmd-opcode, cmd-arg);
host-cmd = cmd;

-   /*
-* Clear status bits and enable interrupts
-*/
-   OMAP_HSMMC_WRITE(host-base, STAT, STAT_CLEAR);
-   OMAP_HSMMC_WRITE(host-base, ISE, INT_EN_MASK);
-
-   if (host-use_dma)
-  

RE: [PATCH 4/4][v4] OMAP:iommu- add TLB preservation support

2010-04-23 Thread Kanigeri, Hari
Hi Hiroshi,

 -Original Message-
 From: Hiroshi DOYU [mailto:hiroshi.d...@nokia.com]
 Sent: Friday, April 23, 2010 7:34 AM
 To: Kanigeri, Hari
 Cc: Gupta, Ramesh; linux-omap@vger.kernel.org
 Subject: Re: [PATCH 4/4][v4] OMAP:iommu- add TLB preservation support
 
 Hi Hari,
 
 From: ext Hari Kanigeri h-kanige...@ti.com
 Subject: [PATCH 4/4][v4] OMAP:iommu- add TLB preservation support
 Date: Fri, 23 Apr 2010 01:16:36 +0200
 
  This patch adds TLB preservation support to IOMMU module
 
  Signed-off-by: Hari Kanigeri h-kanige...@ti.com
  Signed-off-by: Hiroshi Doyu hiroshi.d...@nokia.com
 
 The above should be Acked-by:?

-- By you :)

 
 BTW:
 Now the code gets a bit complicated for tlb iteration. So what about
 introducing the following macro?
 
 Not yet tested, though

-- I like it. Let me test your changes, and will send a revised patch with 
these changes.
--
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


[PM-WIP-SR][PATCH] OMAP3: PM: Separating PMIC specific part out of smartreflex driver

2010-04-23 Thread Thara Gopinath
This patch adds a hook to register pmic specific data with
the smartreflex driver. Currently with this the only info required
to be registered is the API to enable smartreflex on PMIC side.
Later any other pmic specific data can be added.

This patch also modifies the pmic file twl4030.c meant for
OMAP3430 and OMAP3630 chips to register the required
data with the smartreflex driver.

This patch is created on the pm-wip-sr branch off Kevin's
pm tree and is dependent on Lesly's Triton power scripts
patch series the link to which is given below
http://marc.info/?l=linux-omapm=127167610420379w=2

Signed-off-by: Thara Gopinath th...@ti.com
---
 arch/arm/mach-omap2/smartreflex.c |   34 +++---
 arch/arm/mach-omap2/smartreflex.h |   22 --
 arch/arm/mach-omap2/twl4030.c |   26 ++
 arch/arm/mach-omap2/twl4030.h |6 ++
 4 files changed, 71 insertions(+), 17 deletions(-)

diff --git a/arch/arm/mach-omap2/smartreflex.c 
b/arch/arm/mach-omap2/smartreflex.c
index a6a29d1..7134529 100644
--- a/arch/arm/mach-omap2/smartreflex.c
+++ b/arch/arm/mach-omap2/smartreflex.c
@@ -23,7 +23,6 @@
 #include linux/err.h
 #include linux/clk.h
 #include linux/kobject.h
-#include linux/i2c/twl.h
 #include linux/io.h
 #include linux/list.h
 #include linux/debugfs.h
@@ -59,6 +58,7 @@ struct omap_sr {
 /* sr_list contains all the instances of smartreflex module */
 static LIST_HEAD(sr_list);
 static struct omap_smartreflex_class_data *sr_class;
+static struct omap_smartreflex_pmic_data *sr_pmic_data;
 
 static inline void sr_write_reg(struct omap_sr *sr, unsigned offset, u32 value)
 {
@@ -670,6 +670,24 @@ void omap_sr_register_class(struct 
omap_smartreflex_class_data *class_data)
sr_late_init(sr_info);
 }
 
+/**
+ * omap_sr_register_pmic : API to register pmic specific info.
+ * @pmic_data - The structure containing pmic specific data.
+ *
+ * This API is to be called from the PMIC specific code to register with
+ * smartreflex driver pmic specific info. Currently the only info required
+ * is the smartreflex init on the PMIC side.
+ */
+void omap_sr_register_pmic(struct omap_smartreflex_pmic_data *pmic_data)
+{
+   if (!pmic_data) {
+   pr_warning(Trying to register NULL PMIC data structure with \
+   smartreflex\n);
+   return;
+   }
+   sr_pmic_data = pmic_data;
+}
+
 /* PM Debug Fs enteries to enable disable smartreflex.*/
 
 static int omap_sr_autocomp_show(void *data, u64 *val)
@@ -770,16 +788,10 @@ static struct platform_driver smartreflex_driver = {
 
 static int __init sr_init(void)
 {
-   int ret = 0;
-   u8 RdReg;
-
-   /* TODO: Find an appropriate place for this */
-   /* Enable SR on T2 */
-   ret = twl_i2c_read_u8(TWL4030_MODULE_PM_RECEIVER, RdReg,
- R_DCDC_GLOBAL_CFG);
-   RdReg |= DCDC_GLOBAL_CFG_ENABLE_SRFLX;
-   ret |= twl_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, RdReg,
-   R_DCDC_GLOBAL_CFG);
+   int ret;
+
+   if (sr_pmic_data  sr_pmic_data-sr_pmic_init)
+   sr_pmic_data-sr_pmic_init();
 
ret = platform_driver_probe(smartreflex_driver,
omap_smartreflex_probe);
diff --git a/arch/arm/mach-omap2/smartreflex.h 
b/arch/arm/mach-omap2/smartreflex.h
index d12c093..46bc1f1 100644
--- a/arch/arm/mach-omap2/smartreflex.h
+++ b/arch/arm/mach-omap2/smartreflex.h
@@ -138,12 +138,6 @@ extern struct dentry *pm_dbg_main_dir;
 
 /* TODO:3630/OMAP4 values if it has to come from this file */
 
-/* Info for enabling SR in T2/gaia. ToDo: Move it to twl4030_power.c */
-#define PHY_TO_OFF_PM_RECIEVER(p)  (p - 0x5b)
-#define R_DCDC_GLOBAL_CFG  PHY_TO_OFF_PM_RECIEVER(0x61)
-/* R_DCDC_GLOBAL_CFG register, SMARTREFLEX_ENABLE values */
-#define DCDC_GLOBAL_CFG_ENABLE_SRFLX   0x08
-
 #ifdef CONFIG_OMAP_SMARTREFLEX_TESTING
 #define SR_TESTING_NVALUES 1
 #else
@@ -196,6 +190,16 @@ struct omap_smartreflex_dev_data {
 #define SR_CLASS3  0x3
 
 /**
+ * omap_smartreflex_pmic_data : Strucutre to be populated by pmic code to pass
+ * pmic specific info to smartreflex driver
+ *
+ * @sr_pmic_init - API to initialize smartreflex on the PMIC side.
+ */
+struct omap_smartreflex_pmic_data {
+   void (*sr_pmic_init) (void);
+};
+
+/**
  * omap_smartreflex_class_data : Structure to be populated by
  * Smartreflex class driver with corresponding class enable disable API's
  *
@@ -260,9 +264,15 @@ void sr_configure_minmax(int srid);
  * API to register the smartreflex class driver with the smartreflex driver
  */
 void omap_sr_register_class(struct omap_smartreflex_class_data *class_data);
+
+
+/* API to register the pmic specific data with the smartreflex driver */
+void omap_sr_register_pmic(struct omap_smartreflex_pmic_data *pmic_data);
 #else
 static inline void omap_smartreflex_enable(int srid) {}
 static inline void 

RE: [PATCH V4 0/2] OMAP3: Dynamic Calculation of SDRC stall latency during DVFS

2010-04-23 Thread Gurav , Pramod
Hi Paul,

Please let me know if you have any comments on the patches below.
The comments from Kevin, Ambresh and Sergio have been addressed in the last 
version of the patches and few in these patches.

 -Original Message-
 From: Gurav , Pramod
 Sent: Thursday, April 01, 2010 10:47 PM
 To: linux-omap@vger.kernel.org
 Cc: Gurav , Pramod
 Subject: [PATCH V4 0/2] OMAP3: Dynamic Calculation of SDRC stall latency
 during DVFS
 
 From: Pramod Gurav pramod.gu...@ti.com
 
 The patch has the changes to calculate the dpll3 clock stabilization
 delay dynamically. The SRAM delay is calibrated during bootup using the
 gptimers and used while calculating the stabilization delay. By using
 the dynamic method the dependency on the type of cache being used is
 removed.
 
 Formula to calculate the DVFS latency for 3430 and 3630 are different.
 The second patch implements the formula for later.
 
 This Version of patches adds optimisation to the formula implementation.
 
 Teerth Reddy (1):
   OMAP3: SDRC: Dynamic Calculation of SDRC stall latency during DVFS
 Pramod Gurav (1):
   OMAP3630 SDRC: Change in DVFS Latency Formula for OMAP3630
 
  arch/arm/mach-omap2/clkt34xx_dpll3m2.c |   71
 +++-
  arch/arm/mach-omap2/clock34xx.h|2 +
  arch/arm/mach-omap2/clock3xxx.c|2 +-
  arch/arm/mach-omap2/clock3xxx.h|1 +
  arch/arm/mach-omap2/clock3xxx_data.c   |   13 ++
  arch/arm/mach-omap2/sram34xx.S |8 
  arch/arm/plat-omap/include/plat/sram.h |4 ++
  arch/arm/plat-omap/sram.c  |   51 +++
  8 files changed, 140 insertions(+), 12 deletions(-)



-
Thanks and Best Regards
Pramod Gurav

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


Need help understanding sporadic errors on OMAP35x YAFFS/NAND system

2010-04-23 Thread Peter Barada
I've got a sporadic problem that I'm seeing using NAND/YAFFS on a
Logic LV SOM using a 1928 block YAFFS filesystem.

I've got the 2.6.32 kernel (L23 Poky from
http://www.omappedia.org/wiki/OMAP_Poky) up and running, and
sporadically in testing I
observe an error where 0xff30 shows up in the data read back from the
file - looks somewhat
similar to: http://www.mail-archive.com/linux-omap@vger.kernel.org/msg23103.html

Testing involves using dd if=/dev/zero of=/mnt/yaffs/file bs=1
seek=30M count=0 to create a 30MB file of
zeros and then copies the file around on the flash, md5sum, syncing,
etc to thrash the cache.

The error I'm seeing is that when I read the file back, its md5sum
does not match that of what a 30MB file of zeros should generate.
To verify, I copy the file from the NAND to a temporary file in RAM,
then md5sum that file and if the md5sum mimsmatches, then I hexdump
the file to see where the data mismatches. This all runs fin in my
test shell script, except after a while (somewhere around 30+GB read
from NAND), I see:

somefile.7: mismatch 666896a98683a364c10aeba0649f119c != 281ed1d5ae50e8419f9b978
aab16de83
000        
*
1107800 ff30 ff30 ff30 ff30 ff30 ff30 ff30 ff30
*
1107a00        
*
1e0

instead of the zeros I'd expect.  Originally I thought the problem was
in the NAND where somehow the driver tried to read a sector of data
before it was ready, but if this was the case, I'd expect an ECC error
from the comparison (using Hardware generated ECC, prefetch and DMA).
This is not the case (I added a printk that triggers if
omap_compare_ecc() returns non-zero).  So if no ECC error is reported
then the data should be valid on NAND.  To test if the data was not
written correctly I unmounted the filesystem and remounted it, but
then the md5sum does match.

This is not the first I've seen of the problem.  I've see it in a
2.6.28-rc8 kernel, and in the 2.6.32 kernel I've tried turning off
DMA, prefetch, and that hastens when the error turns up (and the
number of 0xff30 shorts seein).  I modified my testing to use a unique
pattern intead of zeros and found when the 0xff30 shows up, it repeats
for a number of shorts at the start of a page, then I see the data
that I expected from the page. I've also modified the NAND driver to
use a dev_ready function (as well as statistics to track how long it
waits polling the R/B# line on WAIT0 that indicate its 21.2uS +/-
8.29uS once the call to omap_device_ready is made), and still no joy.

I've also run this code on a 2.6.33-rc3 kernel with the same driver
set and there it works flawlessly.  Unfortunately I need the Poky
kernel...

At this point I'm at a loss to explain what is happening:

1) Has anyone seen this type of error before?

2) Are there any OMAP35x errata that could possibly explain what I'm seeing?

3) Has anyone done exhaustive testing of NAND-based filesystem on an
OMAP35x board?

4) Any suggestions where to look next? (YAFFS testing with nandsim on
an x86 doesn't exhibit the problem).

The following is the original test script (cd into the mountpoint of
the NAND filesystem before running):

#!/bin/bash

# MD5sum of 30M and 1K of zeros
md5_30M=281ed1d5ae50e8419f9b978aab16de83
md5_1K=0f343b0931126a20f133d67c2b018a3b

# temp file to use as intermediary copy
tmpfile=/dev/tmp/junk
#tmpfile=/tmp/junk
mkdir -p `dirname $tmpfile`

mismatches=0
pass=0
passes=120
if [ $1 !=  ]; then
passes=$1
fi


# $1 is file
# $2 is good checksum
chk_md5sum() {
for cmf in $1
do
cp $cmf $tmpfile
ret=`md5sum $tmpfile | cut -d  -f1`
if [ $ret != $2 ]; then
echo $cmf: mismatch $ret != $2
hexdump  $tmpfile | head -100
mismatches=`expr $mismatches + 1`
else
echo $cmf: match $ret
fi
done
}

# $1 is src
# $2 is destination
# $3 is expected md5sum of source
chk_cp() {
cp $1 $tmpfile
cp $tmpfile $2
ret=`md5sum $tmpfile | cut -d  -f1`
if [ $ret != $3 ]; then
echo $1: mismatch $ret != $3
hexdump  $tmpfile | head -100
mismatches=`expr $mismatches + 1`
fi
}

while [ $pass -lt $passes ]; do
pass=`expr $pass + 1`
echo Pass: $pass Errors: $mismatches
date

# create a 30 M file
echo Create 30M file of zeros and get md5sum
dd if=/dev/zero of=somefile.1 bs=1 seek=30M count=0

chk_md5sum somefile.1 $md5_30M

# create copies of file
for f in 2 3 4 ;
do
cp somefile.1 somefile.$f
done

echo Calculate md5sums for copied files
chk_md5sum somefile.* $md5_30M
if [ $mismatches != 0 ]; then
break;
fi

echo execute sync and recalculate md5sums
sync
chk_md5sum somefile.* $md5_30M
if [ $mismatches != 0 ]; then
break;
fi

echo Delete one of the files
rm somefile.2

echo recopy the deleted 

[RFC PATCH 0/5] HSI framework and drivers

2010-04-23 Thread Carlos Chinea
Hi !

I have been working on a new proposal to support HSI/SSI drivers
in the kernel. I would be very glad to get your feedback about
this proposal.

This patch series introduces the HSI framework, an SSI driver
for OMAP and a generic character device for HSI/SSI devices.

SSI, which is a legacy version of HSI, is used to connect the application
engine with the cellular modem on the Nokia N900.

This patch set is based on 2.6.34-rc3

Br,
Carlos Chinea

Andras Domokos (2):
  HSI CHAR: Add HSI char device driver
  HSI CHAR: Add HSI char device kernel configuration

Carlos Chinea (3):
  HSI: Introducing HSI framework
  OMAP SSI: Introducing OMAP SSI driver
  OMAP SSI: Add OMAP SSI to the kernel configuration

 arch/arm/mach-omap2/Makefile  |3 +
 arch/arm/mach-omap2/ssi.c |  139 +++
 arch/arm/plat-omap/include/plat/ssi.h |  196 
 drivers/Kconfig   |2 +
 drivers/Makefile  |1 +
 drivers/hsi/Kconfig   |   16 +
 drivers/hsi/Makefile  |5 +
 drivers/hsi/clients/Kconfig   |   11 +
 drivers/hsi/clients/Makefile  |5 +
 drivers/hsi/clients/hsi_char.c| 1078 +
 drivers/hsi/controllers/Kconfig   |   11 +
 drivers/hsi/controllers/Makefile  |5 +
 drivers/hsi/controllers/omap_ssi.c| 1691 +
 drivers/hsi/hsi.c |  487 ++
 include/linux/hsi/hsi.h   |  365 +++
 include/linux/hsi/hsi_char.h  |   79 ++
 16 files changed, 4094 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-omap2/ssi.c
 create mode 100644 arch/arm/plat-omap/include/plat/ssi.h
 create mode 100644 drivers/hsi/Kconfig
 create mode 100644 drivers/hsi/Makefile
 create mode 100644 drivers/hsi/clients/Kconfig
 create mode 100644 drivers/hsi/clients/Makefile
 create mode 100644 drivers/hsi/clients/hsi_char.c
 create mode 100644 drivers/hsi/controllers/Kconfig
 create mode 100644 drivers/hsi/controllers/Makefile
 create mode 100644 drivers/hsi/controllers/omap_ssi.c
 create mode 100644 drivers/hsi/hsi.c
 create mode 100644 include/linux/hsi/hsi.h
 create mode 100644 include/linux/hsi/hsi_char.h

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


[RFC PATCH 3/5] OMAP SSI: Add OMAP SSI to the kernel configuration

2010-04-23 Thread Carlos Chinea
Add OMAP SSI driver to the kernel configuration
Add OMAP SSI device to the kernel configuration

Signed-off-by: Carlos Chinea carlos.chi...@nokia.com
---
 arch/arm/mach-omap2/Makefile |3 +++
 drivers/hsi/Kconfig  |2 ++
 drivers/hsi/Makefile |1 +
 drivers/hsi/controllers/Kconfig  |   11 +++
 drivers/hsi/controllers/Makefile |5 +
 5 files changed, 22 insertions(+), 0 deletions(-)
 create mode 100644 drivers/hsi/controllers/Kconfig
 create mode 100644 drivers/hsi/controllers/Makefile

diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 4b9fc57..106f0d5 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -97,6 +97,9 @@ obj-$(CONFIG_OMAP_IOMMU)  += $(iommu-y)
 i2c-omap-$(CONFIG_I2C_OMAP):= i2c.o
 obj-y  += $(i2c-omap-m) $(i2c-omap-y)
 
+omap-ssi-$(CONFIG_OMAP_SSI):= ssi.o
+obj-y  += $(omap-ssi-m) $(omap-ssi-y)
+
 # Specific board support
 obj-$(CONFIG_MACH_OMAP_GENERIC)+= board-generic.o
 obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o
diff --git a/drivers/hsi/Kconfig b/drivers/hsi/Kconfig
index e122584..0398e23 100644
--- a/drivers/hsi/Kconfig
+++ b/drivers/hsi/Kconfig
@@ -10,4 +10,6 @@ menuconfig HSI
 
 if HSI
 
+source drivers/hsi/controllers/Kconfig
+
 endif # HSI
diff --git a/drivers/hsi/Makefile b/drivers/hsi/Makefile
index b42b6cf..d020ae1 100644
--- a/drivers/hsi/Makefile
+++ b/drivers/hsi/Makefile
@@ -2,3 +2,4 @@
 # Makefile for HSI
 #
 obj-$(CONFIG_HSI)  += hsi.o
+obj-y  += controllers/
diff --git a/drivers/hsi/controllers/Kconfig b/drivers/hsi/controllers/Kconfig
new file mode 100644
index 000..0bae0c6
--- /dev/null
+++ b/drivers/hsi/controllers/Kconfig
@@ -0,0 +1,11 @@
+#
+# HSI controllers configuration
+#
+config OMAP_SSI
+   tristate OMAP SSI hardware driver
+   depends on ARCH_OMAP  HSI
+   default n
+   ---help---
+ If you say Y here, you will enable the OMAP SSI hardware driver.
+
+ If unsure, say N.
diff --git a/drivers/hsi/controllers/Makefile b/drivers/hsi/controllers/Makefile
new file mode 100644
index 000..c4ba2c2
--- /dev/null
+++ b/drivers/hsi/controllers/Makefile
@@ -0,0 +1,5 @@
+#
+# Makefile for HSI controllers drivers
+#
+
+obj-$(CONFIG_OMAP_SSI) += omap_ssi.o
-- 
1.5.6.5

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


[RFC PATCH 5/5] HSI CHAR: Add HSI char device kernel configuration

2010-04-23 Thread Carlos Chinea
From: Andras Domokos andras.domo...@nokia.com

Add HSI character device kernel configuration

Signed-off-by: Andras Domokos andras.domo...@nokia.com
---
 drivers/hsi/Kconfig  |1 +
 drivers/hsi/Makefile |2 +-
 drivers/hsi/clients/Kconfig  |   11 +++
 drivers/hsi/clients/Makefile |5 +
 4 files changed, 18 insertions(+), 1 deletions(-)
 create mode 100644 drivers/hsi/clients/Kconfig
 create mode 100644 drivers/hsi/clients/Makefile

diff --git a/drivers/hsi/Kconfig b/drivers/hsi/Kconfig
index 0398e23..87d87a1 100644
--- a/drivers/hsi/Kconfig
+++ b/drivers/hsi/Kconfig
@@ -11,5 +11,6 @@ menuconfig HSI
 if HSI
 
 source drivers/hsi/controllers/Kconfig
+source drivers/hsi/clients/Kconfig
 
 endif # HSI
diff --git a/drivers/hsi/Makefile b/drivers/hsi/Makefile
index d020ae1..ebc91b3 100644
--- a/drivers/hsi/Makefile
+++ b/drivers/hsi/Makefile
@@ -2,4 +2,4 @@
 # Makefile for HSI
 #
 obj-$(CONFIG_HSI)  += hsi.o
-obj-y  += controllers/
+obj-y  += controllers/ clients/
diff --git a/drivers/hsi/clients/Kconfig b/drivers/hsi/clients/Kconfig
new file mode 100644
index 000..2145591
--- /dev/null
+++ b/drivers/hsi/clients/Kconfig
@@ -0,0 +1,11 @@
+#
+# HSI clients configuration
+#
+
+config HSI_CHAR
+   tristate HSI/SSI character driver
+   depends on HSI  OMAP_SSI
+   ---help---
+ If you say Y here, you will enable the HSI/SSI character driver.
+ This driver provides a simple character device interface for
+ serial communication with the cellular modem over HSI/SSI bus.
diff --git a/drivers/hsi/clients/Makefile b/drivers/hsi/clients/Makefile
new file mode 100644
index 000..327c0e2
--- /dev/null
+++ b/drivers/hsi/clients/Makefile
@@ -0,0 +1,5 @@
+#
+# Makefile for HSI clients
+#
+
+obj-$(CONFIG_HSI_CHAR) += hsi_char.o
-- 
1.5.6.5

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


[RFC PATCH 1/5] HSI: Introducing HSI framework

2010-04-23 Thread Carlos Chinea
Adds HSI framework in to the linux kernel.

High Speed Synchronous Serial Interface (HSI) is a
serial interface mainly used for connecting application
engines (APE) with cellular modem engines (CMT) in cellular
handsets.

HSI provides multiplexing for up to 16 logical channels,
low-latency and full duplex communication.

Signed-off-by: Carlos Chinea carlos.chi...@nokia.com
---
 drivers/Kconfig |2 +
 drivers/Makefile|1 +
 drivers/hsi/Kconfig |   13 ++
 drivers/hsi/Makefile|4 +
 drivers/hsi/hsi.c   |  487 +++
 include/linux/hsi/hsi.h |  365 +++
 6 files changed, 872 insertions(+), 0 deletions(-)
 create mode 100644 drivers/hsi/Kconfig
 create mode 100644 drivers/hsi/Makefile
 create mode 100644 drivers/hsi/hsi.c
 create mode 100644 include/linux/hsi/hsi.h

diff --git a/drivers/Kconfig b/drivers/Kconfig
index a2b902f..4fe39f9 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -50,6 +50,8 @@ source drivers/i2c/Kconfig
 
 source drivers/spi/Kconfig
 
+source drivers/hsi/Kconfig
+
 source drivers/pps/Kconfig
 
 source drivers/gpio/Kconfig
diff --git a/drivers/Makefile b/drivers/Makefile
index 2c4f277..24ca5bd 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -45,6 +45,7 @@ obj-$(CONFIG_SCSI)+= scsi/
 obj-$(CONFIG_ATA)  += ata/
 obj-$(CONFIG_MTD)  += mtd/
 obj-$(CONFIG_SPI)  += spi/
+obj-$(CONFIG_HSI)  += hsi/
 obj-y  += net/
 obj-$(CONFIG_ATM)  += atm/
 obj-$(CONFIG_FUSION)   += message/
diff --git a/drivers/hsi/Kconfig b/drivers/hsi/Kconfig
new file mode 100644
index 000..e122584
--- /dev/null
+++ b/drivers/hsi/Kconfig
@@ -0,0 +1,13 @@
+#
+# HSI driver configuration
+#
+menuconfig HSI
+   bool HSI support
+   ---help---
+ The High speed syncrhonous Serial Interface is
+ synchrnous serial interface used mainly to connect
+ application engines and celluar modems.
+
+if HSI
+
+endif # HSI
diff --git a/drivers/hsi/Makefile b/drivers/hsi/Makefile
new file mode 100644
index 000..b42b6cf
--- /dev/null
+++ b/drivers/hsi/Makefile
@@ -0,0 +1,4 @@
+#
+# Makefile for HSI
+#
+obj-$(CONFIG_HSI)  += hsi.o
diff --git a/drivers/hsi/hsi.c b/drivers/hsi/hsi.c
new file mode 100644
index 000..f6fd777
--- /dev/null
+++ b/drivers/hsi/hsi.c
@@ -0,0 +1,487 @@
+/*
+ * hsi.c
+ *
+ * HSI core.
+ *
+ * Copyright (C) 2010 Nokia Corporation. All rights reserved.
+ *
+ * Contact: Carlos Chinea carlos.chi...@nokia.com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ */
+#include linux/hsi/hsi.h
+#include linux/rwsem.h
+
+struct hsi_cl_info {
+   struct list_headlist;
+   struct hsi_board_info   info;
+};
+
+static LIST_HEAD(hsi_board_list);
+
+static struct device_type hsi_ctrl = {
+   .name   = hsi_controller,
+};
+
+static struct device_type hsi_cl = {
+   .name   = hsi_client,
+};
+
+static struct device_type hsi_port = {
+   .name   = hsi_port,
+};
+
+static ssize_t modalias_show(struct device *dev, struct device_attribute *a,
+   char *buf)
+{
+   return sprintf(buf, hsi:%s\n, dev_name(dev));
+}
+
+static struct device_attribute hsi_bus_dev_attrs[] = {
+   __ATTR_RO(modalias),
+   __ATTR_NULL,
+};
+
+static int hsi_bus_uevent(struct device *dev, struct kobj_uevent_env *env)
+{
+   add_uevent_var(env, MODALIAS=hsi:%s, dev_name(dev));
+
+   return 0;
+}
+
+static int hsi_bus_match(struct device *dev, struct device_driver *driver)
+{
+   return strcmp(dev_name(dev), driver-name) == 0;
+}
+
+struct bus_type hsi_bus_type = {
+   .name   = hsi,
+   .dev_attrs  = hsi_bus_dev_attrs,
+   .match  = hsi_bus_match,
+   .uevent = hsi_bus_uevent,
+};
+
+static void hsi_client_release(struct device *dev)
+{
+   kfree(to_hsi_client(dev));
+}
+
+static void hsi_new_client(struct hsi_port *port, struct hsi_board_info *info)
+{
+   struct hsi_client *cl;
+
+   cl = kzalloc(sizeof(*cl), GFP_KERNEL);
+   if (!cl)
+   return;
+   cl-device.type = hsi_cl;
+   cl-tx_cfg = info-tx_cfg;
+   cl-rx_cfg = info-rx_cfg;
+   cl-device.bus = hsi_bus_type;
+   cl-device.parent = port-device;

Re: [PATCH v4 1/1] Registering sgx device and it's platform data

2010-04-23 Thread Paul Walmsley
On Thu, 22 Apr 2010, Agarwal, Preshit wrote:

 In this patch SGX powervr_device is registered with it's platform specific
 data to provide information about setting constraint through
 omap_pm_set_min_bus_tput.
 This patch removes the requirement of EXPORT_SYMBOL for the same function.
 
 Signed-off-by: Preshit Agarwal preshit.agar...@ti.com

Reviewed-by: Paul Walmsley p...@pwsan.com

That's the right way to pass these function pointers.


- Paul
--
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: [RFC PATCH 0/5] HSI framework and drivers

2010-04-23 Thread Paul Walmsley
(cc Sébastien JAN)

Hello Carlos,

On Fri, 23 Apr 2010, Carlos Chinea wrote:

 I have been working on a new proposal to support HSI/SSI drivers
 in the kernel. I would be very glad to get your feedback about
 this proposal.
 
 This patch series introduces the HSI framework, an SSI driver
 for OMAP and a generic character device for HSI/SSI devices.
 
 SSI, which is a legacy version of HSI, is used to connect the application
 engine with the cellular modem on the Nokia N900.
 
 This patch set is based on 2.6.34-rc3

Have you looked at Sébastien's HSI driver code:

http://www.mail-archive.com/linux-omap@vger.kernel.org/msg18506.html

Is there some way that you can combine efforts with him?


- Paul

RE: [PATCH v4 1/1] Registering sgx device and it's platform data

2010-04-23 Thread Pandita, Vikram


-Original Message-
From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-
ow...@vger.kernel.org] On Behalf Of Paul Walmsley
Sent: Friday, April 23, 2010 10:45 AM
To: Agarwal, Preshit
Cc: linux-omap@vger.kernel.org; felipe.ba...@nokia.com; Pais, Allen
Subject: Re: [PATCH v4 1/1] Registering sgx device and it's platform data

On Thu, 22 Apr 2010, Agarwal, Preshit wrote:

 In this patch SGX powervr_device is registered with it's platform
specific
 data to provide information about setting constraint through
 omap_pm_set_min_bus_tput.
 This patch removes the requirement of EXPORT_SYMBOL for the same
function.

 Signed-off-by: Preshit Agarwal preshit.agar...@ti.com

Reviewed-by: Paul Walmsley p...@pwsan.com

That's the right way to pass these function pointers.

Just to keep you posted, effort is happening on TI android kernel(.32) on 
integrating the sgx driver parts [1].

With user space still being non-GPL, not clear on the amount of functionality 
that can be enabled in upstream kernel.

But a good start though to converge on the out-of-tree gaps !!

Regards,
Vikram

[1] Internal tree references for sgx driver:
http://git.omapzoom.org/?p=kernel/omap.git;a=commitdiff;h=f33345b97ad528e8093cc4f865570a17024bbf85
http://git.omapzoom.org/?p=kernel/omap.git;a=commitdiff;h=d9a3d7884c05fb310ff3d937e846202843c7c437
http://git.omapzoom.org/?p=kernel/omap.git;a=commitdiff;h=bf6accefac104660ea9b8fc5e1a782a97793692e



- Paul
--
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: [RFC PATCH 1/5] HSI: Introducing HSI framework

2010-04-23 Thread Randy Dunlap
On Fri, 23 Apr 2010 18:15:24 +0300 Carlos Chinea wrote:

 Adds HSI framework in to the linux kernel.
 
 High Speed Synchronous Serial Interface (HSI) is a
 ^^^
 yes, correct spelling

 serial interface mainly used for connecting application
 engines (APE) with cellular modem engines (CMT) in cellular
 handsets.
 
 HSI provides multiplexing for up to 16 logical channels,
 low-latency and full duplex communication.
 
 Signed-off-by: Carlos Chinea carlos.chi...@nokia.com
 ---
  drivers/Kconfig |2 +
  drivers/Makefile|1 +
  drivers/hsi/Kconfig |   13 ++
  drivers/hsi/Makefile|4 +
  drivers/hsi/hsi.c   |  487 
 +++
  include/linux/hsi/hsi.h |  365 +++
  6 files changed, 872 insertions(+), 0 deletions(-)
  create mode 100644 drivers/hsi/Kconfig
  create mode 100644 drivers/hsi/Makefile
  create mode 100644 drivers/hsi/hsi.c
  create mode 100644 include/linux/hsi/hsi.h
 

 diff --git a/drivers/hsi/Kconfig b/drivers/hsi/Kconfig
 new file mode 100644
 index 000..e122584
 --- /dev/null
 +++ b/drivers/hsi/Kconfig
 @@ -0,0 +1,13 @@
 +#
 +# HSI driver configuration
 +#
 +menuconfig HSI
 + bool HSI support
 + ---help---
 +   The High speed syncrhonous Serial Interface is
  ~~~

 +   synchrnous serial interface used mainly to connect
  ~~

Fix spelling mistakes (or typos).

 +   application engines and celluar modems.
 +
 +if HSI
 +
 +endif # HSI

 diff --git a/drivers/hsi/hsi.c b/drivers/hsi/hsi.c
 new file mode 100644
 index 000..f6fd777
 --- /dev/null
 +++ b/drivers/hsi/hsi.c
 @@ -0,0 +1,487 @@
 +/*
 + * hsi.c
 + *
 + * HSI core.
 + *
 + * Copyright (C) 2010 Nokia Corporation. All rights reserved.
 + *
 + * Contact: Carlos Chinea carlos.chi...@nokia.com
 + */
 +#include linux/hsi/hsi.h
 +#include linux/rwsem.h

Need
#include linux/list.h
for LIST_HEAD().

 +
 +struct hsi_cl_info {
 + struct list_headlist;
 + struct hsi_board_info   info;
 +};
 +
 +static LIST_HEAD(hsi_board_list);
 +


 +
 +static int hsi_bus_uevent(struct device *dev, struct kobj_uevent_env *env)

#include linux/kobject.h


 +{
 + add_uevent_var(env, MODALIAS=hsi:%s, dev_name(dev));
 +
 + return 0;
 +}
 +
 +static int hsi_bus_match(struct device *dev, struct device_driver *driver)
 +{
 + return strcmp(dev_name(dev), driver-name) == 0;

string.h

 +}
 +
 +struct bus_type hsi_bus_type = {
 + .name   = hsi,
 + .dev_attrs  = hsi_bus_dev_attrs,
 + .match  = hsi_bus_match,
 + .uevent = hsi_bus_uevent,
 +};
 +
 +static void hsi_client_release(struct device *dev)
 +{
 + kfree(to_hsi_client(dev));

slab.h

 +}
 +
 +static void hsi_new_client(struct hsi_port *port, struct hsi_board_info 
 *info)
 +{
 + struct hsi_client *cl;
 +
 + cl = kzalloc(sizeof(*cl), GFP_KERNEL);

slab.h

 + if (!cl)
 + return;
 + cl-device.type = hsi_cl;
 + cl-tx_cfg = info-tx_cfg;
 + cl-rx_cfg = info-rx_cfg;
 + cl-device.bus = hsi_bus_type;
 + cl-device.parent = port-device;
 + cl-device.release = hsi_client_release;
 + dev_set_name(cl-device, info-name);
 + cl-device.platform_data = info-platform_data;
 + if (info-archdata)
 + cl-device.archdata = *info-archdata;
 + if (device_register(cl-device)  0) {
 + pr_err(hsi: failed to register client: %s\n, info-name);
 + kfree(cl);
 + }
 +}

...



 +/**
 + * hsi_alloc_msg - Allocate an HSI message
 + * @nents: Number of memory entries
 + * @flags: Kernel allocation flags
 + *
 + * NOTE: nents can be 0. This mainly makes sense for read transfer.
 + * In that case, HSI drivers will call the complete callback when
 + * there is data to be read without cosuming it.

   consuming

 + *
 + * Return NULL on failure or a pointer to an hsi_msg on success.
 + */
 +struct hsi_msg *hsi_alloc_msg(unsigned int nents, gfp_t flags)
 +{
...
 +}
 +EXPORT_SYMBOL_GPL(hsi_alloc_msg);

...


 +/**
 + * hsi_event -Notifies clients about port events
 + * @port: Port where the event occurred
 + * @event: The event type:
 + *   - HSI_EVENT_START_RX: Incoming wake line high
 + *   - HSI_EVENT_STOP_RX: Incoming wake line down
 + *
 + * Note: Clients should not be concerned about wake line behavior. But due
 + * to a race condition in HSI HW protocol when the wake lines are in used,

 are in use,

 + * they need to be notified about wake line changes, so they can implement
 + * a workaround for it.
 + */
 +void hsi_event(struct hsi_port *port, unsigned int event)
 +{
...
 +}

 diff --git a/include/linux/hsi/hsi.h b/include/linux/hsi/hsi.h
 new file mode 100644
 index 000..b272f23
 --- /dev/null
 +++ b/include/linux/hsi/hsi.h
 @@ -0,0 +1,365 @@
 +/*
 + * 

RE: [RFC PATCH 0/5] HSI framework and drivers

2010-04-23 Thread Kai.Vehmanen
Hi Paul and others,

On 23 April 2010, Paul Walmsley wrote:
 SSI, which is a legacy version of HSI, is used to connect the application
 engine with the cellular modem on the Nokia N900.

 This patch set is based on 2.6.34-rc3

Have you looked at Sébastien's HSI driver code:

http://www.mail-archive.com/linux-omap@vger.kernel.org/msg18506.html

I think the history of the patches is already shared. I've been 
looking at this from the sidelines and I think the story so 
far is:

2008: Carlos sent the original SSI patchset (and got comments)
   - http://lkml.org/lkml/2008/10/3/116
2009: Sébastien sent an updated patchset (and got comments)
   - http://www.mail-archive.com/linux-omap@vger.kernel.org/msg18506.html

.. and now this latest one from Carlos is a completely new
design that attempts to address the design comments that have
been raised, hopefully pushing HSI/SSI a step closer to 
getting accepted. I'll leave it to Carlos and Sébastien to 
correct me if I got the above wrong...

Br,
-- 
Kai Vehmanen

--
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-2.6.34-rc2+ 00/11] musb patches (v2)

2010-04-23 Thread Greg KH
On Thu, Mar 25, 2010 at 01:14:22PM +0200, Felipe Balbi wrote:
 Hi Greg,
 
 sorry for the last time. There was a bug in my script
 which caused it to rebased against the wrong branch.

All queued up, thanks

greg k-h
--
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


[PATCH] usb: Fix tusb6010 for DMA API (Re: [patch-2.6.34-rc2+ 00/11] musb patches (v2))

2010-04-23 Thread Tony Lindgren
* Greg KH g...@kroah.com [100423 14:05]:
 On Thu, Mar 25, 2010 at 01:14:22PM +0200, Felipe Balbi wrote:
  Hi Greg,
  
  sorry for the last time. There was a bug in my script
  which caused it to rebased against the wrong branch.
 
 All queued up, thanks

This compile fix still needs to be queued too. Can also
merge via omap tree if you guys ack.

Tony
From 70bc10c9cbfd245b43234f2504eae21ce6b3d73f Mon Sep 17 00:00:00 2001
From: Tony Lindgren t...@atomide.com
Date: Wed, 31 Mar 2010 05:02:07 -0700
Subject: [PATCH] usb: Fix tusb6010 for DMA API

Commit 18eabe2347ae7a11b3db768695913724166dfb0e introduced
DMA buffer ownership. Fix tusb6010 accordingly.

Also change the order of musb_read_fifo() to happen after
dma_cache_maint to have the DMA operations completed before
moving the remaining unaligned bytes with PIO. The DMA
access and PIO touch different areas of the FIFO, so this
change only makes the code a bit easier to follow.

Tested on n810 and g_ether with variable size ping test.
The test seems to fail for some ping sizes, but that seems to
be a different problem.

Signed-off-by: Tony Lindgren t...@atomide.com

diff --git a/drivers/usb/musb/tusb6010.c b/drivers/usb/musb/tusb6010.c
index ab776a8..60d3938 100644
--- a/drivers/usb/musb/tusb6010.c
+++ b/drivers/usb/musb/tusb6010.c
@@ -29,6 +29,19 @@ static void tusb_source_power(struct musb *musb, int is_on);
 #define TUSB_REV_MAJOR(reg_val)		((reg_val  4)  0xf)
 #define TUSB_REV_MINOR(reg_val)		(reg_val  0xf)
 
+#ifdef CONFIG_PM
+/* REVISIT: These should be only needed if somebody implements off idle */
+void musb_platform_save_context(struct musb *musb,
+			struct musb_context_registers *musb_context)
+{
+}
+
+void musb_platform_restore_context(struct musb *musb,
+			struct musb_context_registers *musb_context)
+{
+}
+#endif
+
 /*
  * Checks the revision. We need to use the DMA register as 3.0 does not
  * have correct versions for TUSB_PRCM_REV or TUSB_INT_CTRL_REV.
diff --git a/drivers/usb/musb/tusb6010_omap.c b/drivers/usb/musb/tusb6010_omap.c
index 1c86809..6f0e943 100644
--- a/drivers/usb/musb/tusb6010_omap.c
+++ b/drivers/usb/musb/tusb6010_omap.c
@@ -38,7 +38,7 @@ struct tusb_omap_dma_ch {
 
 	struct tusb_omap_dma	*tusb_dma;
 
-	void __iomem		*dma_addr;
+	dma_addr_t		dma_addr;
 
 	u32			len;
 	u16			packet_sz;
@@ -125,6 +125,7 @@ static void tusb_omap_dma_cb(int lch, u16 ch_status, void *data)
 	struct tusb_omap_dma_ch	*chdat = to_chdat(channel);
 	struct tusb_omap_dma	*tusb_dma = chdat-tusb_dma;
 	struct musb		*musb = chdat-musb;
+	struct device		*dev = musb-controller;
 	struct musb_hw_ep	*hw_ep = chdat-hw_ep;
 	void __iomem		*ep_conf = hw_ep-conf;
 	void __iomem		*mbase = musb-mregs;
@@ -172,13 +173,15 @@ static void tusb_omap_dma_cb(int lch, u16 ch_status, void *data)
 		DBG(3, Using PIO for remaining %lu bytes\n, pio);
 		buf = phys_to_virt((u32)chdat-dma_addr) + chdat-transfer_len;
 		if (chdat-tx) {
-			dma_cache_maint(phys_to_virt((u32)chdat-dma_addr),
-	chdat-transfer_len, DMA_TO_DEVICE);
+			dma_unmap_single(dev, chdat-dma_addr,
+		chdat-transfer_len,
+		DMA_TO_DEVICE);
 			musb_write_fifo(hw_ep, pio, buf);
 		} else {
+			dma_unmap_single(dev, chdat-dma_addr,
+		chdat-transfer_len,
+		DMA_FROM_DEVICE);
 			musb_read_fifo(hw_ep, pio, buf);
-			dma_cache_maint(phys_to_virt((u32)chdat-dma_addr),
-	chdat-transfer_len, DMA_FROM_DEVICE);
 		}
 		channel-actual_len += pio;
 	}
@@ -223,6 +226,7 @@ static int tusb_omap_dma_program(struct dma_channel *channel, u16 packet_sz,
 	struct tusb_omap_dma_ch		*chdat = to_chdat(channel);
 	struct tusb_omap_dma		*tusb_dma = chdat-tusb_dma;
 	struct musb			*musb = chdat-musb;
+	struct device			*dev = musb-controller;
 	struct musb_hw_ep		*hw_ep = chdat-hw_ep;
 	void __iomem			*mbase = musb-mregs;
 	void __iomem			*ep_conf = hw_ep-conf;
@@ -298,14 +302,16 @@ static int tusb_omap_dma_program(struct dma_channel *channel, u16 packet_sz,
 	chdat-packet_sz = packet_sz;
 	chdat-len = len;
 	channel-actual_len = 0;
-	chdat-dma_addr = (void __iomem *)dma_addr;
+	chdat-dma_addr = dma_addr;
 	channel-status = MUSB_DMA_STATUS_BUSY;
 
 	/* Since we're recycling dma areas, we need to clean or invalidate */
 	if (chdat-tx)
-		dma_cache_maint(phys_to_virt(dma_addr), len, DMA_TO_DEVICE);
+		dma_map_single(dev, phys_to_virt(dma_addr), len,
+DMA_TO_DEVICE);
 	else
-		dma_cache_maint(phys_to_virt(dma_addr), len, DMA_FROM_DEVICE);
+		dma_map_single(dev, phys_to_virt(dma_addr), len,
+DMA_FROM_DEVICE);
 
 	/* Use 16-bit transfer if dma_addr is not 32-bit aligned */
 	if ((dma_addr  0x3) == 0) {


Re: [PATCH] usb: Fix tusb6010 for DMA API (Re: [patch-2.6.34-rc2+ 00/11] musb patches (v2))

2010-04-23 Thread Greg KH
On Fri, Apr 23, 2010 at 02:23:08PM -0700, Tony Lindgren wrote:
 * Greg KH g...@kroah.com [100423 14:05]:
  On Thu, Mar 25, 2010 at 01:14:22PM +0200, Felipe Balbi wrote:
   Hi Greg,
   
   sorry for the last time. There was a bug in my script
   which caused it to rebased against the wrong branch.
  
  All queued up, thanks
 
 This compile fix still needs to be queued too. Can also
 merge via omap tree if you guys ack.

That's up to Felipe.  I have no objection to it, it's his call.

thanks,

greg k-h
--
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


[PATCH 00/28] omap fixes for v2.6.34-rc5

2010-04-23 Thread Tony Lindgren
Hi all,

Here are some omap fixes for review. Mostly trivial stuff.

Sorry for posting these so late in the -rc cycle. Travel,
meetings and ELC sucked up quite a bit of my time over past
month.

Regards,

Tony

---

Aaro Koskinen (2):
  omap: fix clocksource_32k to start from zero
  omap: delete unused bootloader tag variables

Abraham Arce (1):
  OMAP4: Clocks: Change SPI Instance Names

Enric Balletbo i Serra (1):
  omap3: Fix EHCI port for IGEP v2 board

Felipe Balbi (1):
  arm: omap1: remove dead code from timer32k.c

Francisco Alecrim (1):
  n8x0_defconfig: remove CONFIG_NILFS2_FS override

Janusz Krzysztofik (1):
  omap: gpio: fix incorrect matching of IRQ_TYPE_EDGE_BOTH

Jarkko Nikula (2):
  omap: rx51_defconfig: Remove duplicate phonet
  omap: rx51_defconfig: Remove CONFIG_SYSFS_DEPRECATED*=y options

Richard Woodruff (1):
  omap4: Fix build break when used with gcc-4.4.1 (2009-q3)

Santosh Shilimkar (2):
  OMAP4: Fix for CONTROL register Base
  omap4: Fix McBSP4 base address

Thomas Weber (8):
  omap: Devkit8000: Fix wrong usb port on Devkit8000
  omap: board-sdp-flash.c: Fix typos in debug output
  omap: Devkit8000: Fix typo in supplies
  omap: Devkit8000: Add missing package selection
  omap: Devkit8000: Fix typo in pin name
  omap: Devkit8000: Remove unnecessary include file
  omap: Devkit8000: Change position of init calls
  omap: Devkit8000: Remove unused pins

Tony Lindgren (2):
  omap2: Fix ARM processor check for 24xx
  omap: Fix n8x0 mmc_mmc_init compile warnings and typos

kishore kadiyala (1):
  OMAP4-HSMMC: FIX for MMC5 Controller IRQ Base

manjugk manjugk (1):
  omap: DMA: Init CDAC to zero

stanley.miao (4):
  omap: fix the compile error if CONFIG_MTD_NAND_OMAP2 is notenabled
  omap: remove one of the define of INT_34XX_BENCH_MPU_EMUL
  AM3517: initialize i2c subsystem after mux subsystem
  omap: fix a gpmc nand problem


 arch/arm/configs/n8x0_defconfig|1 -
 arch/arm/configs/rx51_defconfig|3 --
 arch/arm/mach-omap1/timer32k.c |   15 -
 arch/arm/mach-omap2/Kconfig|6 ++--
 arch/arm/mach-omap2/board-am3517evm.c  |4 +-
 arch/arm/mach-omap2/board-devkit8000.c |   39 ++--
 arch/arm/mach-omap2/board-igep0020.c   |8 ++---
 arch/arm/mach-omap2/board-n8x0.c   |   18 ++-
 arch/arm/mach-omap2/board-sdp-flash.c  |8 ++---
 arch/arm/mach-omap2/clock44xx_data.c   |8 ++---
 arch/arm/mach-omap2/devices.c  |2 +
 arch/arm/mach-omap2/gpmc-nand.c|3 ++
 arch/arm/mach-omap2/include/mach/entry-macro.S |2 +
 arch/arm/mach-omap2/omap-headsmp.S |6 ++--
 arch/arm/mach-omap2/omap44xx-smc.S |2 +
 arch/arm/plat-omap/common.c|   22 +-
 arch/arm/plat-omap/dma.c   |9 ++
 arch/arm/plat-omap/gpio.c  |6 ++--
 arch/arm/plat-omap/include/plat/irqs.h |2 -
 arch/arm/plat-omap/include/plat/mcbsp.h|2 +
 arch/arm/plat-omap/include/plat/nand.h |7 
 arch/arm/plat-omap/include/plat/omap44xx.h |2 +
 22 files changed, 80 insertions(+), 95 deletions(-)

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


[PATCH 02/28] arm: omap1: remove dead code from timer32k.c

2010-04-23 Thread Tony Lindgren
From: Felipe Balbi felipe.ba...@nokia.com

Trivial patch, no functional changes

Signed-off-by: Felipe Balbi felipe.ba...@nokia.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap1/timer32k.c |   15 ---
 1 files changed, 0 insertions(+), 15 deletions(-)

diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c
index 9ad1185..20cfbcc 100644
--- a/arch/arm/mach-omap1/timer32k.c
+++ b/arch/arm/mach-omap1/timer32k.c
@@ -68,12 +68,6 @@ struct sys_timer omap_timer;
  * ---
  */
 
-#if defined(CONFIG_ARCH_OMAP16XX)
-#define TIMER_32K_SYNCHRONIZED 0xfffbc410
-#else
-#error OMAP 32KHz timer does not currently work on 15XX!
-#endif
-
 /* 16xx specific defines */
 #define OMAP1_32K_TIMER_BASE   0xfffb9000
 #define OMAP1_32K_TIMER_CR 0x08
@@ -150,15 +144,6 @@ static struct clock_event_device clockevent_32k_timer = {
.set_mode   = omap_32k_timer_set_mode,
 };
 
-/*
- * The 32KHz synchronized timer is an additional timer on 16xx.
- * It is always running.
- */
-static inline unsigned long omap_32k_sync_timer_read(void)
-{
-   return omap_readl(TIMER_32K_SYNCHRONIZED);
-}
-
 static irqreturn_t omap_32k_timer_interrupt(int irq, void *dev_id)
 {
struct clock_event_device *evt = clockevent_32k_timer;

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


[PATCH 01/28] omap: fix clocksource_32k to start from zero

2010-04-23 Thread Tony Lindgren
From: Aaro Koskinen aaro.koski...@nokia.com

When the 32k sync timer is used for sched_clock(), it should count
time from the kernel boot (clocksource init) instead of the last HW
reset. Otherwise printk.time values will jump suddenly during the boot:

[0.00] calling  omap2_clk_arch_init+0x0/0x138 @ 1
[0.00] initcall omap2_clk_arch_init+0x0/0x138 returned -22 
after 0 usecs
[0.00] initcall omap2_clk_arch_init+0x0/0x138 returned with 
error code -22
[0.00] calling  omap_init_clocksource_32k+0x0/0x98 @ 1
[  508.697937] initcall omap_init_clocksource_32k+0x0/0x98 returned 0 
after 0 usecs
[  508.697967] calling  omap_init_devices+0x0/0x38 @ 1
[  508.698425] initcall omap_init_devices+0x0/0x38 returned 0 after 0 
usecs

This will confuse tools such as scripts/bootgraph.pl.

Signed-off-by: Aaro Koskinen aaro.koski...@nokia.com
Acked-by: Kevin Hilman khil...@deeprootsystems.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/plat-omap/common.c |   19 ++-
 1 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
index 088c1a0..01cbb48 100644
--- a/arch/arm/plat-omap/common.c
+++ b/arch/arm/plat-omap/common.c
@@ -100,10 +100,17 @@ EXPORT_SYMBOL(omap_get_var_config);
 
 #include linux/clocksource.h
 
+/*
+ * offset_32k holds the init time counter value. It is then subtracted
+ * from every counter read to achieve a counter that counts time from the
+ * kernel boot (needed for sched_clock()).
+ */
+static u32 offset_32k __read_mostly;
+
 #ifdef CONFIG_ARCH_OMAP16XX
 static cycle_t omap16xx_32k_read(struct clocksource *cs)
 {
-   return omap_readl(OMAP16XX_TIMER_32K_SYNCHRONIZED);
+   return omap_readl(OMAP16XX_TIMER_32K_SYNCHRONIZED) - offset_32k;
 }
 #else
 #define omap16xx_32k_read  NULL
@@ -112,7 +119,7 @@ static cycle_t omap16xx_32k_read(struct clocksource *cs)
 #ifdef CONFIG_ARCH_OMAP2420
 static cycle_t omap2420_32k_read(struct clocksource *cs)
 {
-   return omap_readl(OMAP2420_32KSYNCT_BASE + 0x10);
+   return omap_readl(OMAP2420_32KSYNCT_BASE + 0x10) - offset_32k;
 }
 #else
 #define omap2420_32k_read  NULL
@@ -121,7 +128,7 @@ static cycle_t omap2420_32k_read(struct clocksource *cs)
 #ifdef CONFIG_ARCH_OMAP2430
 static cycle_t omap2430_32k_read(struct clocksource *cs)
 {
-   return omap_readl(OMAP2430_32KSYNCT_BASE + 0x10);
+   return omap_readl(OMAP2430_32KSYNCT_BASE + 0x10) - offset_32k;
 }
 #else
 #define omap2430_32k_read  NULL
@@ -130,7 +137,7 @@ static cycle_t omap2430_32k_read(struct clocksource *cs)
 #ifdef CONFIG_ARCH_OMAP3
 static cycle_t omap34xx_32k_read(struct clocksource *cs)
 {
-   return omap_readl(OMAP3430_32KSYNCT_BASE + 0x10);
+   return omap_readl(OMAP3430_32KSYNCT_BASE + 0x10) - offset_32k;
 }
 #else
 #define omap34xx_32k_read  NULL
@@ -139,7 +146,7 @@ static cycle_t omap34xx_32k_read(struct clocksource *cs)
 #ifdef CONFIG_ARCH_OMAP4
 static cycle_t omap44xx_32k_read(struct clocksource *cs)
 {
-   return omap_readl(OMAP4430_32KSYNCT_BASE + 0x10);
+   return omap_readl(OMAP4430_32KSYNCT_BASE + 0x10) - offset_32k;
 }
 #else
 #define omap44xx_32k_read  NULL
@@ -227,6 +234,8 @@ static int __init omap_init_clocksource_32k(void)
clocksource_32k.mult = clocksource_hz2mult(32768,
clocksource_32k.shift);
 
+   offset_32k = clocksource_32k.read(clocksource_32k);
+
if (clocksource_register(clocksource_32k))
printk(err, clocksource_32k.name);
}

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


[PATCH 03/28] omap: gpio: fix incorrect matching of IRQ_TYPE_EDGE_BOTH

2010-04-23 Thread Tony Lindgren
From: Janusz Krzysztofik jkrzy...@tis.icnet.pl

Since IRQ_TYPE_EDGE_BOTH is defined as (IRQ_TYPE_EDGE_FALLING |
IRQ_TYPE_EDGE_RISING), testing against it with a bitwise AND also matches
both single-edge cases in addition to the intended both edges case. Fix it,
replacing with a more accurate expression.

Created and tested againts linux-2.6.34-rc3.
Applicable to 2.6.33-stable as well.

Signed-off-by: Janusz Krzysztofik jkrzy...@tis.icnet.pl
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/plat-omap/gpio.c |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 76a347b..45a225d 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -798,7 +798,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int 
gpio, int trigger)
case METHOD_MPUIO:
reg += OMAP_MPUIO_GPIO_INT_EDGE;
l = __raw_readl(reg);
-   if (trigger  IRQ_TYPE_EDGE_BOTH)
+   if ((trigger  IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
bank-toggle_mask |= 1  gpio;
if (trigger  IRQ_TYPE_EDGE_RISING)
l |= 1  gpio;
@@ -812,7 +812,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int 
gpio, int trigger)
case METHOD_GPIO_1510:
reg += OMAP1510_GPIO_INT_CONTROL;
l = __raw_readl(reg);
-   if (trigger  IRQ_TYPE_EDGE_BOTH)
+   if ((trigger  IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
bank-toggle_mask |= 1  gpio;
if (trigger  IRQ_TYPE_EDGE_RISING)
l |= 1  gpio;
@@ -846,7 +846,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int 
gpio, int trigger)
case METHOD_GPIO_7XX:
reg += OMAP7XX_GPIO_INT_CONTROL;
l = __raw_readl(reg);
-   if (trigger  IRQ_TYPE_EDGE_BOTH)
+   if ((trigger  IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
bank-toggle_mask |= 1  gpio;
if (trigger  IRQ_TYPE_EDGE_RISING)
l |= 1  gpio;

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


[PATCH 04/28] omap: DMA: Init CDAC to zero

2010-04-23 Thread Tony Lindgren
From: manjugk manjugk manj...@ti.com

The register DMA4_CDAC needs to be initialized to zero
before starting DMA transfer.

Cc: Santosh Shilimkar santosh.shilim...@ti.com
Cc: Govindraj R govindraj.r...@ti.com
Cc: Kevin Hilman khil...@deeprootsystems.com
Reported-by:S, Venkatraman svenk...@ti.com
Signed-off-by: Manjunatha GK manj...@ti.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/plat-omap/dma.c |9 +
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 2ab224c..f6c9bdc 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -936,6 +936,15 @@ void omap_start_dma(int lch)
 {
u32 l;
 
+   /*
+* The CPC/CDAC register needs to be initialized to zero
+* before starting dma transfer.
+*/
+   if (cpu_is_omap15xx())
+   dma_write(0, CPC(lch));
+   else
+   dma_write(0, CDAC(lch));
+
if (!omap_dma_in_1510_mode()  dma_chan[lch].next_lch != -1) {
int next_lch, cur_lch;
char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT];

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


[PATCH 05/28] omap4: Fix build break when used with gcc-4.4.1 (2009-q3)

2010-04-23 Thread Tony Lindgren
From: Richard Woodruff r-woodru...@ti.com

This patch adds  argument to smc calls as gcc-4.4.1 requires it
otherwise the build breaks with 2009-q3 toolchanin.

arch/arm/mach-omap2/omap-headsmp.S: Assembler messages:
arch/arm/mach-omap2/omap-headsmp.S:36: Error: missing expression -- `smc'
arch/arm/mach-omap2/omap-headsmp.S:55: Error: missing expression -- `smc'
arch/arm/mach-omap2/omap-headsmp.S:63: Error: missing expression -- `smc'
make[1]: *** [arch/arm/mach-omap2/omap-headsmp.o] Error 1

Signed-off-by: Richard Woodruff r-woodru...@ti.com
Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/omap-headsmp.S |6 +++---
 arch/arm/mach-omap2/omap44xx-smc.S |2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-omap2/omap-headsmp.S 
b/arch/arm/mach-omap2/omap-headsmp.S
index aa3f65c..ef0e7a0 100644
--- a/arch/arm/mach-omap2/omap-headsmp.S
+++ b/arch/arm/mach-omap2/omap-headsmp.S
@@ -33,7 +33,7 @@
 ENTRY(omap_secondary_startup)
 hold:  ldr r12,=0x103
dsb
-   smc @ read from AuxCoreBoot0
+   smc #0  @ read from AuxCoreBoot0
mov r0, r0, lsr #9
mrc p15, 0, r4, c0, c0, 5
and r4, r4, #0x0f
@@ -52,7 +52,7 @@ ENTRY(omap_modify_auxcoreboot0)
stmfd   sp!, {r1-r12, lr}
ldr r12, =0x104
dsb
-   smc
+   smc #0
ldmfd   sp!, {r1-r12, pc}
 END(omap_modify_auxcoreboot0)
 
@@ -60,6 +60,6 @@ ENTRY(omap_auxcoreboot_addr)
stmfd   sp!, {r2-r12, lr}
ldr r12, =0x105
dsb
-   smc
+   smc #0
ldmfd   sp!, {r2-r12, pc}
 END(omap_auxcoreboot_addr)
diff --git a/arch/arm/mach-omap2/omap44xx-smc.S 
b/arch/arm/mach-omap2/omap44xx-smc.S
index 89bb2b1..f61c777 100644
--- a/arch/arm/mach-omap2/omap44xx-smc.S
+++ b/arch/arm/mach-omap2/omap44xx-smc.S
@@ -27,6 +27,6 @@ ENTRY(omap_smc1)
mov r12, r0
mov r0, r1
dsb
-   smc
+   smc #0
ldmfd   sp!, {r2-r12, pc}
 END(omap_smc1)

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


[PATCH 07/28] omap: Fix n8x0 mmc_mmc_init compile warnings and typos

2010-04-23 Thread Tony Lindgren
Fix warning: 'return' with a value, in function returning void
in n8x0_mmc_init. Also fix a search and replace typo.

Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/board-n8x0.c |   18 +-
 1 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
index da9bcb8..3ccc34e 100644
--- a/arch/arm/mach-omap2/board-n8x0.c
+++ b/arch/arm/mach-omap2/board-n8x0.c
@@ -216,7 +216,7 @@ static void __init n8x0_onenand_init(void) {}
  */
 #define N8X0_SLOT_SWITCH_GPIO  96
 #define N810_EMMC_VSD_GPIO 23
-#define NN810_EMMC_VIO_GPIO9
+#define N810_EMMC_VIO_GPIO 9
 
 static int n8x0_mmc_switch_slot(struct device *dev, int slot)
 {
@@ -304,10 +304,10 @@ static void n810_set_power_emmc(struct device *dev,
if (power_on) {
gpio_set_value(N810_EMMC_VSD_GPIO, 1);
msleep(1);
-   gpio_set_value(NN810_EMMC_VIO_GPIO, 1);
+   gpio_set_value(N810_EMMC_VIO_GPIO, 1);
msleep(1);
} else {
-   gpio_set_value(NN810_EMMC_VIO_GPIO, 0);
+   gpio_set_value(N810_EMMC_VIO_GPIO, 0);
msleep(50);
gpio_set_value(N810_EMMC_VSD_GPIO, 0);
msleep(50);
@@ -468,7 +468,7 @@ static void n8x0_mmc_cleanup(struct device *dev)
 
if (machine_is_nokia_n810()) {
gpio_free(N810_EMMC_VSD_GPIO);
-   gpio_free(NN810_EMMC_VIO_GPIO);
+   gpio_free(N810_EMMC_VIO_GPIO);
}
 }
 
@@ -529,7 +529,7 @@ void __init n8x0_mmc_init(void)
 
err = gpio_request(N8X0_SLOT_SWITCH_GPIO, MMC slot switch);
if (err)
-   return err;
+   return;
 
gpio_direction_output(N8X0_SLOT_SWITCH_GPIO, 0);
 
@@ -537,17 +537,17 @@ void __init n8x0_mmc_init(void)
err = gpio_request(N810_EMMC_VSD_GPIO, MMC slot 2 Vddf);
if (err) {
gpio_free(N8X0_SLOT_SWITCH_GPIO);
-   return err;
+   return;
}
gpio_direction_output(N810_EMMC_VSD_GPIO, 0);
 
-   err = gpio_request(NN810_EMMC_VIO_GPIO, MMC slot 2 Vdd);
+   err = gpio_request(N810_EMMC_VIO_GPIO, MMC slot 2 Vdd);
if (err) {
gpio_free(N8X0_SLOT_SWITCH_GPIO);
gpio_free(N810_EMMC_VSD_GPIO);
-   return err;
+   return;
}
-   gpio_direction_output(NN810_EMMC_VIO_GPIO, 0);
+   gpio_direction_output(N810_EMMC_VIO_GPIO, 0);
}
 
mmc_data[0] = mmc1_data;

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


[PATCH 09/28] OMAP4-HSMMC: FIX for MMC5 Controller IRQ Base

2010-04-23 Thread Tony Lindgren
From: kishore kadiyala kishore.kadiy...@ti.com

This patch fixes HSMMC Controller5 IRQ Base.

Signed-off-by: Kishore Kadiyala kishore.kadiy...@ti.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/devices.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 23e4d77..2271b9b 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -726,7 +726,7 @@ void __init omap2_init_mmc(struct omap_mmc_platform_data 
**mmc_data,
if (!cpu_is_omap44xx())
return;
base = OMAP4_MMC5_BASE + OMAP4_MMC_REG_OFFSET;
-   irq = OMAP44XX_IRQ_MMC4;
+   irq = OMAP44XX_IRQ_MMC5;
break;
default:
continue;

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


[PATCH 08/28] omap3: Fix EHCI port for IGEP v2 board

2010-04-23 Thread Tony Lindgren
From: Enric Balletbo i Serra eballe...@iseebcn.com

IGEP v2 uses EHCI port 1 instead of EHCI port 2.

Signed-off-by: Enric Balletbo i Serra eballe...@iseebcn.com
Acked-by: Felipe Balbi felipe.ba...@nokia.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/board-igep0020.c |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-omap2/board-igep0020.c 
b/arch/arm/mach-omap2/board-igep0020.c
index 3c7789d..d55c57b 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -458,13 +458,13 @@ static struct omap_musb_board_data musb_board_data = {
 };
 
 static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
-   .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
-   .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
+   .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
+   .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
.port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
 
.phy_reset = true,
-   .reset_gpio_port[0] = -EINVAL,
-   .reset_gpio_port[1] = IGEP2_GPIO_USBH_NRESET,
+   .reset_gpio_port[0] = IGEP2_GPIO_USBH_NRESET,
+   .reset_gpio_port[1] = -EINVAL,
.reset_gpio_port[2] = -EINVAL,
 };
 

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


[PATCH 10/28] OMAP4: Fix for CONTROL register Base

2010-04-23 Thread Tony Lindgren
From: Santosh Shilimkar santosh.shilim...@ti.com

This patch fixes the base address of CONTROL register on OMAP4430SDP.
The control base is used by peripherals like MMC1 for PBIAS configuration.

Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
Signed-off-by: Kishore Kadiyala kishore.kadiy...@ti.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/plat-omap/include/plat/omap44xx.h |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-omap/include/plat/omap44xx.h 
b/arch/arm/plat-omap/include/plat/omap44xx.h
index 2302474..b3ef1a7 100644
--- a/arch/arm/plat-omap/include/plat/omap44xx.h
+++ b/arch/arm/plat-omap/include/plat/omap44xx.h
@@ -32,7 +32,7 @@
 #define OMAP4430_PRM_BASE  0x4a306000
 #define OMAP44XX_GPMC_BASE 0x5000
 #define OMAP443X_SCM_BASE  0x4a002000
-#define OMAP443X_CTRL_BASE OMAP443X_SCM_BASE
+#define OMAP443X_CTRL_BASE 0x4a10
 #define OMAP44XX_IC_BASE   0x4820
 #define OMAP44XX_IVA_INTC_BASE 0x4000
 #define IRQ_SIR_IRQ0x0040

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


[PATCH 11/28] omap: Devkit8000: Fix wrong usb port on Devkit8000

2010-04-23 Thread Tony Lindgren
From: Thomas Weber we...@corscience.de

Disable the nonexistent ehci port on Devkit8000.

Signed-off-by: Thomas Weber we...@corscience.de
Acked-by: Anand Gadiyar gadi...@ti.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/board-devkit8000.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/board-devkit8000.c 
b/arch/arm/mach-omap2/board-devkit8000.c
index 5bfc13b..db4c093 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -639,12 +639,12 @@ static struct omap_musb_board_data musb_board_data = {
 static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
 
.port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
-   .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
+   .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
.port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
 
.phy_reset  = true,
.reset_gpio_port[0]  = -EINVAL,
-   .reset_gpio_port[1]  = 147,
+   .reset_gpio_port[1]  = -EINVAL,
.reset_gpio_port[2]  = -EINVAL
 };
 

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


[PATCH 12/28] OMAP4: Clocks: Change SPI Instance Names

2010-04-23 Thread Tony Lindgren
From: Abraham Arce x0066...@ti.com

Change the name for the spi instances on omap44xx_clks to match
the names omap2 spi driver gives:

omap-mcspi.1 - omap2_mcspi.1
omap-mcspi.2 - omap2_mcspi.2
omap-mcspi.3 - omap2_mcspi.3
omap-mcspi.4 - omap2_mcspi.4

Signed-off-by: Abraham Arce x0066...@ti.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/clock44xx_data.c |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-omap2/clock44xx_data.c 
b/arch/arm/mach-omap2/clock44xx_data.c
index 28b1079..a5c0c9c 100644
--- a/arch/arm/mach-omap2/clock44xx_data.c
+++ b/arch/arm/mach-omap2/clock44xx_data.c
@@ -2671,10 +2671,10 @@ static struct omap_clk omap44xx_clks[] = {
CLK(omap-mcbsp.2, ick,  dummy_ck,  
CK_443X),
CLK(omap-mcbsp.3, ick,  dummy_ck,  
CK_443X),
CLK(omap-mcbsp.4, ick,  dummy_ck,  
CK_443X),
-   CLK(omap-mcspi.1, ick,  dummy_ck,  
CK_443X),
-   CLK(omap-mcspi.2, ick,  dummy_ck,  
CK_443X),
-   CLK(omap-mcspi.3, ick,  dummy_ck,  
CK_443X),
-   CLK(omap-mcspi.4, ick,  dummy_ck,  
CK_443X),
+   CLK(omap2_mcspi.1,ick,  dummy_ck,  
CK_443X),
+   CLK(omap2_mcspi.2,ick,  dummy_ck,  
CK_443X),
+   CLK(omap2_mcspi.3,ick,  dummy_ck,  
CK_443X),
+   CLK(omap2_mcspi.4,ick,  dummy_ck,  
CK_443X),
CLK(NULL,   uart1_ick,dummy_ck,  
CK_443X),
CLK(NULL,   uart2_ick,dummy_ck,  
CK_443X),
CLK(NULL,   uart3_ick,dummy_ck,  
CK_443X),

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


[PATCH 13/28] omap: fix the compile error if CONFIG_MTD_NAND_OMAP2 is notenabled

2010-04-23 Thread Tony Lindgren
From: stanley.miao stanley.m...@windriver.com

If CONFIG_MTD_NAND_OMAP2 is not enabled, there will be a compile error,
gpmc_nand_init() is not defined. Add a inline noop function to fix it.

Signed-off-by: Stanley.Miao stanley.m...@windriver.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/plat-omap/include/plat/nand.h |7 +++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/arch/arm/plat-omap/include/plat/nand.h 
b/arch/arm/plat-omap/include/plat/nand.h
index 6ba88d2..f8efd54 100644
--- a/arch/arm/plat-omap/include/plat/nand.h
+++ b/arch/arm/plat-omap/include/plat/nand.h
@@ -29,4 +29,11 @@ struct omap_nand_platform_data {
 /* size (4 KiB) for IO mapping */
 #defineNAND_IO_SIZESZ_4K
 
+#if defined(CONFIG_MTD_NAND_OMAP2) || defined(CONFIG_MTD_NAND_OMAP2_MODULE)
 extern int gpmc_nand_init(struct omap_nand_platform_data *d);
+#else
+static inline int gpmc_nand_init(struct omap_nand_platform_data *d)
+{
+   return 0;
+}
+#endif

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


[PATCH 14/28] omap: remove one of the define of INT_34XX_BENCH_MPU_EMUL

2010-04-23 Thread Tony Lindgren
From: stanley.miao stanley.m...@windriver.com

INT_34XX_BENCH_MPU_EMUL was defined twice, another is at Line 312.

Signed-off-by: Stanley.Miao stanley.m...@windriver.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/plat-omap/include/plat/irqs.h |2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/arch/arm/plat-omap/include/plat/irqs.h 
b/arch/arm/plat-omap/include/plat/irqs.h
index b65088a..4017019 100644
--- a/arch/arm/plat-omap/include/plat/irqs.h
+++ b/arch/arm/plat-omap/include/plat/irqs.h
@@ -345,8 +345,6 @@
 #define INT_34XX_MMC3_IRQ  94
 #define INT_34XX_GPT12_IRQ 95
 
-#defineINT_34XX_BENCH_MPU_EMUL 3
-
 #define INT_35XX_HECC0_IRQ 24
 #define INT_35XX_HECC1_IRQ 28
 #define INT_35XX_EMAC_C0_RXTHRESH_IRQ  67

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


[PATCH 15/28] AM3517: initialize i2c subsystem after mux subsystem

2010-04-23 Thread Tony Lindgren
From: stanley.miao stanley.m...@windriver.com

The initialize of i2c subsystem will set pinmux, so it should be done
after the initialize of mux subsystem initialization.

Signed-off-by: Stanley.Miao stanley.m...@windriver.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/board-am3517evm.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/board-am3517evm.c 
b/arch/arm/mach-omap2/board-am3517evm.c
index 6ae8805..c1c4389 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -294,9 +294,9 @@ static struct omap_board_mux board_mux[] __initdata = {
 
 static void __init am3517_evm_init(void)
 {
-   am3517_evm_i2c_init();
-
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
+
+   am3517_evm_i2c_init();
platform_add_devices(am3517_evm_devices,
ARRAY_SIZE(am3517_evm_devices));
 

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


[PATCH 16/28] omap: fix a gpmc nand problem

2010-04-23 Thread Tony Lindgren
From: stanley.miao stanley.m...@windriver.com

If gpmc_t isn't given, we don't need to set timing for gpmc, or it will cause
a Oops.

Signed-off-by: Stanley.Miao stanley.m...@windriver.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/gpmc-nand.c |3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-omap2/gpmc-nand.c
index 64d74f0..e57fb29 100644
--- a/arch/arm/mach-omap2/gpmc-nand.c
+++ b/arch/arm/mach-omap2/gpmc-nand.c
@@ -39,6 +39,9 @@ static int omap2_nand_gpmc_retime(void)
struct gpmc_timings t;
int err;
 
+   if (!gpmc_nand_data-gpmc_t)
+   return 0;
+
memset(t, 0, sizeof(t));
t.sync_clk = gpmc_round_ns_to_ticks(gpmc_nand_data-gpmc_t-sync_clk);
t.cs_on = gpmc_round_ns_to_ticks(gpmc_nand_data-gpmc_t-cs_on);

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


[PATCH 17/28] omap: rx51_defconfig: Remove duplicate phonet

2010-04-23 Thread Tony Lindgren
From: Jarkko Nikula jhnik...@gmail.com

Phonet is enabled by the commit bce54fed941e03695ab557100a4bd1e457abca42
and this duplicate gives a warning when doing make rx51_defconfig.

Signed-off-by: Jarkko Nikula jhnik...@gmail.com
Acked-by: Felipe Balbi felipe.ba...@nokia.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/configs/rx51_defconfig |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/arch/arm/configs/rx51_defconfig b/arch/arm/configs/rx51_defconfig
index 45135ff..cc6a32a 100644
--- a/arch/arm/configs/rx51_defconfig
+++ b/arch/arm/configs/rx51_defconfig
@@ -480,7 +480,6 @@ CONFIG_BT_HIDP=m
 # CONFIG_BT_HCIBFUSB is not set
 # CONFIG_BT_HCIVHCI is not set
 # CONFIG_AF_RXRPC is not set
-# CONFIG_PHONET is not set
 CONFIG_WIRELESS=y
 CONFIG_CFG80211=y
 # CONFIG_CFG80211_REG_DEBUG is not set

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


[PATCH 18/28] omap: rx51_defconfig: Remove CONFIG_SYSFS_DEPRECATED*=y options

2010-04-23 Thread Tony Lindgren
From: Jarkko Nikula jhnik...@gmail.com

Modern udev will not work with the CONFIG_SYSFS_DEPRECATED*=y options and
it seems also that the Maemo release works without when testing with the
Maemo 2.6.28 kernel.

Signed-off-by: Jarkko Nikula jhnik...@gmail.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/configs/rx51_defconfig |2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/arch/arm/configs/rx51_defconfig b/arch/arm/configs/rx51_defconfig
index cc6a32a..473f9e1 100644
--- a/arch/arm/configs/rx51_defconfig
+++ b/arch/arm/configs/rx51_defconfig
@@ -59,8 +59,6 @@ CONFIG_FAIR_GROUP_SCHED=y
 CONFIG_USER_SCHED=y
 # CONFIG_CGROUP_SCHED is not set
 # CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
 # CONFIG_RELAY is not set
 # CONFIG_NAMESPACES is not set
 CONFIG_BLK_DEV_INITRD=y

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


[PATCH 19/28] omap4: Fix McBSP4 base address

2010-04-23 Thread Tony Lindgren
From: Santosh Shilimkar santosh.shilim...@ti.com

This patch fixes the McBSP4 base address for OMAP4

Signed-off-by: Balaji T K balaj...@ti.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/plat-omap/include/plat/mcbsp.h |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h 
b/arch/arm/plat-omap/include/plat/mcbsp.h
index 3974835..7de903d 100644
--- a/arch/arm/plat-omap/include/plat/mcbsp.h
+++ b/arch/arm/plat-omap/include/plat/mcbsp.h
@@ -59,7 +59,7 @@
 #define OMAP44XX_MCBSP1_BASE   0x49022000
 #define OMAP44XX_MCBSP2_BASE   0x49024000
 #define OMAP44XX_MCBSP3_BASE   0x49026000
-#define OMAP44XX_MCBSP4_BASE   0x48074000
+#define OMAP44XX_MCBSP4_BASE   0x48096000
 
 #if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || 
defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
 

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


[PATCH 20/28] omap: board-sdp-flash.c: Fix typos in debug output

2010-04-23 Thread Tony Lindgren
From: Thomas Weber sw...@gmx.li

Corrected type of flash in output (OneNAND = NOR).
Removed whitespace after newline in output.
Removed double whitespace in output.

Signed-off-by: Thomas Weber we...@corscience.de
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/board-sdp-flash.c |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-omap2/board-sdp-flash.c 
b/arch/arm/mach-omap2/board-sdp-flash.c
index b1b88de..2d02632 100644
--- a/arch/arm/mach-omap2/board-sdp-flash.c
+++ b/arch/arm/mach-omap2/board-sdp-flash.c
@@ -253,20 +253,20 @@ void __init sdp_flash_init(struct flash_partitions 
sdp_partition_info[])
}
 
if (norcs  GPMC_CS_NUM)
-   printk(KERN_INFO OneNAND: Unable to find configuration 
-in GPMC\n );
+   printk(KERN_INFO NOR: Unable to find configuration 
+   in GPMC\n);
else
board_nor_init(sdp_partition_info[0], norcs);
 
if (onenandcs  GPMC_CS_NUM)
printk(KERN_INFO OneNAND: Unable to find configuration 
-in GPMC\n );
+   in GPMC\n);
else
board_onenand_init(sdp_partition_info[1], onenandcs);
 
if (nandcs  GPMC_CS_NUM)
printk(KERN_INFO NAND: Unable to find configuration 
-in GPMC\n );
+   in GPMC\n);
else
board_nand_init(sdp_partition_info[2], nandcs);
 }

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


[PATCH 21/28] n8x0_defconfig: remove CONFIG_NILFS2_FS override

2010-04-23 Thread Tony Lindgren
From: Francisco Alecrim francisco.alec...@openbossa.org

arch/arm/configs/n8x0_defconfig:1061:warning: override: reassigning to
symbol NILFS2_FS

Signed-off-by: Francisco Alecrim francisco.alec...@openbossa.org
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/configs/n8x0_defconfig |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/arch/arm/configs/n8x0_defconfig b/arch/arm/configs/n8x0_defconfig
index 216ad00..9405e32 100644
--- a/arch/arm/configs/n8x0_defconfig
+++ b/arch/arm/configs/n8x0_defconfig
@@ -1058,7 +1058,6 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_ROMFS_FS is not set
 # CONFIG_SYSV_FS is not set
 # CONFIG_UFS_FS is not set
-# CONFIG_NILFS2_FS is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 # CONFIG_NFS_FS is not set
 # CONFIG_NFSD is not set

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


[PATCH 22/28] omap: Devkit8000: Fix typo in supplies

2010-04-23 Thread Tony Lindgren
From: Thomas Weber we...@corscience.de

Replace wrong vdss_dsi with vdds_dsi.

Signed-off-by: Thomas Weber we...@corscience.de
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/board-devkit8000.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/board-devkit8000.c 
b/arch/arm/mach-omap2/board-devkit8000.c
index db4c093..b82e438 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -303,7 +303,7 @@ static struct regulator_consumer_supply 
devkit8000_vpll2_supplies[] = {
.dev= devkit8000_lcd_device.dev,
},
{
-   .supply = vdss_dsi,
+   .supply = vdds_dsi,
.dev= devkit8000_dss_device.dev,
}
 };

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


[PATCH 23/28] omap: Devkit8000: Add missing package selection

2010-04-23 Thread Tony Lindgren
From: Thomas Weber we...@corscience.de

Devkit8000 uses the CUS package for OMAP3530.

This patch adds missing package selection for CUS and enables
CONFIG_MUX.

Replace whitespace with tab in Kconfig.

Signed-off-by: Thomas Weber we...@corscience.de
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/Kconfig |6 --
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index a8a3d1e..2455dcc 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -59,8 +59,10 @@ config MACH_OMAP3_BEAGLE
select OMAP_PACKAGE_CBB
 
 config MACH_DEVKIT8000
-bool DEVKIT8000 board
-depends on ARCH_OMAP3
+   bool DEVKIT8000 board
+   depends on ARCH_OMAP3
+   select OMAP_PACKAGE_CUS
+   select OMAP_MUX
 
 config MACH_OMAP_LDP
bool OMAP3 LDP board

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


[PATCH 24/28] omap: Devkit8000: Fix typo in pin name

2010-04-23 Thread Tony Lindgren
From: Thomas Weber we...@corscience.de

Replace wrong sdr_cke[01] with sdrc_cke[01].

Signed-off-by: Thomas Weber we...@corscience.de
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/board-devkit8000.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/board-devkit8000.c 
b/arch/arm/mach-omap2/board-devkit8000.c
index b82e438..3fafef4 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -676,8 +676,8 @@ static void __init devkit8000_init(void)
devkit8000_flash_init();
 
/* Ensure SDRC pins are mux'd for self-refresh */
-   omap_mux_init_signal(sdr_cke0, OMAP_PIN_OUTPUT);
-   omap_mux_init_signal(sdr_cke1, OMAP_PIN_OUTPUT);
+   omap_mux_init_signal(sdrc_cke0, OMAP_PIN_OUTPUT);
+   omap_mux_init_signal(sdrc_cke1, OMAP_PIN_OUTPUT);
 }
 
 static void __init devkit8000_map_io(void)

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


[PATCH 25/28] omap: Devkit8000: Remove unnecessary include file

2010-04-23 Thread Tony Lindgren
From: Thomas Weber we...@corscience.de

Remove include otg.h.

Signed-off-by: Thomas Weber we...@corscience.de
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/board-devkit8000.c |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/board-devkit8000.c 
b/arch/arm/mach-omap2/board-devkit8000.c
index 3fafef4..d605e05 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -50,7 +50,6 @@
 #include linux/input/matrix_keypad.h
 #include linux/spi/spi.h
 #include linux/spi/ads7846.h
-#include linux/usb/otg.h
 #include linux/dm9000.h
 #include linux/interrupt.h
 

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


[PATCH 26/28] omap: Devkit8000: Change position of init calls

2010-04-23 Thread Tony Lindgren
From: Thomas Weber we...@corscience.de

Change position of calling serial and ethernet initialization.

Signed-off-by: Thomas Weber we...@corscience.de
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/board-devkit8000.c |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-omap2/board-devkit8000.c 
b/arch/arm/mach-omap2/board-devkit8000.c
index d605e05..0b4abd4 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -649,6 +649,10 @@ static const struct ehci_hcd_omap_platform_data ehci_pdata 
__initconst = {
 
 static void __init devkit8000_init(void)
 {
+   omap_serial_init();
+
+   omap_dm9000_init();
+
devkit8000_i2c_init();
platform_add_devices(devkit8000_devices,
ARRAY_SIZE(devkit8000_devices));
@@ -658,10 +662,6 @@ static void __init devkit8000_init(void)
spi_register_board_info(devkit8000_spi_board_info,
ARRAY_SIZE(devkit8000_spi_board_info));
 
-   omap_serial_init();
-
-   omap_dm9000_init();
-
devkit8000_ads7846_init();
 
omap_mux_init_gpio(170, OMAP_PIN_INPUT);

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


[PATCH 27/28] omap: Devkit8000: Remove unused pins

2010-04-23 Thread Tony Lindgren
From: Thomas Weber we...@corscience.de

Old code from original patch contains beagle board pins that are
not available on the Devkit8000.

Signed-off-by: Thomas Weber we...@corscience.de
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/board-devkit8000.c |   20 
 1 files changed, 0 insertions(+), 20 deletions(-)

diff --git a/arch/arm/mach-omap2/board-devkit8000.c 
b/arch/arm/mach-omap2/board-devkit8000.c
index 0b4abd4..47e3af2 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -268,20 +268,6 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
devkit8000_vmmc1_supply.dev = mmc[0].dev;
devkit8000_vsim_supply.dev = mmc[0].dev;
 
-   /* REVISIT: need ehci-omap hooks for external VBUS
-* power switch and overcurrent detect
-*/
-
-   gpio_request(gpio + 1, EHCI_nOC);
-   gpio_direction_input(gpio + 1);
-
-   /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */
-   gpio_request(gpio + TWL4030_GPIO_MAX, nEN_USB_PWR);
-   gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1);
-
-   /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
-   gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
-
return 0;
 }
 
@@ -664,12 +650,6 @@ static void __init devkit8000_init(void)
 
devkit8000_ads7846_init();
 
-   omap_mux_init_gpio(170, OMAP_PIN_INPUT);
-
-   gpio_request(170, DVI_nPD);
-   /* REVISIT leave DVI powered down until it's needed ... */
-   gpio_direction_output(170, true);
-
usb_musb_init(musb_board_data);
usb_ehci_init(ehci_pdata);
devkit8000_flash_init();

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


[PATCH 28/28] omap: delete unused bootloader tag variables

2010-04-23 Thread Tony Lindgren
From: Aaro Koskinen aaro.koski...@nokia.com

They are not needed and add over 512 bytes to kernel data.

Signed-off-by: Aaro Koskinen aaro.koski...@nokia.com
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/plat-omap/common.c |3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
index 01cbb48..f12f0e3 100644
--- a/arch/arm/plat-omap/common.c
+++ b/arch/arm/plat-omap/common.c
@@ -44,9 +44,6 @@
 
 #define NO_LENGTH_CHECK 0x
 
-unsigned char omap_bootloader_tag[512];
-int omap_bootloader_tag_len;
-
 struct omap_board_config_kernel *omap_board_config;
 int omap_board_config_size;
 

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


new PM branch: OPP layer included

2010-04-23 Thread Kevin Hilman
Hello,

I just pushed a new PM branch.  I did a bunch of reordering and
restructuring of branches to include the OPP layer (more on this
below.)


OPP layer: 

pm-wip-opp branch gone, merged into PM branch

What was in pm-wip-opp has now been broken up into a set of patches
that can be combined and queued for upstream (pm-opp branch) as well
as sets of patches for SR and SRF which are now on their respective
branches (pm-sr, pm-srf)

Next step is to combine the patches in pm-opp branch into a sensible
series that can be submitted for the next merge window.


Smart Reflex:

Thara's v3 series available as pm-wip-sr.  This is now based directly
on the new PM branch instead of on pm-wip-opp.

NOTE: the hwmod patches are now merged into l-o (omap-fixes branch)
  so they are no longer in pm-wip-sr.

I didn't get to reviewing this series yet, but did test it out a bit
on top of thenew PM branch.  I gave this some basic testing on n900
and Zoom3 (required a u-boot update first) but basic OPP changes from
userspace governor worked on both.

  
SRF:

This is still included in the PM branch (pm-srf branch), but will be
removed from the official PM branch.  It will be maintained as a
separate branch for a short time (1 month max) and then dropped.
Anyone else who wants to continue maintenance of SRF is free to do so.


Kevin
--
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 4/4][v4] OMAP:iommu- add TLB preservation support

2010-04-23 Thread Kanigeri, Hari
Hi Hiroshi,

 
 diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
 index 1e83fac..d09a0a1 100644
 --- a/arch/arm/plat-omap/iommu.c
 +++ b/arch/arm/plat-omap/iommu.c
 @@ -25,6 +25,9 @@
 
  #include iopgtable.h
 
 +#define for_each_iotlb_cr(obj, n, i, cr) \
 + for (i = 0; (i  n)  (cr = get_iotlb_cr(obj, i)); i++)
 +
-- This code is giving compilation error. 
Can you please send a new patch after fixing this on top of my patches.

Thank you,
Best regards,
Hari
--
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: [RFC PATCH 00/37] cbus patches

2010-04-23 Thread Tony Lindgren
* Tony Lindgren t...@atomide.com [100408 02:19]:
 * felipe.ba...@nokia.com felipe.ba...@nokia.com [100407 09:05]:
  From: Felipe Balbi felipe.ba...@nokia.com
  
  Hi all,
  
  I still have to test these patches, but I fell like it's
  time to get some comments.
  
  There's still a big TODO for the whole cbus drivers:
  
  . cleanup all tahvo drivers
  . instantiate platform_device on board-files
  . pass platform_data to retu/tahvo and their children from board-files
  . move retu-headset to jack abstraction layer (??)
  . move retu-user.c to platform_driver
  . move tahvo and retu to generic-irq
  . move tahvo and retu to mfd
  . move tahvo and retu to threaded irq (??)
  . move all children drivers to proper locations
  . move cbus.c to a common location (drivers/misc ??)
  . allow any arch to use cbus.c by passing correct gpio numbers
  . get it all into mainline.
  
  anyways, these patches were lightly boot tested on n810 and
  compile tested with n770_defconfig.
  
  patches also available on cbus branch of git://gitorious.org/usb/usb.git
 
 Great, let's make sure these work for 770 and N8x0 and then
 merge. One step closer to getting rid of the last remaining
 legacy branch..

Well 770 does not stay up, but at least boots to root. Meaning
the watchdog is not getting kicked. Seems to just hang without
these patches. Will try to look further at some point.

N800 boots fine and stays up, so the watchdog is getting kicked.

So I've pulled this into the cbus branch.

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