]> git.sur5r.net Git - u-boot/blobdiff - board/sunxi/Kconfig
sunxi: video: Add A64/H3/H5 HDMI driver
[u-boot] / board / sunxi / Kconfig
index 00011331b9810661f52562a248657ac9c1fe86b1..ac3be300fedd4e46029dfccc1372a7a5aa6cdfd9 100644 (file)
@@ -3,6 +3,7 @@ if ARCH_SUNXI
 config IDENT_STRING
        default " Allwinner Technology"
 
+# FIXME: Should not redefine these Kconfig symbols
 config PRE_CONSOLE_BUFFER
        default y
 
@@ -19,6 +20,7 @@ config SPL_LIBGENERIC_SUPPORT
        default y
 
 config SPL_MMC_SUPPORT
+       depends on SPL && GENERIC_MMC
        default y
 
 config SPL_POWER_SUPPORT
@@ -27,6 +29,17 @@ config SPL_POWER_SUPPORT
 config SPL_SERIAL_SUPPORT
        default y
 
+config SUNXI_HIGH_SRAM
+       bool
+       default n
+       ---help---
+       Older Allwinner SoCs have their mask boot ROM mapped just below 4GB,
+       with the first SRAM region being located at address 0.
+       Some newer SoCs map the boot ROM at address 0 instead and move the
+       SRAM to 64KB, just behind the mask ROM.
+       Chips using the latter setup are supposed to select this option to
+       adjust the addresses accordingly.
+
 # Note only one of these may be selected at a time! But hidden choices are
 # not supported by Kconfig
 config SUNXI_GEN_SUN4I
@@ -43,6 +56,13 @@ config SUNXI_GEN_SUN6I
        watchdog, etc.
 
 
+config MACH_SUNXI_H3_H5
+       bool
+       select DM_I2C
+       select SUNXI_DE2
+       select SUNXI_GEN_SUN6I
+       select SUPPORT_SPL
+
 choice
        prompt "Sunxi SoC Variant"
        optional
@@ -50,12 +70,14 @@ choice
 config MACH_SUN4I
        bool "sun4i (Allwinner A10)"
        select CPU_V7
+       select ARM_CORTEX_CPU_IS_UP
        select SUNXI_GEN_SUN4I
        select SUPPORT_SPL
 
 config MACH_SUN5I
        bool "sun5i (Allwinner A13)"
        select CPU_V7
+       select ARM_CORTEX_CPU_IS_UP
        select SUNXI_GEN_SUN4I
        select SUPPORT_SPL
 
@@ -111,28 +133,60 @@ config MACH_SUN8I_H3
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
        select ARCH_SUPPORT_PSCI
+       select MACH_SUNXI_H3_H5
+       select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
+
+config MACH_SUN8I_R40
+       bool "sun8i (Allwinner R40)"
+       select CPU_V7
+       select CPU_V7_HAS_NONSEC
+       select CPU_V7_HAS_VIRT
+       select ARCH_SUPPORT_PSCI
        select SUNXI_GEN_SUN6I
        select SUPPORT_SPL
+
+config MACH_SUN8I_V3S
+       bool "sun8i (Allwinner V3s)"
+       select CPU_V7
+       select CPU_V7_HAS_NONSEC
+       select CPU_V7_HAS_VIRT
+       select ARCH_SUPPORT_PSCI
+       select SUNXI_GEN_SUN6I
        select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
 
 config MACH_SUN9I
        bool "sun9i (Allwinner A80)"
        select CPU_V7
+       select SUNXI_HIGH_SRAM
        select SUNXI_GEN_SUN6I
        select SUPPORT_SPL
 
 config MACH_SUN50I
        bool "sun50i (Allwinner A64)"
        select ARM64
+       select DM_I2C
+       select SUNXI_DE2
        select SUNXI_GEN_SUN6I
+       select SUNXI_HIGH_SRAM
        select SUPPORT_SPL
 
+config MACH_SUN50I_H5
+       bool "sun50i (Allwinner H5)"
+       select ARM64
+       select MACH_SUNXI_H3_H5
+       select SUNXI_HIGH_SRAM
+
 endchoice
 
 # The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
 config MACH_SUN8I
        bool
-       default y if MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUN8I_H3 || MACH_SUN8I_A83T
+       default y if MACH_SUN8I_A23
+       default y if MACH_SUN8I_A33
+       default y if MACH_SUN8I_A83T
+       default y if MACH_SUNXI_H3_H5
+       default y if MACH_SUN8I_R40
+       default y if MACH_SUN8I_V3S
 
 config RESERVE_ALLWINNER_BOOT0_HEADER
        bool "reserve space for Allwinner boot0 header"
@@ -167,6 +221,7 @@ config DRAM_TYPE
 config DRAM_CLK
        int "sunxi dram clock speed"
        default 792 if MACH_SUN9I
+       default 648 if MACH_SUN8I_R40
        default 312 if MACH_SUN6I || MACH_SUN8I
        default 360 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
        default 672 if MACH_SUN50I
