diff options
author | Andrew Victor <andrew@sanpeople.com> | 2006-06-19 13:16:46 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-06-19 13:16:46 -0400 |
commit | 82dc0772a892f8b430a2d567c981fe47a11489c3 (patch) | |
tree | db9e2e86f91e817ae1ad8e4478d402f1316edc2a /include/asm-arm/arch-at91rm9200 | |
parent | 067bbada4cc574eaa4fa577483ecae4012049477 (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.h | 23 | ||||
-rw-r--r-- | include/asm-arm/arch-at91rm9200/system.h | 8 |
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]; | |||
39 | extern int at91_console_port; | 39 | extern 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 */ |
44 | struct at91_udc_data { | 46 | struct at91_udc_data { |
@@ -91,10 +93,25 @@ struct at91_nand_data { | |||
91 | extern void __init at91_add_device_nand(struct at91_nand_data *data); | 93 | extern void __init at91_add_device_nand(struct at91_nand_data *data); |
92 | 94 | ||
93 | /* I2C*/ | 95 | /* I2C*/ |
94 | void __init at91_add_device_i2c(void); | 96 | extern void __init at91_add_device_i2c(void); |
95 | 97 | ||
96 | /* RTC */ | 98 | /* SPI */ |
97 | void __init at91_add_device_rtc(void); | 99 | extern void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices); |
100 | |||
101 | /* Serial */ | ||
102 | struct 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 | }; | ||
107 | extern struct platform_device *at91_default_console_device; | ||
108 | extern void __init at91_init_serial(struct at91_uart_config *config); | ||
109 | |||
110 | struct at91_uart_data { | ||
111 | short use_dma_tx; /* use transmit DMA? */ | ||
112 | short use_dma_rx; /* use receive DMA? */ | ||
113 | }; | ||
114 | extern void __init at91_add_device_serial(void); | ||
98 | 115 | ||
99 | /* LEDs */ | 116 | /* LEDs */ |
100 | extern u8 at91_leds_cpu; | 117 | extern 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 | |||
54 | static 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 |