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