-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfastgpioomega2.h
67 lines (52 loc) · 1.75 KB
/
fastgpioomega2.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#ifndef _FAST_GPIO_OMEGA2_H_
#define _FAST_GPIO_OMEGA2_H_
#include "fastgpio.h"
//Define Macros in derived class.
#define REG_BLOCK_ADDR 0x10000000
#define REG_BLOCK_SIZE 0x6AC
//DIRECTION CONTROL REGISTERS
//GPIO_CTRL_0 10000600(Directions for GPIO0-GPIO31)
#define REGISTER_CTRL0_OFFSET 384
//GPIO_CTRL_1 10000604(Directions for GPIO32-GPIO63)
#define REGISTER_CTRL1_OFFSET 385
//GPIO_CTRL_2 10000608(Directions for GPIO64-GPIO95)
#define REGISTER_CTRL2_OFFSET 386
//DATA REGISTERS: STATES OF GPIOS
//GPIO_DATA_0 10000620(GPIO0-31)
#define REGISTER_DATA0_OFFSET 392
//GPIO_DATA_1 10000624(GPIO32-63)
#define REGISTER_DATA1_OFFSET 393
//GPIO_DATA_2 10000628(GPIO64-95)
#define REGISTER_DATA2_OFFSET 394
//DATA SET REGISTERS: SET STATES OF GPIO_DATA_x registers
//GPIO_DSET_0 10000630(GPIO0-31)
#define REGISTER_DSET0_OFFSET 396
//GPIO_DSET_1 10000634(GPIO31-63)
#define REGISTER_DSET1_OFFSET 397
//GPIO_DSET_2 10000638(GPIO64-95)
#define REGISTER_DSET2_OFFSET 398
//DATA CLEAR REGISTERS: CLEAR BITS OF GPIO_DATA_x registers
//GPIO_DCLR_0 10000640(GPIO0-31)
#define REGISTER_DCLR0_OFFSET 400
//GPIO_DCLR_1 10000644(GPIO31-63)
#define REGISTER_DCLR1_OFFSET 401
//GPIO_DCLR_2 10000648(GPIO64-95)
#define REGISTER_DCLR2_OFFSET 402
class FastGpioOmega2 : public FastGpio {
public:
FastGpioOmega2(void);
~FastGpioOmega2(void);
int SetDirection (int pinNum, int bOutput);
int GetDirection (int pinNum, int &bOutput);
int Set (int pinNum, int value);
int Read (int pinNum, int &value);
private:
// private functions
int pinNumber;
int ctrlOffset;
int dataOffset;
int dataSetOffset;
int dataClrOffset;
void setGpioOffset(int gpio);//Populates the offset private members above depending on selected GPIO
};
#endif // _FAST_GPIO_OMEGA2_H_