aboutsummaryrefslogtreecommitdiff
path: root/drivers/pinctrl/pxa/pinctrl-pxa25x.c
blob: 2a4842557bb261cd5800ce25c8d55a2071ff4a66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Marvell PXA25x family pin control
 *
 * Copyright (C) 2016 Robert Jarzmik
 */
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/of.h>
#include <linux/pinctrl/pinctrl.h>

#include "pinctrl-pxa2xx.h"

static const struct pxa_desc_pin pxa25x_pins[] = {
	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(0)),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(1),
		     PXA_FUNCTION(0, 1, "GP_RST")),
	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(2)),
	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(3)),
	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(4)),
	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(5)),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(6),
		     PXA_FUNCTION(1, 1, "MMCCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(7),
		     PXA_FUNCTION(1, 1, "48_MHz")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(8),
		     PXA_FUNCTION(1, 1, "MMCCS0")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(9),
		     PXA_FUNCTION(1, 1, "MMCCS1")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(10),
		     PXA_FUNCTION(1, 1, "RTCCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(11),
		     PXA_FUNCTION(1, 1, "3_6_MHz")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(12),
		     PXA_FUNCTION(1, 1, "32_kHz")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(13),
		     PXA_FUNCTION(1, 2, "MBGNT")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(14),
		     PXA_FUNCTION(0, 1, "MBREQ")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(15),
		     PXA_FUNCTION(1, 2, "nCS_1")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(16),
		     PXA_FUNCTION(1, 2, "PWM0")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(17),
		     PXA_FUNCTION(1, 2, "PWM1")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(18),
		     PXA_FUNCTION(0, 1, "RDY")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(19),
		     PXA_FUNCTION(0, 1, "DREQ[1]")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(20),
		     PXA_FUNCTION(0, 1, "DREQ[0]")),
	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(21)),
	PXA_GPIO_ONLY_PIN(PXA_PINCTRL_PIN(22)),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(23),
		     PXA_FUNCTION(1, 2, "SCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(24),
		     PXA_FUNCTION(1, 2, "SFRM")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(25),
		     PXA_FUNCTION(1, 2, "TXD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(26),
		     PXA_FUNCTION(0, 1, "RXD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(27),
		     PXA_FUNCTION(0, 1, "EXTCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(28),
		     PXA_FUNCTION(0, 1, "BITCLK"),
		     PXA_FUNCTION(0, 2, "BITCLK"),
		     PXA_FUNCTION(1, 1, "BITCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(29),
		     PXA_FUNCTION(0, 1, "SDATA_IN0"),
		     PXA_FUNCTION(0, 2, "SDATA_IN")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(30),
		     PXA_FUNCTION(1, 1, "SDATA_OUT"),
		     PXA_FUNCTION(1, 2, "SDATA_OUT")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(31),
		     PXA_FUNCTION(1, 1, "SYNC"),
		     PXA_FUNCTION(1, 2, "SYNC")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(32),
		     PXA_FUNCTION(0, 1, "SDATA_IN1"),
		     PXA_FUNCTION(1, 1, "SYSCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(33),
		     PXA_FUNCTION(1, 2, "nCS[5]")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(34),
		     PXA_FUNCTION(0, 1, "FFRXD"),
		     PXA_FUNCTION(1, 2, "MMCCS0")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(35),
		     PXA_FUNCTION(0, 1, "CTS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(36),
		     PXA_FUNCTION(0, 1, "DCD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(37),
		     PXA_FUNCTION(0, 1, "DSR")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(38),
		     PXA_FUNCTION(0, 1, "RI")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(39),
		     PXA_FUNCTION(1, 1, "MMCC1"),
		     PXA_FUNCTION(1, 2, "FFTXD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(40),
		     PXA_FUNCTION(1, 2, "DTR")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(41),
		     PXA_FUNCTION(1, 2, "RTS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(42),
		     PXA_FUNCTION(0, 1, "BTRXD"),
		     PXA_FUNCTION(0, 3, "HWRXD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(43),
		     PXA_FUNCTION(1, 2, "BTTXD"),
		     PXA_FUNCTION(1, 3, "HWTXD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(44),
		     PXA_FUNCTION(0, 1, "BTCTS"),
		     PXA_FUNCTION(0, 3, "HWCTS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(45),
		     PXA_FUNCTION(1, 2, "BTRTS"),
		     PXA_FUNCTION(1, 3, "HWRTS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(46),
		     PXA_FUNCTION(0, 1, "ICP_RXD"),
		     PXA_FUNCTION(0, 2, "RXD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(47),
		     PXA_FUNCTION(1, 1, "TXD"),
		     PXA_FUNCTION(1, 2, "ICP_TXD")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(48),
		     PXA_FUNCTION(1, 1, "HWTXD"),
		     PXA_FUNCTION(1, 2, "nPOE")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(49),
		     PXA_FUNCTION(0, 1, "HWRXD"),
		     PXA_FUNCTION(1, 2, "nPWE")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(50),
		     PXA_FUNCTION(0, 1, "HWCTS"),
		     PXA_FUNCTION(1, 2, "nPIOR")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(51),
		     PXA_FUNCTION(1, 1, "HWRTS"),
		     PXA_FUNCTION(1, 2, "nPIOW")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(52),
		     PXA_FUNCTION(1, 2, "nPCE[1]")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(53),
		     PXA_FUNCTION(1, 1, "MMCCLK"),
		     PXA_FUNCTION(1, 2, "nPCE[2]")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(54),
		     PXA_FUNCTION(1, 1, "MMCCLK"),
		     PXA_FUNCTION(1, 2, "nPSKTSEL")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(55),
		     PXA_FUNCTION(1, 2, "nPREG")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(56),
		     PXA_FUNCTION(0, 1, "nPWAIT")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(57),
		     PXA_FUNCTION(0, 1, "nIOIS16")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(58),
		     PXA_FUNCTION(1, 2, "LDD<0>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(59),
		     PXA_FUNCTION(1, 2, "LDD<1>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(60),
		     PXA_FUNCTION(1, 2, "LDD<2>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(61),
		     PXA_FUNCTION(1, 2, "LDD<3>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(62),
		     PXA_FUNCTION(1, 2, "LDD<4>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(63),
		     PXA_FUNCTION(1, 2, "LDD<5>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(64),
		     PXA_FUNCTION(1, 2, "LDD<6>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(65),
		     PXA_FUNCTION(1, 2, "LDD<7>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(66),
		     PXA_FUNCTION(0, 1, "MBREQ"),
		     PXA_FUNCTION(1, 2, "LDD<8>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(67),
		     PXA_FUNCTION(1, 1, "MMCCS0"),
		     PXA_FUNCTION(1, 2, "LDD<9>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(68),
		     PXA_FUNCTION(1, 1, "MMCCS1"),
		     PXA_FUNCTION(1, 2, "LDD<10>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(69),
		     PXA_FUNCTION(1, 1, "MMCCLK"),
		     PXA_FUNCTION(1, 2, "LDD<11>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(70),
		     PXA_FUNCTION(1, 1, "RTCCLK"),
		     PXA_FUNCTION(1, 2, "LDD<12>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(71),
		     PXA_FUNCTION(1, 1, "3_6_MHz"),
		     PXA_FUNCTION(1, 2, "LDD<13>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(72),
		     PXA_FUNCTION(1, 1, "32_kHz"),
		     PXA_FUNCTION(1, 2, "LDD<14>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(73),
		     PXA_FUNCTION(1, 1, "MBGNT"),
		     PXA_FUNCTION(1, 2, "LDD<15>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(74),
		     PXA_FUNCTION(1, 2, "LCD_FCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(75),
		     PXA_FUNCTION(1, 2, "LCD_LCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(76),
		     PXA_FUNCTION(1, 2, "LCD_PCLK")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(77),
		     PXA_FUNCTION(1, 2, "LCD_ACBIAS")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(78),
		     PXA_FUNCTION(1, 2, "nCS<2>")),
	PXA_GPIO_PIN(PXA_PINCTRL_PIN(