Free Electrons

Embedded Linux Experts

  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
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
# arch/arm/mach-s3c24xx/Kconfig
#
# Copyright (c) 2012 Samsung Electronics Co., Ltd.
#		http://www.samsung.com/
#
# Copyright 2007 Simtec Electronics
#
# Licensed under GPLv2

if ARCH_S3C24XX

config PLAT_S3C24XX
	def_bool y
	select GPIOLIB
	select NO_IOPORT_MAP
	select S3C_DEV_NAND
	select IRQ_DOMAIN
	select COMMON_CLK
	help
	  Base platform code for any Samsung S3C24XX device



menu "SAMSUNG S3C24XX SoCs Support"

comment "S3C24XX SoCs"

config CPU_S3C2410
	bool "SAMSUNG S3C2410"
	default y
	select CPU_ARM920T
	select S3C2410_COMMON_CLK
	select ARM_S3C2410_CPUFREQ if ARM_S3C24XX_CPUFREQ
	select S3C2410_PM if PM
	help
	  Support for S3C2410 and S3C2410A family from the S3C24XX line
	  of Samsung Mobile CPUs.

config CPU_S3C2412
	bool "SAMSUNG S3C2412"
	select CPU_ARM926T
	select S3C2412_COMMON_CLK
	select S3C2412_PM if PM_SLEEP
	help
	  Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line

config CPU_S3C2416
	bool "SAMSUNG S3C2416/S3C2450"
	select CPU_ARM926T
	select S3C2416_PM if PM_SLEEP
	select S3C2443_COMMON_CLK
	help
	  Support for the S3C2416 SoC from the S3C24XX line

config CPU_S3C2440
	bool "SAMSUNG S3C2440"
	select CPU_ARM920T
	select S3C2410_COMMON_CLK
	select S3C2410_PM if PM_SLEEP
	help
	  Support for S3C2440 Samsung Mobile CPU based systems.

config CPU_S3C2442
	bool "SAMSUNG S3C2442"
	select CPU_ARM920T
	select S3C2410_COMMON_CLK
	select S3C2410_PM if PM_SLEEP
	help
	  Support for S3C2442 Samsung Mobile CPU based systems.

config CPU_S3C244X
	def_bool y
	depends on CPU_S3C2440 || CPU_S3C2442

config CPU_S3C2443
	bool "SAMSUNG S3C2443"
	select CPU_ARM920T
	select S3C2443_COMMON_CLK
	help
	  Support for the S3C2443 SoC from the S3C24XX line

# common code

config S3C24XX_SMDK
	bool
	help
	  Common machine code for SMDK2410 and SMDK2440

config S3C24XX_SIMTEC_AUDIO
	bool
	depends on (ARCH_BAST || MACH_VR1000 || MACH_OSIRIS || MACH_ANUBIS)
	default y
	help
	  Add audio devices for common Simtec S3C24XX boards

config S3C24XX_SIMTEC_PM
	bool
	help
	  Common power management code for systems that are
	  compatible with the Simtec style of power management

config S3C24XX_SIMTEC_USB
	bool
	help
	  USB management code for common Simtec S3C24XX boards

config S3C24XX_SETUP_TS
	bool
	help
	  Compile in platform device definition for Samsung TouchScreen.

config S3C2410_PM
	bool
	help
	  Power Management code common to S3C2410 and better

config S3C24XX_PLL
	bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
	depends on ARM_S3C24XX_CPUFREQ
	help
	  Compile in support for changing the PLL frequency from the
	  S3C24XX series CPUfreq driver. The PLL takes time to settle
	  after a frequency change, so by default it is not enabled.

	  This also means that the PLL tables for the selected CPU(s) will
	  be built which may increase the size of the kernel image.

config S3C_SETUP_CAMIF
	bool
	help
	  Compile in common setup code for S3C CAMIF devices

# cpu frequency items common between s3c2410 and s3c2440/s3c2442

config S3C2410_IOTIMING
	bool
	depends on ARM_S3C24XX_CPUFREQ
	help
	  Internal node to select io timing code that is common to the s3c2410
	  and s3c2440/s3c2442 cpu frequency support.

