RE: [pm-wip/uart][PATCH 2/6] Serial: Add UART4 hwmod data.

2010-05-25 Thread Aguirre, Sergio
 From: Kevin Hilman [khil...@deeprootsystems.com]
 Sent: Monday, May 24, 2010 7:07 PM
 To: Raja, Govindraj; Aguirre, Sergio
 Cc: linux-omap@vger.kernel.org
 Subject: Re: [pm-wip/uart][PATCH 2/6] Serial: Add UART4 hwmod data.
 
 Govindraj.R govindraj.r...@ti.com writes:
  not in my 
  This happening because we are missing these patches:
 
  https://patchwork.kernel.org/patch/84748/
  https://patchwork.kernel.org/patch/84749/
  https://patchwork.kernel.org/patch/84755/
  https://patchwork.kernel.org/patch/84750/
 
  Not part of LO yet.
 
  But we need these patches for uart4 support for 3630.
 
 Ah, OK.  I thought these had been merged already.
 
 Looks like these need to be refreshed/resubmitted for l-o.  Sergio?
 

Ah, I forgot about resubmitting these for the merge window.

Got dragged for this last weeks into high priority work and have abandoned them 
a little bit. :/

I'm in a business trip at this point and I don't have access to the 3630SDP to 
try this.

You can either wait for me to go back and test them, or I can just send them, 
and somebody else can
help me out re-vaidating them, once i rebase and resend.

Does that sound ok?

Regards,
Sergio

 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: [pm-wip/uart][PATCH 2/6] Serial: Add UART4 hwmod data.

2010-05-24 Thread Kevin Hilman
Govindraj.R govindraj.r...@ti.com writes:

 This happening because we are missing these patches:
  
 https://patchwork.kernel.org/patch/84748/
 https://patchwork.kernel.org/patch/84749/
 https://patchwork.kernel.org/patch/84755/
 https://patchwork.kernel.org/patch/84750/
  
 Not part of LO yet.

 But we need these patches for uart4 support for 3630.

Ah, OK.  I thought these had been merged already.

Looks like these need to be refreshed/resubmitted for l-o.  Sergio?

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: [pm-wip/uart][PATCH 2/6] Serial: Add UART4 hwmod data.

2010-05-21 Thread Kevin Hilman
Govindraj.R govindraj.r...@ti.com writes:

 Introduce UART4 hwmod data for OMAP3630

 Cc: Kevin Hilman khil...@deeprootsystems.com
 Signed-off-by: Govindraj.R govindraj.r...@ti.com

Looks good, except omap4_hwmod was not added to the master list of
hwmods to initialize.

Fixed up locally.

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: [pm-wip/uart][PATCH 2/6] Serial: Add UART4 hwmod data.

2010-05-21 Thread Kevin Hilman
Govindraj.R govindraj.r...@ti.com writes:

 Introduce UART4 hwmod data for OMAP3630

 Cc: Kevin Hilman khil...@deeprootsystems.com
 Signed-off-by: Govindraj.R govindraj.r...@ti.com

Just FYI...

After adding UART4 to the master list, it hangs on 3630/Zoom3 (log below)

I didn't dig into this one yet.

Kevin

