Merge branch 'master' of git://git.denx.de/u-boot-net
[platform/kernel/u-boot.git] / board / sunxi / Kconfig
index 2fcab60..e744d4a 100644 (file)
@@ -1,38 +1,86 @@
 if ARCH_SUNXI
 
 if ARCH_SUNXI
 
+# Note only one of these may be selected at a time! But hidden choices are
+# not supported by Kconfig
+config SUNXI_GEN_SUN4I
+       bool
+       ---help---
+       Select this for sunxi SoCs which have resets and clocks set up
+       as the original A10 (mach-sun4i).
+
+config SUNXI_GEN_SUN6I
+       bool
+       ---help---
+       Select this for sunxi SoCs which have sun6i like periphery, like
+       separate ahb reset control registers, custom pmic bus, new style
+       watchdog, etc.
+
+
 choice
        prompt "Sunxi SoC Variant"
 choice
        prompt "Sunxi SoC Variant"
+       optional
 
 config MACH_SUN4I
        bool "sun4i (Allwinner A10)"
        select CPU_V7
 
 config MACH_SUN4I
        bool "sun4i (Allwinner A10)"
        select CPU_V7
+       select SUNXI_GEN_SUN4I
        select SUPPORT_SPL
 
 config MACH_SUN5I
        bool "sun5i (Allwinner A13)"
        select CPU_V7
        select SUPPORT_SPL
 
 config MACH_SUN5I
        bool "sun5i (Allwinner A13)"
        select CPU_V7
+       select SUNXI_GEN_SUN4I
        select SUPPORT_SPL
 
 config MACH_SUN6I
        bool "sun6i (Allwinner A31)"
        select CPU_V7
        select SUPPORT_SPL
 
 config MACH_SUN6I
        bool "sun6i (Allwinner A31)"
        select CPU_V7
+       select CPU_V7_HAS_NONSEC
+       select CPU_V7_HAS_VIRT
+       select SUNXI_GEN_SUN6I
        select SUPPORT_SPL
        select SUPPORT_SPL
+       select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
 
 config MACH_SUN7I
        bool "sun7i (Allwinner A20)"
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
 
 config MACH_SUN7I
        bool "sun7i (Allwinner A20)"
        select CPU_V7
        select CPU_V7_HAS_NONSEC
        select CPU_V7_HAS_VIRT
+       select SUNXI_GEN_SUN4I
        select SUPPORT_SPL
        select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
 
        select SUPPORT_SPL
        select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
 
-config MACH_SUN8I
+config MACH_SUN8I_A23
        bool "sun8i (Allwinner A23)"
        select CPU_V7
        bool "sun8i (Allwinner A23)"
        select CPU_V7
+       select CPU_V7_HAS_NONSEC
+       select CPU_V7_HAS_VIRT
+       select SUNXI_GEN_SUN6I
+       select SUPPORT_SPL
+       select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
+
+config MACH_SUN8I_A33
+       bool "sun8i (Allwinner A33)"
+       select CPU_V7
+       select CPU_V7_HAS_NONSEC
+       select CPU_V7_HAS_VIRT
+       select SUNXI_GEN_SUN6I
        select SUPPORT_SPL
        select SUPPORT_SPL
+       select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
+
+config MACH_SUN9I
+       bool "sun9i (Allwinner A80)"
+       select CPU_V7
+       select SUNXI_GEN_SUN6I
 
 endchoice
 
 
 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
+
+
 config DRAM_CLK
        int "sunxi dram clock speed"
        default 312 if MACH_SUN6I || MACH_SUN8I
 config DRAM_CLK
        int "sunxi dram clock speed"
        default 312 if MACH_SUN6I || MACH_SUN8I
@@ -57,6 +105,13 @@ config DRAM_ZQ
        ---help---
        Set the dram zq value.
 
        ---help---
        Set the dram zq value.
 
+config DRAM_ODT_EN
+       bool "sunxi dram odt enable"
+       default n if !MACH_SUN8I_A23
+       default y if MACH_SUN8I_A23
+       ---help---
+       Select this to enable dram odt (on die termination).
+
 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
 config DRAM_EMR1
        int "sunxi dram emr1 value"
 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
 config DRAM_EMR1
        int "sunxi dram emr1 value"
