[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>
This commit is contained in:
parent
067bbada4c
commit
82dc0772a8
2 changed files with 28 additions and 3 deletions
|
@ -39,6 +39,8 @@ extern int at91_serial_map[AT91_NR_UART];
|
||||||
extern int at91_console_port;
|
extern int at91_console_port;
|
||||||
|
|
||||||
#include <linux/mtd/partitions.h>
|
#include <linux/mtd/partitions.h>
|
||||||
|
#include <linux/device.h>
|
||||||
|
#include <linux/spi/spi.h>
|
||||||
|
|
||||||
/* USB Device */
|
/* USB Device */
|
||||||
struct at91_udc_data {
|
struct at91_udc_data {
|
||||||
|
@ -91,10 +93,25 @@ struct at91_nand_data {
|
||||||
extern void __init at91_add_device_nand(struct at91_nand_data *data);
|
extern void __init at91_add_device_nand(struct at91_nand_data *data);
|
||||||
|
|
||||||
/* I2C*/
|
/* I2C*/
|
||||||
void __init at91_add_device_i2c(void);
|
extern void __init at91_add_device_i2c(void);
|
||||||
|
|
||||||
/* RTC */
|
/* SPI */
|
||||||
void __init at91_add_device_rtc(void);
|
extern void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices);
|
||||||
|
|
||||||
|
/* Serial */
|
||||||
|
struct at91_uart_config {
|
||||||
|
unsigned short console_tty; /* tty number of serial console */
|
||||||
|
unsigned short nr_tty; /* number of serial tty's */
|
||||||
|
short tty_map[]; /* map UART to tty number */
|
||||||
|
};
|
||||||
|
extern struct platform_device *at91_default_console_device;
|
||||||
|
extern void __init at91_init_serial(struct at91_uart_config *config);
|
||||||
|
|
||||||
|
struct at91_uart_data {
|
||||||
|
short use_dma_tx; /* use transmit DMA? */
|
||||||
|
short use_dma_rx; /* use receive DMA? */
|
||||||
|
};
|
||||||
|
extern void __init at91_add_device_serial(void);
|
||||||
|
|
||||||
/* LEDs */
|
/* LEDs */
|
||||||
extern u8 at91_leds_cpu;
|
extern u8 at91_leds_cpu;
|
||||||
|
|
|
@ -48,4 +48,12 @@ static inline void arch_reset(char mode)
|
||||||
at91_sys_write(AT91_ST_CR, AT91_ST_WDRST);
|
at91_sys_write(AT91_ST_CR, AT91_ST_WDRST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define ARCH_ID_AT91RM9200 0x09200080
|
||||||
|
#define ARCH_ID_AT91SAM9261 0x019000a0
|
||||||
|
|
||||||
|
static inline unsigned long arch_identify(void)
|
||||||
|
{
|
||||||
|
return at91_sys_read(AT91_DBGU_CIDR) & (AT91_CIDR_EPROC | AT91_CIDR_ARCH);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue