aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-arm/arch-at91rm9200
diff options
context:
space:
mode:
authorAndrew Victor <andrew@sanpeople.com>2006-06-19 13:16:46 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-06-19 13:16:46 -0400
commit82dc0772a892f8b430a2d567c981fe47a11489c3 (patch)
treedb9e2e86f91e817ae1ad8e4478d402f1316edc2a /include/asm-arm/arch-at91rm9200
parent067bbada4cc574eaa4fa577483ecae4012049477 (diff)
[ARM] 3590/1: AT91RM9200 Platform devices support
Patch from Andrew Victor This patch includes the structures and exported functions required for the platform-device support (added in patch 3585/1). Also adds the arch_identify() function for run-time detection of which AT91 processor the code is running on. [Original patch from Ivan Kokshaysky] Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'include/asm-arm/arch-at91rm9200')
-rw-r--r--include/asm-arm/arch-at91rm9200/board.h23
-rw-r--r--include/asm-arm/arch-at91rm9200/system.h8
2 files changed, 28 insertions, 3 deletions
diff --git a/include/asm-arm/arch-at91rm9200/board.h b/include/asm-arm/arch-at91rm9200/board.h
index 4fdef13d01d4..587948d56753 100644
--- a/include/asm-arm/arch-at91rm9200/board.h
+++ b/include/asm-arm/arch-at91rm9200/board.h
@@ -39,6 +39,8 @@ extern int at91_serial_map[AT91_NR_UART];
39extern int at91_console_port; 39extern int at91_console_port;
40 40
41#include <linux/mtd/partitions.h> 41#include <linux/mtd/partitions.h>
42#include <linux/device.h>
43#include <linux/spi/spi.h>
42 44
43 /* USB Device */ 45 /* USB Device */
44struct at91_udc_data { 46struct at91_udc_data {
@@ -91,10 +93,25 @@ struct at91_nand_data {
91extern void __init at91_add_device_nand(struct at91_nand_data *data); 93extern void __init at91_add_device_nand(struct at91_nand_data *data);
92 94
93 /* I2C*/ 95 /* I2C*/
94void __init at91_add_device_i2c(void); 96extern void __init at91_add_device_i2c(void);
95 97
96 /* RTC */ 98 /* SPI */
97void __init at91_add_device_rtc(void); 99extern void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices);
100
101 /* Serial */
102struct at91_uart_config {
103 unsigned short console_tty; /* tty number of serial console */
104 unsigned short nr_tty; /* number of serial tty's */
105 short tty_map[]; /* map UART to tty number */
106};
107extern struct platform_device *at91_default_console_device;
108extern void __init at91_init_serial(struct at91_uart_config *config);
109
110struct at91_uart_data {
111 short use_dma_tx; /* use transmit DMA? */
112 short use_dma_rx; /* use receive DMA? */
113};
114extern void __init at91_add_device_serial(void);
98 115
99 /* LEDs */ 116 /* LEDs */
100extern u8 at91_leds_cpu; 117extern u8 at91_leds_cpu;
diff --git a/include/asm-arm/arch-at91rm9200/system.h b/include/asm-arm/arch-at91rm9200/system.h
index 29c42655f05c..945e66507a78 100644
--- a/include/asm-arm/arch-at91rm9200/system.h
+++ b/include/asm-arm/arch-at91rm9200/system.h
@@ -48,4 +48,12 @@ static inline void arch_reset(char mode)
48 at91_sys_write(AT91_ST_CR, AT91_ST_WDRST); 48 at91_sys_write(AT91_ST_CR, AT91_ST_WDRST);
49} 49}
50 50
51#define ARCH_ID_AT91RM9200 0x09200080
52#define ARCH_ID_AT91SAM9261 0x019000a0
53
54static inline unsigned long arch_identify(void)
55{
56 return at91_sys_read(AT91_DBGU_CIDR) & (AT91_CIDR_EPROC | AT91_CIDR_ARCH);
57}
58
51#endif 59#endif