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