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