projects/linux·commit 1810b6cb

Merge master.kernel.org:/home/rmk/linux-2.6-arm

1810b6cb · Linus Torvalds <[email protected]> · 2006-04-02 13:34:00 -07:00

* master.kernel.org:/home/rmk/linux-2.6-arm: (27 commits)
  [ARM] 3433/1: ARM: OMAP: 8/8 Update board files
  [ARM] 3455/1: ARM: OMAP: 7/8 Misc updates, take 2
  [ARM] 3454/1: ARM: OMAP: 6/8 Update framebuffer low-level init code, take 2
  [ARM] 3430/1: ARM: OMAP: 5/8 Update PM
  [ARM] 3429/1: ARM: OMAP: 4/8 Update GPIO
  [ARM] 3428/1: ARM: OMAP: 3/8 Update pin multiplexing
  [ARM] 3427/1: ARM: OMAP: 2/8 Update timers
  [ARM] 3426/1: ARM: OMAP: 1/8 Update clock framework
  [ARM] 3396/2: AT91RM9200 Platform devices update
  [ARM] 3395/2: AT91RM9200 Dataflash Card vs MMC selection
  [ARM] 3393/2: AT91RM9200 LED support
  [ARM] 3453/1: Poodle: Correctly set the memory size
  [ARM] 3446/1: i.MX: MMC/SD SDHC controller registration for i.MX/MX1 MX1ADS board
  [ARM] 3444/1: i.MX: Scatter-gather DMA emulation for i.MX/MX1
  [ARM] 3451/1: ep93xx: use the m48t86 rtc driver on the ts72xx platform
  [ARM] 3450/1: ep93xx: use the ep93xx rtc driver
  [ARM] 3452/1: [S3C2410] RX3715 - add nand information
  [ARM] 3449/1: [S3C2410] Anubis - fix NAND timings
  [ARM] 3448/1: [S3C2410] Settle delay when _enabling_ USB PLL
  [ARM] 3442/1: [S3C2410] SMDK: NAND device setup
  ...
Commit
1810b6cb162e0c19e0ecbbacbcfd66f578f335ec
Parents
ef7a4567 · 9b6553cd

Merge commit. Changes below are compared with the first parent: ef7a4567.

Changes

126 files changed · +6560 −1525

