Merge 7xx-iosplit-plat-merge with omap-fixes
Merge branch '7xx-iosplit-plat-merge' into omap-for-linus
This commit is contained in:
commit
a76df42a67
@ -25,13 +25,13 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/board-ams-delta.h>
|
||||
#include <plat/board-ams-delta.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
|
||||
static u8 ams_delta_latch1_reg;
|
||||
static u16 ams_delta_latch2_reg;
|
||||
|
@ -26,14 +26,14 @@
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/tc.h>
|
||||
#include <plat/tc.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/fpga.h>
|
||||
#include <mach/nand.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/board.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/fpga.h>
|
||||
#include <plat/nand.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/board.h>
|
||||
|
||||
/* fsample is pretty close to p2-sample */
|
||||
|
||||
@ -107,7 +107,7 @@ static struct resource smc91x_resources[] = {
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = INT_730_MPU_EXT_NIRQ,
|
||||
.start = INT_7XX_MPU_EXT_NIRQ,
|
||||
.end = 0,
|
||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
|
||||
},
|
||||
@ -196,8 +196,8 @@ static struct platform_device smc91x_device = {
|
||||
|
||||
static struct resource kp_resources[] = {
|
||||
[0] = {
|
||||
.start = INT_730_MPUIO_KEYPAD,
|
||||
.end = INT_730_MPUIO_KEYPAD,
|
||||
.start = INT_7XX_MPUIO_KEYPAD,
|
||||
.end = INT_7XX_MPUIO_KEYPAD,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
@ -309,7 +309,7 @@ static void __init omap_fsample_map_io(void)
|
||||
/*
|
||||
* Hold GSM Reset until needed
|
||||
*/
|
||||
omap_writew(omap_readw(OMAP730_DSP_M_CTL) & ~1, OMAP730_DSP_M_CTL);
|
||||
omap_writew(omap_readw(OMAP7XX_DSP_M_CTL) & ~1, OMAP7XX_DSP_M_CTL);
|
||||
|
||||
/*
|
||||
* UARTs -> done automagically by 8250 driver
|
||||
@ -320,21 +320,21 @@ static void __init omap_fsample_map_io(void)
|
||||
*/
|
||||
|
||||
/* Flash: CS0 timings setup */
|
||||
omap_writel(0x0000fff3, OMAP730_FLASH_CFG_0);
|
||||
omap_writel(0x00000088, OMAP730_FLASH_ACFG_0);
|
||||
omap_writel(0x0000fff3, OMAP7XX_FLASH_CFG_0);
|
||||
omap_writel(0x00000088, OMAP7XX_FLASH_ACFG_0);
|
||||
|
||||
/*
|
||||
* Ethernet support through the debug board
|
||||
* CS1 timings setup
|
||||
*/
|
||||
omap_writel(0x0000fff3, OMAP730_FLASH_CFG_1);
|
||||
omap_writel(0x00000000, OMAP730_FLASH_ACFG_1);
|
||||
omap_writel(0x0000fff3, OMAP7XX_FLASH_CFG_1);
|
||||
omap_writel(0x00000000, OMAP7XX_FLASH_ACFG_1);
|
||||
|
||||
/*
|
||||
* Configure MPU_EXT_NIRQ IO in IO_CONF9 register,
|
||||
* It is used as the Ethernet controller interrupt
|
||||
*/
|
||||
omap_writel(omap_readl(OMAP730_IO_CONF_9) & 0x1FFFFFFF, OMAP730_IO_CONF_9);
|
||||
omap_writel(omap_readl(OMAP7XX_IO_CONF_9) & 0x1FFFFFFF, OMAP7XX_IO_CONF_9);
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_FSAMPLE, "OMAP730 F-Sample")
|
||||
|
@ -23,10 +23,10 @@
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
|
||||
static void __init omap_generic_init_irq(void)
|
||||
{
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
#include <linux/i2c/tps65010.h>
|
||||
|
||||
#include <mach/mmc.h>
|
||||
#include <plat/mmc.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
#include "board-h2.h"
|
||||
|
@ -37,14 +37,14 @@
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/mux.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/nand.h>
|
||||
#include <mach/irda.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/nand.h>
|
||||
#include <plat/irda.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/common.h>
|
||||
|
||||
#include "board-h2.h"
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
#include <linux/i2c/tps65010.h>
|
||||
|
||||
#include <mach/mmc.h>
|
||||
#include <plat/mmc.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
#include "board-h3.h"
|
||||
|
@ -40,13 +40,13 @@
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/nand.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/common.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/nand.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/common.h>
|
||||
|
||||
#include "board-h3.h"
|
||||
|
||||
|
@ -30,14 +30,14 @@
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/mux.h>
|
||||
#include <mach/fpga.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/fpga.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/mmc.h>
|
||||
|
||||
/* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */
|
||||
#define INNOVATOR1610_ETHR_START 0x04000300
|
||||
|
@ -26,17 +26,17 @@
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/dsp_common.h>
|
||||
#include <mach/omapfb.h>
|
||||
#include <mach/hwa742.h>
|
||||
#include <mach/lcd_mipid.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <mach/clock.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/dsp_common.h>
|
||||
#include <plat/omapfb.h>
|
||||
#include <plat/hwa742.h>
|
||||
#include <plat/lcd_mipid.h>
|
||||
#include <plat/mmc.h>
|
||||
#include <plat/clock.h>
|
||||
|
||||
#define ADS7846_PENDOWN_GPIO 15
|
||||
|
||||
|
@ -47,10 +47,10 @@
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/usb.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/common.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/common.h>
|
||||
|
||||
/* At OMAP5912 OSK the Ethernet is directly connected to CS1 */
|
||||
#define OMAP_OSK_ETHR_START 0x04800300
|
||||
@ -312,7 +312,7 @@ static struct omap_board_config_kernel osk_config[] __initdata = {
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/ads7846.h>
|
||||
|
||||
#include <mach/keypad.h>
|
||||
#include <plat/keypad.h>
|
||||
|
||||
static struct at24_platform_data at24c04 = {
|
||||
.byte_len = SZ_4K / 8,
|
||||
|
@ -34,14 +34,14 @@
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/irda.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/irda.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/common.h>
|
||||
|
||||
#define PALMTE_USBDETECT_GPIO 0
|
||||
#define PALMTE_USB_OR_DC_GPIO 1
|
||||
|
@ -29,16 +29,16 @@
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/led.h>
|
||||
#include <plat/led.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/irda.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/irda.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/common.h>
|
||||
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/ads7846.h>
|
||||
|
@ -33,15 +33,15 @@
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/irda.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/omap-alsa.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/irda.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/omap-alsa.h>
|
||||
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/ads7846.h>
|
||||
|
@ -26,14 +26,14 @@
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/tc.h>
|
||||
#include <plat/tc.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/fpga.h>
|
||||
#include <mach/nand.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/board.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/fpga.h>
|
||||
#include <plat/nand.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/board.h>
|
||||
|
||||
static int p2_keymap[] = {
|
||||
KEY(0,0,KEY_UP),
|
||||
@ -74,7 +74,7 @@ static struct resource smc91x_resources[] = {
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = INT_730_MPU_EXT_NIRQ,
|
||||
.start = INT_7XX_MPU_EXT_NIRQ,
|
||||
.end = 0,
|
||||
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
|
||||
},
|
||||
@ -163,8 +163,8 @@ static struct platform_device smc91x_device = {
|
||||
|
||||
static struct resource kp_resources[] = {
|
||||
[0] = {
|
||||
.start = INT_730_MPUIO_KEYPAD,
|
||||
.end = INT_730_MPUIO_KEYPAD,
|
||||
.start = INT_7XX_MPUIO_KEYPAD,
|
||||
.end = INT_7XX_MPUIO_KEYPAD,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
@ -270,7 +270,7 @@ static void __init omap_perseus2_map_io(void)
|
||||
/*
|
||||
* Hold GSM Reset until needed
|
||||
*/
|
||||
omap_writew(omap_readw(OMAP730_DSP_M_CTL) & ~1, OMAP730_DSP_M_CTL);
|
||||
omap_writew(omap_readw(OMAP7XX_DSP_M_CTL) & ~1, OMAP7XX_DSP_M_CTL);
|
||||
|
||||
/*
|
||||
* UARTs -> done automagically by 8250 driver
|
||||
@ -281,21 +281,21 @@ static void __init omap_perseus2_map_io(void)
|
||||
*/
|
||||
|
||||
/* Flash: CS0 timings setup */
|
||||
omap_writel(0x0000fff3, OMAP730_FLASH_CFG_0);
|
||||
omap_writel(0x00000088, OMAP730_FLASH_ACFG_0);
|
||||
omap_writel(0x0000fff3, OMAP7XX_FLASH_CFG_0);
|
||||
omap_writel(0x00000088, OMAP7XX_FLASH_ACFG_0);
|
||||
|
||||
/*
|
||||
* Ethernet support through the debug board
|
||||
* CS1 timings setup
|
||||
*/
|
||||
omap_writel(0x0000fff3, OMAP730_FLASH_CFG_1);
|
||||
omap_writel(0x00000000, OMAP730_FLASH_ACFG_1);
|
||||
omap_writel(0x0000fff3, OMAP7XX_FLASH_CFG_1);
|
||||
omap_writel(0x00000000, OMAP7XX_FLASH_ACFG_1);
|
||||
|
||||
/*
|
||||
* Configure MPU_EXT_NIRQ IO in IO_CONF9 register,
|
||||
* It is used as the Ethernet controller interrupt
|
||||
*/
|
||||
omap_writel(omap_readl(OMAP730_IO_CONF_9) & 0x1FFFFFFF, OMAP730_IO_CONF_9);
|
||||
omap_writel(omap_readl(OMAP7XX_IO_CONF_9) & 0x1FFFFFFF, OMAP7XX_IO_CONF_9);
|
||||
}
|
||||
|
||||
MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2")
|
||||
|
@ -15,9 +15,9 @@
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <plat/mmc.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/board-sx1.h>
|
||||
#include <plat/board-sx1.h>
|
||||
|
||||
#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)
|
||||
|
||||
|
@ -33,15 +33,15 @@
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/irda.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/board-sx1.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/irda.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/board-sx1.h>
|
||||
|
||||
/* Write to I2C device */
|
||||
int sx1_i2c_write_byte(u8 devaddr, u8 regoffset, u8 value)
|
||||
|
@ -29,11 +29,11 @@
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/common.h>
|
||||
#include <plat/common.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/usb.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/usb.h>
|
||||
|
||||
static struct plat_serial8250_port voiceblue_ports[] = {
|
||||
{
|
||||
|
@ -22,10 +22,10 @@
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/clkdev.h>
|
||||
|
||||
#include <mach/cpu.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/clock.h>
|
||||
#include <mach/sram.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/sram.h>
|
||||
|
||||
static const struct clkops clkops_generic;
|
||||
static const struct clkops clkops_uart;
|
||||
@ -69,13 +69,13 @@ struct omap_clk {
|
||||
}
|
||||
|
||||
#define CK_310 (1 << 0)
|
||||
#define CK_730 (1 << 1)
|
||||
#define CK_7XX (1 << 1)
|
||||
#define CK_1510 (1 << 2)
|
||||
#define CK_16XX (1 << 3)
|
||||
|
||||
static struct omap_clk omap_clks[] = {
|
||||
/* non-ULPD clocks */
|
||||
CLK(NULL, "ck_ref", &ck_ref, CK_16XX | CK_1510 | CK_310),
|
||||
CLK(NULL, "ck_ref", &ck_ref, CK_16XX | CK_1510 | CK_310 | CK_7XX),
|
||||
CLK(NULL, "ck_dpll1", &ck_dpll1, CK_16XX | CK_1510 | CK_310),
|
||||
/* CK_GEN1 clocks */
|
||||
CLK(NULL, "ck_dpll1out", &ck_dpll1out.clk, CK_16XX),
|
||||
@ -83,7 +83,7 @@ static struct omap_clk omap_clks[] = {
|
||||
CLK(NULL, "arm_ck", &arm_ck, CK_16XX | CK_1510 | CK_310),
|
||||
CLK(NULL, "armper_ck", &armper_ck.clk, CK_16XX | CK_1510 | CK_310),
|
||||
CLK(NULL, "arm_gpio_ck", &arm_gpio_ck, CK_1510 | CK_310),
|
||||
CLK(NULL, "armxor_ck", &armxor_ck.clk, CK_16XX | CK_1510 | CK_310),
|
||||
CLK(NULL, "armxor_ck", &armxor_ck.clk, CK_16XX | CK_1510 | CK_310 | CK_7XX),
|
||||
CLK(NULL, "armtim_ck", &armtim_ck.clk, CK_16XX | CK_1510 | CK_310),
|
||||
CLK("omap_wdt", "fck", &armwdt_ck.clk, CK_16XX | CK_1510 | CK_310),
|
||||
CLK("omap_wdt", "ick", &armper_ck.clk, CK_16XX),
|
||||
@ -97,7 +97,7 @@ static struct omap_clk omap_clks[] = {
|
||||
CLK(NULL, "dspxor_ck", &dspxor_ck, CK_16XX | CK_1510 | CK_310),
|
||||
CLK(NULL, "dsptim_ck", &dsptim_ck, CK_16XX | CK_1510 | CK_310),
|
||||
/* CK_GEN3 clocks */
|
||||
CLK(NULL, "tc_ck", &tc_ck.clk, CK_16XX | CK_1510 | CK_310 | CK_730),
|
||||
CLK(NULL, "tc_ck", &tc_ck.clk, CK_16XX | CK_1510 | CK_310 | CK_7XX),
|
||||
CLK(NULL, "tipb_ck", &tipb_ck, CK_1510 | CK_310),
|
||||
CLK(NULL, "l3_ocpi_ck", &l3_ocpi_ck, CK_16XX),
|
||||
CLK(NULL, "tc1_ck", &tc1_ck, CK_16XX),
|
||||
@ -108,7 +108,7 @@ static struct omap_clk omap_clks[] = {
|
||||
CLK(NULL, "lb_ck", &lb_ck.clk, CK_1510 | CK_310),
|
||||
CLK(NULL, "rhea1_ck", &rhea1_ck, CK_16XX),
|
||||
CLK(NULL, "rhea2_ck", &rhea2_ck, CK_16XX),
|
||||
CLK(NULL, "lcd_ck", &lcd_ck_16xx, CK_16XX | CK_730),
|
||||
CLK(NULL, "lcd_ck", &lcd_ck_16xx, CK_16XX | CK_7XX),
|
||||
CLK(NULL, "lcd_ck", &lcd_ck_1510.clk, CK_1510 | CK_310),
|
||||
/* ULPD clocks */
|
||||
CLK(NULL, "uart1_ck", &uart1_1510, CK_1510 | CK_310),
|
||||
@ -398,7 +398,7 @@ static int omap1_select_table_rate(struct clk * clk, unsigned long rate)
|
||||
* Reprogramming the DPLL is tricky, it must be done from SRAM.
|
||||
* (on 730, bit 13 must always be 1)
|
||||
*/
|
||||
if (cpu_is_omap730())
|
||||
if (cpu_is_omap7xx())
|
||||
omap_sram_reprogram_clock(ptr->dpllctl_val, ptr->ckctl_val | 0x2000);
|
||||
else
|
||||
omap_sram_reprogram_clock(ptr->dpllctl_val, ptr->ckctl_val);
|
||||
@ -783,8 +783,8 @@ int __init omap1_clk_init(void)
|
||||
cpu_mask |= CK_16XX;
|
||||
if (cpu_is_omap1510())
|
||||
cpu_mask |= CK_1510;
|
||||
if (cpu_is_omap730())
|
||||
cpu_mask |= CK_730;
|
||||
if (cpu_is_omap7xx())
|
||||
cpu_mask |= CK_7XX;
|
||||
if (cpu_is_omap310())
|
||||
cpu_mask |= CK_310;
|
||||
|
||||
@ -800,7 +800,7 @@ int __init omap1_clk_init(void)
|
||||
crystal_type = info->system_clock_type;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP730)
|
||||
#if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
|
||||
ck_ref.rate = 13000000;
|
||||
#elif defined(CONFIG_ARCH_OMAP16XX)
|
||||
if (crystal_type == 2)
|
||||
@ -847,7 +847,7 @@ int __init omap1_clk_init(void)
|
||||
printk(KERN_ERR "System frequencies not set. Check your config.\n");
|
||||
/* Guess sane values (60MHz) */
|
||||
omap_writew(0x2290, DPLL_CTL);
|
||||
omap_writew(cpu_is_omap730() ? 0x3005 : 0x1005, ARM_CKCTL);
|
||||
omap_writew(cpu_is_omap7xx() ? 0x3005 : 0x1005, ARM_CKCTL);
|
||||
ck_dpll1.rate = 60000000;
|
||||
}
|
||||
#endif
|
||||
@ -862,7 +862,7 @@ int __init omap1_clk_init(void)
|
||||
|
||||
#if defined(CONFIG_MACH_OMAP_PERSEUS2) || defined(CONFIG_MACH_OMAP_FSAMPLE)
|
||||
/* Select slicer output as OMAP input clock */
|
||||
omap_writew(omap_readw(OMAP730_PCC_UPLD_CTRL) & ~0x1, OMAP730_PCC_UPLD_CTRL);
|
||||
omap_writew(omap_readw(OMAP7XX_PCC_UPLD_CTRL) & ~0x1, OMAP7XX_PCC_UPLD_CTRL);
|
||||
#endif
|
||||
|
||||
/* Amstrad Delta wants BCLK high when inactive */
|
||||
@ -873,7 +873,7 @@ int __init omap1_clk_init(void)
|
||||
|
||||
/* Turn off DSP and ARM_TIMXO. Make sure ARM_INTHCK is not divided */
|
||||
/* (on 730, bit 13 must not be cleared) */
|
||||
if (cpu_is_omap730())
|
||||
if (cpu_is_omap7xx())
|
||||
omap_writew(omap_readw(ARM_CKCTL) & 0x2fff, ARM_CKCTL);
|
||||
else
|
||||
omap_writew(omap_readw(ARM_CKCTL) & 0x0fff, ARM_CKCTL);
|
||||
|
@ -18,11 +18,11 @@
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/tc.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/mux.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/mux.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <plat/mmc.h>
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/fpga.h>
|
||||
#include <plat/fpga.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
static void fpga_mask_irq(unsigned int irq)
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/io.h>
|
||||
#include <mach/cpu.h>
|
||||
#include <plat/cpu.h>
|
||||
|
||||
#define OMAP_DIE_ID_0 0xfffe1800
|
||||
#define OMAP_DIE_ID_1 0xfffe1804
|
||||
|
5
arch/arm/mach-omap1/include/mach/clkdev.h
Normal file
5
arch/arm/mach-omap1/include/mach/clkdev.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/clkdev.h
|
||||
*/
|
||||
|
||||
#include <plat/clkdev.h>
|
45
arch/arm/mach-omap1/include/mach/debug-macro.S
Normal file
45
arch/arm/mach-omap1/include/mach/debug-macro.S
Normal file
@ -0,0 +1,45 @@
|
||||
/* arch/arm/mach-omap1/include/mach/debug-macro.S
|
||||
*
|
||||
* Debugging macro include header
|
||||
*
|
||||
* Copyright (C) 1994-1999 Russell King
|
||||
* Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
.macro addruart,rx
|
||||
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
|
||||
.endm
|
||||
|
||||
.macro senduart,rd,rx
|
||||
strb \rd, [\rx]
|
||||
.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
|
||||
bne 1001b
|
||||
1002:
|
||||
.endm
|
||||
|
||||
.macro waituart,rd,rx
|
||||
.endm
|
58
arch/arm/mach-omap1/include/mach/entry-macro.S
Normal file
58
arch/arm/mach-omap1/include/mach/entry-macro.S
Normal file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/entry-macro.S
|
||||
*
|
||||
* Low-level IRQ helper macros for OMAP-based platforms
|
||||
*
|
||||
* Copyright (C) 2009 Texas Instruments
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/io.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
|
||||
#if (defined(CONFIG_ARCH_OMAP730)||defined(CONFIG_ARCH_OMAP850)) && \
|
||||
(defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX))
|
||||
#error "FIXME: OMAP7XX doesn't support multiple-OMAP"
|
||||
#elif defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
|
||||
#define INT_IH2_IRQ INT_7XX_IH2_IRQ
|
||||
#elif defined(CONFIG_ARCH_OMAP15XX)
|
||||
#define INT_IH2_IRQ INT_1510_IH2_IRQ
|
||||
#elif defined(CONFIG_ARCH_OMAP16XX)
|
||||
#define INT_IH2_IRQ INT_1610_IH2_IRQ
|
||||
#else
|
||||
#warning "IH2 IRQ defaulted"
|
||||
#define INT_IH2_IRQ INT_1510_IH2_IRQ
|
||||
#endif
|
||||
|
||||
.macro disable_fiq
|
||||
.endm
|
||||
|
||||
.macro get_irqnr_preamble, base, tmp
|
||||
.endm
|
||||
|
||||
.macro arch_ret_to_user, tmp1, tmp2
|
||||
.endm
|
||||
|
||||
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
|
||||
ldr \base, =OMAP1_IO_ADDRESS(OMAP_IH1_BASE)
|
||||
ldr \irqnr, [\base, #IRQ_ITR_REG_OFFSET]
|
||||
ldr \tmp, [\base, #IRQ_MIR_REG_OFFSET]
|
||||
mov \irqstat, #0xffffffff
|
||||
bic \tmp, \irqstat, \tmp
|
||||
tst \irqnr, \tmp
|
||||
beq 1510f
|
||||
|
||||
ldr \irqnr, [\base, #IRQ_SIR_FIQ_REG_OFFSET]
|
||||
cmp \irqnr, #0
|
||||
ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET]
|
||||
cmpeq \irqnr, #INT_IH2_IRQ
|
||||
ldreq \base, =OMAP1_IO_ADDRESS(OMAP_IH2_BASE)
|
||||
ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET]
|
||||
addeqs \irqnr, \irqnr, #32
|
||||
1510:
|
||||
.endm
|
||||
|
5
arch/arm/mach-omap1/include/mach/gpio.h
Normal file
5
arch/arm/mach-omap1/include/mach/gpio.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/gpio.h
|
||||
*/
|
||||
|
||||
#include <plat/gpio.h>
|
5
arch/arm/mach-omap1/include/mach/hardware.h
Normal file
5
arch/arm/mach-omap1/include/mach/hardware.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/hardware.h
|
||||
*/
|
||||
|
||||
#include <plat/hardware.h>
|
5
arch/arm/mach-omap1/include/mach/io.h
Normal file
5
arch/arm/mach-omap1/include/mach/io.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/io.h
|
||||
*/
|
||||
|
||||
#include <plat/io.h>
|
5
arch/arm/mach-omap1/include/mach/irqs.h
Normal file
5
arch/arm/mach-omap1/include/mach/irqs.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/irqs.h
|
||||
*/
|
||||
|
||||
#include <plat/irqs.h>
|
5
arch/arm/mach-omap1/include/mach/memory.h
Normal file
5
arch/arm/mach-omap1/include/mach/memory.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/memory.h
|
||||
*/
|
||||
|
||||
#include <plat/memory.h>
|
5
arch/arm/mach-omap1/include/mach/smp.h
Normal file
5
arch/arm/mach-omap1/include/mach/smp.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/smp.h
|
||||
*/
|
||||
|
||||
#include <plat/smp.h>
|
5
arch/arm/mach-omap1/include/mach/system.h
Normal file
5
arch/arm/mach-omap1/include/mach/system.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/system.h
|
||||
*/
|
||||
|
||||
#include <plat/system.h>
|
5
arch/arm/mach-omap1/include/mach/timex.h
Normal file
5
arch/arm/mach-omap1/include/mach/timex.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/timex.h
|
||||
*/
|
||||
|
||||
#include <plat/timex.h>
|
5
arch/arm/mach-omap1/include/mach/uncompress.h
Normal file
5
arch/arm/mach-omap1/include/mach/uncompress.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/uncompress.h
|
||||
*/
|
||||
|
||||
#include <plat/uncompress.h>
|
20
arch/arm/mach-omap1/include/mach/vmalloc.h
Normal file
20
arch/arm/mach-omap1/include/mach/vmalloc.h
Normal file
@ -0,0 +1,20 @@
|
||||
/*
|
||||
* arch/arm/mach-omap1/include/mach/vmalloc.h
|
||||
*
|
||||
* Copyright (C) 2000 Russell King.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#define VMALLOC_END (PAGE_OFFSET + 0x18000000)
|
@ -15,8 +15,8 @@
|
||||
|
||||
#include <asm/tlb.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/tc.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/tc.h>
|
||||
|
||||
extern int omap1_clk_init(void);
|
||||
extern void omap_check_revision(void);
|
||||
@ -36,33 +36,17 @@ static struct map_desc omap_io_desc[] __initdata = {
|
||||
}
|
||||
};
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP730
|
||||
static struct map_desc omap730_io_desc[] __initdata = {
|
||||
#if defined (CONFIG_ARCH_OMAP730) || defined (CONFIG_ARCH_OMAP850)
|
||||
static struct map_desc omap7xx_io_desc[] __initdata = {
|
||||
{
|
||||
.virtual = OMAP730_DSP_BASE,
|
||||
.pfn = __phys_to_pfn(OMAP730_DSP_START),
|
||||
.length = OMAP730_DSP_SIZE,
|
||||
.virtual = OMAP7XX_DSP_BASE,
|
||||
.pfn = __phys_to_pfn(OMAP7XX_DSP_START),
|
||||
.length = OMAP7XX_DSP_SIZE,
|
||||
.type = MT_DEVICE
|
||||
}, {
|
||||
.virtual = OMAP730_DSPREG_BASE,
|
||||
.pfn = __phys_to_pfn(OMAP730_DSPREG_START),
|
||||
.length = OMAP730_DSPREG_SIZE,
|
||||
.type = MT_DEVICE
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP850
|
||||
static struct map_desc omap850_io_desc[] __initdata = {
|
||||
{
|
||||
.virtual = OMAP850_DSP_BASE,
|
||||
.pfn = __phys_to_pfn(OMAP850_DSP_START),
|
||||
.length = OMAP850_DSP_SIZE,
|
||||
.type = MT_DEVICE
|
||||
}, {
|
||||
.virtual = OMAP850_DSPREG_BASE,
|
||||
.pfn = __phys_to_pfn(OMAP850_DSPREG_START),
|
||||
.length = OMAP850_DSPREG_SIZE,
|
||||
.virtual = OMAP7XX_DSPREG_BASE,
|
||||
.pfn = __phys_to_pfn(OMAP7XX_DSPREG_START),
|
||||
.length = OMAP7XX_DSPREG_SIZE,
|
||||
.type = MT_DEVICE
|
||||
}
|
||||
};
|
||||
@ -120,18 +104,11 @@ void __init omap1_map_common_io(void)
|
||||
*/
|
||||
omap_check_revision();
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP730
|
||||
if (cpu_is_omap730()) {
|
||||
iotable_init(omap730_io_desc, ARRAY_SIZE(omap730_io_desc));
|
||||
#if defined (CONFIG_ARCH_OMAP730) || defined (CONFIG_ARCH_OMAP850)
|
||||
if (cpu_is_omap7xx()) {
|
||||
iotable_init(omap7xx_io_desc, ARRAY_SIZE(omap7xx_io_desc));
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP850
|
||||
if (cpu_is_omap850()) {
|
||||
iotable_init(omap850_io_desc, ARRAY_SIZE(omap850_io_desc));
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP15XX
|
||||
if (cpu_is_omap15xx()) {
|
||||
iotable_init(omap1510_io_desc, ARRAY_SIZE(omap1510_io_desc));
|
||||
|
@ -46,7 +46,7 @@
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mach/irq.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/cpu.h>
|
||||
#include <plat/cpu.h>
|
||||
|
||||
#define IRQ_BANK(irq) ((irq) >> 5)
|
||||
#define IRQ_BIT(irq) ((irq) & 0x1f)
|
||||
@ -137,16 +137,8 @@ static void omap_irq_set_cfg(int irq, int fiq, int priority, int trigger)
|
||||
irq_bank_writel(val, bank, offset);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP730
|
||||
static struct omap_irq_bank omap730_irq_banks[] = {
|
||||
{ .base_reg = OMAP_IH1_BASE, .trigger_map = 0xb3f8e22f },
|
||||
{ .base_reg = OMAP_IH2_BASE, .trigger_map = 0xfdb9c1f2 },
|
||||
{ .base_reg = OMAP_IH2_BASE + 0x100, .trigger_map = 0x800040f3 },
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP850
|
||||
static struct omap_irq_bank omap850_irq_banks[] = {
|
||||
#if defined (CONFIG_ARCH_OMAP730) || defined (CONFIG_ARCH_OMAP850)
|
||||
static struct omap_irq_bank omap7xx_irq_banks[] = {
|
||||
{ .base_reg = OMAP_IH1_BASE, .trigger_map = 0xb3f8e22f },
|
||||
{ .base_reg = OMAP_IH2_BASE, .trigger_map = 0xfdb9c1f2 },
|
||||
{ .base_reg = OMAP_IH2_BASE + 0x100, .trigger_map = 0x800040f3 },
|
||||
@ -186,16 +178,10 @@ void __init omap_init_irq(void)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP730
|
||||
if (cpu_is_omap730()) {
|
||||
irq_banks = omap730_irq_banks;
|
||||
irq_bank_count = ARRAY_SIZE(omap730_irq_banks);
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP850
|
||||
if (cpu_is_omap850()) {
|
||||
irq_banks = omap850_irq_banks;
|
||||
irq_bank_count = ARRAY_SIZE(omap850_irq_banks);
|
||||
#if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
|
||||
if (cpu_is_omap7xx()) {
|
||||
irq_banks = omap7xx_irq_banks;
|
||||
irq_bank_count = ARRAY_SIZE(omap7xx_irq_banks);
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_OMAP15XX
|
||||
@ -247,10 +233,8 @@ void __init omap_init_irq(void)
|
||||
|
||||
/* Unmask level 2 handler */
|
||||
|
||||
if (cpu_is_omap730())
|
||||
omap_unmask_irq(INT_730_IH2_IRQ);
|
||||
else if (cpu_is_omap850())
|
||||
omap_unmask_irq(INT_850_IH2_IRQ);
|
||||
if (cpu_is_omap7xx())
|
||||
omap_unmask_irq(INT_7XX_IH2_IRQ);
|
||||
else if (cpu_is_omap15xx())
|
||||
omap_unmask_irq(INT_1510_IH2_IRQ);
|
||||
else if (cpu_is_omap16xx())
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include <asm/system.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include <mach/fpga.h>
|
||||
#include <plat/fpga.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
#include "leds.h"
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <plat/mux.h>
|
||||
|
||||
#include "leds.h"
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <mach/mailbox.h>
|
||||
#include <plat/mailbox.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#define MAILBOX_ARM2DSP1 0x00
|
||||
|
@ -18,11 +18,11 @@
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/cpu.h>
|
||||
#include <mach/mcbsp.h>
|
||||
#include <mach/dsp_common.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/mcbsp.h>
|
||||
#include <plat/dsp_common.h>
|
||||
|
||||
#define DPS_RSTCT2_PER_EN (1 << 0)
|
||||
#define DSP_RSTCT2_WD_PER_EN (1 << 1)
|
||||
@ -79,29 +79,29 @@ static struct omap_mcbsp_ops omap1_mcbsp_ops = {
|
||||
.free = omap1_mcbsp_free,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP730
|
||||
static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = {
|
||||
#if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
|
||||
static struct omap_mcbsp_platform_data omap7xx_mcbsp_pdata[] = {
|
||||
{
|
||||
.phys_base = OMAP730_MCBSP1_BASE,
|
||||
.phys_base = OMAP7XX_MCBSP1_BASE,
|
||||
.dma_rx_sync = OMAP_DMA_MCBSP1_RX,
|
||||
.dma_tx_sync = OMAP_DMA_MCBSP1_TX,
|
||||
.rx_irq = INT_730_McBSP1RX,
|
||||
.tx_irq = INT_730_McBSP1TX,
|
||||
.rx_irq = INT_7XX_McBSP1RX,
|
||||
.tx_irq = INT_7XX_McBSP1TX,
|
||||
.ops = &omap1_mcbsp_ops,
|
||||
},
|
||||
{
|
||||
.phys_base = OMAP730_MCBSP2_BASE,
|
||||
.phys_base = OMAP7XX_MCBSP2_BASE,
|
||||
.dma_rx_sync = OMAP_DMA_MCBSP3_RX,
|
||||
.dma_tx_sync = OMAP_DMA_MCBSP3_TX,
|
||||
.rx_irq = INT_730_McBSP2RX,
|
||||
.tx_irq = INT_730_McBSP2TX,
|
||||
.rx_irq = INT_7XX_McBSP2RX,
|
||||
.tx_irq = INT_7XX_McBSP2TX,
|
||||
.ops = &omap1_mcbsp_ops,
|
||||
},
|
||||
};
|
||||
#define OMAP730_MCBSP_PDATA_SZ ARRAY_SIZE(omap730_mcbsp_pdata)
|
||||
#define OMAP7XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap7xx_mcbsp_pdata)
|
||||
#else
|
||||
#define omap730_mcbsp_pdata NULL
|
||||
#define OMAP730_MCBSP_PDATA_SZ 0
|
||||
#define omap7xx_mcbsp_pdata NULL
|
||||
#define OMAP7XX_MCBSP_PDATA_SZ 0
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP15XX
|
||||
@ -172,8 +172,8 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
|
||||
|
||||
int __init omap1_mcbsp_init(void)
|
||||
{
|
||||
if (cpu_is_omap730())
|
||||
omap_mcbsp_count = OMAP730_MCBSP_PDATA_SZ;
|
||||
if (cpu_is_omap7xx())
|
||||
omap_mcbsp_count = OMAP7XX_MCBSP_PDATA_SZ;
|
||||
if (cpu_is_omap15xx())
|
||||
omap_mcbsp_count = OMAP15XX_MCBSP_PDATA_SZ;
|
||||
if (cpu_is_omap16xx())
|
||||
@ -184,9 +184,9 @@ int __init omap1_mcbsp_init(void)
|
||||
if (!mcbsp_ptr)
|
||||
return -ENOMEM;
|
||||
|
||||
if (cpu_is_omap730())
|
||||
omap_mcbsp_register_board_cfg(omap730_mcbsp_pdata,
|
||||
OMAP730_MCBSP_PDATA_SZ);
|
||||
if (cpu_is_omap7xx())
|
||||
omap_mcbsp_register_board_cfg(omap7xx_mcbsp_pdata,
|
||||
OMAP7XX_MCBSP_PDATA_SZ);
|
||||
|
||||
if (cpu_is_omap15xx())
|
||||
omap_mcbsp_register_board_cfg(omap15xx_mcbsp_pdata,
|
||||
|
@ -29,53 +29,34 @@
|
||||
|
||||
#include <asm/system.h>
|
||||
|
||||
#include <mach/mux.h>
|
||||
#include <plat/mux.h>
|
||||
|
||||
#ifdef CONFIG_OMAP_MUX
|
||||
|
||||
static struct omap_mux_cfg arch_mux_cfg;
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP730
|
||||
static struct pin_config __initdata_or_module omap730_pins[] = {
|
||||
MUX_CFG_730("E2_730_KBR0", 12, 21, 0, 20, 1, 0)
|
||||
MUX_CFG_730("J7_730_KBR1", 12, 25, 0, 24, 1, 0)
|
||||
MUX_CFG_730("E1_730_KBR2", 12, 29, 0, 28, 1, 0)
|
||||
MUX_CFG_730("F3_730_KBR3", 13, 1, 0, 0, 1, 0)
|
||||
MUX_CFG_730("D2_730_KBR4", 13, 5, 0, 4, 1, 0)
|
||||
MUX_CFG_730("C2_730_KBC0", 13, 9, 0, 8, 1, 0)
|
||||
MUX_CFG_730("D3_730_KBC1", 13, 13, 0, 12, 1, 0)
|
||||
MUX_CFG_730("E4_730_KBC2", 13, 17, 0, 16, 1, 0)
|
||||
MUX_CFG_730("F4_730_KBC3", 13, 21, 0, 20, 1, 0)
|
||||
MUX_CFG_730("E3_730_KBC4", 13, 25, 0, 24, 1, 0)
|
||||
#if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
|
||||
static struct pin_config __initdata_or_module omap7xx_pins[] = {
|
||||
MUX_CFG_7XX("E2_7XX_KBR0", 12, 21, 0, 20, 1, 0)
|
||||
MUX_CFG_7XX("J7_7XX_KBR1", 12, 25, 0, 24, 1, 0)
|
||||
MUX_CFG_7XX("E1_7XX_KBR2", 12, 29, 0, 28, 1, 0)
|
||||
MUX_CFG_7XX("F3_7XX_KBR3", 13, 1, 0, 0, 1, 0)
|
||||
MUX_CFG_7XX("D2_7XX_KBR4", 13, 5, 0, 4, 1, 0)
|
||||
MUX_CFG_7XX("C2_7XX_KBC0", 13, 9, 0, 8, 1, 0)
|
||||
MUX_CFG_7XX("D3_7XX_KBC1", 13, 13, 0, 12, 1, 0)
|
||||
MUX_CFG_7XX("E4_7XX_KBC2", 13, 17, 0, 16, 1, 0)
|
||||
MUX_CFG_7XX("F4_7XX_KBC3", 13, 21, 0, 20, 1, 0)
|
||||
MUX_CFG_7XX("E3_7XX_KBC4", 13, 25, 0, 24, 1, 0)
|
||||
|
||||
MUX_CFG_730("AA17_730_USB_DM", 2, 21, 0, 20, 0, 0)
|
||||
MUX_CFG_730("W16_730_USB_PU_EN", 2, 25, 0, 24, 0, 0)
|
||||
MUX_CFG_730("W17_730_USB_VBUSI", 2, 29, 0, 28, 0, 0)
|
||||
MUX_CFG_7XX("AA17_7XX_USB_DM", 2, 21, 0, 20, 0, 0)
|
||||
MUX_CFG_7XX("W16_7XX_USB_PU_EN", 2, 25, 0, 24, 0, 0)
|
||||
MUX_CFG_7XX("W17_7XX_USB_VBUSI", 2, 29, 0, 28, 0, 0)
|
||||
};
|
||||
#define OMAP730_PINS_SZ ARRAY_SIZE(omap730_pins)
|
||||
#define OMAP7XX_PINS_SZ ARRAY_SIZE(omap7xx_pins)
|
||||
#else
|
||||
#define omap730_pins NULL
|
||||
#define OMAP730_PINS_SZ 0
|
||||
#endif /* CONFIG_ARCH_OMAP730 */
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP850
|
||||
struct pin_config __initdata_or_module omap850_pins[] = {
|
||||
MUX_CFG_850("E2_850_KBR0", 12, 21, 0, 20, 1, 0)
|
||||
MUX_CFG_850("J7_850_KBR1", 12, 25, 0, 24, 1, 0)
|
||||
MUX_CFG_850("E1_850_KBR2", 12, 29, 0, 28, 1, 0)
|
||||
MUX_CFG_850("F3_850_KBR3", 13, 1, 0, 0, 1, 0)
|
||||
MUX_CFG_850("D2_850_KBR4", 13, 5, 0, 4, 1, 0)
|
||||
MUX_CFG_850("C2_850_KBC0", 13, 9, 0, 8, 1, 0)
|
||||
MUX_CFG_850("D3_850_KBC1", 13, 13, 0, 12, 1, 0)
|
||||
MUX_CFG_850("E4_850_KBC2", 13, 17, 0, 16, 1, 0)
|
||||
MUX_CFG_850("F4_850_KBC3", 13, 21, 0, 20, 1, 0)
|
||||
MUX_CFG_850("E3_850_KBC4", 13, 25, 0, 24, 1, 0)
|
||||
|
||||
MUX_CFG_850("AA17_850_USB_DM", 2, 21, 0, 20, 0, 0)
|
||||
MUX_CFG_850("W16_850_USB_PU_EN", 2, 25, 0, 24, 0, 0)
|
||||
MUX_CFG_850("W17_850_USB_VBUSI", 2, 29, 0, 28, 0, 0)
|
||||
};
|
||||
#endif
|
||||
#define omap7xx_pins NULL
|
||||
#define OMAP7XX_PINS_SZ 0
|
||||
#endif /* CONFIG_ARCH_OMAP730 || CONFIG_ARCH_OMAP850 */
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX)
|
||||
static struct pin_config __initdata_or_module omap1xxx_pins[] = {
|
||||
@ -438,11 +419,6 @@ int __init_or_module omap1_cfg_reg(const struct pin_config *cfg)
|
||||
printk(" %s (0x%08x) = 0x%08x -> 0x%08x\n",
|
||||
cfg->pull_name, cfg->pull_reg, pull_orig, pull);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP850
|
||||
omap_mux_register(omap850_pins, ARRAY_SIZE(omap850_pins));
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_OMAP_MUX_ERRORS
|
||||
@ -454,9 +430,9 @@ int __init_or_module omap1_cfg_reg(const struct pin_config *cfg)
|
||||
|
||||
int __init omap1_mux_init(void)
|
||||
{
|
||||
if (cpu_is_omap730()) {
|
||||
arch_mux_cfg.pins = omap730_pins;
|
||||
arch_mux_cfg.size = OMAP730_PINS_SZ;
|
||||
if (cpu_is_omap7xx()) {
|
||||
arch_mux_cfg.pins = omap7xx_pins;
|
||||
arch_mux_cfg.size = OMAP7XX_PINS_SZ;
|
||||
arch_mux_cfg.cfg_reg = omap1_cfg_reg;
|
||||
}
|
||||
|
||||
|
@ -48,21 +48,21 @@
|
||||
#include <asm/mach/time.h>
|
||||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/cpu.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/clock.h>
|
||||
#include <mach/sram.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/dmtimer.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/sram.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/dmtimer.h>
|
||||
|
||||
#include "pm.h"
|
||||
|
||||
static unsigned int arm_sleep_save[ARM_SLEEP_SAVE_SIZE];
|
||||
static unsigned short dsp_sleep_save[DSP_SLEEP_SAVE_SIZE];
|
||||
static unsigned short ulpd_sleep_save[ULPD_SLEEP_SAVE_SIZE];
|
||||
static unsigned int mpui730_sleep_save[MPUI730_SLEEP_SAVE_SIZE];
|
||||
static unsigned int mpui7xx_sleep_save[MPUI7XX_SLEEP_SAVE_SIZE];
|
||||
static unsigned int mpui1510_sleep_save[MPUI1510_SLEEP_SAVE_SIZE];
|
||||
static unsigned int mpui1610_sleep_save[MPUI1610_SLEEP_SAVE_SIZE];
|
||||
|
||||
@ -183,9 +183,9 @@ static void omap_pm_wakeup_setup(void)
|
||||
* drivers must still separately call omap_set_gpio_wakeup() to
|
||||
* wake up to a GPIO interrupt.
|
||||
*/
|
||||
if (cpu_is_omap730())
|
||||
level1_wake = OMAP_IRQ_BIT(INT_730_GPIO_BANK1) |
|
||||
OMAP_IRQ_BIT(INT_730_IH2_IRQ);
|
||||
if (cpu_is_omap7xx())
|
||||
level1_wake = OMAP_IRQ_BIT(INT_7XX_GPIO_BANK1) |
|
||||
OMAP_IRQ_BIT(INT_7XX_IH2_IRQ);
|
||||
else if (cpu_is_omap15xx())
|
||||
level1_wake = OMAP_IRQ_BIT(INT_GPIO_BANK1) |
|
||||
OMAP_IRQ_BIT(INT_1510_IH2_IRQ);
|
||||
@ -195,10 +195,10 @@ static void omap_pm_wakeup_setup(void)
|
||||
|
||||
omap_writel(~level1_wake, OMAP_IH1_MIR);
|
||||
|
||||
if (cpu_is_omap730()) {
|
||||
if (cpu_is_omap7xx()) {
|
||||
omap_writel(~level2_wake, OMAP_IH2_0_MIR);
|
||||
omap_writel(~(OMAP_IRQ_BIT(INT_730_WAKE_UP_REQ) |
|
||||
OMAP_IRQ_BIT(INT_730_MPUIO_KEYPAD)),
|
||||
omap_writel(~(OMAP_IRQ_BIT(INT_7XX_WAKE_UP_REQ) |
|
||||
OMAP_IRQ_BIT(INT_7XX_MPUIO_KEYPAD)),
|
||||
OMAP_IH2_1_MIR);
|
||||
} else if (cpu_is_omap15xx()) {
|
||||
level2_wake |= OMAP_IRQ_BIT(INT_KEYBOARD);
|
||||
@ -253,15 +253,15 @@ void omap1_pm_suspend(void)
|
||||
* Save interrupt, MPUI, ARM and UPLD control registers.
|
||||
*/
|
||||
|
||||
if (cpu_is_omap730()) {
|
||||
MPUI730_SAVE(OMAP_IH1_MIR);
|
||||
MPUI730_SAVE(OMAP_IH2_0_MIR);
|
||||
MPUI730_SAVE(OMAP_IH2_1_MIR);
|
||||
MPUI730_SAVE(MPUI_CTRL);
|
||||
MPUI730_SAVE(MPUI_DSP_BOOT_CONFIG);
|
||||
MPUI730_SAVE(MPUI_DSP_API_CONFIG);
|
||||
MPUI730_SAVE(EMIFS_CONFIG);
|
||||
MPUI730_SAVE(EMIFF_SDRAM_CONFIG);
|
||||
if (cpu_is_omap7xx()) {
|
||||
MPUI7XX_SAVE(OMAP_IH1_MIR);
|
||||
MPUI7XX_SAVE(OMAP_IH2_0_MIR);
|
||||
MPUI7XX_SAVE(OMAP_IH2_1_MIR);
|
||||
MPUI7XX_SAVE(MPUI_CTRL);
|
||||
MPUI7XX_SAVE(MPUI_DSP_BOOT_CONFIG);
|
||||
MPUI7XX_SAVE(MPUI_DSP_API_CONFIG);
|
||||
MPUI7XX_SAVE(EMIFS_CONFIG);
|
||||
MPUI7XX_SAVE(EMIFF_SDRAM_CONFIG);
|
||||
|
||||
} else if (cpu_is_omap15xx()) {
|
||||
MPUI1510_SAVE(OMAP_IH1_MIR);
|
||||
@ -306,7 +306,7 @@ void omap1_pm_suspend(void)
|
||||
omap_writew(omap_readw(ARM_RSTCT1) & ~(1 << DSP_EN), ARM_RSTCT1);
|
||||
|
||||
/* shut down dsp_ck */
|
||||
if (!cpu_is_omap730())
|
||||
if (!cpu_is_omap7xx())
|
||||
omap_writew(omap_readw(ARM_CKCTL) & ~(1 << EN_DSPCK), ARM_CKCTL);
|
||||
|
||||
/* temporarily enabling api_ck to access DSP registers */
|
||||
@ -383,12 +383,12 @@ void omap1_pm_suspend(void)
|
||||
ULPD_RESTORE(ULPD_CLOCK_CTRL);
|
||||
ULPD_RESTORE(ULPD_STATUS_REQ);
|
||||
|
||||
if (cpu_is_omap730()) {
|
||||
MPUI730_RESTORE(EMIFS_CONFIG);
|
||||
MPUI730_RESTORE(EMIFF_SDRAM_CONFIG);
|
||||
MPUI730_RESTORE(OMAP_IH1_MIR);
|
||||
MPUI730_RESTORE(OMAP_IH2_0_MIR);
|
||||
MPUI730_RESTORE(OMAP_IH2_1_MIR);
|
||||
if (cpu_is_omap7xx()) {
|
||||
MPUI7XX_RESTORE(EMIFS_CONFIG);
|
||||
MPUI7XX_RESTORE(EMIFF_SDRAM_CONFIG);
|
||||
MPUI7XX_RESTORE(OMAP_IH1_MIR);
|
||||
MPUI7XX_RESTORE(OMAP_IH2_0_MIR);
|
||||
MPUI7XX_RESTORE(OMAP_IH2_1_MIR);
|
||||
} else if (cpu_is_omap15xx()) {
|
||||
MPUI1510_RESTORE(MPUI_CTRL);
|
||||
MPUI1510_RESTORE(MPUI_DSP_BOOT_CONFIG);
|
||||
@ -461,13 +461,13 @@ static int omap_pm_read_proc(
|
||||
ULPD_SAVE(ULPD_DPLL_CTRL);
|
||||
ULPD_SAVE(ULPD_POWER_CTRL);
|
||||
|
||||
if (cpu_is_omap730()) {
|
||||
MPUI730_SAVE(MPUI_CTRL);
|
||||
MPUI730_SAVE(MPUI_DSP_STATUS);
|
||||
MPUI730_SAVE(MPUI_DSP_BOOT_CONFIG);
|
||||
MPUI730_SAVE(MPUI_DSP_API_CONFIG);
|
||||
MPUI730_SAVE(EMIFF_SDRAM_CONFIG);
|
||||
MPUI730_SAVE(EMIFS_CONFIG);
|
||||
if (cpu_is_omap7xx()) {
|
||||
MPUI7XX_SAVE(MPUI_CTRL);
|
||||
MPUI7XX_SAVE(MPUI_DSP_STATUS);
|
||||
MPUI7XX_SAVE(MPUI_DSP_BOOT_CONFIG);
|
||||
MPUI7XX_SAVE(MPUI_DSP_API_CONFIG);
|
||||
MPUI7XX_SAVE(EMIFF_SDRAM_CONFIG);
|
||||
MPUI7XX_SAVE(EMIFS_CONFIG);
|
||||
} else if (cpu_is_omap15xx()) {
|
||||
MPUI1510_SAVE(MPUI_CTRL);
|
||||
MPUI1510_SAVE(MPUI_DSP_STATUS);
|
||||
@ -517,20 +517,20 @@ static int omap_pm_read_proc(
|
||||
ULPD_SHOW(ULPD_STATUS_REQ),
|
||||
ULPD_SHOW(ULPD_POWER_CTRL));
|
||||
|
||||
if (cpu_is_omap730()) {
|
||||
if (cpu_is_omap7xx()) {
|
||||
my_buffer_offset += sprintf(my_base + my_buffer_offset,
|
||||
"MPUI730_CTRL_REG 0x%-8x \n"
|
||||
"MPUI730_DSP_STATUS_REG: 0x%-8x \n"
|
||||
"MPUI730_DSP_BOOT_CONFIG_REG: 0x%-8x \n"
|
||||
"MPUI730_DSP_API_CONFIG_REG: 0x%-8x \n"
|
||||
"MPUI730_SDRAM_CONFIG_REG: 0x%-8x \n"
|
||||
"MPUI730_EMIFS_CONFIG_REG: 0x%-8x \n",
|
||||
MPUI730_SHOW(MPUI_CTRL),
|
||||
MPUI730_SHOW(MPUI_DSP_STATUS),
|
||||
MPUI730_SHOW(MPUI_DSP_BOOT_CONFIG),
|
||||
MPUI730_SHOW(MPUI_DSP_API_CONFIG),
|
||||
MPUI730_SHOW(EMIFF_SDRAM_CONFIG),
|
||||
MPUI730_SHOW(EMIFS_CONFIG));
|
||||
"MPUI7XX_CTRL_REG 0x%-8x \n"
|
||||
"MPUI7XX_DSP_STATUS_REG: 0x%-8x \n"
|
||||
"MPUI7XX_DSP_BOOT_CONFIG_REG: 0x%-8x \n"
|
||||
"MPUI7XX_DSP_API_CONFIG_REG: 0x%-8x \n"
|
||||
"MPUI7XX_SDRAM_CONFIG_REG: 0x%-8x \n"
|
||||
"MPUI7XX_EMIFS_CONFIG_REG: 0x%-8x \n",
|
||||
MPUI7XX_SHOW(MPUI_CTRL),
|
||||
MPUI7XX_SHOW(MPUI_DSP_STATUS),
|
||||
MPUI7XX_SHOW(MPUI_DSP_BOOT_CONFIG),
|
||||
MPUI7XX_SHOW(MPUI_DSP_API_CONFIG),
|
||||
MPUI7XX_SHOW(EMIFF_SDRAM_CONFIG),
|
||||
MPUI7XX_SHOW(EMIFS_CONFIG));
|
||||
} else if (cpu_is_omap15xx()) {
|
||||
my_buffer_offset += sprintf(my_base + my_buffer_offset,
|
||||
"MPUI1510_CTRL_REG 0x%-8x \n"
|
||||
@ -668,9 +668,9 @@ static int __init omap_pm_init(void)
|
||||
* These routines need to be in SRAM as that's the only
|
||||
* memory the MPU can see when it wakes up.
|
||||
*/
|
||||
if (cpu_is_omap730()) {
|
||||
omap_sram_suspend = omap_sram_push(omap730_cpu_suspend,
|
||||
omap730_cpu_suspend_sz);
|
||||
if (cpu_is_omap7xx()) {
|
||||
omap_sram_suspend = omap_sram_push(omap7xx_cpu_suspend,
|
||||
omap7xx_cpu_suspend_sz);
|
||||
} else if (cpu_is_omap15xx()) {
|
||||
omap_sram_suspend = omap_sram_push(omap1510_cpu_suspend,
|
||||
omap1510_cpu_suspend_sz);
|
||||
@ -686,8 +686,8 @@ static int __init omap_pm_init(void)
|
||||
|
||||
pm_idle = omap1_pm_idle;
|
||||
|
||||
if (cpu_is_omap730())
|
||||
setup_irq(INT_730_WAKE_UP_REQ, &omap_wakeup_irq);
|
||||
if (cpu_is_omap7xx())
|
||||
setup_irq(INT_7XX_WAKE_UP_REQ, &omap_wakeup_irq);
|
||||
else if (cpu_is_omap16xx())
|
||||
setup_irq(INT_1610_WAKE_UP_REQ, &omap_wakeup_irq);
|
||||
|
||||
@ -700,8 +700,8 @@ static int __init omap_pm_init(void)
|
||||
omap_writew(ULPD_POWER_CTRL_REG_VAL, ULPD_POWER_CTRL);
|
||||
|
||||
/* Configure IDLECT3 */
|
||||
if (cpu_is_omap730())
|
||||
omap_writel(OMAP730_IDLECT3_VAL, OMAP730_IDLECT3);
|
||||
if (cpu_is_omap7xx())
|
||||
omap_writel(OMAP7XX_IDLECT3_VAL, OMAP7XX_IDLECT3);
|
||||
else if (cpu_is_omap16xx())
|
||||
omap_writel(OMAP1610_IDLECT3_VAL, OMAP1610_IDLECT3);
|
||||
|
||||
|
@ -98,13 +98,14 @@
|
||||
#define OMAP1610_IDLECT3 0xfffece24
|
||||
#define OMAP1610_IDLE_LOOP_REQUEST 0x0400
|
||||
|
||||
#define OMAP730_IDLECT1_SLEEP_VAL 0x16c7
|
||||
#define OMAP730_IDLECT2_SLEEP_VAL 0x09c7
|
||||
#define OMAP730_IDLECT3_VAL 0x3f
|
||||
#define OMAP730_IDLECT3 0xfffece24
|
||||
#define OMAP730_IDLE_LOOP_REQUEST 0x0C00
|
||||
#define OMAP7XX_IDLECT1_SLEEP_VAL 0x16c7
|
||||
#define OMAP7XX_IDLECT2_SLEEP_VAL 0x09c7
|
||||
#define OMAP7XX_IDLECT3_VAL 0x3f
|
||||
#define OMAP7XX_IDLECT3 0xfffece24
|
||||
#define OMAP7XX_IDLE_LOOP_REQUEST 0x0C00
|
||||
|
||||
#if !defined(CONFIG_ARCH_OMAP730) && \
|
||||
!defined(CONFIG_ARCH_OMAP850) && \
|
||||
!defined(CONFIG_ARCH_OMAP15XX) && \
|
||||
!defined(CONFIG_ARCH_OMAP16XX)
|
||||
#warning "Power management for this processor not implemented yet"
|
||||
@ -122,17 +123,17 @@ extern void allow_idle_sleep(void);
|
||||
extern void omap1_pm_idle(void);
|
||||
extern void omap1_pm_suspend(void);
|
||||
|
||||
extern void omap730_cpu_suspend(unsigned short, unsigned short);
|
||||
extern void omap7xx_cpu_suspend(unsigned short, unsigned short);
|
||||
extern void omap1510_cpu_suspend(unsigned short, unsigned short);
|
||||
extern void omap1610_cpu_suspend(unsigned short, unsigned short);
|
||||
extern void omap730_idle_loop_suspend(void);
|
||||
extern void omap7xx_idle_loop_suspend(void);
|
||||
extern void omap1510_idle_loop_suspend(void);
|
||||
extern void omap1610_idle_loop_suspend(void);
|
||||
|
||||
extern unsigned int omap730_cpu_suspend_sz;
|
||||
extern unsigned int omap7xx_cpu_suspend_sz;
|
||||
extern unsigned int omap1510_cpu_suspend_sz;
|
||||
extern unsigned int omap1610_cpu_suspend_sz;
|
||||
extern unsigned int omap730_idle_loop_suspend_sz;
|
||||
extern unsigned int omap7xx_idle_loop_suspend_sz;
|
||||
extern unsigned int omap1510_idle_loop_suspend_sz;
|
||||
extern unsigned int omap1610_idle_loop_suspend_sz;
|
||||
|
||||
@ -155,9 +156,9 @@ extern void omap_serial_wake_trigger(int enable);
|
||||
#define ULPD_RESTORE(x) omap_writew((ulpd_sleep_save[ULPD_SLEEP_SAVE_##x]), (x))
|
||||
#define ULPD_SHOW(x) ulpd_sleep_save[ULPD_SLEEP_SAVE_##x]
|
||||
|
||||
#define MPUI730_SAVE(x) mpui730_sleep_save[MPUI730_SLEEP_SAVE_##x] = omap_readl(x)
|
||||
#define MPUI730_RESTORE(x) omap_writel((mpui730_sleep_save[MPUI730_SLEEP_SAVE_##x]), (x))
|
||||
#define MPUI730_SHOW(x) mpui730_sleep_save[MPUI730_SLEEP_SAVE_##x]
|
||||
#define MPUI7XX_SAVE(x) mpui7xx_sleep_save[MPUI7XX_SLEEP_SAVE_##x] = omap_readl(x)
|
||||
#define MPUI7XX_RESTORE(x) omap_writel((mpui7xx_sleep_save[MPUI7XX_SLEEP_SAVE_##x]), (x))
|
||||
#define MPUI7XX_SHOW(x) mpui7xx_sleep_save[MPUI7XX_SLEEP_SAVE_##x]
|
||||
|
||||
#define MPUI1510_SAVE(x) mpui1510_sleep_save[MPUI1510_SLEEP_SAVE_##x] = omap_readl(x)
|
||||
#define MPUI1510_RESTORE(x) omap_writel((mpui1510_sleep_save[MPUI1510_SLEEP_SAVE_##x]), (x))
|
||||
@ -232,24 +233,24 @@ enum mpui1510_save_state {
|
||||
#endif
|
||||
};
|
||||
|
||||
enum mpui730_save_state {
|
||||
MPUI730_SLEEP_SAVE_START = 0,
|
||||
enum mpui7xx_save_state {
|
||||
MPUI7XX_SLEEP_SAVE_START = 0,
|
||||
/*
|
||||
* MPUI registers 32 bits
|
||||
*/
|
||||
MPUI730_SLEEP_SAVE_MPUI_CTRL,
|
||||
MPUI730_SLEEP_SAVE_MPUI_DSP_BOOT_CONFIG,
|
||||
MPUI730_SLEEP_SAVE_MPUI_DSP_API_CONFIG,
|
||||
MPUI730_SLEEP_SAVE_MPUI_DSP_STATUS,
|
||||
MPUI730_SLEEP_SAVE_EMIFF_SDRAM_CONFIG,
|
||||
MPUI730_SLEEP_SAVE_EMIFS_CONFIG,
|
||||
MPUI730_SLEEP_SAVE_OMAP_IH1_MIR,
|
||||
MPUI730_SLEEP_SAVE_OMAP_IH2_0_MIR,
|
||||
MPUI730_SLEEP_SAVE_OMAP_IH2_1_MIR,
|
||||
#if defined(CONFIG_ARCH_OMAP730)
|
||||
MPUI730_SLEEP_SAVE_SIZE
|
||||
MPUI7XX_SLEEP_SAVE_MPUI_CTRL,
|
||||
MPUI7XX_SLEEP_SAVE_MPUI_DSP_BOOT_CONFIG,
|
||||
MPUI7XX_SLEEP_SAVE_MPUI_DSP_API_CONFIG,
|
||||
MPUI7XX_SLEEP_SAVE_MPUI_DSP_STATUS,
|
||||
MPUI7XX_SLEEP_SAVE_EMIFF_SDRAM_CONFIG,
|
||||
MPUI7XX_SLEEP_SAVE_EMIFS_CONFIG,
|
||||
MPUI7XX_SLEEP_SAVE_OMAP_IH1_MIR,
|
||||
MPUI7XX_SLEEP_SAVE_OMAP_IH2_0_MIR,
|
||||
MPUI7XX_SLEEP_SAVE_OMAP_IH2_1_MIR,
|
||||
#if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
|
||||
MPUI7XX_SLEEP_SAVE_SIZE
|
||||
#else
|
||||
MPUI730_SLEEP_SAVE_SIZE = 0
|
||||
MPUI7XX_SLEEP_SAVE_SIZE = 0
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -22,10 +22,10 @@
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/mux.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/mux.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/fpga.h>
|
||||
#include <plat/fpga.h>
|
||||
|
||||
static struct clk * uart1_ck;
|
||||
static struct clk * uart2_ck;
|
||||
@ -64,7 +64,6 @@ static void __init omap_serial_reset(struct plat_serial8250_port *p)
|
||||
|
||||
static struct plat_serial8250_port serial_platform_data[] = {
|
||||
{
|
||||
.membase = OMAP1_IO_ADDRESS(OMAP_UART1_BASE),
|
||||
.mapbase = OMAP_UART1_BASE,
|
||||
.irq = INT_UART1,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
@ -73,7 +72,6 @@ static struct plat_serial8250_port serial_platform_data[] = {
|
||||
.uartclk = OMAP16XX_BASE_BAUD * 16,
|
||||
},
|
||||
{
|
||||
.membase = OMAP1_IO_ADDRESS(OMAP_UART2_BASE),
|
||||
.mapbase = OMAP_UART2_BASE,
|
||||
.irq = INT_UART2,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
@ -82,7 +80,6 @@ static struct plat_serial8250_port serial_platform_data[] = {
|
||||
.uartclk = OMAP16XX_BASE_BAUD * 16,
|
||||
},
|
||||
{
|
||||
.membase = OMAP1_IO_ADDRESS(OMAP_UART3_BASE),
|
||||
.mapbase = OMAP_UART3_BASE,
|
||||
.irq = INT_UART3,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
@ -110,18 +107,11 @@ void __init omap_serial_init(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (cpu_is_omap730()) {
|
||||
if (cpu_is_omap7xx()) {
|
||||
serial_platform_data[0].regshift = 0;
|
||||
serial_platform_data[1].regshift = 0;
|
||||
serial_platform_data[0].irq = INT_730_UART_MODEM_1;
|
||||
serial_platform_data[1].irq = INT_730_UART_MODEM_IRDA_2;
|
||||
}
|
||||
|
||||
if (cpu_is_omap850()) {
|
||||
serial_platform_data[0].regshift = 0;
|
||||
serial_platform_data[1].regshift = 0;
|
||||
serial_platform_data[0].irq = INT_850_UART_MODEM_1;
|
||||
serial_platform_data[1].irq = INT_850_UART_MODEM_IRDA_2;
|
||||
serial_platform_data[0].irq = INT_7XX_UART_MODEM_1;
|
||||
serial_platform_data[1].irq = INT_7XX_UART_MODEM_IRDA_2;
|
||||
}
|
||||
|
||||
if (cpu_is_omap15xx()) {
|
||||
@ -131,6 +121,14 @@ void __init omap_serial_init(void)
|
||||
}
|
||||
|
||||
for (i = 0; i < OMAP_MAX_NR_PORTS; i++) {
|
||||
|
||||
/* Static mapping, never released */
|
||||
serial_platform_data[i].membase =
|
||||
ioremap(serial_platform_data[i].mapbase, SZ_2K);
|
||||
if (!serial_platform_data[i].membase) {
|
||||
printk(KERN_ERR "Could not ioremap uart%i\n", i);
|
||||
continue;
|
||||
}
|
||||
switch (i) {
|
||||
case 0:
|
||||
uart1_ck = clk_get(NULL, "uart1_ck");
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap1/sleep.S
|
||||
*
|
||||
* Low-level OMAP730/1510/1610 sleep/wakeUp support
|
||||
* Low-level OMAP7XX/1510/1610 sleep/wakeUp support
|
||||
*
|
||||
* Initial SA1110 code:
|
||||
* Copyright (c) 2001 Cliff Brake <cbrake@accelent.com>
|
||||
@ -57,8 +57,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP730)
|
||||
ENTRY(omap730_cpu_suspend)
|
||||
#if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
|
||||
ENTRY(omap7xx_cpu_suspend)
|
||||
|
||||
@ save registers on stack
|
||||
stmfd sp!, {r0 - r12, lr}
|
||||
@ -91,13 +91,13 @@ ENTRY(omap730_cpu_suspend)
|
||||
|
||||
@ turn off clock domains
|
||||
@ do not disable PERCK (0x04)
|
||||
mov r5, #OMAP730_IDLECT2_SLEEP_VAL & 0xff
|
||||
orr r5, r5, #OMAP730_IDLECT2_SLEEP_VAL & 0xff00
|
||||
mov r5, #OMAP7XX_IDLECT2_SLEEP_VAL & 0xff
|
||||
orr r5, r5, #OMAP7XX_IDLECT2_SLEEP_VAL & 0xff00
|
||||
strh r5, [r4, #ARM_IDLECT2_ASM_OFFSET & 0xff]
|
||||
|
||||
@ request ARM idle
|
||||
mov r3, #OMAP730_IDLECT1_SLEEP_VAL & 0xff
|
||||
orr r3, r3, #OMAP730_IDLECT1_SLEEP_VAL & 0xff00
|
||||
mov r3, #OMAP7XX_IDLECT1_SLEEP_VAL & 0xff
|
||||
orr r3, r3, #OMAP7XX_IDLECT1_SLEEP_VAL & 0xff00
|
||||
strh r3, [r4, #ARM_IDLECT1_ASM_OFFSET & 0xff]
|
||||
|
||||
@ disable instruction cache
|
||||
@ -113,7 +113,7 @@ ENTRY(omap730_cpu_suspend)
|
||||
mov r2, #0
|
||||
mcr p15, 0, r2, c7, c0, 4 @ wait for interrupt
|
||||
/*
|
||||
* omap730_cpu_suspend()'s resume point.
|
||||
* omap7xx_cpu_suspend()'s resume point.
|
||||
*
|
||||
* It will just start executing here, so we'll restore stuff from the
|
||||
* stack.
|
||||
@ -132,9 +132,9 @@ ENTRY(omap730_cpu_suspend)
|
||||
@ restore regs and return
|
||||
ldmfd sp!, {r0 - r12, pc}
|
||||
|
||||
ENTRY(omap730_cpu_suspend_sz)
|
||||
.word . - omap730_cpu_suspend
|
||||
#endif /* CONFIG_ARCH_OMAP730 */
|
||||
ENTRY(omap7xx_cpu_suspend_sz)
|
||||
.word . - omap7xx_cpu_suspend
|
||||
#endif /* CONFIG_ARCH_OMAP730 || CONFIG_ARCH_OMAP850 */
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP15XX
|
||||
ENTRY(omap1510_cpu_suspend)
|
||||
|
@ -52,7 +52,7 @@
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mach/irq.h>
|
||||
#include <asm/mach/time.h>
|
||||
#include <mach/dmtimer.h>
|
||||
#include <plat/dmtimer.h>
|
||||
|
||||
struct sys_timer omap_timer;
|
||||
|
||||
|
@ -31,7 +31,7 @@ obj-$(CONFIG_ARCH_OMAP2) += sdrc2xxx.o
|
||||
ifeq ($(CONFIG_PM),y)
|
||||
obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o
|
||||
obj-$(CONFIG_ARCH_OMAP24XX) += sleep24xx.o
|
||||
obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o
|
||||
obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o cpuidle34xx.o
|
||||
obj-$(CONFIG_PM_DEBUG) += pm-debug.o
|
||||
endif
|
||||
|
||||
|
@ -31,12 +31,12 @@
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/gpmc-smc91x.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/gpmc-smc91x.h>
|
||||
|
||||
#include "mmc-twl4030.h"
|
||||
|
||||
@ -221,7 +221,7 @@ static void __init omap_2430sdp_map_io(void)
|
||||
MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board")
|
||||
/* Maintainer: Syed Khasim - Texas Instruments Inc */
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_2430sdp_map_io,
|
||||
.init_irq = omap_2430sdp_init_irq,
|
||||
|
@ -30,16 +30,16 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/mcspi.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/gpmc.h>
|
||||
|
||||
#include <mach/control.h>
|
||||
#include <mach/gpmc-smc91x.h>
|
||||
#include <plat/control.h>
|
||||
#include <plat/gpmc-smc91x.h>
|
||||
|
||||
#include "sdram-qimonda-hyb18m512160af-6.h"
|
||||
#include "mmc-twl4030.h"
|
||||
@ -511,7 +511,7 @@ static void __init omap_3430sdp_map_io(void)
|
||||
MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board")
|
||||
/* Maintainer: Syed Khasim - Texas Instruments Inc */
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_3430sdp_map_io,
|
||||
.init_irq = omap_3430sdp_init_irq,
|
||||
|
@ -23,10 +23,10 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/control.h>
|
||||
#include <mach/timer-gp.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/control.h>
|
||||
#include <plat/timer-gp.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
|
||||
static struct platform_device sdp4430_lcd_device = {
|
||||
@ -52,8 +52,17 @@ static struct omap_board_config_kernel sdp4430_config[] __initdata = {
|
||||
|
||||
static void __init gic_init_irq(void)
|
||||
{
|
||||
gic_dist_init(0, OMAP2_IO_ADDRESS(OMAP44XX_GIC_DIST_BASE), 29);
|
||||
gic_cpu_init(0, OMAP2_IO_ADDRESS(OMAP44XX_GIC_CPU_BASE));
|
||||
void __iomem *base;
|
||||
|
||||
/* Static mapping, never released */
|
||||
base = ioremap(OMAP44XX_GIC_DIST_BASE, SZ_4K);
|
||||
BUG_ON(!base);
|
||||
gic_dist_init(0, base, 29);
|
||||
|
||||
/* Static mapping, never released */
|
||||
gic_cpu_base_addr = ioremap(OMAP44XX_GIC_CPU_BASE, SZ_512);
|
||||
BUG_ON(!gic_cpu_base_addr);
|
||||
gic_cpu_init(0, gic_cpu_base_addr);
|
||||
}
|
||||
|
||||
static void __init omap_4430sdp_init_irq(void)
|
||||
@ -84,7 +93,7 @@ static void __init omap_4430sdp_map_io(void)
|
||||
MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board")
|
||||
/* Maintainer: Santosh Shilimkar - Texas Instruments Inc */
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_4430sdp_map_io,
|
||||
.init_irq = omap_4430sdp_init_irq,
|
||||
|
@ -33,13 +33,13 @@
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/led.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <mach/control.h>
|
||||
#include <plat/led.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/control.h>
|
||||
|
||||
/* LED & Switch macros */
|
||||
#define LED0_GPIO13 13
|
||||
@ -333,7 +333,7 @@ static void __init omap_apollon_map_io(void)
|
||||
MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon")
|
||||
/* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_apollon_map_io,
|
||||
.init_irq = omap_apollon_init_irq,
|
||||
|
@ -26,10 +26,10 @@
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
|
||||
static struct omap_board_config_kernel generic_config[] = {
|
||||
};
|
||||
@ -56,7 +56,7 @@ static void __init omap_generic_map_io(void)
|
||||
MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
|
||||
/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_generic_map_io,
|
||||
.init_irq = omap_generic_init_irq,
|
||||
|
@ -31,16 +31,16 @@
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/control.h>
|
||||
#include <plat/control.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/keypad.h>
|
||||
#include <mach/menelaus.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/keypad.h>
|
||||
#include <plat/menelaus.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/gpmc.h>
|
||||
|
||||
#define H4_FLASH_CS 0
|
||||
#define H4_SMC91X_CS 1
|
||||
@ -376,7 +376,7 @@ static void __init omap_h4_map_io(void)
|
||||
MACHINE_START(OMAP_H4, "OMAP2420 H4 board")
|
||||
/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_h4_map_io,
|
||||
.init_irq = omap_h4_init_irq,
|
||||
|
@ -33,15 +33,15 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/mcspi.h>
|
||||
#include <plat/mcspi.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/gpmc.h>
|
||||
|
||||
#include <asm/delay.h>
|
||||
#include <mach/control.h>
|
||||
#include <mach/usb.h>
|
||||
#include <plat/control.h>
|
||||
#include <plat/usb.h>
|
||||
|
||||
#include "mmc-twl4030.h"
|
||||
|
||||
@ -399,7 +399,7 @@ static void __init omap_ldp_map_io(void)
|
||||
|
||||
MACHINE_START(OMAP_LDP, "OMAP LDP board")
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_ldp_map_io,
|
||||
.init_irq = omap_ldp_init_irq,
|
||||
|
@ -23,12 +23,12 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/mcspi.h>
|
||||
#include <mach/onenand.h>
|
||||
#include <mach/serial.h>
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/onenand.h>
|
||||
#include <plat/serial.h>
|
||||
|
||||
static struct omap2_mcspi_device_config p54spi_mcspi_config = {
|
||||
.turbo_mode = 0,
|
||||
@ -121,7 +121,7 @@ static void __init n8x0_init_machine(void)
|
||||
|
||||
MACHINE_START(NOKIA_N800, "Nokia N800")
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = n8x0_map_io,
|
||||
.init_irq = n8x0_init_irq,
|
||||
@ -131,7 +131,7 @@ MACHINE_END
|
||||
|
||||
MACHINE_START(NOKIA_N810, "Nokia N810")
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = n8x0_map_io,
|
||||
.init_irq = n8x0_init_irq,
|
||||
@ -141,7 +141,7 @@ MACHINE_END
|
||||
|
||||
MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX")
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = n8x0_map_io,
|
||||
.init_irq = n8x0_init_irq,
|
||||
|
@ -37,13 +37,13 @@
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <mach/nand.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/timer-gp.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/nand.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/timer-gp.h>
|
||||
|
||||
#include "mmc-twl4030.h"
|
||||
|
||||
@ -429,7 +429,7 @@ static void __init omap3_beagle_map_io(void)
|
||||
MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
|
||||
/* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap3_beagle_map_io,
|
||||
.init_irq = omap3_beagle_init_irq,
|
||||
|
@ -33,11 +33,11 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/mcspi.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/mcspi.h>
|
||||
|
||||
#include "sdram-micron-mt46h32m32lf-6.h"
|
||||
#include "mmc-twl4030.h"
|
||||
@ -324,7 +324,7 @@ static void __init omap3_evm_map_io(void)
|
||||
MACHINE_START(OMAP3EVM, "OMAP3 EVM")
|
||||
/* Maintainer: Syed Mohammed Khasim - Texas Instruments */
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap3_evm_map_io,
|
||||
.init_irq = omap3_evm_init_irq,
|
||||
|
@ -34,13 +34,13 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/mcspi.h>
|
||||
#include <mach/usb.h>
|
||||
#include <mach/mux.h>
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/usb.h>
|
||||
#include <plat/mux.h>
|
||||
|
||||
#include "sdram-micron-mt46h32m32lf-6.h"
|
||||
#include "mmc-twl4030.h"
|
||||
@ -412,7 +412,7 @@ static void __init omap3pandora_map_io(void)
|
||||
|
||||
MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console")
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap3pandora_map_io,
|
||||
.init_irq = omap3pandora_init_irq,
|
||||
|
@ -38,14 +38,14 @@
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/nand.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/usb.h>
|
||||
#include <plat/nand.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/usb.h>
|
||||
|
||||
#include "sdram-micron-mt46h32m32lf-6.h"
|
||||
#include "mmc-twl4030.h"
|
||||
@ -67,7 +67,7 @@
|
||||
#if defined(CONFIG_TOUCHSCREEN_ADS7846) || \
|
||||
defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
|
||||
|
||||
#include <mach/mcspi.h>
|
||||
#include <plat/mcspi.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/ads7846.h>
|
||||
|
||||
@ -451,7 +451,7 @@ static void __init overo_map_io(void)
|
||||
|
||||
MACHINE_START(OVERO, "Gumstix Overo")
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = overo_map_io,
|
||||
.init_irq = overo_init_irq,
|
||||
|
@ -22,14 +22,14 @@
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <mach/mcspi.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <mach/onenand.h>
|
||||
#include <mach/gpmc-smc91x.h>
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/onenand.h>
|
||||
#include <plat/gpmc-smc91x.h>
|
||||
|
||||
#include "mmc-twl4030.h"
|
||||
|
||||
|
@ -22,13 +22,13 @@
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/mcspi.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <mach/usb.h>
|
||||
#include <plat/mcspi.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/usb.h>
|
||||
|
||||
static struct omap_lcd_config rx51_lcd_config = {
|
||||
.ctrl_name = "internal",
|
||||
@ -84,7 +84,7 @@ static void __init rx51_map_io(void)
|
||||
MACHINE_START(NOKIA_RX51, "Nokia RX-51 board")
|
||||
/* Maintainer: Lauri Leukkunen <lauri.leukkunen@nokia.com> */
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = rx51_map_io,
|
||||
.init_irq = rx51_init_irq,
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
||||
#include <mach/gpmc.h>
|
||||
#include <plat/gpmc.h>
|
||||
|
||||
#define ZOOM2_SMSC911X_CS 7
|
||||
#define ZOOM2_SMSC911X_GPIO 158
|
||||
|
@ -21,8 +21,8 @@
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include <mach/common.h>
|
||||
#include <mach/usb.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/usb.h>
|
||||
|
||||
#include "mmc-twl4030.h"
|
||||
#include "sdram-micron-mt46h32m32lf-6.h"
|
||||
@ -282,7 +282,7 @@ static void __init omap_zoom2_map_io(void)
|
||||
|
||||
MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board")
|
||||
.phys_io = 0x48000000,
|
||||
.io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
|
||||
.io_pg_offst = ((0xfa000000) >> 18) & 0xfffc,
|
||||
.boot_params = 0x80000100,
|
||||
.map_io = omap_zoom2_map_io,
|
||||
.init_irq = omap_zoom2_init_irq,
|
||||
|
@ -24,13 +24,13 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/bitops.h>
|
||||
|
||||
#include <mach/clock.h>
|
||||
#include <mach/clockdomain.h>
|
||||
#include <mach/cpu.h>
|
||||
#include <mach/prcm.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/clockdomain.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/prcm.h>
|
||||
#include <asm/div64.h>
|
||||
|
||||
#include <mach/sdrc.h>
|
||||
#include <plat/sdrc.h>
|
||||
#include "sdrc.h"
|
||||
#include "clock.h"
|
||||
#include "prm.h"
|
||||
|
@ -16,7 +16,7 @@
|
||||
#ifndef __ARCH_ARM_MACH_OMAP2_CLOCK_H
|
||||
#define __ARCH_ARM_MACH_OMAP2_CLOCK_H
|
||||
|
||||
#include <mach/clock.h>
|
||||
#include <plat/clock.h>
|
||||
|
||||
/* The maximum error between a target DPLL rate and the rounded rate in Hz */
|
||||
#define DEFAULT_DPLL_RATE_TOLERANCE 50000
|
||||
|
@ -28,13 +28,13 @@
|
||||
#include <linux/cpufreq.h>
|
||||
#include <linux/bitops.h>
|
||||
|
||||
#include <mach/clock.h>
|
||||
#include <mach/sram.h>
|
||||
#include <mach/prcm.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/sram.h>
|
||||
#include <plat/prcm.h>
|
||||
#include <asm/div64.h>
|
||||
#include <asm/clkdev.h>
|
||||
|
||||
#include <mach/sdrc.h>
|
||||
#include <plat/sdrc.h>
|
||||
#include "clock.h"
|
||||
#include "prm.h"
|
||||
#include "prm-regbits-24xx.h"
|
||||
|
@ -27,13 +27,13 @@
|
||||
#include <linux/limits.h>
|
||||
#include <linux/bitops.h>
|
||||
|
||||
#include <mach/cpu.h>
|
||||
#include <mach/clock.h>
|
||||
#include <mach/sram.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/sram.h>
|
||||
#include <asm/div64.h>
|
||||
#include <asm/clkdev.h>
|
||||
|
||||
#include <mach/sdrc.h>
|
||||
#include <plat/sdrc.h>
|
||||
#include "clock.h"
|
||||
#include "prm.h"
|
||||
#include "prm-regbits-34xx.h"
|
||||
|
@ -19,7 +19,7 @@
|
||||
#ifndef __ARCH_ARM_MACH_OMAP2_CLOCK34XX_H
|
||||
#define __ARCH_ARM_MACH_OMAP2_CLOCK34XX_H
|
||||
|
||||
#include <mach/control.h>
|
||||
#include <plat/control.h>
|
||||
|
||||
#include "clock.h"
|
||||
#include "cm.h"
|
||||
|
@ -28,14 +28,14 @@
|
||||
|
||||
#include <linux/bitops.h>
|
||||
|
||||
#include <mach/clock.h>
|
||||
#include <plat/clock.h>
|
||||
|
||||
#include "prm.h"
|
||||
#include "prm-regbits-24xx.h"
|
||||
#include "cm.h"
|
||||
|
||||
#include <mach/powerdomain.h>
|
||||
#include <mach/clockdomain.h>
|
||||
#include <plat/powerdomain.h>
|
||||
#include <plat/clockdomain.h>
|
||||
|
||||
/* clkdm_list contains all registered struct clockdomains */
|
||||
static LIST_HEAD(clkdm_list);
|
||||
|
@ -10,7 +10,7 @@
|
||||
#ifndef __ARCH_ARM_MACH_OMAP2_CLOCKDOMAINS_H
|
||||
#define __ARCH_ARM_MACH_OMAP2_CLOCKDOMAINS_H
|
||||
|
||||
#include <mach/clockdomain.h>
|
||||
#include <plat/clockdomain.h>
|
||||
|
||||
/*
|
||||
* OMAP2/3-common clockdomains
|
||||
|
@ -17,11 +17,11 @@
|
||||
#include "prcm-common.h"
|
||||
|
||||
#define OMAP2420_CM_REGADDR(module, reg) \
|
||||
OMAP2_IO_ADDRESS(OMAP2420_CM_BASE + (module) + (reg))
|
||||
OMAP2_L4_IO_ADDRESS(OMAP2420_CM_BASE + (module) + (reg))
|
||||
#define OMAP2430_CM_REGADDR(module, reg) \
|
||||
OMAP2_IO_ADDRESS(OMAP2430_CM_BASE + (module) + (reg))
|
||||
OMAP2_L4_IO_ADDRESS(OMAP2430_CM_BASE + (module) + (reg))
|
||||
#define OMAP34XX_CM_REGADDR(module, reg) \
|
||||
OMAP2_IO_ADDRESS(OMAP3430_CM_BASE + (module) + (reg))
|
||||
OMAP2_L4_IO_ADDRESS(OMAP3430_CM_BASE + (module) + (reg))
|
||||
|
||||
/*
|
||||
* Architecture-specific global CM registers
|
||||
|
@ -15,11 +15,127 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <mach/common.h>
|
||||
#include <mach/control.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/control.h>
|
||||
#include <plat/sdrc.h>
|
||||
#include "cm-regbits-34xx.h"
|
||||
#include "prm-regbits-34xx.h"
|
||||
#include "cm.h"
|
||||
#include "prm.h"
|
||||
#include "sdrc.h"
|
||||
|
||||
static void __iomem *omap2_ctrl_base;
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_PM)
|
||||
struct omap3_scratchpad {
|
||||
u32 boot_config_ptr;
|
||||
u32 public_restore_ptr;
|
||||
u32 secure_ram_restore_ptr;
|
||||
u32 sdrc_module_semaphore;
|
||||
u32 prcm_block_offset;
|
||||
u32 sdrc_block_offset;
|
||||
};
|
||||
|
||||
struct omap3_scratchpad_prcm_block {
|
||||
u32 prm_clksrc_ctrl;
|
||||
u32 prm_clksel;
|
||||
u32 cm_clksel_core;
|
||||
u32 cm_clksel_wkup;
|
||||
u32 cm_clken_pll;
|
||||
u32 cm_autoidle_pll;
|
||||
u32 cm_clksel1_pll;
|
||||
u32 cm_clksel2_pll;
|
||||
u32 cm_clksel3_pll;
|
||||
u32 cm_clken_pll_mpu;
|
||||
u32 cm_autoidle_pll_mpu;
|
||||
u32 cm_clksel1_pll_mpu;
|
||||
u32 cm_clksel2_pll_mpu;
|
||||
u32 prcm_block_size;
|
||||
};
|
||||
|
||||
struct omap3_scratchpad_sdrc_block {
|
||||
u16 sysconfig;
|
||||
u16 cs_cfg;
|
||||
u16 sharing;
|
||||
u16 err_type;
|
||||
u32 dll_a_ctrl;
|
||||
u32 dll_b_ctrl;
|
||||
u32 power;
|
||||
u32 cs_0;
|
||||
u32 mcfg_0;
|
||||
u16 mr_0;
|
||||
u16 emr_1_0;
|
||||
u16 emr_2_0;
|
||||
u16 emr_3_0;
|
||||
u32 actim_ctrla_0;
|
||||
u32 actim_ctrlb_0;
|
||||
u32 rfr_ctrl_0;
|
||||
u32 cs_1;
|
||||
u32 mcfg_1;
|
||||
u16 mr_1;
|
||||
u16 emr_1_1;
|
||||
u16 emr_2_1;
|
||||
u16 emr_3_1;
|
||||
u32 actim_ctrla_1;
|
||||
u32 actim_ctrlb_1;
|
||||
u32 rfr_ctrl_1;
|
||||
u16 dcdl_1_ctrl;
|
||||
u16 dcdl_2_ctrl;
|
||||
u32 flags;
|
||||
u32 block_size;
|
||||
};
|
||||
|
||||
void *omap3_secure_ram_storage;
|
||||
|
||||
/*
|
||||
* This is used to store ARM registers in SDRAM before attempting
|
||||
* an MPU OFF. The save and restore happens from the SRAM sleep code.
|
||||
* The address is stored in scratchpad, so that it can be used
|
||||
* during the restore path.
|
||||
*/
|
||||
u32 omap3_arm_context[128];
|
||||
|
||||
struct omap3_control_regs {
|
||||
u32 sysconfig;
|
||||
u32 devconf0;
|
||||
u32 mem_dftrw0;
|
||||
u32 mem_dftrw1;
|
||||
u32 msuspendmux_0;
|
||||
u32 msuspendmux_1;
|
||||
u32 msuspendmux_2;
|
||||
u32 msuspendmux_3;
|
||||
u32 msuspendmux_4;
|
||||
u32 msuspendmux_5;
|
||||
u32 sec_ctrl;
|
||||
u32 devconf1;
|
||||
u32 csirxfe;
|
||||
u32 iva2_bootaddr;
|
||||
u32 iva2_bootmod;
|
||||
u32 debobs_0;
|
||||
u32 debobs_1;
|
||||
u32 debobs_2;
|
||||
u32 debobs_3;
|
||||
u32 debobs_4;
|
||||
u32 debobs_5;
|
||||
u32 debobs_6;
|
||||
u32 debobs_7;
|
||||
u32 debobs_8;
|
||||
u32 prog_io0;
|
||||
u32 prog_io1;
|
||||
u32 dss_dpll_spreading;
|
||||
u32 core_dpll_spreading;
|
||||
u32 per_dpll_spreading;
|
||||
u32 usbhost_dpll_spreading;
|
||||
u32 pbias_lite;
|
||||
u32 temp_sensor;
|
||||
u32 sramldo4;
|
||||
u32 sramldo5;
|
||||
u32 csi;
|
||||
};
|
||||
|
||||
static struct omap3_control_regs control_context;
|
||||
#endif /* CONFIG_ARCH_OMAP3 && CONFIG_PM */
|
||||
|
||||
#define OMAP_CTRL_REGADDR(reg) (omap2_ctrl_base + (reg))
|
||||
|
||||
void __init omap2_set_globals_control(struct omap_globals *omap2_globals)
|
||||
@ -62,3 +178,268 @@ void omap_ctrl_writel(u32 val, u16 offset)
|
||||
__raw_writel(val, OMAP_CTRL_REGADDR(offset));
|
||||
}
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_PM)
|
||||
/*
|
||||
* Clears the scratchpad contents in case of cold boot-
|
||||
* called during bootup
|
||||
*/
|
||||
void omap3_clear_scratchpad_contents(void)
|
||||
{
|
||||
u32 max_offset = OMAP343X_SCRATCHPAD_ROM_OFFSET;
|
||||
u32 *v_addr;
|
||||
u32 offset = 0;
|
||||
v_addr = OMAP2_L4_IO_ADDRESS(OMAP343X_SCRATCHPAD_ROM);
|
||||
if (prm_read_mod_reg(OMAP3430_GR_MOD, OMAP3_PRM_RSTST_OFFSET) &
|
||||
OMAP3430_GLOBAL_COLD_RST) {
|
||||
for ( ; offset <= max_offset; offset += 0x4)
|
||||
__raw_writel(0x0, (v_addr + offset));
|
||||
prm_set_mod_reg_bits(OMAP3430_GLOBAL_COLD_RST, OMAP3430_GR_MOD,
|
||||
OMAP3_PRM_RSTST_OFFSET);
|
||||
}
|
||||
}
|
||||
|
||||
/* Populate the scratchpad structure with restore structure */
|
||||
void omap3_save_scratchpad_contents(void)
|
||||
{
|
||||
void * __iomem scratchpad_address;
|
||||
u32 arm_context_addr;
|
||||
struct omap3_scratchpad scratchpad_contents;
|
||||
struct omap3_scratchpad_prcm_block prcm_block_contents;
|
||||
struct omap3_scratchpad_sdrc_block sdrc_block_contents;
|
||||
|
||||
/* Populate the Scratchpad contents */
|
||||
scratchpad_contents.boot_config_ptr = 0x0;
|
||||
if (omap_rev() != OMAP3430_REV_ES3_0 &&
|
||||
omap_rev() != OMAP3430_REV_ES3_1)
|
||||
scratchpad_contents.public_restore_ptr =
|
||||
virt_to_phys(get_restore_pointer());
|
||||
else
|
||||
scratchpad_contents.public_restore_ptr =
|
||||
virt_to_phys(get_es3_restore_pointer());
|
||||
if (omap_type() == OMAP2_DEVICE_TYPE_GP)
|
||||
scratchpad_contents.secure_ram_restore_ptr = 0x0;
|
||||
else
|
||||
scratchpad_contents.secure_ram_restore_ptr =
|
||||
(u32) __pa(omap3_secure_ram_storage);
|
||||
scratchpad_contents.sdrc_module_semaphore = 0x0;
|
||||
scratchpad_contents.prcm_block_offset = 0x2C;
|
||||
scratchpad_contents.sdrc_block_offset = 0x64;
|
||||
|
||||
/* Populate the PRCM block contents */
|
||||
prcm_block_contents.prm_clksrc_ctrl = prm_read_mod_reg(OMAP3430_GR_MOD,
|
||||
OMAP3_PRM_CLKSRC_CTRL_OFFSET);
|
||||
prcm_block_contents.prm_clksel = prm_read_mod_reg(OMAP3430_CCR_MOD,
|
||||
OMAP3_PRM_CLKSEL_OFFSET);
|
||||
prcm_block_contents.cm_clksel_core =
|
||||
cm_read_mod_reg(CORE_MOD, CM_CLKSEL);
|
||||
prcm_block_contents.cm_clksel_wkup =
|
||||
cm_read_mod_reg(WKUP_MOD, CM_CLKSEL);
|
||||
prcm_block_contents.cm_clken_pll =
|
||||
cm_read_mod_reg(PLL_MOD, CM_CLKEN);
|
||||
prcm_block_contents.cm_autoidle_pll =
|
||||
cm_read_mod_reg(PLL_MOD, OMAP3430_CM_AUTOIDLE_PLL);
|
||||
prcm_block_contents.cm_clksel1_pll =
|
||||
cm_read_mod_reg(PLL_MOD, OMAP3430_CM_CLKSEL1_PLL);
|
||||
prcm_block_contents.cm_clksel2_pll =
|
||||
cm_read_mod_reg(PLL_MOD, OMAP3430_CM_CLKSEL2_PLL);
|
||||
prcm_block_contents.cm_clksel3_pll =
|
||||
cm_read_mod_reg(PLL_MOD, OMAP3430_CM_CLKSEL3);
|
||||
prcm_block_contents.cm_clken_pll_mpu =
|
||||
cm_read_mod_reg(MPU_MOD, OMAP3430_CM_CLKEN_PLL);
|
||||
prcm_block_contents.cm_autoidle_pll_mpu =
|
||||
cm_read_mod_reg(MPU_MOD, OMAP3430_CM_AUTOIDLE_PLL);
|
||||
prcm_block_contents.cm_clksel1_pll_mpu =
|
||||
cm_read_mod_reg(MPU_MOD, OMAP3430_CM_CLKSEL1_PLL);
|
||||
prcm_block_contents.cm_clksel2_pll_mpu =
|
||||
cm_read_mod_reg(MPU_MOD, OMAP3430_CM_CLKSEL2_PLL);
|
||||
prcm_block_contents.prcm_block_size = 0x0;
|
||||
|
||||
/* Populate the SDRC block contents */
|
||||
sdrc_block_contents.sysconfig =
|
||||
(sdrc_read_reg(SDRC_SYSCONFIG) & 0xFFFF);
|
||||
sdrc_block_contents.cs_cfg =
|
||||
(sdrc_read_reg(SDRC_CS_CFG) & 0xFFFF);
|
||||
sdrc_block_contents.sharing =
|
||||
(sdrc_read_reg(SDRC_SHARING) & 0xFFFF);
|
||||
sdrc_block_contents.err_type =
|
||||
(sdrc_read_reg(SDRC_ERR_TYPE) & 0xFFFF);
|
||||
sdrc_block_contents.dll_a_ctrl = sdrc_read_reg(SDRC_DLLA_CTRL);
|
||||
sdrc_block_contents.dll_b_ctrl = 0x0;
|
||||
/*
|
||||
* Due to a OMAP3 errata (1.142), on EMU/HS devices SRDC should
|
||||
* be programed to issue automatic self refresh on timeout
|
||||
* of AUTO_CNT = 1 prior to any transition to OFF mode.
|
||||
*/
|
||||
if ((omap_type() != OMAP2_DEVICE_TYPE_GP)
|
||||
&& (omap_rev() >= OMAP3430_REV_ES3_0))
|
||||
sdrc_block_contents.power = (sdrc_read_reg(SDRC_POWER) &
|
||||
~(SDRC_POWER_AUTOCOUNT_MASK|
|
||||
SDRC_POWER_CLKCTRL_MASK)) |
|
||||
(1 << SDRC_POWER_AUTOCOUNT_SHIFT) |
|
||||
SDRC_SELF_REFRESH_ON_AUTOCOUNT;
|
||||
else
|
||||
sdrc_block_contents.power = sdrc_read_reg(SDRC_POWER);
|
||||
|
||||
sdrc_block_contents.cs_0 = 0x0;
|
||||
sdrc_block_contents.mcfg_0 = sdrc_read_reg(SDRC_MCFG_0);
|
||||
sdrc_block_contents.mr_0 = (sdrc_read_reg(SDRC_MR_0) & 0xFFFF);
|
||||
sdrc_block_contents.emr_1_0 = 0x0;
|
||||
sdrc_block_contents.emr_2_0 = 0x0;
|
||||
sdrc_block_contents.emr_3_0 = 0x0;
|
||||
sdrc_block_contents.actim_ctrla_0 =
|
||||
sdrc_read_reg(SDRC_ACTIM_CTRL_A_0);
|
||||
sdrc_block_contents.actim_ctrlb_0 =
|
||||
sdrc_read_reg(SDRC_ACTIM_CTRL_B_0);
|
||||
sdrc_block_contents.rfr_ctrl_0 =
|
||||
sdrc_read_reg(SDRC_RFR_CTRL_0);
|
||||
sdrc_block_contents.cs_1 = 0x0;
|
||||
sdrc_block_contents.mcfg_1 = sdrc_read_reg(SDRC_MCFG_1);
|
||||
sdrc_block_contents.mr_1 = sdrc_read_reg(SDRC_MR_1) & 0xFFFF;
|
||||
sdrc_block_contents.emr_1_1 = 0x0;
|
||||
sdrc_block_contents.emr_2_1 = 0x0;
|
||||
sdrc_block_contents.emr_3_1 = 0x0;
|
||||
sdrc_block_contents.actim_ctrla_1 =
|
||||
sdrc_read_reg(SDRC_ACTIM_CTRL_A_1);
|
||||
sdrc_block_contents.actim_ctrlb_1 =
|
||||
sdrc_read_reg(SDRC_ACTIM_CTRL_B_1);
|
||||
sdrc_block_contents.rfr_ctrl_1 =
|
||||
sdrc_read_reg(SDRC_RFR_CTRL_1);
|
||||
sdrc_block_contents.dcdl_1_ctrl = 0x0;
|
||||
sdrc_block_contents.dcdl_2_ctrl = 0x0;
|
||||
sdrc_block_contents.flags = 0x0;
|
||||
sdrc_block_contents.block_size = 0x0;
|
||||
|
||||
arm_context_addr = virt_to_phys(omap3_arm_context);
|
||||
|
||||
/* Copy all the contents to the scratchpad location */
|
||||
scratchpad_address = OMAP2_L4_IO_ADDRESS(OMAP343X_SCRATCHPAD);
|
||||
memcpy_toio(scratchpad_address, &scratchpad_contents,
|
||||
sizeof(scratchpad_contents));
|
||||
/* Scratchpad contents being 32 bits, a divide by 4 done here */
|
||||
memcpy_toio(scratchpad_address +
|
||||
scratchpad_contents.prcm_block_offset,
|
||||
&prcm_block_contents, sizeof(prcm_block_contents));
|
||||
memcpy_toio(scratchpad_address +
|
||||
scratchpad_contents.sdrc_block_offset,
|
||||
&sdrc_block_contents, sizeof(sdrc_block_contents));
|
||||
/*
|
||||
* Copies the address of the location in SDRAM where ARM
|
||||
* registers get saved during a MPU OFF transition.
|
||||
*/
|
||||
memcpy_toio(scratchpad_address +
|
||||
scratchpad_contents.sdrc_block_offset +
|
||||
sizeof(sdrc_block_contents), &arm_context_addr, 4);
|
||||
}
|
||||
|
||||
void omap3_control_save_context(void)
|
||||
{
|
||||
control_context.sysconfig = omap_ctrl_readl(OMAP2_CONTROL_SYSCONFIG);
|
||||
control_context.devconf0 = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
|
||||
control_context.mem_dftrw0 =
|
||||
omap_ctrl_readl(OMAP343X_CONTROL_MEM_DFTRW0);
|
||||
control_context.mem_dftrw1 =
|
||||
omap_ctrl_readl(OMAP343X_CONTROL_MEM_DFTRW1);
|
||||
control_context.msuspendmux_0 =
|
||||
omap_ctrl_readl(OMAP2_CONTROL_MSUSPENDMUX_0);
|
||||
control_context.msuspendmux_1 =
|
||||
omap_ctrl_readl(OMAP2_CONTROL_MSUSPENDMUX_1);
|
||||
control_context.msuspendmux_2 =
|
||||
omap_ctrl_readl(OMAP2_CONTROL_MSUSPENDMUX_2);
|
||||
control_context.msuspendmux_3 =
|
||||
omap_ctrl_readl(OMAP2_CONTROL_MSUSPENDMUX_3);
|
||||
control_context.msuspendmux_4 =
|
||||
omap_ctrl_readl(OMAP2_CONTROL_MSUSPENDMUX_4);
|
||||
control_context.msuspendmux_5 =
|
||||
omap_ctrl_readl(OMAP2_CONTROL_MSUSPENDMUX_5);
|
||||
control_context.sec_ctrl = omap_ctrl_readl(OMAP2_CONTROL_SEC_CTRL);
|
||||
control_context.devconf1 = omap_ctrl_readl(OMAP343X_CONTROL_DEVCONF1);
|
||||
control_context.csirxfe = omap_ctrl_readl(OMAP343X_CONTROL_CSIRXFE);
|
||||
control_context.iva2_bootaddr =
|
||||
omap_ctrl_readl(OMAP343X_CONTROL_IVA2_BOOTADDR);
|
||||
control_context.iva2_bootmod =
|
||||
omap_ctrl_readl(OMAP343X_CONTROL_IVA2_BOOTMOD);
|
||||
control_context.debobs_0 = omap_ctrl_readl(OMAP343X_CONTROL_DEBOBS(0));
|
||||
control_context.debobs_1 = omap_ctrl_readl(OMAP343X_CONTROL_DEBOBS(1));
|
||||
control_context.debobs_2 = omap_ctrl_readl(OMAP343X_CONTROL_DEBOBS(2));
|
||||
control_context.debobs_3 = omap_ctrl_readl(OMAP343X_CONTROL_DEBOBS(3));
|
||||
control_context.debobs_4 = omap_ctrl_readl(OMAP343X_CONTROL_DEBOBS(4));
|
||||
control_context.debobs_5 = omap_ctrl_readl(OMAP343X_CONTROL_DEBOBS(5));
|
||||
control_context.debobs_6 = omap_ctrl_readl(OMAP343X_CONTROL_DEBOBS(6));
|
||||
control_context.debobs_7 = omap_ctrl_readl(OMAP343X_CONTROL_DEBOBS(7));
|
||||
control_context.debobs_8 = omap_ctrl_readl(OMAP343X_CONTROL_DEBOBS(8));
|
||||
control_context.prog_io0 = omap_ctrl_readl(OMAP343X_CONTROL_PROG_IO0);
|
||||
control_context.prog_io1 = omap_ctrl_readl(OMAP343X_CONTROL_PROG_IO1);
|
||||
control_context.dss_dpll_spreading =
|
||||
omap_ctrl_readl(OMAP343X_CONTROL_DSS_DPLL_SPREADING);
|
||||
control_context.core_dpll_spreading =
|
||||
omap_ctrl_readl(OMAP343X_CONTROL_CORE_DPLL_SPREADING);
|
||||
control_context.per_dpll_spreading =
|
||||
omap_ctrl_readl(OMAP343X_CONTROL_PER_DPLL_SPREADING);
|
||||
control_context.usbhost_dpll_spreading =
|
||||
omap_ctrl_readl(OMAP343X_CONTROL_USBHOST_DPLL_SPREADING);
|
||||
control_context.pbias_lite =
|
||||
omap_ctrl_readl(OMAP343X_CONTROL_PBIAS_LITE);
|
||||
control_context.temp_sensor =
|
||||
omap_ctrl_readl(OMAP343X_CONTROL_TEMP_SENSOR);
|
||||
control_context.sramldo4 = omap_ctrl_readl(OMAP343X_CONTROL_SRAMLDO4);
|
||||
control_context.sramldo5 = omap_ctrl_readl(OMAP343X_CONTROL_SRAMLDO5);
|
||||
control_context.csi = omap_ctrl_readl(OMAP343X_CONTROL_CSI);
|
||||
return;
|
||||
}
|
||||
|
||||
void omap3_control_restore_context(void)
|
||||
{
|
||||
omap_ctrl_writel(control_context.sysconfig, OMAP2_CONTROL_SYSCONFIG);
|
||||
omap_ctrl_writel(control_context.devconf0, OMAP2_CONTROL_DEVCONF0);
|
||||
omap_ctrl_writel(control_context.mem_dftrw0,
|
||||
OMAP343X_CONTROL_MEM_DFTRW0);
|
||||
omap_ctrl_writel(control_context.mem_dftrw1,
|
||||
OMAP343X_CONTROL_MEM_DFTRW1);
|
||||
omap_ctrl_writel(control_context.msuspendmux_0,
|
||||
OMAP2_CONTROL_MSUSPENDMUX_0);
|
||||
omap_ctrl_writel(control_context.msuspendmux_1,
|
||||
OMAP2_CONTROL_MSUSPENDMUX_1);
|
||||
omap_ctrl_writel(control_context.msuspendmux_2,
|
||||
OMAP2_CONTROL_MSUSPENDMUX_2);
|
||||
omap_ctrl_writel(control_context.msuspendmux_3,
|
||||
OMAP2_CONTROL_MSUSPENDMUX_3);
|
||||
omap_ctrl_writel(control_context.msuspendmux_4,
|
||||
OMAP2_CONTROL_MSUSPENDMUX_4);
|
||||
omap_ctrl_writel(control_context.msuspendmux_5,
|
||||
OMAP2_CONTROL_MSUSPENDMUX_5);
|
||||
omap_ctrl_writel(control_context.sec_ctrl, OMAP2_CONTROL_SEC_CTRL);
|
||||
omap_ctrl_writel(control_context.devconf1, OMAP343X_CONTROL_DEVCONF1);
|
||||
omap_ctrl_writel(control_context.csirxfe, OMAP343X_CONTROL_CSIRXFE);
|
||||
omap_ctrl_writel(control_context.iva2_bootaddr,
|
||||
OMAP343X_CONTROL_IVA2_BOOTADDR);
|
||||
omap_ctrl_writel(control_context.iva2_bootmod,
|
||||
OMAP343X_CONTROL_IVA2_BOOTMOD);
|
||||
omap_ctrl_writel(control_context.debobs_0, OMAP343X_CONTROL_DEBOBS(0));
|
||||
omap_ctrl_writel(control_context.debobs_1, OMAP343X_CONTROL_DEBOBS(1));
|
||||
omap_ctrl_writel(control_context.debobs_2, OMAP343X_CONTROL_DEBOBS(2));
|
||||
omap_ctrl_writel(control_context.debobs_3, OMAP343X_CONTROL_DEBOBS(3));
|
||||
omap_ctrl_writel(control_context.debobs_4, OMAP343X_CONTROL_DEBOBS(4));
|
||||
omap_ctrl_writel(control_context.debobs_5, OMAP343X_CONTROL_DEBOBS(5));
|
||||
omap_ctrl_writel(control_context.debobs_6, OMAP343X_CONTROL_DEBOBS(6));
|
||||
omap_ctrl_writel(control_context.debobs_7, OMAP343X_CONTROL_DEBOBS(7));
|
||||
omap_ctrl_writel(control_context.debobs_8, OMAP343X_CONTROL_DEBOBS(8));
|
||||
omap_ctrl_writel(control_context.prog_io0, OMAP343X_CONTROL_PROG_IO0);
|
||||
omap_ctrl_writel(control_context.prog_io1, OMAP343X_CONTROL_PROG_IO1);
|
||||
omap_ctrl_writel(control_context.dss_dpll_spreading,
|
||||
OMAP343X_CONTROL_DSS_DPLL_SPREADING);
|
||||
omap_ctrl_writel(control_context.core_dpll_spreading,
|
||||
OMAP343X_CONTROL_CORE_DPLL_SPREADING);
|
||||
omap_ctrl_writel(control_context.per_dpll_spreading,
|
||||
OMAP343X_CONTROL_PER_DPLL_SPREADING);
|
||||
omap_ctrl_writel(control_context.usbhost_dpll_spreading,
|
||||
OMAP343X_CONTROL_USBHOST_DPLL_SPREADING);
|
||||
omap_ctrl_writel(control_context.pbias_lite,
|
||||
OMAP343X_CONTROL_PBIAS_LITE);
|
||||
omap_ctrl_writel(control_context.temp_sensor,
|
||||
OMAP343X_CONTROL_TEMP_SENSOR);
|
||||
omap_ctrl_writel(control_context.sramldo4, OMAP343X_CONTROL_SRAMLDO4);
|
||||
omap_ctrl_writel(control_context.sramldo5, OMAP343X_CONTROL_SRAMLDO5);
|
||||
omap_ctrl_writel(control_context.csi, OMAP343X_CONTROL_CSI);
|
||||
return;
|
||||
}
|
||||
#endif /* CONFIG_ARCH_OMAP3 && CONFIG_PM */
|
||||
|
318
arch/arm/mach-omap2/cpuidle34xx.c
Normal file
318
arch/arm/mach-omap2/cpuidle34xx.c
Normal file
@ -0,0 +1,318 @@
|
||||
/*
|
||||
* linux/arch/arm/mach-omap2/cpuidle34xx.c
|
||||
*
|
||||
* OMAP3 CPU IDLE Routines
|
||||
*
|
||||
* Copyright (C) 2008 Texas Instruments, Inc.
|
||||
* Rajendra Nayak <rnayak@ti.com>
|
||||
*
|
||||
* Copyright (C) 2007 Texas Instruments, Inc.
|
||||
* Karthik Dasu <karthik-dp@ti.com>
|
||||
*
|
||||
* Copyright (C) 2006 Nokia Corporation
|
||||
* Tony Lindgren <tony@atomide.com>
|
||||
*
|
||||
* Copyright (C) 2005 Texas Instruments, Inc.
|
||||
* Richard Woodruff <r-woodruff2@ti.com>
|
||||
*
|
||||
* Based on pm.c for omap2
|
||||
*
|
||||
* 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 <linux/sched.h>
|
||||
#include <linux/cpuidle.h>
|
||||
|
||||
#include <plat/prcm.h>
|
||||
#include <plat/irqs.h>
|
||||
#include <plat/powerdomain.h>
|
||||
#include <plat/clockdomain.h>
|
||||
#include <plat/control.h>
|
||||
#include <plat/serial.h>
|
||||
|
||||
#include "pm.h"
|
||||
|
||||
#ifdef CONFIG_CPU_IDLE
|
||||
|
||||
#define OMAP3_MAX_STATES 7
|
||||
#define OMAP3_STATE_C1 0 /* C1 - MPU WFI + Core active */
|
||||
#define OMAP3_STATE_C2 1 /* C2 - MPU WFI + Core inactive */
|
||||
#define OMAP3_STATE_C3 2 /* C3 - MPU CSWR + Core inactive */
|
||||
#define OMAP3_STATE_C4 3 /* C4 - MPU OFF + Core iactive */
|
||||
#define OMAP3_STATE_C5 4 /* C5 - MPU RET + Core RET */
|
||||
#define OMAP3_STATE_C6 5 /* C6 - MPU OFF + Core RET */
|
||||
#define OMAP3_STATE_C7 6 /* C7 - MPU OFF + Core OFF */
|
||||
|
||||
struct omap3_processor_cx {
|
||||
u8 valid;
|
||||
u8 type;
|
||||
u32 sleep_latency;
|
||||
u32 wakeup_latency;
|
||||
u32 mpu_state;
|
||||
u32 core_state;
|
||||
u32 threshold;
|
||||
u32 flags;
|
||||
};
|
||||
|
||||
struct omap3_processor_cx omap3_power_states[OMAP3_MAX_STATES];
|
||||
struct omap3_processor_cx current_cx_state;
|
||||
struct powerdomain *mpu_pd, *core_pd;
|
||||
|
||||
static int omap3_idle_bm_check(void)
|
||||
{
|
||||
if (!omap3_can_sleep())
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int _cpuidle_allow_idle(struct powerdomain *pwrdm,
|
||||
struct clockdomain *clkdm)
|
||||
{
|
||||
omap2_clkdm_allow_idle(clkdm);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int _cpuidle_deny_idle(struct powerdomain *pwrdm,
|
||||
struct clockdomain *clkdm)
|
||||
{
|
||||
omap2_clkdm_deny_idle(clkdm);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* omap3_enter_idle - Programs OMAP3 to enter the specified state
|
||||
* @dev: cpuidle device
|
||||
* @state: The target state to be programmed
|
||||
*
|
||||
* Called from the CPUidle framework to program the device to the
|
||||
* specified target state selected by the governor.
|
||||
*/
|
||||
static int omap3_enter_idle(struct cpuidle_device *dev,
|
||||
struct cpuidle_state *state)
|
||||
{
|
||||
struct omap3_processor_cx *cx = cpuidle_get_statedata(state);
|
||||
struct timespec ts_preidle, ts_postidle, ts_idle;
|
||||
u32 mpu_state = cx->mpu_state, core_state = cx->core_state;
|
||||
|
||||
current_cx_state = *cx;
|
||||
|
||||
/* Used to keep track of the total time in idle */
|
||||
getnstimeofday(&ts_preidle);
|
||||
|
||||
local_irq_disable();
|
||||
local_fiq_disable();
|
||||
|
||||
if (!enable_off_mode) {
|
||||
if (mpu_state < PWRDM_POWER_RET)
|
||||
mpu_state = PWRDM_POWER_RET;
|
||||
if (core_state < PWRDM_POWER_RET)
|
||||
core_state = PWRDM_POWER_RET;
|
||||
}
|
||||
|
||||
pwrdm_set_next_pwrst(mpu_pd, mpu_state);
|
||||
pwrdm_set_next_pwrst(core_pd, core_state);
|
||||
|
||||
if (omap_irq_pending() || need_resched())
|
||||
goto return_sleep_time;
|
||||
|
||||
if (cx->type == OMAP3_STATE_C1) {
|
||||
pwrdm_for_each_clkdm(mpu_pd, _cpuidle_deny_idle);
|
||||
pwrdm_for_each_clkdm(core_pd, _cpuidle_deny_idle);
|
||||
}
|
||||
|
||||
/* Execute ARM wfi */
|
||||
omap_sram_idle();
|
||||
|
||||
if (cx->type == OMAP3_STATE_C1) {
|
||||
pwrdm_for_each_clkdm(mpu_pd, _cpuidle_allow_idle);
|
||||
pwrdm_for_each_clkdm(core_pd, _cpuidle_allow_idle);
|
||||
}
|
||||
|
||||
return_sleep_time:
|
||||
getnstimeofday(&ts_postidle);
|
||||
ts_idle = timespec_sub(ts_postidle, ts_preidle);
|
||||
|
||||
local_irq_enable();
|
||||
local_fiq_enable();
|
||||
|
||||
return (u32)timespec_to_ns(&ts_idle)/1000;
|
||||
}
|
||||
|
||||
/**
|
||||
* omap3_enter_idle_bm - Checks for any bus activity
|
||||
* @dev: cpuidle device
|
||||
* @state: The target state to be programmed
|
||||
*
|
||||
* Used for C states with CPUIDLE_FLAG_CHECK_BM flag set. This
|
||||
* function checks for any pending activity and then programs the
|
||||
* device to the specified or a safer state.
|
||||
*/
|
||||
static int omap3_enter_idle_bm(struct cpuidle_device *dev,
|
||||
struct cpuidle_state *state)
|
||||
{
|
||||
struct cpuidle_state *new_state = state;
|
||||
|
||||
if ((state->flags & CPUIDLE_FLAG_CHECK_BM) && omap3_idle_bm_check()) {
|
||||
BUG_ON(!dev->safe_state);
|
||||
new_state = dev->safe_state;
|
||||
}
|
||||
|
||||
dev->last_state = new_state;
|
||||
return omap3_enter_idle(dev, new_state);
|
||||
}
|
||||
|
||||
DEFINE_PER_CPU(struct cpuidle_device, omap3_idle_dev);
|
||||
|
||||
/* omap3_init_power_states - Initialises the OMAP3 specific C states.
|
||||
*
|
||||
* Below is the desciption of each C state.
|
||||
* C1 . MPU WFI + Core active
|
||||
* C2 . MPU WFI + Core inactive
|
||||
* C3 . MPU CSWR + Core inactive
|
||||
* C4 . MPU OFF + Core inactive
|
||||
* C5 . MPU CSWR + Core CSWR
|
||||
* C6 . MPU OFF + Core CSWR
|
||||
* C7 . MPU OFF + Core OFF
|
||||
*/
|
||||
void omap_init_power_states(void)
|
||||
{
|
||||
/* C1 . MPU WFI + Core active */
|
||||
omap3_power_states[OMAP3_STATE_C1].valid = 1;
|
||||
omap3_power_states[OMAP3_STATE_C1].type = OMAP3_STATE_C1;
|
||||
omap3_power_states[OMAP3_STATE_C1].sleep_latency = 2;
|
||||
omap3_power_states[OMAP3_STATE_C1].wakeup_latency = 2;
|
||||
omap3_power_states[OMAP3_STATE_C1].threshold = 5;
|
||||
omap3_power_states[OMAP3_STATE_C1].mpu_state = PWRDM_POWER_ON;
|
||||
omap3_power_states[OMAP3_STATE_C1].core_state = PWRDM_POWER_ON;
|
||||
omap3_power_states[OMAP3_STATE_C1].flags = CPUIDLE_FLAG_TIME_VALID;
|
||||
|
||||
/* C2 . MPU WFI + Core inactive */
|
||||
omap3_power_states[OMAP3_STATE_C2].valid = 1;
|
||||
omap3_power_states[OMAP3_STATE_C2].type = OMAP3_STATE_C2;
|
||||
omap3_power_states[OMAP3_STATE_C2].sleep_latency = 10;
|
||||
omap3_power_states[OMAP3_STATE_C2].wakeup_latency = 10;
|
||||
omap3_power_states[OMAP3_STATE_C2].threshold = 30;
|
||||
omap3_power_states[OMAP3_STATE_C2].mpu_state = PWRDM_POWER_ON;
|
||||
omap3_power_states[OMAP3_STATE_C2].core_state = PWRDM_POWER_ON;
|
||||
omap3_power_states[OMAP3_STATE_C2].flags = CPUIDLE_FLAG_TIME_VALID;
|
||||
|
||||
/* C3 . MPU CSWR + Core inactive */
|
||||
omap3_power_states[OMAP3_STATE_C3].valid = 1;
|
||||
omap3_power_states[OMAP3_STATE_C3].type = OMAP3_STATE_C3;
|
||||
omap3_power_states[OMAP3_STATE_C3].sleep_latency = 50;
|
||||
omap3_power_states[OMAP3_STATE_C3].wakeup_latency = 50;
|
||||
omap3_power_states[OMAP3_STATE_C3].threshold = 300;
|
||||
omap3_power_states[OMAP3_STATE_C3].mpu_state = PWRDM_POWER_RET;
|
||||
omap3_power_states[OMAP3_STATE_C3].core_state = PWRDM_POWER_ON;
|
||||
omap3_power_states[OMAP3_STATE_C3].flags = CPUIDLE_FLAG_TIME_VALID |
|
||||
CPUIDLE_FLAG_CHECK_BM;
|
||||
|
||||
/* C4 . MPU OFF + Core inactive */
|
||||
omap3_power_states[OMAP3_STATE_C4].valid = 1;
|
||||
omap3_power_states[OMAP3_STATE_C4].type = OMAP3_STATE_C4;
|
||||
omap3_power_states[OMAP3_STATE_C4].sleep_latency = 1500;
|
||||
omap3_power_states[OMAP3_STATE_C4].wakeup_latency = 1800;
|
||||
omap3_power_states[OMAP3_STATE_C4].threshold = 4000;
|
||||
omap3_power_states[OMAP3_STATE_C4].mpu_state = PWRDM_POWER_OFF;
|
||||
omap3_power_states[OMAP3_STATE_C4].core_state = PWRDM_POWER_ON;
|
||||
omap3_power_states[OMAP3_STATE_C4].flags = CPUIDLE_FLAG_TIME_VALID |
|
||||
CPUIDLE_FLAG_CHECK_BM;
|
||||
|
||||
/* C5 . MPU CSWR + Core CSWR*/
|
||||
omap3_power_states[OMAP3_STATE_C5].valid = 1;
|
||||
omap3_power_states[OMAP3_STATE_C5].type = OMAP3_STATE_C5;
|
||||
omap3_power_states[OMAP3_STATE_C5].sleep_latency = 2500;
|
||||
omap3_power_states[OMAP3_STATE_C5].wakeup_latency = 7500;
|
||||
omap3_power_states[OMAP3_STATE_C5].threshold = 12000;
|
||||
omap3_power_states[OMAP3_STATE_C5].mpu_state = PWRDM_POWER_RET;
|
||||
omap3_power_states[OMAP3_STATE_C5].core_state = PWRDM_POWER_RET;
|
||||
omap3_power_states[OMAP3_STATE_C5].flags = CPUIDLE_FLAG_TIME_VALID |
|
||||
CPUIDLE_FLAG_CHECK_BM;
|
||||
|
||||
/* C6 . MPU OFF + Core CSWR */
|
||||
omap3_power_states[OMAP3_STATE_C6].valid = 1;
|
||||
omap3_power_states[OMAP3_STATE_C6].type = OMAP3_STATE_C6;
|
||||
omap3_power_states[OMAP3_STATE_C6].sleep_latency = 3000;
|
||||
omap3_power_states[OMAP3_STATE_C6].wakeup_latency = 8500;
|
||||
omap3_power_states[OMAP3_STATE_C6].threshold = 15000;
|
||||
omap3_power_states[OMAP3_STATE_C6].mpu_state = PWRDM_POWER_OFF;
|
||||
omap3_power_states[OMAP3_STATE_C6].core_state = PWRDM_POWER_RET;
|
||||
omap3_power_states[OMAP3_STATE_C6].flags = CPUIDLE_FLAG_TIME_VALID |
|
||||
CPUIDLE_FLAG_CHECK_BM;
|
||||
|
||||
/* C7 . MPU OFF + Core OFF */
|
||||
omap3_power_states[OMAP3_STATE_C7].valid = 1;
|
||||
omap3_power_states[OMAP3_STATE_C7].type = OMAP3_STATE_C7;
|
||||
omap3_power_states[OMAP3_STATE_C7].sleep_latency = 10000;
|
||||
omap3_power_states[OMAP3_STATE_C7].wakeup_latency = 30000;
|
||||
omap3_power_states[OMAP3_STATE_C7].threshold = 300000;
|
||||
omap3_power_states[OMAP3_STATE_C7].mpu_state = PWRDM_POWER_OFF;
|
||||
omap3_power_states[OMAP3_STATE_C7].core_state = PWRDM_POWER_OFF;
|
||||
omap3_power_states[OMAP3_STATE_C7].flags = CPUIDLE_FLAG_TIME_VALID |
|
||||
CPUIDLE_FLAG_CHECK_BM;
|
||||
}
|
||||
|
||||
struct cpuidle_driver omap3_idle_driver = {
|
||||
.name = "omap3_idle",
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
/**
|
||||
* omap3_idle_init - Init routine for OMAP3 idle
|
||||
*
|
||||
* Registers the OMAP3 specific cpuidle driver with the cpuidle
|
||||
* framework with the valid set of states.
|
||||
*/
|
||||
int __init omap3_idle_init(void)
|
||||
{
|
||||
int i, count = 0;
|
||||
struct omap3_processor_cx *cx;
|
||||
struct cpuidle_state *state;
|
||||
struct cpuidle_device *dev;
|
||||
|
||||
mpu_pd = pwrdm_lookup("mpu_pwrdm");
|
||||
core_pd = pwrdm_lookup("core_pwrdm");
|
||||
|
||||
omap_init_power_states();
|
||||
cpuidle_register_driver(&omap3_idle_driver);
|
||||
|
||||
dev = &per_cpu(omap3_idle_dev, smp_processor_id());
|
||||
|
||||
for (i = OMAP3_STATE_C1; i < OMAP3_MAX_STATES; i++) {
|
||||
cx = &omap3_power_states[i];
|
||||
state = &dev->states[count];
|
||||
|
||||
if (!cx->valid)
|
||||
continue;
|
||||
cpuidle_set_statedata(state, cx);
|
||||
state->exit_latency = cx->sleep_latency + cx->wakeup_latency;
|
||||
state->target_residency = cx->threshold;
|
||||
state->flags = cx->flags;
|
||||
state->enter = (state->flags & CPUIDLE_FLAG_CHECK_BM) ?
|
||||
omap3_enter_idle_bm : omap3_enter_idle;
|
||||
if (cx->type == OMAP3_STATE_C1)
|
||||
dev->safe_state = state;
|
||||
sprintf(state->name, "C%d", count+1);
|
||||
count++;
|
||||
}
|
||||
|
||||
if (!count)
|
||||
return -EINVAL;
|
||||
dev->state_count = count;
|
||||
|
||||
if (cpuidle_register_device(dev)) {
|
||||
printk(KERN_ERR "%s: CPUidle register device failed\n",
|
||||
__func__);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int __init omap3_idle_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_CPU_IDLE */
|
@ -20,12 +20,12 @@
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/control.h>
|
||||
#include <mach/tc.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/mux.h>
|
||||
#include <plat/control.h>
|
||||
#include <plat/tc.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/mux.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <plat/mmc.h>
|
||||
|
||||
#if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
|
||||
|
||||
@ -250,7 +250,7 @@ static inline void omap_init_sti(void) {}
|
||||
|
||||
#if defined(CONFIG_SPI_OMAP24XX) || defined(CONFIG_SPI_OMAP24XX_MODULE)
|
||||
|
||||
#include <mach/mcspi.h>
|
||||
#include <plat/mcspi.h>
|
||||
|
||||
#define OMAP2_MCSPI1_BASE 0x48098000
|
||||
#define OMAP2_MCSPI2_BASE 0x4809a000
|
||||
|
@ -17,9 +17,9 @@
|
||||
|
||||
#include <asm/mach/flash.h>
|
||||
|
||||
#include <mach/onenand.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <plat/onenand.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/gpmc.h>
|
||||
|
||||
static struct omap_onenand_platform_data *gpmc_onenand_data;
|
||||
|
||||
|
@ -17,9 +17,9 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/smc91x.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <mach/gpmc-smc91x.h>
|
||||
#include <plat/board.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/gpmc-smc91x.h>
|
||||
|
||||
static struct omap_smc91x_platform_data *gpmc_cfg;
|
||||
|
||||
|
@ -24,9 +24,9 @@
|
||||
#include <linux/module.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <plat/gpmc.h>
|
||||
|
||||
#include <mach/sdrc.h>
|
||||
#include <plat/sdrc.h>
|
||||
|
||||
/* GPMC register offsets */
|
||||
#define GPMC_REVISION 0x00
|
||||
@ -62,6 +62,33 @@
|
||||
#define ENABLE_PREFETCH (0x1 << 7)
|
||||
#define DMA_MPU_MODE 2
|
||||
|
||||
/* Structure to save gpmc cs context */
|
||||
struct gpmc_cs_config {
|
||||
u32 config1;
|
||||
u32 config2;
|
||||
u32 config3;
|
||||
u32 config4;
|
||||
u32 config5;
|
||||
u32 config6;
|
||||
u32 config7;
|
||||
int is_valid;
|
||||
};
|
||||
|
||||
/*
|
||||
* Structure to save/restore gpmc context
|
||||
* to support core off on OMAP3
|
||||
*/
|
||||
struct omap3_gpmc_regs {
|
||||
u32 sysconfig;
|
||||
u32 irqenable;
|
||||
u32 timeout_ctrl;
|
||||
u32 config;
|
||||
u32 prefetch_config1;
|
||||
u32 prefetch_config2;
|
||||
u32 prefetch_control;
|
||||
struct gpmc_cs_config cs_context[GPMC_CS_NUM];
|
||||
};
|
||||
|
||||
static struct resource gpmc_mem_root;
|
||||
static struct resource gpmc_cs_mem[GPMC_CS_NUM];
|
||||
static DEFINE_SPINLOCK(gpmc_mem_lock);
|
||||
@ -261,7 +288,7 @@ static void gpmc_cs_enable_mem(int cs, u32 base, u32 size)
|
||||
l = (base >> GPMC_CHUNK_SHIFT) & 0x3f;
|
||||
l &= ~(0x0f << 8);
|
||||
l |= ((mask >> GPMC_CHUNK_SHIFT) & 0x0f) << 8;
|
||||
l |= 1 << 6; /* CSVALID */
|
||||
l |= GPMC_CONFIG7_CSVALID;
|
||||
gpmc_cs_write_reg(cs, GPMC_CS_CONFIG7, l);
|
||||
}
|
||||
|
||||
@ -270,7 +297,7 @@ static void gpmc_cs_disable_mem(int cs)
|
||||
u32 l;
|
||||
|
||||
l = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG7);
|
||||
l &= ~(1 << 6); /* CSVALID */
|
||||
l &= ~GPMC_CONFIG7_CSVALID;
|
||||
gpmc_cs_write_reg(cs, GPMC_CS_CONFIG7, l);
|
||||
}
|
||||
|
||||
@ -290,7 +317,7 @@ static int gpmc_cs_mem_enabled(int cs)
|
||||
u32 l;
|
||||
|
||||
l = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG7);
|
||||
return l & (1 << 6);
|
||||
return l & GPMC_CONFIG7_CSVALID;
|
||||
}
|
||||
|
||||
int gpmc_cs_set_reserved(int cs, int reserved)
|
||||
@ -516,3 +543,68 @@ void __init gpmc_init(void)
|
||||
gpmc_write_reg(GPMC_SYSCONFIG, l);
|
||||
gpmc_mem_init();
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP3
|
||||
static struct omap3_gpmc_regs gpmc_context;
|
||||
|
||||
void omap3_gpmc_save_context()
|
||||
{
|
||||
int i;
|
||||
gpmc_context.sysconfig = gpmc_read_reg(GPMC_SYSCONFIG);
|
||||
gpmc_context.irqenable = gpmc_read_reg(GPMC_IRQENABLE);
|
||||
gpmc_context.timeout_ctrl = gpmc_read_reg(GPMC_TIMEOUT_CONTROL);
|
||||
gpmc_context.config = gpmc_read_reg(GPMC_CONFIG);
|
||||
gpmc_context.prefetch_config1 = gpmc_read_reg(GPMC_PREFETCH_CONFIG1);
|
||||
gpmc_context.prefetch_config2 = gpmc_read_reg(GPMC_PREFETCH_CONFIG2);
|
||||
gpmc_context.prefetch_control = gpmc_read_reg(GPMC_PREFETCH_CONTROL);
|
||||
for (i = 0; i < GPMC_CS_NUM; i++) {
|
||||
gpmc_context.cs_context[i].is_valid = gpmc_cs_mem_enabled(i);
|
||||
if (gpmc_context.cs_context[i].is_valid) {
|
||||
gpmc_context.cs_context[i].config1 =
|
||||
gpmc_cs_read_reg(i, GPMC_CS_CONFIG1);
|
||||
gpmc_context.cs_context[i].config2 =
|
||||
gpmc_cs_read_reg(i, GPMC_CS_CONFIG2);
|
||||
gpmc_context.cs_context[i].config3 =
|
||||
gpmc_cs_read_reg(i, GPMC_CS_CONFIG3);
|
||||
gpmc_context.cs_context[i].config4 =
|
||||
gpmc_cs_read_reg(i, GPMC_CS_CONFIG4);
|
||||
gpmc_context.cs_context[i].config5 =
|
||||
gpmc_cs_read_reg(i, GPMC_CS_CONFIG5);
|
||||
gpmc_context.cs_context[i].config6 =
|
||||
gpmc_cs_read_reg(i, GPMC_CS_CONFIG6);
|
||||
gpmc_context.cs_context[i].config7 =
|
||||
gpmc_cs_read_reg(i, GPMC_CS_CONFIG7);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void omap3_gpmc_restore_context()
|
||||
{
|
||||
int i;
|
||||
gpmc_write_reg(GPMC_SYSCONFIG, gpmc_context.sysconfig);
|
||||
gpmc_write_reg(GPMC_IRQENABLE, gpmc_context.irqenable);
|
||||
gpmc_write_reg(GPMC_TIMEOUT_CONTROL, gpmc_context.timeout_ctrl);
|
||||
gpmc_write_reg(GPMC_CONFIG, gpmc_context.config);
|
||||
gpmc_write_reg(GPMC_PREFETCH_CONFIG1, gpmc_context.prefetch_config1);
|
||||
gpmc_write_reg(GPMC_PREFETCH_CONFIG2, gpmc_context.prefetch_config2);
|
||||
gpmc_write_reg(GPMC_PREFETCH_CONTROL, gpmc_context.prefetch_control);
|
||||
for (i = 0; i < GPMC_CS_NUM; i++) {
|
||||
if (gpmc_context.cs_context[i].is_valid) {
|
||||
gpmc_cs_write_reg(i, GPMC_CS_CONFIG1,
|
||||
gpmc_context.cs_context[i].config1);
|
||||
gpmc_cs_write_reg(i, GPMC_CS_CONFIG2,
|
||||
gpmc_context.cs_context[i].config2);
|
||||
gpmc_cs_write_reg(i, GPMC_CS_CONFIG3,
|
||||
gpmc_context.cs_context[i].config3);
|
||||
gpmc_cs_write_reg(i, GPMC_CS_CONFIG4,
|
||||
gpmc_context.cs_context[i].config4);
|
||||
gpmc_cs_write_reg(i, GPMC_CS_CONFIG5,
|
||||
gpmc_context.cs_context[i].config5);
|
||||
gpmc_cs_write_reg(i, GPMC_CS_CONFIG6,
|
||||
gpmc_context.cs_context[i].config6);
|
||||
gpmc_cs_write_reg(i, GPMC_CS_CONFIG7,
|
||||
gpmc_context.cs_context[i].config7);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_ARCH_OMAP3 */
|
||||
|
@ -21,9 +21,9 @@
|
||||
|
||||
#include <asm/cputype.h>
|
||||
|
||||
#include <mach/common.h>
|
||||
#include <mach/control.h>
|
||||
#include <mach/cpu.h>
|
||||
#include <plat/common.h>
|
||||
#include <plat/control.h>
|
||||
#include <plat/cpu.h>
|
||||
|
||||
static struct omap_chip_id omap_chip;
|
||||
static unsigned int omap_revision;
|
||||
|
5
arch/arm/mach-omap2/include/mach/clkdev.h
Normal file
5
arch/arm/mach-omap2/include/mach/clkdev.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap2/include/mach/clkdev.h
|
||||
*/
|
||||
|
||||
#include <plat/clkdev.h>
|
@ -1,4 +1,4 @@
|
||||
/* arch/arm/plat-omap/include/mach/debug-macro.S
|
||||
/* arch/arm/mach-omap2/include/mach/debug-macro.S
|
||||
*
|
||||
* Debugging macro include header
|
||||
*
|
||||
@ -14,20 +14,9 @@
|
||||
.macro addruart,rx
|
||||
mrc p15, 0, \rx, c1, c0
|
||||
tst \rx, #1 @ MMU enabled?
|
||||
#ifdef CONFIG_ARCH_OMAP1
|
||||
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
|
||||
|
||||
#elif CONFIG_ARCH_OMAP2
|
||||
#ifdef CONFIG_ARCH_OMAP2
|
||||
moveq \rx, #0x48000000 @ physical base address
|
||||
movne \rx, #0xd8000000 @ virtual base
|
||||
movne \rx, #0xfa000000 @ virtual base
|
||||
orr \rx, \rx, #0x0006a000
|
||||
#ifdef CONFIG_OMAP_LL_DEBUG_UART2
|
||||
add \rx, \rx, #0x00002000 @ UART 2
|
||||
@ -38,7 +27,7 @@
|
||||
|
||||
#elif defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
|
||||
moveq \rx, #0x48000000 @ physical base address
|
||||
movne \rx, #0xd8000000 @ virtual base
|
||||
movne \rx, #0xfa000000 @ virtual base
|
||||
orr \rx, \rx, #0x0006a000
|
||||
#ifdef CONFIG_OMAP_LL_DEBUG_UART2
|
||||
add \rx, \rx, #0x00002000 @ UART 2
|
@ -15,65 +15,17 @@
|
||||
#include <mach/irqs.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP1)
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP730) && \
|
||||
(defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX))
|
||||
#error "FIXME: OMAP730 doesn't support multiple-OMAP"
|
||||
#elif defined(CONFIG_ARCH_OMAP730)
|
||||
#define INT_IH2_IRQ INT_730_IH2_IRQ
|
||||
#elif defined(CONFIG_ARCH_OMAP15XX)
|
||||
#define INT_IH2_IRQ INT_1510_IH2_IRQ
|
||||
#elif defined(CONFIG_ARCH_OMAP16XX)
|
||||
#define INT_IH2_IRQ INT_1610_IH2_IRQ
|
||||
#else
|
||||
#warning "IH2 IRQ defaulted"
|
||||
#define INT_IH2_IRQ INT_1510_IH2_IRQ
|
||||
#endif
|
||||
|
||||
.macro disable_fiq
|
||||
.endm
|
||||
|
||||
.macro get_irqnr_preamble, base, tmp
|
||||
.endm
|
||||
|
||||
.macro arch_ret_to_user, tmp1, tmp2
|
||||
.endm
|
||||
|
||||
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
|
||||
ldr \base, =OMAP1_IO_ADDRESS(OMAP_IH1_BASE)
|
||||
ldr \irqnr, [\base, #IRQ_ITR_REG_OFFSET]
|
||||
ldr \tmp, [\base, #IRQ_MIR_REG_OFFSET]
|
||||
mov \irqstat, #0xffffffff
|
||||
bic \tmp, \irqstat, \tmp
|
||||
tst \irqnr, \tmp
|
||||
beq 1510f
|
||||
|
||||
ldr \irqnr, [\base, #IRQ_SIR_FIQ_REG_OFFSET]
|
||||
cmp \irqnr, #0
|
||||
ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET]
|
||||
cmpeq \irqnr, #INT_IH2_IRQ
|
||||
ldreq \base, =OMAP1_IO_ADDRESS(OMAP_IH2_BASE)
|
||||
ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET]
|
||||
addeqs \irqnr, \irqnr, #32
|
||||
1510:
|
||||
.endm
|
||||
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) || \
|
||||
defined(CONFIG_ARCH_OMAP4)
|
||||
|
||||
#include <mach/omap24xx.h>
|
||||
#include <mach/omap34xx.h>
|
||||
#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_IO_ADDRESS(OMAP24XX_IC_BASE)
|
||||
#define OMAP2_VA_IC_BASE OMAP2_L4_IO_ADDRESS(OMAP24XX_IC_BASE)
|
||||
#elif defined(CONFIG_ARCH_OMAP34XX)
|
||||
#define OMAP2_VA_IC_BASE OMAP2_IO_ADDRESS(OMAP34XX_IC_BASE)
|
||||
#define OMAP2_VA_IC_BASE OMAP2_L4_IO_ADDRESS(OMAP34XX_IC_BASE)
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_OMAP4)
|
||||
#include <mach/omap44xx.h>
|
||||
#include <plat/omap44xx.h>
|
||||
#endif
|
||||
#define INTCPS_SIR_IRQ_OFFSET 0x0040 /* Active interrupt offset */
|
||||
#define ACTIVEIRQ_MASK 0x7f /* Active interrupt bits */
|
||||
@ -104,6 +56,8 @@
|
||||
|
||||
.endm
|
||||
#else
|
||||
#define OMAP44XX_VA_GIC_CPU_BASE OMAP2_L4_IO_ADDRESS(OMAP44XX_GIC_CPU_BASE)
|
||||
|
||||
/*
|
||||
* The interrupt numbering scheme is defined in the
|
||||
* interrupt controller spec. To wit:
|
||||
@ -168,5 +122,3 @@
|
||||
|
||||
.macro irq_prio_table
|
||||
.endm
|
||||
|
||||
#endif
|
5
arch/arm/mach-omap2/include/mach/gpio.h
Normal file
5
arch/arm/mach-omap2/include/mach/gpio.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap2/include/mach/gpio.h
|
||||
*/
|
||||
|
||||
#include <plat/gpio.h>
|
5
arch/arm/mach-omap2/include/mach/hardware.h
Normal file
5
arch/arm/mach-omap2/include/mach/hardware.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap2/include/mach/hardware.h
|
||||
*/
|
||||
|
||||
#include <plat/hardware.h>
|
5
arch/arm/mach-omap2/include/mach/io.h
Normal file
5
arch/arm/mach-omap2/include/mach/io.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap2/include/mach/io.h
|
||||
*/
|
||||
|
||||
#include <plat/io.h>
|
5
arch/arm/mach-omap2/include/mach/irqs.h
Normal file
5
arch/arm/mach-omap2/include/mach/irqs.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap2/include/mach/irqs.h
|
||||
*/
|
||||
|
||||
#include <plat/irqs.h>
|
5
arch/arm/mach-omap2/include/mach/memory.h
Normal file
5
arch/arm/mach-omap2/include/mach/memory.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap2/include/mach/memory.h
|
||||
*/
|
||||
|
||||
#include <plat/memory.h>
|
5
arch/arm/mach-omap2/include/mach/smp.h
Normal file
5
arch/arm/mach-omap2/include/mach/smp.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap2/include/mach/smp.h
|
||||
*/
|
||||
|
||||
#include <plat/smp.h>
|
5
arch/arm/mach-omap2/include/mach/system.h
Normal file
5
arch/arm/mach-omap2/include/mach/system.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap2/include/mach/system.h
|
||||
*/
|
||||
|
||||
#include <plat/system.h>
|
5
arch/arm/mach-omap2/include/mach/timex.h
Normal file
5
arch/arm/mach-omap2/include/mach/timex.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap2/include/mach/timex.h
|
||||
*/
|
||||
|
||||
#include <plat/timex.h>
|
5
arch/arm/mach-omap2/include/mach/uncompress.h
Normal file
5
arch/arm/mach-omap2/include/mach/uncompress.h
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
* arch/arm/mach-omap2/include/mach/uncompress.h
|
||||
*/
|
||||
|
||||
#include <plat/uncompress.h>
|
@ -17,5 +17,4 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#define VMALLOC_END (PAGE_OFFSET + 0x18000000)
|
||||
|
||||
#define VMALLOC_END (PAGE_OFFSET + 0x38000000)
|
@ -27,24 +27,24 @@
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/mux.h>
|
||||
#include <mach/omapfb.h>
|
||||
#include <mach/sram.h>
|
||||
#include <mach/sdrc.h>
|
||||
#include <mach/gpmc.h>
|
||||
#include <mach/serial.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/omapfb.h>
|
||||
#include <plat/sram.h>
|
||||
#include <plat/sdrc.h>
|
||||
#include <plat/gpmc.h>
|
||||
#include <plat/serial.h>
|
||||
|
||||
#ifndef CONFIG_ARCH_OMAP4 /* FIXME: Remove this once clkdev is ready */
|
||||
#include "clock.h"
|
||||
|
||||
#include <mach/omap-pm.h>
|
||||
#include <mach/powerdomain.h>
|
||||
#include <plat/omap-pm.h>
|
||||
#include <plat/powerdomain.h>
|
||||
#include "powerdomains.h"
|
||||
|
||||
#include <mach/clockdomain.h>
|
||||
#include <plat/clockdomain.h>
|
||||
#include "clockdomains.h"
|
||||
#endif
|
||||
#include <mach/omap_hwmod.h>
|
||||
#include <plat/omap_hwmod.h>
|
||||
#include "omap_hwmod_2420.h"
|
||||
#include "omap_hwmod_2430.h"
|
||||
#include "omap_hwmod_34xx.h"
|
||||
@ -202,6 +202,24 @@ static struct map_desc omap44xx_io_desc[] __initdata = {
|
||||
.length = OMAP44XX_GPMC_SIZE,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
{
|
||||
.virtual = OMAP44XX_EMIF1_VIRT,
|
||||
.pfn = __phys_to_pfn(OMAP44XX_EMIF1_PHYS),
|
||||
.length = OMAP44XX_EMIF1_SIZE,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
{
|
||||
.virtual = OMAP44XX_EMIF2_VIRT,
|
||||
.pfn = __phys_to_pfn(OMAP44XX_EMIF2_PHYS),
|
||||
.length = OMAP44XX_EMIF2_SIZE,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
{
|
||||
.virtual = OMAP44XX_DMM_VIRT,
|
||||
.pfn = __phys_to_pfn(OMAP44XX_DMM_PHYS),
|
||||
.length = OMAP44XX_DMM_SIZE,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
{
|
||||
.virtual = L4_PER_44XX_VIRT,
|
||||
.pfn = __phys_to_pfn(L4_PER_44XX_PHYS),
|
||||
|
@ -17,7 +17,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/stringify.h>
|
||||
|
||||
#include <mach/iommu.h>
|
||||
#include <plat/iommu.h>
|
||||
|
||||
/*
|
||||
* omap2 architecture specific register bit definitions
|
||||
|
@ -25,6 +25,10 @@
|
||||
#define INTC_SYSSTATUS 0x0014
|
||||
#define INTC_SIR 0x0040
|
||||
#define INTC_CONTROL 0x0048
|
||||
#define INTC_PROTECTION 0x004C
|
||||
#define INTC_IDLE 0x0050
|
||||
#define INTC_THRESHOLD 0x0068
|
||||
#define INTC_MIR0 0x0084
|
||||
#define INTC_MIR_CLEAR0 0x0088
|
||||
#define INTC_MIR_SET0 0x008c
|
||||
#define INTC_PENDING_IRQ0 0x0098
|
||||
@ -48,6 +52,18 @@ static struct omap_irq_bank {
|
||||
},
|
||||
};
|
||||
|
||||
/* Structure to save interrupt controller context */
|
||||
struct omap3_intc_regs {
|
||||
u32 sysconfig;
|
||||
u32 protection;
|
||||
u32 idle;
|
||||
u32 threshold;
|
||||
u32 ilr[INTCPS_NR_IRQS];
|
||||
u32 mir[INTCPS_NR_MIR_REGS];
|
||||
};
|
||||
|
||||
static struct omap3_intc_regs intc_context[ARRAY_SIZE(irq_banks)];
|
||||
|
||||
/* INTC bank register get/set */
|
||||
|
||||
static void intc_bank_write_reg(u32 val, struct omap_irq_bank *bank, u16 reg)
|
||||
@ -178,12 +194,20 @@ void __init omap_init_irq(void)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(irq_banks); i++) {
|
||||
unsigned long base;
|
||||
struct omap_irq_bank *bank = irq_banks + i;
|
||||
|
||||
if (cpu_is_omap24xx())
|
||||
bank->base_reg = OMAP2_IO_ADDRESS(OMAP24XX_IC_BASE);
|
||||
base = OMAP24XX_IC_BASE;
|
||||
else if (cpu_is_omap34xx())
|
||||
bank->base_reg = OMAP2_IO_ADDRESS(OMAP34XX_IC_BASE);
|
||||
base = OMAP34XX_IC_BASE;
|
||||
|
||||
/* Static mapping, never released */
|
||||
bank->base_reg = ioremap(base, SZ_4K);
|
||||
if (!bank->base_reg) {
|
||||
printk(KERN_ERR "Could not ioremap irq bank%i\n", i);
|
||||
continue;
|
||||
}
|
||||
|
||||
omap_irq_bank_init_one(bank);
|
||||
|
||||
@ -201,3 +225,53 @@ void __init omap_init_irq(void)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP3
|
||||
void omap_intc_save_context(void)
|
||||
{
|
||||
int ind = 0, i = 0;
|
||||
for (ind = 0; ind < ARRAY_SIZE(irq_banks); ind++) {
|
||||
struct omap_irq_bank *bank = irq_banks + ind;
|
||||
intc_context[ind].sysconfig =
|
||||
intc_bank_read_reg(bank, INTC_SYSCONFIG);
|
||||
intc_context[ind].protection =
|
||||
intc_bank_read_reg(bank, INTC_PROTECTION);
|
||||
intc_context[ind].idle =
|
||||
intc_bank_read_reg(bank, INTC_IDLE);
|
||||
intc_context[ind].threshold =
|
||||
intc_bank_read_reg(bank, INTC_THRESHOLD);
|
||||
for (i = 0; i < INTCPS_NR_IRQS; i++)
|
||||
intc_context[ind].ilr[i] =
|
||||
intc_bank_read_reg(bank, (0x100 + 0x4*i));
|
||||
for (i = 0; i < INTCPS_NR_MIR_REGS; i++)
|
||||
intc_context[ind].mir[i] =
|
||||
intc_bank_read_reg(&irq_banks[0], INTC_MIR0 +
|
||||
(0x20 * i));
|
||||
}
|
||||
}
|
||||
|
||||
void omap_intc_restore_context(void)
|
||||
{
|
||||
int ind = 0, i = 0;
|
||||
|
||||
for (ind = 0; ind < ARRAY_SIZE(irq_banks); ind++) {
|
||||
struct omap_irq_bank *bank = irq_banks + ind;
|
||||
intc_bank_write_reg(intc_context[ind].sysconfig,
|
||||
bank, INTC_SYSCONFIG);
|
||||
intc_bank_write_reg(intc_context[ind].sysconfig,
|
||||
bank, INTC_SYSCONFIG);
|
||||
intc_bank_write_reg(intc_context[ind].protection,
|
||||
bank, INTC_PROTECTION);
|
||||
intc_bank_write_reg(intc_context[ind].idle,
|
||||
bank, INTC_IDLE);
|
||||
intc_bank_write_reg(intc_context[ind].threshold,
|
||||
bank, INTC_THRESHOLD);
|
||||
for (i = 0; i < INTCPS_NR_IRQS; i++)
|
||||
intc_bank_write_reg(intc_context[ind].ilr[i],
|
||||
bank, (0x100 + 0x4*i));
|
||||
for (i = 0; i < INTCPS_NR_MIR_REGS; i++)
|
||||
intc_bank_write_reg(intc_context[ind].mir[i],
|
||||
&irq_banks[0], INTC_MIR0 + (0x20 * i));
|
||||
}
|
||||
/* MIRs are saved and restore with other PRCM registers */
|
||||
}
|
||||
#endif /* CONFIG_ARCH_OMAP3 */
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <mach/mailbox.h>
|
||||
#include <plat/mailbox.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#define MAILBOX_REVISION 0x000
|
||||
|
@ -18,10 +18,10 @@
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/dma.h>
|
||||
#include <mach/mux.h>
|
||||
#include <mach/cpu.h>
|
||||
#include <mach/mcbsp.h>
|
||||
#include <plat/dma.h>
|
||||
#include <plat/mux.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/mcbsp.h>
|
||||
|
||||
static void omap2_mcbsp2_mux_setup(void)
|
||||
{
|
||||
|
@ -20,9 +20,9 @@
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/control.h>
|
||||
#include <mach/mmc.h>
|
||||
#include <mach/board.h>
|
||||
#include <plat/control.h>
|
||||
#include <plat/mmc.h>
|
||||
#include <plat/board.h>
|
||||
|
||||
#include "mmc-twl4030.h"
|
||||
|
||||
|
@ -30,8 +30,8 @@
|
||||
|
||||
#include <asm/system.h>
|
||||
|
||||
#include <mach/control.h>
|
||||
#include <mach/mux.h>
|
||||
#include <plat/control.h>
|
||||
#include <plat/mux.h>
|
||||
|
||||
#ifdef CONFIG_OMAP_MUX
|
||||
|
||||
|
@ -24,13 +24,14 @@
|
||||
#include <asm/localtimer.h>
|
||||
#include <asm/smp_scu.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <plat/common.h>
|
||||
|
||||
/* Registers used for communicating startup information */
|
||||
#define OMAP4_AUXCOREBOOT_REG0 (OMAP44XX_VA_WKUPGEN_BASE + 0x800)
|
||||
#define OMAP4_AUXCOREBOOT_REG1 (OMAP44XX_VA_WKUPGEN_BASE + 0x804)
|
||||
static void __iomem *omap4_auxcoreboot_reg0;
|
||||
static void __iomem *omap4_auxcoreboot_reg1;
|
||||
|
||||
/* SCU base address */
|
||||
static void __iomem *scu_base = OMAP44XX_VA_SCU_BASE;
|
||||
static void __iomem *scu_base;
|
||||
|
||||
/*
|
||||
* Use SCU config register to count number of cores
|
||||
@ -53,8 +54,7 @@ void __cpuinit platform_secondary_init(unsigned int cpu)
|
||||
* core (e.g. timer irq), then they will not have been enabled
|
||||
* for us: do so
|
||||
*/
|
||||
|
||||
gic_cpu_init(0, OMAP2_IO_ADDRESS(OMAP44XX_GIC_CPU_BASE));
|
||||
gic_cpu_init(0, gic_cpu_base_addr);
|
||||
|
||||
/*
|
||||
* Synchronise with the boot thread.
|
||||
@ -79,7 +79,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
* the AuxCoreBoot1 register is updated with cpu state
|
||||
* A barrier is added to ensure that write buffer is drained
|
||||
*/
|
||||
__raw_writel(cpu, OMAP4_AUXCOREBOOT_REG1);
|
||||
__raw_writel(cpu, omap4_auxcoreboot_reg1);
|
||||
smp_wmb();
|
||||
|
||||
timeout = jiffies + (1 * HZ);
|
||||
@ -104,7 +104,7 @@ static void __init wakeup_secondary(void)
|
||||
* A barrier is added to ensure that write buffer is drained
|
||||
*/
|
||||
__raw_writel(virt_to_phys(omap_secondary_startup), \
|
||||
OMAP4_AUXCOREBOOT_REG0);
|
||||
omap4_auxcoreboot_reg0);
|
||||
smp_wmb();
|
||||
|
||||
/*
|
||||
@ -120,7 +120,13 @@ static void __init wakeup_secondary(void)
|
||||
*/
|
||||
void __init smp_init_cpus(void)
|
||||
{
|
||||
unsigned int i, ncores = get_core_count();
|
||||
unsigned int i, ncores;
|
||||
|
||||
/* Never released */
|
||||
scu_base = ioremap(OMAP44XX_SCU_BASE, SZ_256);
|
||||
BUG_ON(!scu_base);
|
||||
|
||||
ncores = get_core_count();
|
||||
|
||||
for (i = 0; i < ncores; i++)
|
||||
set_cpu_possible(i, true);
|
||||
@ -130,6 +136,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
|
||||
{
|
||||
unsigned int ncores = get_core_count();
|
||||
unsigned int cpu = smp_processor_id();
|
||||
void __iomem *omap4_wkupgen_base;
|
||||
int i;
|
||||
|
||||
/* sanity check */
|
||||
@ -161,6 +168,12 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
|
||||
for (i = 0; i < max_cpus; i++)
|
||||
set_cpu_present(i, true);
|
||||
|
||||
/* Never released */
|
||||
omap4_wkupgen_base = ioremap(OMAP44XX_WKUPGEN_BASE, SZ_4K);
|
||||
BUG_ON(!omap4_wkupgen_base);
|
||||
omap4_auxcoreboot_reg0 = omap4_wkupgen_base + 0x800;
|
||||
omap4_auxcoreboot_reg1 = omap4_wkupgen_base + 0x804;
|
||||
|
||||
if (max_cpus > 1) {
|
||||
/*
|
||||
* Enable the local timer or broadcast device for the
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user