* [RFC v2][PATCH 0/5] OMAP3630: UART4 startup
@ 2010-02-26 15:53 Sergio Aguirre
2010-02-26 15:53 ` [RFC v2][PATCH 1/5] ARM: OMAP3630: PRCM: Add UART4 control bits Sergio Aguirre
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Sergio Aguirre @ 2010-02-26 15:53 UTC (permalink / raw)
To: linux-omap; +Cc: Sergio Aguirre
Hi,
This is the v2 of the RFC for UART4 addition for 3630 chips.
Changes with respect to v1 [1]:
- Added AUTOIDLE handling.
- Added respective entries to prcm_setup_regs.
Indirect dependencies:
- Tested with Thomas Weber's patch [2].
Known issues:
- After enabling earlyprintk in 3630sdp, this is shown in the logs
during bootup:
--- LOG START ---
Unhandled fault: imprecise external abort (0x1c06) at 0xc000e71c
Internal error: : 1c06 [#1]
last sysfs file:
Modules linked in:
CPU: 0 Not tainted (2.6.33-rc8-07945-gac969e9 #13)
PC is at init_timer_key+0x0/0x1c
LR is at omap_serial_init_port+0xdc/0x2d4
pc : [<c005cee0>] lr : [<c000e54c>] psr: 60000013
sp : cf823f70 ip : d0800000 fp : c0381b68
r10: c0381ed0 r9 : 00000360 r8 : c0381ec8
r7 : 00000015 r6 : 00000000 r5 : 00000020 r4 : c0381b08
r3 : c0035db8 r2 : 00000000 r1 : 00000000 r0 : c0381ed0
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c5387f Table: 80004019 DAC: 00000017
Process swapper (pid: 1, stack limit = 0xcf8222e8)
Stack: (0xcf823f70 to 0xcf824000)
3f60: 00000003 fb020000 c0381aa8 00000004
3f80: 00000004 c000b380 00000000 00000000 00000000 00000000 00000000 c000e76c
3fa0: c00232e4 00000000 c000b380 c000fd78 c00232e4 c000fca4 c00232e4 c000b398
3fc0: c00232e4 c002b33c 00000031 00000000 00000000 00000192 00000000 c00232e4
3fe0: 00000000 00000000 00000000 c0008578 00000000 c002cdbc 00000000 00000000
[<c005cee0>] (init_timer_key+0x0/0x1c) from [<c000e54c>] (omap_serial_init_port+0xdc/0x2d4)
[<c000e54c>] (omap_serial_init_port+0xdc/0x2d4) from [<c000e76c>] (omap_serial_init+0x28/0x34)
[<c000e76c>] (omap_serial_init+0x28/0x34) from [<c000fd78>] (zoom_peripherals_init+0x44/0x68)
[<c000fd78>] (zoom_peripherals_init+0x44/0x68) from [<c000fca4>] (omap_sdp_init+0x14/0x50)
[<c000fca4>] (omap_sdp_init+0x14/0x50) from [<c000b398>] (customize_machine+0x18/0x24)
[<c000b398>] (customize_machine+0x18/0x24) from [<c002b33c>] (do_one_initcall+0x5c/0x1b4)
[<c002b33c>] (do_one_initcall+0x5c/0x1b4) from [<c0008578>] (kernel_init+0x90/0x10c)
[<c0008578>] (kernel_init+0x90/0x10c) from [<c002cdbc>] (kernel_thread_exit+0x0/0x8)
Code: e5801004 e5831000 e5813004 e12fff1e (e3a03000)
---[ end trace 1b75b31a2719ed1c ]---
Kernel panic - not syncing: Attempted to kill init!
--- LOG END ---
Detailed patchlist summary:
Sergio Aguirre (5):
ARM: OMAP3630: PRCM: Add UART4 control bits
OMAP clock: Add UART4 autoidle bit for 3630
OMAP clock: Add uart4_ick/fck definitions for 3630
OMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs
omap3: serial: Add uart4 wakeup handling
arch/arm/mach-omap2/clock3xxx_data.c | 22 ++++++++++++++++++++++
arch/arm/mach-omap2/cm-regbits-34xx.h | 2 ++
arch/arm/mach-omap2/pm34xx.c | 8 ++++++--
arch/arm/mach-omap2/prcm-common.h | 4 ++++
arch/arm/mach-omap2/serial.c | 4 ++++
5 files changed, 38 insertions(+), 2 deletions(-)
Regards,
Sergio
[1] http://marc.info/?l=linux-omap&m=126710887505294&w=2
[2] http://marc.info/?l=linux-kernel&m=126709078514087&w=2
^ permalink raw reply [flat|nested] 8+ messages in thread* [RFC v2][PATCH 1/5] ARM: OMAP3630: PRCM: Add UART4 control bits 2010-02-26 15:53 [RFC v2][PATCH 0/5] OMAP3630: UART4 startup Sergio Aguirre @ 2010-02-26 15:53 ` Sergio Aguirre 2010-02-26 15:53 ` [RFC v2][PATCH 2/5] OMAP clock: Add UART4 autoidle bit for 3630 Sergio Aguirre ` (3 subsequent siblings) 4 siblings, 0 replies; 8+ messages in thread From: Sergio Aguirre @ 2010-02-26 15:53 UTC (permalink / raw) To: linux-omap; +Cc: Sergio Aguirre This bits are exclusive of omap 36xx family of chips. Signed-off-by: Sergio Aguirre <saaguirre@ti.com> --- arch/arm/mach-omap2/prcm-common.h | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/prcm-common.h b/arch/arm/mach-omap2/prcm-common.h index 90f603d..c4e7bcb 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_SHIFT 18 #define OMAP3430_EN_GPIO6 (1 << 17) #define OMAP3430_EN_GPIO6_SHIFT 17 #define OMAP3430_EN_GPIO5 (1 << 16) @@ -430,6 +432,8 @@ #define OMAP3430_EN_MCBSP2_SHIFT 0 /* CM_IDLEST_PER, PM_WKST_PER shared bits */ +#define OMAP3630_ST_UART4_SHIFT 18 +#define OMAP3630_ST_UART4_MASK (1 << 18) #define OMAP3430_ST_GPIO6_SHIFT 17 #define OMAP3430_ST_GPIO6_MASK (1 << 17) #define OMAP3430_ST_GPIO5_SHIFT 16 -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [RFC v2][PATCH 2/5] OMAP clock: Add UART4 autoidle bit for 3630 2010-02-26 15:53 [RFC v2][PATCH 0/5] OMAP3630: UART4 startup Sergio Aguirre 2010-02-26 15:53 ` [RFC v2][PATCH 1/5] ARM: OMAP3630: PRCM: Add UART4 control bits Sergio Aguirre @ 2010-02-26 15:53 ` Sergio Aguirre 2010-02-26 18:18 ` Paul Walmsley 2010-02-26 15:53 ` [RFC v2][PATCH 3/5] OMAP clock: Add uart4_ick/fck definitions " Sergio Aguirre ` (2 subsequent siblings) 4 siblings, 1 reply; 8+ messages in thread From: Sergio Aguirre @ 2010-02-26 15:53 UTC (permalink / raw) To: linux-omap; +Cc: Sergio Aguirre Signed-off-by: Sergio Aguirre <saaguirre@ti.com> --- arch/arm/mach-omap2/cm-regbits-34xx.h | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/cm-regbits-34xx.h b/arch/arm/mach-omap2/cm-regbits-34xx.h index a3a3ca0..834b671 100644 --- a/arch/arm/mach-omap2/cm-regbits-34xx.h +++ b/arch/arm/mach-omap2/cm-regbits-34xx.h @@ -649,6 +649,8 @@ #define OMAP3430_ST_MCBSP2_MASK (1 << 0) /* CM_AUTOIDLE_PER */ +#define OMAP3630_AUTO_UART4 (1 << 18) +#define OMAP3630_AUTO_UART4_SHIFT 18 #define OMAP3430_AUTO_GPIO6 (1 << 17) #define OMAP3430_AUTO_GPIO6_SHIFT 17 #define OMAP3430_AUTO_GPIO5 (1 << 16) -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [RFC v2][PATCH 2/5] OMAP clock: Add UART4 autoidle bit for 3630 2010-02-26 15:53 ` [RFC v2][PATCH 2/5] OMAP clock: Add UART4 autoidle bit for 3630 Sergio Aguirre @ 2010-02-26 18:18 ` Paul Walmsley 0 siblings, 0 replies; 8+ messages in thread From: Paul Walmsley @ 2010-02-26 18:18 UTC (permalink / raw) To: Sergio Aguirre; +Cc: linux-omap On Fri, 26 Feb 2010, Sergio Aguirre wrote: > Signed-off-by: Sergio Aguirre <saaguirre@ti.com> This patch is missing a patch description. It also should be combined with your patch #1. - Paul > --- > arch/arm/mach-omap2/cm-regbits-34xx.h | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-omap2/cm-regbits-34xx.h b/arch/arm/mach-omap2/cm-regbits-34xx.h > index a3a3ca0..834b671 100644 > --- a/arch/arm/mach-omap2/cm-regbits-34xx.h > +++ b/arch/arm/mach-omap2/cm-regbits-34xx.h > @@ -649,6 +649,8 @@ > #define OMAP3430_ST_MCBSP2_MASK (1 << 0) > > /* CM_AUTOIDLE_PER */ > +#define OMAP3630_AUTO_UART4 (1 << 18) > +#define OMAP3630_AUTO_UART4_SHIFT 18 > #define OMAP3430_AUTO_GPIO6 (1 << 17) > #define OMAP3430_AUTO_GPIO6_SHIFT 17 > #define OMAP3430_AUTO_GPIO5 (1 << 16) > -- > 1.6.3.3 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 8+ messages in thread
* [RFC v2][PATCH 3/5] OMAP clock: Add uart4_ick/fck definitions for 3630 2010-02-26 15:53 [RFC v2][PATCH 0/5] OMAP3630: UART4 startup Sergio Aguirre 2010-02-26 15:53 ` [RFC v2][PATCH 1/5] ARM: OMAP3630: PRCM: Add UART4 control bits Sergio Aguirre 2010-02-26 15:53 ` [RFC v2][PATCH 2/5] OMAP clock: Add UART4 autoidle bit for 3630 Sergio Aguirre @ 2010-02-26 15:53 ` Sergio Aguirre 2010-02-26 15:53 ` [RFC v2][PATCH 4/5] OMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs Sergio Aguirre 2010-02-26 15:53 ` [RFC v2][PATCH 5/5] omap3: serial: Add uart4 wakeup handling Sergio Aguirre 4 siblings, 0 replies; 8+ messages in thread From: Sergio Aguirre @ 2010-02-26 15:53 UTC (permalink / raw) To: linux-omap; +Cc: Sergio Aguirre This is only valid for omap 36xx family of chips. Signed-off-by: Sergio Aguirre <saaguirre@ti.com> --- arch/arm/mach-omap2/clock3xxx_data.c | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/clock3xxx_data.c b/arch/arm/mach-omap2/clock3xxx_data.c index d5153b6..e8afaa6 100644 --- a/arch/arm/mach-omap2/clock3xxx_data.c +++ b/arch/arm/mach-omap2/clock3xxx_data.c @@ -2541,6 +2541,16 @@ static struct clk uart3_fck = { .recalc = &followparent_recalc, }; +static struct clk uart4_fck = { + .name = "uart4_fck", + .ops = &clkops_omap2_dflt_wait, + .parent = &per_48m_fck, + .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), + .enable_bit = OMAP3630_EN_UART4_SHIFT, + .clkdm_name = "per_clkdm", + .recalc = &followparent_recalc, +}; + static struct clk gpt2_fck = { .name = "gpt2_fck", .ops = &clkops_omap2_dflt_wait, @@ -2791,6 +2801,16 @@ static struct clk uart3_ick = { .recalc = &followparent_recalc, }; +static struct clk uart4_ick = { + .name = "uart4_ick", + .ops = &clkops_omap2_dflt_wait, + .parent = &per_l4_ick, + .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_ICLKEN), + .enable_bit = OMAP3630_EN_UART4_SHIFT, + .clkdm_name = "per_clkdm", + .recalc = &followparent_recalc, +}; + static struct clk gpt9_ick = { .name = "gpt9_ick", .ops = &clkops_omap2_dflt_wait, @@ -3420,6 +3440,7 @@ static struct omap_clk omap3xxx_clks[] = { CLK(NULL, "per_96m_fck", &per_96m_fck, CK_3XXX), CLK(NULL, "per_48m_fck", &per_48m_fck, CK_3XXX), CLK(NULL, "uart3_fck", &uart3_fck, CK_3XXX), + CLK(NULL, "uart4_fck", &uart4_fck, CK_36XX), CLK(NULL, "gpt2_fck", &gpt2_fck, CK_3XXX), CLK(NULL, "gpt3_fck", &gpt3_fck, CK_3XXX), CLK(NULL, "gpt4_fck", &gpt4_fck, CK_3XXX), @@ -3443,6 +3464,7 @@ static struct omap_clk omap3xxx_clks[] = { CLK(NULL, "gpio2_ick", &gpio2_ick, CK_3XXX), CLK(NULL, "wdt3_ick", &wdt3_ick, CK_3XXX), CLK(NULL, "uart3_ick", &uart3_ick, CK_3XXX), + CLK(NULL, "uart4_ick", &uart4_ick, CK_36XX), CLK(NULL, "gpt9_ick", &gpt9_ick, CK_3XXX), CLK(NULL, "gpt8_ick", &gpt8_ick, CK_3XXX), CLK(NULL, "gpt7_ick", &gpt7_ick, CK_3XXX), -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [RFC v2][PATCH 4/5] OMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs 2010-02-26 15:53 [RFC v2][PATCH 0/5] OMAP3630: UART4 startup Sergio Aguirre ` (2 preceding siblings ...) 2010-02-26 15:53 ` [RFC v2][PATCH 3/5] OMAP clock: Add uart4_ick/fck definitions " Sergio Aguirre @ 2010-02-26 15:53 ` Sergio Aguirre 2010-02-26 15:53 ` [RFC v2][PATCH 5/5] omap3: serial: Add uart4 wakeup handling Sergio Aguirre 4 siblings, 0 replies; 8+ messages in thread From: Sergio Aguirre @ 2010-02-26 15:53 UTC (permalink / raw) To: linux-omap; +Cc: Sergio Aguirre Signed-off-by: Sergio Aguirre <saaguirre@ti.com> --- arch/arm/mach-omap2/pm34xx.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index fee2efb..81082f2 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -734,6 +734,9 @@ static void __init omap3_d2d_idle(void) static void __init prcm_setup_regs(void) { + u32 omap3630_auto_uart4 = cpu_is_omap3630() ? OMAP3630_AUTO_UART4 : 0; + u32 omap3630_en_uart4 = cpu_is_omap3630() ? OMAP3630_EN_UART4 : 0; + /* XXX Reset all wkdeps. This should be done when initializing * powerdomains */ prm_write_mod_reg(0, OMAP3430_IVA2_MOD, PM_WKDEP); @@ -820,6 +823,7 @@ static void __init prcm_setup_regs(void) CM_AUTOIDLE); cm_write_mod_reg( + omap3630_auto_uart4 | OMAP3430_AUTO_GPIO6 | OMAP3430_AUTO_GPIO5 | OMAP3430_AUTO_GPIO4 | @@ -899,14 +903,14 @@ static void __init prcm_setup_regs(void) OMAP3430_EN_GPIO4 | OMAP3430_EN_GPIO5 | OMAP3430_EN_GPIO6 | OMAP3430_EN_UART3 | OMAP3430_EN_MCBSP2 | OMAP3430_EN_MCBSP3 | - OMAP3430_EN_MCBSP4, + OMAP3430_EN_MCBSP4 | omap3630_en_uart4, OMAP3430_PER_MOD, PM_WKEN); /* and allow them to wake up MPU */ prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2 | OMAP3430_EN_GPIO3 | OMAP3430_GRPSEL_GPIO4 | OMAP3430_EN_GPIO5 | OMAP3430_GRPSEL_GPIO6 | OMAP3430_EN_UART3 | OMAP3430_EN_MCBSP2 | OMAP3430_EN_MCBSP3 | - OMAP3430_EN_MCBSP4, + OMAP3430_EN_MCBSP4 | omap3630_en_uart4, OMAP3430_PER_MOD, OMAP3430_PM_MPUGRPSEL); /* Don't attach IVA interrupts */ -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [RFC v2][PATCH 5/5] omap3: serial: Add uart4 wakeup handling 2010-02-26 15:53 [RFC v2][PATCH 0/5] OMAP3630: UART4 startup Sergio Aguirre ` (3 preceding siblings ...) 2010-02-26 15:53 ` [RFC v2][PATCH 4/5] OMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs Sergio Aguirre @ 2010-02-26 15:53 ` Sergio Aguirre 2010-02-26 19:43 ` Kevin Hilman 4 siblings, 1 reply; 8+ messages in thread From: Sergio Aguirre @ 2010-02-26 15:53 UTC (permalink / raw) To: linux-omap; +Cc: Sergio Aguirre Signed-off-by: Sergio Aguirre <saaguirre@ti.com> --- arch/arm/mach-omap2/serial.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index da77930..6e1b17e 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -475,6 +475,10 @@ static void omap_uart_idle_init(struct omap_uart_state *uart) wk_mask = OMAP3430_ST_UART3_MASK; padconf = 0x19e; break; + case 3: + wk_mask = OMAP3630_ST_UART4_MASK; + padconf = 0x0d2; + break; } uart->wk_mask = wk_mask; uart->padconf = padconf; -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [RFC v2][PATCH 5/5] omap3: serial: Add uart4 wakeup handling 2010-02-26 15:53 ` [RFC v2][PATCH 5/5] omap3: serial: Add uart4 wakeup handling Sergio Aguirre @ 2010-02-26 19:43 ` Kevin Hilman 0 siblings, 0 replies; 8+ messages in thread From: Kevin Hilman @ 2010-02-26 19:43 UTC (permalink / raw) To: Sergio Aguirre; +Cc: linux-omap Sergio Aguirre <saaguirre@ti.com> writes: This one needs a better changelog also. Otherwise, change looks right. Kevin > Signed-off-by: Sergio Aguirre <saaguirre@ti.com> > --- > arch/arm/mach-omap2/serial.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c > index da77930..6e1b17e 100644 > --- a/arch/arm/mach-omap2/serial.c > +++ b/arch/arm/mach-omap2/serial.c > @@ -475,6 +475,10 @@ static void omap_uart_idle_init(struct omap_uart_state *uart) > wk_mask = OMAP3430_ST_UART3_MASK; > padconf = 0x19e; > break; > + case 3: > + wk_mask = OMAP3630_ST_UART4_MASK; > + padconf = 0x0d2; > + break; > } > uart->wk_mask = wk_mask; > uart->padconf = padconf; > -- > 1.6.3.3 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-02-26 19:43 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-02-26 15:53 [RFC v2][PATCH 0/5] OMAP3630: UART4 startup Sergio Aguirre 2010-02-26 15:53 ` [RFC v2][PATCH 1/5] ARM: OMAP3630: PRCM: Add UART4 control bits Sergio Aguirre 2010-02-26 15:53 ` [RFC v2][PATCH 2/5] OMAP clock: Add UART4 autoidle bit for 3630 Sergio Aguirre 2010-02-26 18:18 ` Paul Walmsley 2010-02-26 15:53 ` [RFC v2][PATCH 3/5] OMAP clock: Add uart4_ick/fck definitions " Sergio Aguirre 2010-02-26 15:53 ` [RFC v2][PATCH 4/5] OMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs Sergio Aguirre 2010-02-26 15:53 ` [RFC v2][PATCH 5/5] omap3: serial: Add uart4 wakeup handling Sergio Aguirre 2010-02-26 19:43 ` Kevin Hilman
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.