[...]
Clocking rate (Crystal/Core/MPU): 26.0/400/600 MHz  
omap_hwmod: uart4: cannot clk_get main_clk uart4_fck
omap_hwmod: uart4: cannot clk_get interface_clk uart4_ick   
omap_hwmod: l3_hwmod: cannot be enabled (3) 
omap_hwmod: l4_core_hwmod: cannot be enabled (3)
omap_hwmod: l4_per_hwmod: cannot be enabled (3) 
omap_hwmod: l4_wkup_hwmod: cannot be enabled (3)
Unhandled fault: external abort on non-linefetch (0x1028) at 0xfb042054 
Internal error: : 1028 [#1] PREEMPT 
last sysfs file:
Modules linked in:  
CPU: 0Not tainted  (2.6.34-pm-next-default-10673-g60b93ed #3)   
PC is at omap_hwmod_readl+0x10/0x18 
LR is at _update_sysc_cache+0x44/0x74   
pc : [c0523adc]lr : [c05240bc]psr: a1d3 
sp : c08c5f10  ip : c08c5f20  fp : c08c5f1c 
r10: 001f  r9 : 413fc082  r8 : 80028340 
r7 : c08c82cc  r6 : c0524c98  r5 : 0001  r4 : c08dcc2c  
r3 : fb042000  r2 : 0004  r1 : 0054  r0 : c08dcc2c  
Flags: NzCv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment kernel   
Control: 10c5387f  Table: 80004019  DAC: 0017   
Process swapper (pid: 0, stack limit = 0xc08c42e8)  
Stack: (0xc08c5f10 to 0xc08c6000)   
5f00: c08c5f34 c08c5f20 c05240bc c0523ad8   
5f20:  c08dcc2c c08c5f4c c08c5f38 c0524740 c0524084 0012 c08dcc2c   
5f40: c08c5f64 c08c5f50 c0524d28 c052463c c08dcc2c  c08c5f84 c08c5f68   
5f60: c0523e14 c0524ca4 c090ae5c c08e4e30 c08e4e30 c050c014 c08c5f94 c08c5f88   
5f80: c05241d0 c0523df0 c08c5fac c08c5f98 c000e530 c052417c c090a200 c050c018   
5fa0: c08c5fbc c08c5fb0 c0013894 c000e460 c08c5fcc c08c5fc0 c000b438 c001386c   
5fc0: c08c5ff4 c08c5fd0 c0008a6c c000b40c c00086b8   c050c018   
5fe0: 10c53c7d c090a5a0  c08c5ff8 80008034 c0008914     
Backtrace:  
[c0523acc] (omap_hwmod_readl+0x0/0x18) from [c05240bc] (_update_sysc_cache+)
[c0524078] (_update_sysc_cache+0x0/0x74) from [c0524740] (_enable+0x110/0x1)
 r4:c08dcc2c r3:
[c0524630] (_enable+0x0/0x134) from [c0524d28] (_setup+0x90/0x100)  
 r4:c08dcc2c r3:0012
[c0524c98] (_setup+0x0/0x100) from [c0523e14] (omap_hwmod_for_each+0x30/0x7)
 r5: r4:c08dcc2c
[c0523de4] (omap_hwmod_for_each+0x0/0x78) from [c05241d0] (omap_hwmod_late_)
 r6:c050c014 r5:c08e4e30 r4:c08e4e30 r3:c090ae5c
[c0524170] (omap_hwmod_late_init+0x0/0x8c) from [c000e530] (omap2_init_comm)
[c000e454] (omap2_init_common_hw+0x0/0x194) from [c0013894] (omap_zoom_init)
 r5:c050c018 r4:c090a200
[c0013860] (omap_zoom_init_irq+0x0/0x50) from [c000b438] (init_IRQ+0x38/0x4)
[c000b400] (init_IRQ+0x0/0x48) from [c0008a6c] (start_kernel+0x164/0x2d0)   
[c0008908] (start_kernel+0x0/0x2d0) from [80008034] (0x80008034)
 r5:c090a5a0 r4:10c53c7d
Code: e1a0c00d e92dd800 e24cb004 e5903038 (e7910003)

--
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/uart][PATCH 2/6] Serial: Add UART4 hwmod data.

2010-05-20 Thread Govindraj.R

Introduce UART4 hwmod data for OMAP3630

Cc: Kevin Hilman khil...@deeprootsystems.com
Signed-off-by: Govindraj.R govindraj.r...@ti.com
---
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |   54 
 arch/arm/mach-omap2/prcm-common.h  |2 +
 arch/arm/plat-omap/include/plat/dma.h  |2 +
 arch/arm/plat-omap/include/plat/irqs.h |2 +
 4 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c 
b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 5f74c34..079a65e 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -86,6 +86,7 @@ static struct omap_hwmod omap3xxx_l4_wkup_hwmod;
 static struct omap_hwmod omap3xxx_uart1_hwmod;
 static struct omap_hwmod omap3xxx_uart2_hwmod;
 static struct omap_hwmod omap3xxx_uart3_hwmod;
+static struct omap_hwmod omap3xxx_uart4_hwmod;
 static struct omap_hwmod omap3xxx_mmc1_hwmod;
 static struct omap_hwmod omap3xxx_mmc2_hwmod;
 static struct omap_hwmod omap3xxx_mmc3_hwmod;
@@ -151,6 +152,24 @@ static struct omap_hwmod_ocp_if omap3_l4_per__uart3 = {
.user   = OCP_USER_MPU | OCP_USER_SDMA,
 };

+/* L4 PER - UART4 interface */
+static struct omap_hwmod_addr_space omap3xxx_uart4_addr_space[] = {
+   {
+   .pa_start   = OMAP3_UART4_BASE,
+   .pa_end = OMAP3_UART4_BASE + SZ_1K - 1,
+   .flags  = ADDR_MAP_ON_INIT | ADDR_TYPE_RT,
+   },
+};
+
+static struct omap_hwmod_ocp_if omap3_l4_per__uart4 = {
+   .master = omap3xxx_l4_per_hwmod,
+   .slave  = omap3xxx_uart4_hwmod,
+   .clk= uart4_ick,
+   .addr   = omap3xxx_uart4_addr_space,
+   .addr_cnt   = ARRAY_SIZE(omap3xxx_uart4_addr_space),
+   .user   = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
 /* L4 CORE - MMC1 interface */
 static struct omap_hwmod_addr_space omap3xxx_mmc1_addr_space[] = {
{
@@ -257,6 +276,7 @@ static struct omap_hwmod_ocp_if *omap3xxx_l4_per_slaves[] = 
{
 /* Master interfaces on the L4_PER interconnect */
 static struct omap_hwmod_ocp_if *omap3xxx_l4_per_masters[] = {
omap3_l4_per__uart3,
+   omap3_l4_per__uart4,
 };

 /* L4 PER */
@@ -425,6 +445,40 @@ static struct omap_hwmod omap3xxx_uart3_hwmod = {
.omap_chip  = OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
 };

+/* UART4 */
+
+static struct omap_hwmod_irq_info uart4_mpu_irqs[] = {
+   { .irq = INT_36XX_UART4_IRQ, },
+};
+
+static struct omap_hwmod_dma_info uart4_sdma_chs[] = {
+   { .name = rx, .dma_ch = OMAP36XX_DMA_UART4_RX, },
+   { .name = tx, .dma_ch = OMAP36XX_DMA_UART4_TX, },
+};
+
+static struct omap_hwmod_ocp_if *omap3xxx_uart4_slaves[] = {
+   omap3_l4_per__uart4,
+};
+
+static struct omap_hwmod omap3xxx_uart4_hwmod = {
+   .name   = uart4,
+   .mpu_irqs   = uart4_mpu_irqs,
+   .mpu_irqs_cnt   = ARRAY_SIZE(uart4_mpu_irqs),
+   .sdma_chs   = uart4_sdma_chs,
+   .sdma_chs_cnt   = ARRAY_SIZE(uart4_sdma_chs),
+   .main_clk   = uart4_fck,
+   .prcm   = {
+   .omap2 = {
+   .prcm_reg_id = 1,
+   .module_bit = OMAP3630_EN_UART4_SHIFT,
+   },
+   },
+   .slaves = omap3xxx_uart4_slaves,
+   .slaves_cnt = ARRAY_SIZE(omap3xxx_uart4_slaves),
+   .class  = uart_class,
+   .omap_chip  = OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1),
+};
+
 /* MMC/SD/SDIO common */

 static struct omap_hwmod_class_sysconfig mmc_sysc = {
diff --git a/arch/arm/mach-omap2/prcm-common.h 
b/arch/arm/mach-omap2/prcm-common.h
index 90f603d..0fc20c9 100644
--- a/arch/arm/mach-omap2/prcm-common.h
+++ b/arch/arm/mach-omap2/prcm-common.h
@@ -390,6 +390,8 @@
 #define OMAP3430_EN_MPU_SHIFT  1

 /* CM_FCLKEN_PER, CM_ICLKEN_PER, PM_WKEN_PER shared bits */
+#define OMAP3630_EN_UART4  (1  18)
+#define OMAP3630_EN_UART4_SHIFT18
 #define OMAP3430_EN_GPIO6  (1  17)
 #define OMAP3430_EN_GPIO6_SHIFT17
 #define OMAP3430_EN_GPIO5  (1  16)
diff --git a/arch/arm/plat-omap/include/plat/dma.h 
b/arch/arm/plat-omap/include/plat/dma.h
index 02232ca..105bdb5 100644
--- a/arch/arm/plat-omap/include/plat/dma.h
+++ b/arch/arm/plat-omap/include/plat/dma.h
@@ -319,6 +319,8 @@
 #define OMAP34XX_DMA_USIM_TX   79  /* S_DMA_78 */
 #define OMAP34XX_DMA_USIM_RX   80  /* S_DMA_79 */

+#define OMAP36XX_DMA_UART4_TX  81  /* S_DMA_80 */
+#define OMAP36XX_DMA_UART4_RX  82  /* S_DMA_81 */
 
/**/

 #define OMAP1_DMA_TOUT_IRQ (1  0)
diff --git a/arch/arm/plat-omap/include/plat/irqs.h 
b/arch/arm/plat-omap/include/plat/irqs.h
index 4017019..1732cca 100644
---