FileStatusAddDelContent
arch/arm/configs/at91rm9200dk_defconfigmodified+1−1View file
arch/arm/configs/at91rm9200ek_defconfigmodified+1−1View file
arch/arm/kernel/armksyms.cmodified+0−13View file
arch/arm/kernel/setup.cmodified+3−0View file
arch/arm/mach-at91rm9200/Makefilemodified+5−4View file
arch/arm/mach-at91rm9200/board-csb337.cmodified+3−0View file
arch/arm/mach-at91rm9200/board-csb637.cmodified+3−0View file
arch/arm/mach-at91rm9200/board-dk.cmodified+9−1View file
arch/arm/mach-at91rm9200/board-ek.cmodified+9−1View file
arch/arm/mach-at91rm9200/devices.cmodified+146−8View file
arch/arm/mach-at91rm9200/leds.cadded+100−0View file
arch/arm/mach-ep93xx/core.cmodified+10−0View file
arch/arm/mach-ep93xx/ts72xx.cmodified+39−0View file
arch/arm/mach-imx/dma.cmodified+448−63View file
arch/arm/mach-imx/mx1ads.cmodified+18−0View file
arch/arm/mach-ixp23xx/espresso.cmodified+9−0View file
arch/arm/mach-ixp23xx/pci.cmodified+17−1View file
arch/arm/mach-omap1/Kconfigmodified+14−6View file
arch/arm/mach-omap1/Makefilemodified+9−2View file
arch/arm/mach-omap1/board-ams-delta.cadded+116−0View file
arch/arm/mach-omap1/board-generic.cmodified+1−1View file
arch/arm/mach-omap1/board-h2.cmodified+186−14View file
arch/arm/mach-omap1/board-h3.cmodified+264−13View file
arch/arm/mach-omap1/board-innovator.cmodified+54−2View file
arch/arm/mach-omap1/board-netstar.cdeleted+0−160View before deletion
arch/arm/mach-omap1/board-nokia770.cadded+268−0View file
arch/arm/mach-omap1/board-osk.cmodified+92−3View file
arch/arm/mach-omap1/board-palmte.cmodified+11−1View file
arch/arm/mach-omap1/board-perseus2.cmodified+112−11View file
arch/arm/mach-omap1/board-voiceblue.cmodified+4−4View file
arch/arm/mach-omap1/clock.cmodified+7−2View file
arch/arm/mach-omap1/clock.hmodified+59−32View file
arch/arm/mach-omap1/devices.cmodified+40−0View file
arch/arm/mach-omap1/io.cmodified+3−1View file
arch/arm/mach-omap1/irq.cmodified+9−9View file
arch/arm/mach-omap1/mux.cmodified+17−13View file
arch/arm/mach-omap1/pm.cadded+770−0View file
arch/arm/mach-omap1/serial.cmodified+3−3View file
arch/arm/plat-omap/sleep.S → arch/arm/mach-omap1/sleep.Srenamed+92−19View file
arch/arm/mach-omap1/time.cmodified+0−197View file
arch/arm/mach-omap2/Kconfigmodified+3−0View file
arch/arm/mach-omap2/Makefilemodified+5−1View file
arch/arm/mach-omap2/board-apollon.cadded+285−0View file
arch/arm/mach-omap2/board-h4.cmodified+172−2View file
arch/arm/mach-omap2/clock.cmodified+14−65View file
arch/arm/mach-omap2/clock.hmodified+19−18View file
arch/arm/mach-omap2/devices.cmodified+42−0View file
arch/arm/mach-omap2/io.cmodified+19−2View file
arch/arm/mach-omap2/memory.cadded+102−0View file
arch/arm/mach-omap2/memory.hadded+34−0View file
arch/arm/mach-omap2/mux.cmodified+45−0View file
arch/arm/mach-omap2/pm.cadded+149−0View file
arch/arm/mach-omap2/prcm.h → arch/arm/mach-omap2/prcm-regs.hrenamed+126−62View file
arch/arm/mach-omap2/prcm.cadded+40−0View file
arch/arm/mach-omap2/sleep.Sadded+144−0View file
arch/arm/mach-omap2/sram-fn.Smodified+2−2View file
arch/arm/mach-pxa/poodle.cmodified+4−0View file
arch/arm/mach-s3c2410/Kconfigmodified+7−0View file
arch/arm/mach-s3c2410/Makefilemodified+2−0View file
arch/arm/mach-s3c2410/clock.cmodified+1−1View file
arch/arm/mach-s3c2410/common-smdk.cadded+134−0View file
arch/arm/mach-s3c2410/common-smdk.hadded+15−0View file
arch/arm/mach-s3c2410/mach-anubis.cmodified+2−2View file
arch/arm/mach-s3c2410/mach-rx3715.cmodified+35−0View file
arch/arm/mach-s3c2410/mach-smdk2410.cmodified+6−7View file
arch/arm/mach-s3c2410/mach-smdk2440.cmodified+3−14View file
arch/arm/mach-sa1100/collie.cmodified+71−1View file
arch/arm/mm/consistent.cmodified+17−0View file
arch/arm/mm/mm-armv.cmodified+11−0View file
arch/arm/mm/proc-xsc3.Smodified+1−1View file
arch/arm/plat-omap/Kconfigmodified+2−2View file
arch/arm/plat-omap/Makefilemodified+3−3View file
arch/arm/plat-omap/clock.cmodified+65−2View file
arch/arm/plat-omap/devices.cmodified+108−35View file
arch/arm/plat-omap/dma.cmodified+6−0View file
arch/arm/plat-omap/dmtimer.cmodified+26−0View file
arch/arm/plat-omap/fb.cadded+80−0View file
arch/arm/plat-omap/gpio.cmodified+61−25View file
arch/arm/plat-omap/mcbsp.cmodified+306−39View file
arch/arm/plat-omap/ocpi.cmodified+0−3View file
arch/arm/plat-omap/pm.cmodified+1−0View file
arch/arm/plat-omap/sram.cmodified+121−22View file
arch/arm/plat-omap/timer32k.cadded+325−0View file
include/asm-arm/arch-at91rm9200/board.hmodified+24−0View file
include/asm-arm/arch-ep93xx/ts72xx.hmodified+11−0View file
include/asm-arm/arch-imx/dma.hmodified+3−14View file
include/asm-arm/arch-imx/imx-dma.hadded+90−0View file
include/asm-arm/arch-ixp23xx/memory.hmodified+17−0View file
include/asm-arm/arch-ixp23xx/platform.hmodified+1−0View file
include/asm-arm/arch-omap/aic23.hmodified+4−0View file
include/asm-arm/arch-omap/board-ams-delta.hadded+65−0View file
include/asm-arm/arch-omap/board-apollon.hadded+45−0View file
include/asm-arm/arch-omap/board-h2.hmodified+0−4View file
include/asm-arm/arch-omap/board-h3.hmodified+0−4View file
include/asm-arm/arch-omap/board-h4.hmodified+1−7View file
include/asm-arm/arch-omap/board-netstar.hdeleted+0−19View before deletion
include/asm-arm/arch-omap/board-nokia.hadded+54−0View file
include/asm-arm/arch-omap/board-perseus2.hmodified+0−4View file
include/asm-arm/arch-omap/board.hmodified+27−3View file
include/asm-arm/arch-omap/clock.hmodified+8−5View file
include/asm-arm/arch-omap/dma.hmodified+1−0View file
include/asm-arm/arch-omap/dmtimer.hmodified+1−0View file
include/asm-arm/arch-omap/dsp.hmodified+6−0View file
include/asm-arm/arch-omap/dsp_common.hmodified+7−6View file
include/asm-arm/arch-omap/gpioexpander.hadded+24−0View file
include/asm-arm/arch-omap/hardware.hmodified+4−4View file
include/asm-arm/arch-omap/irda.hadded+36−0View file
include/asm-arm/arch-omap/irqs.hmodified+5−0View file
include/asm-arm/arch-omap/keypad.hadded+36−0View file
include/asm-arm/arch-omap/lcd_lph8923.hadded+14−0View file
include/asm-arm/arch-omap/mcbsp.hmodified+65−0View file
include/asm-arm/arch-omap/mcspi.hadded+16−0View file
include/asm-arm/arch-omap/menelaus.hmodified+1−1View file
include/asm-arm/arch-omap/mux.hmodified+51−3View file
include/asm-arm/arch-omap/omap-alsa.hadded+124−0View file
include/asm-arm/arch-omap/omapfb.hmodified+71−27View file
include/asm-arm/arch-omap/param.hadded+8−0View file
include/asm-arm/arch-omap/pm.hmodified+73−8View file
include/asm-arm/arch-omap/prcm.hmodified+4−400View file
include/asm-arm/arch-omap/sram.hmodified+2−0View file
include/asm-arm/arch-omap/system.hmodified+3−14View file
include/asm-arm/arch-s3c2410/entry-macro.Smodified+67−100View file
include/asm-arm/dma-mapping.hmodified+15−7View file
include/asm-arm/memory.hmodified+8−0View file
include/asm-arm/pgtable-hwdef.hmodified+1−0View file
include/asm-arm/pgtable.hmodified+1−0View file

