Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

  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
# SPDX-License-Identifier: GPL-2.0
#
# Copyright (c) 2012 Samsung Electronics Co., Ltd.
#		http://www.samsung.com/
#
# Copyright 2007 Simtec Electronics

if CONFIG_ARCH_S3C24XX

config CONFIG_PLAT_S3C24XX
	def_bool y
	select CONFIG_GPIOLIB
	select CONFIG_NO_IOPORT_MAP
	select CONFIG_S3C_DEV_NAND
	select CONFIG_IRQ_DOMAIN
	select CONFIG_COMMON_CLK
	help
	  Base platform code for any Samsung S3C24XX device



menu "SAMSUNG S3C24XX SoCs Support"

comment "S3C24XX SoCs"

config CONFIG_CPU_S3C2410
	bool "SAMSUNG S3C2410"
	default y
	select CONFIG_CPU_ARM920T
	select CONFIG_S3C2410_COMMON_CLK
	select CONFIG_ARM_S3C2410_CPUFREQ if CONFIG_ARM_S3C24XX_CPUFREQ
	select CONFIG_S3C2410_PM if CONFIG_PM
	help
	  Support for S3C2410 and S3C2410A family from the S3C24XX line
	  of Samsung Mobile CPUs.

config CONFIG_CPU_S3C2412
	bool "SAMSUNG S3C2412"
	select CONFIG_CPU_ARM926T
	select CONFIG_S3C2412_COMMON_CLK
	select CONFIG_S3C2412_PM if CONFIG_PM_SLEEP
	help
	  Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line

config CONFIG_CPU_S3C2416
	bool "SAMSUNG S3C2416/S3C2450"
	select CONFIG_CPU_ARM926T
	select CONFIG_S3C2416_PM if CONFIG_PM_SLEEP
	select CONFIG_S3C2443_COMMON_CLK
	help
	  Support for the S3C2416 SoC from the S3C24XX line

config CONFIG_CPU_S3C2440
	bool "SAMSUNG S3C2440"
	select CONFIG_CPU_ARM920T
	select CONFIG_S3C2410_COMMON_CLK
	select CONFIG_S3C2410_PM if CONFIG_PM_SLEEP
	help
	  Support for S3C2440 Samsung Mobile CPU based systems.

config CONFIG_CPU_S3C2442
	bool "SAMSUNG S3C2442"
	select CONFIG_CPU_ARM920T
	select CONFIG_S3C2410_COMMON_CLK
	select CONFIG_S3C2410_PM if CONFIG_PM_SLEEP
	help
	  Support for S3C2442 Samsung Mobile CPU based systems.

config CONFIG_CPU_S3C244X
	def_bool y
	depends on CONFIG_CPU_S3C2440 || CONFIG_CPU_S3C2442

config CONFIG_CPU_S3C2443
	bool "SAMSUNG S3C2443"
	select CONFIG_CPU_ARM920T
	select CONFIG_S3C2443_COMMON_CLK
	help
	  Support for the S3C2443 SoC from the S3C24XX line

# common code

config CONFIG_S3C24XX_SMDK
	bool
	help
	  Common machine code for SMDK2410 and SMDK2440

config CONFIG_S3C24XX_SIMTEC_AUDIO
	bool
	depends on (CONFIG_ARCH_BAST || CONFIG_MACH_VR1000 || CONFIG_MACH_OSIRIS || CONFIG_MACH_ANUBIS)
	default y
	help
	  Add audio devices for common Simtec S3C24XX boards

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

config CONFIG_S3C24XX_SIMTEC_USB
	bool
	help
	  CONFIG_USB management code for common Simtec S3C24XX boards

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

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

config CONFIG_S3C24XX_PLL
	bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
	depends on CONFIG_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 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 CONFIG_S3C2410_IOTIMING
	bool
	depends on CONFIG_ARM_S3C24XX_CPUFREQ
	help
	  Internal node to select io timing code that is common to the s3c2410
	  and s3c2440/s3c2442 cpu frequency support.

config CONFIG_S3C2410_CPUFREQ_UTILS
       bool
       depends on CONFIG_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 CONFIG_S3C2412_IOTIMING
	bool
	depends on CONFIG_ARM_S3C24XX_CPUFREQ && (CONFIG_CPU_S3C2412 || CONFIG_CPU_S3C2443)
	help
	  Intel node to select io timing code that is common to the s3c2412
	  and the s3c2443.

# cpu-specific sections

if CONFIG_CPU_S3C2410

config CONFIG_S3C2410_PLL
	bool
	depends on CONFIG_ARM_S3C2410_CPUFREQ && CONFIG_S3C24XX_PLL
	default y
	help
	  Select the PLL table for the S3C2410

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

config CONFIG_MACH_BAST_IDE
	bool
	select CONFIG_HAVE_PATA_PLATFORM
	help
	  Internal node for machines with an BAST style CONFIG_IDE
	  interface

comment "S3C2410 Boards"

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

config CONFIG_MACH_AML_M5900
	bool "AML M5900 Series"
	select CONFIG_S3C24XX_SIMTEC_PM if CONFIG_PM
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the American Microsystems M5900 Series
	  <http://www.amltd.com>

