1/*
2 * linux/include/asm-arm/arch-sa1100/pfs168.h
3 *
4 * Created 2000/06/05 by Nicolas Pitre <nico@cam.org>
5 *
6 * This file contains the hardware specific definitions for PFS-168
7 *
8 */
9
10#ifndef __ASM_ARCH_HARDWARE_H
11#error "include <asm/hardware.h> instead"
12#endif
13
14
15/* GPIOs for which the generic definition doesn't say much */
16#define GPIO_RADIO_IRQ		GPIO_GPIO (14)	/* Radio interrupt request  */
17#define GPIO_L3_I2C_SDA		GPIO_GPIO (15)	/* L3 and SMB control ports */
18#define GPIO_PS_MODE_SYNC	GPIO_GPIO (16)	/* Power supply mode/sync   */
19#define GPIO_L3_MODE		GPIO_GPIO (17)	/* L3 mode signal with LED  */
20#define GPIO_L3_I2C_SCL		GPIO_GPIO (18)	/* L3 and I2C control ports */
21#define GPIO_STEREO_64FS_CLK	GPIO_GPIO (19)	/* SSP UDA1341 clock input  */
22#define GPIO_CF_IRQ		GPIO_GPIO (21)	/* CF IRQ   */
23#define GPIO_MBGNT		GPIO_GPIO (21)	/* 1111 MBGNT */
24#define GPIO_CF_CD		GPIO_GPIO (22)	/* CF CD */
25#define GPIO_MBREQ		GPIO_GPIO (22)	/* 1111 MBREQ */
26#define GPIO_UCB1300_IRQ	GPIO_GPIO (23)	/* UCB GPIO and touchscreen */
27#define GPIO_CF_BVD2		GPIO_GPIO (24)	/* CF BVD */
28#define GPIO_GFX_IRQ		GPIO_GPIO (24)	/* Graphics IRQ */
29#define GPIO_CF_BVD1		GPIO_GPIO (25)	/* CF BVD */
30#define GPIO_NEP_IRQ		GPIO_GPIO (25)	/* Neponset IRQ */
31#define GPIO_BATT_LOW		GPIO_GPIO (26)	/* Low battery */
32#define GPIO_RCLK		GPIO_GPIO (26)	/* CCLK/2  */
33
34#define IRQ_GPIO_CF_IRQ		IRQ_GPIO21
35#define IRQ_GPIO_CF_CD		IRQ_GPIO22
36#define IRQ_GPIO_MBREQ		IRQ_GPIO22
37#define IRQ_GPIO_UCB1300_IRQ	IRQ_GPIO23
38#define IRQ_GPIO_CF_BVD2	IRQ_GPIO24
39#define IRQ_GPIO_CF_BVD1	IRQ_GPIO25
40#define IRQ_GPIO_NEP_IRQ	IRQ_GPIO25
41
42
43/*
44 * PFS-168 definitions:
45 */
46
47#define PFS168_SA1111_BASE	(0x40000000)
48
49#ifndef __ASSEMBLY__
50#define machine_has_neponset() (0)
51
52#define PFS168_COM5_VBASE		(*((volatile unsigned char *)(0xf0000000UL)))
53#define PFS168_COM6_VBASE		(*((volatile unsigned char *)(0xf0001000UL)))
54#define PFS168_SYSC1RTS			(*((volatile unsigned char *)(0xf0002000UL)))
55#define PFS168_SYSLED			(*((volatile unsigned char *)(0xf0003000UL)))
56#define PFS168_SYSDTMF			(*((volatile unsigned char *)(0xf0004000UL)))
57#define PFS168_SYSLCDDE			(*((volatile unsigned char *)(0xf0005000UL)))
58#define PFS168_SYSC1DSR			(*((volatile unsigned char *)(0xf0006000UL)))
59#define PFS168_SYSC3TEN			(*((volatile unsigned char *)(0xf0007000UL)))
60#define PFS168_SYSCTLA			(*((volatile unsigned char *)(0xf0008000UL)))
61#define PFS168_SYSCTLB			(*((volatile unsigned char *)(0xf0009000UL)))
62#define PFS168_ETH_VBASE		(*((volatile unsigned char *)(0xf000a000UL)))
63#endif
64
65#define PFS168_SYSLCDDE_STNDE		(1<<0)	/* CSTN display enable/disable (1/0) */
66#define PFS168_SYSLCDDE_DESEL		(1<<0)	/* Active/Passive (1/0) display enable mode */
67
68#define PFS168_SYSCTLA_BKLT		(1<<0)	/* LCD backlight invert on/off (1/0) */
69#define PFS168_SYSCTLA_RLY		(1<<1)	/* Relay on/off (1/0) */
70#define PFS168_SYSCTLA_PXON		(1<<2)	/* Opto relay connect/disconnect 1/0) */
71#define PFS168_SYSCTLA_IRDA_FSEL	(1<<3)	/* IRDA Frequency select (0 = SIR, 1 = MIR/ FIR) */
72
73#define PFS168_SYSCTLB_MG1		(1<<0)	/* Motion detector gain select */
74#define PFS168_SYSCTLB_MG0		(1<<1)	/* Motion detector gain select */
75#define PFS168_SYSCTLB_IRDA_MD1		(1<<2)	/* Range/Power select */
76#define PFS168_SYSCTLB_IRDA_MD0		(1<<3)	/* Range/Power select */
77#define PFS168_SYSCTLB_IRDA_MD_MASK	(PFS168_SYSCTLB_IRDA_MD1|PFS168_SYSCTLB_IRDA_MD0)
78