diff --git a/[refs] b/[refs] index 33b08d3df286..238ab930b385 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 13ea55b04eaafb60cd7df759c8d92566d1f19351 +refs/heads/master: 14f1c3bf51b78d916a6aff9c9b5e6689e3e006e7 diff --git a/trunk/arch/arm/mach-ns9xxx/Kconfig b/trunk/arch/arm/mach-ns9xxx/Kconfig index 8584ed107991..8175ba92a2fa 100644 --- a/trunk/arch/arm/mach-ns9xxx/Kconfig +++ b/trunk/arch/arm/mach-ns9xxx/Kconfig @@ -3,30 +3,19 @@ if ARCH_NS9XXX menu "NS9xxx Implementations" config MACH_CC9P9360DEV - bool "ConnectCore 9P 9360 on an A9M9750 Devboard" + bool "Connect Core 9P 9360 on an A9M9750 Devboard" select PROCESSOR_NS9360 select BOARD_A9M9750DEV help - Say Y here if you are using the Digi ConnectCore 9P 9360 + Say Y here if you are using the Digi Connect Core 9P 9360 on an A9M9750 Development Board. -config MACH_CC9P9360JS - bool "ConnectCore 9P 9360 on a JSCC9P9360 Devboard" - select PROCESSOR_NS9360 - select BOARD_JSCC9P9360 - help - Say Y here if you are using the Digi ConnectCore 9P 9360 - on an JSCC9P9360 Development Board. - config PROCESSOR_NS9360 bool config BOARD_A9M9750DEV bool -config BOARD_JSCC9P9360 - bool - endmenu endif diff --git a/trunk/arch/arm/mach-ns9xxx/Makefile b/trunk/arch/arm/mach-ns9xxx/Makefile index 53213a69f601..91e945f5e16d 100644 --- a/trunk/arch/arm/mach-ns9xxx/Makefile +++ b/trunk/arch/arm/mach-ns9xxx/Makefile @@ -3,4 +3,3 @@ obj-y := irq.o time.o generic.o obj-$(CONFIG_MACH_CC9P9360DEV) += mach-cc9p9360dev.o obj-$(CONFIG_BOARD_A9M9750DEV) += board-a9m9750dev.o -obj-$(CONFIG_BOARD_JSCC9P9360) += board-jscc9p9360.o diff --git a/trunk/arch/arm/mach-ns9xxx/board-jscc9p9360.c b/trunk/arch/arm/mach-ns9xxx/board-jscc9p9360.c deleted file mode 100644 index 4bd3eec04bfe..000000000000 --- a/trunk/arch/arm/mach-ns9xxx/board-jscc9p9360.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - * arch/arm/mach-ns9xxx/board-jscc9p9360.c - * - * Copyright (C) 2006,2007 by Digi International Inc. - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 as published by - * the Free Software Foundation. - */ -#include "board-jscc9p9360.h" - -void __init board_jscc9p9360_init_machine(void) -{ - /* TODO: reserve GPIOs for push buttons, etc pp */ -} - diff --git a/trunk/arch/arm/mach-ns9xxx/board-jscc9p9360.h b/trunk/arch/arm/mach-ns9xxx/board-jscc9p9360.h deleted file mode 100644 index 1a81a074df45..000000000000 --- a/trunk/arch/arm/mach-ns9xxx/board-jscc9p9360.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * arch/arm/mach-ns9xxx/board-jscc9p9360.h - * - * Copyright (C) 2006 by Digi International Inc. - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 as published by - * the Free Software Foundation. - */ -#include - -void __init board_jscc9p9360_init_machine(void); diff --git a/trunk/arch/arm/mach-ns9xxx/mach-cc9p9360js.c b/trunk/arch/arm/mach-ns9xxx/mach-cc9p9360js.c deleted file mode 100644 index d09d5fa5620a..000000000000 --- a/trunk/arch/arm/mach-ns9xxx/mach-cc9p9360js.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * arch/arm/mach-ns9xxx/mach-cc9p9360js.c - * - * Copyright (C) 2006 by Digi International Inc. - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 as published by - * the Free Software Foundation. - */ -#include -#include - -#include "board-jscc9p9360.h" -#include "generic.h" - -static void __init mach_cc9p9360js_init_machine(void) -{ - ns9xxx_init_machine(); - board_jscc9p9360_init_machine(); -} - -MACHINE_START(CC9P9360DEV, "Digi ConnectCore 9P 9360 on an JSCC9P9360 Devboard") - .map_io = ns9xxx_map_io, - .init_irq = ns9xxx_init_irq, - .init_machine = mach_cc9p9360js_init_machine, - .timer = &ns9xxx_timer, - .boot_params = 0x100, -MACHINE_END diff --git a/trunk/arch/arm/plat-omap/gpio.c b/trunk/arch/arm/plat-omap/gpio.c index 8bedc8f9b6e5..037a4930ec61 100644 --- a/trunk/arch/arm/plat-omap/gpio.c +++ b/trunk/arch/arm/plat-omap/gpio.c @@ -1082,6 +1082,10 @@ static int __init _omap_gpio_init(void) if (bank->method == METHOD_GPIO_24XX) { __raw_writel(0x00000000, bank->base + OMAP24XX_GPIO_IRQENABLE1); __raw_writel(0xffffffff, bank->base + OMAP24XX_GPIO_IRQSTATUS1); + __raw_writew(0x0015, bank->base + OMAP24XX_GPIO_SYSCONFIG); + + /* Initialize interface clock ungated, module enabled */ + __raw_writel(0, bank->base + OMAP24XX_GPIO_CTRL); gpio_count = 32; } @@ -1104,6 +1108,12 @@ static int __init _omap_gpio_init(void) if (cpu_is_omap16xx()) omap_writel(omap_readl(ULPD_CAM_CLK_CTRL) | 0x04, ULPD_CAM_CLK_CTRL); +#ifdef CONFIG_ARCH_OMAP24XX + /* Enable autoidle for the OCP interface */ + if (cpu_is_omap24xx()) + omap_writel(1 << 0, 0x48019010); +#endif + return 0; } diff --git a/trunk/include/asm-arm/arch-ns9xxx/board.h b/trunk/include/asm-arm/arch-ns9xxx/board.h index 716f34fdb716..91dc8fb1027f 100644 --- a/trunk/include/asm-arm/arch-ns9xxx/board.h +++ b/trunk/include/asm-arm/arch-ns9xxx/board.h @@ -15,6 +15,4 @@ #define board_is_a9m9750dev() (machine_is_cc9p9360dev()) -#define board_is_jscc9p9360() (machine_is_cc9p9360js()) - #endif /* ifndef __ASM_ARCH_BOARD_H */ diff --git a/trunk/include/asm-arm/arch-ns9xxx/clock.h b/trunk/include/asm-arm/arch-ns9xxx/clock.h index bf30cbdcc2bf..a7c5ab3d9011 100644 --- a/trunk/include/asm-arm/arch-ns9xxx/clock.h +++ b/trunk/include/asm-arm/arch-ns9xxx/clock.h @@ -11,43 +11,13 @@ #ifndef __ASM_ARCH_CLOCK_H #define __ASM_ARCH_CLOCK_H -#include - -#define CRYSTAL 29491200 /* Hz */ - -/* The HRM calls this value f_vco */ static inline u32 ns9xxx_systemclock(void) __attribute__((const)); static inline u32 ns9xxx_systemclock(void) { - u32 pll = SYS_PLL; - /* - * The system clock should be a multiple of HZ * TIMERCLOCKSELECT (in - * time.c). - * - * The following values are given: - * - TIMERCLOCKSELECT == 2^i for an i in {0 .. 6} - * - CRYSTAL == 29491200 == 2^17 * 3^2 * 5^2 - * - ND in {0 .. 31} - * - FS in {0 .. 3} - * - * Assuming the worst, we consider: - * - TIMERCLOCKSELECT == 64 - * - ND == 0 - * - FS == 3 - * - * So HZ should be a divisor of: - * (CRYSTAL * (ND + 1) >> FS) / TIMERCLOCKSELECT - * == (2^17 * 3^2 * 5^2 * 1 >> 3) / 64 - * == 2^8 * 3^2 * 5^2 - * == 57600 - * - * Currently HZ is defined to be 100 for this platform. - * - * Fine. + * This should be a multiple of HZ * TIMERCLOCKSELECT (in time.c) */ - return CRYSTAL * (REGGET(pll, SYS_PLL, ND) + 1) - >> REGGET(pll, SYS_PLL, FS); + return 353894400; } static inline u32 ns9xxx_cpuclock(void) __attribute__((const)); diff --git a/trunk/include/asm-arm/arch-ns9xxx/hardware.h b/trunk/include/asm-arm/arch-ns9xxx/hardware.h index 25600554c4fe..6819da7c48d4 100644 --- a/trunk/include/asm-arm/arch-ns9xxx/hardware.h +++ b/trunk/include/asm-arm/arch-ns9xxx/hardware.h @@ -51,9 +51,8 @@ ~(__REGVAL(reg ## _ ## field, value)))) \ | (__REGVAL(reg ## _ ## field, value)))) -# define REGGET(var, reg, field) \ - ((var & (reg ## _ ## field)) / \ - ((reg ## _ ## field) & (-(reg ## _ ## field)))) +# define REGGET(reg, field) \ + ((reg & (reg ## _ ## field)) / (field & (-field))) #else diff --git a/trunk/include/asm-arm/arch-ns9xxx/processor.h b/trunk/include/asm-arm/arch-ns9xxx/processor.h index 223e51b8e104..716c106ac0bf 100644 --- a/trunk/include/asm-arm/arch-ns9xxx/processor.h +++ b/trunk/include/asm-arm/arch-ns9xxx/processor.h @@ -13,7 +13,6 @@ #include -#define processor_is_ns9360() (machine_is_cc9p9360dev() \ - || machine_is_cc9p9360js()) +#define processor_is_ns9360() (machine_is_cc9p9360dev()) #endif /* ifndef __ASM_ARCH_PROCESSOR_H */ diff --git a/trunk/include/asm-arm/arch-ns9xxx/regs-sys.h b/trunk/include/asm-arm/arch-ns9xxx/regs-sys.h index a42546aeb92a..8162a50bb273 100644 --- a/trunk/include/asm-arm/arch-ns9xxx/regs-sys.h +++ b/trunk/include/asm-arm/arch-ns9xxx/regs-sys.h @@ -48,12 +48,6 @@ /* PLL Configuration register */ #define SYS_PLL __REG(0xa0900188) -/* PLL FS status */ -#define SYS_PLL_FS __REGBITS(24, 23) - -/* PLL ND status */ -#define SYS_PLL_ND __REGBITS(20, 16) - /* PLL Configuration register: PLL SW change */ #define SYS_PLL_SWC __REGBIT(15) #define SYS_PLL_SWC_NO __REGVAL(SYS_PLL_SWC, 0)