]> git.sur5r.net Git - u-boot/blob - arch/arm/mach-sunxi/Kconfig
stm32f1: remove stm32f1 support
[u-boot] / arch / arm / mach-sunxi / Kconfig
1 if ARCH_SUNXI
2
3 config IDENT_STRING
4         default " Allwinner Technology"
5
6 config SUNXI_HIGH_SRAM
7         bool
8         default n
9         ---help---
10         Older Allwinner SoCs have their mask boot ROM mapped just below 4GB,
11         with the first SRAM region being located at address 0.
12         Some newer SoCs map the boot ROM at address 0 instead and move the
13         SRAM to 64KB, just behind the mask ROM.
14         Chips using the latter setup are supposed to select this option to
15         adjust the addresses accordingly.
16
17 # Note only one of these may be selected at a time! But hidden choices are
18 # not supported by Kconfig
19 config SUNXI_GEN_SUN4I
20         bool
21         ---help---
22         Select this for sunxi SoCs which have resets and clocks set up
23         as the original A10 (mach-sun4i).
24
25 config SUNXI_GEN_SUN6I
26         bool
27         ---help---
28         Select this for sunxi SoCs which have sun6i like periphery, like
29         separate ahb reset control registers, custom pmic bus, new style
30         watchdog, etc.
31
32 config SUNXI_DRAM_DW
33         bool
34         ---help---
35         Select this for sunxi SoCs which uses a DRAM controller like the
36         DesignWare controller used in H3, mainly SoCs after H3, which do
37         not have official open-source DRAM initialization code, but can
38         use modified H3 DRAM initialization code.
39
40 if SUNXI_DRAM_DW
41 config SUNXI_DRAM_DW_16BIT
42         bool
43         ---help---
44         Select this for sunxi SoCs with DesignWare DRAM controller and
45         have only 16-bit memory buswidth.
46
47 config SUNXI_DRAM_DW_32BIT
48         bool
49         ---help---
50         Select this for sunxi SoCs with DesignWare DRAM controller with
51         32-bit memory buswidth.
52 endif
53
54 config MACH_SUNXI_H3_H5
55         bool
56         select DM_I2C
57         select SUNXI_DE2
58         select SUNXI_DRAM_DW
59         select SUNXI_DRAM_DW_32BIT
60         select SUNXI_GEN_SUN6I
61         select SUPPORT_SPL
62         imply ENV_IS_IN_MMC
63
64 choice
65         prompt "Sunxi SoC Variant"
66         optional
67
68 config MACH_SUN4I
69         bool "sun4i (Allwinner A10)"
70         select CPU_V7
71         select ARM_CORTEX_CPU_IS_UP
72         select SUNXI_GEN_SUN4I
73         select SUPPORT_SPL
74         imply ENV_IS_IN_MMC
75
76 config MACH_SUN5I
77         bool "sun5i (Allwinner A13)"
78         select CPU_V7
79         select ARM_CORTEX_CPU_IS_UP
80         select SUNXI_GEN_SUN4I
81         select SUPPORT_SPL
82
83 config MACH_SUN6I
84         bool "sun6i (Allwinner A31)"
85         select CPU_V7
86         select CPU_V7_HAS_NONSEC
87         select CPU_V7_HAS_VIRT
88         select ARCH_SUPPORT_PSCI
89         select SUNXI_GEN_SUN6I
90         select SUPPORT_SPL
91         select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
92         imply ENV_IS_IN_MMC
93
94 config MACH_SUN7I
95         bool "sun7i (Allwinner A20)"
96         select CPU_V7
97         select CPU_V7_HAS_NONSEC
98         select CPU_V7_HAS_VIRT
99         select ARCH_SUPPORT_PSCI
100         select SUNXI_GEN_SUN4I
101         select SUPPORT_SPL
102         select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
103         imply ENV_IS_IN_MMC
104
105 config MACH_SUN8I_A23
106         bool "sun8i (Allwinner A23)"
107         select CPU_V7
108         select CPU_V7_HAS_NONSEC
109         select CPU_V7_HAS_VIRT
110         select ARCH_SUPPORT_PSCI
111         select SUNXI_GEN_SUN6I
112         select SUPPORT_SPL
113         select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
114         imply ENV_IS_IN_MMC
115
116 config MACH_SUN8I_A33
117         bool "sun8i (Allwinner A33)"
118         select CPU_V7
119         select CPU_V7_HAS_NONSEC
120         select CPU_V7_HAS_VIRT
121         select ARCH_SUPPORT_PSCI
122         select SUNXI_GEN_SUN6I
123         select SUPPORT_SPL
124         select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
125
126 config MACH_SUN8I_A83T
127         bool "sun8i (Allwinner A83T)"
128         select CPU_V7
129         select SUNXI_GEN_SUN6I
130         select SUPPORT_SPL
131
132 config MACH_SUN8I_H3
133         bool "sun8i (Allwinner H3)"
134         select CPU_V7
135         select CPU_V7_HAS_NONSEC
136         select CPU_V7_HAS_VIRT
137         select ARCH_SUPPORT_PSCI
138         select MACH_SUNXI_H3_H5
139         select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
140         imply ENV_IS_IN_MMC
141
142 config MACH_SUN8I_R40
143         bool "sun8i (Allwinner R40)"
144         select CPU_V7
145         select CPU_V7_HAS_NONSEC
146         select CPU_V7_HAS_VIRT
147         select ARCH_SUPPORT_PSCI
148         select SUNXI_GEN_SUN6I
149         select SUPPORT_SPL
150         select SUNXI_DRAM_DW
151         select SUNXI_DRAM_DW_32BIT
152
153 config MACH_SUN8I_V3S
154         bool "sun8i (Allwinner V3s)"
155         select CPU_V7
156         select CPU_V7_HAS_NONSEC
157         select CPU_V7_HAS_VIRT
158         select ARCH_SUPPORT_PSCI
159         select SUNXI_GEN_SUN6I
160         select SUNXI_DRAM_DW
161         select SUNXI_DRAM_DW_16BIT
162         select SUPPORT_SPL
163         select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
164
165 config MACH_SUN9I
166         bool "sun9i (Allwinner A80)"
167         select CPU_V7
168         select SUNXI_HIGH_SRAM
169         select SUNXI_GEN_SUN6I
170         select SUPPORT_SPL
171
172 config MACH_SUN50I
173         bool "sun50i (Allwinner A64)"
174         select ARM64
175         select DM_I2C
176         select SUNXI_DE2
177         select SUNXI_GEN_SUN6I
178         select SUNXI_HIGH_SRAM
179         select SUPPORT_SPL
180         select SUNXI_DRAM_DW
181         select SUNXI_DRAM_DW_32BIT
182         select FIT
183         select SPL_LOAD_FIT
184
185 config MACH_SUN50I_H5
186         bool "sun50i (Allwinner H5)"
187         select ARM64
188         select MACH_SUNXI_H3_H5
189         select SUNXI_HIGH_SRAM
190         select FIT
191         select SPL_LOAD_FIT
192
193 endchoice
194
195 # The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
196 config MACH_SUN8I
197         bool
198         default y if MACH_SUN8I_A23
199         default y if MACH_SUN8I_A33
200         default y if MACH_SUN8I_A83T
201         default y if MACH_SUNXI_H3_H5
202         default y if MACH_SUN8I_R40
203         default y if MACH_SUN8I_V3S
204
205 config RESERVE_ALLWINNER_BOOT0_HEADER
206         bool "reserve space for Allwinner boot0 header"
207         select ENABLE_ARM_SOC_BOOT0_HOOK
208         ---help---
209         Prepend a 1536 byte (empty) header to the U-Boot image file, to be
210         filled with magic values post build. The Allwinner provided boot0
211         blob relies on this information to load and execute U-Boot.
212         Only needed on 64-bit Allwinner boards so far when using boot0.
213
214 config ARM_BOOT_HOOK_RMR
215         bool
216         depends on ARM64
217         default y
218         select ENABLE_ARM_SOC_BOOT0_HOOK
219         ---help---
220         Insert some ARM32 code at the very beginning of the U-Boot binary
221         which uses an RMR register write to bring the core into AArch64 mode.
222         The very first instruction acts as a switch, since it's carefully
223         chosen to be a NOP in one mode and a branch in the other, so the
224         code would only be executed if not already in AArch64.
225         This allows both the SPL and the U-Boot proper to be entered in
226         either mode and switch to AArch64 if needed.
227
228 if SUNXI_DRAM_DW
229 config SUNXI_DRAM_DDR3
230         bool
231
232 config SUNXI_DRAM_DDR2
233         bool
234
235 config SUNXI_DRAM_LPDDR3
236         bool
237
238 choice
239         prompt "DRAM Type and Timing"
240         default SUNXI_DRAM_DDR3_1333 if !MACH_SUN8I_V3S
241         default SUNXI_DRAM_DDR2_V3S if MACH_SUN8I_V3S
242
243 config SUNXI_DRAM_DDR3_1333
244         bool "DDR3 1333"
245         select SUNXI_DRAM_DDR3
246         depends on !MACH_SUN8I_V3S
247         ---help---
248         This option is the original only supported memory type, which suits
249         many H3/H5/A64 boards available now.
250
251 config SUNXI_DRAM_LPDDR3_STOCK
252         bool "LPDDR3 with Allwinner stock configuration"
253         select SUNXI_DRAM_LPDDR3
254         ---help---
255         This option is the LPDDR3 timing used by the stock boot0 by
256         Allwinner.
257
258 config SUNXI_DRAM_DDR2_V3S
259         bool "DDR2 found in V3s chip"
260         select SUNXI_DRAM_DDR2
261         depends on MACH_SUN8I_V3S
262         ---help---
263         This option is only for the DDR2 memory chip which is co-packaged in
264         Allwinner V3s SoC.
265
266 endchoice
267 endif
268
269 config DRAM_TYPE
270         int "sunxi dram type"
271         depends on MACH_SUN8I_A83T
272         default 3
273         ---help---
274         Set the dram type, 3: DDR3, 7: LPDDR3
275
276 config DRAM_CLK
277         int "sunxi dram clock speed"
278         default 792 if MACH_SUN9I
279         default 648 if MACH_SUN8I_R40
280         default 312 if MACH_SUN6I || MACH_SUN8I
281         default 360 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || \
282                        MACH_SUN8I_V3S
283         default 672 if MACH_SUN50I
284         ---help---
285         Set the dram clock speed, valid range 240 - 480 (prior to sun9i),
286         must be a multiple of 24. For the sun9i (A80), the tested values
287         (for DDR3-1600) are 312 to 792.
288
289 if MACH_SUN5I || MACH_SUN7I
290 config DRAM_MBUS_CLK
291         int "sunxi mbus clock speed"
292         default 300
293         ---help---
294         Set the mbus clock speed. The maximum on sun5i hardware is 300MHz.
295
296 endif
297
298 config DRAM_ZQ
299         int "sunxi dram zq value"
300         default 123 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
301         default 127 if MACH_SUN7I
302         default 14779 if MACH_SUN8I_V3S
303         default 3881979 if MACH_SUN8I_R40
304         default 4145117 if MACH_SUN9I
305         default 3881915 if MACH_SUN50I
306         ---help---
307         Set the dram zq value.
308
309 config DRAM_ODT_EN
310         bool "sunxi dram odt enable"
311         default n if !MACH_SUN8I_A23
312         default y if MACH_SUN8I_A23
313         default y if MACH_SUN8I_R40
314         default y if MACH_SUN50I
315         ---help---
316         Select this to enable dram odt (on die termination).
317
318 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
319 config DRAM_EMR1
320         int "sunxi dram emr1 value"
321         default 0 if MACH_SUN4I
322         default 4 if MACH_SUN5I || MACH_SUN7I
323         ---help---
324         Set the dram controller emr1 value.
325
326 config DRAM_TPR3
327         hex "sunxi dram tpr3 value"
328         default 0
329         ---help---
330         Set the dram controller tpr3 parameter. This parameter configures
331         the delay on the command lane and also phase shifts, which are
332         applied for sampling incoming read data. The default value 0
333         means that no phase/delay adjustments are necessary. Properly
334         configuring this parameter increases reliability at high DRAM
335         clock speeds.
336
337 config DRAM_DQS_GATING_DELAY
338         hex "sunxi dram dqs_gating_delay value"
339         default 0
340         ---help---
341         Set the dram controller dqs_gating_delay parmeter. Each byte
342         encodes the DQS gating delay for each byte lane. The delay
343         granularity is 1/4 cycle. For example, the value 0x05060606
344         means that the delay is 5 quarter-cycles for one lane (1.25
345         cycles) and 6 quarter-cycles (1.5 cycles) for 3 other lanes.
346         The default value 0 means autodetection. The results of hardware
347         autodetection are not very reliable and depend on the chip
348         temperature (sometimes producing different results on cold start
349         and warm reboot). But the accuracy of hardware autodetection
350         is usually good enough, unless running at really high DRAM
351         clocks speeds (up to 600MHz). If unsure, keep as 0.
352
353 choice
354         prompt "sunxi dram timings"
355         default DRAM_TIMINGS_VENDOR_MAGIC
356         ---help---
357         Select the timings of the DDR3 chips.
358
359 config DRAM_TIMINGS_VENDOR_MAGIC
360         bool "Magic vendor timings from Android"
361         ---help---
362         The same DRAM timings as in the Allwinner boot0 bootloader.
363
364 config DRAM_TIMINGS_DDR3_1066F_1333H
365         bool "JEDEC DDR3-1333H with down binning to DDR3-1066F"
366         ---help---
367         Use the timings of the standard JEDEC DDR3-1066F speed bin for
368         DRAM_CLK <= 533MHz and the timings of the DDR3-1333H speed bin
369         for DRAM_CLK > 533MHz. This covers the majority of DDR3 chips
370         used in Allwinner A10/A13/A20 devices. In the case of DDR3-1333
371         or DDR3-1600 chips, be sure to check the DRAM datasheet to confirm
372         that down binning to DDR3-1066F is supported (because DDR3-1066F
373         uses a bit faster timings than DDR3-1333H).
374
375 config DRAM_TIMINGS_DDR3_800E_1066G_1333J
376         bool "JEDEC DDR3-800E / DDR3-1066G / DDR3-1333J"
377         ---help---
378         Use the timings of the slowest possible JEDEC speed bin for the
379         selected DRAM_CLK. Depending on the DRAM_CLK value, it may be
380         DDR3-800E, DDR3-1066G or DDR3-1333J.
381
382 endchoice
383
384 endif
385
386 if MACH_SUN8I_A23
387 config DRAM_ODT_CORRECTION
388         int "sunxi dram odt correction value"
389         default 0
390         ---help---
391         Set the dram odt correction value (range -255 - 255). In allwinner
392         fex files, this option is found in bits 8-15 of the u32 odt_en variable
393         in the [dram] section. When bit 31 of the odt_en variable is set
394         then the correction is negative. Usually the value for this is 0.
395 endif
396
397 config SYS_CLK_FREQ
398         default 1008000000 if MACH_SUN4I
399         default 1008000000 if MACH_SUN5I
400         default 1008000000 if MACH_SUN6I
401         default 912000000 if MACH_SUN7I
402         default 1008000000 if MACH_SUN8I
403         default 1008000000 if MACH_SUN9I
404         default 816000000 if MACH_SUN50I
405
406 config SYS_CONFIG_NAME
407         default "sun4i" if MACH_SUN4I
408         default "sun5i" if MACH_SUN5I
409         default "sun6i" if MACH_SUN6I
410         default "sun7i" if MACH_SUN7I
411         default "sun8i" if MACH_SUN8I
412         default "sun9i" if MACH_SUN9I
413         default "sun50i" if MACH_SUN50I
414
415 config SYS_BOARD
416         default "sunxi"
417
418 config SYS_SOC
419         default "sunxi"
420
421 config UART0_PORT_F
422         bool "UART0 on MicroSD breakout board"
423         default n
424         ---help---
425         Repurpose the SD card slot for getting access to the UART0 serial
426         console. Primarily useful only for low level u-boot debugging on
427         tablets, where normal UART0 is difficult to access and requires
428         device disassembly and/or soldering. As the SD card can't be used
429         at the same time, the system can be only booted in the FEL mode.
430         Only enable this if you really know what you are doing.
431
432 config OLD_SUNXI_KERNEL_COMPAT
433         bool "Enable workarounds for booting old kernels"
434         default n
435         ---help---
436         Set this to enable various workarounds for old kernels, this results in
437         sub-optimal settings for newer kernels, only enable if needed.
438
439 config MACPWR
440         string "MAC power pin"
441         default ""
442         help
443           Set the pin used to power the MAC. This takes a string in the format
444           understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
445
446 config MMC0_CD_PIN
447         string "Card detect pin for mmc0"
448         default "PF6" if MACH_SUN8I_A83T || MACH_SUNXI_H3_H5 || MACH_SUN50I
449         default ""
450         ---help---
451         Set the card detect pin for mmc0, leave empty to not use cd. This
452         takes a string in the format understood by sunxi_name_to_gpio, e.g.
453         PH1 for pin 1 of port H.
454
455 config MMC1_CD_PIN
456         string "Card detect pin for mmc1"
457         default ""
458         ---help---
459         See MMC0_CD_PIN help text.
460
461 config MMC2_CD_PIN
462         string "Card detect pin for mmc2"
463         default ""
464         ---help---
465         See MMC0_CD_PIN help text.
466
467 config MMC3_CD_PIN
468         string "Card detect pin for mmc3"
469         default ""
470         ---help---
471         See MMC0_CD_PIN help text.
472
473 config MMC1_PINS
474         string "Pins for mmc1"
475         default ""
476         ---help---
477         Set the pins used for mmc1, when applicable. This takes a string in the
478         format understood by sunxi_name_to_gpio_bank, e.g. PH for port H.
479
480 config MMC2_PINS
481         string "Pins for mmc2"
482         default ""
483         ---help---
484         See MMC1_PINS help text.
485
486 config MMC3_PINS
487         string "Pins for mmc3"
488         default ""
489         ---help---
490         See MMC1_PINS help text.
491
492 config MMC_SUNXI_SLOT_EXTRA
493         int "mmc extra slot number"
494         default -1
495         ---help---
496         sunxi builds always enable mmc0, some boards also have a second sdcard
497         slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable
498         support for this.
499
500 config INITIAL_USB_SCAN_DELAY
501         int "delay initial usb scan by x ms to allow builtin devices to init"
502         default 0
503         ---help---
504         Some boards have on board usb devices which need longer than the
505         USB spec's 1 second to connect from board powerup. Set this config
506         option to a non 0 value to add an extra delay before the first usb
507         bus scan.
508
509 config USB0_VBUS_PIN
510         string "Vbus enable pin for usb0 (otg)"
511         default ""
512         ---help---
513         Set the Vbus enable pin for usb0 (otg). This takes a string in the
514         format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
515
516 config USB0_VBUS_DET
517         string "Vbus detect pin for usb0 (otg)"
518         default ""
519         ---help---
520         Set the Vbus detect pin for usb0 (otg). This takes a string in the
521         format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
522
523 config USB0_ID_DET
524         string "ID detect pin for usb0 (otg)"
525         default ""
526         ---help---
527         Set the ID detect pin for usb0 (otg). This takes a string in the
528         format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
529
530 config USB1_VBUS_PIN
531         string "Vbus enable pin for usb1 (ehci0)"
532         default "PH6" if MACH_SUN4I || MACH_SUN7I
533         default "PH27" if MACH_SUN6I
534         ---help---
535         Set the Vbus enable pin for usb1 (ehci0, usb0 is the otg). This takes
536         a string in the format understood by sunxi_name_to_gpio, e.g.
537         PH1 for pin 1 of port H.
538
539 config USB2_VBUS_PIN
540         string "Vbus enable pin for usb2 (ehci1)"
541         default "PH3" if MACH_SUN4I || MACH_SUN7I
542         default "PH24" if MACH_SUN6I
543         ---help---
544         See USB1_VBUS_PIN help text.
545
546 config USB3_VBUS_PIN
547         string "Vbus enable pin for usb3 (ehci2)"
548         default ""
549         ---help---
550         See USB1_VBUS_PIN help text.
551
552 config I2C0_ENABLE
553         bool "Enable I2C/TWI controller 0"
554         default y if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUN8I_R40
555         default n if MACH_SUN6I || MACH_SUN8I
556         select CMD_I2C
557         ---help---
558         This allows enabling I2C/TWI controller 0 by muxing its pins, enabling
559         its clock and setting up the bus. This is especially useful on devices
560         with slaves connected to the bus or with pins exposed through e.g. an
561         expansion port/header.
562
563 config I2C1_ENABLE
564         bool "Enable I2C/TWI controller 1"
565         default n
566         select CMD_I2C
567         ---help---
568         See I2C0_ENABLE help text.
569
570 config I2C2_ENABLE
571         bool "Enable I2C/TWI controller 2"
572         default n
573         select CMD_I2C
574         ---help---
575         See I2C0_ENABLE help text.
576
577 if MACH_SUN6I || MACH_SUN7I
578 config I2C3_ENABLE
579         bool "Enable I2C/TWI controller 3"
580         default n
581         select CMD_I2C
582         ---help---
583         See I2C0_ENABLE help text.
584 endif
585
586 if SUNXI_GEN_SUN6I
587 config R_I2C_ENABLE
588         bool "Enable the PRCM I2C/TWI controller"
589         # This is used for the pmic on H3
590         default y if SY8106A_POWER
591         select CMD_I2C
592         ---help---
593         Set this to y to enable the I2C controller which is part of the PRCM.
594 endif
595
596 if MACH_SUN7I
597 config I2C4_ENABLE
598         bool "Enable I2C/TWI controller 4"
599         default n
600         select CMD_I2C
601         ---help---
602         See I2C0_ENABLE help text.
603 endif
604
605 config AXP_GPIO
606         bool "Enable support for gpio-s on axp PMICs"
607         default n
608         ---help---
609         Say Y here to enable support for the gpio pins of the axp PMIC ICs.
610
611 config VIDEO
612         bool "Enable graphical uboot console on HDMI, LCD or VGA"
613         depends on !MACH_SUN8I_A83T
614         depends on !MACH_SUNXI_H3_H5
615         depends on !MACH_SUN8I_R40
616         depends on !MACH_SUN8I_V3S
617         depends on !MACH_SUN9I
618         depends on !MACH_SUN50I
619         default y
620         ---help---
621         Say Y here to add support for using a cfb console on the HDMI, LCD
622         or VGA output found on most sunxi devices. See doc/README.video for
623         info on how to select the video output and mode.
624
625 config VIDEO_HDMI
626         bool "HDMI output support"
627         depends on VIDEO && !MACH_SUN8I
628         default y
629         ---help---
630         Say Y here to add support for outputting video over HDMI.
631
632 config VIDEO_VGA
633         bool "VGA output support"
634         depends on VIDEO && (MACH_SUN4I || MACH_SUN7I)
635         default n
636         ---help---
637         Say Y here to add support for outputting video over VGA.
638
639 config VIDEO_VGA_VIA_LCD
640         bool "VGA via LCD controller support"
641         depends on VIDEO && (MACH_SUN5I || MACH_SUN6I || MACH_SUN8I)
642         default n
643         ---help---
644         Say Y here to add support for external DACs connected to the parallel
645         LCD interface driving a VGA connector, such as found on the
646         Olimex A13 boards.
647
648 config VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH
649         bool "Force sync active high for VGA via LCD controller support"
650         depends on VIDEO_VGA_VIA_LCD
651         default n
652         ---help---
653         Say Y here if you've a board which uses opendrain drivers for the vga
654         hsync and vsync signals. Opendrain drivers cannot generate steep enough
655         positive edges for a stable video output, so on boards with opendrain
656         drivers the sync signals must always be active high.
657
658 config VIDEO_VGA_EXTERNAL_DAC_EN
659         string "LCD panel power enable pin"
660         depends on VIDEO_VGA_VIA_LCD
661         default ""
662         ---help---
663         Set the enable pin for the external VGA DAC. This takes a string in the
664         format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
665
666 config VIDEO_COMPOSITE
667         bool "Composite video output support"
668         depends on VIDEO && (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
669         default n
670         ---help---
671         Say Y here to add support for outputting composite video.
672
673 config VIDEO_LCD_MODE
674         string "LCD panel timing details"
675         depends on VIDEO
676         default ""
677         ---help---
678         LCD panel timing details string, leave empty if there is no LCD panel.
679         This is in drivers/video/videomodes.c: video_get_params() format, e.g.
680         x:800,y:480,depth:18,pclk_khz:33000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:0,vmode:0
681         Also see: http://linux-sunxi.org/LCD
682
683 config VIDEO_LCD_DCLK_PHASE
684         int "LCD panel display clock phase"
685         depends on VIDEO
686         default 1
687         ---help---
688         Select LCD panel display clock phase shift, range 0-3.
689
690 config VIDEO_LCD_POWER
691         string "LCD panel power enable pin"
692         depends on VIDEO
693         default ""
694         ---help---
695         Set the power enable pin for the LCD panel. This takes a string in the
696         format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
697
698 config VIDEO_LCD_RESET
699         string "LCD panel reset pin"
700         depends on VIDEO
701         default ""
702         ---help---
703         Set the reset pin for the LCD panel. This takes a string in the format
704         understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
705
706 config VIDEO_LCD_BL_EN
707         string "LCD panel backlight enable pin"
708         depends on VIDEO
709         default ""
710         ---help---
711         Set the backlight enable pin for the LCD panel. This takes a string in the
712         the format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
713         port H.
714
715 config VIDEO_LCD_BL_PWM
716         string "LCD panel backlight pwm pin"
717         depends on VIDEO
718         default ""
719         ---help---
720         Set the backlight pwm pin for the LCD panel. This takes a string in the
721         format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
722
723 config VIDEO_LCD_BL_PWM_ACTIVE_LOW
724         bool "LCD panel backlight pwm is inverted"
725         depends on VIDEO
726         default y
727         ---help---
728         Set this if the backlight pwm output is active low.
729
730 config VIDEO_LCD_PANEL_I2C
731         bool "LCD panel needs to be configured via i2c"
732         depends on VIDEO
733         default n
734         select CMD_I2C
735         ---help---
736         Say y here if the LCD panel needs to be configured via i2c. This
737         will add a bitbang i2c controller using gpios to talk to the LCD.
738
739 config VIDEO_LCD_PANEL_I2C_SDA
740         string "LCD panel i2c interface SDA pin"
741         depends on VIDEO_LCD_PANEL_I2C
742         default "PG12"
743         ---help---
744         Set the SDA pin for the LCD i2c interface. This takes a string in the
745         format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
746
747 config VIDEO_LCD_PANEL_I2C_SCL
748         string "LCD panel i2c interface SCL pin"
749         depends on VIDEO_LCD_PANEL_I2C
750         default "PG10"
751         ---help---
752         Set the SCL pin for the LCD i2c interface. This takes a string in the
753         format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
754
755
756 # Note only one of these may be selected at a time! But hidden choices are
757 # not supported by Kconfig
758 config VIDEO_LCD_IF_PARALLEL
759         bool
760
761 config VIDEO_LCD_IF_LVDS
762         bool
763
764 config SUNXI_DE2
765         bool
766         default n
767
768 config VIDEO_DE2
769         bool "Display Engine 2 video driver"
770         depends on SUNXI_DE2
771         select DM_VIDEO
772         select DISPLAY
773         default y
774         ---help---
775         Say y here if you want to build DE2 video driver which is present on
776         newer SoCs. Currently only HDMI output is supported.
777
778
779 choice
780         prompt "LCD panel support"
781         depends on VIDEO
782         ---help---
783         Select which type of LCD panel to support.
784
785 config VIDEO_LCD_PANEL_PARALLEL
786         bool "Generic parallel interface LCD panel"
787         select VIDEO_LCD_IF_PARALLEL
788
789 config VIDEO_LCD_PANEL_LVDS
790         bool "Generic lvds interface LCD panel"
791         select VIDEO_LCD_IF_LVDS
792
793 config VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828
794         bool "MIPI 4-lane, 513Mbps LCD panel via SSD2828 bridge chip"
795         select VIDEO_LCD_SSD2828
796         select VIDEO_LCD_IF_PARALLEL
797         ---help---
798         7.85" 768x1024 LCD panels, such as LG LP079X01 or AUO B079XAN01.0
799
800 config VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804
801         bool "eDP 4-lane, 1.62G LCD panel via ANX9804 bridge chip"
802         select VIDEO_LCD_ANX9804
803         select VIDEO_LCD_IF_PARALLEL
804         select VIDEO_LCD_PANEL_I2C
805         ---help---
806         Select this for eDP LCD panels with 4 lanes running at 1.62G,
807         connected via an ANX9804 bridge chip.
808
809 config VIDEO_LCD_PANEL_HITACHI_TX18D42VM
810         bool "Hitachi tx18d42vm LCD panel"
811         select VIDEO_LCD_HITACHI_TX18D42VM
812         select VIDEO_LCD_IF_LVDS
813         ---help---
814         7.85" 1024x768 Hitachi tx18d42vm LCD panel support
815
816 config VIDEO_LCD_TL059WV5C0
817         bool "tl059wv5c0 LCD panel"
818         select VIDEO_LCD_PANEL_I2C
819         select VIDEO_LCD_IF_PARALLEL
820         ---help---
821         6" 480x800 tl059wv5c0 panel support, as used on the Utoo P66 and
822         Aigo M60/M608/M606 tablets.
823
824 endchoice
825
826 config SATAPWR
827         string "SATA power pin"
828         default ""
829         help
830           Set the pins used to power the SATA. This takes a string in the
831           format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
832           port H.
833
834 config GMAC_TX_DELAY
835         int "GMAC Transmit Clock Delay Chain"
836         default 0
837         ---help---
838         Set the GMAC Transmit Clock Delay Chain value.
839
840 config SPL_STACK_R_ADDR
841         default 0x4fe00000 if MACH_SUN4I
842         default 0x4fe00000 if MACH_SUN5I
843         default 0x4fe00000 if MACH_SUN6I
844         default 0x4fe00000 if MACH_SUN7I
845         default 0x4fe00000 if MACH_SUN8I
846         default 0x2fe00000 if MACH_SUN9I
847         default 0x4fe00000 if MACH_SUN50I
848
849 endif