Only the first 600 diff lines are shown. Download the complete patch.

arch/arm/configs/at91rm9200dk_defconfig

View file
diff --git a/arch/arm/configs/at91rm9200dk_defconfig b/arch/arm/configs/at91rm9200dk_defconfig
index 1fe73d1..9e1c1cc 100644
--- a/arch/arm/configs/at91rm9200dk_defconfig
+++ b/arch/arm/configs/at91rm9200dk_defconfig
@@ -379,7 +379,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_AT91_DATAFLASH=y
-CONFIG_MTD_AT91_DATAFLASH_CARD=y
+# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
#
# NAND Flash Device Drivers

arch/arm/configs/at91rm9200ek_defconfig

View file
diff --git a/arch/arm/configs/at91rm9200ek_defconfig b/arch/arm/configs/at91rm9200ek_defconfig
index b7d934c..6e0805a 100644
--- a/arch/arm/configs/at91rm9200ek_defconfig
+++ b/arch/arm/configs/at91rm9200ek_defconfig
@@ -370,7 +370,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_AT91_DATAFLASH=y
-CONFIG_MTD_AT91_DATAFLASH_CARD=y
+# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
#
# NAND Flash Device Drivers

arch/arm/kernel/armksyms.c

View file
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
index 1574941..ee083b3 100644
--- a/arch/arm/kernel/armksyms.c
+++ b/arch/arm/kernel/armksyms.c
@@ -100,23 +100,12 @@ EXPORT_SYMBOL(__raw_writesl);
#endif
/* string / mem functions */
-EXPORT_SYMBOL(strcpy);
-EXPORT_SYMBOL(strncpy);
-EXPORT_SYMBOL(strcat);
-EXPORT_SYMBOL(strncat);
-EXPORT_SYMBOL(strcmp);
-EXPORT_SYMBOL(strncmp);
EXPORT_SYMBOL(strchr);
-EXPORT_SYMBOL(strlen);
-EXPORT_SYMBOL(strnlen);
EXPORT_SYMBOL(strpbrk);
EXPORT_SYMBOL(strrchr);
-EXPORT_SYMBOL(strstr);
EXPORT_SYMBOL(memset);
EXPORT_SYMBOL(memcpy);
EXPORT_SYMBOL(memmove);
-EXPORT_SYMBOL(memcmp);
-EXPORT_SYMBOL(memscan);
EXPORT_SYMBOL(memchr);
EXPORT_SYMBOL(__memzero);
@@ -190,8 +179,6 @@ EXPORT_SYMBOL(_find_next_bit_be);
/* syscalls */
EXPORT_SYMBOL(sys_write);
-EXPORT_SYMBOL(sys_read);
EXPORT_SYMBOL(sys_lseek);
-EXPORT_SYMBOL(sys_open);
EXPORT_SYMBOL(sys_exit);
EXPORT_SYMBOL(sys_wait4);