config CONFIG_ARCH_BAST
	bool "Simtec Electronics BAST (EB2410ITX)"
	select CONFIG_ISA
	select CONFIG_MACH_BAST_IDE
	select CONFIG_S3C2410_COMMON_DCLK
	select CONFIG_S3C2410_IOTIMING if CONFIG_ARM_S3C2410_CPUFREQ
	select CONFIG_S3C24XX_SIMTEC_NOR
	select CONFIG_S3C24XX_SIMTEC_PM if CONFIG_PM
	select CONFIG_S3C24XX_SIMTEC_USB
	select CONFIG_S3C_DEV_HWMON
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Simtec Electronics EB2410ITX
	  development board (also known as BAST)

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

config CONFIG_ARCH_H1940
	bool "IPAQ H1940"
	select CONFIG_PM_H1940 if CONFIG_PM
	select CONFIG_S3C24XX_SETUP_TS
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the HP IPAQ H1940

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

config CONFIG_MACH_N30
	bool "Acer N30 family"
	select CONFIG_S3C_DEV_NAND
	select CONFIG_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 CONFIG_MACH_OTOM
	bool "NexVision OTOM Board"
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Nex Vision OTOM board

config CONFIG_MACH_QT2410
	bool "QT2410"
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Armzone QT2410

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

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

config CONFIG_MACH_VR1000
	bool "Thorcom VR1000"
	select CONFIG_MACH_BAST_IDE
	select CONFIG_S3C2410_COMMON_DCLK
	select CONFIG_S3C24XX_SIMTEC_NOR
	select CONFIG_S3C24XX_SIMTEC_PM if CONFIG_PM
	select CONFIG_S3C24XX_SIMTEC_USB
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Thorcom VR1000 board.

endif	# CONFIG_CPU_S3C2410

config 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 CONFIG_CPU_S3C2412

config CONFIG_CPU_S3C2412_ONLY
	bool
	depends on !CONFIG_CPU_S3C2410 && !CONFIG_CPU_S3C2416 && !CONFIG_CPU_S3C2440 && \
		   !CONFIG_CPU_S3C2442 && !CONFIG_CPU_S3C2443
	default y

config CONFIG_S3C2412_PM
	bool
	select CONFIG_S3C2412_PM_SLEEP
	select CONFIG_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 CONFIG_MACH_JIVE
	bool "Logitech Jive"
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Logitech Jive.

config CONFIG_MACH_JIVE_SHOW_BOOTLOADER
	bool "Allow access to bootloader partitions in MTD"
	depends on CONFIG_MACH_JIVE

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

config CONFIG_MACH_SMDK2412
	bool "SMDK2412"
	select CONFIG_MACH_SMDK2413
	help
	  Say Y here if you are using an SMDK2412

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

config CONFIG_MACH_SMDK2413
	bool "SMDK2413"
	select CONFIG_MACH_S3C2413
	select CONFIG_S3C24XX_SMDK
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using an SMDK2413

config CONFIG_MACH_VSTMS
	bool "VMSTMS"
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using an VSTMS board

endif	# CONFIG_CPU_S3C2412

if CONFIG_CPU_S3C2416

config CONFIG_S3C2416_PM
	bool
	select CONFIG_S3C2412_PM_SLEEP
	select CONFIG_SAMSUNG_WAKEMASK
	help
	  Internal config node to apply S3C2416 power management

config CONFIG_S3C2416_SETUP_SDHCI
	bool
	select CONFIG_S3C2416_SETUP_SDHCI_GPIO
	help
	  Internal helper functions for S3C2416 based SDHCI systems

config CONFIG_S3C2416_SETUP_SDHCI_GPIO
	bool
	help
	  Common setup code for SDHCI gpio.

comment "S3C2416 Boards"

config CONFIG_MACH_SMDK2416
	bool "SMDK2416"
	select CONFIG_S3C2416_SETUP_SDHCI
	select CONFIG_S3C24XX_SMDK
	select CONFIG_S3C_DEV_FB
	select CONFIG_S3C_DEV_HSMMC
	select CONFIG_S3C_DEV_HSMMC1
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using an SMDK2416

config CONFIG_MACH_S3C2416_DT
	bool "Samsung S3C2416 machine using devicetree"
	select CONFIG_TIMER_OF
	select CONFIG_USE_OF
	select CONFIG_PINCTRL
	select CONFIG_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	# CONFIG_CPU_S3C2416

if CONFIG_CPU_S3C2440 || CONFIG_CPU_S3C2442

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

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

config CONFIG_S3C2440_PLL_12000000
	bool
	depends on CONFIG_ARM_S3C2440_CPUFREQ && CONFIG_S3C2440_XTAL_12000000
	default y if CONFIG_S3C24XX_PLL
	help
	  PLL tables for S3C2440 or S3C2442 CPUs with 12MHz crystals.

config CONFIG_S3C2440_PLL_16934400
	bool
	depends on CONFIG_ARM_S3C2440_CPUFREQ && CONFIG_S3C2440_XTAL_16934400
	default y if CONFIG_S3C24XX_PLL
	help
	  PLL tables for S3C2440 or S3C2442 CPUs with 16.934MHz crystals.
