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