3 # Note only one of these may be selected at a time! But hidden choices are
4 # not supported by Kconfig
8 Select this for sunxi SoCs which have resets and clocks set up
9 as the original A10 (mach-sun4i).
11 config SUNXI_GEN_SUN6I
14 Select this for sunxi SoCs which have sun6i like periphery, like
15 separate ahb reset control registers, custom pmic bus, new style
20 prompt "Sunxi SoC Variant"
24 bool "sun4i (Allwinner A10)"
26 select SUNXI_GEN_SUN4I
30 bool "sun5i (Allwinner A13)"
32 select SUNXI_GEN_SUN4I
36 bool "sun6i (Allwinner A31)"
38 select CPU_V7_HAS_NONSEC
39 select CPU_V7_HAS_VIRT
40 select ARCH_SUPPORT_PSCI
41 select SUNXI_GEN_SUN6I
43 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
46 bool "sun7i (Allwinner A20)"
48 select CPU_V7_HAS_NONSEC
49 select CPU_V7_HAS_VIRT
50 select ARCH_SUPPORT_PSCI
51 select SUNXI_GEN_SUN4I
53 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
56 bool "sun8i (Allwinner A23)"
58 select CPU_V7_HAS_NONSEC
59 select CPU_V7_HAS_VIRT
60 select ARCH_SUPPORT_PSCI
61 select SUNXI_GEN_SUN6I
63 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
66 bool "sun8i (Allwinner A33)"
68 select CPU_V7_HAS_NONSEC
69 select CPU_V7_HAS_VIRT
70 select ARCH_SUPPORT_PSCI
71 select SUNXI_GEN_SUN6I
73 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
75 config MACH_SUN8I_A83T
76 bool "sun8i (Allwinner A83T)"
78 select SUNXI_GEN_SUN6I
82 bool "sun8i (Allwinner H3)"
84 select CPU_V7_HAS_NONSEC
85 select CPU_V7_HAS_VIRT
86 select ARCH_SUPPORT_PSCI
87 select SUNXI_GEN_SUN6I
89 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
92 bool "sun9i (Allwinner A80)"
94 select SUNXI_GEN_SUN6I
97 bool "sun50i (Allwinner A64)"
99 select SUNXI_GEN_SUN6I
103 # The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
106 default y if MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUN8I_H3 || MACH_SUN8I_A83T
109 int "sunxi dram type"
110 depends on MACH_SUN8I_A83T
113 Set the dram type, 3: DDR3, 7: LPDDR3
116 int "sunxi dram clock speed"
117 default 312 if MACH_SUN6I || MACH_SUN8I
118 default 360 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
120 Set the dram clock speed, valid range 240 - 480, must be a multiple
123 if MACH_SUN5I || MACH_SUN7I
125 int "sunxi mbus clock speed"
128 Set the mbus clock speed. The maximum on sun5i hardware is 300MHz.
133 int "sunxi dram zq value"
134 default 123 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
135 default 127 if MACH_SUN7I
137 Set the dram zq value.
140 bool "sunxi dram odt enable"
141 default n if !MACH_SUN8I_A23
142 default y if MACH_SUN8I_A23
144 Select this to enable dram odt (on die termination).
146 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
148 int "sunxi dram emr1 value"
149 default 0 if MACH_SUN4I
150 default 4 if MACH_SUN5I || MACH_SUN7I
152 Set the dram controller emr1 value.
155 hex "sunxi dram tpr3 value"
158 Set the dram controller tpr3 parameter. This parameter configures
159 the delay on the command lane and also phase shifts, which are
160 applied for sampling incoming read data. The default value 0
161 means that no phase/delay adjustments are necessary. Properly
162 configuring this parameter increases reliability at high DRAM
165 config DRAM_DQS_GATING_DELAY
166 hex "sunxi dram dqs_gating_delay value"
169 Set the dram controller dqs_gating_delay parmeter. Each byte
170 encodes the DQS gating delay for each byte lane. The delay
171 granularity is 1/4 cycle. For example, the value 0x05060606
172 means that the delay is 5 quarter-cycles for one lane (1.25
173 cycles) and 6 quarter-cycles (1.5 cycles) for 3 other lanes.
174 The default value 0 means autodetection. The results of hardware
175 autodetection are not very reliable and depend on the chip
176 temperature (sometimes producing different results on cold start
177 and warm reboot). But the accuracy of hardware autodetection
178 is usually good enough, unless running at really high DRAM
179 clocks speeds (up to 600MHz). If unsure, keep as 0.
182 prompt "sunxi dram timings"
183 default DRAM_TIMINGS_VENDOR_MAGIC
185 Select the timings of the DDR3 chips.
187 config DRAM_TIMINGS_VENDOR_MAGIC
188 bool "Magic vendor timings from Android"
190 The same DRAM timings as in the Allwinner boot0 bootloader.
192 config DRAM_TIMINGS_DDR3_1066F_1333H
193 bool "JEDEC DDR3-1333H with down binning to DDR3-1066F"
195 Use the timings of the standard JEDEC DDR3-1066F speed bin for
196 DRAM_CLK <= 533MHz and the timings of the DDR3-1333H speed bin
197 for DRAM_CLK > 533MHz. This covers the majority of DDR3 chips
198 used in Allwinner A10/A13/A20 devices. In the case of DDR3-1333
199 or DDR3-1600 chips, be sure to check the DRAM datasheet to confirm
200 that down binning to DDR3-1066F is supported (because DDR3-1066F
201 uses a bit faster timings than DDR3-1333H).
203 config DRAM_TIMINGS_DDR3_800E_1066G_1333J
204 bool "JEDEC DDR3-800E / DDR3-1066G / DDR3-1333J"
206 Use the timings of the slowest possible JEDEC speed bin for the
207 selected DRAM_CLK. Depending on the DRAM_CLK value, it may be
208 DDR3-800E, DDR3-1066G or DDR3-1333J.
215 config DRAM_ODT_CORRECTION
216 int "sunxi dram odt correction value"
219 Set the dram odt correction value (range -255 - 255). In allwinner
220 fex files, this option is found in bits 8-15 of the u32 odt_en variable
221 in the [dram] section. When bit 31 of the odt_en variable is set
222 then the correction is negative. Usually the value for this is 0.
226 default 816000000 if MACH_SUN50I
227 default 912000000 if MACH_SUN7I
228 default 1008000000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
230 config SYS_CONFIG_NAME
231 default "sun4i" if MACH_SUN4I
232 default "sun5i" if MACH_SUN5I
233 default "sun6i" if MACH_SUN6I
234 default "sun7i" if MACH_SUN7I
235 default "sun8i" if MACH_SUN8I
236 default "sun9i" if MACH_SUN9I
237 default "sun50i" if MACH_SUN50I
246 bool "UART0 on MicroSD breakout board"
249 Repurpose the SD card slot for getting access to the UART0 serial
250 console. Primarily useful only for low level u-boot debugging on
251 tablets, where normal UART0 is difficult to access and requires
252 device disassembly and/or soldering. As the SD card can't be used
253 at the same time, the system can be only booted in the FEL mode.
254 Only enable this if you really know what you are doing.
256 config OLD_SUNXI_KERNEL_COMPAT
257 bool "Enable workarounds for booting old kernels"
260 Set this to enable various workarounds for old kernels, this results in
261 sub-optimal settings for newer kernels, only enable if needed.
264 depends on !UART0_PORT_F
265 default y if ARCH_SUNXI
268 string "Card detect pin for mmc0"
269 default "PF6" if MACH_SUN8I_A83T || MACH_SUN8I_H3 || MACH_SUN50I
272 Set the card detect pin for mmc0, leave empty to not use cd. This
273 takes a string in the format understood by sunxi_name_to_gpio, e.g.
274 PH1 for pin 1 of port H.
277 string "Card detect pin for mmc1"
280 See MMC0_CD_PIN help text.
283 string "Card detect pin for mmc2"
286 See MMC0_CD_PIN help text.
289 string "Card detect pin for mmc3"
292 See MMC0_CD_PIN help text.
295 string "Pins for mmc1"
298 Set the pins used for mmc1, when applicable. This takes a string in the
299 format understood by sunxi_name_to_gpio_bank, e.g. PH for port H.
302 string "Pins for mmc2"
305 See MMC1_PINS help text.
308 string "Pins for mmc3"
311 See MMC1_PINS help text.
313 config MMC_SUNXI_SLOT_EXTRA
314 int "mmc extra slot number"
317 sunxi builds always enable mmc0, some boards also have a second sdcard
318 slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable
321 config INITIAL_USB_SCAN_DELAY
322 int "delay initial usb scan by x ms to allow builtin devices to init"
325 Some boards have on board usb devices which need longer than the
326 USB spec's 1 second to connect from board powerup. Set this config
327 option to a non 0 value to add an extra delay before the first usb
331 string "Vbus enable pin for usb0 (otg)"
334 Set the Vbus enable pin for usb0 (otg). This takes a string in the
335 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
338 string "Vbus detect pin for usb0 (otg)"
341 Set the Vbus detect pin for usb0 (otg). This takes a string in the
342 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
345 string "ID detect pin for usb0 (otg)"
348 Set the ID detect pin for usb0 (otg). This takes a string in the
349 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
352 string "Vbus enable pin for usb1 (ehci0)"
353 default "PH6" if MACH_SUN4I || MACH_SUN7I
354 default "PH27" if MACH_SUN6I
356 Set the Vbus enable pin for usb1 (ehci0, usb0 is the otg). This takes
357 a string in the format understood by sunxi_name_to_gpio, e.g.
358 PH1 for pin 1 of port H.
361 string "Vbus enable pin for usb2 (ehci1)"
362 default "PH3" if MACH_SUN4I || MACH_SUN7I
363 default "PH24" if MACH_SUN6I
365 See USB1_VBUS_PIN help text.
368 string "Vbus enable pin for usb3 (ehci2)"
371 See USB1_VBUS_PIN help text.
374 bool "Enable I2C/TWI controller 0"
375 default y if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
376 default n if MACH_SUN6I || MACH_SUN8I
379 This allows enabling I2C/TWI controller 0 by muxing its pins, enabling
380 its clock and setting up the bus. This is especially useful on devices
381 with slaves connected to the bus or with pins exposed through e.g. an
382 expansion port/header.
385 bool "Enable I2C/TWI controller 1"
389 See I2C0_ENABLE help text.
392 bool "Enable I2C/TWI controller 2"
396 See I2C0_ENABLE help text.
398 if MACH_SUN6I || MACH_SUN7I
400 bool "Enable I2C/TWI controller 3"
404 See I2C0_ENABLE help text.
409 bool "Enable the PRCM I2C/TWI controller"
410 # This is used for the pmic on H3
411 default y if SY8106A_POWER
414 Set this to y to enable the I2C controller which is part of the PRCM.
419 bool "Enable I2C/TWI controller 4"
423 See I2C0_ENABLE help text.
427 bool "Enable support for gpio-s on axp PMICs"
430 Say Y here to enable support for the gpio pins of the axp PMIC ICs.
433 bool "Enable graphical uboot console on HDMI, LCD or VGA"
434 depends on !MACH_SUN8I_A83T && !MACH_SUN8I_H3 && !MACH_SUN9I && !MACH_SUN50I
437 Say Y here to add support for using a cfb console on the HDMI, LCD
438 or VGA output found on most sunxi devices. See doc/README.video for
439 info on how to select the video output and mode.
442 bool "HDMI output support"
443 depends on VIDEO && !MACH_SUN8I
446 Say Y here to add support for outputting video over HDMI.
449 bool "VGA output support"
450 depends on VIDEO && (MACH_SUN4I || MACH_SUN7I)
453 Say Y here to add support for outputting video over VGA.
455 config VIDEO_VGA_VIA_LCD
456 bool "VGA via LCD controller support"
457 depends on VIDEO && (MACH_SUN5I || MACH_SUN6I || MACH_SUN8I)
460 Say Y here to add support for external DACs connected to the parallel
461 LCD interface driving a VGA connector, such as found on the
464 config VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH
465 bool "Force sync active high for VGA via LCD controller support"
466 depends on VIDEO_VGA_VIA_LCD
469 Say Y here if you've a board which uses opendrain drivers for the vga
470 hsync and vsync signals. Opendrain drivers cannot generate steep enough
471 positive edges for a stable video output, so on boards with opendrain
472 drivers the sync signals must always be active high.
474 config VIDEO_VGA_EXTERNAL_DAC_EN
475 string "LCD panel power enable pin"
476 depends on VIDEO_VGA_VIA_LCD
479 Set the enable pin for the external VGA DAC. This takes a string in the
480 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
482 config VIDEO_COMPOSITE
483 bool "Composite video output support"
484 depends on VIDEO && (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
487 Say Y here to add support for outputting composite video.
489 config VIDEO_LCD_MODE
490 string "LCD panel timing details"
494 LCD panel timing details string, leave empty if there is no LCD panel.
495 This is in drivers/video/videomodes.c: video_get_params() format, e.g.
496 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
497 Also see: http://linux-sunxi.org/LCD
499 config VIDEO_LCD_DCLK_PHASE
500 int "LCD panel display clock phase"
504 Select LCD panel display clock phase shift, range 0-3.
506 config VIDEO_LCD_POWER
507 string "LCD panel power enable pin"
511 Set the power enable pin for the LCD panel. This takes a string in the
512 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
514 config VIDEO_LCD_RESET
515 string "LCD panel reset pin"
519 Set the reset pin for the LCD panel. This takes a string in the format
520 understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
522 config VIDEO_LCD_BL_EN
523 string "LCD panel backlight enable pin"
527 Set the backlight enable pin for the LCD panel. This takes a string in the
528 the format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
531 config VIDEO_LCD_BL_PWM
532 string "LCD panel backlight pwm pin"
536 Set the backlight pwm pin for the LCD panel. This takes a string in the
537 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
539 config VIDEO_LCD_BL_PWM_ACTIVE_LOW
540 bool "LCD panel backlight pwm is inverted"
544 Set this if the backlight pwm output is active low.
546 config VIDEO_LCD_PANEL_I2C
547 bool "LCD panel needs to be configured via i2c"
552 Say y here if the LCD panel needs to be configured via i2c. This
553 will add a bitbang i2c controller using gpios to talk to the LCD.
555 config VIDEO_LCD_PANEL_I2C_SDA
556 string "LCD panel i2c interface SDA pin"
557 depends on VIDEO_LCD_PANEL_I2C
560 Set the SDA pin for the LCD i2c interface. This takes a string in the
561 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
563 config VIDEO_LCD_PANEL_I2C_SCL
564 string "LCD panel i2c interface SCL pin"
565 depends on VIDEO_LCD_PANEL_I2C
568 Set the SCL pin for the LCD i2c interface. This takes a string in the
569 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
572 # Note only one of these may be selected at a time! But hidden choices are
573 # not supported by Kconfig
574 config VIDEO_LCD_IF_PARALLEL
577 config VIDEO_LCD_IF_LVDS
582 prompt "LCD panel support"
585 Select which type of LCD panel to support.
587 config VIDEO_LCD_PANEL_PARALLEL
588 bool "Generic parallel interface LCD panel"
589 select VIDEO_LCD_IF_PARALLEL
591 config VIDEO_LCD_PANEL_LVDS
592 bool "Generic lvds interface LCD panel"
593 select VIDEO_LCD_IF_LVDS
595 config VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828
596 bool "MIPI 4-lane, 513Mbps LCD panel via SSD2828 bridge chip"
597 select VIDEO_LCD_SSD2828
598 select VIDEO_LCD_IF_PARALLEL
600 7.85" 768x1024 LCD panels, such as LG LP079X01 or AUO B079XAN01.0
602 config VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804
603 bool "eDP 4-lane, 1.62G LCD panel via ANX9804 bridge chip"
604 select VIDEO_LCD_ANX9804
605 select VIDEO_LCD_IF_PARALLEL
606 select VIDEO_LCD_PANEL_I2C
608 Select this for eDP LCD panels with 4 lanes running at 1.62G,
609 connected via an ANX9804 bridge chip.
611 config VIDEO_LCD_PANEL_HITACHI_TX18D42VM
612 bool "Hitachi tx18d42vm LCD panel"
613 select VIDEO_LCD_HITACHI_TX18D42VM
614 select VIDEO_LCD_IF_LVDS
616 7.85" 1024x768 Hitachi tx18d42vm LCD panel support
618 config VIDEO_LCD_TL059WV5C0
619 bool "tl059wv5c0 LCD panel"
620 select VIDEO_LCD_PANEL_I2C
621 select VIDEO_LCD_IF_PARALLEL
623 6" 480x800 tl059wv5c0 panel support, as used on the Utoo P66 and
624 Aigo M60/M608/M606 tablets.
630 int "GMAC Transmit Clock Delay Chain"
633 Set the GMAC Transmit Clock Delay Chain value.
635 config SPL_STACK_R_ADDR
636 default 0x4fe00000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN7I || MACH_SUN8I || MACH_SUN50I
637 default 0x2fe00000 if MACH_SUN9I