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 DRAM_SUN4I 10 bool 11 help 12 Select this dram controller driver for Sun4/5/7i platforms, 13 like A10/A13/A20. 14 15config DRAM_SUN6I 16 bool 17 help 18 Select this dram controller driver for Sun6i platforms, 19 like A31/A31s. 20 21config DRAM_SUN8I_A23 22 bool 23 help 24 Select this dram controller driver for Sun8i platforms, 25 for A23 SOC. 26 27config DRAM_SUN8I_A33 28 bool 29 help 30 Select this dram controller driver for Sun8i platforms, 31 for A33 SOC. 32 33config DRAM_SUN8I_A83T 34 bool 35 help 36 Select this dram controller driver for Sun8i platforms, 37 for A83T SOC. 38 39config DRAM_SUN9I 40 bool 41 help 42 Select this dram controller driver for Sun9i platforms, 43 like A80. 44 45config 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 56config SUN6I_PRCM 57 bool 58 help 59 Support for the PRCM (Power/Reset/Clock Management) unit available 60 in A31 SoC. 61 62config 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 68config 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 76config 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 87config 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 92config 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 98config 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 105config 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 113if SUNXI_DRAM_DW 114config 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 120config SUNXI_DRAM_DW_32BIT 121 bool 122 ---help--- 123 Select this for sunxi SoCs with DesignWare DRAM controller with 124 32-bit memory buswidth. 125endif 126 127config 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 137choice 138 prompt "Sunxi SoC Variant" 139 optional 140 141config 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 150config 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 160config 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 174config 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 186config 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 199config 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 212config 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 221config 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 230config 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 241config 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 253config 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 263config 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 278config 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 286endchoice 287 288# The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33" 289config 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 300config 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 309config 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 323if SUNXI_DRAM_DW 324config SUNXI_DRAM_DDR3 325 bool 326 327config SUNXI_DRAM_DDR2 328 bool 329 330config SUNXI_DRAM_LPDDR3 331 bool 332 333choice 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 338config 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 346config 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 353config 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 361endchoice 362endif 363 364config 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 371config 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 384if MACH_SUN5I || MACH_SUN7I 385config 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 391endif 392 393config 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 404config 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 413if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I 414config 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 421config 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 432config 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 448choice 449 prompt "sunxi dram timings" 450 default DRAM_TIMINGS_VENDOR_MAGIC 451 ---help--- 452 Select the timings of the DDR3 chips. 453 454config 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 459config 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 470config 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 477endchoice 478 479endif 480 481if MACH_SUN8I_A23 482config 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. 490endif 491 492config 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 501config 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 510config SYS_BOARD 511 default "sunxi" 512 513config SYS_SOC 514 default "sunxi" 515 516config 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 527config 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 534config 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 541config 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 550config MMC1_CD_PIN 551 string "Card detect pin for mmc1" 552 default "" 553 ---help--- 554 See MMC0_CD_PIN help text. 555 556config MMC2_CD_PIN 557 string "Card detect pin for mmc2" 558 default "" 559 ---help--- 560 See MMC0_CD_PIN help text. 561 562config MMC3_CD_PIN 563 string "Card detect pin for mmc3" 564 default "" 565 ---help--- 566 See MMC0_CD_PIN help text. 567 568config 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 575config MMC2_PINS 576 string "Pins for mmc2" 577 default "" 578 ---help--- 579 See MMC1_PINS help text. 580 581config MMC3_PINS 582 string "Pins for mmc3" 583 default "" 584 ---help--- 585 See MMC1_PINS help text. 586 587config 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 595config 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 604config 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 611config 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 618config 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 625config 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 634config 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 641config USB3_VBUS_PIN 642 string "Vbus enable pin for usb3 (ehci2)" 643 default "" 644 ---help--- 645 See USB1_VBUS_PIN help text. 646 647config 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 658config 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 665config 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 672if MACH_SUN6I || MACH_SUN7I 673config I2C3_ENABLE 674 bool "Enable I2C/TWI controller 3" 675 default n 676 select CMD_I2C 677 ---help--- 678 See I2C0_ENABLE help text. 679endif 680 681if SUNXI_GEN_SUN6I 682config 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. 689endif 690 691if MACH_SUN7I 692config I2C4_ENABLE 693 bool "Enable I2C/TWI controller 4" 694 default n 695 select CMD_I2C 696 ---help--- 697 See I2C0_ENABLE help text. 698endif 699 700config 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 706config 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 722config 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 729config 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 736config 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 745config 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 755config 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 763config 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 770config 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 780config 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 787config 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 795config 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 803config 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 812config 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 820config 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 827config 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 836config 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 844config 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 855config VIDEO_LCD_IF_PARALLEL 856 bool 857 858config VIDEO_LCD_IF_LVDS 859 bool 860 861config SUNXI_DE2 862 bool 863 default n 864 865config 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 877choice 878 prompt "LCD panel support" 879 depends on VIDEO_SUNXI 880 ---help--- 881 Select which type of LCD panel to support. 882 883config VIDEO_LCD_PANEL_PARALLEL 884 bool "Generic parallel interface LCD panel" 885 select VIDEO_LCD_IF_PARALLEL 886 887config VIDEO_LCD_PANEL_LVDS 888 bool "Generic lvds interface LCD panel" 889 select VIDEO_LCD_IF_LVDS 890 891config 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 898config 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 907config 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 914config 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 922endchoice 923 924config 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 932config 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 938config 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 947config 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 955endif 956