[ARM] 3369/1: ep93xx: add core cirrus ep93xx support
Patch from Lennert Buytenhek
This patch adds support for the Cirrus ep93xx series of CPUs. The
ep93xx is an ARM920T based CPU with two VICs, PL010 based UARTs,
IrDA, MaverickCrunch floating point coprocessor, between 24 and 64
GPIOs, ethernet, OHCI USB and, depending on the model, pcmcia, raster
engine, graphics accelerator, IDE controller and a bunch of other
stuff.
This patch adds the core ep93xx support code, and support for the
Glomation GESBC-9312-sx and the Technologic Systems TS-72xx SBCs.
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-03-20 10:10:13 -07:00
|
|
|
/*
|
2008-08-05 09:14:15 -06:00
|
|
|
* arch/arm/mach-ep93xx/include/mach/platform.h
|
[ARM] 3369/1: ep93xx: add core cirrus ep93xx support
Patch from Lennert Buytenhek
This patch adds support for the Cirrus ep93xx series of CPUs. The
ep93xx is an ARM920T based CPU with two VICs, PL010 based UARTs,
IrDA, MaverickCrunch floating point coprocessor, between 24 and 64
GPIOs, ethernet, OHCI USB and, depending on the model, pcmcia, raster
engine, graphics accelerator, IDE controller and a bunch of other
stuff.
This patch adds the core ep93xx support code, and support for the
Glomation GESBC-9312-sx and the Technologic Systems TS-72xx SBCs.
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-03-20 10:10:13 -07:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
|
2009-10-07 17:45:00 -06:00
|
|
|
struct i2c_gpio_platform_data;
|
2009-03-05 09:33:50 -07:00
|
|
|
struct i2c_board_info;
|
2010-05-11 08:34:54 -06:00
|
|
|
struct spi_board_info;
|
2009-07-29 15:41:06 -06:00
|
|
|
struct platform_device;
|
2009-09-22 17:47:09 -06:00
|
|
|
struct ep93xxfb_mach_info;
|
2009-10-28 14:04:46 -06:00
|
|
|
struct ep93xx_keypad_platform_data;
|
2010-05-11 08:34:54 -06:00
|
|
|
struct ep93xx_spi_info;
|
2009-03-05 09:33:50 -07:00
|
|
|
|
2006-09-21 18:28:13 -06:00
|
|
|
struct ep93xx_eth_data
|
|
|
|
{
|
|
|
|
unsigned char dev_addr[6];
|
|
|
|
unsigned char phy_id;
|
|
|
|
};
|
|
|
|
|
2008-10-04 13:01:49 -06:00
|
|
|
void ep93xx_map_io(void);
|
|
|
|
void ep93xx_init_irq(void);
|
2009-07-07 19:00:49 -06:00
|
|
|
|
|
|
|
/* EP93xx System Controller software locked register write */
|
2009-07-15 14:51:59 -06:00
|
|
|
void ep93xx_syscon_swlocked_write(unsigned int val, void __iomem *reg);
|
2009-07-07 19:00:49 -06:00
|
|
|
void ep93xx_devcfg_set_clear(unsigned int set_bits, unsigned int clear_bits);
|
|
|
|
|
|
|
|
static inline void ep93xx_devcfg_set_bits(unsigned int bits)
|
|
|
|
{
|
|
|
|
ep93xx_devcfg_set_clear(bits, 0x00);
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline void ep93xx_devcfg_clear_bits(unsigned int bits)
|
|
|
|
{
|
|
|
|
ep93xx_devcfg_set_clear(0x00, bits);
|
|
|
|
}
|
|
|
|
|
2010-03-27 05:05:14 -06:00
|
|
|
#define EP93XX_CHIP_REV_D0 3
|
|
|
|
#define EP93XX_CHIP_REV_D1 4
|
|
|
|
#define EP93XX_CHIP_REV_E0 5
|
|
|
|
#define EP93XX_CHIP_REV_E1 6
|
|
|
|
#define EP93XX_CHIP_REV_E2 7
|
|
|
|
|
|
|
|
unsigned int ep93xx_chip_revision(void);
|
|
|
|
|
2010-06-10 09:19:08 -06:00
|
|
|
void ep93xx_register_flash(unsigned int width,
|
|
|
|
resource_size_t start, resource_size_t size);
|
|
|
|
|
2008-10-04 13:01:49 -06:00
|
|
|
void ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr);
|
2009-10-07 17:45:00 -06:00
|
|
|
void ep93xx_register_i2c(struct i2c_gpio_platform_data *data,
|
|
|
|
struct i2c_board_info *devices, int num);
|
2010-05-11 08:34:54 -06:00
|
|
|
void ep93xx_register_spi(struct ep93xx_spi_info *info,
|
|
|
|
struct spi_board_info *devices, int num);
|
2009-09-22 17:47:09 -06:00
|
|
|
void ep93xx_register_fb(struct ep93xxfb_mach_info *data);
|
2009-07-29 15:41:06 -06:00
|
|
|
void ep93xx_register_pwm(int pwm0, int pwm1);
|
|
|
|
int ep93xx_pwm_acquire_gpio(struct platform_device *pdev);
|
|
|
|
void ep93xx_pwm_release_gpio(struct platform_device *pdev);
|
2009-10-28 14:04:46 -06:00
|
|
|
void ep93xx_register_keypad(struct ep93xx_keypad_platform_data *data);
|
|
|
|
int ep93xx_keypad_acquire_gpio(struct platform_device *pdev);
|
|
|
|
void ep93xx_keypad_release_gpio(struct platform_device *pdev);
|
2010-06-08 04:01:10 -06:00
|
|
|
void ep93xx_register_i2s(void);
|
|
|
|
int ep93xx_i2s_acquire(unsigned i2s_pins, unsigned i2s_config);
|
|
|
|
void ep93xx_i2s_release(void);
|
2010-10-14 08:49:07 -06:00
|
|
|
void ep93xx_register_ac97(void);
|
2009-07-07 19:00:49 -06:00
|
|
|
|
2008-10-04 13:01:49 -06:00
|
|
|
void ep93xx_init_devices(void);
|
|
|
|
extern struct sys_timer ep93xx_timer;
|
[ARM] 3369/1: ep93xx: add core cirrus ep93xx support
Patch from Lennert Buytenhek
This patch adds support for the Cirrus ep93xx series of CPUs. The
ep93xx is an ARM920T based CPU with two VICs, PL010 based UARTs,
IrDA, MaverickCrunch floating point coprocessor, between 24 and 64
GPIOs, ethernet, OHCI USB and, depending on the model, pcmcia, raster
engine, graphics accelerator, IDE controller and a bunch of other
stuff.
This patch adds the core ep93xx support code, and support for the
Glomation GESBC-9312-sx and the Technologic Systems TS-72xx SBCs.
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-03-20 10:10:13 -07:00
|
|
|
|
|
|
|
#endif
|