config S3C2410_CPUFREQ_UTILS
       bool
       depends on ARM_S3C24XX_CPUFREQ
       help
         Internal node to select timing code that is common to the s3c2410
         and s3c2440/s3c244 cpu frequency support.

# cpu frequency support common to s3c2412, s3c2413 and s3c2442

config S3C2412_IOTIMING
	bool
	depends on ARM_S3C24XX_CPUFREQ && (CPU_S3C2412 || CPU_S3C2443)
	help
	  Intel node to select io timing code that is common to the s3c2412
	  and the s3c2443.

# cpu-specific sections

if CPU_S3C2410

config S3C2410_PLL
	bool
	depends on ARM_S3C2410_CPUFREQ && S3C24XX_PLL
	default y
	help
	  Select the PLL table for the S3C2410

config S3C24XX_SIMTEC_NOR
	bool
	help
	  Internal node to specify machine has simtec NOR mapping

config MACH_BAST_IDE
	bool
	select HAVE_PATA_PLATFORM
	help
	  Internal node for machines with an BAST style IDE
	  interface

comment "S3C2410 Boards"

#
# The "S3C2410 Boards" list is ordered alphabetically by option text.
# (without ARCH_ or MACH_)
#

config MACH_AML_M5900
	bool "AML M5900 Series"
	select S3C24XX_SIMTEC_PM if PM
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the American Microsystems M5900 Series
	  <http://www.amltd.com>

config ARCH_BAST
	bool "Simtec Electronics BAST (EB2410ITX)"
	select ISA
	select MACH_BAST_IDE
	select S3C2410_COMMON_DCLK
	select S3C2410_IOTIMING if ARM_S3C2410_CPUFREQ
	select S3C24XX_SIMTEC_NOR
	select S3C24XX_SIMTEC_PM if PM
	select S3C24XX_SIMTEC_USB
	select S3C_DEV_HWMON
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Simtec Electronics EB2410ITX
	  development board (also known as BAST)

config BAST_PC104_IRQ
	bool "BAST PC104 IRQ support"
	depends on ARCH_BAST
	default y
	help
	  Say Y	here to enable the PC104 IRQ routing on the
	  Simtec BAST (EB2410ITX)

config ARCH_H1940
	bool "IPAQ H1940"
	select PM_H1940 if PM
	select S3C24XX_SETUP_TS
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the HP IPAQ H1940

config H1940BT
	tristate "Control the state of H1940 bluetooth chip"
	depends on ARCH_H1940
	depends on RFKILL
	help
	  This is a simple driver that is able to control
	  the state of built in bluetooth chip on h1940.

config MACH_N30
	bool "Acer N30 family"
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you want suppt for the Acer N30, Acer N35,
	  Navman PiN570, Yakumo AlphaX or Airis NC05 PDAs.

config MACH_OTOM
	bool "NexVision OTOM Board"
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Nex Vision OTOM board

config MACH_QT2410
	bool "QT2410"
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Armzone QT2410

config ARCH_SMDK2410
	bool "SMDK2410/A9M2410"
	select S3C24XX_SMDK
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the SMDK2410 or the derived module A9M2410
	  <http://www.fsforth.de>

config MACH_TCT_HAMMER
	bool "TCT Hammer Board"
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the TinCanTools Hammer Board
	  <http://www.tincantools.com>

config MACH_VR1000
	bool "Thorcom VR1000"
	select MACH_BAST_IDE
	select S3C2410_COMMON_DCLK
	select S3C24XX_SIMTEC_NOR
	select S3C24XX_SIMTEC_PM if PM
	select S3C24XX_SIMTEC_USB
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Thorcom VR1000 board.

endif	# CPU_S3C2410

config S3C2412_PM_SLEEP
	bool
	help
	  Internal config node to apply sleep for S3C2412 power management.
	  Can be selected by another SoCs such as S3C2416 with similar
	  sleep procedure.

if CPU_S3C2412

