omap DEBUG_LL and multiboot changes for 2.6.34
Subsystems (16)
Tony Lindgren
maintainercover omap DEBUG_LL and multiboot changes for 2.6.34
Hi all,
These patches clean up the DEBUG_LL code for mach-omap1 and mach-omap2 and then makes multiboot work for mach-omap2.
Note that these patches currently allow only multiboot for 2420 + 36xx. Adding 2430 and omap4 needs further work.
Also note that in order to boot multiomap configuration on 2420, CONFIG_CPU_32v6K must not be set as posted earlier in patch:
http://lists.arm.linux.org.uk/lurker/message/20100126.193748.e3787171.en.html
Regards,
Tony
---
Tony Lindgren (14):
omap: Clean the serial port defines
omap: Make uncompress code and DEBUG_LL code generic
omap: Remove old DEBUG_LL serial port options
omap2/3: Make get_irqnr_and_base common for mach-omap2 multiboot omap2/3: Multiboot compile fixes to compile in omap2 and omap3
omap: Fix dmtimer.c for multi-omap boot
omap2/3/4: Fix omap2_map_common_io for multi-omap
omap2/3/4: Fix mbox init for multi-omap
omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2
omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3
omap2/3/4: Replace orred CONFIG_ARCH_OMAP2/3/4 with CONFIG_ARCH_OMAP2PLUS omap2/3: Fix initcalls for multi-omap
omap2/3: Fix powerdomain init for multiomap
omap2/3: Update omap3_defconfig to build in all the 2420 based boards
arch/arm/configs/omap3_defconfig | 174 ++++++++++++++++++----- arch/arm/mach-omap1/include/mach/debug-macro.S | 88 ++++++++++-- arch/arm/mach-omap1/serial.c | 6 - arch/arm/mach-omap2/Kconfig | 55 +++---- arch/arm/mach-omap2/Makefile | 10 + arch/arm/mach-omap2/board-2430sdp.c | 2 arch/arm/mach-omap2/board-3430sdp.c | 2 arch/arm/mach-omap2/board-3630sdp.c | 4 - arch/arm/mach-omap2/board-4430sdp.c | 2 arch/arm/mach-omap2/board-am3517evm.c | 2 arch/arm/mach-omap2/board-apollon.c | 2 arch/arm/mach-omap2/board-cm-t35.c | 2 arch/arm/mach-omap2/board-generic.c | 2 arch/arm/mach-omap2/board-h4.c | 2 arch/arm/mach-omap2/board-igep0020.c | 2 arch/arm/mach-omap2/board-ldp.c | 2 arch/arm/mach-omap2/board-n8x0.c | 2 arch/arm/mach-omap2/board-omap3beagle.c | 2 arch/arm/mach-omap2/board-omap3evm.c | 2 arch/arm/mach-omap2/board-omap3pandora.c | 2 arch/arm/mach-omap2/board-omap3touchbook.c | 2 arch/arm/mach-omap2/board-overo.c | 2 arch/arm/mach-omap2/board-rx51.c | 2 arch/arm/mach-omap2/board-zoom2.c | 2 arch/arm/mach-omap2/board-zoom3.c | 4 - arch/arm/mach-omap2/clock.c | 26 +++ arch/arm/mach-omap2/clock.h | 35 +++++ arch/arm/mach-omap2/clock2xxx.c | 6 - arch/arm/mach-omap2/clock2xxx_data.c | 4 - arch/arm/mach-omap2/clock34xx.c | 6 - arch/arm/mach-omap2/clock34xx_data.c | 4 - arch/arm/mach-omap2/clock44xx.c | 4 - arch/arm/mach-omap2/clock44xx_data.c | 4 - arch/arm/mach-omap2/clockdomains.h | 12 +- arch/arm/mach-omap2/devices.c | 30 +++- arch/arm/mach-omap2/emu.c | 3 arch/arm/mach-omap2/include/mach/debug-macro.S | 130 +++++++++++++---- arch/arm/mach-omap2/include/mach/entry-macro.S | 77 ++++++++-- arch/arm/mach-omap2/io.c | 68 ++++++--- arch/arm/mach-omap2/mcbsp.c | 2 arch/arm/mach-omap2/mux.c | 6 - arch/arm/mach-omap2/mux.h | 2 arch/arm/mach-omap2/omap_hwmod_34xx.h | 2 arch/arm/mach-omap2/opp2xxx.h | 5 + arch/arm/mach-omap2/powerdomains.h | 25 ++- arch/arm/mach-omap2/powerdomains24xx.h | 4 - arch/arm/mach-omap2/powerdomains34xx.h | 4 - arch/arm/mach-omap2/serial.c | 15 +- arch/arm/plat-omap/Kconfig | 40 ++--- arch/arm/plat-omap/common.c | 31 ++++ arch/arm/plat-omap/devices.c | 2 arch/arm/plat-omap/dma.c | 3 arch/arm/plat-omap/dmtimer.c | 102 ++++++-------- arch/arm/plat-omap/gpio.c | 76 ++++------ arch/arm/plat-omap/i2c.c | 8 + arch/arm/plat-omap/include/plat/clock.h | 6 - arch/arm/plat-omap/include/plat/common.h | 6 + arch/arm/plat-omap/include/plat/control.h | 3 arch/arm/plat-omap/include/plat/cpu.h | 14 +- arch/arm/plat-omap/include/plat/io.h | 33 ++++ arch/arm/plat-omap/include/plat/mcbsp.h | 9 + arch/arm/plat-omap/include/plat/memory.h | 3 arch/arm/plat-omap/include/plat/menelaus.h | 2 arch/arm/plat-omap/include/plat/mux.h | 2 arch/arm/plat-omap/include/plat/omap16xx.h | 74 +++++----- arch/arm/plat-omap/include/plat/omap24xx.h | 6 - arch/arm/plat-omap/include/plat/omap34xx.h | 6 - arch/arm/plat-omap/include/plat/serial.h | 70 ++++++--- arch/arm/plat-omap/include/plat/uncompress.h | 181 ++++++++++++++++++------ arch/arm/plat-omap/mcbsp.c | 6 - arch/arm/plat-omap/sram.c | 2 drivers/char/hw_random/Kconfig | 2 drivers/mfd/Kconfig | 2 drivers/net/smc911x.h | 4 - drivers/spi/Kconfig | 2 drivers/spi/omap2_mcspi.c | 2 drivers/usb/Kconfig | 2 drivers/usb/host/ehci-hcd.c | 2 drivers/usb/musb/Kconfig | 6 - drivers/usb/musb/musb_core.c | 2 drivers/usb/musb/musb_core.h | 2 drivers/w1/masters/Kconfig | 2 drivers/watchdog/Kconfig | 2 sound/soc/omap/omap-mcbsp.c | 6 - sound/soc/omap/omap-mcbsp.h | 2 85 files changed, 1050 insertions(+), 524 deletions(-)
Signature · 1 line
Signature
Tony Lindgren
maintainerPATCH 1/14 omap: Clean the serial port defines
This way we don't have conflicts with the defines with compiling in multiple omaps. Set the addresses for uarts in struct omap_globals for the early serial init code.
--- arch/arm/mach-omap1/include/mach/debug-macro.S | 16 +++-- arch/arm/mach-omap1/serial.c | 6 +- arch/arm/mach-omap2/board-3630sdp.c | 2 - arch/arm/mach-omap2/board-zoom3.c | 2 - arch/arm/mach-omap2/include/mach/debug-macro.S | 15 ++--- arch/arm/mach-omap2/serial.c | 15 ++++- arch/arm/plat-omap/common.c | 29 ++++++++- arch/arm/plat-omap/include/plat/common.h | 6 ++ arch/arm/plat-omap/include/plat/omap16xx.h | 74 ++++++++++++------------ arch/arm/plat-omap/include/plat/serial.h | 45 ++++++++------- arch/arm/plat-omap/include/plat/uncompress.h | 7 +- 11 files changed, 130 insertions(+), 87 deletions(-)
arch/arm/mach-omap1/include/mach/debug-macro.S +10 -6
@@ -11,6 +11,10 @@ * */ +#include <linux/serial_reg.h> + +#include <plat/serial.h> + .macro addruart,rx mrc p15, 0, \rx, c1, c0 tst \rx, #1 @ MMU enabled?
@@ -30,13 +34,13 @@ .endm .macro busyuart,rd,rx -1001: ldrb \rd, [\rx, #(0x5 << 2)] @ OMAP-1510 and friends - and \rd, \rd, #0x60 - teq \rd, #0x60 +1001: ldrb \rd, [\rx, #(UART_LSR << OMAP_PORT_SHIFT)] + and \rd, \rd, #(UART_LSR_TEMT | UART_LSR_THRE) + teq \rd, #(UART_LSR_TEMT | UART_LSR_THRE) beq 1002f - ldrb \rd, [\rx, #(0x5 << 0)] @ OMAP-730 only - and \rd, \rd, #0x60 - teq \rd, #0x60 + ldrb \rd, [\rx, #(UART_LSR << OMAP7XX_PORT_SHIFT)] + and \rd, \rd, #(UART_LSR_TEMT | UART_LSR_THRE) + teq \rd, #(UART_LSR_TEMT | UART_LSR_THRE) bne 1001b 1002: .endm
arch/arm/mach-omap1/serial.c +3 -3
@@ -64,7 +64,7 @@ static void __init omap_serial_reset(struct plat_serial8250_port *p)static struct plat_serial8250_port serial_platform_data[] = { { - .mapbase =OMAP_UART1_BASE , + .mapbase =OMAP1_UART1_BASE , .irq =INT_UART1 , .flags =UPF_BOOT_AUTOCONF , .iotype =UPIO_MEM ,
@@ -72,7 +72,7 @@ static struct plat_serial8250_port serial_platform_data[] = { .uartclk = OMAP16XX_BASE_BAUD * 16, }, { - .mapbase = OMAP_UART2_BASE, + .mapbase = OMAP1_UART2_BASE, .irq = INT_UART2, .flags = UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM,
@@ -80,7 +80,7 @@ static struct plat_serial8250_port serial_platform_data[] = { .uartclk = OMAP16XX_BASE_BAUD * 16, }, { - .mapbase = OMAP_UART3_BASE, + .mapbase = OMAP1_UART3_BASE, .irq = INT_UART3, .flags = UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM,
arch/arm/mach-omap2/board-3630sdp.c +1 -1
@@ -68,7 +68,7 @@ static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {static void __init omap_sdp_map_io (void ) { -omap2_set_globals_343x (); +omap2_set_globals_36xx ();omap2_map_common_io (); }
arch/arm/mach-omap2/board-zoom3.c +1 -1
@@ -26,7 +26,7 @@static void __init omap_zoom_map_io (void ) { -omap2_set_globals_343x (); +omap2_set_globals_36xx ();omap2_map_common_io (); }
arch/arm/mach-omap2/include/mach/debug-macro.S +7 -8
@@ -11,6 +11,10 @@ * */ +#include <linux/serial_reg.h> + +#include <plat/serial.h> + .macro addruart,rx mrc p15, 0, \rx, c1, c0 tst \rx, #1 @ MMU enabled?
@@ -44,15 +48,10 @@ .endm .macro busyuart,rd,rx -1001: ldrb \rd, [\rx, #(0x5 << 2)] @ OMAP-1510 and friends - and \rd, \rd, #0x60 - teq \rd, #0x60 - beq 1002f - ldrb \rd, [\rx, #(0x5 << 0)] @ OMAP-730 only - and \rd, \rd, #0x60 - teq \rd, #0x60 +1001: ldrb \rd, [\rx, #(UART_LSR << OMAP_PORT_SHIFT)] + and \rd, \rd, #(UART_LSR_TEMT | UART_LSR_THRE) + teq \rd, #(UART_LSR_TEMT | UART_LSR_THRE) bne 1001b -1002: .endm .macro waituart,rd,rx
arch/arm/mach-omap2/serial.c +11 -4
@@ -74,7 +74,6 @@ static LIST_HEAD(uart_list);static struct plat_serial8250_port serial_platform_data0[] = { { - .mapbase =OMAP_UART1_BASE , .irq =72 , .flags =UPF_BOOT_AUTOCONF , .iotype =UPIO_MEM ,
@@ -87,7 +86,6 @@ static struct plat_serial8250_port serial_platform_data0[] = {static struct plat_serial8250_port serial_platform_data1[] = { { - .mapbase =OMAP_UART2_BASE , .irq =73 , .flags =UPF_BOOT_AUTOCONF , .iotype =UPIO_MEM ,
@@ -100,7 +98,6 @@ static struct plat_serial8250_port serial_platform_data1[] = {static struct plat_serial8250_port serial_platform_data2[] = { { - .mapbase =OMAP_UART3_BASE , .irq =74 , .flags =UPF_BOOT_AUTOCONF , .iotype =UPIO_MEM ,
@@ -114,7 +111,6 @@ static struct plat_serial8250_port serial_platform_data2[] = { #ifdef CONFIG_ARCH_OMAP4 static struct plat_serial8250_port serial_platform_data3[] = { { - .mapbase = OMAP_UART4_BASE, .irq = 70, .flags = UPF_BOOT_AUTOCONF, .iotype = UPIO_MEM,
@@ -125,6 +121,17 @@ static struct plat_serial8250_port serial_platform_data3[] = { } };#endif + +void __init omap2_set_globals_uart (struct omap_globals *omap2_globals) +{ + serial_platform_data0[0 ].mapbase = omap2_globals->uart1_phys; + serial_platform_data1[0 ].mapbase = omap2_globals->uart2_phys; + serial_platform_data2[0 ].mapbase = omap2_globals->uart3_phys; +#ifdef CONFIG_ARCH_OMAP4 + serial_platform_data3[0 ].mapbase = omap2_globals->uart4_phys; +#endif +} +static inline unsigned int __serial_read_reg (struct uart_port *up,int offset) {
arch/arm/plat-omap/common.c +26 -3
@@ -34,6 +34,7 @@#include <plat/control.h> #include <plat/mux.h> #include <plat/fpga.h> +#include <plat/serial.h> #include <plat/clock.h>
@@ -245,6 +246,7 @@ static void __init __omap2_set_globals(struct omap_globals *omap2_globals)omap2_set_globals_sdrc (omap2_globals);omap2_set_globals_control (omap2_globals);omap2_set_globals_prcm (omap2_globals); + omap2_set_globals_uart(omap2_globals); }#endif
@@ -259,6 +261,9 @@ static struct omap_globals omap242x_globals = { .ctrl = OMAP2_L4_IO_ADDRESS(OMAP2420_CTRL_BASE), .prm = OMAP2_L4_IO_ADDRESS(OMAP2420_PRM_BASE), .cm = OMAP2_L4_IO_ADDRESS(OMAP2420_CM_BASE), + .uart1_phys = OMAP2_UART1_BASE, + .uart2_phys = OMAP2_UART2_BASE, + .uart3_phys = OMAP2_UART3_BASE, };void __init omap2_set_globals_242x (void )
@@ -277,6 +282,9 @@ static struct omap_globals omap243x_globals = { .ctrl = OMAP2_L4_IO_ADDRESS(OMAP243X_CTRL_BASE), .prm = OMAP2_L4_IO_ADDRESS(OMAP2430_PRM_BASE), .cm = OMAP2_L4_IO_ADDRESS(OMAP2430_CM_BASE), + .uart1_phys = OMAP2_UART1_BASE, + .uart2_phys = OMAP2_UART2_BASE, + .uart3_phys = OMAP2_UART3_BASE, };void __init omap2_set_globals_243x (void )
@@ -285,9 +293,9 @@ void __init omap2_set_globals_243x(void) }#endif -#if defined(CONFIG_ARCH_OMAP3430 ) +#if defined(CONFIG_ARCH_OMAP3 ) -static struct omap_globals omap343x_globals = { +static struct omap_globals omap3_globals = { .class =OMAP343X_CLASS , .tap =OMAP2_L4_IO_ADDRESS (0x4830A000 ), .sdrc = OMAP2_L3_IO_ADDRESS(OMAP343X_SDRC_BASE),
@@ -295,11 +303,21 @@ static struct omap_globals omap343x_globals = { .ctrl = OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE), .prm = OMAP2_L4_IO_ADDRESS(OMAP3430_PRM_BASE), .cm = OMAP2_L4_IO_ADDRESS(OMAP3430_CM_BASE), + .uart1_phys = OMAP3_UART1_BASE, + .uart2_phys = OMAP3_UART2_BASE, + .uart3_phys = OMAP3_UART3_BASE, };void __init omap2_set_globals_343x (void ) { -__omap2_set_globals (&omap343x_globals); +__omap2_set_globals (&omap3_globals); +} + +void __init omap2_set_globals_36xx (void ) +{ + omap3_globals.uart4_phys =OMAP3_UART4_BASE ; + +__omap2_set_globals (&omap3_globals); }#endif
@@ -311,6 +329,10 @@ static struct omap_globals omap4_globals = { .prm = OMAP2_L4_IO_ADDRESS(OMAP4430_PRM_BASE), .cm = OMAP2_L4_IO_ADDRESS(OMAP4430_CM_BASE), .cm2 = OMAP2_L4_IO_ADDRESS(OMAP4430_CM2_BASE), + .uart1_phys = OMAP4_UART1_BASE, + .uart2_phys = OMAP4_UART2_BASE, + .uart3_phys = OMAP4_UART3_BASE, + .uart4_phys = OMAP4_UART4_BASE, };void __init omap2_set_globals_443x (void )
@@ -318,6 +340,7 @@ void __init omap2_set_globals_443x(void)omap2_set_globals_tap (&omap4_globals);omap2_set_globals_control (&omap4_globals);omap2_set_globals_prcm (&omap4_globals); + omap2_set_globals_uart(&omap4_globals); }#endif
arch/arm/plat-omap/include/plat/common.h +6 -0
@@ -47,11 +47,16 @@ struct omap_globals {void __iomem *prm;/* Power and Reset Management */ void __iomem *cm;/* Clock Management */ void __iomem *cm2; +unsigned long uart1_phys; +unsigned long uart2_phys; +unsigned long uart3_phys; +unsigned long uart4_phys; };void omap2_set_globals_242x (void );void omap2_set_globals_243x (void );void omap2_set_globals_343x (void ); +void omap2_set_globals_36xx (void );void omap2_set_globals_443x (void );/* These get called from omap2_set_globals_xxxx(), do not call these */
@@ -59,6 +64,7 @@ void omap2_set_globals_tap(struct omap_globals *);void omap2_set_globals_sdrc (struct omap_globals *);void omap2_set_globals_control (struct omap_globals *);void omap2_set_globals_prcm (struct omap_globals *); +void omap2_set_globals_uart (struct omap_globals *);/** * omap_test_timeout - busy-loop, testing a condition
arch/arm/plat-omap/include/plat/omap16xx.h +37 -37
80 lines not on this page · raw message
arch/arm/plat-omap/include/plat/serial.h +24 -21
61 lines not on this page · raw message
arch/arm/plat-omap/include/plat/uncompress.h +4 -3
@@ -40,12 +40,13 @@ static void putc(int c)#endif #ifdef CONFIG_ARCH_OMAP +/* Will get removed in the next patch, set to OMAP3 to compile */ #ifdef CONFIG_OMAP_LL_DEBUG_UART3 - uart = (volatile u8 *)(OMAP_UART3_BASE ); + uart = (volatile u8 *)(OMAP3_UART3_BASE );#elif defined(CONFIG_OMAP_LL_DEBUG_UART2 ) - uart = (volatile u8 *)(OMAP_UART2_BASE ); + uart = (volatile u8 *)(OMAP3_UART2_BASE );#elif defined(CONFIG_OMAP_LL_DEBUG_UART1 ) - uart = (volatile u8 *)(OMAP_UART1_BASE ); + uart = (volatile u8 *)(OMAP3_UART1_BASE );#elif defined(CONFIG_OMAP_LL_DEBUG_NONE )return ;#else
Tony Lindgren
maintainerPATCH 2/14 omap: Make uncompress code and DEBUG_LL code generic
In reply to Tony LindgrenDefine arch_decomp_setup() the same way as some other architectures do. Use arch_id to configure the debug uart based on the machine_is by storing it into the uart scratchpad register for DEBUG_LL code to use.
Note that to avoid merge conflicts, this patch is using hardcoded register r1 until tmp register is being passed for all addruart macros.
--- arch/arm/mach-omap1/include/mach/debug-macro.S | 72 +++++++++ arch/arm/mach-omap2/include/mach/debug-macro.S | 117 +++++++++++++-- arch/arm/plat-omap/include/plat/serial.h | 33 ++++ arch/arm/plat-omap/include/plat/uncompress.h | 182 ++++++++++++++++++------ 4 files changed, 322 insertions(+), 82 deletions(-)
arch/arm/mach-omap1/include/mach/debug-macro.S +65 -7
@@ -15,18 +15,76 @@ #include <plat/serial.h> + .pushsection .data +omap_uart_phys: .word 0x0 +omap_uart_virt: .word 0x0 + .popsection + + /* + * Note that this code won't work if the bootloader passes + * a wrong machine ID number in r1. To debug, just hardcode + * the desired UART phys and virt addresses temporarily into + * the omap_uart_phys and omap_uart_virt above. + */ .macro addruart,rx + + /* Use omap_uart_phys/virt if already configured */ +9: mrc p15, 0, \rx, c1, c0 + tst \rx, #1 @ MMU enabled? + ldreq \rx, =omap_uart_phys @ physical base address + ldrne \rx, =omap_uart_virt @ virtual base + ldr \rx, [\rx, #0] + cmp \rx, #0 @ is port configured? + bne 99f @ already configured + + /* Check 7XX UART1 scratchpad register for uart to use */ + mrc p15, 0, \rx, c1, c0 + tst \rx, #1 @ MMU enabled? + moveq \rx, #0xff000000 @ physical base address + movne \rx, #0xfe000000 @ virtual base + orr \rx, \rx, #0x00fb0000 @ OMAP1UART1 + ldrb \rx, [\rx, #(UART_SCR << OMAP7XX_PORT_SHIFT)] + cmp \rx, #0 @ anything in 7XX scratchpad? + bne 10f @ found 7XX uart + + /* Check 15xx/16xx UART1 scratchpad register for uart to use */ mrc p15, 0, \rx, c1, c0 tst \rx, #1 @ MMU enabled? moveq \rx, #0xff000000 @ physical base address movne \rx, #0xfe000000 @ virtual base - orr \rx, \rx, #0x00fb0000 -#ifdef CONFIG_OMAP_LL_DEBUG_UART3 - orr \rx, \rx, #0x00009000 @ UART 3 -#endif -#if defined(CONFIG_OMAP_LL_DEBUG_UART2) || defined(CONFIG_OMAP_LL_DEBUG_UART3) - orr \rx, \rx, #0x00000800 @ UART 2 & 3 -#endif + orr \rx, \rx, #0x00fb0000 @ OMAP1UART1 + ldrb \rx, [\rx, #(UART_SCR << OMAP_PORT_SHIFT)] + + /* Select the UART to use based on the UART1 scratchpad value */ +10: cmp \rx, #0 @ no port configured? + beq 11f @ if none, try to use UART1 + cmp \rx, #OMAP1UART1 + beq 11f @ configure OMAP1UART1 + cmp \rx, #OMAP1UART2 + beq 12f @ configure OMAP1UART2 + cmp \rx, #OMAP1UART3 + beq 13f @ configure OMAP2UART3 + + /* Configure the UART offset from the phys/virt base */ +11: mov \rx, #0x00fb0000 @ OMAP1UART1 + b 98f +12: mov \rx, #0x00fb0000 @ OMAP1UART1 + orr \rx, \rx, #0x00000800 @ OMAP1UART2 + b 98f +13: mov \rx, #0x00fb0000 @ OMAP1UART1 + orr \rx, \rx, #0x00000800 @ OMAP1UART2 + orr \rx, \rx, #0x00009000 @ OMAP1UART3 + + /* Store both phys and virt address for the uart */ +98: add \rx, \rx, #0xff000000 @ phys base + ldr r1, =omap_uart_phys + str \rx, [r1, #0] + sub \rx, \rx, #0xff000000 @ phys base + add \rx, \rx, #0xfe000000 @ virt base + ldr r1, =omap_uart_virt + str \rx, [r1, #0] + b 9b +99: .endm .macro senduart,rd,rx
arch/arm/mach-omap2/include/mach/debug-macro.S +95 -22
134 lines not on this page · raw message
arch/arm/plat-omap/include/plat/serial.h +29 -4
@@ -26,24 +26,49 @@#define OMAP2_UART3_BASE 0x4806e000/* OMAP3 serial ports */ -#define OMAP3_UART1_BASE 0x4806a000 -#define OMAP3_UART2_BASE 0x4806c000 +#define OMAP3_UART1_BASE OMAP2_UART1_BASE +#define OMAP3_UART2_BASE OMAP2_UART2_BASE#define OMAP3_UART3_BASE 0x49020000#define OMAP3_UART4_BASE 0x49042000/* Only on 36xx */ /* OMAP4 serial ports */ -#define OMAP4_UART1_BASE 0x4806a000 -#define OMAP4_UART2_BASE 0x4806c000 +#define OMAP4_UART1_BASE OMAP2_UART1_BASE +#define OMAP4_UART2_BASE OMAP2_UART1_BASE#define OMAP4_UART3_BASE 0x48020000#define OMAP4_UART4_BASE 0x4806e000 +/* External port on Zoom2/3 */ +#define ZOOM_UART_BASE 0x10000000 +#define ZOOM_UART_VIRT 0xfb000000 +#define OMAP_PORT_SHIFT 2#define OMAP7XX_PORT_SHIFT 0 +#define ZOOM_PORT_SHIFT 1#define OMAP1510_BASE_BAUD (12000000/16)#define OMAP16XX_BASE_BAUD (48000000/16)#define OMAP24XX_BASE_BAUD (48000000/16) +/* +* DEBUG_LL port encoding stored into the UART1 scratchpad register by +* decomp_setup in uncompress.h +*/ +#define OMAP1UART1 11 +#define OMAP1UART2 12 +#define OMAP1UART3 13 +#define OMAP2UART1 21 +#define OMAP2UART2 22 +#define OMAP2UART3 23 +#define OMAP3UART1 OMAP2UART1 +#define OMAP3UART2 OMAP2UART2 +#define OMAP3UART3 33 +#define OMAP3UART4 34/* Only on 36xx */ +#define OMAP4UART1 OMAP2UART1 +#define OMAP4UART2 OMAP2UART2 +#define OMAP4UART3 43 +#define OMAP4UART4 44 +#define ZOOM_UART 95/* Only on zoom2/3 */ +/* This is only used by 8250.c for omap1510 */ #define is_omap_port (pt) ({int __ret = 0; \ if ((pt)->port.mapbase == OMAP1_UART1_BASE || \
arch/arm/plat-omap/include/plat/uncompress.h +133 -49
203 lines not on this page · raw message
PATCH 2/14 omap: Make uncompress code and DEBUG_LL code generic
Quoted 10 lines · Tony Lindgren
Define
arch_decomp_setup()the same way as some other architectures do. Usearch_idto configure the debug uart based on themachine_isby storing it into the uart scratchpad register forDEBUG_LLcode to use.Note that to avoid merge conflicts, this patch is using hardcoded register r1 until tmp register is being passed for all addruart macros.
Signed-off-by Tony Lindgren <[email protected]>
This has been working well, but has a couple serious limitations:
1. assumes bootloader has enabled UART1 clocks
2. assumes all SoCs supported have the same UART1 base
With more platforms using USB-based UARTs, assumption (1) may not be safe for very long, as bootloaders for these platforms don't really *need* to enable UART1. Currently, they happen to mainly because of copied init code from other platforms.
But more importantly, there are more OMAP derivative parts coming soon, and one in particular coming soon[1] breaks assumption 2 by having a different UART1 base (yes, it's branded as a DaVinci, but it's an OMAP core as far as linux is concerned. Don't get me started on TI branding.)
To fix both problems, maybe we should just use a fixed memory location to pass this temporary data from uncompress to the kernel. We've had a similar problem on DaVinci recently and a proposal has been made (and tested) to use memory just below the page tables[2].)
Any comments on this proposal? or alternative suggestions?
Kevin
[1] http://www.ti.com/ww/en/dsp/davinci-netra/index.shtml
[2] https://patchwork.kernel.org/patch/94724/
PATCH 2/14 omap: Make uncompress code and DEBUG_LL code generic
In reply to Tony Lindgren[resend to include RMK]
Quoted 8 lines · Tony Lindgren
Define
arch_decomp_setup()the same way as some other architectures do. Usearch_idto configure the debug uart based on themachine_isby storing it into the uart scratchpad register forDEBUG_LLcode to use.Note that to avoid merge conflicts, this patch is using hardcoded register r1 until tmp register is being passed for all addruart macros.
This patch (now in mainline[1]) has been working well, but has a couple serious limitations:
1. assumes bootloader has enabled UART1 clocks
2. assumes all OMAPs supported have the same UART1 base
With more platforms using USB-based UARTs, assumption (1) may not be safe for very long, as bootloaders for these platforms don't really *need* to enable UART1. Currently, they happen to mainly because of copied init code from other platforms.
But more importantly, there are more OMAP derivative parts coming soon, and one in particular coming soon[2] breaks assumption 2 by having a different UART1 base (yes, it's branded as a DaVinci, but it's an OMAP core as far as linux is concerned. Don't get me started on TI branding.)
To fix both problems, maybe we should just use a fixed memory location to pass this temporary data from uncompress to the kernel. We've had a similar problem on DaVinci recently and a proposal has been made (and tested) to use memory just below the page tables[3].)
Any comments on this proposal? or alternative suggestions?
Kevin
[1] commit 0c8219f0302d0d27fda52c790d38406801e547ec
[1] http://www.ti.com/ww/en/dsp/davinci-netra/index.shtml
[2] https://patchwork.kernel.org/patch/94724/
PATCH 2/14 omap: Make uncompress code and DEBUG_LL code generic
Hi,
[...]
Quoted 4 lines
To fix both problems, maybe we should just use a fixed memory location to pass this temporary data from uncompress to the kernel. We've had a similar problem on DaVinci recently and a proposal has been made (and tested) to use memory just below the page tables[3].)
Essentially both of these approaches (internal scratch register and fixed address) implement a weird back-channel communication scheme between the decompresser and the debug macros.
A more elegant solution may be as follows:
- pass machine_arch_type as an argument into addruart.
- move the uart base lookup logic to addruart using macros similar to DEBUG_LL_*, except that these expand to assembly code this time.
- reuse these debug-macros in uncompress.h and implement putc() and flush() using addruart(), senduart(), etc.
This way, both the decompresser and the kernel debug macros end up using machine_arch_type to get to the right debug uart, without resorting to underhand back-channel tricks.
Any thoughts?
-- Cyril.
Tony Lindgren
maintainerPATCH 2/14 omap: Make uncompress code and DEBUG_LL code generic
Quoted 20 lines · Cyril Chemparathy
Hi,
[...]
Quoted 4 lines
To fix both problems, maybe we should just use a fixed memory location to pass this temporary data from uncompress to the kernel. We've had a similar problem on DaVinci recently and a proposal has been made (and tested) to use memory just below the page tables[3].)
Essentially both of these approaches (internal scratch register and fixed address) implement a weird back-channel communication scheme between the decompresser and the debug macros.
A more elegant solution may be as follows:
- passmachine_arch_typeas an argument into addruart.
- move the uart base lookup logic to addruart using macros similar to DEBUG_LL_*, except that these expand to assembly code this time.
- reuse these debug-macros inuncompress.hand implementputc()andflush()usingaddruart(),senduart(), etc.
Quoted 5 lines
This way, both the decompresser and the kernel debug macros end up using
machine_arch_typeto get to the right debug uart, without resorting to underhand back-channel tricks.Any thoughts?
Sounds good to me. There's already the tmp register added to addruart that can be used for passing the machine id to addruart.
Regards,
Tony
PATCH 2/14 omap: Make uncompress code and DEBUG_LL code generic
In reply to Cyril ChemparathyQuoted 8 lines · Cyril Chemparathy
Hi,
[...]
Quoted 4 lines
To fix both problems, maybe we should just use a fixed memory location to pass this temporary data from uncompress to the kernel. We've had a similar problem on DaVinci recently and a proposal has been made (and tested) to use memory just below the page tables[3].)
Quoted 6 lines
Essentially both of these approaches (internal scratch register and fixed address) implement a weird back-channel communication scheme between the decompresser and the debug macros.
A more elegant solution may be as follows:
- passmachine_arch_typeas an argument into addruart.
Unfortunately, that breaks addruart. Firstly, addruart is used from assembly code where very limited registers are available (the fewer registers it clobbers the less likely debug is going to cause stuff to break.)
Secondly, the places that addruart may be called from, the location of the machine type number is indeterminent. Remember that this macro can be called when the MMU is on or off, and can be called before the machine_arch_type has been initialized.
Quoted 5 lines
- move the uart base lookup logic to addruart using macros similar to DEBUG_LL_*, except that these expand to assembly code this time.
- reuse these debug-macros inuncompress.hand implementputc()andflush()usingaddruart(),senduart(), etc.
Given what I've said above about the debug macros, this is definitely the wrong solution.
Having the decompressor macros work whatever the machine type is reasonable, and the machine_is_xxx() macros already work at that point, so there shouldn't be much of an issue there.
As far as the debug macros go, I think we're at the point where it's basically just far easier to leave these macros as a developer debugging tool and we'll just have to put up with it being something that an OMAP developer has to edit according to his platform to make work.
After all, _NO_ production kernel what so ever should be using this debug support.
Tony Lindgren
maintainerPATCH 2/14 omap: Make uncompress code and DEBUG_LL code generic
Quoted 13 lines · Russell King - ARM Linux
Quoted 12 lines · Cyril Chemparathy
Hi,
[...]
Quoted 4 lines
To fix both problems, maybe we should just use a fixed memory location to pass this temporary data from uncompress to the kernel. We've had a similar problem on DaVinci recently and a proposal has been made (and tested) to use memory just below the page tables[3].)
Essentially both of these approaches (internal scratch register and fixed address) implement a weird back-channel communication scheme between the decompresser and the debug macros.
Quoted 7 lines
Quoted 2 lines
A more elegant solution may be as follows:
- passmachine_arch_typeas an argument into addruart.Unfortunately, that breaks addruart. Firstly, addruart is used from assembly code where very limited registers are available (the fewer registers it clobbers the less likely debug is going to cause stuff to break.)
Right, this would be tricky.
Quoted 4 lines
Secondly, the places that addruart may be called from, the location of the machine type number is indeterminent. Remember that this macro can be called when the MMU is on or off, and can be called before the
machine_arch_typehas been initialized.
Another good point here.
Quoted 6 lines
Quoted 5 lines
- move the uart base lookup logic to addruart using macros similar to DEBUG_LL_*, except that these expand to assembly code this time.
- reuse these debug-macros inuncompress.hand implementputc()andflush()usingaddruart(),senduart(), etc.
Quoted 6 lines
Given what I've said above about the debug macros, this is definitely the wrong solution.
Having the decompressor macros work whatever the machine type is reasonable, and the
machine_is_xxx()macros already work at that point, so there shouldn't be much of an issue there.
Just to bring it up, there's one issue to consider here though. When the bootloader passes a wrong machine id, chances are things break with no debug output.
Quoted 7 lines
As far as the debug macros go, I think we're at the point where it's basically just far easier to leave these macros as a developer debugging tool and we'll just have to put up with it being something that an OMAP developer has to edit according to his platform to make work.
After all, _NO_ production kernel what so ever should be using this debug support.
Things work now for mach-omap2, but we assume the first uart is always in the same location. If this changes, then using some fixed memory location for storing the debug configuration is probably the best way to go considering the issues Russell mentioned.
Regards,
Tony
PATCH 2/14 omap: Make uncompress code and DEBUG_LL code generic
Quoted 53 lines · Tony Lindgren
Quoted 13 lines · Russell King - ARM Linux
Quoted 12 lines · Cyril Chemparathy
Hi,
[...]
Quoted 4 lines
To fix both problems, maybe we should just use a fixed memory location to pass this temporary data from uncompress to the kernel. We've had a similar problem on DaVinci recently and a proposal has been made (and tested) to use memory just below the page tables[3].)
Essentially both of these approaches (internal scratch register and fixed address) implement a weird back-channel communication scheme between the decompresser and the debug macros.
Quoted 7 lines
Quoted 2 lines
A more elegant solution may be as follows:
- passmachine_arch_typeas an argument into addruart.Unfortunately, that breaks addruart. Firstly, addruart is used from assembly code where very limited registers are available (the fewer registers it clobbers the less likely debug is going to cause stuff to break.)
Right, this would be tricky.
Quoted 4 lines
Secondly, the places that addruart may be called from, the location of the machine type number is indeterminent. Remember that this macro can be called when the MMU is on or off, and can be called before the
machine_arch_typehas been initialized.Another good point here.
Quoted 6 lines
Quoted 5 lines
- move the uart base lookup logic to addruart using macros similar to DEBUG_LL_*, except that these expand to assembly code this time.
- reuse these debug-macros inuncompress.hand implementputc()andflush()usingaddruart(),senduart(), etc.Quoted 6 lines
Given what I've said above about the debug macros, this is definitely the wrong solution.
Having the decompressor macros work whatever the machine type is reasonable, and the
machine_is_xxx()macros already work at that point, so there shouldn't be much of an issue there.Just to bring it up, there's one issue to consider here though. When the bootloader passes a wrong machine id, chances are things break with no debug output.
Quoted 5 lines
As far as the debug macros go, I think we're at the point where it's basically just far easier to leave these macros as a developer debugging tool and we'll just have to put up with it being something that an OMAP developer has to edit according to his platform to make work.
Quoted 7 lines
Quoted 2 lines
After all, _NO_ production kernel what so ever should be using this debug support.
Things work now for mach-omap2, but we assume the first uart is always in the same location. If this changes, then using some fixed memory location for storing the debug configuration is probably the best way to go considering the issues Russell mentioned.
I agree, using a fixed memory location seems the best way to keep this working across new devices with different UART1 base.
Kevin
Tony Lindgren
maintainerPATCH 3/14 omap: Remove old DEBUG_LL serial port options
In reply to Tony LindgrenThese are no longer needed. Note that zoom boards
should now set their own function in uncompress.h
and debug-macro.S for the external UART.
--- arch/arm/plat-omap/Kconfig | 19 ------------------- 1 files changed, 0 insertions(+), 19 deletions(-)
arch/arm/plat-omap/Kconfig +0 -19
@@ -141,25 +141,6 @@ config OMAP_DM_TIMER help Select this option if you want to use OMAP Dual-Mode timers. -choice - prompt "Low-level debug console UART" - depends on ARCH_OMAP - default OMAP_LL_DEBUG_NONE - -config OMAP_LL_DEBUG_UART1 - bool "UART1" - -config OMAP_LL_DEBUG_UART2 - bool "UART2" - -config OMAP_LL_DEBUG_UART3 - bool "UART3" - -config OMAP_LL_DEBUG_NONE - bool "None" - -endchoice - config OMAP_SERIAL_WAKE bool "Enable wake-up events for serial ports" depends on ARCH_OMAP1 && OMAP_MUX
Tony Lindgren
maintainerPATCH 4/14 omap2/3: Make get_irqnr_and_base common for mach-omap2 multiboot
In reply to Tony LindgrenMake get_irqnr_and_base common for mach-omap2 multiboot
Thanks to a tip from Russell King <[email protected]>, this also optimizes the code for non-multiboot configurations by using get_irqnr_preamble.
Note that this will only work currently for 24xx and 34xx. Support for 44xx can be added later on for basic multiboot, and similar patch should be done for mach-omap1/entry-macro.S.
--- arch/arm/mach-omap2/include/mach/entry-macro.S | 77 ++++++++++++++++++------ 1 files changed, 57 insertions(+), 20 deletions(-)
arch/arm/mach-omap2/include/mach/entry-macro.S +57 -20
@@ -17,47 +17,84 @@ #include <plat/omap24xx.h> #include <plat/omap34xx.h> - -/* REVISIT: This should be set dynamically if CONFIG_MULTI_OMAP2 is selected */ -#if defined(CONFIG_ARCH_OMAP2420) || defined(CONFIG_ARCH_OMAP2430) -#define OMAP2_VA_IC_BASE OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE) -#elif defined(CONFIG_ARCH_OMAP34XX) -#define OMAP2_VA_IC_BASE OMAP2_L4_IO_ADDRESS(OMAP34XX_IC_BASE) -#endif -#if defined(CONFIG_ARCH_OMAP4) #include <plat/omap44xx.h> -#endif -#define INTCPS_SIR_IRQ_OFFSET 0x0040 /* Active interrupt offset */ -#define ACTIVEIRQ_MASK 0x7f /* Active interrupt bits */ .macro disable_fiq .endm - .macro get_irqnr_preamble, base, tmp - .endm - .macro arch_ret_to_user, tmp1, tmp2 .endm -#ifndef CONFIG_ARCH_OMAP4 +#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) + +#define OMAP2_IRQ_BASE OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE) +#define OMAP3_IRQ_BASE OMAP2_L4_IO_ADDRESS(OMAP34XX_IC_BASE) +#define INTCPS_SIR_IRQ_OFFSET 0x0040 /* Active interrupt offset */ +#define ACTIVEIRQ_MASK 0x7f /* Active interrupt bits */ + + .pushsection .data +omap_irq_base: .word 0 + .popsection + +#if defined(CONFIG_ARCH_OMAP2) && defined(CONFIG_ARCH_OMAP3) + /* Configure the interrupt base on the first interrupt */ + .macro get_irqnr_preamble, base, tmp +9: + ldr \base, =omap_irq_base @ irq base address + ldr \base, [\base, #0] @ irq base value + cmp \base, #0 @ already configured? + bne 9998f @ nothing to do + + mrc p15, 0, \tmp, c0, c0, 0 @ get processor revision + and \tmp, \tmp, #0x000f0000 @ only check architecture + cmp \tmp, #0x00060000 @ is v6? + beq 2400f @ found v6 so it's omap24xx + cmp \tmp, #0x000f0000 @ is cortex? + beq 3400f @ found v7 so it's omap34xx +2400: ldr \base, =OMAP2_IRQ_BASE + ldr \tmp, =omap_irq_base + str \base, [\tmp, #0] + b 9b +3400: ldr \base, =OMAP3_IRQ_BASE + ldr \tmp, =omap_irq_base + str \base, [\tmp, #0] + b 9b +9998: + .endm +#else + .macro get_irqnr_preamble, base, tmp +#ifdef CONFIG_ARCH_OMAP2 + ldr \base, =OMAP2_IRQ_BASE +#else + ldr \base, =OMAP3_IRQ_BASE +#endif + .endm +#endif + /* Check the pending interrupts. Note that base already set */ .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - ldr \base, =OMAP2_VA_IC_BASE ldr \irqnr, [\base, #0x98] /* IRQ pending reg 1 */ cmp \irqnr, #0x0 - bne 2222f + bne 9999f ldr \irqnr, [\base, #0xb8] /* IRQ pending reg 2 */ cmp \irqnr, #0x0 - bne 2222f + bne 9999f ldr \irqnr, [\base, #0xd8] /* IRQ pending reg 3 */ cmp \irqnr, #0x0 -2222: +9999: ldrne \irqnr, [\base, #INTCPS_SIR_IRQ_OFFSET] and \irqnr, \irqnr, #ACTIVEIRQ_MASK /* Clear spurious bits */ .endm -#else +#endif + + +#ifdef CONFIG_ARCH_OMAP4 + #define OMAP44XX_VA_GIC_CPU_BASE OMAP2_L4_IO_ADDRESS(OMAP44XX_GIC_CPU_BASE) + .macro get_irqnr_preamble, base, tmp + .endm + /* * The interrupt numbering scheme is defined in the * interrupt controller spec. To wit:
Tony Lindgren
maintainerPATCH 5/14 omap2/3: Multiboot compile fixes to compile in omap2 and omap3
In reply to Tony LindgrenAllows compiling in omap2 and omap3.
--- arch/arm/mach-omap2/Makefile | 8 ++++++++ arch/arm/mach-omap2/clock.c | 26 +++++++++++++++++++++++++ arch/arm/mach-omap2/clock.h | 35 +++++++++++++++++++++++++++++++++- arch/arm/mach-omap2/clock2xxx.c | 4 ++-- arch/arm/mach-omap2/clock2xxx_data.c | 4 ++-- arch/arm/mach-omap2/clock34xx.c | 4 ++-- arch/arm/mach-omap2/clock34xx_data.c | 4 ++-- arch/arm/mach-omap2/clock44xx.c | 4 ++-- arch/arm/mach-omap2/clock44xx_data.c | 4 ++-- arch/arm/mach-omap2/opp2xxx.h | 5 +++++ arch/arm/plat-omap/Kconfig | 16 ++++++++++++---- arch/arm/plat-omap/gpio.c | 2 +- 12 files changed, 98 insertions(+), 18 deletions(-)
arch/arm/mach-omap2/Makefile +8 -0
@@ -26,6 +26,10 @@ obj-$(CONFIG_ARCH_OMAP2420) += sram242x.o obj-$(CONFIG_ARCH_OMAP2430) += sram243x.o obj-$(CONFIG_ARCH_OMAP3) += sram34xx.o +AFLAGS_sram242x.o :=-Wa,-march=armv6 +AFLAGS_sram243x.o :=-Wa,-march=armv6 +AFLAGS_sram34xx.o :=-Wa,-march=armv7-a + # Pin multiplexing obj-$(CONFIG_ARCH_OMAP3) += mux34xx.o
@@ -39,6 +43,10 @@ obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o obj-$(CONFIG_ARCH_OMAP24XX) += sleep24xx.o obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o cpuidle34xx.o obj-$(CONFIG_PM_DEBUG) += pm-debug.o + +AFLAGS_sleep24xx.o :=-Wa,-march=armv6 +AFLAGS_sleep34xx.o :=-Wa,-march=armv7-a + endif # PRCM
arch/arm/mach-omap2/clock.c +26 -0
@@ -1092,3 +1092,29 @@ void omap2_clk_disable_unused(struct clk *clk) pwrdm_clkdm_state_switch(clk->clkdm); }#endif + +int __init omap2_clk_init (void ) +{ +if (cpu_is_omap24xx ()) +return omap2xxx_clk_init (); +else if (cpu_is_omap34xx ()) +return omap3_clk_init (); +else if (cpu_is_omap44xx ()) +return omap4_clk_init (); +else +WARN_ON (1 ); + +return -ENODEV ; +} + +void omap2_clk_prepare_for_reboot (void ) +{ +if (cpu_is_omap24xx ()) +omap2xxx_clk_prepare_for_reboot (); +else if (cpu_is_omap34xx ()) +omap3_clk_prepare_for_reboot (); +else if (cpu_is_omap44xx ()) +omap3_clk_prepare_for_reboot (); +else +BUG (); +}
arch/arm/mach-omap2/clock.h +34 -1
@@ -48,6 +48,10 @@#define DPLL_LOCKED 0x7int omap2_clk_init (void ); +int omap2xxx_clk_init (void ); +int omap3_clk_init (void ); +int omap4_clk_init (void ); +int omap2_clk_enable (struct clk *clk);void omap2_clk_disable (struct clk *clk);long omap2_clk_round_rate (struct clk *clk,unsigned long rate);
@@ -84,7 +88,33 @@ int omap2_clksel_set_rate(struct clk *clk, unsigned long rate);u32 omap2_get_dpll_rate (struct clk *clk);void omap2_init_dpll_parent (struct clk *clk);int omap2_wait_clock_ready (void __iomem *reg,u32 cval,const char *name); +void omap2_clk_prepare_for_reboot (void ); + +#ifdef CONFIG_ARCH_OMAP2 +void omap2xxx_clk_prepare_for_reboot (void ); +#else +static inline void omap2xxx_clk_prepare_for_reboot (void ) +{ +} +#endif + +#ifdef CONFIG_ARCH_OMAP3 +void omap3_clk_prepare_for_reboot (void ); +#else +static inline void omap3_clk_prepare_for_reboot (void ) +{ +} +#endif + +#ifdef CONFIG_ARCH_OMAP4 +void omap4_clk_prepare_for_reboot (void ); +#else +static inline void omap4_clk_prepare_for_reboot (void ) +{ +} +#endif +int omap2_dflt_clk_enable (struct clk *clk);void omap2_dflt_clk_disable (struct clk *clk); void omap2_clk_dflt_find_companion(struct clk *clk, void __iomem **other_reg,
@@ -97,7 +127,10 @@ extern u8 cpu_mask;extern const struct clkops clkops_omap2_dflt_wait;extern const struct clkops clkops_omap2_dflt; -extern struct clk_functions omap2_clk_functions; +extern struct clk_functions omap2xxx_clk_functions; +extern struct clk_functions omap3_clk_functions; +extern struct clk_functions omap4_clk_functions; +extern struct clk *vclk, *sclk;extern const struct clksel_rate gpt_32k_rates[];
arch/arm/mach-omap2/clock2xxx.c +2 -2
@@ -523,7 +523,7 @@ void omap2_clk_exit_cpufreq_table(struct cpufreq_frequency_table **table)#endif -struct clk_functions omap2_clk_functions = { +struct clk_functions omap2xxx_clk_functions = { .clk_enable = omap2_clk_enable, .clk_disable = omap2_clk_disable, .clk_round_rate = omap2_clk_round_rate,
@@ -578,7 +578,7 @@ unsigned long omap2_sys_clk_recalc(struct clk *clk)/* * Set clocks for bypass mode for reboot to work. */ -void omap2_clk_prepare_for_reboot (void ) +void omap2xxx_clk_prepare_for_reboot (void ) {u32 rate;
arch/arm/mach-omap2/clock2xxx_data.c +2 -2
@@ -2238,7 +2238,7 @@ static struct omap_clk omap24xx_clks[] = {* init code */ -int __init omap2_clk_init (void ) +int __init omap2xxx_clk_init (void ) {const struct prcm_config *prcm;struct omap_clk *c;
@@ -2257,7 +2257,7 @@ int __init omap2_clk_init(void) rate_table = omap2430_rate_table; } -clk_init (&omap2_clk_functions); +clk_init (&omap2xxx_clk_functions);for (c = omap24xx_clks; c < omap24xx_clks +ARRAY_SIZE (omap24xx_clks); c++)clk_preinit (c->lk.clk);
arch/arm/mach-omap2/clock34xx.c +2 -2
@@ -258,7 +258,7 @@ int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate)*/ #if defined(CONFIG_ARCH_OMAP3 ) -struct clk_functions omap2_clk_functions = { +struct clk_functions omap3_clk_functions = { .clk_enable = omap2_clk_enable, .clk_disable = omap2_clk_disable, .clk_round_rate = omap2_clk_round_rate,
@@ -270,7 +270,7 @@ struct clk_functions omap2_clk_functions = {/* * Set clocks for bypass mode for reboot to work. */ -void omap2_clk_prepare_for_reboot (void ) +void omap3_clk_prepare_for_reboot (void ) {/* REVISIT: Not ready for 343x */ #if 0
arch/arm/mach-omap2/clock34xx_data.c +2 -2
@@ -3211,7 +3211,7 @@ static struct omap_clk omap34xx_clks[] = { }; -int __init omap2_clk_init (void ) +int __init omap3_clk_init (void ) {/* struct prcm_config *prcm; */ struct omap_clk *c;
@@ -3235,7 +3235,7 @@ int __init omap2_clk_init(void) } } -clk_init (&omap2_clk_functions); +clk_init (&omap3_clk_functions);for (c = omap34xx_clks; c < omap34xx_clks +ARRAY_SIZE (omap34xx_clks); c++)clk_preinit (c->lk.clk);
arch/arm/mach-omap2/clock44xx.c +2 -2
@@ -13,7 +13,7 @@#include <linux/errno.h> #include "clock.h" -struct clk_functions omap2_clk_functions = { +struct clk_functions omap4_clk_functions = { .clk_enable = omap2_clk_enable, .clk_disable = omap2_clk_disable, .clk_round_rate = omap2_clk_round_rate,
@@ -27,7 +27,7 @@ const struct clkops clkops_noncore_dpll_ops = { .disable = &omap3_noncore_dpll_disable, }; -void omap2_clk_prepare_for_reboot (void ) +void omap4_clk_prepare_for_reboot (void ) {return ; }
arch/arm/mach-omap2/clock44xx_data.c +2 -2
@@ -2726,7 +2726,7 @@ static struct omap_clk omap44xx_clks[] = { CLK(NULL, "utmi_p2_gfclk_ck", &utmi_p2_gfclk_ck, CK_443X), }; -int __init omap2_clk_init (void ) +int __init omap4_clk_init (void ) {/* struct prcm_config *prcm; */ struct omap_clk *c;
@@ -2738,7 +2738,7 @@ int __init omap2_clk_init(void) cpu_clkflg =CK_443X ; } -clk_init (&omap2_clk_functions); +clk_init (&omap4_clk_functions);for (c = omap44xx_clks; c < omap44xx_clks +ARRAY_SIZE (omap44xx_clks); c++)
arch/arm/mach-omap2/opp2xxx.h +5 -0
@@ -417,7 +417,12 @@ struct prcm_config {extern const struct prcm_config omap2420_rate_table[]; + +#ifdef CONFIG_ARCH_OMAP2430 extern const struct prcm_config omap2430_rate_table[]; +#else +#define omap2430_rate_table NULL +#endif extern const struct prcm_config *rate_table;extern const struct prcm_config *curr_prcm_set;
arch/arm/plat-omap/Kconfig +12 -4
@@ -7,27 +7,35 @@ config ARCH_OMAP_OTG choice prompt "OMAP System Type" - default ARCH_OMAP1 + default ARCH_OMAP2PLUS config ARCH_OMAP1 bool "TI OMAP1" select COMMON_CLKDEV + help + "Systems based on omap7xx, omap15xx or omap16xx" + +config ARCH_OMAP2PLUS + bool "TI OMAP2/3/4" + select COMMON_CLKDEV + help + "Systems based on omap24xx, omap34xx or omap44xx" config ARCH_OMAP2 bool "TI OMAP2" + depends on ARCH_OMAP2PLUS select CPU_V6 - select COMMON_CLKDEV config ARCH_OMAP3 bool "TI OMAP3" + depends on ARCH_OMAP2PLUS select CPU_V7 - select COMMON_CLKDEV config ARCH_OMAP4 bool "TI OMAP4" + depends on ARCH_OMAP2PLUS select CPU_V7 select ARM_GIC - select COMMON_CLKDEV endchoice
arch/arm/plat-omap/gpio.c +1 -1
@@ -1630,7 +1630,7 @@ static int gpio_2irq(struct gpio_chip *chip, unsigned offset)/*---------------------------------------------------------------------*/ static int initialized; -#if !(defined(CONFIG_ARCH_OMAP3 ) || defined(CONFIG_ARCH_OMAP4 )) +#if defined(CONFIG_ARCH_OMAP1 ) || defined(CONFIG_ARCH_OMAP2 )static struct clk * gpio_ick;#endif
Tony Lindgren
maintainerPATCH 6/14 omap: Fix dmtimer.c for multi-omap boot
In reply to Tony LindgrenFix dmtimer.c for multi-omap boot. Also remove legacy clk_enable/disable wrappers that are no longer needed.
Note that the clock handling should be further improved to make use of the clock aliases.
--- arch/arm/plat-omap/dmtimer.c | 90 ++++++++++++++++++------------------------ 1 files changed, 39 insertions(+), 51 deletions(-)
arch/arm/plat-omap/dmtimer.c +39 -51
@@ -163,20 +163,9 @@ struct omap_dm_timer { unsigned posted:1; }; -#ifdef CONFIG_ARCH_OMAP1 - -#define omap_dm_clk_enable (x) -#define omap_dm_clk_disable (x) -#define omap2_dm_timers NULL -#define omap2_dm_source_names NULL -#define omap2_dm_source_clocks NULL -#define omap3_dm_timers NULL -#define omap3_dm_source_names NULL -#define omap3_dm_source_clocks NULL -#define omap4_dm_timers NULL -#define omap4_dm_source_names NULL -#define omap4_dm_source_clocks NULL +static int dm_timer_count; +#ifdef CONFIG_ARCH_OMAP1 static struct omap_dm_timer omap1_dm_timers[] = { { .phys_base =0xfffb1400 , .irq =INT_1610_GPTIMER1 }, { .phys_base = 0xfffb1c00, .irq = INT_1610_GPTIMER2 },
@@ -188,20 +177,14 @@ static struct omap_dm_timer omap1_dm_timers[] = { { .phys_base = 0xfffbd400, .irq = INT_1610_GPTIMER8 }, }; -static const int dm_timer_count =ARRAY_SIZE (omap1_dm_timers); - -#elif defined(CONFIG_ARCH_OMAP2) +static const int omap1_dm_timer_count =ARRAY_SIZE (omap1_dm_timers); -#define omap_dm_clk_enable (x) clk_enable(x) -#define omap_dm_clk_disable (x) clk_disable(x) +#else #define omap1_dm_timers NULL -#define omap3_dm_timers NULL -#define omap3_dm_source_names NULL -#define omap3_dm_source_clocks NULL -#define omap4_dm_timers NULL -#define omap4_dm_source_names NULL -#define omap4_dm_source_clocks NULL +#define omap1_dm_timer_count 0 +#endif /* CONFIG_ARCH_OMAP1 */ +#ifdef CONFIG_ARCH_OMAP2 static struct omap_dm_timer omap2_dm_timers[] = { { .phys_base =0x48028000 , .irq =INT_24XX_GPTIMER1 }, { .phys_base = 0x4802a000, .irq = INT_24XX_GPTIMER2 },
@@ -225,20 +208,16 @@ static const char *omap2_dm_source_names[] __initdata = { };static struct clk *omap2_dm_source_clocks[3 ]; -static const int dm_timer_count =ARRAY_SIZE (omap2_dm_timers); - -#elif defined(CONFIG_ARCH_OMAP3 ) +static const int omap2_dm_timer_count =ARRAY_SIZE (omap2_dm_timers); -#define omap_dm_clk_enable (x) clk_enable(x) -#define omap_dm_clk_disable (x) clk_disable(x) -#define omap1_dm_timers NULL +#else #define omap2_dm_timers NULL +#define omap2_dm_timer_count 0#define omap2_dm_source_names NULL#define omap2_dm_source_clocks NULL -#define omap4_dm_timers NULL -#define omap4_dm_source_names NULL -#define omap4_dm_source_clocks NULL +#endif /* CONFIG_ARCH_OMAP2 */ +#ifdef CONFIG_ARCH_OMAP3 static struct omap_dm_timer omap3_dm_timers[] = { { .phys_base =0x48318000 , .irq =INT_24XX_GPTIMER1 }, { .phys_base = 0x49032000, .irq = INT_24XX_GPTIMER2 },
@@ -261,20 +240,16 @@ static const char *omap3_dm_source_names[] __initdata = { };static struct clk *omap3_dm_source_clocks[2 ]; -static const int dm_timer_count =ARRAY_SIZE (omap3_dm_timers); - -#elif defined(CONFIG_ARCH_OMAP4 ) +static const int omap3_dm_timer_count =ARRAY_SIZE (omap3_dm_timers); -#define omap_dm_clk_enable (x) clk_enable(x) -#define omap_dm_clk_disable (x) clk_disable(x) -#define omap1_dm_timers NULL -#define omap2_dm_timers NULL -#define omap2_dm_source_names NULL -#define omap2_dm_source_clocks NULL +#else #define omap3_dm_timers NULL +#define omap3_dm_timer_count 0#define omap3_dm_source_names NULL#define omap3_dm_source_clocks NULL +#endif /* CONFIG_ARCH_OMAP3 */ +#ifdef CONFIG_ARCH_OMAP4 static struct omap_dm_timer omap4_dm_timers[] = { { .phys_base =0x4a318000 , .irq =INT_44XX_GPTIMER1 }, { .phys_base = 0x48032000, .irq = INT_44XX_GPTIMER2 },
@@ -295,13 +270,14 @@ static const char *omap4_dm_source_names[] __initdata = {NULL };static struct clk *omap4_dm_source_clocks[2 ]; -static const int dm_timer_count =ARRAY_SIZE (omap4_dm_timers); +static const int omap4_dm_timer_count =ARRAY_SIZE (omap4_dm_timers);#else - -#error OMAP architecture not supported! - -#endif +#define omap4_dm_timers NULL +#define omap4_dm_timer_count 0 +#define omap4_dm_source_names NULL +#define omap4_dm_source_clocks NULL +#endif /* CONFIG_ARCH_OMAP4 */ static struct omap_dm_timer *dm_timers;static const char **dm_source_names;
@@ -450,8 +426,12 @@ void omap_dm_timer_enable(struct omap_dm_timer *timer)if (timer->enabled)return ; -omap_dm_clk_enable (timer->fclk); -omap_dm_clk_enable (timer->iclk); +#ifdef CONFIG_ARCH_OMAP2PLUS +if (cpu_class_is_omap2 ()) { +clk_enable (timer->fclk); +clk_enable (timer->iclk); + } +#endif timer->enabled =1 ; }
@@ -462,8 +442,12 @@ void omap_dm_timer_disable(struct omap_dm_timer *timer)if (!timer->enabled)return ; -omap_dm_clk_disable (timer->iclk); -omap_dm_clk_disable (timer->fclk); +#ifdef CONFIG_ARCH_OMAP2PLUS +if (cpu_class_is_omap2 ()) { +clk_disable (timer->iclk); +clk_disable (timer->fclk); + } +#endif timer->enabled =0 ; }
@@ -764,17 +748,21 @@ int __init omap_dm_timer_init(void)if (cpu_class_is_omap1 ()) { dm_timers = omap1_dm_timers; + dm_timer_count = omap1_dm_timer_count; map_size =SZ_2K ; }else if (cpu_is_omap24xx ()) { dm_timers = omap2_dm_timers; + dm_timer_count = omap2_dm_timer_count; dm_source_names = omap2_dm_source_names; dm_source_clocks = omap2_dm_source_clocks; }else if (cpu_is_omap34xx ()) { dm_timers = omap3_dm_timers; + dm_timer_count = omap3_dm_timer_count; dm_source_names = omap3_dm_source_names; dm_source_clocks = omap3_dm_source_clocks; }else if (cpu_is_omap44xx ()) { dm_timers = omap4_dm_timers; + dm_timer_count = omap4_dm_timer_count; dm_source_names = omap4_dm_source_names; dm_source_clocks = omap4_dm_source_clocks; }
Tony Lindgren
maintainerPATCH 7/14 omap2/3/4: Fix omap2_map_common_io for multi-omap
In reply to Tony LindgrenFix omap2_map_common_io for multi-omap
--- arch/arm/mach-omap2/board-2430sdp.c | 2 + arch/arm/mach-omap2/board-3430sdp.c | 2 + arch/arm/mach-omap2/board-3630sdp.c | 2 + arch/arm/mach-omap2/board-4430sdp.c | 2 + arch/arm/mach-omap2/board-am3517evm.c | 2 + arch/arm/mach-omap2/board-apollon.c | 2 + arch/arm/mach-omap2/board-cm-t35.c | 2 + arch/arm/mach-omap2/board-generic.c | 2 + arch/arm/mach-omap2/board-h4.c | 2 + arch/arm/mach-omap2/board-igep0020.c | 2 + arch/arm/mach-omap2/board-ldp.c | 2 + arch/arm/mach-omap2/board-n8x0.c | 2 + arch/arm/mach-omap2/board-omap3beagle.c | 2 + arch/arm/mach-omap2/board-omap3evm.c | 2 + arch/arm/mach-omap2/board-omap3pandora.c | 2 + arch/arm/mach-omap2/board-omap3touchbook.c | 2 + arch/arm/mach-omap2/board-overo.c | 2 + arch/arm/mach-omap2/board-rx51.c | 2 + arch/arm/mach-omap2/board-zoom2.c | 2 + arch/arm/mach-omap2/board-zoom3.c | 2 + arch/arm/mach-omap2/io.c | 51 +++++++++++++++++++--------- arch/arm/plat-omap/include/plat/io.h | 33 ++++++++++++++++++ 22 files changed, 86 insertions(+), 38 deletions(-)
arch/arm/mach-omap2/board-2430sdp.c +1 -1
@@ -215,7 +215,7 @@ static void __init omap_2430sdp_init(void)static void __init omap_2430sdp_map_io (void ) {omap2_set_globals_243x (); -omap2_map_common_io (); +omap243x_map_common_io (); }MACHINE_START (OMAP_2430SDP ,"OMAP2430 sdp2430 board" )
arch/arm/mach-omap2/board-3430sdp.c +1 -1
@@ -674,7 +674,7 @@ static void __init omap_3430sdp_init(void)static void __init omap_3430sdp_map_io (void ) {omap2_set_globals_343x (); -omap2_map_common_io (); +omap34xx_map_common_io (); }MACHINE_START (OMAP_3430SDP ,"OMAP3430 3430SDP board" )
arch/arm/mach-omap2/board-3630sdp.c +1 -1
@@ -69,7 +69,7 @@ static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {static void __init omap_sdp_map_io (void ) {omap2_set_globals_36xx (); -omap2_map_common_io (); +omap34xx_map_common_io (); }static struct omap_board_config_kernel sdp_config[]__initdata = {
arch/arm/mach-omap2/board-4430sdp.c +1 -1
@@ -87,7 +87,7 @@ static void __init omap_4430sdp_init(void)static void __init omap_4430sdp_map_io (void ) {omap2_set_globals_443x (); -omap2_map_common_io (); +omap44xx_map_common_io (); }MACHINE_START (OMAP_4430SDP ,"OMAP4430 4430SDP board" )
arch/arm/mach-omap2/board-am3517evm.c +1 -1
@@ -83,7 +83,7 @@ static void __init am3517_evm_init(void)static void __init am3517_evm_map_io (void ) {omap2_set_globals_343x (); -omap2_map_common_io (); +omap34xx_map_common_io (); }MACHINE_START (OMAP3517EVM ,"OMAP3517/AM3517 EVM" )
arch/arm/mach-omap2/board-apollon.c +1 -1
@@ -337,7 +337,7 @@ static void __init omap_apollon_init(void)static void __init omap_apollon_map_io (void ) {omap2_set_globals_242x (); -omap2_map_common_io (); +omap242x_map_common_io (); }MACHINE_START (OMAP_APOLLON ,"OMAP24xx Apollon" )
arch/arm/mach-omap2/board-cm-t35.c +1 -1
@@ -479,7 +479,7 @@ static void __init cm_t35_init_irq(void)static void __init cm_t35_map_io (void ) {omap2_set_globals_343x (); -omap2_map_common_io (); +omap34xx_map_common_io (); }static struct omap_board_mux board_mux[]__initdata = {
arch/arm/mach-omap2/board-generic.c +1 -1
@@ -50,7 +50,7 @@ static void __init omap_generic_init(void)static void __init omap_generic_map_io (void ) {omap2_set_globals_242x ();/* should be 242x, 243x, or 343x */ -omap2_map_common_io (); +omap242x_map_common_io (); }MACHINE_START (OMAP_GENERIC ,"Generic OMAP24xx" )
arch/arm/mach-omap2/board-h4.c +1 -1
@@ -370,7 +370,7 @@ static void __init omap_h4_init(void)static void __init omap_h4_map_io (void ) {omap2_set_globals_242x (); -omap2_map_common_io (); +omap242x_map_common_io (); }MACHINE_START (OMAP_H4 ,"OMAP2420 H4 board" )
arch/arm/mach-omap2/board-igep0020.c +1 -1
@@ -246,7 +246,7 @@ static void __init igep2_init(void)static void __init igep2_map_io (void ) {omap2_set_globals_343x (); -omap2_map_common_io (); +omap34xx_map_common_io (); }MACHINE_START (IGEP0020 ,"IGEP v2 board" )
arch/arm/mach-omap2/board-ldp.c +1 -1
@@ -404,7 +404,7 @@ static void __init omap_ldp_init(void)static void __init omap_ldp_map_io (void ) {omap2_set_globals_343x (); -omap2_map_common_io (); +omap34xx_map_common_io (); }MACHINE_START (OMAP_LDP ,"OMAP LDP board" )
arch/arm/mach-omap2/board-n8x0.c +1 -1
@@ -99,7 +99,7 @@ static void __init n8x0_onenand_init(void) {}static void __init n8x0_map_io (void ) {omap2_set_globals_242x (); -omap2_map_common_io (); +omap242x_map_common_io (); }static void __init n8x0_init_irq (void )
arch/arm/mach-omap2/board-omap3beagle.c +1 -1
@@ -455,7 +455,7 @@ static void __init omap3_beagle_init(void)static void __init omap3_beagle_map_io (void ) {omap2_set_globals_343x (); -omap2_map_common_io (); +omap34xx_map_common_io (); }MACHINE_START (OMAP3_BEAGLE ,"OMAP3 Beagle Board" )
arch/arm/mach-omap2/board-omap3evm.c +1 -1
@@ -478,7 +478,7 @@ static void __init omap3_evm_init(void)static void __init omap3_evm_map_io (void ) {omap2_set_globals_343x (); -omap2_map_common_io (); +omap34xx_map_common_io (); }MACHINE_START (OMAP3EVM ,"OMAP3 EVM" )
arch/arm/mach-omap2/board-omap3pandora.c +1 -1
@@ -423,7 +423,7 @@ static void __init omap3pandora_init(void)static void __init omap3pandora_map_io (void ) {omap2_set_globals_343x (); -omap2_map_common_io (); +omap34xx_map_common_io (); }MACHINE_START (OMAP3_PANDORA ,"Pandora Handheld Console" )
arch/arm/mach-omap2/board-omap3touchbook.c +1 -1
@@ -557,7 +557,7 @@ static void __init omap3_touchbook_init(void)static void __init omap3_touchbook_map_io (void ) {omap2_set_globals_343x (); -omap2_map_common_io (); +omap34xx_map_common_io (); }MACHINE_START (TOUCHBOOK ,"OMAP3 touchbook Board" )
arch/arm/mach-omap2/board-overo.c +1 -1
@@ -469,7 +469,7 @@ static void __init overo_init(void)static void __init overo_map_io (void ) {omap2_set_globals_343x (); -omap2_map_common_io (); +omap34xx_map_common_io (); }MACHINE_START (OVERO ,"Gumstix Overo" )
arch/arm/mach-omap2/board-rx51.c +1 -1
@@ -93,7 +93,7 @@ static void __init rx51_init(void)static void __init rx51_map_io (void ) {omap2_set_globals_343x (); -omap2_map_common_io (); +omap34xx_map_common_io (); }MACHINE_START (NOKIA_RX51 ,"Nokia RX-51 board" )
arch/arm/mach-omap2/board-zoom2.c +1 -1
@@ -87,7 +87,7 @@ static void __init omap_zoom2_init(void)static void __init omap_zoom2_map_io (void ) {omap2_set_globals_343x (); -omap2_map_common_io (); +omap34xx_map_common_io (); }MACHINE_START (OMAP_ZOOM2 ,"OMAP Zoom2 board" )
arch/arm/mach-omap2/board-zoom3.c +1 -1
@@ -27,7 +27,7 @@static void __init omap_zoom_map_io (void ) {omap2_set_globals_36xx (); -omap2_map_common_io (); +omap34xx_map_common_io (); }static struct omap_board_config_kernel zoom_config[]__initdata = {
arch/arm/mach-omap2/io.c +34 -17
71 lines not on this page · raw message
arch/arm/plat-omap/include/plat/io.h +32 -1
@@ -268,7 +268,38 @@ struct omap_sdrc_params;extern void omap1_map_common_io (void );extern void omap1_init_common_hw (void ); -extern void omap2_map_common_io (void ); +#ifdef CONFIG_ARCH_OMAP2420 +extern void omap242x_map_common_io (void ); +#else +static inline void omap242x_map_common_io (void ) +{ +} +#endif + +#ifdef CONFIG_ARCH_OMAP2430 +extern void omap243x_map_common_io (void ); +#else +static inline void omap243x_map_common_io (void ) +{ +} +#endif + +#ifdef CONFIG_ARCH_OMAP34XX +extern void omap34xx_map_common_io (void ); +#else +static inline void omap34xx_map_common_io (void ) +{ +} +#endif + +#ifdef CONFIG_ARCH_OMAP4 +extern void omap44xx_map_common_io (void ); +#else +static inline void omap44xx_map_common_io (void ) +{ +} +#endif +extern void omap2_init_common_hw (struct omap_sdrc_params *sdrc_cs0,struct omap_sdrc_params *sdrc_cs1);
Tony Lindgren
maintainerPATCH 8/14 omap2/3/4: Fix mbox init for multi-omap
In reply to Tony LindgrenFix mbox init for multi-omap
--- arch/arm/mach-omap2/devices.c | 30 ++++++++++++++++++++++++------ 1 files changed, 24 insertions(+), 6 deletions(-)
arch/arm/mach-omap2/devices.c +24 -6
@@ -141,7 +141,7 @@ static inline void omap_init_camera(void)#define MBOX_REG_SIZE 0x120 #ifdef CONFIG_ARCH_OMAP2 -static struct resource omap_mbox_resources[] = { +static struct resource omap2_mbox_resources[] = { { .start = OMAP24XX_MAILBOX_BASE, .end = OMAP24XX_MAILBOX_BASE + MBOX_REG_SIZE - 1,
@@ -156,10 +156,14 @@ static struct resource omap_mbox_resources[] = { .flags = IORESOURCE_IRQ, }, }; +static int omap2_mbox_resources_sz =ARRAY_SIZE (omap2_mbox_resources); +#else +#define omap2_mbox_resources NULL +#define omap2_mbox_resources_sz 0#endif #ifdef CONFIG_ARCH_OMAP3 -static struct resource omap_mbox_resources[] = { +static struct resource omap3_mbox_resources[] = { { .start = OMAP34XX_MAILBOX_BASE, .end = OMAP34XX_MAILBOX_BASE + MBOX_REG_SIZE - 1,
@@ -170,12 +174,16 @@ static struct resource omap_mbox_resources[] = { .flags = IORESOURCE_IRQ, }, }; +static int omap3_mbox_resources_sz =ARRAY_SIZE (omap3_mbox_resources); +#else +#define omap3_mbox_resources NULL +#define omap3_mbox_resources_sz 0#endif #ifdef CONFIG_ARCH_OMAP4 #define OMAP4_MBOX_REG_SIZE 0x130 -static struct resource omap_mbox_resources[] = { +static struct resource omap4_mbox_resources[] = { { .start = OMAP44XX_MAILBOX_BASE, .end = OMAP44XX_MAILBOX_BASE +
@@ -187,6 +195,10 @@ static struct resource omap_mbox_resources[] = { .flags = IORESOURCE_IRQ, }, }; +static int omap4_mbox_resources_sz =ARRAY_SIZE (omap4_mbox_resources); +#else +#define omap4_mbox_resources NULL +#define omap4_mbox_resources_sz 0#endif static struct platform_device mbox_device = {
@@ -196,9 +208,15 @@ static struct platform_device mbox_device = {static inline void omap_init_mbox (void ) { -if (cpu_is_omap2420 () ||cpu_is_omap3430 () ||cpu_is_omap44xx ()) { - mbox_device.num_resources =ARRAY_SIZE (omap_mbox_resources); - mbox_device.resource = omap_mbox_resources; +if (cpu_is_omap24xx ()) { + mbox_device.resource = omap2_mbox_resources; + mbox_device.num_resources = omap2_mbox_resources_sz; + }else if (cpu_is_omap34xx ()) { + mbox_device.resource = omap3_mbox_resources; + mbox_device.num_resources = omap3_mbox_resources_sz; + }else if (cpu_is_omap44xx ()) { + mbox_device.resource = omap4_mbox_resources; + mbox_device.num_resources = omap4_mbox_resources_sz; }else {pr_err ("%s: platform not supported\n" , __func__);return ;
Tony Lindgren
maintainerPATCH 9/14 omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2
In reply to Tony LindgrenConvert ARCH_OMAP24XX to ARCH_OMAP2
--- arch/arm/mach-omap2/Kconfig | 16 +++----- arch/arm/mach-omap2/Makefile | 2 + arch/arm/mach-omap2/clockdomains.h | 6 ++- arch/arm/mach-omap2/io.c | 2 + arch/arm/mach-omap2/mux.c | 2 + arch/arm/mach-omap2/powerdomains.h | 2 + arch/arm/mach-omap2/powerdomains24xx.h | 4 +- arch/arm/plat-omap/Kconfig | 4 +- arch/arm/plat-omap/devices.c | 2 + arch/arm/plat-omap/gpio.c | 56 ++++++++++++++-------------- arch/arm/plat-omap/i2c.c | 4 +- arch/arm/plat-omap/include/plat/cpu.h | 8 ++-- arch/arm/plat-omap/include/plat/mcbsp.h | 2 + arch/arm/plat-omap/include/plat/menelaus.h | 2 + arch/arm/plat-omap/include/plat/mux.h | 2 + arch/arm/plat-omap/include/plat/omap24xx.h | 6 ++- arch/arm/plat-omap/sram.c | 2 + drivers/char/hw_random/Kconfig | 2 + drivers/mfd/Kconfig | 2 + drivers/net/smc911x.h | 2 + drivers/spi/Kconfig | 2 + drivers/watchdog/Kconfig | 2 + sound/soc/omap/omap-mcbsp.c | 2 + 23 files changed, 65 insertions(+), 69 deletions(-)
arch/arm/mach-omap2/Kconfig +6 -10
@@ -1,19 +1,15 @@ comment "OMAP Core Type" depends on ARCH_OMAP2 -config ARCH_OMAP24XX - bool "OMAP24xx Based System" - depends on ARCH_OMAP2 - config ARCH_OMAP2420 bool "OMAP2420 support" - depends on ARCH_OMAP24XX + depends on ARCH_OMAP2 select OMAP_DM_TIMER select ARCH_OMAP_OTG config ARCH_OMAP2430 bool "OMAP2430 support" - depends on ARCH_OMAP24XX + depends on ARCH_OMAP2 config ARCH_OMAP34XX bool "OMAP34xx Based System"
@@ -42,7 +38,7 @@ comment "OMAP Board Type" config MACH_OMAP_GENERIC bool "Generic OMAP board" - depends on ARCH_OMAP2 && ARCH_OMAP24XX + depends on ARCH_OMAP2 config MACH_OMAP2_TUSB6010 bool
@@ -51,16 +47,16 @@ config MACH_OMAP2_TUSB6010 config MACH_OMAP_H4 bool "OMAP 2420 H4 board" - depends on ARCH_OMAP2 && ARCH_OMAP24XX + depends on ARCH_OMAP2 select OMAP_DEBUG_DEVICES config MACH_OMAP_APOLLON bool "OMAP 2420 Apollon board" - depends on ARCH_OMAP2 && ARCH_OMAP24XX + depends on ARCH_OMAP2 config MACH_OMAP_2430SDP bool "OMAP 2430 SDP board" - depends on ARCH_OMAP2 && ARCH_OMAP24XX + depends on ARCH_OMAP2 config MACH_OMAP3_BEAGLE bool "OMAP3 BEAGLE board"
arch/arm/mach-omap2/Makefile +1 -1
@@ -40,7 +40,7 @@ obj-$(CONFIG_ARCH_OMAP2) += sdrc2xxx.o # Power Management ifeq ($(CONFIG_PM),y) obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o -obj-$(CONFIG_ARCH_OMAP24XX) += sleep24xx.o +obj-$(CONFIG_ARCH_OMAP2) += sleep24xx.o obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o cpuidle34xx.o obj-$(CONFIG_PM_DEBUG) += pm-debug.o
arch/arm/mach-omap2/clockdomains.h +3 -3
@@ -94,7 +94,7 @@ static struct clockdomain mdm_clkdm = {* 24XX-only clockdomains */ -#if defined(CONFIG_ARCH_OMAP24XX ) +#if defined(CONFIG_ARCH_OMAP2 )static struct clockdomain dsp_clkdm = { .name = "dsp_clkdm",
@@ -136,7 +136,7 @@ static struct clockdomain dss_24xx_clkdm = { .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX), }; -#endif /* CONFIG_ARCH_OMAP24XX */ +#endif /* CONFIG_ARCH_OMAP2 */ /*
@@ -330,7 +330,7 @@ static struct clockdomain *clockdomains_omap[] = { &mdm_clkdm,#endif -#ifdef CONFIG_ARCH_OMAP24XX +#ifdef CONFIG_ARCH_OMAP2 &dsp_clkdm, &gfx_24xx_clkdm, &core_l3_24xx_clkdm,
arch/arm/mach-omap2/io.c +1 -1
@@ -53,7 +53,7 @@* default mapping provided here. */ -#ifdef CONFIG_ARCH_OMAP24XX +#ifdef CONFIG_ARCH_OMAP2 static struct map_desc omap24xx_io_desc[] __initdata = { { .virtual = L3_24XX_VIRT,
arch/arm/mach-omap2/mux.c +1 -1
@@ -75,7 +75,7 @@ void omap_mux_write_array(struct omap_board_mux *board_mux) } } -#if defined(CONFIG_ARCH_OMAP24XX ) && defined(CONFIG_OMAP_MUX ) +#if defined(CONFIG_ARCH_OMAP2 ) && defined(CONFIG_OMAP_MUX )static struct omap_mux_cfg arch_mux_cfg;
arch/arm/mach-omap2/powerdomains.h +1 -1
@@ -157,7 +157,7 @@ static struct powerdomain *powerdomains_omap[] __initdata = { &gfx_pwrdm, &wkup_pwrdm, -#ifdef CONFIG_ARCH_OMAP24XX +#ifdef CONFIG_ARCH_OMAP2 &dsp_pwrdm, &mpu_24xx_pwrdm, &core_24xx_pwrdm,
arch/arm/mach-omap2/powerdomains24xx.h +2 -2
@@ -30,7 +30,7 @@/* 24XX powerdomains and dependencies */ -#ifdef CONFIG_ARCH_OMAP24XX +#ifdef CONFIG_ARCH_OMAP2 /* Wakeup dependency source arrays */
@@ -164,7 +164,7 @@ static struct powerdomain core_24xx_pwrdm = { }, }; -#endif /* CONFIG_ARCH_OMAP24XX */ +#endif /* CONFIG_ARCH_OMAP2 */
arch/arm/plat-omap/Kconfig +2 -2
@@ -124,7 +124,7 @@ config OMAP_MPU_TIMER config OMAP_32K_TIMER bool "Use 32KHz timer" - depends on ARCH_OMAP16XX || ARCH_OMAP24XX || ARCH_OMAP34XX || ARCH_OMAP4 + depends on ARCH_OMAP16XX || ARCH_OMAP2 || ARCH_OMAP34XX || ARCH_OMAP4 help Select this option if you want to enable the OMAP 32KHz timer. This timer saves power compared to the OMAP_MPU_TIMER, and has
@@ -145,7 +145,7 @@ config OMAP_32K_TIMER_HZ config OMAP_DM_TIMER bool "Use dual-mode timer" - depends on ARCH_OMAP16XX || ARCH_OMAP24XX || ARCH_OMAP34XX || ARCH_OMAP4 + depends on ARCH_OMAP16XX || ARCH_OMAP2 || ARCH_OMAP34XX || ARCH_OMAP4 help Select this option if you want to use OMAP Dual-Mode timers.
arch/arm/plat-omap/devices.c +1 -1
@@ -244,7 +244,7 @@ fail:#if defined(CONFIG_HW_RANDOM_OMAP ) || defined(CONFIG_HW_RANDOM_OMAP_MODULE ) -#ifdef CONFIG_ARCH_OMAP24XX +#ifdef CONFIG_ARCH_OMAP2 #define OMAP_RNG_BASE 0x480A0000#else #define OMAP_RNG_BASE 0xfffe5000
arch/arm/plat-omap/gpio.c +28 -28
222 lines not on this page · raw message
arch/arm/plat-omap/i2c.c +2 -2
@@ -50,7 +50,7 @@ static const char name[] = "i2c_omap";static struct resource i2c_resources[][2 ] = { {I2C_RESOURCE_BUILDER (0 ,0 ) }, -#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) +#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP34XX) {I2C_RESOURCE_BUILDER (OMAP2_I2C_BASE2 ,INT_24XX_I2C2_IRQ ) }, #endif #if defined(CONFIG_ARCH_OMAP34XX)
@@ -72,7 +72,7 @@ static struct resource i2c_resources[][2] = {static u32 i2c_rate[ARRAY_SIZE (i2c_resources)];static struct platform_device omap_i2c_devices[] = {I2C_DEV_BUILDER (1 , i2c_resources[0 ], &i2c_rate[0 ]), -#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) +#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP34XX)I2C_DEV_BUILDER (2 , i2c_resources[1 ], &i2c_rate[1 ]), #endif #if defined(CONFIG_ARCH_OMAP34XX)
arch/arm/plat-omap/include/plat/cpu.h +4 -4
@@ -114,7 +114,7 @@ unsigned int omap_rev(void);# define OMAP_NAME omap16xx# endif #endif -#if (defined(CONFIG_ARCH_OMAP24XX ) || defined(CONFIG_ARCH_OMAP34XX )) +#if (defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP34XX ))# if (defined(OMAP_NAME ) || defined(MULTI_OMAP1 ))# error "OMAP1 and OMAP2 can't be selected at the same time"# endif
@@ -232,7 +232,7 @@ IS_OMAP_SUBCLASS(443x, 0x443)#endif #if defined(MULTI_OMAP2 ) -# if defined(CONFIG_ARCH_OMAP24XX ) +# if defined(CONFIG_ARCH_OMAP2 )# undef cpu_is_omap24xx# undef cpu_is_omap242x# undef cpu_is_omap243x
@@ -247,7 +247,7 @@ IS_OMAP_SUBCLASS(443x, 0x443)# define cpu_is_omap343x () is_omap343x()# endif #else -# if defined(CONFIG_ARCH_OMAP24XX ) +# if defined(CONFIG_ARCH_OMAP2 )# undef cpu_is_omap24xx# define cpu_is_omap24xx () 1# endif
@@ -371,7 +371,7 @@ IS_OMAP_TYPE(3517, 0x3517)# define cpu_is_omap1710 () is_omap1710()#endif -#if defined(CONFIG_ARCH_OMAP24XX ) +#if defined(CONFIG_ARCH_OMAP2 )# undef cpu_is_omap2420# undef cpu_is_omap2422# undef cpu_is_omap2423
arch/arm/plat-omap/include/plat/mcbsp.h +1 -1
@@ -103,7 +103,7 @@#define AUDIO_DMA_TX OMAP_DMA_MCBSP1_TX#define AUDIO_DMA_RX OMAP_DMA_MCBSP1_RX -#elif defined(CONFIG_ARCH_OMAP24XX ) || defined(CONFIG_ARCH_OMAP34XX ) || \ +#elif defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP34XX ) || \ defined(CONFIG_ARCH_OMAP4 )#define OMAP_MCBSP_REG_DRR2 0x00
arch/arm/plat-omap/include/plat/menelaus.h +1 -1
@@ -40,7 +40,7 @@ extern int menelaus_set_vcore_hw(unsigned int roof_mV, unsigned int floor_mV);extern int menelaus_set_regulator_sleep (int enable,u32 val); -#if defined(CONFIG_ARCH_OMAP24XX ) && defined(CONFIG_MENELAUS ) +#if defined(CONFIG_ARCH_OMAP2 ) && defined(CONFIG_MENELAUS )#define omap_has_menelaus () 1#else #define omap_has_menelaus () 0
arch/arm/plat-omap/include/plat/mux.h +1 -1
@@ -135,7 +135,7 @@ struct pin_config {const unsigned int mux_reg;unsigned char debug; -#if defined(CONFIG_ARCH_OMAP1 ) || defined(CONFIG_ARCH_OMAP24XX ) +#if defined(CONFIG_ARCH_OMAP1 ) || defined(CONFIG_ARCH_OMAP2 )const unsigned char mask_offset;const unsigned char mask;
arch/arm/plat-omap/include/plat/omap24xx.h +3 -3
@@ -23,8 +23,8 @@* */ -#ifndef __ASM_ARCH_OMAP24XX_H -#define __ASM_ARCH_OMAP24XX_H +#ifndef __ASM_ARCH_OMAP2_H +#define __ASM_ARCH_OMAP2_H/* * Please place only base defines here and put the rest in device
@@ -85,5 +85,5 @@#define OMAP24XX_SEC_AES_BASE (OMAP24XX_SEC_BASE + 0x6000)#define OMAP24XX_SEC_PKA_BASE (OMAP24XX_SEC_BASE + 0x8000) -#endif /* __ASM_ARCH_OMAP24XX_H */ +#endif /* __ASM_ARCH_OMAP2_H */
arch/arm/plat-omap/sram.c +1 -1
@@ -53,7 +53,7 @@#define OMAP4_SRAM_PUB_PA (OMAP4_SRAM_PA + 0x4000)#define OMAP4_SRAM_PUB_VA (OMAP4_SRAM_VA + 0x4000) -#if defined(CONFIG_ARCH_OMAP24XX ) || defined(CONFIG_ARCH_OMAP34XX ) +#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP34XX )#define SRAM_BOOTLOADER_SZ 0x00#else #define SRAM_BOOTLOADER_SZ 0x80
drivers/char/hw_random/Kconfig +1 -1
@@ -114,7 +114,7 @@ config HW_RANDOM_IXP4XX config HW_RANDOM_OMAP tristate "OMAP Random Number Generator support" - depends on HW_RANDOM && (ARCH_OMAP16XX || ARCH_OMAP24XX) + depends on HW_RANDOM && (ARCH_OMAP16XX || ARCH_OMAP2) default HW_RANDOM ---help--- This driver provides kernel-side support for the Random Number
drivers/mfd/Kconfig +1 -1
@@ -94,7 +94,7 @@ config TPS65010 config MENELAUS bool "Texas Instruments TWL92330/Menelaus PM chip" - depends on I2C=y && ARCH_OMAP24XX + depends on I2C=y && ARCH_OMAP2 help If you say yes here you get support for the Texas Instruments TWL92330/Menelaus Power Management chip. This include voltage
drivers/net/smc911x.h +1 -1
@@ -47,7 +47,7 @@#define SMC_USE_32BIT 1#define SMC_IRQ_SENSE IRQF_TRIGGER_LOW#define SMC_MEM_RESERVED 1 -#elif defined(CONFIG_ARCH_OMAP24XX ) +#elif defined(CONFIG_ARCH_OMAP2 )#define SMC_USE_16BIT 0#define SMC_USE_32BIT 1#define SMC_IRQ_SENSE IRQF_TRIGGER_LOW
drivers/spi/Kconfig +1 -1
@@ -164,7 +164,7 @@ config SPI_OMAP_UWIRE config SPI_OMAP24XX tristate "McSPI driver for OMAP24xx/OMAP34xx" - depends on ARCH_OMAP24XX || ARCH_OMAP34XX + depends on ARCH_OMAP2 || ARCH_OMAP34XX help SPI master controller for OMAP24xx/OMAP34xx Multichannel SPI (McSPI) modules.
drivers/watchdog/Kconfig +1 -1
@@ -194,7 +194,7 @@ config EP93XX_WATCHDOG config OMAP_WATCHDOG tristate "OMAP Watchdog" - depends on ARCH_OMAP16XX || ARCH_OMAP24XX || ARCH_OMAP34XX + depends on ARCH_OMAP16XX || ARCH_OMAP2 || ARCH_OMAP34XX help Support for TI OMAP1610/OMAP1710/OMAP2420/OMAP3430 watchdog. Say 'Y' here to enable the OMAP1610/OMAP1710/OMAP2420/OMAP3430 watchdog timer.
sound/soc/omap/omap-mcbsp.c +1 -1
@@ -82,7 +82,7 @@ static const int omap1_dma_reqs[][2] = {};static const unsigned long omap1_mcbsp_port[][2 ] = {};#endif -#if defined(CONFIG_ARCH_OMAP24XX ) || defined(CONFIG_ARCH_OMAP34XX ) +#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP34XX )static const int omap24xx_dma_reqs[][2 ] = { {OMAP24XX_DMA_MCBSP1_TX ,OMAP24XX_DMA_MCBSP1_RX }, { OMAP24XX_DMA_MCBSP2_TX, OMAP24XX_DMA_MCBSP2_RX },
Tony Lindgren
maintainerPATCH 10/14 omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3
In reply to Tony LindgrenReplace ARCH_OMAP34XX with ARCH_OMAP3
--- arch/arm/mach-omap2/Kconfig | 37 ++++++++---------- arch/arm/mach-omap2/clockdomains.h | 6 +-- arch/arm/mach-omap2/io.c | 4 +- arch/arm/mach-omap2/mcbsp.c | 2 - arch/arm/mach-omap2/mux.c | 4 +- arch/arm/mach-omap2/mux.h | 2 - arch/arm/mach-omap2/omap_hwmod_34xx.h | 2 - arch/arm/mach-omap2/powerdomains.h | 2 - arch/arm/mach-omap2/powerdomains34xx.h | 4 +- arch/arm/plat-omap/Kconfig | 5 +- arch/arm/plat-omap/common.c | 2 - arch/arm/plat-omap/gpio.c | 58 ++++++++++++++-------------- arch/arm/plat-omap/i2c.c | 8 ++-- arch/arm/plat-omap/include/plat/cpu.h | 8 ++-- arch/arm/plat-omap/include/plat/io.h | 2 - arch/arm/plat-omap/include/plat/mcbsp.h | 8 ++-- arch/arm/plat-omap/include/plat/omap34xx.h | 6 +-- arch/arm/plat-omap/mcbsp.c | 6 +-- arch/arm/plat-omap/sram.c | 2 - drivers/net/smc911x.h | 2 - drivers/spi/Kconfig | 2 - drivers/spi/omap2_mcspi.c | 2 - drivers/usb/Kconfig | 2 - drivers/usb/host/ehci-hcd.c | 2 - drivers/usb/musb/Kconfig | 6 +-- drivers/usb/musb/musb_core.c | 2 - drivers/usb/musb/musb_core.h | 2 - drivers/w1/masters/Kconfig | 2 - drivers/watchdog/Kconfig | 2 - sound/soc/omap/omap-mcbsp.c | 6 +-- sound/soc/omap/omap-mcbsp.h | 2 - 31 files changed, 98 insertions(+), 102 deletions(-)
arch/arm/mach-omap2/Kconfig +16 -21
@@ -11,14 +11,9 @@ config ARCH_OMAP2430 bool "OMAP2430 support" depends on ARCH_OMAP2 -config ARCH_OMAP34XX - bool "OMAP34xx Based System" - depends on ARCH_OMAP3 - select USB_ARCH_HAS_EHCI - config ARCH_OMAP3430 bool "OMAP3430 support" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select ARCH_OMAP_OTG config OMAP_PACKAGE_CBC
@@ -60,42 +55,42 @@ config MACH_OMAP_2430SDP config MACH_OMAP3_BEAGLE bool "OMAP3 BEAGLE board" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB config MACH_OMAP_LDP bool "OMAP3 LDP board" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB config MACH_OVERO bool "Gumstix Overo board" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB config MACH_OMAP3EVM bool "OMAP 3530 EVM board" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB config MACH_OMAP3517EVM bool "OMAP3517/ AM3517 EVM board" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB config MACH_OMAP3_PANDORA bool "OMAP3 Pandora" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB config MACH_OMAP3_TOUCHBOOK bool "OMAP3 Touch Book" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select BACKLIGHT_CLASS_DEVICE config MACH_OMAP_3430SDP bool "OMAP 3430 SDP board" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB config MACH_NOKIA_N800
@@ -116,33 +111,33 @@ config MACH_NOKIA_N8X0 config MACH_NOKIA_RX51 bool "Nokia RX-51 board" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB config MACH_OMAP_ZOOM2 bool "OMAP3 Zoom2 board" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB config MACH_OMAP_ZOOM3 bool "OMAP3630 Zoom3 board" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CBP config MACH_CM_T35 bool "CompuLab CM-T35 module" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CUS select OMAP_MUX config MACH_IGEP0020 bool "IGEP0020" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CBB config MACH_OMAP_3630SDP bool "OMAP3630 SDP board" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 select OMAP_PACKAGE_CBP config MACH_OMAP_4430SDP
@@ -158,7 +153,7 @@ config OMAP3_EMU config OMAP3_SDRC_AC_TIMING bool "Enable SDRC AC timing register changes" - depends on ARCH_OMAP3 && ARCH_OMAP34XX + depends on ARCH_OMAP3 default n help If you know that none of your system initiators will attempt to
arch/arm/mach-omap2/clockdomains.h +3 -3
@@ -143,7 +143,7 @@ static struct clockdomain dss_24xx_clkdm = {* 34xx clockdomains */ -#if defined(CONFIG_ARCH_OMAP34XX ) +#if defined(CONFIG_ARCH_OMAP3 )static struct clockdomain mpu_34xx_clkdm = { .name = "mpu_clkdm",
@@ -290,7 +290,7 @@ static struct clockdomain dpll5_clkdm = { .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES2), }; -#endif /* CONFIG_ARCH_OMAP34XX */ +#endif /* CONFIG_ARCH_OMAP3 */ /* * Clockdomain-powerdomain hwsup dependencies (34XX only)
@@ -338,7 +338,7 @@ static struct clockdomain *clockdomains_omap[] = { &dss_24xx_clkdm,#endif -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 &mpu_34xx_clkdm, &neon_clkdm, &iva2_clkdm,
arch/arm/mach-omap2/io.c +2 -2
@@ -123,7 +123,7 @@ static struct map_desc omap243x_io_desc[] __initdata = {#endif #endif -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 static struct map_desc omap34xx_io_desc[] __initdata = { { .virtual = L3_34XX_VIRT,
@@ -267,7 +267,7 @@ void __init omap243x_map_common_io() }#endif -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 void __init omap34xx_map_common_io () {iotable_init (omap34xx_io_desc,ARRAY_SIZE (omap34xx_io_desc));
arch/arm/mach-omap2/mcbsp.c +1 -1
@@ -119,7 +119,7 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {#define OMAP2430_MCBSP_PDATA_SZ 0#endif -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = { { .phys_base = OMAP34XX_MCBSP1_BASE,
arch/arm/mach-omap2/mux.c +2 -2
@@ -369,7 +369,7 @@ int __init omap2_mux_init(void)/*----------------------------------------------------------------------------*/ -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 static LIST_HEAD (muxmodes);static DEFINE_MUTEX (muxmode_mutex);
@@ -1010,5 +1010,5 @@ int __init omap_mux_init(u32 mux_pbase, u32 mux_size, return 0; } -#endif /* CONFIG_ARCH_OMAP34XX */ +#endif /* CONFIG_ARCH_OMAP3 */
arch/arm/mach-omap2/mux.h +1 -1
@@ -102,7 +102,7 @@ struct omap_board_mux {u16 value; }; -#if defined(CONFIG_OMAP_MUX ) && defined(CONFIG_ARCH_OMAP34XX ) +#if defined(CONFIG_OMAP_MUX ) && defined(CONFIG_ARCH_OMAP3 )/** * omap_mux_init_gpio - initialize a signal based on the GPIO number
arch/arm/mach-omap2/omap_hwmod_34xx.h +1 -1
@@ -12,7 +12,7 @@#ifndef __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_OMAP_HWMOD34XX_H#define __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_OMAP_HWMOD34XX_H -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 #include <plat/omap_hwmod.h> #include <mach/irqs.h>
arch/arm/mach-omap2/powerdomains.h +1 -1
@@ -167,7 +167,7 @@ static struct powerdomain *powerdomains_omap[] __initdata = { &mdm_pwrdm,#endif -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 &iva2_pwrdm, &mpu_34xx_pwrdm, &neon_pwrdm,
arch/arm/mach-omap2/powerdomains34xx.h +2 -2
@@ -32,7 +32,7 @@* 34XX-specific powerdomains, dependencies */ -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 /* * 3430: PM_WKDEP_{PER,USBHOST}: CORE, IVA2, MPU, WKUP
@@ -386,7 +386,7 @@ static struct powerdomain dpll5_pwrdm = { }; -#endif /* CONFIG_ARCH_OMAP34XX */ +#endif /* CONFIG_ARCH_OMAP3 */ #endif
arch/arm/plat-omap/Kconfig +3 -2
@@ -30,6 +30,7 @@ config ARCH_OMAP3 bool "TI OMAP3" depends on ARCH_OMAP2PLUS select CPU_V7 + select USB_ARCH_HAS_EHCI config ARCH_OMAP4 bool "TI OMAP4"
@@ -124,7 +125,7 @@ config OMAP_MPU_TIMER config OMAP_32K_TIMER bool "Use 32KHz timer" - depends on ARCH_OMAP16XX || ARCH_OMAP2 || ARCH_OMAP34XX || ARCH_OMAP4 + depends on ARCH_OMAP16XX || ARCH_OMAP2 || ARCH_OMAP3 || ARCH_OMAP4 help Select this option if you want to enable the OMAP 32KHz timer. This timer saves power compared to the OMAP_MPU_TIMER, and has
@@ -145,7 +146,7 @@ config OMAP_32K_TIMER_HZ config OMAP_DM_TIMER bool "Use dual-mode timer" - depends on ARCH_OMAP16XX || ARCH_OMAP2 || ARCH_OMAP34XX || ARCH_OMAP4 + depends on ARCH_OMAP16XX || ARCH_OMAP2 || ARCH_OMAP3 || ARCH_OMAP4 help Select this option if you want to use OMAP Dual-Mode timers.
arch/arm/plat-omap/common.c +1 -1
@@ -127,7 +127,7 @@ static cycle_t omap2430_32k_read(struct clocksource *cs)#define omap2430_32k_read NULL#endif -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 static cycle_t omap34xx_32k_read (struct clocksource *cs) {return omap_readl (OMAP3430_32KSYNCT_BASE +0x10 );
arch/arm/plat-omap/gpio.c +29 -29
229 lines not on this page · raw message
arch/arm/plat-omap/i2c.c +4 -4
@@ -50,10 +50,10 @@ static const char name[] = "i2c_omap";static struct resource i2c_resources[][2 ] = { {I2C_RESOURCE_BUILDER (0 ,0 ) }, -#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP34XX) +#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) {I2C_RESOURCE_BUILDER (OMAP2_I2C_BASE2 ,INT_24XX_I2C2_IRQ ) }, #endif -#if defined(CONFIG_ARCH_OMAP34XX) +#if defined(CONFIG_ARCH_OMAP3) {I2C_RESOURCE_BUILDER (OMAP2_I2C_BASE3 ,INT_34XX_I2C3_IRQ ) }, #endif };
@@ -72,10 +72,10 @@ static struct resource i2c_resources[][2] = {static u32 i2c_rate[ARRAY_SIZE (i2c_resources)];static struct platform_device omap_i2c_devices[] = {I2C_DEV_BUILDER (1 , i2c_resources[0 ], &i2c_rate[0 ]), -#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP34XX) +#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)I2C_DEV_BUILDER (2 , i2c_resources[1 ], &i2c_rate[1 ]), #endif -#if defined(CONFIG_ARCH_OMAP34XX) +#if defined(CONFIG_ARCH_OMAP3)I2C_DEV_BUILDER (3 , i2c_resources[2 ], &i2c_rate[2 ]), #endif };
arch/arm/plat-omap/include/plat/cpu.h +4 -4
@@ -114,7 +114,7 @@ unsigned int omap_rev(void);# define OMAP_NAME omap16xx# endif #endif -#if (defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP34XX )) +#if (defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ))# if (defined(OMAP_NAME ) || defined(MULTI_OMAP1 ))# error "OMAP1 and OMAP2 can't be selected at the same time"# endif
@@ -240,7 +240,7 @@ IS_OMAP_SUBCLASS(443x, 0x443)# define cpu_is_omap242x () is_omap242x()# define cpu_is_omap243x () is_omap243x()# endif -# if defined(CONFIG_ARCH_OMAP34XX ) +# if defined(CONFIG_ARCH_OMAP3 )# undef cpu_is_omap34xx# undef cpu_is_omap343x# define cpu_is_omap34xx () is_omap34xx()
@@ -259,7 +259,7 @@ IS_OMAP_SUBCLASS(443x, 0x443)# undef cpu_is_omap243x# define cpu_is_omap243x () 1# endif -# if defined(CONFIG_ARCH_OMAP34XX ) +# if defined(CONFIG_ARCH_OMAP3 )# undef cpu_is_omap34xx# define cpu_is_omap34xx () 1# endif
@@ -382,7 +382,7 @@ IS_OMAP_TYPE(3517, 0x3517)# define cpu_is_omap2430 () is_omap2430()#endif -#if defined(CONFIG_ARCH_OMAP34XX ) +#if defined(CONFIG_ARCH_OMAP3 )# undef cpu_is_omap3430# undef cpu_is_omap3503# undef cpu_is_omap3515
arch/arm/plat-omap/include/plat/io.h +1 -1
@@ -284,7 +284,7 @@ static inline void omap243x_map_common_io(void) }#endif -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 extern void omap34xx_map_common_io (void );#else static inline void omap34xx_map_common_io (void )
arch/arm/plat-omap/include/plat/mcbsp.h +4 -4
@@ -103,7 +103,7 @@#define AUDIO_DMA_TX OMAP_DMA_MCBSP1_TX#define AUDIO_DMA_RX OMAP_DMA_MCBSP1_RX -#elif defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP34XX ) || \ +#elif defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ defined(CONFIG_ARCH_OMAP4 )#define OMAP_MCBSP_REG_DRR2 0x00
@@ -374,7 +374,7 @@ struct omap_mcbsp_platform_data {u8 dma_rx_sync, dma_tx_sync;u16 rx_irq, tx_irq;struct omap_mcbsp_ops *ops; -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 u16 buffer_size;#endif };
@@ -410,7 +410,7 @@ struct omap_mcbsp {struct omap_mcbsp_platform_data *pdata;struct clk *iclk;struct clk *fclk; -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 int dma_op_mode;u16 max_tx_thres;u16 max_rx_thres;
@@ -423,7 +423,7 @@ int omap_mcbsp_init(void);void omap_mcbsp_register_board_cfg (struct omap_mcbsp_platform_data *config,int size);void omap_mcbsp_config (unsigned int id,const struct omap_mcbsp_reg_cfg * config); -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 void omap_mcbsp_set_tx_threshold (unsigned int id,u16 threshold);void omap_mcbsp_set_rx_threshold (unsigned int id,u16 threshold);u16 omap_mcbsp_get_max_tx_threshold (unsigned int id);
arch/arm/plat-omap/include/plat/omap34xx.h +3 -3
@@ -21,8 +21,8 @@* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef __ASM_ARCH_OMAP34XX_H -#define __ASM_ARCH_OMAP34XX_H +#ifndef __ASM_ARCH_OMAP3_H +#define __ASM_ARCH_OMAP3_H/* * Please place only base defines here and put the rest in device
@@ -82,5 +82,5 @@#define OMAP34XX_MAILBOX_BASE (L4_34XX_BASE + 0x94000) -#endif /* __ASM_ARCH_OMAP34XX_H */ +#endif /* __ASM_ARCH_OMAP3_H */
arch/arm/plat-omap/mcbsp.c +3 -3
@@ -198,7 +198,7 @@ void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg *config) }EXPORT_SYMBOL (omap_mcbsp_config); -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 /* * omap_mcbsp_set_tx_threshold configures how to deal * with transmit threshold. the threshold value and handler can be
@@ -1107,7 +1107,7 @@ void omap_mcbsp_set_spi_mode(unsigned int id, }EXPORT_SYMBOL (omap_mcbsp_set_spi_mode); -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 #define max_thres (m) (mcbsp->pdata->buffer_size)#define valid_threshold (m, val) ((val) <= max_thres(m))#define THRESHOLD_PROP_BUILDER (prop) \
@@ -1246,7 +1246,7 @@ static inline void __devexit omap34xx_device_exit(struct omap_mcbsp *mcbsp)#else static inline void __devinit omap34xx_device_init (struct omap_mcbsp *mcbsp) {} static inline void __devexit omap34xx_device_exit(struct omap_mcbsp *mcbsp) {} -#endif /* CONFIG_ARCH_OMAP34XX */ +#endif /* CONFIG_ARCH_OMAP3 */ /* * McBSP1 and McBSP3 are directly mapped on 1610 and 1510.
arch/arm/plat-omap/sram.c +1 -1
@@ -53,7 +53,7 @@#define OMAP4_SRAM_PUB_PA (OMAP4_SRAM_PA + 0x4000)#define OMAP4_SRAM_PUB_VA (OMAP4_SRAM_VA + 0x4000) -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP34XX ) +#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 )#define SRAM_BOOTLOADER_SZ 0x00#else #define SRAM_BOOTLOADER_SZ 0x80
drivers/net/smc911x.h +1 -1
@@ -42,7 +42,7 @@#define SMC_USE_16BIT 0#define SMC_USE_32BIT 1#define SMC_IRQ_SENSE IRQF_TRIGGER_LOW -#elif defined(CONFIG_ARCH_OMAP34XX ) +#elif defined(CONFIG_ARCH_OMAP3 )#define SMC_USE_16BIT 0#define SMC_USE_32BIT 1#define SMC_IRQ_SENSE IRQF_TRIGGER_LOW
drivers/spi/Kconfig +1 -1
@@ -164,7 +164,7 @@ config SPI_OMAP_UWIRE config SPI_OMAP24XX tristate "McSPI driver for OMAP24xx/OMAP34xx" - depends on ARCH_OMAP2 || ARCH_OMAP34XX + depends on ARCH_OMAP2 || ARCH_OMAP3 help SPI master controller for OMAP24xx/OMAP34xx Multichannel SPI (McSPI) modules.
drivers/spi/omap2_mcspi.c +1 -1
@@ -1014,7 +1014,7 @@ static u8 __initdata spi2_txdma_id[] = { OMAP24XX_DMA_SPI2_TX1, }; -#if defined(CONFIG_ARCH_OMAP2430 ) || defined(CONFIG_ARCH_OMAP34XX ) \ +#if defined(CONFIG_ARCH_OMAP2430 ) || defined(CONFIG_ARCH_OMAP3 ) \ || defined(CONFIG_ARCH_OMAP4 )static u8 __initdata spi3_rxdma_id[] = { OMAP24XX_DMA_SPI3_RX0,
drivers/usb/Kconfig +1 -1
@@ -61,7 +61,7 @@ config USB_ARCH_HAS_EHCI default y if ARCH_W90X900 default y if ARCH_AT91SAM9G45 default y if ARCH_MXC - default y if ARCH_OMAP34XX + default y if ARCH_OMAP3 default PCI # ARM SA1111 chips have a non-PCI based "OHCI-compatible" USB host interface.
drivers/usb/host/ehci-hcd.c +1 -1
@@ -1118,7 +1118,7 @@ MODULE_LICENSE ("GPL");#define PLATFORM_DRIVER ehci_hcd_au1xxx_driver#endif -#ifdef CONFIG_ARCH_OMAP34XX +#ifdef CONFIG_ARCH_OMAP3 #include "ehci-omap.c" #define PLATFORM_DRIVER ehci_hcd_omap_driver#endif
drivers/usb/musb/Kconfig +3 -3
@@ -37,7 +37,7 @@ config USB_MUSB_SOC depends on USB_MUSB_HDRC default y if ARCH_DAVINCI default y if ARCH_OMAP2430 - default y if ARCH_OMAP34XX + default y if ARCH_OMAP3 default y if (BF54x && !BF544) default y if (BF52x && !BF522 && !BF523)
@@ -48,7 +48,7 @@ comment "OMAP 243x high speed USB support" depends on USB_MUSB_HDRC && ARCH_OMAP2430 comment "OMAP 343x high speed USB support" - depends on USB_MUSB_HDRC && ARCH_OMAP34XX + depends on USB_MUSB_HDRC && ARCH_OMAP3 comment "Blackfin high speed USB Support" depends on USB_MUSB_HDRC && ((BF54x && !BF544) || (BF52x && !BF522 && !BF523))
@@ -153,7 +153,7 @@ config MUSB_PIO_ONLY config USB_INVENTRA_DMA bool depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY - default ARCH_OMAP2430 || ARCH_OMAP34XX || BLACKFIN + default ARCH_OMAP2430 || ARCH_OMAP3 || BLACKFIN help Enable DMA transfers using Mentor's engine.
drivers/usb/musb/musb_core.c +1 -1
@@ -1000,7 +1000,7 @@ static void musb_shutdown(struct platform_device *pdev)* more than selecting one of a bunch of predefined configurations. */ #if defined(CONFIG_USB_TUSB6010 ) || \ - defined(CONFIG_ARCH_OMAP2430 ) || defined(CONFIG_ARCH_OMAP34XX ) + defined(CONFIG_ARCH_OMAP2430 ) || defined(CONFIG_ARCH_OMAP3 )static ushort __initdata fifo_mode =4 ;#else static ushort __initdata fifo_mode =2 ;
drivers/usb/musb/musb_core.h +1 -1
@@ -562,7 +562,7 @@ extern void musb_hnp_stop(struct musb *musb);extern int musb_platform_set_mode (struct musb *musb,u8 musb_mode);#if defined(CONFIG_USB_TUSB6010 ) || defined(CONFIG_BLACKFIN ) || \ - defined(CONFIG_ARCH_OMAP2430 ) || defined(CONFIG_ARCH_OMAP34XX ) + defined(CONFIG_ARCH_OMAP2430 ) || defined(CONFIG_ARCH_OMAP3 )extern void musb_platform_try_idle (struct musb *musb,unsigned long timeout);#else #define musb_platform_try_idle (x, y) do {} while (0)
drivers/w1/masters/Kconfig +1 -1
@@ -60,7 +60,7 @@ config W1_MASTER_GPIO config HDQ_MASTER_OMAP tristate "OMAP HDQ driver" - depends on ARCH_OMAP2430 || ARCH_OMAP34XX + depends on ARCH_OMAP2430 || ARCH_OMAP3 help Say Y here if you want support for the 1-wire or HDQ Interface on an OMAP processor.
drivers/watchdog/Kconfig +1 -1
@@ -194,7 +194,7 @@ config EP93XX_WATCHDOG config OMAP_WATCHDOG tristate "OMAP Watchdog" - depends on ARCH_OMAP16XX || ARCH_OMAP2 || ARCH_OMAP34XX + depends on ARCH_OMAP16XX || ARCH_OMAP2 || ARCH_OMAP3 help Support for TI OMAP1610/OMAP1710/OMAP2420/OMAP3430 watchdog. Say 'Y' here to enable the OMAP1610/OMAP1710/OMAP2420/OMAP3430 watchdog timer.
sound/soc/omap/omap-mcbsp.c +3 -3
@@ -82,11 +82,11 @@ static const int omap1_dma_reqs[][2] = {};static const unsigned long omap1_mcbsp_port[][2 ] = {};#endif -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP34XX ) +#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 )static const int omap24xx_dma_reqs[][2 ] = { {OMAP24XX_DMA_MCBSP1_TX ,OMAP24XX_DMA_MCBSP1_RX }, {OMAP24XX_DMA_MCBSP2_TX ,OMAP24XX_DMA_MCBSP2_RX }, -#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP34XX) +#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3) {OMAP24XX_DMA_MCBSP3_TX ,OMAP24XX_DMA_MCBSP3_RX }, {OMAP24XX_DMA_MCBSP4_TX ,OMAP24XX_DMA_MCBSP4_RX }, { OMAP24XX_DMA_MCBSP5_TX, OMAP24XX_DMA_MCBSP5_RX },
@@ -124,7 +124,7 @@ static const unsigned long omap2430_mcbsp_port[][2] = {static const unsigned long omap2430_mcbsp_port[][2 ] = {};#endif -#if defined(CONFIG_ARCH_OMAP34XX ) +#if defined(CONFIG_ARCH_OMAP3 )static const unsigned long omap34xx_mcbsp_port[][2 ] = { {OMAP34XX_MCBSP1_BASE +OMAP_MCBSP_REG_DXR , OMAP34XX_MCBSP1_BASE + OMAP_MCBSP_REG_DRR },
sound/soc/omap/omap-mcbsp.h +1 -1
@@ -50,7 +50,7 @@ enum omap_mcbsp_div {#undef NUM_LINKS#define NUM_LINKS 3#endif -#if defined(CONFIG_ARCH_OMAP2430 ) || defined(CONFIG_ARCH_OMAP34XX ) +#if defined(CONFIG_ARCH_OMAP2430 ) || defined(CONFIG_ARCH_OMAP3 )#undef NUM_LINKS#define NUM_LINKS 5#endif
Tony Lindgren
maintainerPATCH 11/14 omap2/3/4: Replace orred CONFIG_ARCH_OMAP2/3/4 with CONFIG_ARCH_OMAP2PLUS
In reply to Tony Lindgrenomap: Replace orred CONFIG_ARCH_OMAP2/3/4 with CONFIG_ARCH_OMAP2PLUS
--- arch/arm/mach-omap2/Kconfig | 2 +- arch/arm/plat-omap/Kconfig | 4 ++- arch/arm/plat-omap/dma.c | 3 +- arch/arm/plat-omap/dmtimer.c | 12 +++------- arch/arm/plat-omap/gpio.c | 36 ++++++++++------------------- arch/arm/plat-omap/include/plat/clock.h | 6 ++--- arch/arm/plat-omap/include/plat/control.h | 3 +- arch/arm/plat-omap/include/plat/mcbsp.h | 3 +- arch/arm/plat-omap/include/plat/memory.h | 3 +- 9 files changed, 25 insertions(+), 47 deletions(-)
arch/arm/mach-omap2/Kconfig +1 -1
@@ -29,7 +29,7 @@ config OMAP_PACKAGE_CBP bool comment "OMAP Board Type" - depends on ARCH_OMAP2 || ARCH_OMAP3 || ARCH_OMAP4 + depends on ARCH_OMAP2PLUS config MACH_OMAP_GENERIC bool "Generic OMAP board"
arch/arm/plat-omap/Kconfig +2 -2
@@ -125,7 +125,7 @@ config OMAP_MPU_TIMER config OMAP_32K_TIMER bool "Use 32KHz timer" - depends on ARCH_OMAP16XX || ARCH_OMAP2 || ARCH_OMAP3 || ARCH_OMAP4 + depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS help Select this option if you want to enable the OMAP 32KHz timer. This timer saves power compared to the OMAP_MPU_TIMER, and has
@@ -146,7 +146,7 @@ config OMAP_32K_TIMER_HZ config OMAP_DM_TIMER bool "Use dual-mode timer" - depends on ARCH_OMAP16XX || ARCH_OMAP2 || ARCH_OMAP3 || ARCH_OMAP4 + depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS help Select this option if you want to use OMAP Dual-Mode timers.
arch/arm/plat-omap/dma.c +1 -2
@@ -1870,8 +1870,7 @@ static irqreturn_t omap1_dma_irq_handler(int irq, void *dev_id)#define omap1_dma_irq_handler NULL#endif -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS static int omap2_dma_handle_ch (int ch) {
arch/arm/plat-omap/dmtimer.c +4 -8
@@ -153,8 +153,7 @@struct omap_dm_timer {unsigned long phys_base;int irq; -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS struct clk *iclk, *fclk;#endif void __iomem *io_base;
@@ -490,8 +489,7 @@ __u32 omap_dm_timer_modify_idlect_mask(__u32 inputmask) }EXPORT_SYMBOL_GPL (omap_dm_timer_modify_idlect_mask); -#elif defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \ - defined(CONFIG_ARCH_OMAP4) +#else struct clk *omap_dm_timer_get_fclk (struct omap_dm_timer *timer) {
@@ -535,8 +533,7 @@ void omap_dm_timer_stop(struct omap_dm_timer *timer)if (l &OMAP_TIMER_CTRL_ST ) { l &= ~0x1 ;omap_dm_timer_write_reg (timer,OMAP_TIMER_CTRL_REG , l); -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS /* Readback to make sure write has completed */ omap_dm_timer_read_reg (timer,OMAP_TIMER_CTRL_REG );/*
@@ -781,8 +778,7 @@ int __init omap_dm_timer_init(void) timer->io_base =ioremap (timer->phys_base, map_size);BUG_ON (!timer->io_base); -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS if (cpu_class_is_omap2 ()) {char clk_name[16 ];sprintf (clk_name,"gpt%d_ick" , i +1 );
arch/arm/plat-omap/gpio.c +12 -24
@@ -177,13 +177,11 @@ struct gpio_bank {u16 irq;u16 virtual_irq_start;int method; -#if defined(CONFIG_ARCH_OMAP16XX ) || defined(CONFIG_ARCH_OMAP2 ) || \ - defined(CONFIG_ARCH_OMAP3 ) || defined(CONFIG_ARCH_OMAP4 ) +#if defined(CONFIG_ARCH_OMAP16XX ) || defined(CONFIG_ARCH_OMAP2PLUS )u32 suspend_wakeup;u32 saved_wakeup;#endif -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS u32 non_wakeup_gpios;u32 enabled_non_wakeup_gpios;
@@ -592,8 +590,7 @@ static int _get_gpio_dataout(struct gpio_bank *bank, int gpio) reg +=OMAP7XX_GPIO_DATA_OUTPUT ;break ;#endif -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS case METHOD_GPIO_24XX : reg +=OMAP24XX_GPIO_DATAOUT ;break ;
@@ -684,8 +681,7 @@ void omap_set_gpio_debounce_time(int gpio, int enc_time) }EXPORT_SYMBOL (omap_set_gpio_debounce_time); -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS static inline void set_24xx_gpio_triggering (struct gpio_bank *bank,int gpio,int trigger) {
@@ -856,8 +852,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) goto bad;break ;#endif -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS case METHOD_GPIO_24XX :set_24xx_gpio_triggering (bank, gpio, trigger);break ;
@@ -1131,8 +1126,7 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)spin_unlock_irqrestore (&bank->lock, flags);return 0 ;#endif -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS case METHOD_GPIO_24XX :if (bank->non_wakeup_gpios & (1 << gpio)) { printk(KERN_ERR "Unable to modify wakeup on "
@@ -1227,8 +1221,7 @@ static void omap_gpio_free(struct gpio_chip *chip, unsigned offset)__raw_writel (1 << offset, reg); }#endif -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS if (bank->method ==METHOD_GPIO_24XX ) {/* Disable wake-up during idle for dynamic tick */ void __iomem *reg = bank->base +OMAP24XX_GPIO_CLEARWKUENA ;
@@ -1809,8 +1802,7 @@ static int __init _omap_gpio_init(void) gpio_count =32 ;/* 7xx has 32-bit GPIOs */ } -#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \ - defined(CONFIG_ARCH_OMAP4) +#ifdef CONFIG_ARCH_OMAP2PLUS if (bank->method == METHOD_GPIO_24XX) { static const u32 non_wakeup_gpios[] = { 0xe203ffc0, 0x08700040
@@ -1903,8 +1895,7 @@ static int __init _omap_gpio_init(void)return 0 ; } -#if defined(CONFIG_ARCH_OMAP16XX ) || defined(CONFIG_ARCH_OMAP2 ) || \ - defined(CONFIG_ARCH_OMAP3 ) || defined(CONFIG_ARCH_OMAP4 ) +#if defined(CONFIG_ARCH_OMAP16XX ) || defined(CONFIG_ARCH_OMAP2PLUS )static int omap_gpio_suspend (struct sys_device *dev,pm_message_t mesg) {int i;
@@ -2013,8 +2004,7 @@ static struct sys_device omap_gpio_device = {#endif -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS static int workaround_enabled;
@@ -2240,8 +2230,7 @@ static int __init omap_gpio_sysinit(void)mpuio_init (); -#if defined(CONFIG_ARCH_OMAP16XX ) || defined(CONFIG_ARCH_OMAP2 ) || \ - defined(CONFIG_ARCH_OMAP3 ) || defined(CONFIG_ARCH_OMAP4 ) +#if defined(CONFIG_ARCH_OMAP16XX ) || defined(CONFIG_ARCH_OMAP2PLUS )if (cpu_is_omap16xx () ||cpu_class_is_omap2 ()) {if (ret ==0 ) { ret =sysdev_class_register (&omap_gpio_sysclass);
@@ -2300,8 +2289,7 @@ static int dbg_gpio_show(struct seq_file *s, void *unused)/* FIXME for at least omap2, show pullup/pulldown state */ irqstat = irq_desc[irq].status; -#if defined(CONFIG_ARCH_OMAP16XX ) || defined(CONFIG_ARCH_OMAP2 ) || \ - defined(CONFIG_ARCH_OMAP3 ) || defined(CONFIG_ARCH_OMAP4 ) +#if defined(CONFIG_ARCH_OMAP16XX ) || defined(CONFIG_ARCH_OMAP2PLUS )if (is_in && ((bank->suspend_wakeup & mask) || irqstat &IRQ_TYPE_SENSE_MASK )) {char *trigger =NULL ;
arch/arm/plat-omap/include/plat/clock.h +2 -4
@@ -26,8 +26,7 @@ struct clkops {void (*find_companion)(struct clk *,void __iomem **,u8 *); }; -#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \ - defined(CONFIG_ARCH_OMAP4) +#ifdef CONFIG_ARCH_OMAP2PLUS struct clksel_rate { u32 val;
@@ -88,8 +87,7 @@ struct clk {void (*init)(struct clk *);__u8 enable_bit;__s8 usecount; -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS u8 fixed_div;void __iomem *clksel_reg;u32 clksel_mask;
arch/arm/plat-omap/include/plat/control.h +1 -2
@@ -292,8 +292,7 @@#ifndef __ASSEMBLY__ -#if defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#ifdef CONFIG_ARCH_OMAP2PLUS extern void __iomem *omap_ctrl_base_get (void );extern u8 omap_ctrl_readb (u16 offset);extern u16 omap_ctrl_readw (u16 offset);
arch/arm/plat-omap/include/plat/mcbsp.h +1 -2
@@ -103,8 +103,7 @@#define AUDIO_DMA_TX OMAP_DMA_MCBSP1_TX#define AUDIO_DMA_RX OMAP_DMA_MCBSP1_RX -#elif defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#else #define OMAP_MCBSP_REG_DRR2 0x00#define OMAP_MCBSP_REG_DRR1 0x04
arch/arm/plat-omap/include/plat/memory.h +1 -2
@@ -38,8 +38,7 @@*/ #if defined(CONFIG_ARCH_OMAP1 )#define PHYS_OFFSET UL(0x10000000) -#elif defined(CONFIG_ARCH_OMAP2 ) || defined(CONFIG_ARCH_OMAP3 ) || \ - defined(CONFIG_ARCH_OMAP4 ) +#else #define PHYS_OFFSET UL(0x80000000)#endif
Tony Lindgren
maintainerPATCH 12/14 omap2/3: Fix initcalls for multi-omap
In reply to Tony LindgrenOtherwise the wrong initcalls can run.
--- arch/arm/mach-omap2/clock2xxx.c | 2 +- arch/arm/mach-omap2/clock34xx.c | 2 +- arch/arm/mach-omap2/emu.c | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-)
arch/arm/mach-omap2/clock2xxx.c +1 -1
@@ -598,7 +598,7 @@ static int __init omap2_clk_arch_init(void)struct clk *virt_prcm_set, *sys_ck, *dpll_ck, *mpu_ck;unsigned long sys_ck_rate; -if (!mpurate) +if (!(cpu_is_omap24xx () && mpurate))return -EINVAL ; virt_prcm_set =clk_get (NULL ,"virt_prcm_set" );
arch/arm/mach-omap2/clock34xx.c +1 -1
@@ -317,7 +317,7 @@ static int __init omap2_clk_arch_init(void)struct clk *osc_sys_ck, *dpll1_ck, *arm_fck, *core_ck;unsigned long osc_sys_rate; -if (!mpurate) +if (!(cpu_is_omap34xx () && mpurate))return -EINVAL ;/* XXX test these for success */
arch/arm/mach-omap2/emu.c +3 -0
@@ -56,6 +56,9 @@ static struct amba_device omap3_etm_device = {static int __init emu_init (void ) { +if (!cpu_is_omap34xx ()) +return -ENODEV ; +amba_device_register (&omap3_etb_device, &iomem_resource);amba_device_register (&omap3_etm_device, &iomem_resource);
Re: [PATCH 12/14] omap2/3: Fix initcalls for multi-omap
Quoted 7 lines · Tony Lindgren
Otherwise the wrong initcalls can run.
Signed-off-by Tony Lindgren <[email protected]>--- arch/arm/mach-omap2/clock2xxx.c | 2 +- arch/arm/mach-omap2/clock34xx.c | 2 +- arch/arm/mach-omap2/emu.c | 3 +++
May I ask what stopped you from CCing me on this patch?
Quoted 35 lines
3 files changed, 5 insertions(+), 2 deletions(-)arch/arm/mach-omap2/clock2xxx.c +1
-1@@ -598,7 +598,7 @@ static int __init omap2_clk_arch_init(void)struct clk *virt_prcm_set, *sys_ck, *dpll_ck, *mpu_ck;unsigned long sys_ck_rate; -if (!mpurate) +if (!(cpu_is_omap24xx () && mpurate))return -EINVAL ; virt_prcm_set =clk_get (NULL ,"virt_prcm_set" );arch/arm/mach-omap2/clock34xx.c +1
-1@@ -317,7 +317,7 @@ static int __init omap2_clk_arch_init(void)struct clk *osc_sys_ck, *dpll1_ck, *arm_fck, *core_ck;unsigned long osc_sys_rate; -if (!mpurate) +if (!(cpu_is_omap34xx () && mpurate))return -EINVAL ;/* XXX test these for success */ arch/arm/mach-omap2/emu.c +0
-0
arch/arm/mach-omap2/emu.c static struct amba_device omap3_etm_device = { · line 64
Quoted 9 lines
arch/arm/mach-omap2/emu.c +3
-0@@ -56,6 +56,9 @@ static struct amba_device omap3_etm_device = {static int __init emu_init (void ) { +if (!cpu_is_omap34xx ()) +return -ENODEV ; +amba_device_register (&omap3_etb_device, &iomem_resource);amba_device_register (&omap3_etm_device, &iomem_resource);
Regards,
--
Alex
Tony Lindgren
maintainerPATCH 12/14 omap2/3: Fix initcalls for multi-omap
Quoted 10 lines · Alexander Shishkin
Quoted 7 lines · Tony Lindgren
Otherwise the wrong initcalls can run.
Signed-off-by Tony Lindgren <[email protected]>--- arch/arm/mach-omap2/clock2xxx.c | 2 +- arch/arm/mach-omap2/clock34xx.c | 2 +- arch/arm/mach-omap2/emu.c | 3 +++May I ask what stopped you from CCing me on this patch?
Hmm, sorry I don't follow you. Did I accidentally leave out something?
Regards,
Tony
Quoted 48 lines
Quoted 35 lines
3 files changed, 5 insertions(+), 2 deletions(-)arch/arm/mach-omap2/clock2xxx.c +1
-1@@ -598,7 +598,7 @@ static int __init omap2_clk_arch_init(void)struct clk *virt_prcm_set, *sys_ck, *dpll_ck, *mpu_ck;unsigned long sys_ck_rate; -if (!mpurate) +if (!(cpu_is_omap24xx () && mpurate))return -EINVAL ; virt_prcm_set =clk_get (NULL ,"virt_prcm_set" );arch/arm/mach-omap2/clock34xx.c +1
-1@@ -317,7 +317,7 @@ static int __init omap2_clk_arch_init(void)struct clk *osc_sys_ck, *dpll1_ck, *arm_fck, *core_ck;unsigned long osc_sys_rate; -if (!mpurate) +if (!(cpu_is_omap34xx () && mpurate))return -EINVAL ;/* XXX test these for success */ arch/arm/mach-omap2/emu.c +0
-0arch/arm/mach-omap2/emu.c static struct amba_device omap3_etm_device = { · line 64
Quoted 9 lines
arch/arm/mach-omap2/emu.c +3
-0@@ -56,6 +56,9 @@ static struct amba_device omap3_etm_device = {static int __init emu_init (void ) { +if (!cpu_is_omap34xx ()) +return -ENODEV ; +amba_device_register (&omap3_etb_device, &iomem_resource);amba_device_register (&omap3_etm_device, &iomem_resource);Regards,
--
Alex
Tony Lindgren
maintainerPATCH 13/14 omap2/3: Fix powerdomain init for multiomap
In reply to Tony LindgrenOtherwise we'll an error when booting a kernel with both CONFIG_ARCH_OMAP2 and CONFIG_ARCH_OMAP3 compiled in:
Unhandled fault: imprecise external abort (0xc06) at 0x00000000
...
Note that the same problem may still exist when trying to boot a kernel with 2420 and 2430 both compiled in. We currently cannot test this as the clock framework needs updating to support booting 2420 and 2430 compiled in.
--- arch/arm/mach-omap2/io.c | 13 +++++++++---- arch/arm/mach-omap2/powerdomains.h | 23 +++++++++++++++++------ 2 files changed, 26 insertions(+), 10 deletions(-)
arch/arm/mach-omap2/io.c +9 -4
@@ -320,21 +320,26 @@ static int __init _omap2_init_reprogram_sdrc(void)void __init omap2_init_common_hw (struct omap_sdrc_params *sdrc_cs0,struct omap_sdrc_params *sdrc_cs1) { +struct powerdomain **pwrdm =NULL ;struct omap_hwmod **hwmods =NULL ; -if (cpu_is_omap2420 ()) +if (cpu_is_omap2420 ()) { + pwrdm = powerdomains_omap2; hwmods = omap2420_hwmods; -else if (cpu_is_omap2430 ()) + }else if (cpu_is_omap2430 ()) { + pwrdm = powerdomains_omap2; hwmods = omap2430_hwmods; -else if (cpu_is_omap34xx ()) + }else if (cpu_is_omap34xx ()) { + pwrdm = powerdomains_omap3; hwmods = omap34xx_hwmods; + }#ifndef CONFIG_ARCH_OMAP4 /* FIXME: Remove this once the clkdev is ready */ /* The OPP tables have to be registered before a clk init */ omap_hwmod_init (hwmods);omap2_mux_init ();omap_pm_if_early_init (mpu_opps, dsp_opps, l3_opps); -pwrdm_init (powerdomains_omap); +pwrdm_init (pwrdm);clkdm_init (clockdomains_omap, clkdm_pwrdm_autodeps);#endif omap2_clk_init ();
arch/arm/mach-omap2/powerdomains.h +17 -6
@@ -152,22 +152,33 @@ static struct powerdomain wkup_pwrdm = {/* As powerdomains are added or removed above, this list must also be changed */ -static struct powerdomain *powerdomains_omap[]__initdata = { + +#ifdef CONFIG_ARCH_OMAP2 +static struct powerdomain *powerdomains_omap2[]__initdata = { &gfx_pwrdm, &wkup_pwrdm, -#ifdef CONFIG_ARCH_OMAP2 &dsp_pwrdm, &mpu_24xx_pwrdm, &core_24xx_pwrdm, -#endif #ifdef CONFIG_ARCH_OMAP2430 &mdm_pwrdm, #endif +NULL +}; +#else +#define powerdomains_omap2 NULL +#endif +#ifdef CONFIG_ARCH_OMAP3 +static struct powerdomain *powerdomains_omap3[]__initdata = { + + &gfx_pwrdm, + &wkup_pwrdm, + &iva2_pwrdm, &mpu_34xx_pwrdm, &neon_pwrdm,
@@ -184,10 +195,10 @@ static struct powerdomain *powerdomains_omap[] __initdata = { &dpll3_pwrdm, &dpll4_pwrdm, &dpll5_pwrdm, -#endif -NULL }; - +#else +#define powerdomains_omap3 NULL +#endif #endif
Paul Walmsley
maintainerPATCH 13/14 omap2/3: Fix powerdomain init for multiomap
Hi Tony,
Quoted 6 lines · Tony Lindgren
Otherwise we'll an error when booting a kernel with both
CONFIG_ARCH_OMAP2andCONFIG_ARCH_OMAP3compiled in:Unhandled fault: imprecise external abort (
0xc06) at0x00000000
...
Quoted 6 lines
Note that the same problem may still exist when trying to boot a kernel with 2420 and 2430 both compiled in. We currently cannot test this as the clock framework needs updating to support booting 2420 and 2430 compiled in.
Signed-off-by Tony Lindgren <[email protected]>
This patch shouldn't be needed after merging the clock-related patches queued up for 2.6.34; one of those patches inadvertently fixes the underlying problem (_pwrdm_setup() called even if pwrdm_register() fails due to commit ba20bb126940ce4847e146a0d00b7f7b0868d773).
Thanks for all the debugging time that you put into tracking this one down,
- Paul
Tony Lindgren
maintainerPATCH 13/14 omap2/3: Fix powerdomain init for multiomap
Quoted 17 lines · Paul Walmsley
Hi Tony,
Quoted 6 lines · Tony Lindgren
Otherwise we'll an error when booting a kernel with both
CONFIG_ARCH_OMAP2andCONFIG_ARCH_OMAP3compiled in:Unhandled fault: imprecise external abort (
0xc06) at0x00000000
...Quoted 6 lines
Note that the same problem may still exist when trying to boot a kernel with 2420 and 2430 both compiled in. We currently cannot test this as the clock framework needs updating to support booting 2420 and 2430 compiled in.
Signed-off-by Tony Lindgren <[email protected]>
Quoted 7 lines
This patch shouldn't be needed after merging the clock-related patches queued up for 2.6.34; one of those patches inadvertently fixes the underlying problem (
_pwrdm_setup()called even ifpwrdm_register()fails due to commitba20bb126940ce4847e146a0d00b7f7b0868d773).Thanks for all the debugging time that you put into tracking this one down,
No problem, I've rebased the patches in multi-omap branch on top of your series which simplifies this series a bit :)
Tony
Tony Lindgren
maintainerPATCH 14/14 omap2/3: Update omap3_defconfig to build in all the 2420 based boards
In reply to Tony LindgrenNote that booting 2420 depends on another patch posted earlier to not select CONFIG_CPU_32v6K if CONFIG_ARCH_OMAP2 is selected.
Also note that we cannot add omap2430 in yet because of the different clock addresses compared to 2420. Also note that we cannot have CONFIG_CPU_32v6K=y in order to boot on 24xx.
--- arch/arm/configs/omap3_defconfig | 174 ++++++++++++++++++++++++++++++-------- 1 files changed, 138 insertions(+), 36 deletions(-)
arch/arm/configs/omap3_defconfig +138 -36
@@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.32-rc8 -# Tue Dec 1 14:04:02 2009 +# Linux kernel version: 2.6.33-rc5 +# Tue Jan 26 11:05:31 2010 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -20,6 +20,8 @@ CONFIG_ARCH_HAS_CPUFREQ=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y +CONFIG_OPROFILE_ARMV6=y +CONFIG_OPROFILE_ARM11_CORE=y CONFIG_OPROFILE_ARMV7=y CONFIG_VECTORS_BASE=0xffff0000 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -33,6 +35,12 @@ CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_LZO is not set CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y
@@ -48,6 +56,7 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_TREE_RCU=y # CONFIG_TREE_PREEMPT_RCU is not set +# CONFIG_TINY_RCU is not set # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=32 # CONFIG_RCU_FANOUT_EXACT is not set
@@ -69,6 +78,7 @@ CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y # CONFIG_RD_BZIP2 is not set # CONFIG_RD_LZMA is not set +# CONFIG_RD_LZO is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_ANON_INODES=y
@@ -133,14 +143,41 @@ CONFIG_LBDAF=y # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +# CONFIG_INLINE_SPIN_UNLOCK is not set +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +# CONFIG_INLINE_READ_UNLOCK is not set +# CONFIG_INLINE_READ_UNLOCK_BH is not set +# CONFIG_INLINE_READ_UNLOCK_IRQ is not set +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +# CONFIG_INLINE_WRITE_UNLOCK is not set +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +# CONFIG_MUTEX_SPIN_ON_OWNER is not set CONFIG_FREEZER=y #
@@ -169,6 +206,7 @@ CONFIG_MMU=y # CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_DOVE is not set # CONFIG_ARCH_KIRKWOOD is not set # CONFIG_ARCH_LOKI is not set # CONFIG_ARCH_MV78XX0 is not set
@@ -191,21 +229,23 @@ CONFIG_MMU=y # CONFIG_ARCH_DAVINCI is not set CONFIG_ARCH_OMAP=y # CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_U8500 is not set # # TI OMAP Implementations # CONFIG_ARCH_OMAP_OTG=y # CONFIG_ARCH_OMAP1 is not set -# CONFIG_ARCH_OMAP2 is not set +CONFIG_ARCH_OMAP2PLUS=y +CONFIG_ARCH_OMAP2=y CONFIG_ARCH_OMAP3=y # CONFIG_ARCH_OMAP4 is not set # # OMAP Feature Selections # -# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set -# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set +CONFIG_OMAP_DEBUG_DEVICES=y +CONFIG_OMAP_DEBUG_LEDS=y CONFIG_OMAP_RESET_CLOCKS=y CONFIG_OMAP_MUX=y CONFIG_OMAP_MUX_DEBUG=y
@@ -216,43 +256,65 @@ CONFIG_OMAP_MCBSP=y CONFIG_OMAP_32K_TIMER=y CONFIG_OMAP_32K_TIMER_HZ=128 CONFIG_OMAP_DM_TIMER=y -# CONFIG_OMAP_LL_DEBUG_UART1 is not set -# CONFIG_OMAP_LL_DEBUG_UART2 is not set -# CONFIG_OMAP_LL_DEBUG_UART3 is not set -CONFIG_OMAP_LL_DEBUG_NONE=y # CONFIG_OMAP_PM_NONE is not set CONFIG_OMAP_PM_NOOP=y -CONFIG_ARCH_OMAP34XX=y +CONFIG_MACH_OMAP_GENERIC=y + +# +# OMAP Core Type +# +CONFIG_ARCH_OMAP2420=y +# CONFIG_ARCH_OMAP2430 is not set CONFIG_ARCH_OMAP3430=y +CONFIG_OMAP_PACKAGE_CBB=y +CONFIG_OMAP_PACKAGE_CUS=y +CONFIG_OMAP_PACKAGE_CBP=y # # OMAP Board Type # +CONFIG_MACH_OMAP2_TUSB6010=y +CONFIG_MACH_OMAP_H4=y +CONFIG_MACH_OMAP_APOLLON=y +# CONFIG_MACH_OMAP_2430SDP is not set CONFIG_MACH_OMAP3_BEAGLE=y CONFIG_MACH_OMAP_LDP=y CONFIG_MACH_OVERO=y CONFIG_MACH_OMAP3EVM=y CONFIG_MACH_OMAP3517EVM=y CONFIG_MACH_OMAP3_PANDORA=y +CONFIG_MACH_OMAP3_TOUCHBOOK=y CONFIG_MACH_OMAP_3430SDP=y +CONFIG_MACH_NOKIA_N800=y +CONFIG_MACH_NOKIA_N810=y +CONFIG_MACH_NOKIA_N810_WIMAX=y +CONFIG_MACH_NOKIA_N8X0=y CONFIG_MACH_NOKIA_RX51=y CONFIG_MACH_OMAP_ZOOM2=y CONFIG_MACH_OMAP_ZOOM3=y CONFIG_MACH_CM_T35=y CONFIG_MACH_IGEP0020=y CONFIG_MACH_OMAP_3630SDP=y +# CONFIG_OMAP3_EMU is not set +# CONFIG_OMAP3_SDRC_AC_TIMING is not set # # Processor Type # -CONFIG_CPU_32v6K=y +CONFIG_CPU_V6=y +# CONFIG_CPU_32v6K is not set CONFIG_CPU_V7=y +CONFIG_CPU_32v6=y CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV6=y CONFIG_CPU_ABRT_EV7=y +CONFIG_CPU_PABRT_V6=y CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_CACHE_V6=y CONFIG_CPU_CACHE_V7=y CONFIG_CPU_CACHE_VIPT=y CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V6=y CONFIG_CPU_TLB_V7=y CONFIG_CPU_HAS_ASID=y CONFIG_CPU_CP15=y
@@ -268,6 +330,7 @@ CONFIG_ARM_THUMBEE=y # CONFIG_CPU_BPREDICT_DISABLE is not set CONFIG_HAS_TLS_REG=y CONFIG_ARM_L1_CACHE_SHIFT=6 +# CONFIG_ARM_ERRATA_411920 is not set # CONFIG_ARM_ERRATA_430973 is not set # CONFIG_ARM_ERRATA_458693 is not set # CONFIG_ARM_ERRATA_460075 is not set
@@ -308,12 +371,10 @@ CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_SPLIT_PTLOCK_CPUS=999999 # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=0 CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y # CONFIG_KSM is not set CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_LEDS=y
@@ -509,15 +570,18 @@ CONFIG_BT_HCIBPA10X=y # CONFIG_BT_MRVL is not set # CONFIG_AF_RXRPC is not set CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y CONFIG_CFG80211=y # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set CONFIG_CFG80211_DEFAULT_PS=y -CONFIG_CFG80211_DEFAULT_PS_VALUE=1 # CONFIG_CFG80211_DEBUGFS is not set CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y +CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=y # CONFIG_LIB80211_DEBUG is not set
@@ -671,6 +735,7 @@ CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_DRBD is not set # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y
@@ -681,9 +746,12 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_ATA_OVER_ETH is not set # CONFIG_MG_DISK is not set CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set # CONFIG_ICS932S401 is not set # CONFIG_ENCLOSURE_SERVICES is not set # CONFIG_ISL29003 is not set +# CONFIG_DS1682 is not set +# CONFIG_TI_DAC7512 is not set # CONFIG_C2PORT is not set #
@@ -694,6 +762,7 @@ CONFIG_MISC_DEVICES=y CONFIG_EEPROM_LEGACY=y # CONFIG_EEPROM_MAX6875 is not set # CONFIG_EEPROM_93CX6 is not set +# CONFIG_IWMC3200TOP is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set
@@ -792,28 +861,26 @@ CONFIG_SMSC911X=y CONFIG_NETDEV_1000=y CONFIG_NETDEV_10000=y CONFIG_WLAN=y -# CONFIG_WLAN_PRE80211 is not set -CONFIG_WLAN_80211=y -CONFIG_LIBERTAS=y -CONFIG_LIBERTAS_USB=y -CONFIG_LIBERTAS_SDIO=y -# CONFIG_LIBERTAS_SPI is not set -CONFIG_LIBERTAS_DEBUG=y # CONFIG_LIBERTAS_THINFIRM is not set # CONFIG_AT76C50X_USB is not set # CONFIG_USB_ZD1201 is not set # CONFIG_USB_NET_RNDIS_WLAN is not set # CONFIG_RTL8187 is not set # CONFIG_MAC80211_HWSIM is not set -# CONFIG_P54_COMMON is not set # CONFIG_ATH_COMMON is not set -# CONFIG_HOSTAP is not set # CONFIG_B43 is not set # CONFIG_B43LEGACY is not set -# CONFIG_ZD1211RW is not set +# CONFIG_HOSTAP is not set +# CONFIG_IWM is not set +CONFIG_LIBERTAS=y +CONFIG_LIBERTAS_USB=y +CONFIG_LIBERTAS_SDIO=y +# CONFIG_LIBERTAS_SPI is not set +CONFIG_LIBERTAS_DEBUG=y +# CONFIG_P54_COMMON is not set # CONFIG_RT2X00 is not set # CONFIG_WL12XX is not set -# CONFIG_IWM is not set +# CONFIG_ZD1211RW is not set # # Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -861,6 +928,7 @@ CONFIG_USB_NET_ZAURUS=y CONFIG_INPUT=y # CONFIG_INPUT_FF_MEMLESS is not set # CONFIG_INPUT_POLLDEV is not set +# CONFIG_INPUT_SPARSEKMAP is not set # # Userland interfaces
@@ -889,6 +957,7 @@ CONFIG_KEYBOARD_GPIO=y # CONFIG_KEYBOARD_OPENCORES is not set # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_OMAP is not set CONFIG_KEYBOARD_TWL4030=y # CONFIG_KEYBOARD_XTKBD is not set CONFIG_INPUT_MOUSE=y
@@ -914,6 +983,7 @@ CONFIG_TOUCHSCREEN_ADS7846=y # CONFIG_TOUCHSCREEN_AD7879_I2C is not set # CONFIG_TOUCHSCREEN_AD7879_SPI is not set # CONFIG_TOUCHSCREEN_AD7879 is not set +# CONFIG_TOUCHSCREEN_DYNAPRO is not set # CONFIG_TOUCHSCREEN_EETI is not set # CONFIG_TOUCHSCREEN_FUJITSU is not set # CONFIG_TOUCHSCREEN_GUNZE is not set
@@ -948,6 +1018,7 @@ CONFIG_SERIO=y CONFIG_SERIO_SERPORT=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set # CONFIG_GAMEPORT is not set #
@@ -986,6 +1057,7 @@ CONFIG_UNIX98_PTYS=y # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=y # CONFIG_HW_RANDOM_TIMERIOMEM is not set +CONFIG_HW_RANDOM_OMAP=y # CONFIG_R3964 is not set # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set
@@ -1024,7 +1096,6 @@ CONFIG_I2C_OMAP=y # # Miscellaneous I2C Chip support # -# CONFIG_DS1682 is not set # CONFIG_SENSORS_TSL2550 is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set
@@ -1040,6 +1111,8 @@ CONFIG_SPI_MASTER=y # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_GPIO is not set CONFIG_SPI_OMAP24XX=y +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_DESIGNWARE is not set # # SPI Protocol Masters
@@ -1067,6 +1140,7 @@ CONFIG_GPIO_SYSFS=y # CONFIG_GPIO_PCA953X is not set # CONFIG_GPIO_PCF857X is not set CONFIG_GPIO_TWL4030=y +# CONFIG_GPIO_ADP5588 is not set # # PCI GPIO expanders:
@@ -1141,6 +1215,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_IT87 is not set # CONFIG_SENSORS_LM63 is not set # CONFIG_SENSORS_LM70 is not set +# CONFIG_SENSORS_LM73 is not set # CONFIG_SENSORS_LM75 is not set # CONFIG_SENSORS_LM77 is not set # CONFIG_SENSORS_LM78 is not set
@@ -1166,6 +1241,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_SMSC47M192 is not set # CONFIG_SENSORS_SMSC47B397 is not set # CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_AMC6821 is not set # CONFIG_SENSORS_THMC50 is not set # CONFIG_SENSORS_TMP401 is not set # CONFIG_SENSORS_TMP421 is not set
@@ -1179,6 +1255,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set # CONFIG_SENSORS_LIS3_SPI is not set +# CONFIG_SENSORS_LIS3_I2C is not set # CONFIG_THERMAL is not set CONFIG_WATCHDOG=y CONFIG_WATCHDOG_NOWAYOUT=y
@@ -1204,20 +1281,22 @@ CONFIG_SSB_POSSIBLE=y # # Multifunction device drivers # -# CONFIG_MFD_CORE is not set +CONFIG_MFD_CORE=y # CONFIG_MFD_SM501 is not set # CONFIG_MFD_ASIC3 is not set # CONFIG_HTC_EGPIO is not set # CONFIG_HTC_PASIC3 is not set # CONFIG_TPS65010 is not set +# CONFIG_MENELAUS is not set CONFIG_TWL4030_CORE=y # CONFIG_TWL4030_POWER is not set -# CONFIG_TWL4030_CODEC is not set +CONFIG_TWL4030_CODEC=y # CONFIG_MFD_TMIO is not set # CONFIG_MFD_T7L66XB is not set # CONFIG_MFD_TC6387XB is not set # CONFIG_MFD_TC6393XB is not set # CONFIG_PMIC_DA903X is not set +# CONFIG_PMIC_ADP5520 is not set # CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM831X is not set # CONFIG_MFD_WM8350_I2C is not set
@@ -1225,6 +1304,8 @@ CONFIG_TWL4030_CORE=y # CONFIG_MFD_MC13783 is not set # CONFIG_AB3100_CORE is not set # CONFIG_EZX_PCAP is not set +# CONFIG_MFD_88PM8607 is not set +# CONFIG_AB4500_CORE is not set CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set CONFIG_REGULATOR_FIXED_VOLTAGE=y
@@ -1232,6 +1313,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set # CONFIG_REGULATOR_BQ24022 is not set # CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8660 is not set CONFIG_REGULATOR_TWL4030=y # CONFIG_REGULATOR_LP3971 is not set # CONFIG_REGULATOR_TPS65023 is not set
@@ -1267,6 +1349,7 @@ CONFIG_FB_TILEBLITTING=y # # CONFIG_FB_UVESA is not set # CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_TMIO is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set
@@ -1281,6 +1364,7 @@ CONFIG_FB_OMAP_079M3R=y # CONFIG_FB_OMAP_LCD_MIPID is not set # CONFIG_FB_OMAP_BOOTLOADER_INIT is not set CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2 +# CONFIG_OMAP2_DSS is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=y # CONFIG_LCD_LMS283GF05 is not set
@@ -1364,12 +1448,15 @@ CONFIG_SND_USB_AUDIO=y CONFIG_SND_SOC=y CONFIG_SND_OMAP_SOC=y CONFIG_SND_OMAP_SOC_MCBSP=y +# CONFIG_SND_OMAP_SOC_N810 is not set # CONFIG_SND_OMAP_SOC_OVERO is not set # CONFIG_SND_OMAP_SOC_OMAP3EVM is not set +# CONFIG_SND_OMAP_SOC_AM3517EVM is not set # CONFIG_SND_OMAP_SOC_SDP3430 is not set CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=y # CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE is not set # CONFIG_SND_OMAP_SOC_ZOOM2 is not set +# CONFIG_SND_OMAP_SOC_IGEP0020 is not set CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_ALL_CODECS is not set CONFIG_SND_SOC_TWL4030=y
@@ -1418,7 +1505,7 @@ CONFIG_USB_HID=y CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y -# CONFIG_USB_ARCH_HAS_EHCI is not set +CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=y CONFIG_USB_DEBUG=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
@@ -1441,6 +1528,7 @@ CONFIG_USB_MON=y # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set +# CONFIG_USB_EHCI_HCD is not set # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set
@@ -1556,16 +1644,18 @@ CONFIG_USB_GADGET_SELECTED=y # CONFIG_USB_GADGET_LANGWELL is not set # CONFIG_USB_GADGET_DUMMY_HCD is not set CONFIG_USB_GADGET_DUALSPEED=y -CONFIG_USB_ZERO=y +CONFIG_USB_ZERO=m # CONFIG_USB_ZERO_HNPTEST is not set # CONFIG_USB_AUDIO is not set # CONFIG_USB_ETH is not set # CONFIG_USB_GADGETFS is not set # CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_MASS_STORAGE is not set # CONFIG_USB_G_SERIAL is not set # CONFIG_USB_MIDI_GADGET is not set # CONFIG_USB_G_PRINTER is not set # CONFIG_USB_CDC_COMPOSITE is not set +# CONFIG_USB_G_MULTI is not set # # OTG and related infrastructure
@@ -1573,6 +1663,7 @@ CONFIG_USB_ZERO=y CONFIG_USB_OTG_UTILS=y # CONFIG_USB_GPIO_VBUS is not set # CONFIG_ISP1301_OMAP is not set +# CONFIG_USB_ULPI is not set CONFIG_TWL4030_USB=y CONFIG_NOP_USB_XCEIV=y CONFIG_MMC=y
@@ -1609,7 +1700,9 @@ CONFIG_LEDS_GPIO_PLATFORM=y # CONFIG_LEDS_LP3944 is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_DAC124S085 is not set +# CONFIG_LEDS_REGULATOR is not set # CONFIG_LEDS_BD2802 is not set +# CONFIG_LEDS_LT3593 is not set # # LED Triggers
@@ -1653,6 +1746,7 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set CONFIG_RTC_DRV_TWL4030=y # CONFIG_RTC_DRV_S35390A is not set # CONFIG_RTC_DRV_FM3130 is not set
@@ -1683,7 +1777,9 @@ CONFIG_RTC_DRV_TWL4030=y # CONFIG_RTC_DRV_M48T86 is not set # CONFIG_RTC_DRV_M48T35 is not set # CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set # CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set # CONFIG_RTC_DRV_V3020 is not set #
@@ -1951,6 +2047,7 @@ CONFIG_DEBUG_INFO=y # CONFIG_LKDTM is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set +# CONFIG_SYSCTL_SYSCALL_CHECK is not set # CONFIG_PAGE_POISONING is not set CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y
@@ -1983,7 +2080,9 @@ CONFIG_ARM_UNWIND=y # CONFIG_DEBUG_ERRORS is not set # CONFIG_DEBUG_STACK_USAGE is not set CONFIG_DEBUG_LL=y +# CONFIG_EARLY_PRINTK is not set # CONFIG_DEBUG_ICEDCC is not set +# CONFIG_OC_ETM is not set # # Security options
@@ -1993,9 +2092,12 @@ CONFIG_SECURITY=y # CONFIG_SECURITYFS is not set # CONFIG_SECURITY_NETWORK is not set # CONFIG_SECURITY_PATH is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set -# CONFIG_SECURITY_ROOTPLUG is not set # CONFIG_SECURITY_TOMOYO is not set +# CONFIG_DEFAULT_SECURITY_SELINUX is not set +# CONFIG_DEFAULT_SECURITY_SMACK is not set +# CONFIG_DEFAULT_SECURITY_TOMOYO is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" CONFIG_CRYPTO=y #
cover omap DEBUG_LL and multiboot changes for 2.6.34
In reply to Tony LindgrenQuoted 6 lines · Tony Lindgren
These patches clean up the
DEBUG_LLcode for mach-omap1 and mach-omap2 and then makes multiboot work for mach-omap2.Note that these patches currently allow only multiboot for 2420 + 36xx. Adding 2430 and omap4 needs further work.
Tony,
Purely out of curiosity (triggered by someone asking about 2430SDP on the list), do you know what it'll take to get mutli-boot working on 2430?
I'm not familiar with those boards of course - does anyone still have them around?
Thanks,
Anand
Tony Lindgren
maintainercover omap DEBUG_LL and multiboot changes for 2.6.34
Quoted 4 lines · Gadiyar, Anand
Quoted 3 lines · Tony Lindgren
These patches clean up the
DEBUG_LLcode for mach-omap1 and mach-omap2 and then makes multiboot work for mach-omap2.
Quoted 8 lines
Quoted 3 lines
Note that these patches currently allow only multiboot for 2420 + 36xx. Adding 2430 and omap4 needs further work.
Tony,
Purely out of curiosity (triggered by someone asking about 2430SDP on the list), do you know what it'll take to get mutli-boot working on 2430?
It should work assuming the debug_ll code worked earlier. Do you have the right serial port connected and CONFIG_EARLYPRINTK enabled? You also need earlyprink on the kernel cmdline.
Quoted 2 lines
I'm not familiar with those boards of course - does anyone still have them around?
Yeah, looks like people are using 2430.
Tony