arch/arm/kernel/setup.c

View file
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index b7cd280..4375284 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -252,6 +252,9 @@ static void __init dump_cpu_info(int cpu)
dump_cache("cache", cpu, CACHE_ISIZE(info));
}
}
+
+ if (arch_is_coherent())
+ printk("Cache coherency enabled\n");
}
int cpu_architecture(void)

arch/arm/mach-at91rm9200/Makefile

View file
diff --git a/arch/arm/mach-at91rm9200/Makefile b/arch/arm/mach-at91rm9200/Makefile
index 75e6ee3..ef88c41 100644
--- a/arch/arm/mach-at91rm9200/Makefile
+++ b/arch/arm/mach-at91rm9200/Makefile
@@ -16,11 +16,12 @@ obj-$(CONFIG_MACH_CSB637) += board-csb637.o
#obj-$(CONFIG_MACH_KB9200) += board-kb9202.o
# LEDs support
-#led-$(CONFIG_ARCH_AT91RM9200DK) += leds.o
-#led-$(CONFIG_MACH_AT91RM9200EK) += leds.o
-#led-$(CONFIG_MACH_CSB337) += leds.o
-#led-$(CONFIG_MACH_CSB637) += leds.o
+led-$(CONFIG_ARCH_AT91RM9200DK) += leds.o
+led-$(CONFIG_MACH_AT91RM9200EK) += leds.o
+led-$(CONFIG_MACH_CSB337) += leds.o
+led-$(CONFIG_MACH_CSB637) += leds.o
#led-$(CONFIG_MACH_KB9200) += leds.o
+#led-$(CONFIG_MACH_KAFA) += leds.o
obj-$(CONFIG_LEDS) += $(led-y)
# VGA support

arch/arm/mach-at91rm9200/board-csb337.c

View file
diff --git a/arch/arm/mach-at91rm9200/board-csb337.c b/arch/arm/mach-at91rm9200/board-csb337.c
index 54022e5..f45104c 100644
--- a/arch/arm/mach-at91rm9200/board-csb337.c
+++ b/arch/arm/mach-at91rm9200/board-csb337.c
@@ -67,6 +67,9 @@ static void __init csb337_map_io(void)
/* Initialize clocks: 3.6864 MHz crystal */
at91_clock_init(3686400);
+ /* Setup the LEDs */
+ at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2);
+
#ifdef CONFIG_SERIAL_AT91
at91_console_port = CSB337_SERIAL_CONSOLE;
memcpy(at91_serial_map, serial, sizeof(serial));

arch/arm/mach-at91rm9200/board-csb637.c

View file
diff --git a/arch/arm/mach-at91rm9200/board-csb637.c b/arch/arm/mach-at91rm9200/board-csb637.c
index 8195f9d..f2c2d6e 100644
--- a/arch/arm/mach-at91rm9200/board-csb637.c
+++ b/arch/arm/mach-at91rm9200/board-csb637.c
@@ -67,6 +67,9 @@ static void __init csb637_map_io(void)
/* Initialize clocks: 3.6864 MHz crystal */
at91_clock_init(3686400);
+ /* Setup the LEDs */
+ at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2);
+
#ifdef CONFIG_SERIAL_AT91
at91_console_port = CSB637_SERIAL_CONSOLE;
memcpy(at91_serial_map, serial, sizeof(serial));

arch/arm/mach-at91rm9200/board-dk.c