config CPU_S3C2412_ONLY
	bool
	depends on !CPU_S3C2410 && !CPU_S3C2416 && !CPU_S3C2440 && \
		   !CPU_S3C2442 && !CPU_S3C2443
	default y

config S3C2412_PM
	bool
	select S3C2412_PM_SLEEP
	select SAMSUNG_WAKEMASK
	help
	  Internal config node to apply S3C2412 power management

comment "S3C2412 Boards"

#
# The "S3C2412 Boards" list is ordered alphabetically by option text.
# (without ARCH_ or MACH_)
#

config MACH_JIVE
	bool "Logitech Jive"
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Logitech Jive.

config MACH_JIVE_SHOW_BOOTLOADER
	bool "Allow access to bootloader partitions in MTD"
	depends on MACH_JIVE

config MACH_S3C2413
	bool
	help
	  Internal node for S3C2413 version of SMDK2413, so that
	  machine_is_s3c2413() will work when MACH_SMDK2413 is
	  selected

config MACH_SMDK2412
	bool "SMDK2412"
	select MACH_SMDK2413
	help
	  Say Y here if you are using an SMDK2412

	  Note, this shares support with SMDK2413, so will automatically
	  select MACH_SMDK2413.

config MACH_SMDK2413
	bool "SMDK2413"
	select MACH_S3C2413
	select S3C24XX_SMDK
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using an SMDK2413

config MACH_VSTMS
	bool "VMSTMS"
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using an VSTMS board

endif	# CPU_S3C2412

if CPU_S3C2416

config S3C2416_PM
	bool
	select S3C2412_PM_SLEEP
	select SAMSUNG_WAKEMASK
	help
	  Internal config node to apply S3C2416 power management

config S3C2416_SETUP_SDHCI
	bool
	select S3C2416_SETUP_SDHCI_GPIO
	help
	  Internal helper functions for S3C2416 based SDHCI systems

config S3C2416_SETUP_SDHCI_GPIO
	bool
	help
	  Common setup code for SDHCI gpio.

comment "S3C2416 Boards"

config MACH_SMDK2416
	bool "SMDK2416"
	select S3C2416_SETUP_SDHCI
	select S3C24XX_SMDK
	select S3C_DEV_FB
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC1
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using an SMDK2416

config MACH_S3C2416_DT
	bool "Samsung S3C2416 machine using devicetree"
	select TIMER_OF
	select USE_OF
	select PINCTRL
	select PINCTRL_S3C24XX
	help
	  Machine support for Samsung S3C2416 machines with device tree enabled.
	  Select this if a fdt blob is available for the S3C2416 SoC based board.
	  Note: This is under development and not all peripherals can be supported
	  with this machine file.

endif	# CPU_S3C2416

if CPU_S3C2440 || CPU_S3C2442

config S3C2440_XTAL_12000000
	bool
	help
	  Indicate that the build needs to support 12MHz system
	  crystal.

config S3C2440_XTAL_16934400
	bool
	help
	  Indicate that the build needs to support 16.9344MHz system
	  crystal.

config S3C2440_PLL_12000000
	bool
	depends on ARM_S3C2440_CPUFREQ && S3C2440_XTAL_12000000
	default y if S3C24XX_PLL
	help
	  PLL tables for S3C2440 or S3C2442 CPUs with 12MHz crystals.

config S3C2440_PLL_16934400
	bool
	depends on ARM_S3C2440_CPUFREQ && S3C2440_XTAL_16934400
	default y if S3C24XX_PLL
	help
	  PLL tables for S3C2440 or S3C2442 CPUs with 16.934MHz crystals.
endif

if CPU_S3C2440

comment "S3C2440 Boards"

#
# The "S3C2440 Boards" list is ordered alphabetically by option text.
# (without ARCH_ or MACH_)
#

config MACH_ANUBIS
	bool "Simtec Electronics ANUBIS"
	select HAVE_PATA_PLATFORM
	select S3C2410_COMMON_DCLK
	select S3C2440_XTAL_12000000
	select S3C24XX_SIMTEC_PM if PM
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Simtec Electronics ANUBIS
	  development system

