]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/hal/arm/edb7xxx/v2_0/include/hal_edb7xxx.h
Initial revision
[karo-tx-redboot.git] / packages / hal / arm / edb7xxx / v2_0 / include / hal_edb7xxx.h
1 #ifndef CYGONCE_HAL_EDB7XXX_H
2 #define CYGONCE_HAL_EDB7XXX_H
3
4 /*=============================================================================
5 //
6 //      hal_edb7xxx.h
7 //
8 //      HAL Support for Kernel Diagnostic Routines
9 //
10 //=============================================================================
11 //####ECOSGPLCOPYRIGHTBEGIN####
12 // -------------------------------------------
13 // This file is part of eCos, the Embedded Configurable Operating System.
14 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
15 //
16 // eCos is free software; you can redistribute it and/or modify it under
17 // the terms of the GNU General Public License as published by the Free
18 // Software Foundation; either version 2 or (at your option) any later version.
19 //
20 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
21 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
22 // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
23 // for more details.
24 //
25 // You should have received a copy of the GNU General Public License along
26 // with eCos; if not, write to the Free Software Foundation, Inc.,
27 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
28 //
29 // As a special exception, if other files instantiate templates or use macros
30 // or inline functions from this file, or you compile this file and link it
31 // with other works to produce a work based on this file, this file does not
32 // by itself cause the resulting work to be covered by the GNU General Public
33 // License. However the source code for this file must still be made available
34 // in accordance with section (3) of the GNU General Public License.
35 //
36 // This exception does not invalidate any other reasons why a work based on
37 // this file might be covered by the GNU General Public License.
38 //
39 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
40 // at http://sources.redhat.com/ecos/ecos-license/
41 // -------------------------------------------
42 //####ECOSGPLCOPYRIGHTEND####
43 //=============================================================================
44 //#####DESCRIPTIONBEGIN####
45 //
46 // Author(s):    gthomas
47 // Contributors: gthomas
48 // Date:         1999-04-19
49 // Purpose:      Cirrus Logic EDB7XXX hardware description
50 // Description:
51 // Usage:        #include <cyg/hal/hal_edb7xxx.h>
52 //
53 //####DESCRIPTIONEND####
54 //
55 //===========================================================================*/
56
57 // Note: these defintions match the documentation, thus no attempt is made
58 // to sanitise (mangle) the names.  Also, care should be taken to keep this
59 // clean for use in assembly code (no "C" constructs).
60
61 // Comment above notwithstanding, this is needed for the clock UART_DIVISOR
62 // selection below.
63 #include <pkgconf/hal_arm_edb7xxx.h>
64
65 #define PADR    0x80000000 // Port A data register
66 #define PBDR    0x80000001 // Port B data register
67 #define PDDR    0x80000003 // Port D data register
68 #define PADDR   0x80000040 // Port A data direction register
69 #define PBDDR   0x80000041 // Port B data direction register
70 #define PDDDR   0x80000043 // Port D data direction register
71 #define PEDR    0x80000080 // Port E data register
72 #define PEDDR   0x800000C0 // Port E data direction register
73
74 #define SYSCON1 0x80000100 // System control register #1
75 #define SYSCON1_KBD_CTL     0xF // Keyboard scan - mask
76 #define SYSCON1_KBD_HIGH      0 // Keyboard scan - all columns high
77 #define SYSCON1_KBD_LOW       1 // Keyboard scan - all columns low
78 #define SYSCON1_KBD_TRISTATE  2 // Keyboard scan - all columns tri-state
79 #define SYSCON1_KBD_COL(n) (n+8)// Keyboard scan - select column 'n'
80 #define SYSCON1_TC1M    (1<<4)  // Timer/counter #1 - prescale mode
81 #define SYSCON1_TC1S    (1<<5)  // Timer/counter #1 - source (1=512KHz,0=2KHz)
82 #define SYSCON1_TC2M    (1<<6)  // Timer/counter #2 - prescale mode
83 #define SYSCON1_TC2S    (1<<7)  // Timer/counter #2 - source (1=512KHz,0=2KHz)
84 #define SYSCON1_UART1EN (1<<8)  // UART #1 enable
85 #define SYSCON1_BZTOG   (1<<9)  // Buzzer bit
86 #define SYSCON1_BZMOD   (1<<10) // Buzzer mode (0=direct,1=TC1)
87 #define SYSCON1_DBGEN   (1<<11) // Enable debug mode
88 #define SYSCON1_LCDEN   (1<<12) // Enable LCD
89 #define SYSCON1_CDENTX  (1<<13) // Enable Tx on CODEC
90 #define SYSCON1_CDENRX  (1<<14) // Enable Rx on CODEC
91 #define SYSCON1_SIREN   (1<<15) // Enable SIR protocol on UART #1
92 #define SYSCON1_ADCKSEL (3<<16) // Microwire clock
93 #define SYSCON1_ADC_CLOCK_4kHZ    (0<<16)
94 #define SYSCON1_ADC_CLOCK_16kHZ   (1<<16)
95 #define SYSCON1_ADC_CLOCK_64kHZ   (2<<16)
96 #define SYSCON1_ADC_CLOCK_128kHZ  (3<<16)
97 #define SYSCON1_EXCKEN  (1<<18) // External expansion clock enable
98 #define SYSCON1_WAKEDIS (1<<19) // Disable wakeup from snooze (do not disturb)
99 #define SYSCON1_IRTXM   (1<<20) // IrDA Tx mode
100
101 #define SYSCON2 0x80001100 // System control register #2
102 #define SYSCON2_SERSEL  (1<<0)  // 0=master/slave SSI, 1=CODEC
103 #define SYSCON2_KBD6    (1<<1)  // 0=8 bit keyboard, 1=6 bit
104 #define SYSCON2_DRAMSZ  (1<<2)  // DRAM width 0=32, 1=16
105 #define SYSCON2_KBWEN   (1<<3)  // 1=allow wake up from keyboard
106 #define SYSCON2_SS2TXEN (1<<4)  // Enable Tx on SS2
107 #define SYSCON2_PCMCIA1 (1<<5)  // Enable PCMCIA slot #1
108 #define SYSCON2_PCMCIA2 (1<<6)  // Enable PCMCIA slot #2
109 #define SYSCON2_SS2RXEN (1<<7)  // Enable Rx on SS2
110 #define SYSCON2_UART2EN (1<<8)  // Enable UART #2
111 #define SYSCON2_SS2MAEN (1<<9)  // Enable master mode on SS2
112 #define SYSCON2_SNZPOL  (1<<10) // Polarity of LCD during snooze
113 #define SYSCON2_LCDSNZE (1<<11)
114 #define SYSCON2_OSTB    (1<<12) // Operating system timing 0=512KHz, 1=500KHz
115 #define SYSCON2_CLKENSL (1<<13) // Source of run/clken signal 0=CLKEN, 1=RUN
116 #define SYSCON2_BUZFREQ (1<<14) // Buzzer frequency 0=timer, 1=fixed PLL/xtal
117
118 #define SYSCON3 0x80002200 // System control #3
119 #define SYSCON3_ADCCON    (1<<0) // ADC enable
120 #define SYSCON3_CLKCTL(n) (n<<1) // Processor block speed ((n+1)*18.432)MHz
121 #if defined(__EDB7209)
122 #define SYSCON3_I2SSEL    (1<<3) // Enable i2s instead of ssi#2
123 #define SYSCON3_FASTWAKE  (1<<8) // Determines wakeup in relationship
124                                  //    to the 4 kHZ or 8 Hz clock
125 #define SYSCON3_DAIEN     (1<<9) // Enables the DAI
126 #endif
127 #if defined(__EDB7312) || defined(__EDB7209)
128 #define SYSCON3_ADCCKNSEN    (1<<4)  // Determines on which edge ADC
129                                      // data is transmitted and read
130                                      // in relationship to ADCCLK
131 #if defined(__EDB7312)
132 #define SYSCON3_DAISEL    (1<<3)  // Enable DAI instead of SSI
133 #define SYSCON3_128FS     (1<<9)  // Select DAI frame size
134 #define SYSCON3_ENPD67    (1<<10) // Configures Port D bits 6 and 7
135 #endif
136 #endif
137
138 #define SYSFLG1 0x80000140 // System flags #1
139 #define SYSFLG1_MCDR     (1<<0) // Media changed - direct read
140 #define SYSFLG1_DCDET    (1<<1) // 0=mains power, 1=battery
141 #define SYSFLG1_WUDR     (1<<2) // Wakeup direct
142 #define SYSFLG1_WUON     (1<<3) // Woken up
143 #define SYSFLG1_DID      (0xF<<4) // Display ID
144 #define SYSFLG1_CTS      (1<<8) // UART1 CTS
145 #define SYSFLG1_DSR      (1<<9) // UART1 DSR
146 #define SYSFLG1_DCD      (1<<10) // UART1 DCD
147 #define SYSFLG1_UBUSY1   (1<<11) // UART1 Tx busy
148 #define SYSFLG1_NBFLG    (1<<12) // New battery flag
149 #define SYSFLG1_RSTFLG   (1<<13) // Reset (button) flag
150 #define SYSFLG1_PFFLG    (1<<14) // Power fail flag
151 #define SYSFLG1_CLDFLG   (1<<15) // Cold start flag
152 #define SYSFLG1_RTCDIV   (0x3F<<16) // Real time clock divider (counter)
153 #define SYSFLG1_URXFE1   (1<<22) // UART1 Rx FIFO empty
154 #define SYSFLG1_UTXFF1   (1<<23) // UART1 Tx FIFO full
155 #define SYSFLG1_CRXFE    (1<<24) // CODEC Rx FIFO empty
156 #define SYSFLG1_CTXFF    (1<<25) // CODEC Tx FIFO full
157 #define SYSFLG1_SSIBUSY  (1<<26) // Synchronous serial interface busy
158 #define SYSFLG1_BOOTBITS (3<<27) // Boot mode (0=32,1=8,2=16,3=XX)
159 #define SYSFLG1_ID       (1<<29) // ID=1
160 #define SYSFLG1_VERID    (3<<30) // Board version
161
162 #define SYSFLG2 0x80001140 // System flags #2
163
164 #ifdef __EDB7312
165 #define SDCONF 0x80002300  // SDRAM configuration
166 #define SDRFOR 0x80002340  // SDRAM refresh
167 #endif
168
169 #define INTSR1  0x80000240 // Interrupt status register #1
170 #define INTSR1_EXTFIQ  (1<<0)  // External fast interrupt
171 #define INTSR1_BLINT   (1<<1)  // Battery low interrupt
172 #define INTSR1_WEINT   (1<<2)  // Watchdog expired interrupt
173 #define INTSR1_MCINT   (1<<3)  // Media changed interrupt
174 #define INTSR1_CSINT   (1<<4)  // CODEC sound interrupt
175 #define INTSR1_EINT1   (1<<5)  // External interrupt #1
176 #define INTSR1_EINT2   (1<<6)  // External interrupt #2
177 #define INTSR1_EINT3   (1<<7)  // External interrupt #3
178 #define INTSR1_TC1OI   (1<<8)  // Timer/counter #1 underflow
179 #define INTSR1_TC2OI   (1<<9)  // Timer/counter #2 underflow
180 #define INTSR1_RTCMI   (1<<10) // Real time clock match
181 #define INTSR1_TINT    (1<<11) // 64Hz tick
182 #define INTSR1_UTXINT1 (1<<12) // UART1 Tx interrupt
183 #define INTSR1_URXINT1 (1<<13) // UART1 Rx interrupt
184 #define INTSR1_UMSINT  (1<<14) // UART1 modem line change
185 #define INTSR1_SSEOTI  (1<<15) // Synchronous serial end of transfer
186 #define INTMR1  0x80000280 // Interrupt mask register #1
187
188 #define INTSR2  0x80001240 // Interrupt status #2
189 #define INTSR2_KBDINT  (1<<0)  // Keyboard interrupt
190 #define INTSR2_SS2RX   (1<<1)  // Synchronous serial #2 Rx
191 #define INTSR2_SS2TX   (1<<2)  // Synchronous serial #2 Tx
192 #define INTSR2_UTXINT2 (1<<12) // UART #2 Tx interrupt
193 #define INTSR2_URXINT2 (1<<13) // UART #2 Rx interrupt
194 #define INTMR2  0x80001280 // Interrupt mask #2
195
196 #define INTSR3  0x80002240 // Interrupt status #3
197 #if defined(__EDB7211)
198 #define INTSR3_MCPINT (1<<0) // MCP interrupt
199 #endif
200 #if defined(__EDB7209)
201 #define INTSR3_I2SINT (1<<0) // I2S interface interrupt
202 #endif
203 #if defined(__EDB7312)
204 #define INTSR3_DAIINT (1<<0) // DAI interface interrupt
205 #endif
206 #define INTMR3  0x80002280 // Interrupt mask #3
207
208 #define UARTDR1 0x80000480 // UART #1 data register
209 #define UARTDR2 0x80001480 // UART #2 data register
210 #define UBLCR1  0x800004C0 // UART #1 baud rate / line control
211 #define UBLCR2  0x800014C0 // UART #2 baud rate / line control
212 #define UBLCR_BRDV    0xFFF   // Baud rate
213 #define UBLCR_BREAK   (1<<12) // Generate break signal
214 #define UBLCR_PRTEN   (1<<13) // Enable parity
215 #define UBLCR_EVENPRT (1<<14) // 1=even parity, 0=odd
216 #define UBLCR_XSTOP   (1<<15) // 0=1 stop bit, 1=2 stop bits
217 #define UBLCR_FIFOEN  (1<<16) // Enable Tx/Rx FIFOs
218 #define UBLCR_WRDLEN  (3<<17) // Word (character) length field
219 #define UBLCR_WRDLEN5 (0<<17)
220 #define UBLCR_WRDLEN6 (1<<17)
221 #define UBLCR_WRDLEN7 (2<<17)
222 #define UBLCR_WRDLEN8 (3<<17)
223 #define UART_DIVISOR  230400
224 #define UART_BITRATE(baud) ((UART_DIVISOR/(baud))-1)
225 #if 90317 == CYGHWR_HAL_ARM_EDB7XXX_PROCESSOR_CLOCK
226 #undef UART_DIVISOR
227 // The speed enhancement is 22.5%
228 #define UART_DIVISOR  (230400 * 1225/1000)
229 #endif
230
231 #define MEMCFG1 0x80000180 // Memory configuration register #1
232 #define MEMCFG2 0x800001C0 // Memory configuration register #2
233
234 #define DRFPR   0x80000200 // DRAM refresh period
235
236 #define LCDCON                0x800002C0  // LDC control
237 #define LCDCON_BUFSIZ         0x00001FFF  // Video buffer size
238 #define LCDCON_BUFSIZ_S       0           // Position of buffer size
239 #define LCDCON_LINE_LENGTH    0x0007E000  // Line length
240 #define LCDCON_LINE_LENGTH_S  13          // Position of line length
241 #define LCDCON_PIX_PRESCALE   0x01F80000  // Pixel prescale value
242 #define LCDCON_PIX_PRESCALE_S 19          // Position of prescale value
243 #define LCDCON_AC_PRESCALE    0x3E000000  // LCD AC bias frequency
244 #define LCDCON_AC_PRESCALE_S  25          // Position to AC bias
245 #define LCDCON_GSEN           0x40000000  // Enable greyscale
246 #define LCDCON_GSMD           0x80000000  // Greyscale mode
247                                           // 00 - 1bpp, 01 - 2bpp, 11 - 4 bpp
248
249 #define TC1D    0x80000300 // Timer/Counter #1 register
250 #define TC2D    0x80000340 // Timer/Counter #2 register
251 #define RTCDR   0x80000380 // Real time clock data register
252 #define RTCMR   0x800003C0 // Real time clock match register
253
254 #define PMPCON  0x80000400 // DC-DC pump control
255
256 #define CODR    0x80000440 // CODEC data register
257
258 #define SYNCIO  0x80000500 // Synchronous I/O data register
259
260 #define PALLSW  0x80000540 // LCD palette - LSW (Pixel values 0..7)
261 #define PALMSW  0x80000580 // LCD palette - MSW (Pixel values 8..15)
262
263 #define STFCLR  0x800005C0 // Clear startup reason flags
264 #define BLEOI   0x80000600 // Clear battery low interrupt
265 #define MCEOI   0x80000640 // Clear media changed interrupt
266 #define TEOI    0x80000680 // Clear tick/watchdog interrupt
267 #define TC1EOI  0x800006C0 // Clear timer/counter #1 interrupt
268 #define TC2EOI  0x80000700 // Clear timer/counter #2 interrupt
269 #define RTCEOI  0x80000740 // Clear real time clock interrupt
270 #define UMSEOI  0x80000780 // Clear UART modem status change interrupt
271 #define COEOI   0x800007C0 // Clear CODEC sound interrupt
272
273 #define HALT    0x80000800 // Enter 'idle' state
274 #define STDBY   0x80000840 // Enter 'standby' state
275
276 #define FRBADDR 0x80001000 // LCD frame buffer start
277
278 #define SNZDISP 0x800012C0 // Snooze display size
279
280 #define SS2DR   0x80001500 // Master/slave SSI2 register
281
282 #define SRXEOF  0x80001600 // Clear Rx FIFO overflow flag
283 #define SS2POP  0x800016C0 // Pop SSI2 residual byte into FIFO
284
285 #define KBDEOI  0x80001700 // Clear keyboard interrupt
286
287 #define SNOOZE  0x80001800 // Enter 'snooze' state
288
289 #if defined(__EDB7211)
290 #define MCCR    0x80002000 // MCP control register
291 #define MCDR0   0x80002040 // MCP data register #0
292 #define MCDR1   0x80002080 // MCP data register #1
293 #define MCDR2   0x800020C0 // MCP data register #2
294 #define MCSR    0x80002100 // MCP status register
295 #endif
296
297 #if defined(__EDB7209) || \
298 defined(__EDB7312) || \
299 1
300
301 #define I2S_CTL         0x80002000 // I2S (Audio interface) control
302 #define I2S_CTL_FLAG    0x0404     // Magic
303 #define I2S_CTL_EN      (1<<16)    // Enable interface
304 #define I2S_CTL_ECS     (1<<17)    // External clock select
305 #define I2S_CTL_LCTM    (1<<19)    // Left channel transmit interrupt
306 #define I2S_CTL_LCRM    (1<<20)    // Left channel receive interrupt
307 #define I2S_CTL_RCTM    (1<<21)    // Right channel transmit interrupt
308 #define I2S_CTL_RCRM    (1<<22)    // Right channel receive interrupt
309 #if defined(__EDB7209)
310 #define I2S_CTL_LBM     (1<<23)    // Loop-back mode
311 #endif
312 #define I2S_RIGHT_FIFO  0x80002040 // Right channel FIFO access
313 #define I2S_LEFT_FIFO   0x80002080 // Left channel FIFO access
314 #define I2S_FIFO_CTL    0x800020C0 // FIFO control
315 #define I2S_FIFO_CTL_RIGHT_ENABLE  0x00118000
316 #define I2S_FIFO_CTL_RIGHT_DISABLE 0x00110000
317 #define I2S_FIFO_CTL_LEFT_ENABLE   0x000D8000
318 #define I2S_FIFO_CTL_LEFT_DISABLE  0x000D0000
319 #define I2S_STAT        0x80002100 // I2S interface status
320 #define I2S_STAT_RCTSR  (1<<0)     // Right channel transmit service request
321 #define I2S_STAT_RCRSR  (1<<1)     // Right channel receive service request
322 #define I2S_STAT_LCTSR  (1<<2)     // Left channel transmit service request
323 #define I2S_STAT_LCRSR  (1<<3)     // Left channel receive service request
324 #define I2S_STAT_RCTUR  (1<<4)     // Right channel transmit FIFO underrun
325 #define I2S_STAT_RCROR  (1<<5)     // Right channel receive FIFO overrun
326 #define I2S_STAT_LCTUR  (1<<6)     // Left channel transmit FIFO underrun
327 #define I2S_STAT_LCROR  (1<<7)     // Left channel receive FIFO overrun
328 #define I2S_STAT_RCTNF  (1<<8)     // Right channel transmit FIFO not full
329 #define I2S_STAT_RCRNE  (1<<9)     // Right channel receive FIFO not empty
330 #define I2S_STAT_LCTNF  (1<<10)    // Left channel transmit FIFO not full
331 #define I2S_STAT_LCRNE  (1<<11)    // Left channel receive FIFO not empty
332 #define I2S_STAT_FIFO   (1<<12)    // A FIFO operation has completed
333 #endif
334
335 #ifdef __EDB7312
336 // If DAI_ headers wishes to be used instead (for consistency)
337 #define DAI_CTL       I2S_CTL
338 #define DAI_CTL_FLAG  I2S_CTL_FLAG
339 #define DAI_CTL_EN    I2S_CTL_EN
340 #define DAI_CTL_ECS   I2S_CTL_ECS
341 #define DAI_CTL_LCTM  I2S_CTL_LCTM
342 #define DAI_CTL_LCRM  I2S_CTL_LCRM
343 #define DAI_CTL_RCTM  I2S_CTL_RCTM
344 #define DAI_CTL_RCRM  I2S_CTL_RCRM
345
346 #define DAI_RIGHT_FIFO  I2S_RIGHT_FIFO
347 #define DAI_LEFT_FIFO   I2S_LEFT_FIFO
348
349 #define DAI_FIFO_CTL                I2S_FIFO_CTL
350 #define DAI_FIFO_CTL_RIGHT_ENABLE   I2S_FIFO_CTL_RIGHT_ENABLE
351 #define DAI_FIFO_CTL_RIGHT_DISABLE  I2S_FIFO_CTL_RIGHT_DISABLE
352 #define DAI_FIFO_CTL_LEFT_ENABLE    I2S_FIFO_CTL_LEFT_ENABLE
353 #define DAI_FIFO_CTL_LEFT_DISABLE   I2S_FIFO_CTL_LEFT_DISABLE
354
355 #define DAI_STAT        I2S_STAT
356 #define DAI_STAT_RCTSR  I2S_STAT_RCTSR
357 #define DAI_STAT_RCRSR  I2S_STAT_RCRSR
358 #define DAI_STAT_LCTSR  I2S_STAT_LCTSR
359 #define DAI_STAT_LCRSR  I2S_STAT_LCRSR
360 #define DAI_STAT_RCTUR  I2S_STAT_RCTUR
361 #define DAI_STAT_RCROR  I2S_STAT_RCROR
362 #define DAI_STAT_LCTUR  I2S_STAT_LCTUR
363 #define DAI_STAT_LCROR  I2S_STAT_LCROR
364 #define DAI_STAT_RCTNF  I2S_STAT_RCTNF
365 #define DAI_STAT_RCRNE  I2S_STAT_RCRNE
366 #define DAI_STAT_LCTNF  I2S_STAT_LCTNF
367 #define DAI_STAT_LCRNE  I2S_STAT_LCRNE
368 #define DAI_STAT_FIFO   I2S_STAT_FIFO
369
370 // Additional 7312 register
371 #define DAI_MODE        0x80002600  // I2S mode control register
372 #define DAI_MODE_I2SF64  (1<<0)     // Frame size
373 #define DAI_MODE_CLKEN   (1<<1)     // Enable audio clock generator
374 #define DAI_MODE_CLKSRC  (1<<2)     // Select audio clock source
375 #define DAI_MODE_MCLK    (1<<3)     // Enables MCLK (BUZ) (256 frame size)
376 #define DAI_MODE_LBM     (1<<5)     // Loopback mode
377
378 #define DAI_MODE_AUDDIV_MASK  0x7F00  // Mask for the frequency divisor
379                                       //    for the sample frequency and
380                                       //    bit clock
381
382 #define SYSCON3_I2SSEL SYSCON3_DAISEL  // Backward compatiblity
383                                        //    for sample i2s_audio_fiq.s
384
385 #define INTSR3_I2SINT INTSR3_DAIINT  // Backward compatiblity
386                                      //    for sample i2s_audio_fiq.s
387
388
389 // Further additional 7312 register for special 90MHz variant:
390 // PLL_Multiplier_Register 0x80002610  - the location of the PLL multiplier register
391 // Value_For_90_MHz_Operation 0x31000000
392 #define EP7312_PLL_MR            0x80002610
393 #define EP7312_PLL_MR_FOR_90MHz  0x31000000
394
395 #endif
396
397 #define LEDFLSH 0x800022C0 // LED flash control
398 #define LEDFLSH_ENABLE      (1<<6)      // LED enabled
399 #define LEDFLSH_DUTY(n)     ((n-1)<<2)  // LED on ratio
400 #define LEDFLSH_PERIOD(n)   (n-1)       // LED active time (1..4)
401
402 #define KBD_PORT 0x30010000 // Extra 8 bits of keyboard data
403
404 /*---------------------------------------------------------------------------*/
405 /* end of hal_edb7xxx.h                                                         */
406 #endif /* CYGONCE_HAL_EDB7XXX_H */