3 config SPL_GPIO_SUPPORT
6 # Note only one of these may be selected at a time! But hidden choices are
7 # not supported by Kconfig
11 Select this for sunxi SoCs which have resets and clocks set up
12 as the original A10 (mach-sun4i).
14 config SUNXI_GEN_SUN6I
17 Select this for sunxi SoCs which have sun6i like periphery, like
18 separate ahb reset control registers, custom pmic bus, new style
23 prompt "Sunxi SoC Variant"
27 bool "sun4i (Allwinner A10)"
29 select SUNXI_GEN_SUN4I
33 bool "sun5i (Allwinner A13)"
35 select SUNXI_GEN_SUN4I
39 bool "sun6i (Allwinner A31)"
41 select CPU_V7_HAS_NONSEC
42 select CPU_V7_HAS_VIRT
43 select ARCH_SUPPORT_PSCI
44 select SUNXI_GEN_SUN6I
46 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
49 bool "sun7i (Allwinner A20)"
51 select CPU_V7_HAS_NONSEC
52 select CPU_V7_HAS_VIRT
53 select ARCH_SUPPORT_PSCI
54 select SUNXI_GEN_SUN4I
56 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
59 bool "sun8i (Allwinner A23)"
61 select CPU_V7_HAS_NONSEC
62 select CPU_V7_HAS_VIRT
63 select ARCH_SUPPORT_PSCI
64 select SUNXI_GEN_SUN6I
66 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
69 bool "sun8i (Allwinner A33)"
71 select CPU_V7_HAS_NONSEC
72 select CPU_V7_HAS_VIRT
73 select ARCH_SUPPORT_PSCI
74 select SUNXI_GEN_SUN6I
76 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
78 config MACH_SUN8I_A83T
79 bool "sun8i (Allwinner A83T)"
81 select SUNXI_GEN_SUN6I
85 bool "sun8i (Allwinner H3)"
87 select CPU_V7_HAS_NONSEC
88 select CPU_V7_HAS_VIRT
89 select ARCH_SUPPORT_PSCI
90 select SUNXI_GEN_SUN6I
92 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
95 bool "sun9i (Allwinner A80)"
97 select SUNXI_GEN_SUN6I
100 bool "sun50i (Allwinner A64)"
102 select SUNXI_GEN_SUN6I
106 # The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
109 default y if MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUN8I_H3 || MACH_SUN8I_A83T
112 int "sunxi dram type"
113 depends on MACH_SUN8I_A83T
116 Set the dram type, 3: DDR3, 7: LPDDR3
119 int "sunxi dram clock speed"
120 default 312 if MACH_SUN6I || MACH_SUN8I
121 default 360 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
123 Set the dram clock speed, valid range 240 - 480, must be a multiple
126 if MACH_SUN5I || MACH_SUN7I
128 int "sunxi mbus clock speed"
131 Set the mbus clock speed. The maximum on sun5i hardware is 300MHz.
136 int "sunxi dram zq value"
137 default 123 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
138 default 127 if MACH_SUN7I
140 Set the dram zq value.
143 bool "sunxi dram odt enable"
144 default n if !MACH_SUN8I_A23
145 default y if MACH_SUN8I_A23
147 Select this to enable dram odt (on die termination).
149 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
151 int "sunxi dram emr1 value"
152 default 0 if MACH_SUN4I
153 default 4 if MACH_SUN5I || MACH_SUN7I
155 Set the dram controller emr1 value.
158 hex "sunxi dram tpr3 value"
161 Set the dram controller tpr3 parameter. This parameter configures
162 the delay on the command lane and also phase shifts, which are
163 applied for sampling incoming read data. The default value 0
164 means that no phase/delay adjustments are necessary. Properly
165 configuring this parameter increases reliability at high DRAM
168 config DRAM_DQS_GATING_DELAY
169 hex "sunxi dram dqs_gating_delay value"
172 Set the dram controller dqs_gating_delay parmeter. Each byte
173 encodes the DQS gating delay for each byte lane. The delay
174 granularity is 1/4 cycle. For example, the value 0x05060606
175 means that the delay is 5 quarter-cycles for one lane (1.25
176 cycles) and 6 quarter-cycles (1.5 cycles) for 3 other lanes.
177 The default value 0 means autodetection. The results of hardware
178 autodetection are not very reliable and depend on the chip
179 temperature (sometimes producing different results on cold start
180 and warm reboot). But the accuracy of hardware autodetection
181 is usually good enough, unless running at really high DRAM
182 clocks speeds (up to 600MHz). If unsure, keep as 0.
185 prompt "sunxi dram timings"
186 default DRAM_TIMINGS_VENDOR_MAGIC
188 Select the timings of the DDR3 chips.
190 config DRAM_TIMINGS_VENDOR_MAGIC
191 bool "Magic vendor timings from Android"
193 The same DRAM timings as in the Allwinner boot0 bootloader.
195 config DRAM_TIMINGS_DDR3_1066F_1333H
196 bool "JEDEC DDR3-1333H with down binning to DDR3-1066F"
198 Use the timings of the standard JEDEC DDR3-1066F speed bin for
199 DRAM_CLK <= 533MHz and the timings of the DDR3-1333H speed bin
200 for DRAM_CLK > 533MHz. This covers the majority of DDR3 chips
201 used in Allwinner A10/A13/A20 devices. In the case of DDR3-1333
202 or DDR3-1600 chips, be sure to check the DRAM datasheet to confirm
203 that down binning to DDR3-1066F is supported (because DDR3-1066F
204 uses a bit faster timings than DDR3-1333H).
206 config DRAM_TIMINGS_DDR3_800E_1066G_1333J
207 bool "JEDEC DDR3-800E / DDR3-1066G / DDR3-1333J"
209 Use the timings of the slowest possible JEDEC speed bin for the
210 selected DRAM_CLK. Depending on the DRAM_CLK value, it may be
211 DDR3-800E, DDR3-1066G or DDR3-1333J.
218 config DRAM_ODT_CORRECTION
219 int "sunxi dram odt correction value"
222 Set the dram odt correction value (range -255 - 255). In allwinner
223 fex files, this option is found in bits 8-15 of the u32 odt_en variable
224 in the [dram] section. When bit 31 of the odt_en variable is set
225 then the correction is negative. Usually the value for this is 0.
229 default 816000000 if MACH_SUN50I
230 default 912000000 if MACH_SUN7I
231 default 1008000000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
233 config SYS_CONFIG_NAME
234 default "sun4i" if MACH_SUN4I
235 default "sun5i" if MACH_SUN5I
236 default "sun6i" if MACH_SUN6I
237 default "sun7i" if MACH_SUN7I
238 default "sun8i" if MACH_SUN8I
239 default "sun9i" if MACH_SUN9I
240 default "sun50i" if MACH_SUN50I
249 bool "UART0 on MicroSD breakout board"
252 Repurpose the SD card slot for getting access to the UART0 serial
253 console. Primarily useful only for low level u-boot debugging on
254 tablets, where normal UART0 is difficult to access and requires
255 device disassembly and/or soldering. As the SD card can't be used
256 at the same time, the system can be only booted in the FEL mode.
257 Only enable this if you really know what you are doing.
259 config OLD_SUNXI_KERNEL_COMPAT
260 bool "Enable workarounds for booting old kernels"
263 Set this to enable various workarounds for old kernels, this results in
264 sub-optimal settings for newer kernels, only enable if needed.
267 depends on !UART0_PORT_F
268 default y if ARCH_SUNXI
271 string "Card detect pin for mmc0"
272 default "PF6" if MACH_SUN8I_A83T || MACH_SUN8I_H3 || MACH_SUN50I
275 Set the card detect pin for mmc0, leave empty to not use cd. This
276 takes a string in the format understood by sunxi_name_to_gpio, e.g.
277 PH1 for pin 1 of port H.
280 string "Card detect pin for mmc1"
283 See MMC0_CD_PIN help text.
286 string "Card detect pin for mmc2"
289 See MMC0_CD_PIN help text.
292 string "Card detect pin for mmc3"
295 See MMC0_CD_PIN help text.
298 string "Pins for mmc1"
301 Set the pins used for mmc1, when applicable. This takes a string in the
302 format understood by sunxi_name_to_gpio_bank, e.g. PH for port H.
305 string "Pins for mmc2"
308 See MMC1_PINS help text.
311 string "Pins for mmc3"
314 See MMC1_PINS help text.
316 config MMC_SUNXI_SLOT_EXTRA
317 int "mmc extra slot number"
320 sunxi builds always enable mmc0, some boards also have a second sdcard
321 slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable
324 config INITIAL_USB_SCAN_DELAY
325 int "delay initial usb scan by x ms to allow builtin devices to init"
328 Some boards have on board usb devices which need longer than the
329 USB spec's 1 second to connect from board powerup. Set this config
330 option to a non 0 value to add an extra delay before the first usb
334 string "Vbus enable pin for usb0 (otg)"
337 Set the Vbus enable pin for usb0 (otg). This takes a string in the
338 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
341 string "Vbus detect pin for usb0 (otg)"
344 Set the Vbus detect pin for usb0 (otg). This takes a string in the
345 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
348 string "ID detect pin for usb0 (otg)"
351 Set the ID detect pin for usb0 (otg). This takes a string in the
352 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
355 string "Vbus enable pin for usb1 (ehci0)"
356 default "PH6" if MACH_SUN4I || MACH_SUN7I
357 default "PH27" if MACH_SUN6I
359 Set the Vbus enable pin for usb1 (ehci0, usb0 is the otg). This takes
360 a string in the format understood by sunxi_name_to_gpio, e.g.
361 PH1 for pin 1 of port H.
364 string "Vbus enable pin for usb2 (ehci1)"
365 default "PH3" if MACH_SUN4I || MACH_SUN7I
366 default "PH24" if MACH_SUN6I
368 See USB1_VBUS_PIN help text.
371 string "Vbus enable pin for usb3 (ehci2)"
374 See USB1_VBUS_PIN help text.
377 bool "Enable I2C/TWI controller 0"
378 default y if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
379 default n if MACH_SUN6I || MACH_SUN8I
382 This allows enabling I2C/TWI controller 0 by muxing its pins, enabling
383 its clock and setting up the bus. This is especially useful on devices
384 with slaves connected to the bus or with pins exposed through e.g. an
385 expansion port/header.
388 bool "Enable I2C/TWI controller 1"
392 See I2C0_ENABLE help text.
395 bool "Enable I2C/TWI controller 2"
399 See I2C0_ENABLE help text.
401 if MACH_SUN6I || MACH_SUN7I
403 bool "Enable I2C/TWI controller 3"
407 See I2C0_ENABLE help text.
412 bool "Enable the PRCM I2C/TWI controller"
413 # This is used for the pmic on H3
414 default y if SY8106A_POWER
417 Set this to y to enable the I2C controller which is part of the PRCM.
422 bool "Enable I2C/TWI controller 4"
426 See I2C0_ENABLE help text.
430 bool "Enable support for gpio-s on axp PMICs"
433 Say Y here to enable support for the gpio pins of the axp PMIC ICs.
436 bool "Enable graphical uboot console on HDMI, LCD or VGA"
437 depends on !MACH_SUN8I_A83T && !MACH_SUN8I_H3 && !MACH_SUN9I && !MACH_SUN50I
440 Say Y here to add support for using a cfb console on the HDMI, LCD
441 or VGA output found on most sunxi devices. See doc/README.video for
442 info on how to select the video output and mode.
445 bool "HDMI output support"
446 depends on VIDEO && !MACH_SUN8I
449 Say Y here to add support for outputting video over HDMI.
452 bool "VGA output support"
453 depends on VIDEO && (MACH_SUN4I || MACH_SUN7I)
456 Say Y here to add support for outputting video over VGA.
458 config VIDEO_VGA_VIA_LCD
459 bool "VGA via LCD controller support"
460 depends on VIDEO && (MACH_SUN5I || MACH_SUN6I || MACH_SUN8I)
463 Say Y here to add support for external DACs connected to the parallel
464 LCD interface driving a VGA connector, such as found on the
467 config VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH
468 bool "Force sync active high for VGA via LCD controller support"
469 depends on VIDEO_VGA_VIA_LCD
472 Say Y here if you've a board which uses opendrain drivers for the vga
473 hsync and vsync signals. Opendrain drivers cannot generate steep enough
474 positive edges for a stable video output, so on boards with opendrain
475 drivers the sync signals must always be active high.
477 config VIDEO_VGA_EXTERNAL_DAC_EN
478 string "LCD panel power enable pin"
479 depends on VIDEO_VGA_VIA_LCD
482 Set the enable pin for the external VGA DAC. This takes a string in the
483 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
485 config VIDEO_COMPOSITE
486 bool "Composite video output support"
487 depends on VIDEO && (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
490 Say Y here to add support for outputting composite video.
492 config VIDEO_LCD_MODE
493 string "LCD panel timing details"
497 LCD panel timing details string, leave empty if there is no LCD panel.
498 This is in drivers/video/videomodes.c: video_get_params() format, e.g.
499 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
500 Also see: http://linux-sunxi.org/LCD
502 config VIDEO_LCD_DCLK_PHASE
503 int "LCD panel display clock phase"
507 Select LCD panel display clock phase shift, range 0-3.
509 config VIDEO_LCD_POWER
510 string "LCD panel power enable pin"
514 Set the power enable pin for the LCD panel. This takes a string in the
515 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
517 config VIDEO_LCD_RESET
518 string "LCD panel reset pin"
522 Set the reset pin for the LCD panel. This takes a string in the format
523 understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
525 config VIDEO_LCD_BL_EN
526 string "LCD panel backlight enable pin"
530 Set the backlight enable pin for the LCD panel. This takes a string in the
531 the format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
534 config VIDEO_LCD_BL_PWM
535 string "LCD panel backlight pwm pin"
539 Set the backlight pwm pin for the LCD panel. This takes a string in the
540 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
542 config VIDEO_LCD_BL_PWM_ACTIVE_LOW
543 bool "LCD panel backlight pwm is inverted"
547 Set this if the backlight pwm output is active low.
549 config VIDEO_LCD_PANEL_I2C
550 bool "LCD panel needs to be configured via i2c"
555 Say y here if the LCD panel needs to be configured via i2c. This
556 will add a bitbang i2c controller using gpios to talk to the LCD.
558 config VIDEO_LCD_PANEL_I2C_SDA
559 string "LCD panel i2c interface SDA pin"
560 depends on VIDEO_LCD_PANEL_I2C
563 Set the SDA pin for the LCD i2c interface. This takes a string in the
564 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
566 config VIDEO_LCD_PANEL_I2C_SCL
567 string "LCD panel i2c interface SCL pin"
568 depends on VIDEO_LCD_PANEL_I2C
571 Set the SCL pin for the LCD i2c interface. This takes a string in the
572 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
575 # Note only one of these may be selected at a time! But hidden choices are
576 # not supported by Kconfig
577 config VIDEO_LCD_IF_PARALLEL
580 config VIDEO_LCD_IF_LVDS
585 prompt "LCD panel support"
588 Select which type of LCD panel to support.
590 config VIDEO_LCD_PANEL_PARALLEL
591 bool "Generic parallel interface LCD panel"
592 select VIDEO_LCD_IF_PARALLEL
594 config VIDEO_LCD_PANEL_LVDS
595 bool "Generic lvds interface LCD panel"
596 select VIDEO_LCD_IF_LVDS
598 config VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828
599 bool "MIPI 4-lane, 513Mbps LCD panel via SSD2828 bridge chip"
600 select VIDEO_LCD_SSD2828
601 select VIDEO_LCD_IF_PARALLEL
603 7.85" 768x1024 LCD panels, such as LG LP079X01 or AUO B079XAN01.0
605 config VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804
606 bool "eDP 4-lane, 1.62G LCD panel via ANX9804 bridge chip"
607 select VIDEO_LCD_ANX9804
608 select VIDEO_LCD_IF_PARALLEL
609 select VIDEO_LCD_PANEL_I2C
611 Select this for eDP LCD panels with 4 lanes running at 1.62G,
612 connected via an ANX9804 bridge chip.
614 config VIDEO_LCD_PANEL_HITACHI_TX18D42VM
615 bool "Hitachi tx18d42vm LCD panel"
616 select VIDEO_LCD_HITACHI_TX18D42VM
617 select VIDEO_LCD_IF_LVDS
619 7.85" 1024x768 Hitachi tx18d42vm LCD panel support
621 config VIDEO_LCD_TL059WV5C0
622 bool "tl059wv5c0 LCD panel"
623 select VIDEO_LCD_PANEL_I2C
624 select VIDEO_LCD_IF_PARALLEL
626 6" 480x800 tl059wv5c0 panel support, as used on the Utoo P66 and
627 Aigo M60/M608/M606 tablets.
633 int "GMAC Transmit Clock Delay Chain"
636 Set the GMAC Transmit Clock Delay Chain value.
638 config SPL_STACK_R_ADDR
639 default 0x4fe00000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN7I || MACH_SUN8I || MACH_SUN50I
640 default 0x2fe00000 if MACH_SUN9I