View file
diff --git a/arch/arm/mach-at91rm9200/board-dk.c b/arch/arm/mach-at91rm9200/board-dk.c
index 8a78336..2d7200e 100644
--- a/arch/arm/mach-at91rm9200/board-dk.c
+++ b/arch/arm/mach-at91rm9200/board-dk.c
@@ -70,6 +70,9 @@ static void __init dk_map_io(void)
/* Initialize clocks: 18.432 MHz crystal */
at91_clock_init(18432000);
+ /* Setup the LEDs */
+ at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2);
+
#ifdef CONFIG_SERIAL_AT91
at91_console_port = DK_SERIAL_CONSOLE;
memcpy(at91_serial_map, serial, sizeof(serial));
@@ -118,9 +121,14 @@ static void __init dk_board_init(void)
at91_add_device_udc(&dk_udc_data);
/* Compact Flash */
at91_add_device_cf(&dk_cf_data);
+#ifdef CONFIG_MTD_AT91_DATAFLASH_CARD
+ /* DataFlash card */
+ at91_set_gpio_output(AT91_PIN_PB7, 0);
+#else
/* MMC */
- at91_set_gpio_output(AT91_PIN_PB7, 1); /* this MMC card slot can optionally use SPI signaling (CS3). default: MMC */
+ at91_set_gpio_output(AT91_PIN_PB7, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */
at91_add_device_mmc(&dk_mmc_data);
+#endif
/* VGA */
// dk_add_device_video();
}

arch/arm/mach-at91rm9200/board-ek.c

View file
diff --git a/arch/arm/mach-at91rm9200/board-ek.c b/arch/arm/mach-at91rm9200/board-ek.c
index fd0752e..80d90f5 100644
--- a/arch/arm/mach-at91rm9200/board-ek.c
+++ b/arch/arm/mach-at91rm9200/board-ek.c
@@ -70,6 +70,9 @@ static void __init ek_map_io(void)
/* Initialize clocks: 18.432 MHz crystal */
at91_clock_init(18432000);
+ /* Setup the LEDs */
+ at91_init_leds(AT91_PIN_PB1, AT91_PIN_PB2);
+
#ifdef CONFIG_SERIAL_AT91
at91_console_port = EK_SERIAL_CONSOLE;
memcpy(at91_serial_map, serial, sizeof(serial));
@@ -111,9 +114,14 @@ static void __init ek_board_init(void)
at91_add_device_usbh(&ek_usbh_data);
/* USB Device */
at91_add_device_udc(&ek_udc_data);
+#ifdef CONFIG_MTD_AT91_DATAFLASH_CARD
+ /* DataFlash card */
+ at91_set_gpio_output(AT91_PIN_PB22, 0);
+#else
/* MMC */
- at91_set_gpio_output(AT91_PIN_PB22, 1); /* this MMC card slot can optionally use SPI signaling (CS3). default: MMC */
+ at91_set_gpio_output(AT91_PIN_PB22, 1); /* this MMC card slot can optionally use SPI signaling (CS3). */
at91_add_device_mmc(&ek_mmc_data);
+#endif
/* VGA */
// ek_add_device_video();
}

arch/arm/mach-at91rm9200/devices.c

