Lines Matching +full:gpio +full:- +full:bank +full:- +full:widths

105  *   - name: Register name (unused, for documentation purposes only)
106 * - r: Physical register address
107 * - r_width: Width of the register (in bits)
108 * - f_width: Width of the fixed-width register fields (in bits)
118 * Describe a config register consisting of several fields of different widths
119 * - name: Register name (unused, for documentation purposes only)
120 * - r: Physical register address
121 * - r_width: Width of the register (in bits)
122 * - var_fw0, var_fwn...: List of widths of the register fields (in bits),
150 u32 puen; /* Pull-enable or pull-up control register */
151 u32 pud; /* Pull-up/down control register (optional) */
172 * - name: Register name (unused, for documentation purposes only)
173 * - r: Physical register address
174 * - r_width: Width of the register (in bits)
188 * - ids...: List of GPIOs that are mapped to the same IRQ
191 { .gpios = (const short []) { ids, -1 } }
218 struct sh_pfc_chip *gpio; member
276 /* -----------------------------------------------------------------------------
286 * - data_or_mark: *_DATA or *_MARK enum ID
287 * - ids...: List of enum IDs to associate with data_or_mark
292 * Describe a pinmux configuration without GPIO function that needs
294 * - ipsr: IPSR field (unused, for documentation purposes only)
295 * - fn: Function name, referring to a field in the IPSR
301 * Describe a pinmux configuration with GPIO function that needs configuration
303 * GPIO/Peripheral Function Select Register (GPSR)
304 * - ipsr: IPSR field
305 * - fn: Function name, also referring to the IPSR field
311 * Describe a pinmux configuration without GPIO function that needs
314 * - ipsr: IPSR field (unused, for documentation purposes only)
315 * - fn: Function name, also referring to the IPSR field
316 * - msel: Module selector
322 * Describe a pinmux configuration with GPIO function where the pinmux function
325 * - gpsr: GPSR field
326 * - fn: Function name, also referring to the GPSR field
327 * - gsel: Group selector
333 * Describe a pinmux configuration with GPIO function that needs configuration
334 * in both a Peripheral Function Select Register (IPSR) and a GPIO/Peripheral
337 * - ipsr: IPSR field
338 * - fn: Function name, also referring to the IPSR field
339 * - msel: Module selector
345 * Describe a pinmux configuration for a single-function pin with GPIO
347 * - fn: Function name
356 #define PORT_GP_CFG_1(bank, pin, fn, sfx, cfg) \ argument
357 fn(bank, pin, GP_##bank##_##pin, sfx, cfg)
358 #define PORT_GP_1(bank, pin, fn, sfx) PORT_GP_CFG_1(bank, pin, fn, sfx, 0) argument
360 #define PORT_GP_CFG_4(bank, fn, sfx, cfg) \ argument
361 PORT_GP_CFG_1(bank, 0, fn, sfx, cfg), \
362 PORT_GP_CFG_1(bank, 1, fn, sfx, cfg), \
363 PORT_GP_CFG_1(bank, 2, fn, sfx, cfg), \
364 PORT_GP_CFG_1(bank, 3, fn, sfx, cfg)
365 #define PORT_GP_4(bank, fn, sfx) PORT_GP_CFG_4(bank, fn, sfx, 0) argument
367 #define PORT_GP_CFG_6(bank, fn, sfx, cfg) \ argument
368 PORT_GP_CFG_4(bank, fn, sfx, cfg), \
369 PORT_GP_CFG_1(bank, 4, fn, sfx, cfg), \
370 PORT_GP_CFG_1(bank, 5, fn, sfx, cfg)
371 #define PORT_GP_6(bank, fn, sfx) PORT_GP_CFG_6(bank, fn, sfx, 0) argument
373 #define PORT_GP_CFG_8(bank, fn, sfx, cfg) \ argument
374 PORT_GP_CFG_6(bank, fn, sfx, cfg), \
375 PORT_GP_CFG_1(bank, 6, fn, sfx, cfg), \
376 PORT_GP_CFG_1(bank, 7, fn, sfx, cfg)
377 #define PORT_GP_8(bank, fn, sfx) PORT_GP_CFG_8(bank, fn, sfx, 0) argument
379 #define PORT_GP_CFG_9(bank, fn, sfx, cfg) \ argument
380 PORT_GP_CFG_8(bank, fn, sfx, cfg), \
381 PORT_GP_CFG_1(bank, 8, fn, sfx, cfg)
382 #define PORT_GP_9(bank, fn, sfx) PORT_GP_CFG_9(bank, fn, sfx, 0) argument
384 #define PORT_GP_CFG_10(bank, fn, sfx, cfg) \ argument
385 PORT_GP_CFG_9(bank, fn, sfx, cfg), \
386 PORT_GP_CFG_1(bank, 9, fn, sfx, cfg)
387 #define PORT_GP_10(bank, fn, sfx) PORT_GP_CFG_10(bank, fn, sfx, 0) argument
389 #define PORT_GP_CFG_11(bank, fn, sfx, cfg) \ argument
390 PORT_GP_CFG_10(bank, fn, sfx, cfg), \
391 PORT_GP_CFG_1(bank, 10, fn, sfx, cfg)
392 #define PORT_GP_11(bank, fn, sfx) PORT_GP_CFG_11(bank, fn, sfx, 0) argument
394 #define PORT_GP_CFG_12(bank, fn, sfx, cfg) \ argument
395 PORT_GP_CFG_10(bank, fn, sfx, cfg), \
396 PORT_GP_CFG_1(bank, 10, fn, sfx, cfg), \
397 PORT_GP_CFG_1(bank, 11, fn, sfx, cfg)
398 #define PORT_GP_12(bank, fn, sfx) PORT_GP_CFG_12(bank, fn, sfx, 0) argument
400 #define PORT_GP_CFG_14(bank, fn, sfx, cfg) \ argument
401 PORT_GP_CFG_12(bank, fn, sfx, cfg), \
402 PORT_GP_CFG_1(bank, 12, fn, sfx, cfg), \
403 PORT_GP_CFG_1(bank, 13, fn, sfx, cfg)
404 #define PORT_GP_14(bank, fn, sfx) PORT_GP_CFG_14(bank, fn, sfx, 0) argument
406 #define PORT_GP_CFG_15(bank, fn, sfx, cfg) \ argument
407 PORT_GP_CFG_14(bank, fn, sfx, cfg), \
408 PORT_GP_CFG_1(bank, 14, fn, sfx, cfg)
409 #define PORT_GP_15(bank, fn, sfx) PORT_GP_CFG_15(bank, fn, sfx, 0) argument
411 #define PORT_GP_CFG_16(bank, fn, sfx, cfg) \ argument
412 PORT_GP_CFG_15(bank, fn, sfx, cfg), \
413 PORT_GP_CFG_1(bank, 15, fn, sfx, cfg)
414 #define PORT_GP_16(bank, fn, sfx) PORT_GP_CFG_16(bank, fn, sfx, 0) argument
416 #define PORT_GP_CFG_17(bank, fn, sfx, cfg) \ argument
417 PORT_GP_CFG_16(bank, fn, sfx, cfg), \
418 PORT_GP_CFG_1(bank, 16, fn, sfx, cfg)
419 #define PORT_GP_17(bank, fn, sfx) PORT_GP_CFG_17(bank, fn, sfx, 0) argument
421 #define PORT_GP_CFG_18(bank, fn, sfx, cfg) \ argument
422 PORT_GP_CFG_17(bank, fn, sfx, cfg), \
423 PORT_GP_CFG_1(bank, 17, fn, sfx, cfg)
424 #define PORT_GP_18(bank, fn, sfx) PORT_GP_CFG_18(bank, fn, sfx, 0) argument
426 #define PORT_GP_CFG_20(bank, fn, sfx, cfg) \ argument
427 PORT_GP_CFG_18(bank, fn, sfx, cfg), \
428 PORT_GP_CFG_1(bank, 18, fn, sfx, cfg), \
429 PORT_GP_CFG_1(bank, 19, fn, sfx, cfg)
430 #define PORT_GP_20(bank, fn, sfx) PORT_GP_CFG_20(bank, fn, sfx, 0) argument
432 #define PORT_GP_CFG_21(bank, fn, sfx, cfg) \ argument
433 PORT_GP_CFG_20(bank, fn, sfx, cfg), \
434 PORT_GP_CFG_1(bank, 20, fn, sfx, cfg)
435 #define PORT_GP_21(bank, fn, sfx) PORT_GP_CFG_21(bank, fn, sfx, 0) argument
437 #define PORT_GP_CFG_22(bank, fn, sfx, cfg) \ argument
438 PORT_GP_CFG_21(bank, fn, sfx, cfg), \
439 PORT_GP_CFG_1(bank, 21, fn, sfx, cfg)
440 #define PORT_GP_22(bank, fn, sfx) PORT_GP_CFG_22(bank, fn, sfx, 0) argument
442 #define PORT_GP_CFG_23(bank, fn, sfx, cfg) \ argument
443 PORT_GP_CFG_22(bank, fn, sfx, cfg), \
444 PORT_GP_CFG_1(bank, 22, fn, sfx, cfg)
445 #define PORT_GP_23(bank, fn, sfx) PORT_GP_CFG_23(bank, fn, sfx, 0) argument
447 #define PORT_GP_CFG_24(bank, fn, sfx, cfg) \ argument
448 PORT_GP_CFG_23(bank, fn, sfx, cfg), \
449 PORT_GP_CFG_1(bank, 23, fn, sfx, cfg)
450 #define PORT_GP_24(bank, fn, sfx) PORT_GP_CFG_24(bank, fn, sfx, 0) argument
452 #define PORT_GP_CFG_25(bank, fn, sfx, cfg) \ argument
453 PORT_GP_CFG_24(bank, fn, sfx, cfg), \
454 PORT_GP_CFG_1(bank, 24, fn, sfx, cfg)
455 #define PORT_GP_25(bank, fn, sfx) PORT_GP_CFG_25(bank, fn, sfx, 0) argument
457 #define PORT_GP_CFG_26(bank, fn, sfx, cfg) \ argument
458 PORT_GP_CFG_25(bank, fn, sfx, cfg), \
459 PORT_GP_CFG_1(bank, 25, fn, sfx, cfg)
460 #define PORT_GP_26(bank, fn, sfx) PORT_GP_CFG_26(bank, fn, sfx, 0) argument
462 #define PORT_GP_CFG_28(bank, fn, sfx, cfg) \ argument
463 PORT_GP_CFG_26(bank, fn, sfx, cfg), \
464 PORT_GP_CFG_1(bank, 26, fn, sfx, cfg), \
465 PORT_GP_CFG_1(bank, 27, fn, sfx, cfg)
466 #define PORT_GP_28(bank, fn, sfx) PORT_GP_CFG_28(bank, fn, sfx, 0) argument
468 #define PORT_GP_CFG_29(bank, fn, sfx, cfg) \ argument
469 PORT_GP_CFG_28(bank, fn, sfx, cfg), \
470 PORT_GP_CFG_1(bank, 28, fn, sfx, cfg)
471 #define PORT_GP_29(bank, fn, sfx) PORT_GP_CFG_29(bank, fn, sfx, 0) argument
473 #define PORT_GP_CFG_30(bank, fn, sfx, cfg) \ argument
474 PORT_GP_CFG_29(bank, fn, sfx, cfg), \
475 PORT_GP_CFG_1(bank, 29, fn, sfx, cfg)
476 #define PORT_GP_30(bank, fn, sfx) PORT_GP_CFG_30(bank, fn, sfx, 0) argument
478 #define PORT_GP_CFG_32(bank, fn, sfx, cfg) \ argument
479 PORT_GP_CFG_30(bank, fn, sfx, cfg), \
480 PORT_GP_CFG_1(bank, 30, fn, sfx, cfg), \
481 PORT_GP_CFG_1(bank, 31, fn, sfx, cfg)
482 #define PORT_GP_32(bank, fn, sfx) PORT_GP_CFG_32(bank, fn, sfx, 0) argument
484 #define PORT_GP_32_REV(bank, fn, sfx) \ argument
485 PORT_GP_1(bank, 31, fn, sfx), PORT_GP_1(bank, 30, fn, sfx), \
486 PORT_GP_1(bank, 29, fn, sfx), PORT_GP_1(bank, 28, fn, sfx), \
487 PORT_GP_1(bank, 27, fn, sfx), PORT_GP_1(bank, 26, fn, sfx), \
488 PORT_GP_1(bank, 25, fn, sfx), PORT_GP_1(bank, 24, fn, sfx), \
489 PORT_GP_1(bank, 23, fn, sfx), PORT_GP_1(bank, 22, fn, sfx), \
490 PORT_GP_1(bank, 21, fn, sfx), PORT_GP_1(bank, 20, fn, sfx), \
491 PORT_GP_1(bank, 19, fn, sfx), PORT_GP_1(bank, 18, fn, sfx), \
492 PORT_GP_1(bank, 17, fn, sfx), PORT_GP_1(bank, 16, fn, sfx), \
493 PORT_GP_1(bank, 15, fn, sfx), PORT_GP_1(bank, 14, fn, sfx), \
494 PORT_GP_1(bank, 13, fn, sfx), PORT_GP_1(bank, 12, fn, sfx), \
495 PORT_GP_1(bank, 11, fn, sfx), PORT_GP_1(bank, 10, fn, sfx), \
496 PORT_GP_1(bank, 9, fn, sfx), PORT_GP_1(bank, 8, fn, sfx), \
497 PORT_GP_1(bank, 7, fn, sfx), PORT_GP_1(bank, 6, fn, sfx), \
498 PORT_GP_1(bank, 5, fn, sfx), PORT_GP_1(bank, 4, fn, sfx), \
499 PORT_GP_1(bank, 3, fn, sfx), PORT_GP_1(bank, 2, fn, sfx), \
500 PORT_GP_1(bank, 1, fn, sfx), PORT_GP_1(bank, 0, fn, sfx)
502 /* GP_ALL(suffix) - Expand to a list of GP_#_#_suffix */
503 #define _GP_ALL(bank, pin, name, sfx, cfg) name##_##sfx argument
506 /* PINMUX_GPIO_GP_ALL - Expand to a list of sh_pfc_pin entries */
507 #define _GP_GPIO(bank, _pin, _name, sfx, cfg) \ argument
509 .pin = (bank * 32) + _pin, \
516 /* PINMUX_DATA_GP_ALL - Expand to a list of name_DATA, name_FN marks */
517 #define _GP_DATA(bank, pin, name, sfx, cfg) PINMUX_DATA(name##_DATA, name##_FN) argument
540 /* PORT_ALL(suffix) - Expand to a list of PORT_#_suffix */
544 /* PINMUX_GPIO - Expand to a sh_pfc_pin entry */
547 .pin = (u16)-1, \
552 /* SH_PFC_PIN_CFG - Expand to a sh_pfc_pin entry (named PORT#) with config */
561 /* SH_PFC_PIN_NAMED - Expand to a sh_pfc_pin entry with the given name */
569 /* SH_PFC_PIN_NAMED_CFG - Expand to a sh_pfc_pin entry with the given name */
577 /* PINMUX_DATA_ALL - Expand to a list of PORT_name_DATA, PORT_name_FN0,
585 /* GPIO_FN(name) - Expand to a sh_pfc_pin entry for a function GPIO */
586 #define PINMUX_GPIO_FN(gpio, base, data_or_mark) \ argument
587 [gpio - (base)] = { \
588 .name = __stringify(gpio), \
595 * PORTnCR helper macro for SH-Mobile/R-Mobile
615 * GPIO number helper macro for R-Car
617 #define RCAR_GP_PIN(bank, pin) (((bank) * 32) + (pin)) argument