22
22
#include <linux/gpio.h>
23
23
#include <mach/sh7377.h>
25
#define _1(fn, pfx, sfx) fn(pfx, sfx)
27
#define _10(fn, pfx, sfx) \
28
_1(fn, pfx##0, sfx), _1(fn, pfx##1, sfx), \
29
_1(fn, pfx##2, sfx), _1(fn, pfx##3, sfx), \
30
_1(fn, pfx##4, sfx), _1(fn, pfx##5, sfx), \
31
_1(fn, pfx##6, sfx), _1(fn, pfx##7, sfx), \
32
_1(fn, pfx##8, sfx), _1(fn, pfx##9, sfx)
34
#define _90(fn, pfx, sfx) \
35
_10(fn, pfx##1, sfx), _10(fn, pfx##2, sfx), \
36
_10(fn, pfx##3, sfx), _10(fn, pfx##4, sfx), \
37
_10(fn, pfx##5, sfx), _10(fn, pfx##6, sfx), \
38
_10(fn, pfx##7, sfx), _10(fn, pfx##8, sfx), \
41
#define _265(fn, pfx, sfx) \
42
_10(fn, pfx, sfx), _90(fn, pfx, sfx), \
43
_10(fn, pfx##10, sfx), \
44
_1(fn, pfx##110, sfx), _1(fn, pfx##111, sfx), \
45
_1(fn, pfx##112, sfx), _1(fn, pfx##113, sfx), \
46
_1(fn, pfx##114, sfx), _1(fn, pfx##115, sfx), \
47
_1(fn, pfx##116, sfx), _1(fn, pfx##117, sfx), \
48
_1(fn, pfx##118, sfx), \
49
_1(fn, pfx##128, sfx), _1(fn, pfx##129, sfx), \
50
_10(fn, pfx##13, sfx), _10(fn, pfx##14, sfx), \
51
_10(fn, pfx##15, sfx), \
52
_1(fn, pfx##160, sfx), _1(fn, pfx##161, sfx), \
53
_1(fn, pfx##162, sfx), _1(fn, pfx##163, sfx), \
54
_1(fn, pfx##164, sfx), \
55
_1(fn, pfx##192, sfx), _1(fn, pfx##193, sfx), \
56
_1(fn, pfx##194, sfx), _1(fn, pfx##195, sfx), \
57
_1(fn, pfx##196, sfx), _1(fn, pfx##197, sfx), \
58
_1(fn, pfx##198, sfx), _1(fn, pfx##199, sfx), \
59
_10(fn, pfx##20, sfx), _10(fn, pfx##21, sfx), \
60
_10(fn, pfx##22, sfx), _10(fn, pfx##23, sfx), \
61
_10(fn, pfx##24, sfx), _10(fn, pfx##25, sfx), \
62
_1(fn, pfx##260, sfx), _1(fn, pfx##261, sfx), \
63
_1(fn, pfx##262, sfx), _1(fn, pfx##263, sfx), \
66
#define _PORT(pfx, sfx) pfx##_##sfx
67
#define PORT_265(str) _265(_PORT, PORT, str)
25
#define CPU_ALL_PORT(fn, pfx, sfx) \
26
PORT_10(fn, pfx, sfx), PORT_90(fn, pfx, sfx), \
27
PORT_10(fn, pfx##10, sfx), \
28
PORT_1(fn, pfx##110, sfx), PORT_1(fn, pfx##111, sfx), \
29
PORT_1(fn, pfx##112, sfx), PORT_1(fn, pfx##113, sfx), \
30
PORT_1(fn, pfx##114, sfx), PORT_1(fn, pfx##115, sfx), \
31
PORT_1(fn, pfx##116, sfx), PORT_1(fn, pfx##117, sfx), \
32
PORT_1(fn, pfx##118, sfx), \
33
PORT_1(fn, pfx##128, sfx), PORT_1(fn, pfx##129, sfx), \
34
PORT_10(fn, pfx##13, sfx), PORT_10(fn, pfx##14, sfx), \
35
PORT_10(fn, pfx##15, sfx), \
36
PORT_1(fn, pfx##160, sfx), PORT_1(fn, pfx##161, sfx), \
37
PORT_1(fn, pfx##162, sfx), PORT_1(fn, pfx##163, sfx), \
38
PORT_1(fn, pfx##164, sfx), \
39
PORT_1(fn, pfx##192, sfx), PORT_1(fn, pfx##193, sfx), \
40
PORT_1(fn, pfx##194, sfx), PORT_1(fn, pfx##195, sfx), \
41
PORT_1(fn, pfx##196, sfx), PORT_1(fn, pfx##197, sfx), \
42
PORT_1(fn, pfx##198, sfx), PORT_1(fn, pfx##199, sfx), \
43
PORT_10(fn, pfx##20, sfx), PORT_10(fn, pfx##21, sfx), \
44
PORT_10(fn, pfx##22, sfx), PORT_10(fn, pfx##23, sfx), \
45
PORT_10(fn, pfx##24, sfx), PORT_10(fn, pfx##25, sfx), \
46
PORT_1(fn, pfx##260, sfx), PORT_1(fn, pfx##261, sfx), \
47
PORT_1(fn, pfx##262, sfx), PORT_1(fn, pfx##263, sfx), \
48
PORT_1(fn, pfx##264, sfx)
70
51
PINMUX_RESERVED = 0,
73
PORT_265(DATA), /* PORT0_DATA -> PORT264_DATA */
54
PORT_ALL(DATA), /* PORT0_DATA -> PORT264_DATA */
76
57
PINMUX_INPUT_BEGIN,
77
PORT_265(IN), /* PORT0_IN -> PORT264_IN */
58
PORT_ALL(IN), /* PORT0_IN -> PORT264_IN */
80
61
PINMUX_INPUT_PULLUP_BEGIN,
81
PORT_265(IN_PU), /* PORT0_IN_PU -> PORT264_IN_PU */
62
PORT_ALL(IN_PU), /* PORT0_IN_PU -> PORT264_IN_PU */
82
63
PINMUX_INPUT_PULLUP_END,
84
65
PINMUX_INPUT_PULLDOWN_BEGIN,
85
PORT_265(IN_PD), /* PORT0_IN_PD -> PORT264_IN_PD */
66
PORT_ALL(IN_PD), /* PORT0_IN_PD -> PORT264_IN_PD */
86
67
PINMUX_INPUT_PULLDOWN_END,
88
69
PINMUX_OUTPUT_BEGIN,
89
PORT_265(OUT), /* PORT0_OUT -> PORT264_OUT */
70
PORT_ALL(OUT), /* PORT0_OUT -> PORT264_OUT */
92
73
PINMUX_FUNCTION_BEGIN,
93
PORT_265(FN_IN), /* PORT0_FN_IN -> PORT264_FN_IN */
94
PORT_265(FN_OUT), /* PORT0_FN_OUT -> PORT264_FN_OUT */
95
PORT_265(FN0), /* PORT0_FN0 -> PORT264_FN0 */
96
PORT_265(FN1), /* PORT0_FN1 -> PORT264_FN1 */
97
PORT_265(FN2), /* PORT0_FN2 -> PORT264_FN2 */
98
PORT_265(FN3), /* PORT0_FN3 -> PORT264_FN3 */
99
PORT_265(FN4), /* PORT0_FN4 -> PORT264_FN4 */
100
PORT_265(FN5), /* PORT0_FN5 -> PORT264_FN5 */
101
PORT_265(FN6), /* PORT0_FN6 -> PORT264_FN6 */
102
PORT_265(FN7), /* PORT0_FN7 -> PORT264_FN7 */
74
PORT_ALL(FN_IN), /* PORT0_FN_IN -> PORT264_FN_IN */
75
PORT_ALL(FN_OUT), /* PORT0_FN_OUT -> PORT264_FN_OUT */
76
PORT_ALL(FN0), /* PORT0_FN0 -> PORT264_FN0 */
77
PORT_ALL(FN1), /* PORT0_FN1 -> PORT264_FN1 */
78
PORT_ALL(FN2), /* PORT0_FN2 -> PORT264_FN2 */
79
PORT_ALL(FN3), /* PORT0_FN3 -> PORT264_FN3 */
80
PORT_ALL(FN4), /* PORT0_FN4 -> PORT264_FN4 */
81
PORT_ALL(FN5), /* PORT0_FN5 -> PORT264_FN5 */
82
PORT_ALL(FN6), /* PORT0_FN6 -> PORT264_FN6 */
83
PORT_ALL(FN7), /* PORT0_FN7 -> PORT264_FN7 */
104
85
MSELBCR_MSEL17_1, MSELBCR_MSEL17_0,
105
86
MSELBCR_MSEL16_1, MSELBCR_MSEL16_0,