3 config SPL_GPIO_SUPPORT
6 config SPL_LIBCOMMON_SUPPORT
9 # Note only one of these may be selected at a time! But hidden choices are
10 # not supported by Kconfig
11 config SUNXI_GEN_SUN4I
14 Select this for sunxi SoCs which have resets and clocks set up
15 as the original A10 (mach-sun4i).
17 config SUNXI_GEN_SUN6I
20 Select this for sunxi SoCs which have sun6i like periphery, like
21 separate ahb reset control registers, custom pmic bus, new style
26 prompt "Sunxi SoC Variant"
30 bool "sun4i (Allwinner A10)"
32 select SUNXI_GEN_SUN4I
36 bool "sun5i (Allwinner A13)"
38 select SUNXI_GEN_SUN4I
42 bool "sun6i (Allwinner A31)"
44 select CPU_V7_HAS_NONSEC
45 select CPU_V7_HAS_VIRT
46 select ARCH_SUPPORT_PSCI
47 select SUNXI_GEN_SUN6I
49 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
52 bool "sun7i (Allwinner A20)"
54 select CPU_V7_HAS_NONSEC
55 select CPU_V7_HAS_VIRT
56 select ARCH_SUPPORT_PSCI
57 select SUNXI_GEN_SUN4I
59 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
62 bool "sun8i (Allwinner A23)"
64 select CPU_V7_HAS_NONSEC
65 select CPU_V7_HAS_VIRT
66 select ARCH_SUPPORT_PSCI
67 select SUNXI_GEN_SUN6I
69 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
72 bool "sun8i (Allwinner A33)"
74 select CPU_V7_HAS_NONSEC
75 select CPU_V7_HAS_VIRT
76 select ARCH_SUPPORT_PSCI
77 select SUNXI_GEN_SUN6I
79 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
81 config MACH_SUN8I_A83T
82 bool "sun8i (Allwinner A83T)"
84 select SUNXI_GEN_SUN6I
88 bool "sun8i (Allwinner H3)"
90 select CPU_V7_HAS_NONSEC
91 select CPU_V7_HAS_VIRT
92 select ARCH_SUPPORT_PSCI
93 select SUNXI_GEN_SUN6I
95 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
98 bool "sun9i (Allwinner A80)"
100 select SUNXI_GEN_SUN6I
103 bool "sun50i (Allwinner A64)"
105 select SUNXI_GEN_SUN6I
109 # The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
112 default y if MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUN8I_H3 || MACH_SUN8I_A83T
115 int "sunxi dram type"
116 depends on MACH_SUN8I_A83T
119 Set the dram type, 3: DDR3, 7: LPDDR3
122 int "sunxi dram clock speed"
123 default 312 if MACH_SUN6I || MACH_SUN8I
124 default 360 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
126 Set the dram clock speed, valid range 240 - 480, must be a multiple
129 if MACH_SUN5I || MACH_SUN7I
131 int "sunxi mbus clock speed"
134 Set the mbus clock speed. The maximum on sun5i hardware is 300MHz.
139 int "sunxi dram zq value"
140 default 123 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
141 default 127 if MACH_SUN7I
143 Set the dram zq value.
146 bool "sunxi dram odt enable"
147 default n if !MACH_SUN8I_A23
148 default y if MACH_SUN8I_A23
150 Select this to enable dram odt (on die termination).
152 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
154 int "sunxi dram emr1 value"
155 default 0 if MACH_SUN4I
156 default 4 if MACH_SUN5I || MACH_SUN7I
158 Set the dram controller emr1 value.
161 hex "sunxi dram tpr3 value"
164 Set the dram controller tpr3 parameter. This parameter configures
165 the delay on the command lane and also phase shifts, which are
166 applied for sampling incoming read data. The default value 0
167 means that no phase/delay adjustments are necessary. Properly
168 configuring this parameter increases reliability at high DRAM
171 config DRAM_DQS_GATING_DELAY
172 hex "sunxi dram dqs_gating_delay value"
175 Set the dram controller dqs_gating_delay parmeter. Each byte
176 encodes the DQS gating delay for each byte lane. The delay
177 granularity is 1/4 cycle. For example, the value 0x05060606
178 means that the delay is 5 quarter-cycles for one lane (1.25
179 cycles) and 6 quarter-cycles (1.5 cycles) for 3 other lanes.
180 The default value 0 means autodetection. The results of hardware
181 autodetection are not very reliable and depend on the chip
182 temperature (sometimes producing different results on cold start
183 and warm reboot). But the accuracy of hardware autodetection
184 is usually good enough, unless running at really high DRAM
185 clocks speeds (up to 600MHz). If unsure, keep as 0.
188 prompt "sunxi dram timings"
189 default DRAM_TIMINGS_VENDOR_MAGIC
191 Select the timings of the DDR3 chips.
193 config DRAM_TIMINGS_VENDOR_MAGIC
194 bool "Magic vendor timings from Android"
196 The same DRAM timings as in the Allwinner boot0 bootloader.
198 config DRAM_TIMINGS_DDR3_1066F_1333H
199 bool "JEDEC DDR3-1333H with down binning to DDR3-1066F"
201 Use the timings of the standard JEDEC DDR3-1066F speed bin for
202 DRAM_CLK <= 533MHz and the timings of the DDR3-1333H speed bin
203 for DRAM_CLK > 533MHz. This covers the majority of DDR3 chips
204 used in Allwinner A10/A13/A20 devices. In the case of DDR3-1333
205 or DDR3-1600 chips, be sure to check the DRAM datasheet to confirm
206 that down binning to DDR3-1066F is supported (because DDR3-1066F
207 uses a bit faster timings than DDR3-1333H).
209 config DRAM_TIMINGS_DDR3_800E_1066G_1333J
210 bool "JEDEC DDR3-800E / DDR3-1066G / DDR3-1333J"
212 Use the timings of the slowest possible JEDEC speed bin for the
213 selected DRAM_CLK. Depending on the DRAM_CLK value, it may be
214 DDR3-800E, DDR3-1066G or DDR3-1333J.
221 config DRAM_ODT_CORRECTION
222 int "sunxi dram odt correction value"
225 Set the dram odt correction value (range -255 - 255). In allwinner
226 fex files, this option is found in bits 8-15 of the u32 odt_en variable
227 in the [dram] section. When bit 31 of the odt_en variable is set
228 then the correction is negative. Usually the value for this is 0.
232 default 816000000 if MACH_SUN50I
233 default 912000000 if MACH_SUN7I
234 default 1008000000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
236 config SYS_CONFIG_NAME
237 default "sun4i" if MACH_SUN4I
238 default "sun5i" if MACH_SUN5I
239 default "sun6i" if MACH_SUN6I
240 default "sun7i" if MACH_SUN7I
241 default "sun8i" if MACH_SUN8I
242 default "sun9i" if MACH_SUN9I
243 default "sun50i" if MACH_SUN50I
252 bool "UART0 on MicroSD breakout board"
255 Repurpose the SD card slot for getting access to the UART0 serial
256 console. Primarily useful only for low level u-boot debugging on
257 tablets, where normal UART0 is difficult to access and requires
258 device disassembly and/or soldering. As the SD card can't be used
259 at the same time, the system can be only booted in the FEL mode.
260 Only enable this if you really know what you are doing.
262 config OLD_SUNXI_KERNEL_COMPAT
263 bool "Enable workarounds for booting old kernels"
266 Set this to enable various workarounds for old kernels, this results in
267 sub-optimal settings for newer kernels, only enable if needed.
270 depends on !UART0_PORT_F
271 default y if ARCH_SUNXI
274 string "Card detect pin for mmc0"
275 default "PF6" if MACH_SUN8I_A83T || MACH_SUN8I_H3 || MACH_SUN50I
278 Set the card detect pin for mmc0, leave empty to not use cd. This
279 takes a string in the format understood by sunxi_name_to_gpio, e.g.
280 PH1 for pin 1 of port H.
283 string "Card detect pin for mmc1"
286 See MMC0_CD_PIN help text.
289 string "Card detect pin for mmc2"
292 See MMC0_CD_PIN help text.
295 string "Card detect pin for mmc3"
298 See MMC0_CD_PIN help text.
301 string "Pins for mmc1"
304 Set the pins used for mmc1, when applicable. This takes a string in the
305 format understood by sunxi_name_to_gpio_bank, e.g. PH for port H.
308 string "Pins for mmc2"
311 See MMC1_PINS help text.
314 string "Pins for mmc3"
317 See MMC1_PINS help text.
319 config MMC_SUNXI_SLOT_EXTRA
320 int "mmc extra slot number"
323 sunxi builds always enable mmc0, some boards also have a second sdcard
324 slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable
327 config INITIAL_USB_SCAN_DELAY
328 int "delay initial usb scan by x ms to allow builtin devices to init"
331 Some boards have on board usb devices which need longer than the
332 USB spec's 1 second to connect from board powerup. Set this config
333 option to a non 0 value to add an extra delay before the first usb
337 string "Vbus enable pin for usb0 (otg)"
340 Set the Vbus enable pin for usb0 (otg). This takes a string in the
341 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
344 string "Vbus detect pin for usb0 (otg)"
347 Set the Vbus detect pin for usb0 (otg). This takes a string in the
348 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
351 string "ID detect pin for usb0 (otg)"
354 Set the ID detect pin for usb0 (otg). This takes a string in the
355 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
358 string "Vbus enable pin for usb1 (ehci0)"
359 default "PH6" if MACH_SUN4I || MACH_SUN7I
360 default "PH27" if MACH_SUN6I
362 Set the Vbus enable pin for usb1 (ehci0, usb0 is the otg). This takes
363 a string in the format understood by sunxi_name_to_gpio, e.g.
364 PH1 for pin 1 of port H.
367 string "Vbus enable pin for usb2 (ehci1)"
368 default "PH3" if MACH_SUN4I || MACH_SUN7I
369 default "PH24" if MACH_SUN6I
371 See USB1_VBUS_PIN help text.
374 string "Vbus enable pin for usb3 (ehci2)"
377 See USB1_VBUS_PIN help text.
380 bool "Enable I2C/TWI controller 0"
381 default y if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
382 default n if MACH_SUN6I || MACH_SUN8I
385 This allows enabling I2C/TWI controller 0 by muxing its pins, enabling
386 its clock and setting up the bus. This is especially useful on devices
387 with slaves connected to the bus or with pins exposed through e.g. an
388 expansion port/header.
391 bool "Enable I2C/TWI controller 1"
395 See I2C0_ENABLE help text.
398 bool "Enable I2C/TWI controller 2"
402 See I2C0_ENABLE help text.
404 if MACH_SUN6I || MACH_SUN7I
406 bool "Enable I2C/TWI controller 3"
410 See I2C0_ENABLE help text.
415 bool "Enable the PRCM I2C/TWI controller"
416 # This is used for the pmic on H3
417 default y if SY8106A_POWER
420 Set this to y to enable the I2C controller which is part of the PRCM.
425 bool "Enable I2C/TWI controller 4"
429 See I2C0_ENABLE help text.
433 bool "Enable support for gpio-s on axp PMICs"
436 Say Y here to enable support for the gpio pins of the axp PMIC ICs.
439 bool "Enable graphical uboot console on HDMI, LCD or VGA"
440 depends on !MACH_SUN8I_A83T && !MACH_SUN8I_H3 && !MACH_SUN9I && !MACH_SUN50I
443 Say Y here to add support for using a cfb console on the HDMI, LCD
444 or VGA output found on most sunxi devices. See doc/README.video for
445 info on how to select the video output and mode.
448 bool "HDMI output support"
449 depends on VIDEO && !MACH_SUN8I
452 Say Y here to add support for outputting video over HDMI.
455 bool "VGA output support"
456 depends on VIDEO && (MACH_SUN4I || MACH_SUN7I)
459 Say Y here to add support for outputting video over VGA.
461 config VIDEO_VGA_VIA_LCD
462 bool "VGA via LCD controller support"
463 depends on VIDEO && (MACH_SUN5I || MACH_SUN6I || MACH_SUN8I)
466 Say Y here to add support for external DACs connected to the parallel
467 LCD interface driving a VGA connector, such as found on the
470 config VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH
471 bool "Force sync active high for VGA via LCD controller support"
472 depends on VIDEO_VGA_VIA_LCD
475 Say Y here if you've a board which uses opendrain drivers for the vga
476 hsync and vsync signals. Opendrain drivers cannot generate steep enough
477 positive edges for a stable video output, so on boards with opendrain
478 drivers the sync signals must always be active high.
480 config VIDEO_VGA_EXTERNAL_DAC_EN
481 string "LCD panel power enable pin"
482 depends on VIDEO_VGA_VIA_LCD
485 Set the enable pin for the external VGA DAC. This takes a string in the
486 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
488 config VIDEO_COMPOSITE
489 bool "Composite video output support"
490 depends on VIDEO && (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
493 Say Y here to add support for outputting composite video.
495 config VIDEO_LCD_MODE
496 string "LCD panel timing details"
500 LCD panel timing details string, leave empty if there is no LCD panel.
501 This is in drivers/video/videomodes.c: video_get_params() format, e.g.
502 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
503 Also see: http://linux-sunxi.org/LCD
505 config VIDEO_LCD_DCLK_PHASE
506 int "LCD panel display clock phase"
510 Select LCD panel display clock phase shift, range 0-3.
512 config VIDEO_LCD_POWER
513 string "LCD panel power enable pin"
517 Set the power enable pin for the LCD panel. This takes a string in the
518 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
520 config VIDEO_LCD_RESET
521 string "LCD panel reset pin"
525 Set the reset pin for the LCD panel. This takes a string in the format
526 understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
528 config VIDEO_LCD_BL_EN
529 string "LCD panel backlight enable pin"
533 Set the backlight enable pin for the LCD panel. This takes a string in the
534 the format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
537 config VIDEO_LCD_BL_PWM
538 string "LCD panel backlight pwm pin"
542 Set the backlight pwm pin for the LCD panel. This takes a string in the
543 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
545 config VIDEO_LCD_BL_PWM_ACTIVE_LOW
546 bool "LCD panel backlight pwm is inverted"
550 Set this if the backlight pwm output is active low.
552 config VIDEO_LCD_PANEL_I2C
553 bool "LCD panel needs to be configured via i2c"
558 Say y here if the LCD panel needs to be configured via i2c. This
559 will add a bitbang i2c controller using gpios to talk to the LCD.
561 config VIDEO_LCD_PANEL_I2C_SDA
562 string "LCD panel i2c interface SDA pin"
563 depends on VIDEO_LCD_PANEL_I2C
566 Set the SDA pin for the LCD i2c interface. This takes a string in the
567 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
569 config VIDEO_LCD_PANEL_I2C_SCL
570 string "LCD panel i2c interface SCL pin"
571 depends on VIDEO_LCD_PANEL_I2C
574 Set the SCL pin for the LCD i2c interface. This takes a string in the
575 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
578 # Note only one of these may be selected at a time! But hidden choices are
579 # not supported by Kconfig
580 config VIDEO_LCD_IF_PARALLEL
583 config VIDEO_LCD_IF_LVDS
588 prompt "LCD panel support"
591 Select which type of LCD panel to support.
593 config VIDEO_LCD_PANEL_PARALLEL
594 bool "Generic parallel interface LCD panel"
595 select VIDEO_LCD_IF_PARALLEL
597 config VIDEO_LCD_PANEL_LVDS
598 bool "Generic lvds interface LCD panel"
599 select VIDEO_LCD_IF_LVDS
601 config VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828
602 bool "MIPI 4-lane, 513Mbps LCD panel via SSD2828 bridge chip"
603 select VIDEO_LCD_SSD2828
604 select VIDEO_LCD_IF_PARALLEL
606 7.85" 768x1024 LCD panels, such as LG LP079X01 or AUO B079XAN01.0
608 config VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804
609 bool "eDP 4-lane, 1.62G LCD panel via ANX9804 bridge chip"
610 select VIDEO_LCD_ANX9804
611 select VIDEO_LCD_IF_PARALLEL
612 select VIDEO_LCD_PANEL_I2C
614 Select this for eDP LCD panels with 4 lanes running at 1.62G,
615 connected via an ANX9804 bridge chip.
617 config VIDEO_LCD_PANEL_HITACHI_TX18D42VM
618 bool "Hitachi tx18d42vm LCD panel"
619 select VIDEO_LCD_HITACHI_TX18D42VM
620 select VIDEO_LCD_IF_LVDS
622 7.85" 1024x768 Hitachi tx18d42vm LCD panel support
624 config VIDEO_LCD_TL059WV5C0
625 bool "tl059wv5c0 LCD panel"
626 select VIDEO_LCD_PANEL_I2C
627 select VIDEO_LCD_IF_PARALLEL
629 6" 480x800 tl059wv5c0 panel support, as used on the Utoo P66 and
630 Aigo M60/M608/M606 tablets.
636 int "GMAC Transmit Clock Delay Chain"
639 Set the GMAC Transmit Clock Delay Chain value.
641 config SPL_STACK_R_ADDR
642 default 0x4fe00000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN7I || MACH_SUN8I || MACH_SUN50I
643 default 0x2fe00000 if MACH_SUN9I