View file
diff --git a/arch/arm/mach-at91rm9200/devices.c b/arch/arm/mach-at91rm9200/devices.c
index 57eedd5..1781b8f 100644
--- a/arch/arm/mach-at91rm9200/devices.c
+++ b/arch/arm/mach-at91rm9200/devices.c
@@ -28,10 +28,10 @@
static u64 ohci_dmamask = 0xffffffffUL;
static struct at91_usbh_data usbh_data;
-static struct resource at91rm9200_usbh_resource[] = {
+static struct resource at91_usbh_resource[] = {
[0] = {
.start = AT91_UHP_BASE,
- .end = AT91_UHP_BASE + SZ_1M -1,
+ .end = AT91_UHP_BASE + SZ_1M - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
@@ -49,8 +49,8 @@ static struct platform_device at91rm9200_usbh_device = {
.coherent_dma_mask = 0xffffffff,
.platform_data = &usbh_data,
},
- .resource = at91rm9200_usbh_resource,
- .num_resources = ARRAY_SIZE(at91rm9200_usbh_resource),
+ .resource = at91_usbh_resource,
+ .num_resources = ARRAY_SIZE(at91_usbh_resource),
};
void __init at91_add_device_usbh(struct at91_usbh_data *data)
@@ -121,6 +121,19 @@ void __init at91_add_device_udc(struct at91_udc_data *data) {}
static u64 eth_dmamask = 0xffffffffUL;
static struct at91_eth_data eth_data;
+static struct resource at91_eth_resources[] = {
+ [0] = {
+ .start = AT91_BASE_EMAC,
+ .end = AT91_BASE_EMAC + SZ_16K - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = AT91_ID_EMAC,
+ .end = AT91_ID_EMAC,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
static struct platform_device at91rm9200_eth_device = {
.name = "at91_ether",
.id = -1,
@@ -129,7 +142,8 @@ static struct platform_device at91rm9200_eth_device = {
.coherent_dma_mask = 0xffffffff,
.platform_data = &eth_data,
},
- .num_resources = 0,
+ .resource = at91_eth_resources,
+ .num_resources = ARRAY_SIZE(at91_eth_resources),
};
void __init at91_add_device_eth(struct at91_eth_data *data)
@@ -224,15 +238,20 @@ static u64 mmc_dmamask = 0xffffffffUL;
static struct at91_mmc_data mmc_data;
static struct resource at91_mmc_resources[] = {
- {
+ [0] = {
.start = AT91_BASE_MCI,
.end = AT91_BASE_MCI + SZ_16K - 1,
.flags = IORESOURCE_MEM,
- }
+ },
+ [1] = {
+ .start = AT91_ID_MCI,
+ .end = AT91_ID_MCI,
+ .flags = IORESOURCE_IRQ,
+ },
};
static struct platform_device at91rm9200_mmc_device = {
- .name = "at91rm9200_mci",
+ .name = "at91_mci",
.id = -1,
.dev = {
.dma_mask = &mmc_dmamask,
@@ -290,4 +309,123 @@ void __init at91_add_device_mmc(struct at91_mmc_data *data)
void __init at91_add_device_mmc(struct at91_mmc_data *data) {}
#endif
+/* --------------------------------------------------------------------
+ * NAND / SmartMedia
+ * -------------------------------------------------------------------- */
+
+#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE)
+static struct at91_nand_data nand_data;
+
+static struct resource at91_nand_resources[] = {
+ {
+ .start = AT91_SMARTMEDIA_BASE,
+ .end = AT91_SMARTMEDIA_BASE + SZ_8M - 1,
+ .flags = IORESOURCE_MEM,
+ }
+};
+
+static struct platform_device at91_nand_device = {
+ .name = "at91_nand",
+ .id = -1,
+ .dev = {
+ .platform_data = &nand_data,
+ },
+ .resource = at91_nand_resources,
+ .num_resources = ARRAY_SIZE(at91_nand_resources),
+};
+
+void __init at91_add_device_nand(struct at91_nand_data *data)
+{
+ if (!data)
+ return;
+
+ /* enable pin */
+ if (data->enable_pin)
+ at91_set_gpio_output(data->enable_pin, 1);
+
+ /* ready/busy pin */
+ if (data->rdy_pin)
+ at91_set_gpio_input(data->rdy_pin, 1);
+
+ /* card detect pin */
+ if (data->det_pin)
+ at91_set_gpio_input(data->det_pin, 1);
+
+ at91_set_A_periph(AT91_PIN_PC1, 0); /* SMOE */
+ at91_set_A_periph(AT91_PIN_PC3, 0); /* SMWE */
+
+ nand_data = *data;
+ platform_device_register(&at91_nand_device);
+}
+#else
+void __init at91_add_device_nand(struct at91_nand_data *data) {}
+#endif
+
+
+/* --------------------------------------------------------------------
+ * TWI (i2c)
+ * -------------------------------------------------------------------- */
+
+#if defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
+static struct platform_device at91rm9200_twi_device = {
+ .name = "at91_i2c",
+ .id = -1,
+ .num_resources = 0,
+};
+
+void __init at91_add_device_i2c(void)
+{
+ /* pins used for TWI interface */
+ at91_set_A_periph(AT91_PIN_PA25, 0); /* TWD */
+ at91_set_multi_drive(AT91_PIN_PA25, 1);
+
+ at91_set_A_periph(AT91_PIN_PA26, 0); /* TWCK */
+ at91_set_multi_drive(AT91_PIN_PA26, 1);
+
+ platform_device_register(&at91rm9200_twi_device);
+}
+#else
+void __init at91_add_device_i2c(void) {}
+#endif
+
+
+/* --------------------------------------------------------------------
+ * RTC
+ * -------------------------------------------------------------------- */
+
+#if defined(CONFIG_AT91_RTC) || defined(CONFIG_AT91_RTC_MODULE)
+static struct platform_device at91rm9200_rtc_device = {
+ .name = "at91_rtc",
+ .id = -1,
+ .num_resources = 0,
+};
+
+void __init at91_add_device_rtc(void)
+{
+ platform_device_register(&at91rm9200_rtc_device);
+}
+#else
+void __init at91_add_device_rtc(void) {}
+#endif
+
+
+/* --------------------------------------------------------------------
+ * LEDs
+ * -------------------------------------------------------------------- */
+
+#if defined(CONFIG_LEDS)
+u8 at91_leds_cpu;
+u8 at91_leds_timer;
+
+void __init at91_init_leds(u8 cpu_led, u8 timer_led)
+{
+ at91_leds_cpu = cpu_led;
+ at91_leds_timer = timer_led;
+}
+
+#else
+void __init at91_init_leds(u8 cpu_led, u8 timer_led) {}
+#endif
+
+
/* -------------------------------------------------------------------- */

arch/arm/mach-at91rm9200/leds.c

View file
diff --git a/arch/arm/mach-at91rm9200/leds.c b/arch/arm/mach-at91rm9200/leds.c
new file mode 100644
index 0000000..28150e8
--- /dev/null
+++ b/arch/arm/mach-at91rm9200/leds.c
@@ -0,0 +1,100 @@
+/*
+ * LED driver for Atmel AT91-based boards.
+ *
+ * Copyright (C) SAN People (Pty) Ltd
+ *
+ * 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.
+*/
+
+#include <linux/config.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+
+#include <asm/mach-types.h>
+#include <asm/leds.h>
+#include <asm/arch/board.h>
+#include <asm/arch/gpio.h>
+
+
+static inline void at91_led_on(unsigned int led)
+{
+ at91_set_gpio_value(led, 0);
+}
+
+static inline void at91_led_off(unsigned int led)
+{
+ at91_set_gpio_value(led, 1);
+}
+
+static inline void at91_led_toggle(unsigned int led)
+{
+ unsigned long is_off = at91_get_gpio_value(led);
+ if (is_off)
+ at91_led_on(led);
+ else
+ at91_led_off(led);
+}
+
+
+/*
+ * Handle LED events.
+ */
+static void at91_leds_event(led_event_t evt)
+{
+ unsigned long flags;
+
+ local_irq_save(flags);
+
+ switch(evt) {
+ case led_start: /* System startup */
+ at91_led_on(at91_leds_cpu);
+ break;
+
+ case led_stop: /* System stop / suspend */
+ at91_led_off(at91_leds_cpu);
+ break;
+
+#ifdef CONFIG_LEDS_TIMER
+ case led_timer: /* Every 50 timer ticks */
+ at91_led_toggle(at91_leds_timer);
+ break;
+#endif
+
+#ifdef CONFIG_LEDS_CPU
+ case led_idle_start: /* Entering idle state */
+ at91_led_off(at91_leds_cpu);
+ break;
+
+ case led_idle_end: /* Exit idle state */
+ at91_led_on(at91_leds_cpu);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ local_irq_restore(flags);
+}
+
+
+static int __init leds_init(void)
+{
+ if (!at91_leds_timer || !at91_leds_cpu)
+ return -ENODEV;
+
+ /* Enable PIO to access the LEDs */
+ at91_set_gpio_output(at91_leds_timer, 1);
+ at91_set_gpio_output(at91_leds_cpu, 1);
+
+ leds_event = at91_leds_event;
+
+ leds_event(led_start);
+ return 0;
+}
+
+__initcall(leds_init);

arch/arm/mach-ep93xx/core.c

View file
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
index 2d892e4..dcd4176 100644
--- a/arch/arm/mach-ep93xx/core.c
+++ b/arch/arm/mach-ep93xx/core.c
@@ -424,6 +424,14 @@ static struct amba_device uart3_device = {
.periphid = 0x00041010,
};
+
+static struct platform_device ep93xx_rtc_device = {
+ .name = "ep93xx-rtc",
+ .id = -1,
+ .num_resources = 0,
+};
+
+
void __init ep93xx_init_devices(void)
{
unsigned int v;
@@ -439,4 +447,6 @@ void __init ep93xx_init_devices(void)
amba_device_register(&uart1_device, &iomem_resource);
amba_device_register(&uart2_device, &iomem_resource);
amba_device_register(&uart3_device, &iomem_resource);
+
+ platform_device_register(&ep93xx_rtc_device);
}

arch/arm/mach-ep93xx/ts72xx.c

View file
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c
index 777e75d..9be01b0 100644
--- a/arch/arm/mach-ep93xx/ts72xx.c
+++ b/arch/arm/mach-ep93xx/ts72xx.c
@@ -17,6 +17,8 @@
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/mtd/physmap.h>
+#include <linux/platform_device.h>
+#include <linux/m48t86.h>
#include <asm/io.h>
#include <asm/hardware.h>
#include <asm/mach-types.h>
@@ -39,6 +41,16 @@ static struct map_desc ts72xx_io_desc[] __initdata = {
.pfn = __phys_to_pfn(TS72XX_OPTIONS2_PHYS_BASE),
.length = TS72XX_OPTIONS2_SIZE,
.type = MT_DEVICE,
+ }, {
+ .virtual = TS72XX_RTC_INDEX_VIRT_BASE,
+ .pfn = __phys_to_pfn(TS72XX_RTC_INDEX_PHYS_BASE),
+ .length = TS72XX_RTC_INDEX_SIZE,
+ .type = MT_DEVICE,
+ }, {
+ .virtual = TS72XX_RTC_DATA_VIRT_BASE,
+ .pfn = __phys_to_pfn(TS72XX_RTC_DATA_PHYS_BASE),
+ .length = TS72XX_RTC_DATA_SIZE,
+ .type = MT_DEVICE,
}
};
@@ -99,11 +111,38 @@ static void __init ts72xx_map_io(void)
}
}
+static unsigned char ts72xx_rtc_readb(unsigned long addr)
+{
+ __raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE);
+ return __raw_readb(TS72XX_RTC_DATA_VIRT_BASE);
+}
+
+static void ts72xx_rtc_writeb(unsigned char value, unsigned long addr)
+{
+ __raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE);
+ __raw_writeb(value, TS72XX_RTC_DATA_VIRT_BASE);
+}
+
+static struct m48t86_ops ts72xx_rtc_ops = {
+ .readb = ts72xx_rtc_readb,
+ .writeb = ts72xx_rtc_writeb,
+};
+
+static struct platform_device ts72xx_rtc_device = {
+ .name = "rtc-m48t86",
+ .id = -1,
+ .dev = {
+ .platform_data = &ts72xx_rtc_ops,
+ },
+ .num_resources = 0,
+};
+
static void __init ts72xx_init_machine(void)
{
ep93xx_init_devices();
if (board_is_ts7200())
physmap_configure(TS72XX_NOR_PHYS_BASE, 0x01000000, 1, NULL);
+ platform_device_register(&ts72xx_rtc_device);
}
MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC")

arch/arm/mach-imx/dma.c

View file
diff --git a/arch/arm/mach-imx/dma.c b/arch/arm/mach-imx/dma.c
index 71a59e1..4ca51dc 100644
--- a/arch/arm/mach-imx/dma.c
+++ b/arch/arm/mach-imx/dma.c
@@ -7,11 +7,18 @@
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.

This diff is incomplete. Download the complete patch.

arch/arm/mach-imx/mx1ads.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-ixp23xx/espresso.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-ixp23xx/pci.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/board-ams-delta.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/board-generic.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/board-h2.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/board-h3.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/board-innovator.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/board-netstar.c

View before deletion

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/board-nokia770.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/board-osk.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/board-palmte.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/board-perseus2.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/board-voiceblue.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/clock.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/clock.h

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/devices.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/io.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/irq.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/mux.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/pm.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/serial.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/sleep.S

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap1/time.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/board-apollon.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/board-h4.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/clock.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/clock.h

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/devices.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/io.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/memory.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/memory.h

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/mux.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/pm.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/prcm-regs.h

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/prcm.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/sleep.S

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-omap2/sram-fn.S

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-pxa/poodle.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c2410/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c2410/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c2410/clock.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c2410/common-smdk.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c2410/common-smdk.h

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c2410/mach-anubis.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c2410/mach-rx3715.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c2410/mach-smdk2410.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c2410/mach-smdk2440.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-sa1100/collie.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mm/consistent.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mm/mm-armv.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mm/proc-xsc3.S

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/clock.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/devices.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/dma.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/dmtimer.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/fb.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/gpio.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/mcbsp.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/ocpi.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/pm.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/sram.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-omap/timer32k.c

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-at91rm9200/board.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-ep93xx/ts72xx.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-imx/dma.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-imx/imx-dma.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-ixp23xx/memory.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-ixp23xx/platform.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/aic23.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/board-ams-delta.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/board-apollon.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/board-h2.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/board-h3.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/board-h4.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/board-netstar.h

View before deletion

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/board-nokia.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/board-perseus2.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/board.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/clock.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/dma.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/dmtimer.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/dsp.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/dsp_common.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/gpioexpander.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/hardware.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/irda.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/irqs.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/keypad.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/lcd_lph8923.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/mcbsp.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/mcspi.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/menelaus.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/mux.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/omap-alsa.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/omapfb.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/param.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/pm.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/prcm.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/sram.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-omap/system.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/arch-s3c2410/entry-macro.S

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/dma-mapping.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/memory.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/pgtable-hwdef.h

View file

This diff is incomplete. Download the complete patch.

include/asm-arm/pgtable.h

View file

This diff is incomplete. Download the complete patch.