endif

if CONFIG_CPU_S3C2440

comment "S3C2440 Boards"

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

config CONFIG_MACH_ANUBIS
	bool "Simtec Electronics ANUBIS"
	select CONFIG_HAVE_PATA_PLATFORM
	select CONFIG_S3C2410_COMMON_DCLK
	select CONFIG_S3C2440_XTAL_12000000
	select CONFIG_S3C24XX_SIMTEC_PM if CONFIG_PM
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Simtec Electronics ANUBIS
	  development system

config CONFIG_MACH_AT2440EVB
	bool "Avantech AT2440EVB development board"
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the AT2440EVB development board

config CONFIG_MACH_MINI2440
	bool "MINI2440 development board"
	select CONFIG_LEDS_CLASS
	select CONFIG_LEDS_TRIGGERS
	select CONFIG_LEDS_TRIGGER_BACKLIGHT
	select CONFIG_NEW_LEDS
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	select CONFIG_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 CONFIG_MACH_NEXCODER_2440
	bool "NexVision NEXCODER 2440 Light Board"
	select CONFIG_S3C2440_XTAL_12000000
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Nex Vision NEXCODER 2440 Light Board

config CONFIG_MACH_OSIRIS
	bool "Simtec IM2440D20 (OSIRIS) module"
	select CONFIG_S3C2410_COMMON_DCLK
	select CONFIG_S3C2410_IOTIMING if CONFIG_ARM_S3C2440_CPUFREQ
	select CONFIG_S3C2440_XTAL_12000000
	select CONFIG_S3C24XX_SIMTEC_PM if CONFIG_PM
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the Simtec IM2440D20 module, also
	  known as the Osiris.

config CONFIG_MACH_OSIRIS_DVS
	tristate "Simtec IM2440D20 (OSIRIS) Dynamic Voltage Scaling driver"
	depends on CONFIG_MACH_OSIRIS
	depends on CONFIG_TPS65010
	help
	  Say Y/CONFIG_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 CONFIG_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 CONFIG_MACH_RX3715
	bool "HP iPAQ rx3715"
	select CONFIG_PM_H1940 if CONFIG_PM
	select CONFIG_S3C2440_XTAL_16934400
	select CONFIG_S3C_DEV_NAND
	help
	  Say Y here if you are using the HP iPAQ rx3715.

config CONFIG_ARCH_S3C2440
	bool "SMDK2440"
	select CONFIG_S3C2440_XTAL_16934400
	select CONFIG_S3C24XX_SMDK
	select CONFIG_S3C_DEV_NAND
	select CONFIG_S3C_DEV_USB_HOST
	help
	  Say Y here if you are using the SMDK2440.

config CONFIG_SMDK2440_CPU2440
	bool "SMDK2440 with S3C2440 CPU module"
	default y if CONFIG_ARCH_S3C2440
	select CONFIG_S3C2440_XTAL_16934400

endif	# CONFIG_CPU_S3C2440

if CONFIG_CPU_S3C2442

comment "S3C2442 Boards"

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

config CONFIG_MACH_NEO1973_GTA02
	bool "Openmoko GTA02 / Freerunner phone"
	select CONFIG_I2C
	select CONFIG_MFD_PCF50633
	select CONFIG_PCF50633_GPIO
	select CONFIG_POWER_SUPPLY
	select CONFIG_S3C24XX_PWM
	select CONFIG_S3C_DEV_USB_HOST
	help
	   Say Y here if you are using the Openmoko GTA02 / Freerunner GSM Phone

config CONFIG_MACH_RX1950
	bool "HP iPAQ rx1950"
	select CONFIG_I2C
	select CONFIG_PM_H1940 if CONFIG_PM
	select CONFIG_S3C2410_COMMON_DCLK
	select CONFIG_S3C2410_IOTIMING if CONFIG_ARM_S3C2440_CPUFREQ
	select CONFIG_S3C2440_XTAL_16934400
	select CONFIG_S3C24XX_PWM
	select CONFIG_S3C_DEV_NAND
	help
	   Say Y here if you're using HP iPAQ rx1950

endif	# CONFIG_CPU_S3C2442

if CONFIG_CPU_S3C2443 || CONFIG_CPU_S3C2416

config CONFIG_S3C2443_SETUP_SPI
	bool
	help
	  Common setup code for CONFIG_SPI GPIO configurations

endif	# CONFIG_CPU_S3C2443 || CONFIG_CPU_S3C2416

if CONFIG_CPU_S3C2443

comment "S3C2443 Boards"

config CONFIG_MACH_SMDK2443
	bool "SMDK2443"
	select CONFIG_S3C24XX_SMDK
	select CONFIG_S3C_DEV_HSMMC1
	help
	  Say Y here if you are using an SMDK2443

endif	# CONFIG_CPU_S3C2443

config CONFIG_PM_H1940
	bool
	help
	  Internal node for H1940 and related CONFIG_PM

endmenu	# SAMSUNG S3C24XX SoCs Support

endif	# CONFIG_ARCH_S3C24XX