1 |
1276 |
phoenix |
#ifndef _INCLUDE_FRODO_H_
|
2 |
|
|
#define _INCLUDE_FRODO_H_
|
3 |
|
|
|
4 |
|
|
/*
|
5 |
|
|
* linux/include/asm-arm/arch-sa1100/frodo.h
|
6 |
|
|
*
|
7 |
|
|
* Author: Abraham van der Merwe <abraham@2d3d.co.za>
|
8 |
|
|
*
|
9 |
|
|
* This file contains the hardware specific definitions for 2d3D, Inc.
|
10 |
|
|
* SA-1110 Development Board.
|
11 |
|
|
*
|
12 |
|
|
* Only include this file from SA1100-specific files.
|
13 |
|
|
*
|
14 |
|
|
* This source code is free software; you can redistribute it and/or
|
15 |
|
|
* modify it under the terms of the GNU General Public License
|
16 |
|
|
* version 2 as published by the Free Software Foundation.
|
17 |
|
|
*
|
18 |
|
|
* History:
|
19 |
|
|
*
|
20 |
|
|
* 2002/07/17 Protect accesses to CPLD memory with a global lock
|
21 |
|
|
* to prevent races.
|
22 |
|
|
*
|
23 |
|
|
* 2002/06/25 PCMCIA support
|
24 |
|
|
*
|
25 |
|
|
* 2002/06/06 Added Real-Time Clock IRQ
|
26 |
|
|
* Added IRQs for UARTs
|
27 |
|
|
*
|
28 |
|
|
* 2002/05/20 Added I2C definitions
|
29 |
|
|
* Updated USB port definitions
|
30 |
|
|
* Removed scratchpad register
|
31 |
|
|
* Added definitions for second UART
|
32 |
|
|
*
|
33 |
|
|
* 2002/04/19 Added USB definitions
|
34 |
|
|
*
|
35 |
|
|
* 2002/04/17 Added flow control definitions for UART1
|
36 |
|
|
*
|
37 |
|
|
* 2002/03/14 Added ethernet reset definitions
|
38 |
|
|
*
|
39 |
|
|
* 2002/02/28 Ethernet (cs89x0) support
|
40 |
|
|
*
|
41 |
|
|
* 2002/02/27 IDE support
|
42 |
|
|
*
|
43 |
|
|
* 2002/02/22 Added some CPLD registers to control backlight and
|
44 |
|
|
* general purpose LEDs
|
45 |
|
|
*
|
46 |
|
|
* 2002/01/31 Initial version
|
47 |
|
|
*/
|
48 |
|
|
|
49 |
|
|
/* CPLD memory */
|
50 |
|
|
#define FRODO_CPLD_BASE 0x40000000
|
51 |
|
|
#define FRODO_CPLD_LENGTH 0x00100000
|
52 |
|
|
|
53 |
|
|
/* CPLD registers */
|
54 |
|
|
#define FRODO_CPLD_PCMCIA_COMMAND 0x00000
|
55 |
|
|
#define FRODO_CPLD_PCMCIA_STATUS 0x04000
|
56 |
|
|
#define FRODO_CPLD_IDE 0x08000
|
57 |
|
|
#define FRODO_CPLD_UART1 0x0c000
|
58 |
|
|
#define FRODO_CPLD_USB 0x10000
|
59 |
|
|
#define FRODO_CPLD_ETHERNET 0x14000
|
60 |
|
|
#define FRODO_CPLD_UART2 0x18000
|
61 |
|
|
#define FRODO_CPLD_GENERAL 0x04004
|
62 |
|
|
#define FRODO_CPLD_I2C 0x08004
|
63 |
|
|
|
64 |
|
|
/* functions to access those registers */
|
65 |
|
|
#ifndef __ASSEMBLY__
|
66 |
|
|
#include <linux/types.h>
|
67 |
|
|
extern u16 frodo_cpld_read (u32 reg);
|
68 |
|
|
extern void frodo_cpld_write (u32 reg,u16 value);
|
69 |
|
|
extern void frodo_cpld_set (u32 reg,u16 mask);
|
70 |
|
|
extern void frodo_cpld_clear (u32 reg,u16 mask);
|
71 |
|
|
#endif /* #ifndef __ASSEMBLY__ */
|
72 |
|
|
|
73 |
|
|
/* general command/status register */
|
74 |
|
|
#define FRODO_LCD_BACKLIGHT 0x0400 /* R/W */
|
75 |
|
|
#define FRODO_LED1 0x0100 /* R/W */
|
76 |
|
|
#define FRODO_LED2 0x0200 /* R/W */
|
77 |
|
|
#define FRODO_PUSHBUTTON 0x8000 /* R/O */
|
78 |
|
|
|
79 |
|
|
/* ethernet register */
|
80 |
|
|
#define FRODO_ETH_RESET 0x8000 /* R/W */
|
81 |
|
|
|
82 |
|
|
/* IDE related definitions */
|
83 |
|
|
#define FRODO_IDE_GPIO GPIO_GPIO23
|
84 |
|
|
#define FRODO_IDE_IRQ IRQ_GPIO23
|
85 |
|
|
#define FRODO_IDE_CTRL 0xf0038004
|
86 |
|
|
#define FRODO_IDE_DATA 0xf0020000
|
87 |
|
|
|
88 |
|
|
/* Ethernet related definitions */
|
89 |
|
|
#define FRODO_ETH_GPIO GPIO_GPIO20
|
90 |
|
|
#define FRODO_ETH_IRQ IRQ_GPIO20
|
91 |
|
|
#define FRODO_ETH_MEMORY 0xf0060000
|
92 |
|
|
#define FRODO_ETH_IO 0xf0070000
|
93 |
|
|
|
94 |
|
|
/* USB device controller */
|
95 |
|
|
#define FRODO_USB_DC_GPIO GPIO_GPIO19
|
96 |
|
|
#define FRODO_USB_DC_IRQ IRQ_GPIO19
|
97 |
|
|
#define FRODO_USB_DC_CTRL 0xf0040006
|
98 |
|
|
#define FRODO_USB_DC_DATA 0xf0040004
|
99 |
|
|
|
100 |
|
|
/* USB host controller */
|
101 |
|
|
#define FRODO_USB_HC_GPIO GPIO_GPIO18
|
102 |
|
|
#define FRODO_USB_HC_IRQ IRQ_GPIO18
|
103 |
|
|
#define FRODO_USB_HC_CTRL 0xf0040002
|
104 |
|
|
#define FRODO_USB_HC_DATA 0xf0040000
|
105 |
|
|
|
106 |
|
|
/* This UART supports all the funky things */
|
107 |
|
|
#define FRODO_UART1_RI 0x0100 /* R/O */
|
108 |
|
|
#define FRODO_UART1_DCD 0x0200 /* R/O */
|
109 |
|
|
#define FRODO_UART1_CTS 0x0400 /* R/O */
|
110 |
|
|
#define FRODO_UART1_DSR 0x0800 /* R/O */
|
111 |
|
|
#define FRODO_UART1_DTR 0x2000 /* R/W */
|
112 |
|
|
#define FRODO_UART1_RTS 0x4000 /* R/W */
|
113 |
|
|
#define FRODO_UART1_IRQEN 0x8000 /* R/W */
|
114 |
|
|
#define FRODO_UART1_GPIO GPIO_GPIO25
|
115 |
|
|
#define FRODO_UART1_IRQ IRQ_GPIO25
|
116 |
|
|
|
117 |
|
|
/* Console port. Only supports a subset of the control lines */
|
118 |
|
|
#define FRODO_UART2_IRQEN 0x0100 /* R/W */
|
119 |
|
|
#define FRODO_UART2_CTS 0x1000 /* R/O */
|
120 |
|
|
#define FRODO_UART2_RTS 0x8000 /* R/W */
|
121 |
|
|
#define FRODO_UART2_GPIO GPIO_GPIO24
|
122 |
|
|
#define FRODO_UART2_IRQ IRQ_GPIO24
|
123 |
|
|
|
124 |
|
|
/* USB command register */
|
125 |
|
|
#define FRODO_USB_HWAKEUP 0x2000 /* R/W */
|
126 |
|
|
#define FRODO_USB_DWAKEUP 0x4000 /* R/W */
|
127 |
|
|
#define FRODO_USB_NDPSEL 0x8000 /* R/W */
|
128 |
|
|
|
129 |
|
|
/* I2C adapter information */
|
130 |
|
|
#define FRODO_I2C_SCL_OUT 0x2000 /* R/W */
|
131 |
|
|
#define FRODO_I2C_SCL_IN 0x1000 /* R/O */
|
132 |
|
|
#define FRODO_I2C_SDA_OUT 0x8000 /* R/W */
|
133 |
|
|
#define FRODO_I2C_SDA_IN 0x4000 /* R/O */
|
134 |
|
|
|
135 |
|
|
/* Real-Time Clock */
|
136 |
|
|
#define FRODO_RTC_GPIO GPIO_GPIO14
|
137 |
|
|
#define FRODO_RTC_IRQ IRQ_GPIO14
|
138 |
|
|
|
139 |
|
|
/* PCMCIA command register */
|
140 |
|
|
#define FRODO_PCMCIA_RESET 0x0004 /* R/W */
|
141 |
|
|
#define FRODO_PCMCIA_VCC1 0x0008 /* R/W */
|
142 |
|
|
#define FRODO_PCMCIA_VCC0 0x0010 /* R/W */
|
143 |
|
|
#define FRODO_PCMCIA_VPP1 0x0020 /* R/W */
|
144 |
|
|
#define FRODO_PCMCIA_VPP0 0x0040 /* R/W */
|
145 |
|
|
#define FRODO_PCMCIA_CLEAR 0x0080 /* R/W */
|
146 |
|
|
|
147 |
|
|
/* PCMCIA status register */
|
148 |
|
|
#define FRODO_PCMCIA_VS1 0x0001 /* R/O */
|
149 |
|
|
#define FRODO_PCMCIA_VS2 0x0002 /* R/O */
|
150 |
|
|
#define FRODO_PCMCIA_BVD1 0x0004 /* R/O */
|
151 |
|
|
#define FRODO_PCMCIA_BVD2 0x0008 /* R/O */
|
152 |
|
|
#define FRODO_PCMCIA_CD1 0x0010 /* R/O */
|
153 |
|
|
#define FRODO_PCMCIA_CD2 0x0020 /* R/O */
|
154 |
|
|
#define FRODO_PCMCIA_RDYBSY 0x0040 /* R/O */
|
155 |
|
|
|
156 |
|
|
/* PCMCIA interrupts */
|
157 |
|
|
#define FRODO_PCMCIA_STATUS_GPIO GPIO_GPIO10
|
158 |
|
|
#define FRODO_PCMCIA_STATUS_IRQ IRQ_GPIO10
|
159 |
|
|
#define FRODO_PCMCIA_RDYBSY_GPIO GPIO_GPIO11
|
160 |
|
|
#define FRODO_PCMCIA_RDYBSY_IRQ IRQ_GPIO11
|
161 |
|
|
|
162 |
|
|
#endif /* _INCLUDE_FRODO_H_ */
|