@@ -188,6 +243,7 @@ config DRAM_ZQ
        int "sunxi dram zq value"
        default 123 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
        default 127 if MACH_SUN7I
+       default 3881979 if MACH_SUN8I_R40
        default 4145117 if MACH_SUN9I
        default 3881915 if MACH_SUN50I
        ---help---
@@ -197,6 +253,7 @@ config DRAM_ODT_EN
        bool "sunxi dram odt enable"
        default n if !MACH_SUN8I_A23
        default y if MACH_SUN8I_A23
+       default y if MACH_SUN8I_R40
        default y if MACH_SUN50I
        ---help---
        Select this to enable dram odt (on die termination).
@@ -281,9 +338,13 @@ config DRAM_ODT_CORRECTION
 endif
 
 config SYS_CLK_FREQ
-       default 816000000 if MACH_SUN50I
+       default 1008000000 if MACH_SUN4I
+       default 1008000000 if MACH_SUN5I
+       default 1008000000 if MACH_SUN6I
        default 912000000 if MACH_SUN7I
-       default 1008000000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I || MACH_SUN9I
+       default 1008000000 if MACH_SUN8I
+       default 1008000000 if MACH_SUN9I
+       default 816000000 if MACH_SUN50I
 
 config SYS_CONFIG_NAME
        default "sun4i" if MACH_SUN4I
@@ -318,13 +379,16 @@ config OLD_SUNXI_KERNEL_COMPAT
        Set this to enable various workarounds for old kernels, this results in
        sub-optimal settings for newer kernels, only enable if needed.
 
-config MMC
-       depends on !UART0_PORT_F
-       default y if ARCH_SUNXI
+config MACPWR
+       string "MAC power pin"
+       default ""
+       help
+         Set the pin used to power the MAC. This takes a string in the format
+         understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
 
 config MMC0_CD_PIN
        string "Card detect pin for mmc0"
-       default "PF6" if MACH_SUN8I_A83T || MACH_SUN8I_H3 || MACH_SUN50I
+       default "PF6" if MACH_SUN8I_A83T || MACH_SUNXI_H3_H5 || MACH_SUN50I
        default ""
        ---help---
        Set the card detect pin for mmc0, leave empty to not use cd. This
@@ -430,7 +494,7 @@ config USB3_VBUS_PIN
 
 config I2C0_ENABLE
        bool "Enable I2C/TWI controller 0"
-       default y if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
+       default y if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUN8I_R40
        default n if MACH_SUN6I || MACH_SUN8I
        select CMD_I2C
        ---help---
@@ -489,7 +553,12 @@ config AXP_GPIO
 
 config VIDEO
        bool "Enable graphical uboot console on HDMI, LCD or VGA"
-       depends on !MACH_SUN8I_A83T && !MACH_SUN8I_H3 && !MACH_SUN9I && !MACH_SUN50I
+       depends on !MACH_SUN8I_A83T
+       depends on !MACH_SUNXI_H3_H5
+       depends on !MACH_SUN8I_R40
+       depends on !MACH_SUN8I_V3S
+       depends on !MACH_SUN9I
+       depends on !MACH_SUN50I
        default y
        ---help---
        Say Y here to add support for using a cfb console on the HDMI, LCD
@@ -635,6 +704,20 @@ config VIDEO_LCD_IF_PARALLEL
 config VIDEO_LCD_IF_LVDS
        bool
 
+config SUNXI_DE2
+       bool
+       default n
+
+config VIDEO_DE2
+       bool "Display Engine 2 video driver"
+       depends on SUNXI_DE2
+       select DM_VIDEO
+       select DISPLAY
+       default y
+       ---help---
+       Say y here if you want to build DE2 video driver which is present on
+       newer SoCs. Currently only HDMI output is supported.
+
 
 choice
        prompt "LCD panel support"
@@ -683,6 +766,13 @@ config VIDEO_LCD_TL059WV5C0
 
 endchoice
 
+config SATAPWR
+       string "SATA power pin"
+       default ""
+       help
+         Set the pins used to power the SATA. This takes a string in the
+         format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
+         port H.
 
 config GMAC_TX_DELAY
        int "GMAC Transmit Clock Delay Chain"
@@ -691,7 +781,12 @@ config GMAC_TX_DELAY
        Set the GMAC Transmit Clock Delay Chain value.
 
 config SPL_STACK_R_ADDR
-       default 0x4fe00000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN7I || MACH_SUN8I || MACH_SUN50I
+       default 0x4fe00000 if MACH_SUN4I
+       default 0x4fe00000 if MACH_SUN5I
+       default 0x4fe00000 if MACH_SUN6I
+       default 0x4fe00000 if MACH_SUN7I
+       default 0x4fe00000 if MACH_SUN8I
        default 0x2fe00000 if MACH_SUN9I
+       default 0x4fe00000 if MACH_SUN50I
 
 endif