Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82dc0772 authored by Andrew Victor's avatar Andrew Victor Committed by Russell King
Browse files

[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: default avatarAndrew Victor <andrew@sanpeople.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 067bbada
Loading
Loading
Loading
Loading
+20 −3
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@ extern int at91_serial_map[AT91_NR_UART];
extern int at91_console_port;

#include <linux/mtd/partitions.h>
#include <linux/device.h>
#include <linux/spi/spi.h>

 /* USB Device */
struct at91_udc_data {
@@ -91,10 +93,25 @@ struct at91_nand_data {
extern void __init at91_add_device_nand(struct at91_nand_data *data);

 /* I2C*/
void __init at91_add_device_i2c(void);
extern void __init at91_add_device_i2c(void);

 /* RTC */
void __init at91_add_device_rtc(void);
 /* SPI */
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 */
extern u8 at91_leds_cpu;
+8 −0
Original line number Diff line number Diff line
@@ -48,4 +48,12 @@ static inline void arch_reset(char mode)
	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