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 imply ENV_IS_IN_MMC 66 67choice 68 prompt "Sunxi SoC Variant" 69 optional 70 71config MACH_SUN4I 72 bool "sun4i (Allwinner A10)" 73 select CPU_V7 74 select ARM_CORTEX_CPU_IS_UP 75 select SUNXI_GEN_SUN4I 76 select SUPPORT_SPL 77 imply ENV_IS_IN_MMC 78 79config MACH_SUN5I 80 bool "sun5i (Allwinner A13)" 81 select CPU_V7 82 select ARM_CORTEX_CPU_IS_UP 83 select SUNXI_GEN_SUN4I 84 select SUPPORT_SPL 85 86config MACH_SUN6I 87 bool "sun6i (Allwinner A31)" 88 select CPU_V7 89 select CPU_V7_HAS_NONSEC 90 select CPU_V7_HAS_VIRT 91 select ARCH_SUPPORT_PSCI 92 select SUNXI_GEN_SUN6I 93 select SUPPORT_SPL 94 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT 95 imply ENV_IS_IN_MMC 96 97config MACH_SUN7I 98 bool "sun7i (Allwinner A20)" 99 select CPU_V7 100 select CPU_V7_HAS_NONSEC 101 select CPU_V7_HAS_VIRT 102 select ARCH_SUPPORT_PSCI 103 select SUNXI_GEN_SUN4I 104 select SUPPORT_SPL 105 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT 106 imply ENV_IS_IN_MMC 107 108config MACH_SUN8I_A23 109 bool "sun8i (Allwinner A23)" 110 select CPU_V7 111 select CPU_V7_HAS_NONSEC 112 select CPU_V7_HAS_VIRT 113 select ARCH_SUPPORT_PSCI 114 select SUNXI_GEN_SUN6I 115 select SUPPORT_SPL 116 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT 117 imply ENV_IS_IN_MMC 118 119config MACH_SUN8I_A33 120 bool "sun8i (Allwinner A33)" 121 select CPU_V7 122 select CPU_V7_HAS_NONSEC 123 select CPU_V7_HAS_VIRT 124 select ARCH_SUPPORT_PSCI 125 select SUNXI_GEN_SUN6I 126 select SUPPORT_SPL 127 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT 128 129config MACH_SUN8I_A83T 130 bool "sun8i (Allwinner A83T)" 131 select CPU_V7 132 select SUNXI_GEN_SUN6I 133 select SUPPORT_SPL 134 135config MACH_SUN8I_H3 136 bool "sun8i (Allwinner H3)" 137 select CPU_V7 138 select CPU_V7_HAS_NONSEC 139 select CPU_V7_HAS_VIRT 140 select ARCH_SUPPORT_PSCI 141 select MACH_SUNXI_H3_H5 142 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT 143 imply ENV_IS_IN_MMC 144 145config MACH_SUN8I_R40 146 bool "sun8i (Allwinner R40)" 147 select CPU_V7 148 select CPU_V7_HAS_NONSEC 149 select CPU_V7_HAS_VIRT 150 select ARCH_SUPPORT_PSCI 151 select SUNXI_GEN_SUN6I 152 select SUPPORT_SPL 153 select SUNXI_DRAM_DW 154 select SUNXI_DRAM_DW_32BIT 155 156config MACH_SUN8I_V3S 157 bool "sun8i (Allwinner V3s)" 158 select CPU_V7 159 select CPU_V7_HAS_NONSEC 160 select CPU_V7_HAS_VIRT 161 select ARCH_SUPPORT_PSCI 162 select SUNXI_GEN_SUN6I 163 select SUNXI_DRAM_DW 164 select SUNXI_DRAM_DW_16BIT 165 select SUPPORT_SPL 166 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT 167 168config MACH_SUN9I 169 bool "sun9i (Allwinner A80)" 170 select CPU_V7 171 select SUNXI_HIGH_SRAM 172 select SUNXI_GEN_SUN6I 173 select SUPPORT_SPL 174 175config MACH_SUN50I 176 bool "sun50i (Allwinner A64)" 177 select ARM64 178 select DM_I2C 179 select SUNXI_DE2 180 select SUNXI_GEN_SUN6I 181 select SUNXI_HIGH_SRAM 182 select SUPPORT_SPL 183 select SUNXI_DRAM_DW 184 select SUNXI_DRAM_DW_32BIT 185 select FIT 186 select SPL_LOAD_FIT 187 188config MACH_SUN50I_H5 189 bool "sun50i (Allwinner H5)" 190 select ARM64 191 select MACH_SUNXI_H3_H5 192 select SUNXI_HIGH_SRAM 193 select FIT 194 select SPL_LOAD_FIT 195 196endchoice 197 198# The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33" 199config MACH_SUN8I 200 bool 201 default y if MACH_SUN8I_A23 202 default y if MACH_SUN8I_A33 203 default y if MACH_SUN8I_A83T 204 default y if MACH_SUNXI_H3_H5 205 default y if MACH_SUN8I_R40 206 default y if MACH_SUN8I_V3S 207 208config RESERVE_ALLWINNER_BOOT0_HEADER 209 bool "reserve space for Allwinner boot0 header" 210 select ENABLE_ARM_SOC_BOOT0_HOOK 211 ---help--- 212 Prepend a 1536 byte (empty) header to the U-Boot image file, to be 213 filled with magic values post build. The Allwinner provided boot0 214 blob relies on this information to load and execute U-Boot. 215 Only needed on 64-bit Allwinner boards so far when using boot0. 216 217config ARM_BOOT_HOOK_RMR 218 bool 219 depends on ARM64 220 default y 221 select ENABLE_ARM_SOC_BOOT0_HOOK 222 ---help--- 223 Insert some ARM32 code at the very beginning of the U-Boot binary 224 which uses an RMR register write to bring the core into AArch64 mode. 225 The very first instruction acts as a switch, since it's carefully 226 chosen to be a NOP in one mode and a branch in the other, so the 227 code would only be executed if not already in AArch64. 228 This allows both the SPL and the U-Boot proper to be entered in 229 either mode and switch to AArch64 if needed. 230 231if SUNXI_DRAM_DW 232config SUNXI_DRAM_DDR3 233 bool 234 235config SUNXI_DRAM_DDR2 236 bool 237 238config SUNXI_DRAM_LPDDR3 239 bool 240 241choice 242 prompt "DRAM Type and Timing" 243 default SUNXI_DRAM_DDR3_1333 if !MACH_SUN8I_V3S 244 default SUNXI_DRAM_DDR2_V3S if MACH_SUN8I_V3S 245 246config SUNXI_DRAM_DDR3_1333 247 bool "DDR3 1333" 248 select SUNXI_DRAM_DDR3 249 depends on !MACH_SUN8I_V3S 250 ---help--- 251 This option is the original only supported memory type, which suits 252 many H3/H5/A64 boards available now. 253 254config SUNXI_DRAM_LPDDR3_STOCK 255 bool "LPDDR3 with Allwinner stock configuration" 256 select SUNXI_DRAM_LPDDR3 257 ---help--- 258 This option is the LPDDR3 timing used by the stock boot0 by 259 Allwinner. 260 261config SUNXI_DRAM_DDR2_V3S 262 bool "DDR2 found in V3s chip" 263 select SUNXI_DRAM_DDR2 264 depends on MACH_SUN8I_V3S 265 ---help--- 266 This option is only for the DDR2 memory chip which is co-packaged in 267 Allwinner V3s SoC. 268 269endchoice 270endif 271 272config DRAM_TYPE 273 int "sunxi dram type" 274 depends on MACH_SUN8I_A83T 275 default 3 276 ---help--- 277 Set the dram type, 3: DDR3, 7: LPDDR3 278 279config DRAM_CLK 280 int "sunxi dram clock speed" 281 default 792 if MACH_SUN9I 282 default 648 if MACH_SUN8I_R40 283 default 312 if MACH_SUN6I || MACH_SUN8I 284 default 360 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || \ 285 MACH_SUN8I_V3S 286 default 672 if MACH_SUN50I 287 ---help--- 288 Set the dram clock speed, valid range 240 - 480 (prior to sun9i), 289 must be a multiple of 24. For the sun9i (A80), the tested values 290 (for DDR3-1600) are 312 to 792. 291 292if MACH_SUN5I || MACH_SUN7I 293config DRAM_MBUS_CLK 294 int "sunxi mbus clock speed" 295 default 300 296 ---help--- 297 Set the mbus clock speed. The maximum on sun5i hardware is 300MHz. 298 299endif 300 301config DRAM_ZQ 302 int "sunxi dram zq value" 303 default 123 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I 304 default 127 if MACH_SUN7I 305 default 14779 if MACH_SUN8I_V3S 306 default 3881979 if MACH_SUN8I_R40 307 default 4145117 if MACH_SUN9I 308 default 3881915 if MACH_SUN50I 309 ---help--- 310 Set the dram zq value. 311 312config DRAM_ODT_EN 313 bool "sunxi dram odt enable" 314 default n if !MACH_SUN8I_A23 315 default y if MACH_SUN8I_A23 316 default y if MACH_SUN8I_R40 317 default y if MACH_SUN50I 318 ---help--- 319 Select this to enable dram odt (on die termination). 320 321if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I 322config DRAM_EMR1 323 int "sunxi dram emr1 value" 324 default 0 if MACH_SUN4I 325 default 4 if MACH_SUN5I || MACH_SUN7I 326 ---help--- 327 Set the dram controller emr1 value. 328 329config DRAM_TPR3 330 hex "sunxi dram tpr3 value" 331 default 0 332 ---help--- 333 Set the dram controller tpr3 parameter. This parameter configures 334 the delay on the command lane and also phase shifts, which are 335 applied for sampling incoming read data. The default value 0 336 means that no phase/delay adjustments are necessary. Properly 337 configuring this parameter increases reliability at high DRAM 338 clock speeds. 339 340config DRAM_DQS_GATING_DELAY 341 hex "sunxi dram dqs_gating_delay value" 342 default 0 343 ---help--- 344 Set the dram controller dqs_gating_delay parmeter. Each byte 345 encodes the DQS gating delay for each byte lane. The delay 346 granularity is 1/4 cycle. For example, the value 0x05060606 347 means that the delay is 5 quarter-cycles for one lane (1.25 348 cycles) and 6 quarter-cycles (1.5 cycles) for 3 other lanes. 349 The default value 0 means autodetection. The results of hardware 350 autodetection are not very reliable and depend on the chip 351 temperature (sometimes producing different results on cold start 352 and warm reboot). But the accuracy of hardware autodetection 353 is usually good enough, unless running at really high DRAM 354 clocks speeds (up to 600MHz). If unsure, keep as 0. 355 356choice 357 prompt "sunxi dram timings" 358 default DRAM_TIMINGS_VENDOR_MAGIC 359 ---help--- 360 Select the timings of the DDR3 chips. 361 362config DRAM_TIMINGS_VENDOR_MAGIC 363 bool "Magic vendor timings from Android" 364 ---help--- 365 The same DRAM timings as in the Allwinner boot0 bootloader. 366 367config DRAM_TIMINGS_DDR3_1066F_1333H 368 bool "JEDEC DDR3-1333H with down binning to DDR3-1066F" 369 ---help--- 370 Use the timings of the standard JEDEC DDR3-1066F speed bin for 371 DRAM_CLK <= 533MHz and the timings of the DDR3-1333H speed bin 372 for DRAM_CLK > 533MHz. This covers the majority of DDR3 chips 373 used in Allwinner A10/A13/A20 devices. In the case of DDR3-1333 374 or DDR3-1600 chips, be sure to check the DRAM datasheet to confirm 375 that down binning to DDR3-1066F is supported (because DDR3-1066F 376 uses a bit faster timings than DDR3-1333H). 377 378config DRAM_TIMINGS_DDR3_800E_1066G_1333J 379 bool "JEDEC DDR3-800E / DDR3-1066G / DDR3-1333J" 380 ---help--- 381 Use the timings of the slowest possible JEDEC speed bin for the 382 selected DRAM_CLK. Depending on the DRAM_CLK value, it may be 383 DDR3-800E, DDR3-1066G or DDR3-1333J. 384 385endchoice 386 387endif 388 389if MACH_SUN8I_A23 390config DRAM_ODT_CORRECTION 391 int "sunxi dram odt correction value" 392 default 0 393 ---help--- 394 Set the dram odt correction value (range -255 - 255). In allwinner 395 fex files, this option is found in bits 8-15 of the u32 odt_en variable 396 in the [dram] section. When bit 31 of the odt_en variable is set 397 then the correction is negative. Usually the value for this is 0. 398endif 399 400config SYS_CLK_FREQ 401 default 1008000000 if MACH_SUN4I 402 default 1008000000 if MACH_SUN5I 403 default 1008000000 if MACH_SUN6I 404 default 912000000 if MACH_SUN7I 405 default 1008000000 if MACH_SUN8I 406 default 1008000000 if MACH_SUN9I 407 default 816000000 if MACH_SUN50I 408 409config SYS_CONFIG_NAME 410 default "sun4i" if MACH_SUN4I 411 default "sun5i" if MACH_SUN5I 412 default "sun6i" if MACH_SUN6I 413 default "sun7i" if MACH_SUN7I 414 default "sun8i" if MACH_SUN8I 415 default "sun9i" if MACH_SUN9I 416 default "sun50i" if MACH_SUN50I 417 418config SYS_BOARD 419 default "sunxi" 420 421config SYS_SOC 422 default "sunxi" 423 424config UART0_PORT_F 425 bool "UART0 on MicroSD breakout board" 426 default n 427 ---help--- 428 Repurpose the SD card slot for getting access to the UART0 serial 429 console. Primarily useful only for low level u-boot debugging on 430 tablets, where normal UART0 is difficult to access and requires 431 device disassembly and/or soldering. As the SD card can't be used 432 at the same time, the system can be only booted in the FEL mode. 433 Only enable this if you really know what you are doing. 434 435config OLD_SUNXI_KERNEL_COMPAT 436 bool "Enable workarounds for booting old kernels" 437 default n 438 ---help--- 439 Set this to enable various workarounds for old kernels, this results in 440 sub-optimal settings for newer kernels, only enable if needed. 441 442config MACPWR 443 string "MAC power pin" 444 default "" 445 help 446 Set the pin used to power the MAC. This takes a string in the format 447 understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H. 448 449config MMC0_CD_PIN 450 string "Card detect pin for mmc0" 451 default "PF6" if MACH_SUN8I_A83T || MACH_SUNXI_H3_H5 || MACH_SUN50I 452 default "" 453 ---help--- 454 Set the card detect pin for mmc0, leave empty to not use cd. This 455 takes a string in the format understood by sunxi_name_to_gpio, e.g. 456 PH1 for pin 1 of port H. 457 458config MMC1_CD_PIN 459 string "Card detect pin for mmc1" 460 default "" 461 ---help--- 462 See MMC0_CD_PIN help text. 463 464config MMC2_CD_PIN 465 string "Card detect pin for mmc2" 466 default "" 467 ---help--- 468 See MMC0_CD_PIN help text. 469 470config MMC3_CD_PIN 471 string "Card detect pin for mmc3" 472 default "" 473 ---help--- 474 See MMC0_CD_PIN help text. 475 476config MMC1_PINS 477 string "Pins for mmc1" 478 default "" 479 ---help--- 480 Set the pins used for mmc1, when applicable. This takes a string in the 481 format understood by sunxi_name_to_gpio_bank, e.g. PH for port H. 482 483config MMC2_PINS 484 string "Pins for mmc2" 485 default "" 486 ---help--- 487 See MMC1_PINS help text. 488 489config MMC3_PINS 490 string "Pins for mmc3" 491 default "" 492 ---help--- 493 See MMC1_PINS help text. 494 495config MMC_SUNXI_SLOT_EXTRA 496 int "mmc extra slot number" 497 default -1 498 ---help--- 499 sunxi builds always enable mmc0, some boards also have a second sdcard 500 slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable 501 support for this. 502 503config INITIAL_USB_SCAN_DELAY 504 int "delay initial usb scan by x ms to allow builtin devices to init" 505 default 0 506 ---help--- 507 Some boards have on board usb devices which need longer than the 508 USB spec's 1 second to connect from board powerup. Set this config 509 option to a non 0 value to add an extra delay before the first usb 510 bus scan. 511 512config USB0_VBUS_PIN 513 string "Vbus enable pin for usb0 (otg)" 514 default "" 515 ---help--- 516 Set the Vbus enable pin for usb0 (otg). This takes a string in the 517 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H. 518 519config USB0_VBUS_DET 520 string "Vbus detect pin for usb0 (otg)" 521 default "" 522 ---help--- 523 Set the Vbus detect pin for usb0 (otg). This takes a string in the 524 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H. 525 526config USB0_ID_DET 527 string "ID detect pin for usb0 (otg)" 528 default "" 529 ---help--- 530 Set the ID detect pin for usb0 (otg). This takes a string in the 531 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H. 532 533config USB1_VBUS_PIN 534 string "Vbus enable pin for usb1 (ehci0)" 535 default "PH6" if MACH_SUN4I || MACH_SUN7I 536 default "PH27" if MACH_SUN6I 537 ---help--- 538 Set the Vbus enable pin for usb1 (ehci0, usb0 is the otg). This takes 539 a string in the format understood by sunxi_name_to_gpio, e.g. 540 PH1 for pin 1 of port H. 541 542config USB2_VBUS_PIN 543 string "Vbus enable pin for usb2 (ehci1)" 544 default "PH3" if MACH_SUN4I || MACH_SUN7I 545 default "PH24" if MACH_SUN6I 546 ---help--- 547 See USB1_VBUS_PIN help text. 548 549config USB3_VBUS_PIN 550 string "Vbus enable pin for usb3 (ehci2)" 551 default "" 552 ---help--- 553 See USB1_VBUS_PIN help text. 554 555config I2C0_ENABLE 556 bool "Enable I2C/TWI controller 0" 557 default y if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUN8I_R40 558 default n if MACH_SUN6I || MACH_SUN8I 559 select CMD_I2C 560 ---help--- 561 This allows enabling I2C/TWI controller 0 by muxing its pins, enabling 562 its clock and setting up the bus. This is especially useful on devices 563 with slaves connected to the bus or with pins exposed through e.g. an 564 expansion port/header. 565 566config I2C1_ENABLE 567 bool "Enable I2C/TWI controller 1" 568 default n 569 select CMD_I2C 570 ---help--- 571 See I2C0_ENABLE help text. 572 573config I2C2_ENABLE 574 bool "Enable I2C/TWI controller 2" 575 default n 576 select CMD_I2C 577 ---help--- 578 See I2C0_ENABLE help text. 579 580if MACH_SUN6I || MACH_SUN7I 581config I2C3_ENABLE 582 bool "Enable I2C/TWI controller 3" 583 default n 584 select CMD_I2C 585 ---help--- 586 See I2C0_ENABLE help text. 587endif 588 589if SUNXI_GEN_SUN6I 590config R_I2C_ENABLE 591 bool "Enable the PRCM I2C/TWI controller" 592 # This is used for the pmic on H3 593 default y if SY8106A_POWER 594 select CMD_I2C 595 ---help--- 596 Set this to y to enable the I2C controller which is part of the PRCM. 597endif 598 599if MACH_SUN7I 600config I2C4_ENABLE 601 bool "Enable I2C/TWI controller 4" 602 default n 603 select CMD_I2C 604 ---help--- 605 See I2C0_ENABLE help text. 606endif 607 608config AXP_GPIO 609 bool "Enable support for gpio-s on axp PMICs" 610 default n 611 ---help--- 612 Say Y here to enable support for the gpio pins of the axp PMIC ICs. 613 614config VIDEO 615 bool "Enable graphical uboot console on HDMI, LCD or VGA" 616 depends on !MACH_SUN8I_A83T 617 depends on !MACH_SUNXI_H3_H5 618 depends on !MACH_SUN8I_R40 619 depends on !MACH_SUN8I_V3S 620 depends on !MACH_SUN9I 621 depends on !MACH_SUN50I 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 && !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 && (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 && (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 && (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 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 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 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 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 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 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 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 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 default y 777 ---help--- 778 Say y here if you want to build DE2 video driver which is present on 779 newer SoCs. Currently only HDMI output is supported. 780 781 782choice 783 prompt "LCD panel support" 784 depends on VIDEO 785 ---help--- 786 Select which type of LCD panel to support. 787 788config VIDEO_LCD_PANEL_PARALLEL 789 bool "Generic parallel interface LCD panel" 790 select VIDEO_LCD_IF_PARALLEL 791 792config VIDEO_LCD_PANEL_LVDS 793 bool "Generic lvds interface LCD panel" 794 select VIDEO_LCD_IF_LVDS 795 796config VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828 797 bool "MIPI 4-lane, 513Mbps LCD panel via SSD2828 bridge chip" 798 select VIDEO_LCD_SSD2828 799 select VIDEO_LCD_IF_PARALLEL 800 ---help--- 801 7.85" 768x1024 LCD panels, such as LG LP079X01 or AUO B079XAN01.0 802 803config VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804 804 bool "eDP 4-lane, 1.62G LCD panel via ANX9804 bridge chip" 805 select VIDEO_LCD_ANX9804 806 select VIDEO_LCD_IF_PARALLEL 807 select VIDEO_LCD_PANEL_I2C 808 ---help--- 809 Select this for eDP LCD panels with 4 lanes running at 1.62G, 810 connected via an ANX9804 bridge chip. 811 812config VIDEO_LCD_PANEL_HITACHI_TX18D42VM 813 bool "Hitachi tx18d42vm LCD panel" 814 select VIDEO_LCD_HITACHI_TX18D42VM 815 select VIDEO_LCD_IF_LVDS 816 ---help--- 817 7.85" 1024x768 Hitachi tx18d42vm LCD panel support 818 819config VIDEO_LCD_TL059WV5C0 820 bool "tl059wv5c0 LCD panel" 821 select VIDEO_LCD_PANEL_I2C 822 select VIDEO_LCD_IF_PARALLEL 823 ---help--- 824 6" 480x800 tl059wv5c0 panel support, as used on the Utoo P66 and 825 Aigo M60/M608/M606 tablets. 826 827endchoice 828 829config SATAPWR 830 string "SATA power pin" 831 default "" 832 help 833 Set the pins used to power the SATA. This takes a string in the 834 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of 835 port H. 836 837config GMAC_TX_DELAY 838 int "GMAC Transmit Clock Delay Chain" 839 default 0 840 ---help--- 841 Set the GMAC Transmit Clock Delay Chain value. 842 843config SPL_STACK_R_ADDR 844 default 0x4fe00000 if MACH_SUN4I 845 default 0x4fe00000 if MACH_SUN5I 846 default 0x4fe00000 if MACH_SUN6I 847 default 0x4fe00000 if MACH_SUN7I 848 default 0x4fe00000 if MACH_SUN8I 849 default 0x2fe00000 if MACH_SUN9I 850 default 0x4fe00000 if MACH_SUN50I 851 852endif 853