@@ -65,13 +120,6 @@ config DRAM_EMR1
        ---help---
        Set the dram controller emr1 value.
 
        ---help---
        Set the dram controller emr1 value.
 
-config DRAM_ODT_EN
-       int "sunxi dram odt_en value"
-       default 0
-       ---help---
-       Set the dram controller odt_en parameter. This can be used to
-       enable/disable the ODT feature.
-
 config DRAM_TPR3
        hex "sunxi dram tpr3 value"
        default 0
 config DRAM_TPR3
        hex "sunxi dram tpr3 value"
        default 0
@@ -132,6 +180,17 @@ endchoice
 
 endif
 
 
 endif
 
+if MACH_SUN8I_A23
+config DRAM_ODT_CORRECTION
+       int "sunxi dram odt correction value"
+       default 0
+       ---help---
+       Set the dram odt correction value (range -255 - 255). In allwinner
+       fex files, this option is found in bits 8-15 of the u32 odt_en variable
+       in the [dram] section. When bit 31 of the odt_en variable is set
+       then the correction is negative. Usually the value for this is 0.
+endif
+
 config SYS_CLK_FREQ
        default 912000000 if MACH_SUN7I
        default 1008000000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
 config SYS_CLK_FREQ
        default 912000000 if MACH_SUN7I
        default 1008000000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
@@ -142,6 +201,7 @@ config SYS_CONFIG_NAME
        default "sun6i" if MACH_SUN6I
        default "sun7i" if MACH_SUN7I
        default "sun8i" if MACH_SUN8I
        default "sun6i" if MACH_SUN6I
        default "sun7i" if MACH_SUN7I
        default "sun8i" if MACH_SUN8I
+       default "sun9i" if MACH_SUN9I
 
 config SYS_BOARD
        default "sunxi"
 
 config SYS_BOARD
        default "sunxi"
@@ -149,24 +209,8 @@ config SYS_BOARD
 config SYS_SOC
        default "sunxi"
 
 config SYS_SOC
        default "sunxi"
 
-config SPL_FEL
-       bool "SPL/FEL mode support"
-       depends on SPL
-       default n
-       help
-         This enables support for Fast Early Loader (FEL) mode. This
-         allows U-Boot to be loaded to the board over USB by the on-chip
-         boot rom. U-Boot should be sent in two parts: SPL first, with
-         'fel write 0x2000 u-boot-spl.bin; fel exe 0x2000' then U-Boot with
-         'fel write 0x4a000000 u-boot.bin; fel exe 0x4a000000'. This option
-         shrinks the amount of SRAM available to SPL, so only enable it if
-         you need FEL. Note that enabling this option only allows FEL to be
-         used; it is still possible to boot U-Boot from boot media. U-Boot
-         SPL detects when it is being loaded using FEL.
-
 config UART0_PORT_F
        bool "UART0 on MicroSD breakout board"
 config UART0_PORT_F
        bool "UART0 on MicroSD breakout board"
-       depends on SPL_FEL
        default n
        ---help---
        Repurpose the SD card slot for getting access to the UART0 serial
        default n
        ---help---
        Repurpose the SD card slot for getting access to the UART0 serial
@@ -176,9 +220,6 @@ config UART0_PORT_F
        at the same time, the system can be only booted in the FEL mode.
        Only enable this if you really know what you are doing.
 
        at the same time, the system can be only booted in the FEL mode.
        Only enable this if you really know what you are doing.
 
-config FDTFILE
-       string "Default fdtfile env setting for this board"
-
 config OLD_SUNXI_KERNEL_COMPAT
        boolean "Enable workarounds for booting old kernels"
        default n
 config OLD_SUNXI_KERNEL_COMPAT
        boolean "Enable workarounds for booting old kernels"
        default n
@@ -212,6 +253,25 @@ config MMC3_CD_PIN
        ---help---
        See MMC0_CD_PIN help text.
 
        ---help---
        See MMC0_CD_PIN help text.
 
