1 /*
2  * Copyright (c) 2022 Microchip Technology Inc.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_MICROCHIP_XEC_GPIO_H_
7 #define ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_MICROCHIP_XEC_GPIO_H_
8 
9 /**
10  * @brief Microchip XEC GPIO bank and bit position convenience defines
11  *
12  * Microchip XEC documentation uses octal GPIO pin
13  * numbering. These macros do not require the user to do octal arithmetic
14  * to derive the pin's bit postion.
15  *
16  * Example DT usage:
17  *
18  * @code{.dts}
19  * gpios = <MCHP_GPIO_DECODE_176 GPIO_ACTIVE_HIGH>;
20  * @endcode
21  *
22  * @{
23  */
24 
25 #define XEC_GPIO_HELPER(gpio_bank, gpio_bitpos)	gpio_bank gpio_bitpos
26 
27 /* bank A */
28 #define MCHP_GPIO_DECODE_000 XEC_GPIO_HELPER(&gpio_000_036, 0)
29 #define MCHP_GPIO_DECODE_001 XEC_GPIO_HELPER(&gpio_000_036, 1)
30 #define MCHP_GPIO_DECODE_002 XEC_GPIO_HELPER(&gpio_000_036, 2)
31 #define MCHP_GPIO_DECODE_003 XEC_GPIO_HELPER(&gpio_000_036, 3)
32 #define MCHP_GPIO_DECODE_004 XEC_GPIO_HELPER(&gpio_000_036, 4)
33 #define MCHP_GPIO_DECODE_005 XEC_GPIO_HELPER(&gpio_000_036, 5)
34 #define MCHP_GPIO_DECODE_006 XEC_GPIO_HELPER(&gpio_000_036, 6)
35 #define MCHP_GPIO_DECODE_007 XEC_GPIO_HELPER(&gpio_000_036, 7)
36 #define MCHP_GPIO_DECODE_010 XEC_GPIO_HELPER(&gpio_000_036, 8)
37 #define MCHP_GPIO_DECODE_011 XEC_GPIO_HELPER(&gpio_000_036, 9)
38 #define MCHP_GPIO_DECODE_012 XEC_GPIO_HELPER(&gpio_000_036, 10)
39 #define MCHP_GPIO_DECODE_013 XEC_GPIO_HELPER(&gpio_000_036, 11)
40 #define MCHP_GPIO_DECODE_014 XEC_GPIO_HELPER(&gpio_000_036, 12)
41 #define MCHP_GPIO_DECODE_015 XEC_GPIO_HELPER(&gpio_000_036, 13)
42 #define MCHP_GPIO_DECODE_016 XEC_GPIO_HELPER(&gpio_000_036, 14)
43 #define MCHP_GPIO_DECODE_017 XEC_GPIO_HELPER(&gpio_000_036, 15)
44 #define MCHP_GPIO_DECODE_020 XEC_GPIO_HELPER(&gpio_000_036, 16)
45 #define MCHP_GPIO_DECODE_021 XEC_GPIO_HELPER(&gpio_000_036, 17)
46 #define MCHP_GPIO_DECODE_022 XEC_GPIO_HELPER(&gpio_000_036, 18)
47 #define MCHP_GPIO_DECODE_023 XEC_GPIO_HELPER(&gpio_000_036, 19)
48 #define MCHP_GPIO_DECODE_024 XEC_GPIO_HELPER(&gpio_000_036, 20)
49 #define MCHP_GPIO_DECODE_025 XEC_GPIO_HELPER(&gpio_000_036, 21)
50 #define MCHP_GPIO_DECODE_026 XEC_GPIO_HELPER(&gpio_000_036, 22)
51 #define MCHP_GPIO_DECODE_027 XEC_GPIO_HELPER(&gpio_000_036, 23)
52 #define MCHP_GPIO_DECODE_030 XEC_GPIO_HELPER(&gpio_000_036, 24)
53 #define MCHP_GPIO_DECODE_031 XEC_GPIO_HELPER(&gpio_000_036, 25)
54 #define MCHP_GPIO_DECODE_032 XEC_GPIO_HELPER(&gpio_000_036, 26)
55 #define MCHP_GPIO_DECODE_033 XEC_GPIO_HELPER(&gpio_000_036, 27)
56 #define MCHP_GPIO_DECODE_034 XEC_GPIO_HELPER(&gpio_000_036, 28)
57 #define MCHP_GPIO_DECODE_035 XEC_GPIO_HELPER(&gpio_000_036, 29)
58 #define MCHP_GPIO_DECODE_036 XEC_GPIO_HELPER(&gpio_000_036, 30)
59 
60 /* bank B */
61 #define MCHP_GPIO_DECODE_040 XEC_GPIO_HELPER(&gpio_040_076, 0)
62 #define MCHP_GPIO_DECODE_041 XEC_GPIO_HELPER(&gpio_040_076, 1)
63 #define MCHP_GPIO_DECODE_042 XEC_GPIO_HELPER(&gpio_040_076, 2)
64 #define MCHP_GPIO_DECODE_043 XEC_GPIO_HELPER(&gpio_040_076, 3)
65 #define MCHP_GPIO_DECODE_044 XEC_GPIO_HELPER(&gpio_040_076, 4)
66 #define MCHP_GPIO_DECODE_045 XEC_GPIO_HELPER(&gpio_040_076, 5)
67 #define MCHP_GPIO_DECODE_046 XEC_GPIO_HELPER(&gpio_040_076, 6)
68 #define MCHP_GPIO_DECODE_047 XEC_GPIO_HELPER(&gpio_040_076, 7)
69 #define MCHP_GPIO_DECODE_050 XEC_GPIO_HELPER(&gpio_040_076, 8)
70 #define MCHP_GPIO_DECODE_051 XEC_GPIO_HELPER(&gpio_040_076, 9)
71 #define MCHP_GPIO_DECODE_052 XEC_GPIO_HELPER(&gpio_040_076, 10)
72 #define MCHP_GPIO_DECODE_053 XEC_GPIO_HELPER(&gpio_040_076, 11)
73 #define MCHP_GPIO_DECODE_054 XEC_GPIO_HELPER(&gpio_040_076, 12)
74 #define MCHP_GPIO_DECODE_055 XEC_GPIO_HELPER(&gpio_040_076, 13)
75 #define MCHP_GPIO_DECODE_056 XEC_GPIO_HELPER(&gpio_040_076, 14)
76 #define MCHP_GPIO_DECODE_057 XEC_GPIO_HELPER(&gpio_040_076, 15)
77 #define MCHP_GPIO_DECODE_060 XEC_GPIO_HELPER(&gpio_040_076, 16)
78 #define MCHP_GPIO_DECODE_061 XEC_GPIO_HELPER(&gpio_040_076, 17)
79 #define MCHP_GPIO_DECODE_062 XEC_GPIO_HELPER(&gpio_040_076, 18)
80 #define MCHP_GPIO_DECODE_063 XEC_GPIO_HELPER(&gpio_040_076, 19)
81 #define MCHP_GPIO_DECODE_064 XEC_GPIO_HELPER(&gpio_040_076, 20)
82 #define MCHP_GPIO_DECODE_065 XEC_GPIO_HELPER(&gpio_040_076, 21)
83 #define MCHP_GPIO_DECODE_066 XEC_GPIO_HELPER(&gpio_040_076, 22)
84 #define MCHP_GPIO_DECODE_067 XEC_GPIO_HELPER(&gpio_040_076, 23)
85 #define MCHP_GPIO_DECODE_070 XEC_GPIO_HELPER(&gpio_040_076, 24)
86 #define MCHP_GPIO_DECODE_071 XEC_GPIO_HELPER(&gpio_040_076, 25)
87 #define MCHP_GPIO_DECODE_072 XEC_GPIO_HELPER(&gpio_040_076, 26)
88 #define MCHP_GPIO_DECODE_073 XEC_GPIO_HELPER(&gpio_040_076, 27)
89 #define MCHP_GPIO_DECODE_074 XEC_GPIO_HELPER(&gpio_040_076, 28)
90 #define MCHP_GPIO_DECODE_075 XEC_GPIO_HELPER(&gpio_040_076, 29)
91 #define MCHP_GPIO_DECODE_076 XEC_GPIO_HELPER(&gpio_040_076, 30)
92 
93 /* bank C */
94 #define MCHP_GPIO_DECODE_100 XEC_GPIO_HELPER(&gpio_100_136, 0)
95 #define MCHP_GPIO_DECODE_101 XEC_GPIO_HELPER(&gpio_100_136, 1)
96 #define MCHP_GPIO_DECODE_102 XEC_GPIO_HELPER(&gpio_100_136, 2)
97 #define MCHP_GPIO_DECODE_103 XEC_GPIO_HELPER(&gpio_100_136, 3)
98 #define MCHP_GPIO_DECODE_104 XEC_GPIO_HELPER(&gpio_100_136, 4)
99 #define MCHP_GPIO_DECODE_105 XEC_GPIO_HELPER(&gpio_100_136, 5)
100 #define MCHP_GPIO_DECODE_106 XEC_GPIO_HELPER(&gpio_100_136, 6)
101 #define MCHP_GPIO_DECODE_107 XEC_GPIO_HELPER(&gpio_100_136, 7)
102 #define MCHP_GPIO_DECODE_110 XEC_GPIO_HELPER(&gpio_100_136, 8)
103 #define MCHP_GPIO_DECODE_111 XEC_GPIO_HELPER(&gpio_100_136, 9)
104 #define MCHP_GPIO_DECODE_112 XEC_GPIO_HELPER(&gpio_100_136, 10)
105 #define MCHP_GPIO_DECODE_113 XEC_GPIO_HELPER(&gpio_100_136, 11)
106 #define MCHP_GPIO_DECODE_114 XEC_GPIO_HELPER(&gpio_100_136, 12)
107 #define MCHP_GPIO_DECODE_115 XEC_GPIO_HELPER(&gpio_100_136, 13)
108 #define MCHP_GPIO_DECODE_116 XEC_GPIO_HELPER(&gpio_100_136, 14)
109 #define MCHP_GPIO_DECODE_117 XEC_GPIO_HELPER(&gpio_100_136, 15)
110 #define MCHP_GPIO_DECODE_120 XEC_GPIO_HELPER(&gpio_100_136, 16)
111 #define MCHP_GPIO_DECODE_121 XEC_GPIO_HELPER(&gpio_100_136, 17)
112 #define MCHP_GPIO_DECODE_122 XEC_GPIO_HELPER(&gpio_100_136, 18)
113 #define MCHP_GPIO_DECODE_123 XEC_GPIO_HELPER(&gpio_100_136, 19)
114 #define MCHP_GPIO_DECODE_124 XEC_GPIO_HELPER(&gpio_100_136, 20)
115 #define MCHP_GPIO_DECODE_125 XEC_GPIO_HELPER(&gpio_100_136, 21)
116 #define MCHP_GPIO_DECODE_126 XEC_GPIO_HELPER(&gpio_100_136, 22)
117 #define MCHP_GPIO_DECODE_127 XEC_GPIO_HELPER(&gpio_100_136, 23)
118 #define MCHP_GPIO_DECODE_130 XEC_GPIO_HELPER(&gpio_100_136, 24)
119 #define MCHP_GPIO_DECODE_131 XEC_GPIO_HELPER(&gpio_100_136, 25)
120 #define MCHP_GPIO_DECODE_132 XEC_GPIO_HELPER(&gpio_100_136, 26)
121 #define MCHP_GPIO_DECODE_133 XEC_GPIO_HELPER(&gpio_100_136, 27)
122 #define MCHP_GPIO_DECODE_134 XEC_GPIO_HELPER(&gpio_100_136, 28)
123 #define MCHP_GPIO_DECODE_135 XEC_GPIO_HELPER(&gpio_100_136, 29)
124 #define MCHP_GPIO_DECODE_136 XEC_GPIO_HELPER(&gpio_100_136, 30)
125 
126 /* bank D */
127 #define MCHP_GPIO_DECODE_140 XEC_GPIO_HELPER(&gpio_140_176, 0)
128 #define MCHP_GPIO_DECODE_141 XEC_GPIO_HELPER(&gpio_140_176, 1)
129 #define MCHP_GPIO_DECODE_142 XEC_GPIO_HELPER(&gpio_140_176, 2)
130 #define MCHP_GPIO_DECODE_143 XEC_GPIO_HELPER(&gpio_140_176, 3)
131 #define MCHP_GPIO_DECODE_144 XEC_GPIO_HELPER(&gpio_140_176, 4)
132 #define MCHP_GPIO_DECODE_145 XEC_GPIO_HELPER(&gpio_140_176, 5)
133 #define MCHP_GPIO_DECODE_146 XEC_GPIO_HELPER(&gpio_140_176, 6)
134 #define MCHP_GPIO_DECODE_147 XEC_GPIO_HELPER(&gpio_140_176, 7)
135 #define MCHP_GPIO_DECODE_150 XEC_GPIO_HELPER(&gpio_140_176, 8)
136 #define MCHP_GPIO_DECODE_151 XEC_GPIO_HELPER(&gpio_140_176, 9)
137 #define MCHP_GPIO_DECODE_152 XEC_GPIO_HELPER(&gpio_140_176, 10)
138 #define MCHP_GPIO_DECODE_153 XEC_GPIO_HELPER(&gpio_140_176, 11)
139 #define MCHP_GPIO_DECODE_154 XEC_GPIO_HELPER(&gpio_140_176, 12)
140 #define MCHP_GPIO_DECODE_155 XEC_GPIO_HELPER(&gpio_140_176, 13)
141 #define MCHP_GPIO_DECODE_156 XEC_GPIO_HELPER(&gpio_140_176, 14)
142 #define MCHP_GPIO_DECODE_157 XEC_GPIO_HELPER(&gpio_140_176, 15)
143 #define MCHP_GPIO_DECODE_160 XEC_GPIO_HELPER(&gpio_140_176, 16)
144 #define MCHP_GPIO_DECODE_161 XEC_GPIO_HELPER(&gpio_140_176, 17)
145 #define MCHP_GPIO_DECODE_162 XEC_GPIO_HELPER(&gpio_140_176, 18)
146 #define MCHP_GPIO_DECODE_163 XEC_GPIO_HELPER(&gpio_140_176, 19)
147 #define MCHP_GPIO_DECODE_164 XEC_GPIO_HELPER(&gpio_140_176, 20)
148 #define MCHP_GPIO_DECODE_165 XEC_GPIO_HELPER(&gpio_140_176, 21)
149 #define MCHP_GPIO_DECODE_166 XEC_GPIO_HELPER(&gpio_140_176, 22)
150 #define MCHP_GPIO_DECODE_167 XEC_GPIO_HELPER(&gpio_140_176, 23)
151 #define MCHP_GPIO_DECODE_170 XEC_GPIO_HELPER(&gpio_140_176, 24)
152 #define MCHP_GPIO_DECODE_171 XEC_GPIO_HELPER(&gpio_140_176, 25)
153 #define MCHP_GPIO_DECODE_172 XEC_GPIO_HELPER(&gpio_140_176, 26)
154 #define MCHP_GPIO_DECODE_173 XEC_GPIO_HELPER(&gpio_140_176, 27)
155 #define MCHP_GPIO_DECODE_174 XEC_GPIO_HELPER(&gpio_140_176, 28)
156 #define MCHP_GPIO_DECODE_175 XEC_GPIO_HELPER(&gpio_140_176, 29)
157 #define MCHP_GPIO_DECODE_176 XEC_GPIO_HELPER(&gpio_140_176, 30)
158 
159 /* bank E */
160 #define MCHP_GPIO_DECODE_200 XEC_GPIO_HELPER(&gpio_200_236, 0)
161 #define MCHP_GPIO_DECODE_201 XEC_GPIO_HELPER(&gpio_200_236, 1)
162 #define MCHP_GPIO_DECODE_202 XEC_GPIO_HELPER(&gpio_200_236, 2)
163 #define MCHP_GPIO_DECODE_203 XEC_GPIO_HELPER(&gpio_200_236, 3)
164 #define MCHP_GPIO_DECODE_204 XEC_GPIO_HELPER(&gpio_200_236, 4)
165 #define MCHP_GPIO_DECODE_205 XEC_GPIO_HELPER(&gpio_200_236, 5)
166 #define MCHP_GPIO_DECODE_206 XEC_GPIO_HELPER(&gpio_200_236, 6)
167 #define MCHP_GPIO_DECODE_207 XEC_GPIO_HELPER(&gpio_200_236, 7)
168 #define MCHP_GPIO_DECODE_210 XEC_GPIO_HELPER(&gpio_200_236, 8)
169 #define MCHP_GPIO_DECODE_211 XEC_GPIO_HELPER(&gpio_200_236, 9)
170 #define MCHP_GPIO_DECODE_212 XEC_GPIO_HELPER(&gpio_200_236, 10)
171 #define MCHP_GPIO_DECODE_213 XEC_GPIO_HELPER(&gpio_200_236, 11)
172 #define MCHP_GPIO_DECODE_214 XEC_GPIO_HELPER(&gpio_200_236, 12)
173 #define MCHP_GPIO_DECODE_215 XEC_GPIO_HELPER(&gpio_200_236, 13)
174 #define MCHP_GPIO_DECODE_216 XEC_GPIO_HELPER(&gpio_200_236, 14)
175 #define MCHP_GPIO_DECODE_217 XEC_GPIO_HELPER(&gpio_200_236, 15)
176 #define MCHP_GPIO_DECODE_220 XEC_GPIO_HELPER(&gpio_200_236, 16)
177 #define MCHP_GPIO_DECODE_221 XEC_GPIO_HELPER(&gpio_200_236, 17)
178 #define MCHP_GPIO_DECODE_222 XEC_GPIO_HELPER(&gpio_200_236, 18)
179 #define MCHP_GPIO_DECODE_223 XEC_GPIO_HELPER(&gpio_200_236, 19)
180 #define MCHP_GPIO_DECODE_224 XEC_GPIO_HELPER(&gpio_200_236, 20)
181 #define MCHP_GPIO_DECODE_225 XEC_GPIO_HELPER(&gpio_200_236, 21)
182 #define MCHP_GPIO_DECODE_226 XEC_GPIO_HELPER(&gpio_200_236, 22)
183 #define MCHP_GPIO_DECODE_227 XEC_GPIO_HELPER(&gpio_200_236, 23)
184 #define MCHP_GPIO_DECODE_230 XEC_GPIO_HELPER(&gpio_200_236, 24)
185 #define MCHP_GPIO_DECODE_231 XEC_GPIO_HELPER(&gpio_200_236, 25)
186 #define MCHP_GPIO_DECODE_232 XEC_GPIO_HELPER(&gpio_200_236, 26)
187 #define MCHP_GPIO_DECODE_233 XEC_GPIO_HELPER(&gpio_200_236, 27)
188 #define MCHP_GPIO_DECODE_234 XEC_GPIO_HELPER(&gpio_200_236, 28)
189 #define MCHP_GPIO_DECODE_235 XEC_GPIO_HELPER(&gpio_200_236, 29)
190 #define MCHP_GPIO_DECODE_236 XEC_GPIO_HELPER(&gpio_200_236, 30)
191 
192 /* bank F */
193 #define MCHP_GPIO_DECODE_240 XEC_GPIO_HELPER(&gpio_240_276, 0)
194 #define MCHP_GPIO_DECODE_241 XEC_GPIO_HELPER(&gpio_240_276, 1)
195 #define MCHP_GPIO_DECODE_242 XEC_GPIO_HELPER(&gpio_240_276, 2)
196 #define MCHP_GPIO_DECODE_243 XEC_GPIO_HELPER(&gpio_240_276, 3)
197 #define MCHP_GPIO_DECODE_244 XEC_GPIO_HELPER(&gpio_240_276, 4)
198 #define MCHP_GPIO_DECODE_245 XEC_GPIO_HELPER(&gpio_240_276, 5)
199 #define MCHP_GPIO_DECODE_246 XEC_GPIO_HELPER(&gpio_240_276, 6)
200 #define MCHP_GPIO_DECODE_247 XEC_GPIO_HELPER(&gpio_240_276, 7)
201 #define MCHP_GPIO_DECODE_250 XEC_GPIO_HELPER(&gpio_240_276, 8)
202 #define MCHP_GPIO_DECODE_251 XEC_GPIO_HELPER(&gpio_240_276, 9)
203 #define MCHP_GPIO_DECODE_252 XEC_GPIO_HELPER(&gpio_240_276, 10)
204 #define MCHP_GPIO_DECODE_253 XEC_GPIO_HELPER(&gpio_240_276, 11)
205 #define MCHP_GPIO_DECODE_254 XEC_GPIO_HELPER(&gpio_240_276, 12)
206 #define MCHP_GPIO_DECODE_255 XEC_GPIO_HELPER(&gpio_240_276, 13)
207 #define MCHP_GPIO_DECODE_256 XEC_GPIO_HELPER(&gpio_240_276, 14)
208 #define MCHP_GPIO_DECODE_257 XEC_GPIO_HELPER(&gpio_240_276, 15)
209 #define MCHP_GPIO_DECODE_260 XEC_GPIO_HELPER(&gpio_240_276, 16)
210 #define MCHP_GPIO_DECODE_261 XEC_GPIO_HELPER(&gpio_240_276, 17)
211 #define MCHP_GPIO_DECODE_262 XEC_GPIO_HELPER(&gpio_240_276, 18)
212 #define MCHP_GPIO_DECODE_263 XEC_GPIO_HELPER(&gpio_240_276, 19)
213 #define MCHP_GPIO_DECODE_264 XEC_GPIO_HELPER(&gpio_240_276, 20)
214 #define MCHP_GPIO_DECODE_265 XEC_GPIO_HELPER(&gpio_240_276, 21)
215 #define MCHP_GPIO_DECODE_266 XEC_GPIO_HELPER(&gpio_240_276, 22)
216 #define MCHP_GPIO_DECODE_267 XEC_GPIO_HELPER(&gpio_240_276, 23)
217 #define MCHP_GPIO_DECODE_270 XEC_GPIO_HELPER(&gpio_240_276, 24)
218 #define MCHP_GPIO_DECODE_271 XEC_GPIO_HELPER(&gpio_240_276, 25)
219 #define MCHP_GPIO_DECODE_272 XEC_GPIO_HELPER(&gpio_240_276, 26)
220 #define MCHP_GPIO_DECODE_273 XEC_GPIO_HELPER(&gpio_240_276, 27)
221 #define MCHP_GPIO_DECODE_274 XEC_GPIO_HELPER(&gpio_240_276, 28)
222 #define MCHP_GPIO_DECODE_275 XEC_GPIO_HELPER(&gpio_240_276, 29)
223 #define MCHP_GPIO_DECODE_276 XEC_GPIO_HELPER(&gpio_240_276, 30)
224 
225 /** @} */
226 
227 #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_MICROCHIP_XEC_GPIO_H_ */
228