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