-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgpio_defines.h
58 lines (46 loc) · 1.88 KB
/
gpio_defines.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
/*
* gpio_defines.h
*
* Created on: 1 nov. 2017
* Author: Kenneth
*/
#ifndef GPIO_DEFINES_H_
#define GPIO_DEFINES_H_
#define GPIO_BASE_ADDRESS (0x3F200000)
// GPIO's: 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
#define GPIO_ACCESSABLE_MASK (0b00111111111111111111111111110000)
/* This section states the offset for the corresponding register when using 32 bit pointers (offset 1 is 4 bytes further than base) */
// function select register
#define REG_OFFSET_ALT_FUNC 0 // 0x3F200000
// function select functions (can have different meanings depending on which register/io is used)
#define FSEL_INPUT 0
#define FSEL_OUTPUT 1
#define FSEL_ALT_0 4
#define FSEL_ALT_1 5
#define FSEL_ALT_2 6
#define FSEL_ALT_3 7
#define FSEL_ALT_4 3
#define FSEL_ALT_5 2
// output state registers
#define REG_OFFSET_GPIO_SET 7 // 0x3F20001C
#define REG_OFFSET_GPIO_CLEAR 10 // 0x3F200028
// input state registers
#define REG_OFFSET_GPIO_READ 13 // 0x3F200034
// event state registers
#define REG_OFFSET_GPIO_EVENT 16 // 0x3F200040
// edge detection enable register offsets (event reg will be set when detected)
#define REG_OFFSET_GPIO_REDGE_EN 19 // 0x3F20004C
#define REG_OFFSET_GPIO_FEDGE_EN 22 // 0x3F200058
// level detection enable register offsets (event reg will be set when detected)
#define REG_OFFSET_GPIO_HLEV_EN 25 // 0x3F200064
#define REG_OFFSET_GPIO_LLEV_EN 28 // 0x3F200070
// asynchronous edge detection register offsets (event reg will be set when detected)
#define REG_OFFSET_GPIO_AREDGE_EN 31 // 0x3F20007C
#define REG_OFFSET_GPIO_AFEDGE_EN 34 // 0x3F200088
// pull up/down enable register offsets
#define REG_OFFSET_GPIO_PULL_CNTRL 37 // 0x3F200094
#define PULL_NONE 0
#define PULL_DOWN 1
#define PULL_UP 2
#define REG_OFFSET_GPIO_EN_CLK 38 // 0x3F20009C
#endif /* GPIO_DEFINES_H_ */