hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/arm/boot/dts/s5pv210-galaxys.dts
....@@ -11,13 +11,6 @@
1111
1212 chosen {
1313 stdout-path = &uart2;
14
- /*
15
- * It's hard to change those parameters in stock bootloader,
16
- * since it requires special hardware/cable.
17
- * Let's hardocde bootargs for now, till u-boot port is finished,
18
- * with which it should be easier.
19
- */
20
- bootargs = "root=/dev/mmcblk2p1 rw rootwait ignore_loglevel earlyprintk";
2114 };
2215
2316 nand_pwrseq: nand-pwrseq {
....@@ -56,14 +49,387 @@
5649 wakeup-source;
5750 };
5851 };
52
+
53
+ i2c_fmradio: i2c-gpio-8 {
54
+ compatible = "i2c-gpio";
55
+ sda-gpios = <&gpd1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
56
+ scl-gpios = <&gpd1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
57
+ i2c-gpio,delay-us = <2>;
58
+ #address-cells = <1>;
59
+ #size-cells = <0>;
60
+
61
+ pinctrl-names = "default";
62
+ pinctrl-0 = <&fm_i2c_pins>;
63
+
64
+ fmradio@10 {
65
+ compatible = "silabs,si470x";
66
+ reg = <0x10>;
67
+ interrupt-parent = <&gpj2>;
68
+ interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
69
+ reset-gpios = <&gpj2 5 GPIO_ACTIVE_HIGH>;
70
+
71
+ pinctrl-names = "default";
72
+ pinctrl-0 = <&fm_irq &fm_rst>;
73
+ };
74
+ };
75
+
76
+ micbias_reg: regulator-fixed-3 {
77
+ compatible = "regulator-fixed";
78
+ regulator-name = "MICBIAS";
79
+ gpio = <&gpj4 2 GPIO_ACTIVE_HIGH>;
80
+ enable-active-high;
81
+
82
+ pinctrl-names = "default";
83
+ pinctrl-0 = <&micbias_reg_ena>;
84
+ };
85
+
86
+ sound {
87
+ compatible = "samsung,aries-wm8994";
88
+
89
+ model = "Aries";
90
+
91
+ extcon = <&fsa9480>;
92
+
93
+ main-micbias-supply = <&micbias_reg>;
94
+ headset-micbias-supply = <&micbias_reg>;
95
+
96
+ earpath-sel-gpios = <&gpj2 6 GPIO_ACTIVE_HIGH>;
97
+
98
+ io-channels = <&adc 3>;
99
+ io-channel-names = "headset-detect";
100
+ headset-detect-gpios = <&gph0 6 GPIO_ACTIVE_LOW>;
101
+ headset-key-gpios = <&gph3 6 GPIO_ACTIVE_HIGH>;
102
+
103
+ samsung,audio-routing =
104
+ "HP", "HPOUT1L",
105
+ "HP", "HPOUT1R",
106
+
107
+ "SPK", "SPKOUTLN",
108
+ "SPK", "SPKOUTLP",
109
+
110
+ "RCV", "HPOUT2N",
111
+ "RCV", "HPOUT2P",
112
+
113
+ "LINE", "LINEOUT2N",
114
+ "LINE", "LINEOUT2P",
115
+
116
+ "IN1LP", "Main Mic",
117
+ "IN1LN", "Main Mic",
118
+
119
+ "IN1RP", "Headset Mic",
120
+ "IN1RN", "Headset Mic",
121
+
122
+ "IN2LN", "FM In",
123
+ "IN2RN", "FM In",
124
+
125
+ "Modem Out", "Modem TX",
126
+ "Modem RX", "Modem In",
127
+
128
+ "Bluetooth SPK", "TX",
129
+ "RX", "Bluetooth Mic";
130
+
131
+ pinctrl-names = "default";
132
+ pinctrl-0 = <&headset_det &earpath_sel>;
133
+
134
+ cpu {
135
+ sound-dai = <&i2s0>, <&bt_codec>;
136
+ };
137
+
138
+ codec {
139
+ sound-dai = <&wm8994>;
140
+ };
141
+ };
142
+};
143
+
144
+&aliases {
145
+ i2c8 = &i2c_fmradio;
59146 };
60147
61148 &pinctrl0 {
149
+ pinctrl-names = "default";
150
+ pinctrl-0 = <&sleep_cfg>;
151
+
152
+ fm_i2c_pins: fm-i2c-pins {
153
+ samsung,pins = "gpd1-2", "gpd1-3";
154
+ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
155
+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
156
+ };
157
+
158
+ headset_det: headset-det {
159
+ samsung,pins = "gph0-6", "gph3-6";
160
+ samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
161
+ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
162
+ };
163
+
164
+ fm_irq: fm-irq {
165
+ samsung,pins = "gpj2-4";
166
+ samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
167
+ samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
168
+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
169
+ };
170
+
171
+ fm_rst: fm-rst {
172
+ samsung,pins = "gpj2-5";
173
+ samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
174
+ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
175
+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
176
+ };
177
+
178
+ earpath_sel: earpath-sel {
179
+ samsung,pins = "gpj2-6";
180
+ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
181
+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
182
+ };
183
+
62184 massmemory_en: massmemory-en {
63185 samsung,pins = "gpj2-7";
64186 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
65187 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
66188 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
189
+ };
190
+
191
+ micbias_reg_ena: micbias-reg-ena {
192
+ samsung,pins = "gpj4-2";
193
+ samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
194
+ samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
195
+ };
196
+
197
+ /* Based on CyanogenMod 3.0.101 kernel */
198
+ sleep_cfg: sleep-cfg {
199
+ PIN_SLP(gpa0-0, PREV, NONE);
200
+ PIN_SLP(gpa0-1, PREV, NONE);
201
+ PIN_SLP(gpa0-2, PREV, NONE);
202
+ PIN_SLP(gpa0-3, OUT1, NONE);
203
+ PIN_SLP(gpa0-4, INPUT, DOWN);
204
+ PIN_SLP(gpa0-5, OUT0, NONE);
205
+ PIN_SLP(gpa0-6, INPUT, DOWN);
206
+ PIN_SLP(gpa0-7, OUT1, NONE);
207
+
208
+ PIN_SLP(gpa1-0, INPUT, DOWN);
209
+ PIN_SLP(gpa1-1, OUT0, NONE);
210
+ PIN_SLP(gpa1-2, INPUT, NONE);
211
+ PIN_SLP(gpa1-3, OUT0, NONE);
212
+
213
+ PIN_SLP(gpb-0, OUT0, NONE);
214
+ PIN_SLP(gpb-1, OUT1, NONE);
215
+ PIN_SLP(gpb-2, OUT0, NONE);
216
+ PIN_SLP(gpb-3, PREV, NONE);
217
+ PIN_SLP(gpb-4, INPUT, NONE);
218
+ PIN_SLP(gpb-5, PREV, NONE);
219
+ PIN_SLP(gpb-6, INPUT, DOWN);
220
+ PIN_SLP(gpb-7, OUT0, NONE);
221
+
222
+ PIN_SLP(gpc0-0, OUT0, NONE);
223
+ PIN_SLP(gpc0-1, INPUT, DOWN);
224
+ PIN_SLP(gpc0-2, OUT0, NONE);
225
+ PIN_SLP(gpc0-3, INPUT, NONE);
226
+ PIN_SLP(gpc0-4, OUT0, NONE);
227
+
228
+ PIN_SLP(gpc1-0, INPUT, DOWN);
229
+ PIN_SLP(gpc1-1, INPUT, DOWN);
230
+ PIN_SLP(gpc1-2, INPUT, DOWN);
231
+ PIN_SLP(gpc1-3, INPUT, DOWN);
232
+ PIN_SLP(gpc1-4, INPUT, DOWN);
233
+
234
+ PIN_SLP(gpd0-0, INPUT, DOWN);
235
+ PIN_SLP(gpd0-1, OUT0, NONE);
236
+ PIN_SLP(gpd0-2, INPUT, DOWN);
237
+ PIN_SLP(gpd0-3, INPUT, DOWN);
238
+
239
+ PIN_SLP(gpd1-0, INPUT, NONE);
240
+ PIN_SLP(gpd1-1, INPUT, NONE);
241
+ PIN_SLP(gpd1-2, INPUT, NONE);
242
+ PIN_SLP(gpd1-3, INPUT, NONE);
243
+ PIN_SLP(gpd1-4, INPUT, DOWN);
244
+ PIN_SLP(gpd1-5, INPUT, DOWN);
245
+
246
+ PIN_SLP(gpe0-0, INPUT, DOWN);
247
+ PIN_SLP(gpe0-1, INPUT, DOWN);
248
+ PIN_SLP(gpe0-2, INPUT, DOWN);
249
+ PIN_SLP(gpe0-3, INPUT, DOWN);
250
+ PIN_SLP(gpe0-4, INPUT, DOWN);
251
+ PIN_SLP(gpe0-5, INPUT, DOWN);
252
+ PIN_SLP(gpe0-6, INPUT, DOWN);
253
+ PIN_SLP(gpe0-7, INPUT, DOWN);
254
+
255
+ PIN_SLP(gpe1-0, INPUT, DOWN);
256
+ PIN_SLP(gpe1-1, INPUT, DOWN);
257
+ PIN_SLP(gpe1-2, INPUT, DOWN);
258
+ PIN_SLP(gpe1-3, OUT0, NONE);
259
+ PIN_SLP(gpe1-4, INPUT, DOWN);
260
+
261
+ PIN_SLP(gpf0-0, OUT0, NONE);
262
+ PIN_SLP(gpf0-1, OUT0, NONE);
263
+ PIN_SLP(gpf0-2, OUT0, NONE);
264
+ PIN_SLP(gpf0-3, OUT0, NONE);
265
+ PIN_SLP(gpf0-4, OUT0, NONE);
266
+ PIN_SLP(gpf0-5, OUT0, NONE);
267
+ PIN_SLP(gpf0-6, OUT0, NONE);
268
+ PIN_SLP(gpf0-7, OUT0, NONE);
269
+
270
+ PIN_SLP(gpf1-0, OUT0, NONE);
271
+ PIN_SLP(gpf1-1, OUT0, NONE);
272
+ PIN_SLP(gpf1-2, OUT0, NONE);
273
+ PIN_SLP(gpf1-3, OUT0, NONE);
274
+ PIN_SLP(gpf1-4, OUT0, NONE);
275
+ PIN_SLP(gpf1-5, OUT0, NONE);
276
+ PIN_SLP(gpf1-6, OUT0, NONE);
277
+ PIN_SLP(gpf1-7, OUT0, NONE);
278
+
279
+ PIN_SLP(gpf2-0, OUT0, NONE);
280
+ PIN_SLP(gpf2-1, OUT0, NONE);
281
+ PIN_SLP(gpf2-2, OUT0, NONE);
282
+ PIN_SLP(gpf2-3, OUT0, NONE);
283
+ PIN_SLP(gpf2-4, OUT0, NONE);
284
+ PIN_SLP(gpf2-5, OUT0, NONE);
285
+ PIN_SLP(gpf2-6, OUT0, NONE);
286
+ PIN_SLP(gpf2-7, OUT0, NONE);
287
+
288
+ PIN_SLP(gpf3-0, OUT0, NONE);
289
+ PIN_SLP(gpf3-1, OUT0, NONE);
290
+ PIN_SLP(gpf3-2, OUT0, NONE);
291
+ PIN_SLP(gpf3-3, OUT0, NONE);
292
+ PIN_SLP(gpf3-4, PREV, NONE);
293
+ PIN_SLP(gpf3-5, INPUT, DOWN);
294
+
295
+ PIN_SLP(gpg0-0, OUT0, NONE);
296
+ PIN_SLP(gpg0-1, INPUT, NONE);
297
+ PIN_SLP(gpg0-2, INPUT, NONE);
298
+ PIN_SLP(gpg0-3, INPUT, NONE);
299
+ PIN_SLP(gpg0-4, INPUT, NONE);
300
+ PIN_SLP(gpg0-5, INPUT, NONE);
301
+ PIN_SLP(gpg0-6, INPUT, NONE);
302
+
303
+ PIN_SLP(gpg1-0, OUT0, NONE);
304
+ PIN_SLP(gpg1-1, OUT1, NONE);
305
+ PIN_SLP(gpg1-2, PREV, NONE);
306
+ PIN_SLP(gpg1-3, OUT1, NONE);
307
+ PIN_SLP(gpg1-4, OUT1, NONE);
308
+ PIN_SLP(gpg1-5, OUT1, NONE);
309
+ PIN_SLP(gpg1-6, OUT1, NONE);
310
+
311
+ PIN_SLP(gpg2-0, OUT0, NONE);
312
+ PIN_SLP(gpg2-1, OUT0, NONE);
313
+ PIN_SLP(gpg2-2, INPUT, NONE);
314
+ PIN_SLP(gpg2-3, OUT0, NONE);
315
+ PIN_SLP(gpg2-4, OUT0, NONE);
316
+ PIN_SLP(gpg2-5, OUT0, NONE);
317
+ PIN_SLP(gpg2-6, OUT0, NONE);
318
+
319
+ PIN_SLP(gpg3-0, OUT1, NONE);
320
+ PIN_SLP(gpg3-1, OUT0, NONE);
321
+ PIN_SLP(gpg3-2, INPUT, NONE);
322
+ PIN_SLP(gpg3-3, INPUT, DOWN);
323
+ PIN_SLP(gpg3-4, OUT0, NONE);
324
+ PIN_SLP(gpg3-5, OUT0, NONE);
325
+ PIN_SLP(gpg3-6, INPUT, DOWN);
326
+
327
+ PIN_SLP(gpi-0, PREV, NONE);
328
+ PIN_SLP(gpi-1, INPUT, DOWN);
329
+ PIN_SLP(gpi-2, PREV, NONE);
330
+ PIN_SLP(gpi-3, PREV, NONE);
331
+ PIN_SLP(gpi-4, PREV, NONE);
332
+ PIN_SLP(gpi-5, INPUT, DOWN);
333
+ PIN_SLP(gpi-6, INPUT, DOWN);
334
+
335
+ PIN_SLP(gpj0-0, INPUT, NONE);
336
+ PIN_SLP(gpj0-1, INPUT, NONE);
337
+ PIN_SLP(gpj0-2, INPUT, NONE);
338
+ PIN_SLP(gpj0-3, INPUT, NONE);
339
+ PIN_SLP(gpj0-4, INPUT, NONE);
340
+ PIN_SLP(gpj0-5, INPUT, DOWN);
341
+ PIN_SLP(gpj0-6, OUT0, NONE);
342
+ PIN_SLP(gpj0-7, INPUT, NONE);
343
+
344
+ PIN_SLP(gpj1-0, INPUT, DOWN);
345
+ PIN_SLP(gpj1-1, OUT0, NONE);
346
+ PIN_SLP(gpj1-2, INPUT, DOWN);
347
+ PIN_SLP(gpj1-3, PREV, NONE);
348
+ PIN_SLP(gpj1-4, PREV, NONE);
349
+ PIN_SLP(gpj1-5, OUT0, NONE);
350
+
351
+ PIN_SLP(gpj2-0, INPUT, DOWN);
352
+ PIN_SLP(gpj2-1, INPUT, DOWN);
353
+ PIN_SLP(gpj2-2, OUT0, NONE);
354
+ PIN_SLP(gpj2-3, INPUT, DOWN);
355
+ PIN_SLP(gpj2-4, INPUT, UP);
356
+ PIN_SLP(gpj2-5, PREV, NONE);
357
+ PIN_SLP(gpj2-6, PREV, NONE);
358
+ PIN_SLP(gpj2-7, OUT1, NONE);
359
+
360
+ PIN_SLP(gpj3-0, INPUT, NONE);
361
+ PIN_SLP(gpj3-1, INPUT, NONE);
362
+ PIN_SLP(gpj3-2, OUT0, NONE);
363
+ PIN_SLP(gpj3-3, INPUT, DOWN);
364
+ PIN_SLP(gpj3-4, INPUT, NONE);
365
+ PIN_SLP(gpj3-5, INPUT, NONE);
366
+ PIN_SLP(gpj3-6, INPUT, NONE);
367
+ PIN_SLP(gpj3-7, INPUT, NONE);
368
+
369
+ PIN_SLP(gpj4-0, INPUT, NONE);
370
+ PIN_SLP(gpj4-1, INPUT, DOWN);
371
+ PIN_SLP(gpj4-2, PREV, NONE);
372
+ PIN_SLP(gpj4-3, INPUT, NONE);
373
+ PIN_SLP(gpj4-4, INPUT, DOWN);
374
+
375
+ PIN_SLP(mp01-0, INPUT, DOWN);
376
+ PIN_SLP(mp01-1, OUT0, NONE);
377
+ PIN_SLP(mp01-2, INPUT, DOWN);
378
+ PIN_SLP(mp01-3, INPUT, DOWN);
379
+ PIN_SLP(mp01-4, OUT1, NONE);
380
+ PIN_SLP(mp01-5, INPUT, DOWN);
381
+ PIN_SLP(mp01-6, INPUT, DOWN);
382
+ PIN_SLP(mp01-7, INPUT, DOWN);
383
+
384
+ PIN_SLP(mp02-0, INPUT, DOWN);
385
+ PIN_SLP(mp02-1, INPUT, DOWN);
386
+ PIN_SLP(mp02-2, INPUT, NONE);
387
+ PIN_SLP(mp02-3, INPUT, DOWN);
388
+
389
+ PIN_SLP(mp03-0, INPUT, DOWN);
390
+ PIN_SLP(mp03-1, INPUT, DOWN);
391
+ PIN_SLP(mp03-2, OUT1, NONE);
392
+ PIN_SLP(mp03-3, OUT0, NONE);
393
+ PIN_SLP(mp03-4, INPUT, NONE);
394
+ PIN_SLP(mp03-5, OUT1, NONE);
395
+ PIN_SLP(mp03-6, INPUT, DOWN);
396
+ PIN_SLP(mp03-7, INPUT, DOWN);
397
+
398
+ PIN_SLP(mp04-0, INPUT, DOWN);
399
+ PIN_SLP(mp04-1, OUT0, NONE);
400
+ PIN_SLP(mp04-2, INPUT, DOWN);
401
+ PIN_SLP(mp04-3, OUT0, NONE);
402
+ PIN_SLP(mp04-4, INPUT, DOWN);
403
+ PIN_SLP(mp04-5, INPUT, DOWN);
404
+ PIN_SLP(mp04-6, OUT0, NONE);
405
+ PIN_SLP(mp04-7, INPUT, DOWN);
406
+
407
+ PIN_SLP(mp05-0, INPUT, NONE);
408
+ PIN_SLP(mp05-1, INPUT, NONE);
409
+ PIN_SLP(mp05-2, INPUT, NONE);
410
+ PIN_SLP(mp05-3, INPUT, NONE);
411
+ PIN_SLP(mp05-4, INPUT, DOWN);
412
+ PIN_SLP(mp05-5, OUT0, NONE);
413
+ PIN_SLP(mp05-6, INPUT, DOWN);
414
+ PIN_SLP(mp05-7, PREV, NONE);
415
+
416
+ PIN_SLP(mp06-0, INPUT, DOWN);
417
+ PIN_SLP(mp06-1, INPUT, DOWN);
418
+ PIN_SLP(mp06-2, INPUT, DOWN);
419
+ PIN_SLP(mp06-3, INPUT, DOWN);
420
+ PIN_SLP(mp06-4, INPUT, DOWN);
421
+ PIN_SLP(mp06-5, INPUT, DOWN);
422
+ PIN_SLP(mp06-6, INPUT, DOWN);
423
+ PIN_SLP(mp06-7, INPUT, DOWN);
424
+
425
+ PIN_SLP(mp07-0, INPUT, DOWN);
426
+ PIN_SLP(mp07-1, INPUT, DOWN);
427
+ PIN_SLP(mp07-2, INPUT, DOWN);
428
+ PIN_SLP(mp07-3, INPUT, DOWN);
429
+ PIN_SLP(mp07-4, INPUT, DOWN);
430
+ PIN_SLP(mp07-5, INPUT, DOWN);
431
+ PIN_SLP(mp07-6, INPUT, DOWN);
432
+ PIN_SLP(mp07-7, INPUT, DOWN);
67433 };
68434 };
69435
....@@ -74,4 +440,8 @@
74440 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>;
75441 pinctrl-names = "default";
76442 status = "okay";
443
+
444
+ assigned-clocks = <&clocks MOUT_MMC0>, <&clocks SCLK_MMC0>;
445
+ assigned-clock-rates = <0>, <52000000>;
446
+ assigned-clock-parents = <&clocks MOUT_MPLL>;
77447 };