1/****************************************************************************/
2/*
3 *      linux/include/asm-arm/arch-l7200/gpio.h
4 *
5 *      Registers and  helper functions for the L7200 Link-Up Systems
6 *      GPIO.
7 *
8 *      (C) Copyright 2000, S A McConnell  (samcconn@cotw.com)
9 *
10 *  This file is subject to the terms and conditions of the GNU General Public
11 *  License. See the file COPYING in the main directory of this archive for
12 *  more details.
13 */
14
15/****************************************************************************/
16
17#define GPIO_OFF   0x00005000  /* Offset from IO_START to the GPIO reg's. */
18
19/* IO_START and IO_BASE are defined in hardware.h */
20
21#define GPIO_START (IO_START_2 + GPIO_OFF) /* Physical addr of the GPIO reg. */
22#define GPIO_BASE  (IO_BASE_2  + GPIO_OFF) /* Virtual addr of the GPIO reg. */
23
24/* Offsets from the start of the GPIO for all the registers. */
25#define PADR_OFF     0x000
26#define PADDR_OFF    0x004
27#define PASBSR_OFF   0x008
28#define PAEENR_OFF   0x00c
29#define PAESNR_OFF   0x010
30#define PAESTR_OFF   0x014
31#define PAIMR_OFF    0x018
32#define PAINT_OFF    0x01c
33
34#define PBDR_OFF     0x020
35#define PBDDR_OFF    0x024
36#define PBSBSR_OFF   0x028
37#define PBIMR_OFF    0x038
38#define PBINT_OFF    0x03c
39
40#define PCDR_OFF     0x040
41#define PCDDR_OFF    0x044
42#define PCSBSR_OFF   0x048
43#define PCIMR_OFF    0x058
44#define PCINT_OFF    0x05c
45
46#define PDDR_OFF     0x060
47#define PDDDR_OFF    0x064
48#define PDSBSR_OFF   0x068
49#define PDEENR_OFF   0x06c
50#define PDESNR_OFF   0x070
51#define PDESTR_OFF   0x074
52#define PDIMR_OFF    0x078
53#define PDINT_OFF    0x07c
54
55#define PEDR_OFF     0x080
56#define PEDDR_OFF    0x084
57#define PESBSR_OFF   0x088
58#define PEEENR_OFF   0x08c
59#define PEESNR_OFF   0x090
60#define PEESTR_OFF   0x094
61#define PEIMR_OFF    0x098
62#define PEINT_OFF    0x09c
63
64/* Define the GPIO registers for use by device drivers and the kernel. */
65#define PADR   (*(volatile unsigned long *)(GPIO_BASE+PADR_OFF))
66#define PADDR  (*(volatile unsigned long *)(GPIO_BASE+PADDR_OFF))
67#define PASBSR (*(volatile unsigned long *)(GPIO_BASE+PASBSR_OFF))
68#define PAEENR (*(volatile unsigned long *)(GPIO_BASE+PAEENR_OFF))
69#define PAESNR (*(volatile unsigned long *)(GPIO_BASE+PAESNR_OFF))
70#define PAESTR (*(volatile unsigned long *)(GPIO_BASE+PAESTR_OFF))
71#define PAIMR  (*(volatile unsigned long *)(GPIO_BASE+PAIMR_OFF))
72#define PAINT  (*(volatile unsigned long *)(GPIO_BASE+PAINT_OFF))
73
74#define PBDR   (*(volatile unsigned long *)(GPIO_BASE+PBDR_OFF))
75#define PBDDR  (*(volatile unsigned long *)(GPIO_BASE+PBDDR_OFF))
76#define PBSBSR (*(volatile unsigned long *)(GPIO_BASE+PBSBSR_OFF))
77#define PBIMR  (*(volatile unsigned long *)(GPIO_BASE+PBIMR_OFF))
78#define PBINT  (*(volatile unsigned long *)(GPIO_BASE+PBINT_OFF))
79
80#define PCDR   (*(volatile unsigned long *)(GPIO_BASE+PCDR_OFF))
81#define PCDDR  (*(volatile unsigned long *)(GPIO_BASE+PCDDR_OFF))
82#define PCSBSR (*(volatile unsigned long *)(GPIO_BASE+PCSBSR_OFF))
83#define PCIMR  (*(volatile unsigned long *)(GPIO_BASE+PCIMR_OFF))
84#define PCINT  (*(volatile unsigned long *)(GPIO_BASE+PCINT_OFF))
85
86#define PDDR   (*(volatile unsigned long *)(GPIO_BASE+PDDR_OFF))
87#define PDDDR  (*(volatile unsigned long *)(GPIO_BASE+PDDDR_OFF))
88#define PDSBSR (*(volatile unsigned long *)(GPIO_BASE+PDSBSR_OFF))
89#define PDEENR (*(volatile unsigned long *)(GPIO_BASE+PDEENR_OFF))
90#define PDESNR (*(volatile unsigned long *)(GPIO_BASE+PDESNR_OFF))
91#define PDESTR (*(volatile unsigned long *)(GPIO_BASE+PDESTR_OFF))
92#define PDIMR  (*(volatile unsigned long *)(GPIO_BASE+PDIMR_OFF))
93#define PDINT  (*(volatile unsigned long *)(GPIO_BASE+PDINT_OFF))
94
95#define PEDR   (*(volatile unsigned long *)(GPIO_BASE+PEDR_OFF))
96#define PEDDR  (*(volatile unsigned long *)(GPIO_BASE+PEDDR_OFF))
97#define PESBSR (*(volatile unsigned long *)(GPIO_BASE+PESBSR_OFF))
98#define PEEENR (*(volatile unsigned long *)(GPIO_BASE+PEEENR_OFF))
99#define PEESNR (*(volatile unsigned long *)(GPIO_BASE+PEESNR_OFF))
100#define PEESTR (*(volatile unsigned long *)(GPIO_BASE+PEESTR_OFF))
101#define PEIMR  (*(volatile unsigned long *)(GPIO_BASE+PEIMR_OFF))
102#define PEINT  (*(volatile unsigned long *)(GPIO_BASE+PEINT_OFF))
103
104#define VEE_EN         0x02
105#define BACKLIGHT_EN   0x04
106