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