3 * @file hal_gpio_tms570_def.h
5 * @copyright Copyright (C) 2012-2013 Czech Technical University in Prague
7 * @author Michal Horn <hornmich@fel.cvut.cz>
10 #ifndef HAL_GPIO_TMS570_DEF_H_
11 #define HAL_GPIO_TMS570_DEF_H_
20 #define PORT_PIN(p,n,conf) (((p)<<PORT_SHIFT) | (n) | (conf))
21 #define PORT_CONF_MASK 0xff000000
24 #define PORT_CONF_DIR_MASK 0x01000000
25 #define PORT_CONF_DIR_IN (0x00000000 | PORT_CONF_SET_DIR)
26 #define PORT_CONF_DIR_OUT (0x01000000 | PORT_CONF_SET_DIR)
28 #define PORT_CONF_INIT_MASK 0x02000000
29 #define PORT_CONF_INIT_LOW 0x00000000
30 #define PORT_CONF_INIT_HIGH 0x02000000
32 #define PORT_CONF_OD_MASK 0x04000000
33 #define PORT_CONF_OD_OFF 0x00000000
34 #define PORT_CONF_OD_ON 0x04000000
36 #define PORT_CONF_SET_DIR 0x08000000
38 #define PORT_CONF_MODE_MASK 0x30000000
39 #define PORT_CONF_MODE_PTYPE_MASK 0x10000000
40 #define PORT_CONF_MODE_PEN_MASK 0x20000000
41 #define PORT_CONF_MODE_PU 0x10000000 // Pull-up
42 #define PORT_CONF_MODE_PD 0x00000000 // Pull-down
43 #define PORT_CONF_MODE_PEN 0x00000000 // Pull resistor enable
44 #define PORT_CONF_MODE_PDIS 0x20000000 // Pull resistor disable
46 #define PORT_CONF_FNC_MASK 0xc0000000
47 #define PORT_CONF_FNC_GPIO 0x00000000
48 #define PORT_CONF_FNC_0 0x00000000
49 #define PORT_CONF_FNC_1 0x40000000
50 #define PORT_CONF_FNC_2 0x80000000
51 #define PORT_CONF_FNC_3 0xc0000000
53 #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
54 #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
55 #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
56 #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
57 #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
58 #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
59 #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
60 #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
61 #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
62 #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
63 #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
65 typedef struct pin_map_element {
66 const char *pin_name; // Pin name
67 uint32_t pin_desc; // Pin descriptor assigned to the pin name
70 #define MAX_PIN_CNT 103
71 #define MAX_PORT_CNT 5
72 /* Begin and end indexes of each port group to pin map */
73 #define PIN_MAP_DMM_BEGIN 0
74 #define PIN_MAP_DMM_END 18
75 #define PIN_MAP_GIOA_BEGIN 19
76 #define PIN_MAP_GIOA_END 27
77 #define PIN_MAP_GIOB_BEGIN 28
78 #define PIN_MAP_GIOB_END 36
79 #define PIN_MAP_HET1_BEGIN 37
80 #define PIN_MAP_HET1_END 69
81 #define PIN_MAP_HET2_BEGIN 70
82 #define PIN_MAP_HET2_END 102
83 /* Port indexes to portmap */
84 #define PORT_ID_DMM 0x0
85 #define PORT_ID_GIOA 0x1
86 #define PORT_ID_GIOB 0x2
87 #define PORT_ID_HET1 0x3
88 #define PORT_ID_HET2 0x4
90 #define PIN_NAME_DIN8 "DIN8"
91 #define PIN_NAME_DIN9 "DIN9"
92 #define PIN_NAME_DIN10 "DIN10"
93 #define PIN_NAME_DIN11 "DIN11"
94 #define PIN_NAME_DIN12 "DIN12"
95 #define PIN_NAME_DIN13 "DIN13"
96 #define PIN_NAME_DIN14 "DIN14"
97 #define PIN_NAME_DIN15 "DIN15"
98 #define PIN_NAME_DININT "DININT"
99 #define PIN_NAME_HOUT1IN "HOUT1IN"
100 #define PIN_NAME_HOUT2IN "HOUT2IN"
101 #define PIN_NAME_HOUT3IN "HOUT3IN"
102 #define PIN_NAME_HOUT4IN "HOUT4IN"
103 #define PIN_NAME_HOUT5IN "HOUT5IN"
104 #define PIN_NAME_HOUT6IN "HOUT6IN"
105 #define PIN_NAME_HOUT1DIAG "HOUT1DIAG"
106 #define PIN_NAME_HOUT2DIAG "HOUT2DIAG"
107 #define PIN_NAME_HOUT3DIAG "HOUT3DIAG"
108 #define PIN_NAME_HOUT4DIAG "HOUT4DIAG"
109 #define PIN_NAME_HOUT5DIAG "HOUT5DIAG"
110 #define PIN_NAME_HOUT6DIAG "HOUT6DIAG"
111 #define PIN_NAME_MOUT1IN "MOUT1IN"
112 #define PIN_NAME_MOUT2IN "MOUT2IN"
113 #define PIN_NAME_MOUT3IN "MOUT3IN"
114 #define PIN_NAME_MOUT4IN "MOUT4IN"
115 #define PIN_NAME_MOUT5IN "MOUT5IN"
116 #define PIN_NAME_MOUT6IN "MOUT6IN"
117 #define PIN_NAME_MOUT1EN "MOUT1EN"
118 #define PIN_NAME_MOUT2EN "MOUT2EN"
119 #define PIN_NAME_MOUT3EN "MOUT3EN"
120 #define PIN_NAME_MOUT4EN "MOUT4EN"
121 #define PIN_NAME_MOUT5EN "MOUT5EN"
122 #define PIN_NAME_MOUT6EN "MOUT6EN"
123 #define PIN_NAME_VBAT1EN "VBAT1EN"
124 #define PIN_NAME_VBAT2EN "VBAT2EN"
125 #define PIN_NAME_VBAT3EN "VBAT3EN"
126 #define PIN_NAME_VBATEN "VBATEN"
127 #define PIN_NAME_FANCTRL "FANCTRL"
128 #define PIN_NAME_ETHRST "ETHRST"
129 #define PIN_NAME_SPICSA "SPICSA"
130 #define PIN_NAME_SPICSB "SPICSB"
131 #define PIN_NAME_CANNSTB "CANNSTB"
132 #define PIN_NAME_CANEN "CANEN"
133 #define PIN_NAME_LIN2NSLP "LIN2NSLP"
134 #define PIN_NAME_LIN1NSLP "LIN1NSLP"
135 #define PIN_NAME_HBREN "HBREN"
136 #define PIN_NAME_HBRDIR "HBRDIR"
137 #define PIN_NAME_HBRPWM "HBRPWM"
138 #define PIN_NAME_UNUSED NULL
139 /* Pins descriptors */
140 #define PIN_DSC_FANCTRL PORT_PIN(PORT_ID_DMM, 0, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
141 #define PIN_DSC_ETHRST PORT_PIN(PORT_ID_DMM, 1, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
142 #define PIN_DSC_VBAT1EN PORT_PIN(PORT_ID_DMM, 2, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
143 #define PIN_DSC_VBAT2EN PORT_PIN(PORT_ID_DMM, 3, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
144 #define PIN_DSC_VBAT3EN PORT_PIN(PORT_ID_DMM, 4, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
145 #define PIN_DSC_VBATEN PORT_PIN(PORT_ID_DMM, 5, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
146 #define PIN_DSC_SPICSA PORT_PIN(PORT_ID_DMM, 7, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
147 #define PIN_DSC_SPICSB PORT_PIN(PORT_ID_DMM, 8, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
148 #define PIN_DSC_MOUT1EN PORT_PIN(PORT_ID_DMM, 11, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
149 #define PIN_DSC_MOUT2EN PORT_PIN(PORT_ID_DMM, 12, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
150 #define PIN_DSC_CANNSTB PORT_PIN(PORT_ID_DMM, 13, PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF)
151 #define PIN_DSC_CANEN PORT_PIN(PORT_ID_DMM, 15, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
152 #define PIN_DSC_LIN2NSLP PORT_PIN(PORT_ID_DMM, 16, PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF)
153 #define PIN_DSC_LIN1NSLP PORT_PIN(PORT_ID_DMM, 17, PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF)
154 #define PIN_DSC_DININT PORT_PIN(PORT_ID_DMM, 18, PORT_CONF_GPIO_IN_LO_PD_PDIS_ODOFF)
155 #define PIN_DSC_DIN8 PORT_PIN(PORT_ID_GIOA, 0, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
156 #define PIN_DSC_DIN9 PORT_PIN(PORT_ID_GIOA, 1, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
157 #define PIN_DSC_DIN10 PORT_PIN(PORT_ID_GIOA, 2, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
158 #define PIN_DSC_DIN11 PORT_PIN(PORT_ID_GIOA, 3, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
159 #define PIN_DSC_DIN12 PORT_PIN(PORT_ID_GIOA, 4, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
160 #define PIN_DSC_DIN13 PORT_PIN(PORT_ID_GIOA, 5, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
161 #define PIN_DSC_DIN14 PORT_PIN(PORT_ID_GIOA, 6, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
162 #define PIN_DSC_DIN15 PORT_PIN(PORT_ID_GIOA, 7, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
163 #define PIN_DSC_MOUT6EN PORT_PIN(PORT_ID_GIOB, 0, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
164 #define PIN_DSC_MOUT5EN PORT_PIN(PORT_ID_GIOB, 1, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
165 #define PIN_DSC_MOUT6IN PORT_PIN(PORT_ID_GIOB, 2, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
166 #define PIN_DSC_MOUT5IN PORT_PIN(PORT_ID_GIOB, 3, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
167 #define PIN_DSC_MOUT4EN PORT_PIN(PORT_ID_GIOB, 4, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
168 #define PIN_DSC_MOUT3EN PORT_PIN(PORT_ID_GIOB, 5, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
169 #define PIN_DSC_MOUT4IN PORT_PIN(PORT_ID_GIOB, 6, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
170 #define PIN_DSC_MOUT3IN PORT_PIN(PORT_ID_GIOB, 7, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
171 #define PIN_DSC_HBREN PORT_PIN(PORT_ID_HET1, 1, PORT_CONF_GPIO_OUT_LO_PU_PDIS_ODOFF)
172 #define PIN_DSC_HBRDIR PORT_PIN(PORT_ID_HET1, 4, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
173 #define PIN_DSC_HBRPWM PORT_PIN(PORT_ID_HET1, 7, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
174 #define PIN_DSC_MOUT1IN PORT_PIN(PORT_ID_HET1, 9, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
175 #define PIN_DSC_MOUT2IN PORT_PIN(PORT_ID_HET1, 14, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
176 #define PIN_DSC_HOUT1IN PORT_PIN(PORT_ID_HET1, 16, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
177 #define PIN_DSC_HOUT1DIAG PORT_PIN(PORT_ID_HET1, 17, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
178 #define PIN_DSC_HOUT2IN PORT_PIN(PORT_ID_HET1, 18, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
179 #define PIN_DSC_HOUT2DIAG PORT_PIN(PORT_ID_HET1, 19, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
180 #define PIN_DSC_HOUT3IN PORT_PIN(PORT_ID_HET1, 20, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
181 #define PIN_DSC_HOUT3DIAG PORT_PIN(PORT_ID_HET1, 21, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
182 #define PIN_DSC_HOUT4IN PORT_PIN(PORT_ID_HET1, 22, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
183 #define PIN_DSC_HOUT4DIAG PORT_PIN(PORT_ID_HET1, 23, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
184 #define PIN_DSC_HOUT5IN PORT_PIN(PORT_ID_HET1, 25, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
185 #define PIN_DSC_HOUT5DIAG PORT_PIN(PORT_ID_HET1, 27, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
186 #define PIN_DSC_HOUT6IN PORT_PIN(PORT_ID_HET1, 29, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
187 #define PIN_DSC_HOUT6DIAG PORT_PIN(PORT_ID_HET1, 31, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
188 #define PIN_DSC_DMM_UNUSED(b) PORT_PIN(PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
189 #define PIN_DSC_GIOA_UNUSED(b) PORT_PIN(PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
190 #define PIN_DSC_GIOB_UNUSED(b) PORT_PIN(PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
191 #define PIN_DSC_HET1_UNUSED(b) PORT_PIN(PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
192 #define PIN_DSC_HET2_UNUSED(b) PORT_PIN(PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
194 #endif /* HAL_GPIO_TMS570_DEF_H_ */