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