config MACH_AT2440EVB
	bool "Avantech AT2440EVB development board"
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the AT2440EVB development board

config MACH_MINI2440
	bool "MINI2440 development board"
	select LEDS_CLASS
	select LEDS_TRIGGERS
	select LEDS_TRIGGER_BACKLIGHT
	select NEW_LEDS
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	select S3C_SETUP_CAMIF
	help
	  Say Y here to select support for the MINI2440. Is a 10cm x 10cm board
	  available via various sources. It can come with a 3.5" or 7" touch LCD.

config MACH_NEXCODER_2440
	bool "NexVision NEXCODER 2440 Light Board"
	select S3C2440_XTAL_12000000
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Nex Vision NEXCODER 2440 Light Board

config MACH_OSIRIS
	bool "Simtec IM2440D20 (OSIRIS) module"
	select S3C2410_COMMON_DCLK
	select S3C2410_IOTIMING if ARM_S3C2440_CPUFREQ
	select S3C2440_XTAL_12000000
	select S3C24XX_SIMTEC_PM if PM
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Simtec IM2440D20 module, also
	  known as the Osiris.

config MACH_OSIRIS_DVS
	tristate "Simtec IM2440D20 (OSIRIS) Dynamic Voltage Scaling driver"
	depends on MACH_OSIRIS
	depends on TPS65010
	help
	  Say Y/M here if you want to have dynamic voltage scaling support
	  on the Simtec IM2440D20 (OSIRIS) module via the TPS65011.

	  The DVS driver alters the voltage supplied to the ARM core
	  depending on the frequency it is running at. The driver itself
	  does not do any of the frequency alteration, which is left up
	  to the cpufreq driver.

config MACH_RX3715
	bool "HP iPAQ rx3715"
	select PM_H1940 if PM
	select S3C2440_XTAL_16934400
	select S3C_DEV_NAND
	help
	  Say Y here if you are using the HP iPAQ rx3715.

config ARCH_S3C2440
	bool "SMDK2440"
	select S3C2440_XTAL_16934400
	select S3C24XX_SMDK
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the SMDK2440.

config SMDK2440_CPU2440
	bool "SMDK2440 with S3C2440 CPU module"
	default y if ARCH_S3C2440
	select S3C2440_XTAL_16934400

endif	# CPU_S3C2440

if CPU_S3C2442

comment "S3C2442 Boards"

#
# The "S3C2442 Boards" list is ordered alphabetically by option text.
# (without ARCH_ or MACH_)
#

config MACH_NEO1973_GTA02
	bool "Openmoko GTA02 / Freerunner phone"
	select I2C
	select MFD_PCF50633
	select PCF50633_GPIO
	select POWER_SUPPLY
	select S3C24XX_PWM
	select S3C_DEV_USB_HOST
	help
	   Say Y here if you are using the Openmoko GTA02 / Freerunner GSM Phone

config MACH_RX1950
	bool "HP iPAQ rx1950"
	select I2C
	select PM_H1940 if PM
	select S3C2410_COMMON_DCLK
	select S3C2410_IOTIMING if ARM_S3C2440_CPUFREQ
	select S3C2440_XTAL_16934400
	select S3C24XX_PWM
	select S3C_DEV_NAND
	help
	   Say Y here if you're using HP iPAQ rx1950

endif	# CPU_S3C2442

if CPU_S3C2443 || CPU_S3C2416

config S3C2443_SETUP_SPI
	bool
	help
	  Common setup code for SPI GPIO configurations

endif	# CPU_S3C2443 || CPU_S3C2416

if CPU_S3C2443

comment "S3C2443 Boards"

config MACH_SMDK2443
	bool "SMDK2443"
	select S3C24XX_SMDK
	select S3C_DEV_HSMMC1
	help
	  Say Y here if you are using an SMDK2443

endif	# CPU_S3C2443

config PM_H1940
	bool
	help
	  Internal node for H1940 and related PM

endmenu	# SAMSUNG S3C24XX SoCs Support

endif	# ARCH_S3C24XX