]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lib.git/blob - rpp/include/hal/_tms570_hydctr/gpio_def.h
Remove indirect port definition and the related macros
[pes-rpp/rpp-lib.git] / rpp / include / hal / _tms570_hydctr / gpio_def.h
1 /* Copyright (C) 2013-2015 Czech Technical University in Prague
2  * Authors:
3  *     - Michal Horn <hornmich@fel.cvut.cz>
4  *
5  * This document contains proprietary information belonging to Czech
6  * Technical University in Prague. Passing on and copying of this
7  * document, and communication of its contents is not permitted
8  * without prior written authorization.
9  */
10
11 #ifndef HAL_GPIO_DEF_H_
12 #define HAL_GPIO_DEF_H_
13
14 #include "hal/hal.h"
15
16
17 #ifndef PORT_SHIFT
18 #define PORT_SHIFT          5
19 #endif
20 #ifndef PORT_PIN
21 #define PORT_PIN(p,n,conf)  (((p)<<PORT_SHIFT) | (n) | (conf))
22 #define PORT_CONF_MASK      0xff000000
23 #endif
24
25 #define PORT_CONF_DIR_MASK  0x01000000
26 #define PORT_CONF_DIR_IN    (0x00000000 | PORT_CONF_SET_DIR)
27 #define PORT_CONF_DIR_OUT   (0x01000000 | PORT_CONF_SET_DIR)
28
29 #define PORT_CONF_INIT_MASK 0x02000000
30 #define PORT_CONF_INIT_LOW  0x00000000
31 #define PORT_CONF_INIT_HIGH 0x02000000
32
33 #define PORT_CONF_OD_MASK   0x04000000
34 #define PORT_CONF_OD_OFF    0x00000000
35 #define PORT_CONF_OD_ON     0x04000000
36
37 #define PORT_CONF_SET_DIR   0x08000000
38
39 #define PORT_CONF_MODE_MASK 0x30000000
40 #define PORT_CONF_MODE_PTYPE_MASK   0x10000000
41 #define PORT_CONF_MODE_PEN_MASK     0x20000000
42 #define PORT_CONF_MODE_PU   0x10000000      // Pull-up
43 #define PORT_CONF_MODE_PD   0x00000000      // Pull-down
44 #define PORT_CONF_MODE_PEN  0x00000000      // Pull resistor enable
45 #define PORT_CONF_MODE_PDIS 0x20000000      // Pull resistor disable
46
47 #define PORT_CONF_FNC_MASK  0xc0000000
48 #define PORT_CONF_FNC_GPIO  0x00000000
49 #define PORT_CONF_FNC_0     0x00000000
50 #define PORT_CONF_FNC_1     0x40000000
51 #define PORT_CONF_FNC_2     0x80000000
52 #define PORT_CONF_FNC_3     0xc0000000
53
54 #define PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
55 #define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
56 #define PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PU|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
57 #define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_ON
58 #define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODON      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_ON
59 #define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF     PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
60 #define PORT_CONF_GPIO_OUT_LO_PU_PDIS_ODOFF     PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PU|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
61 #define PORT_CONF_GPIO_IN_HI_PU_PEN_ODON        PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_IN|PORT_CONF_MODE_PU|PORT_CONF_MODE_PEN|PORT_CONF_OD_ON
62 #define PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_IN|PORT_CONF_MODE_PU|PORT_CONF_MODE_PDIS|PORT_CONF_OD_ON
63 #define PORT_CONF_GPIO_IN_LO_PD_PDIS_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
64 #define PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
65 #define PORT_CONF_GPIO_IN_LO_PU_PDIS_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
66
67 typedef struct pin_map_element {
68         const char *pin_name;          // Pin name
69         uint32_t pin_desc;              // Pin descriptor assigned to the pin name
70 } pin_map_element_t;
71
72 #define MAX_PIN_CNT     46
73 #define MAX_PORT_CNT    5
74 /* Port indexes to portmap */
75 #define PORT_ID_GIOA    0x1
76 #define PORT_ID_GIOB    0x2
77 #define PORT_ID_HET1    0x3
78 #define PORT_ID_HET2    0x4
79 /* Pin names */
80 #define PIN_NAME_GIOA0      "GIOA0"
81 #define PIN_NAME_GIOA1      "GIOA1"
82 #define PIN_NAME_GIOA2      "GIOA2"
83 #define PIN_NAME_GIOA3      "GIOA3"
84 #define PIN_NAME_GIOA4      "GIOA4"
85 #define PIN_NAME_GIOA5      "GIOA5"
86 #define PIN_NAME_GIOA6      "GIOA6"
87 #define PIN_NAME_GIOA7      "GIOA7"
88
89 #define PIN_NAME_GIOB0      "GIOB0"
90 #define PIN_NAME_GIOB1      "GIOB1"
91 #define PIN_NAME_GIOB2      "GIOB2"
92 #define PIN_NAME_GIOB3      "GIOB3"
93 #define PIN_NAME_GIOB4      "GIOB4"
94 #define PIN_NAME_GIOB5      "GIOB5"
95 #define PIN_NAME_GIOB6      "GIOB6"
96 #define PIN_NAME_GIOB7      "GIOB7"
97
98 #define PIN_NAME_NHET1_0      "NHET10"
99 #define PIN_NAME_NHET1_1      "NHET11"
100 #define PIN_NAME_NHET1_2      "NHET12"
101 #define PIN_NAME_NHET1_3      "NHET13"
102 #define PIN_NAME_NHET1_4      "NHET14"
103 #define PIN_NAME_NHET1_5      "NHET15"
104 #define PIN_NAME_NHET1_6      "NHET16"
105 #define PIN_NAME_NHET1_7      "NHET17"
106 #define PIN_NAME_NHET1_8      "NHET18"
107 #define PIN_NAME_NHET1_9      "NHET19"
108 #define PIN_NAME_NHET1_10     "NHET110"
109 #define PIN_NAME_NHET1_11     "NHET111"
110 #define PIN_NAME_NHET1_12     "NHET112"
111 #define PIN_NAME_NHET1_13     "NHET113"
112 #define PIN_NAME_NHET1_14     "NHET114"
113 #define PIN_NAME_NHET1_15     "NHET115"
114 #define PIN_NAME_NHET1_16     "NHET116"
115 #define PIN_NAME_NHET1_17     "NHET117"
116 #define PIN_NAME_NHET1_18     "NHET118"
117 #define PIN_NAME_NHET1_19     "NHET119"
118 #define PIN_NAME_NHET1_20     "NHET120"
119 #define PIN_NAME_NHET1_21     "NHET121"
120 #define PIN_NAME_NHET1_22     "NHET122"
121 #define PIN_NAME_NHET1_23     "NHET123"
122 #define PIN_NAME_NHET1_24     "NHET124"
123 #define PIN_NAME_NHET1_25     "NHET125"
124 #define PIN_NAME_NHET1_26     "NHET126"
125 #define PIN_NAME_NHET1_27     "NHET127"
126 #define PIN_NAME_NHET1_28     "NHET128"
127 #define PIN_NAME_NHET1_29     "NHET129"
128 #define PIN_NAME_NHET1_30     "NHET130"
129 #define PIN_NAME_NHET1_31     "NHET131"
130
131 #define PIN_NAME_UNUSED       "unused"
132
133 /* Pins descriptors */
134 #define PIN_DSC_GIOA0     PORT_PIN(PORT_ID_GIOA, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
135 #define PIN_DSC_GIOA1     PORT_PIN(PORT_ID_GIOA, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
136 #define PIN_DSC_GIOA2     PORT_PIN(PORT_ID_GIOA, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
137 #define PIN_DSC_GIOA3     PORT_PIN(PORT_ID_GIOA, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
138 #define PIN_DSC_GIOA4     PORT_PIN(PORT_ID_GIOA, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
139 #define PIN_DSC_GIOA5     PORT_PIN(PORT_ID_GIOA, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
140 #define PIN_DSC_GIOA6     PORT_PIN(PORT_ID_GIOA, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
141 #define PIN_DSC_GIOA7     PORT_PIN(PORT_ID_GIOA, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
142
143 #define PIN_DSC_GIOB0     PORT_PIN(PORT_ID_GIOB, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
144 #define PIN_DSC_GIOB1     PORT_PIN(PORT_ID_GIOB, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
145 #define PIN_DSC_GIOB2     PORT_PIN(PORT_ID_GIOB, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
146 #define PIN_DSC_GIOB3     PORT_PIN(PORT_ID_GIOB, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
147 #define PIN_DSC_GIOB4     PORT_PIN(PORT_ID_GIOB, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
148 #define PIN_DSC_GIOB5     PORT_PIN(PORT_ID_GIOB, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
149 #define PIN_DSC_GIOB6     PORT_PIN(PORT_ID_GIOB, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
150 #define PIN_DSC_GIOB7     PORT_PIN(PORT_ID_GIOB, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
151
152 #define PIN_DSC_NHET1_0     PORT_PIN(PORT_ID_HET1,  0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
153 #define PIN_DSC_NHET1_1     PORT_PIN(PORT_ID_HET1,  1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
154 #define PIN_DSC_NHET1_2     PORT_PIN(PORT_ID_HET1,  2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
155 #define PIN_DSC_NHET1_3     PORT_PIN(PORT_ID_HET1,  3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
156 #define PIN_DSC_NHET1_4     PORT_PIN(PORT_ID_HET1,  4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
157 #define PIN_DSC_NHET1_5     PORT_PIN(PORT_ID_HET1,  5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
158 #define PIN_DSC_NHET1_6     PORT_PIN(PORT_ID_HET1,  6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
159 #define PIN_DSC_NHET1_7     PORT_PIN(PORT_ID_HET1,  7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
160 #define PIN_DSC_NHET1_8     PORT_PIN(PORT_ID_HET1,  8, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
161 #define PIN_DSC_NHET1_9     PORT_PIN(PORT_ID_HET1,  9, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
162 #define PIN_DSC_NHET1_10    PORT_PIN(PORT_ID_HET1, 10, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
163 #define PIN_DSC_NHET1_11    PORT_PIN(PORT_ID_HET1, 11, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
164 #define PIN_DSC_NHET1_12    PORT_PIN(PORT_ID_HET1, 12, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
165 #define PIN_DSC_NHET1_13    PORT_PIN(PORT_ID_HET1, 13, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
166 #define PIN_DSC_NHET1_14    PORT_PIN(PORT_ID_HET1, 14, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
167 #define PIN_DSC_NHET1_15    PORT_PIN(PORT_ID_HET1, 15, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
168 #define PIN_DSC_NHET1_16    PORT_PIN(PORT_ID_HET1, 16, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
169 #define PIN_DSC_NHET1_17    PORT_PIN(PORT_ID_HET1, 17, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
170 #define PIN_DSC_NHET1_18    PORT_PIN(PORT_ID_HET1, 18, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
171 #define PIN_DSC_NHET1_19    PORT_PIN(PORT_ID_HET1, 19, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
172 #define PIN_DSC_NHET1_20    PORT_PIN(PORT_ID_HET1, 20, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
173 #define PIN_DSC_NHET1_21    PORT_PIN(PORT_ID_HET1, 21, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
174 #define PIN_DSC_NHET1_22    PORT_PIN(PORT_ID_HET1, 22, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
175 #define PIN_DSC_NHET1_23    PORT_PIN(PORT_ID_HET1, 23, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
176 #define PIN_DSC_NHET1_24    PORT_PIN(PORT_ID_HET1, 24, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
177 #define PIN_DSC_NHET1_25    PORT_PIN(PORT_ID_HET1, 25, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
178 #define PIN_DSC_NHET1_26    PORT_PIN(PORT_ID_HET1, 26, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
179 #define PIN_DSC_NHET1_27    PORT_PIN(PORT_ID_HET1, 27, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
180 #define PIN_DSC_NHET1_28    PORT_PIN(PORT_ID_HET1, 28, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
181 #define PIN_DSC_NHET1_29    PORT_PIN(PORT_ID_HET1, 29, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
182 #define PIN_DSC_NHET1_30    PORT_PIN(PORT_ID_HET1, 30, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
183 #define PIN_DSC_NHET1_31    PORT_PIN(PORT_ID_HET1, 31, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
184
185 #endif /* HAL_GPIO_DEF_H_ */