+config MMC1_PINS
+       string "Pins for mmc1"
+       default ""
+       ---help---
+       Set the pins used for mmc1, when applicable. This takes a string in the
+       format understood by sunxi_name_to_gpio_bank, e.g. PH for port H.
+
+config MMC2_PINS
+       string "Pins for mmc2"
+       default ""
+       ---help---
+       See MMC1_PINS help text.
+
+config MMC3_PINS
+       string "Pins for mmc3"
+       default ""
+       ---help---
+       See MMC1_PINS help text.
+
 config MMC_SUNXI_SLOT_EXTRA
        int "mmc extra slot number"
        default -1
 config MMC_SUNXI_SLOT_EXTRA
        int "mmc extra slot number"
        default -1
@@ -220,6 +280,18 @@ config MMC_SUNXI_SLOT_EXTRA
        slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable
        support for this.
 
        slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable
        support for this.
 
+config SPL_NAND_SUPPORT
+       bool "SPL/NAND mode support"
+       depends on SPL
+       default n
+       ---help---
+         This enables support for booting from NAND internal
+         memory. U-Boot SPL doesn't detect where is it load from,
+         therefore this option is needed to properly load image from
+         flash. Option also disables MMC functionality on U-Boot due to
+         initialization errors encountered, when both controllers are
+         enabled.
+
 config USB0_VBUS_PIN
        string "Vbus enable pin for usb0 (otg)"
        default ""
 config USB0_VBUS_PIN
        string "Vbus enable pin for usb0 (otg)"
        default ""
@@ -229,7 +301,6 @@ config USB0_VBUS_PIN
 
 config USB0_VBUS_DET
        string "Vbus detect pin for usb0 (otg)"
 
 config USB0_VBUS_DET
        string "Vbus detect pin for usb0 (otg)"
-       depends on USB_MUSB_SUNXI
        default ""
        ---help---
        Set the Vbus detect pin for usb0 (otg). This takes a string in the
        default ""
        ---help---
        Set the Vbus detect pin for usb0 (otg). This takes a string in the
@@ -251,6 +322,50 @@ config USB2_VBUS_PIN
        ---help---
        See USB1_VBUS_PIN help text.
 
        ---help---
        See USB1_VBUS_PIN help text.
 
+config I2C0_ENABLE
+       bool "Enable I2C/TWI controller 0"
+       default y if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
+       default n if MACH_SUN6I || MACH_SUN8I
+       ---help---
+       This allows enabling I2C/TWI controller 0 by muxing its pins, enabling
+       its clock and setting up the bus. This is especially useful on devices
+       with slaves connected to the bus or with pins exposed through e.g. an
+       expansion port/header.
+
+config I2C1_ENABLE
+       bool "Enable I2C/TWI controller 1"
+       default n
+       ---help---
+       See I2C0_ENABLE help text.
+
+config I2C2_ENABLE
+       bool "Enable I2C/TWI controller 2"
+       default n
+       ---help---
+       See I2C0_ENABLE help text.
+
+if MACH_SUN6I || MACH_SUN7I
+config I2C3_ENABLE
+       bool "Enable I2C/TWI controller 3"
+       default n
+       ---help---
+       See I2C0_ENABLE help text.
+endif
+
+if MACH_SUN7I
+config I2C4_ENABLE
+       bool "Enable I2C/TWI controller 4"
+       default n
+       ---help---
+       See I2C0_ENABLE help text.
+endif
+
+config AXP_GPIO
+       boolean "Enable support for gpio-s on axp PMICs"
+       default n
+       ---help---
+       Say Y here to enable support for the gpio pins of the axp PMIC ICs.
+
 config VIDEO
        boolean "Enable graphical uboot console on HDMI, LCD or VGA"
        default y
 config VIDEO
        boolean "Enable graphical uboot console on HDMI, LCD or VGA"
        default y
@@ -451,4 +566,19 @@ config GMAC_TX_DELAY
        ---help---
        Set the GMAC Transmit Clock Delay Chain value.
 
        ---help---
        Set the GMAC Transmit Clock Delay Chain value.
 
+config SYS_MALLOC_CLEAR_ON_INIT
+       default n
+
+config NETDEVICES
+       default y
+
+config DM_ETH
+       default y
+
+config DM_SERIAL
+       default y
+
+config DM_USB
+       default y if !USB_MUSB_SUNXI
+
 endif
 endif