Lines Matching refs:pin
88 * Supported capabilities for each GPIO pin.
94 /* PIN 0 */
96 /* PIN 1 */
98 /* PIN 2 */
100 /* PIN 3 */
102 /* PIN 4 */
104 /* PIN 5 */
106 /* PIN 6 */
108 /* PIN 7 */
110 /* PIN 8 */
112 /* PIN 9 */
114 /* PIN 10 */
116 /* PIN 11 */
118 /* PIN 12 */
120 /* PIN 13 */
122 /* PIN 14 */
124 /* PIN 15 */
129 /* PIN 16 */
131 /* PIN 17 */
133 /* PIN 18 */
135 /* PIN 19 */
137 /* PIN 20 */
139 /* PIN 21 */
141 /* PIN 22 */
143 /* PIN 23 */
145 /* PIN 24 */
147 /* PIN 25 */
149 /* PIN 26 */
151 /* PIN 27 */
153 /* PIN 28 */
155 /* PIN 29 */
157 /* PIN 30 */
159 /* PIN 31 */
164 /* PIN 32 */
166 /* PIN 33 */
168 /* PIN 34 */
170 /* PIN 35 */
172 /* PIN 36 */
174 /* PIN 37 */
176 /* PIN 38 */
178 /* PIN 39 */
180 /* PIN 40 */
182 /* PIN 41 */
184 /* PIN 42 */
186 /* PIN 43 */
188 /* PIN 44 */
190 /* PIN 45 */
192 /* PIN 46 */
194 /* PIN 47 */
199 /* PIN 48 */
201 /* PIN 49 */
203 /* PIN 50 */
205 /* PIN 51 */
207 /* PIN 52 */
209 /* PIN 53 */
211 /* PIN 54 */
213 /* PIN 55 */
215 /* PIN 56 */
217 /* PIN 57 */
219 /* PIN 58 */
221 /* PIN 59 */
223 /* PIN 60 */
225 /* PIN 61 */
227 /* PIN 62 */
229 /* PIN 63 */
234 /* PIN 64 */
236 /* PIN 65 */
238 /* PIN 66 */
240 /* PIN 67 */
242 /* PIN 68 */
244 /* PIN 69 */
246 /* PIN 70 */
248 /* PIN 71 */
250 /* PIN 72 */
252 /* PIN 73 */
254 /* PIN 74 */
256 /* PIN 75 */
258 /* PIN 76 */
260 /* PIN 77 */
262 /* PIN 78 */
264 /* PIN 79 */
269 /* PIN 80 */
271 /* PIN 81 */
273 /* PIN 82 */
275 /* PIN 83 */
277 /* PIN 84 */
279 /* PIN 85 */
281 /* PIN 86 */
283 /* PIN 87 */
285 /* PIN 88 */
287 /* PIN 89 */
289 /* PIN 90 */
291 /* PIN 91 */
293 /* PIN 92 */
295 /* PIN 93 */
297 /* PIN 94 */
299 /* PIN 95 */
309 * Macros to map pin numbers to registers and bit fields.
312 #define PIN2MUXSEL_REG(pin) \
313 ((pin / 16) * MUXSEL_REG_SIZE + HW_PINCTRL_MUXSEL0)
314 #define PIN2MUXSEL_SET_REG(pin) \
315 ((pin / 16) * MUXSEL_REG_SIZE + HW_PINCTRL_MUXSEL0_SET)
316 #define PIN2MUXSEL_CLR_REG(pin) \
317 ((pin / 16) * MUXSEL_REG_SIZE + HW_PINCTRL_MUXSEL0_CLR)
318 #define PIN2MUXSEL_MASK(pin) (3<<(pin % 16 * 2))
321 #define PIN2DRIVE_REG(pin) \
322 ((pin / 8) * DRIVE_REG_SIZE + HW_PINCTRL_DRIVE0)
323 #define PIN2DRIVE_SET_REG(pin) \
324 ((pin / 8) * DRIVE_REG_SIZE + HW_PINCTRL_DRIVE0_SET)
325 #define PIN2DRIVE_CLR_REG(pin) \
326 ((pin / 8) * DRIVE_REG_SIZE + HW_PINCTRL_DRIVE0_CLR)
327 #define PIN2DRIVE_MASK(pin) (3<<(pin % 8 * 4))
330 #define PIN2PULL_REG(pin) \
331 ((pin / 32) * PULL_REG_SIZE + HW_PINCTRL_PULL0)
332 #define PIN2PULL_SET_REG(pin) \
333 ((pin / 32) * PULL_REG_SIZE + HW_PINCTRL_PULL0_SET)
334 #define PIN2PULL_CLR_REG(pin) \
335 ((pin / 32) * PULL_REG_SIZE + HW_PINCTRL_PULL0_CLR)
336 #define PIN2PULL_MASK(pin) (1<<(pin % 32))
339 #define PIN2DOUT_REG(pin) \
340 ((pin / 32) * DOUT_REG_SIZE + HW_PINCTRL_DOUT0)
341 #define PIN2DOUT_SET_REG(pin) \
342 ((pin / 32) * DOUT_REG_SIZE + HW_PINCTRL_DOUT0_SET)
343 #define PIN2DOUT_CLR_REG(pin) \
344 ((pin / 32) * DOUT_REG_SIZE + HW_PINCTRL_DOUT0_CLR)
345 #define PIN2DOUT_MASK(pin) (1<<(pin % 32))
348 #define PIN2DIN_REG(pin) ((pin / 32) * DIN_REG_SIZE + HW_PINCTRL_DIN0)
349 #define PIN2DIN_MASK(pin) (1<<(pin % 32))
352 #define PIN2DOE_REG(pin) \
353 ((pin / 32) * DOE_REG_SIZE + HW_PINCTRL_DOE0)
354 #define PIN2DOE_SET_REG(pin) \
355 ((pin / 32) * DOE_REG_SIZE + HW_PINCTRL_DOE0_SET)
356 #define PIN2DOE_CLR_REG(pin) \
357 ((pin / 32) * DOE_REG_SIZE + HW_PINCTRL_DOE0_CLR)
358 #define PIN2DOE_MASK(pin) (1<<(pin % 32))
407 aprint_normal(": PIN MUX & GPIO\n");
409 /* Set pin capabilities. */
498 * MAXI boards. We configure this pin to logic 1.
530 imx23_pinctrl_gp_pin_read(void *cookie, int pin)
535 if (PINCTRL_RD(sc, PIN2DIN_REG(pin)) & PIN2DIN_MASK(pin))
544 imx23_pinctrl_gp_pin_write(void *cookie, int pin, int value)
549 PINCTRL_WR(sc, PIN2DOUT_SET_REG(pin), PIN2DOUT_MASK(pin));
551 PINCTRL_WR(sc, PIN2DOUT_CLR_REG(pin), PIN2DOUT_MASK(pin));
557 * Configure pin as requested in flags.
560 imx23_pinctrl_gp_pin_ctl(void *cookie, int pin, int flags)
565 /* Enable GPIO pin. */
566 tmpr = PINCTRL_RD(sc, PIN2MUXSEL_REG(pin));
567 tmpr &= ~PIN2MUXSEL_MASK(pin);
568 tmpr |= __SHIFTIN(MUXEL_GPIO_MODE, PIN2MUXSEL_MASK(pin));
569 PINCTRL_WR(sc, PIN2MUXSEL_REG(pin), tmpr);
571 /* Configure pin drive strength. */
572 tmpr = PINCTRL_RD(sc, PIN2DRIVE_REG(pin));
573 tmpr &= ~PIN2DRIVE_MASK(pin);
574 tmpr |= __SHIFTIN(DRIVE_STRENGTH_4MA, PIN2DRIVE_MASK(pin));
575 PINCTRL_WR(sc, PIN2DRIVE_REG(pin), tmpr);
580 PINCTRL_WR(sc, PIN2PULL_SET_REG(pin),
581 PIN2PULL_MASK(pin));
583 PINCTRL_WR(sc, PIN2PULL_CLR_REG(pin),
584 PIN2PULL_MASK(pin));
586 /* Set initial pin value to logic zero. */
587 PINCTRL_WR(sc, PIN2DOUT_CLR_REG(pin), PIN2DOUT_MASK(pin));
589 /* Enable pin output. */
590 PINCTRL_WR(sc, PIN2DOE_SET_REG(pin), PIN2DOE_MASK(pin));
594 /* Disable pin output. */
595 PINCTRL_WR(sc, PIN2DOE_CLR_REG(pin), PIN2DOE_MASK(pin));
599 PINCTRL_WR(sc, PIN2PULL_SET_REG(pin),
600 PIN2PULL_MASK(pin));
602 PINCTRL_WR(sc, PIN2PULL_CLR_REG(pin),
603 PIN2PULL_MASK(pin));