1 |
1276 |
phoenix |
/* -*- Mode: c++ -*-
|
2 |
|
|
*
|
3 |
|
|
* Copyright 2000 Massachusetts Institute of Technology
|
4 |
|
|
*
|
5 |
|
|
* Permission to use, copy, modify, distribute, and sell this software and its
|
6 |
|
|
* documentation for any purpose is hereby granted without fee, provided that
|
7 |
|
|
* the above copyright notice appear in all copies and that both that
|
8 |
|
|
* copyright notice and this permission notice appear in supporting
|
9 |
|
|
* documentation, and that the name of M.I.T. not be used in advertising or
|
10 |
|
|
* publicity pertaining to distribution of the software without specific,
|
11 |
|
|
* written prior permission. M.I.T. makes no representations about the
|
12 |
|
|
* suitability of this software for any purpose. It is provided "as is"
|
13 |
|
|
* without express or implied warranty.
|
14 |
|
|
*
|
15 |
|
|
*/
|
16 |
|
|
|
17 |
|
|
#ifndef OMNIMETER_H
|
18 |
|
|
#define OMNIMETER_H
|
19 |
|
|
// use the address of the second socket for both sockets
|
20 |
|
|
// (divide address space in half and use offsets to wrap second card accesses back to start of address space)
|
21 |
|
|
// Following values for programming Cirrus Logic chip
|
22 |
|
|
#define Socket1Base 0x40
|
23 |
|
|
|
24 |
|
|
#define SocketMemoryWindowLen (0x00400000)
|
25 |
|
|
#define Socket0MemoryWindowStart (0x00800000)
|
26 |
|
|
#define Socket1MemoryWindowStart (Socket0MemoryWindowStart + SocketMemoryWindowLen)
|
27 |
|
|
|
28 |
|
|
#define SocketIOWindowLen (0x00008000)
|
29 |
|
|
#define Socket1IOWindowStart (SocketIOWindowLen)
|
30 |
|
|
#define Socket1IOWindowOffset (0x00010000 - Socket1IOWindowStart)
|
31 |
|
|
|
32 |
|
|
// Following values for run-time access
|
33 |
|
|
|
34 |
|
|
//#define PCCardBase (0xe4000000) //jca (0x30000000)
|
35 |
|
|
//#define PCCardBase (0x30000000)
|
36 |
|
|
#define PCCardBase (0xe0000000) //jag
|
37 |
|
|
|
38 |
|
|
#define PCCard0IOBase (PCCardBase)
|
39 |
|
|
//#define PCCard0AttrBase (0xec000000) //jca (PCCardBase + 0x08000000)
|
40 |
|
|
#define PCCard0AttrBase (0xe8000000)
|
41 |
|
|
//#define PCCard0AttrBase (PCCardBase + 0x08000000)
|
42 |
|
|
//#define PCCard0MemBase (0xf4000000) //jca (PCCardBase + 0x0C000000)
|
43 |
|
|
//#define PCCard0MemBase (PCCardBase + 0x0C000000)
|
44 |
|
|
#define PCCard0MemBase (0xf0000000)
|
45 |
|
|
|
46 |
|
|
//#define PCCard1IOBase (PCCardBase + SocketIOWindowLen) //jag
|
47 |
|
|
#define PCCard1IOBase (0xe4000000)
|
48 |
|
|
//#define PCCard1AttrBase (0xec000000 + SocketMemoryWindowLen) //jag
|
49 |
|
|
#define PCCard1AttrBase (0xec000000)
|
50 |
|
|
//#define PCCard1MemBase (0xf4000000 + SocketMemoryWindowLen) //jag
|
51 |
|
|
#define PCCard1MemBase (0xf4000000)
|
52 |
|
|
|
53 |
|
|
#define PCCardIndexRegister (PCCard0IOBase + 0x000003E0) //altered
|
54 |
|
|
#define PCCardDataRegister (PCCardIndexRegister + 1)
|
55 |
|
|
|
56 |
|
|
/* interrupts */
|
57 |
|
|
#define PIN_cardInt2 13
|
58 |
|
|
#define PIN_cardInt1 5
|
59 |
|
|
|
60 |
|
|
void SMBOn(unsigned char SMBaddress);
|
61 |
|
|
void SetSMB(unsigned char SMBaddress, unsigned int dacValue);
|
62 |
|
|
|
63 |
|
|
#define GPIO_key6 0x00040000
|
64 |
|
|
#define GPIO_scl 0x01000000 // output, SMB clock
|
65 |
|
|
#define GPIO_sda 0x02000000 // bidirect, SMB data
|
66 |
|
|
#define SMB_LCDVEE 0x2C
|
67 |
|
|
#define DefaultLCDContrast 16
|
68 |
|
|
|
69 |
|
|
#define LEDBacklightOn() ClearGPIOpin(GPIO_key6)
|
70 |
|
|
#define LEDBacklightOff() SetGPIOpin(GPIO_key6)
|
71 |
|
|
#define LCDPowerOn() SMBOn(SMB_LCDVEE)
|
72 |
|
|
#define LCDPowerOff() SMBOff(SMB_LCDVEE)
|
73 |
|
|
#define SetLCDContrast(d) SetSMB(SMB_LCDVEE, d)
|
74 |
|
|
#define WritePort32(port,value) (port = (value))
|
75 |
|
|
#define ReadPort32(port) (port)
|
76 |
|
|
#define SetGPIOpin(pin) WritePort32(GPSR,pin)
|
77 |
|
|
#define ClearGPIOpin(pin) WritePort32(GPCR,pin)
|
78 |
|
|
|
79 |
|
|
void jcaoutb(long p, unsigned char data);
|
80 |
|
|
unsigned char jcainb(long p);
|
81 |
|
|
void jcaoutw(long p, unsigned short data);
|
82 |
|
|
unsigned short jcainw_p(long p);
|
83 |
|
|
|
84 |
|
|
#endif
|