Merge branch 'master' of git://git.denx.de/u-boot-blackfin
[oweals/u-boot.git] / board / sunxi / Kconfig
index c61c650735bc442afc4e86419255c3ede75d067e..4a2158988fc9bce0d1991d51e72586e7c2af5615 100644 (file)
-if TARGET_SUN4I
+if ARCH_SUNXI
 
-config SYS_CONFIG_NAME
-       string
-       default "sun4i"
+choice
+       prompt "Sunxi SoC Variant"
 
-endif
+config MACH_SUN4I
+       bool "sun4i (Allwinner A10)"
+       select CPU_V7
+       select SUPPORT_SPL
 
-if TARGET_SUN5I
+config MACH_SUN5I
+       bool "sun5i (Allwinner A13)"
+       select CPU_V7
+       select SUPPORT_SPL
 
-config SYS_CONFIG_NAME
-       string
-       default "sun5i"
+config MACH_SUN6I
+       bool "sun6i (Allwinner A31)"
+       select CPU_V7
+       select SUPPORT_SPL
 
-endif
+config MACH_SUN7I
+       bool "sun7i (Allwinner A20)"
+       select CPU_V7
+       select CPU_V7_HAS_NONSEC
+       select CPU_V7_HAS_VIRT
+       select SUPPORT_SPL
+       select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
 
-if TARGET_SUN7I
+config MACH_SUN8I
+       bool "sun8i (Allwinner A23)"
+       select CPU_V7
+       select SUPPORT_SPL
 
-config SYS_CONFIG_NAME
-       string
-       default "sun7i"
+endchoice
+
+config DRAM_CLK
+       int "sunxi dram clock speed"
+       default 312 if MACH_SUN6I || MACH_SUN8I
+       default 360 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
+       ---help---
+       Set the dram clock speed, valid range 240 - 480, must be a multiple
+       of 24.
+
+if MACH_SUN5I || MACH_SUN7I
+config DRAM_MBUS_CLK
+       int "sunxi mbus clock speed"
+       default 300
+       ---help---
+       Set the mbus clock speed. The maximum on sun5i hardware is 300MHz.
 
 endif
 
-if TARGET_SUN4I || TARGET_SUN5I || TARGET_SUN7I
+config DRAM_ZQ
+       int "sunxi dram zq value"
+       default 123 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
+       default 127 if MACH_SUN7I
+       ---help---
+       Set the dram zq value.
+
+if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
+config DRAM_EMR1
+       int "sunxi dram emr1 value"
+       default 0 if MACH_SUN4I
+       default 4 if MACH_SUN5I || MACH_SUN7I
+       ---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
+       ---help---
+       Set the dram controller tpr3 parameter. This parameter configures
+       the delay on the command lane and also phase shifts, which are
+       applied for sampling incoming read data. The default value 0
+       means that no phase/delay adjustments are necessary. Properly
+       configuring this parameter increases reliability at high DRAM
+       clock speeds.
+
+config DRAM_DQS_GATING_DELAY
+       hex "sunxi dram dqs_gating_delay value"
+       default 0
+       ---help---
+       Set the dram controller dqs_gating_delay parmeter. Each byte
+       encodes the DQS gating delay for each byte lane. The delay
+       granularity is 1/4 cycle. For example, the value 0x05060606
+       means that the delay is 5 quarter-cycles for one lane (1.25
+       cycles) and 6 quarter-cycles (1.5 cycles) for 3 other lanes.
+       The default value 0 means autodetection. The results of hardware
+       autodetection are not very reliable and depend on the chip
+       temperature (sometimes producing different results on cold start
+       and warm reboot). But the accuracy of hardware autodetection
+       is usually good enough, unless running at really high DRAM
+       clocks speeds (up to 600MHz). If unsure, keep as 0.
+
+choice
+       prompt "sunxi dram timings"
+       default DRAM_TIMINGS_VENDOR_MAGIC
+       ---help---
+       Select the timings of the DDR3 chips.
+
+config DRAM_TIMINGS_VENDOR_MAGIC
+       bool "Magic vendor timings from Android"
+       ---help---
+       The same DRAM timings as in the Allwinner boot0 bootloader.
+
+config DRAM_TIMINGS_DDR3_1066F_1333H
+       bool "JEDEC DDR3-1333H with down binning to DDR3-1066F"
+       ---help---
+       Use the timings of the standard JEDEC DDR3-1066F speed bin for
+       DRAM_CLK <= 533MHz and the timings of the DDR3-1333H speed bin
+       for DRAM_CLK > 533MHz. This covers the majority of DDR3 chips
+       used in Allwinner A10/A13/A20 devices. In the case of DDR3-1333
+       or DDR3-1600 chips, be sure to check the DRAM datasheet to confirm
+       that down binning to DDR3-1066F is supported (because DDR3-1066F
+       uses a bit faster timings than DDR3-1333H).
 
-config SYS_CPU
-       string
-       default "armv7"
+config DRAM_TIMINGS_DDR3_800E_1066G_1333J
+       bool "JEDEC DDR3-800E / DDR3-1066G / DDR3-1333J"
+       ---help---
+       Use the timings of the slowest possible JEDEC speed bin for the
+       selected DRAM_CLK. Depending on the DRAM_CLK value, it may be
+       DDR3-800E, DDR3-1066G or DDR3-1333J.
+
+endchoice
+
+endif
+
+config SYS_CONFIG_NAME
+       default "sun4i" if MACH_SUN4I
+       default "sun5i" if MACH_SUN5I
+       default "sun6i" if MACH_SUN6I
+       default "sun7i" if MACH_SUN7I
+       default "sun8i" if MACH_SUN8I
 
 config SYS_BOARD
-       string
        default "sunxi"
 
 config SYS_SOC
-       string
        default "sunxi"
 
-config FTDFILE
-       string "Default ftdfile env setting for this board"
+config SPL_FEL
+       bool "SPL/FEL mode support"
+       depends on SPL
+       default n
+
+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
+       console. Primarily useful only for low level u-boot debugging on
+       tablets, where normal UART0 is difficult to access and requires
+       device disassembly and/or soldering. As the SD card can't be used
+       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
+       ---help---
+       Set this to enable various workarounds for old kernels, this results in
+       sub-optimal settings for newer kernels, only enable if needed.
+
+config MMC0_CD_PIN
+       string "Card detect pin for mmc0"
+       default ""
+       ---help---
+       Set the card detect pin for mmc0, leave empty to not use cd. This
+       takes a string in the format understood by sunxi_name_to_gpio, e.g.
+       PH1 for pin 1 of port H.
+
+config MMC1_CD_PIN
+       string "Card detect pin for mmc1"
+       default ""
+       ---help---
+       See MMC0_CD_PIN help text.
+
+config MMC2_CD_PIN
+       string "Card detect pin for mmc2"
+       default ""
+       ---help---
+       See MMC0_CD_PIN help text.
+
+config MMC3_CD_PIN
+       string "Card detect pin for mmc3"
+       default ""
+       ---help---
+       See MMC0_CD_PIN help text.
+
+config MMC_SUNXI_SLOT_EXTRA
+       int "mmc extra slot number"
+       default -1
+       ---help---
+       sunxi builds always enable mmc0, some boards also have a second sdcard
+       slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable
+       support for this.
+
+config USB0_VBUS_PIN
+       string "Vbus enable pin for usb0 (otg)"
+       default ""
+       ---help---
+       Set the Vbus enable pin for usb0 (otg). This takes a string in the
+       format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
+
+config USB1_VBUS_PIN
+       string "Vbus enable pin for usb1 (ehci0)"
+       default "PH6" if MACH_SUN4I || MACH_SUN7I
+       default "PH27" if MACH_SUN6I
+       ---help---
+       Set the Vbus enable pin for usb1 (ehci0, usb0 is the otg). This takes
+       a string in the format understood by sunxi_name_to_gpio, e.g.
+       PH1 for pin 1 of port H.
+
+config USB2_VBUS_PIN
+       string "Vbus enable pin for usb2 (ehci1)"
+       default "PH3" if MACH_SUN4I || MACH_SUN7I
+       default "PH24" if MACH_SUN6I
+       ---help---
+       See USB1_VBUS_PIN help text.
+
+config VIDEO
+       boolean "Enable graphical uboot console on HDMI, LCD or VGA"
+       default y
+       ---help---
+       Say Y here to add support for using a cfb console on the HDMI, LCD
+       or VGA output found on most sunxi devices. See doc/README.video for
+       info on how to select the video output and mode.
+
+config VIDEO_HDMI
+       boolean "HDMI output support"
+       depends on VIDEO && !MACH_SUN8I
+       default y
+       ---help---
+       Say Y here to add support for outputting video over HDMI.
+
+config VIDEO_VGA
+       boolean "VGA output support"
+       depends on VIDEO && (MACH_SUN4I || MACH_SUN7I)
+       default n
+       ---help---
+       Say Y here to add support for outputting video over VGA.
+
+config VIDEO_VGA_VIA_LCD
+       boolean "VGA via LCD controller support"
+       depends on VIDEO && (MACH_SUN5I || MACH_SUN6I || MACH_SUN8I)
+       default n
+       ---help---
+       Say Y here to add support for external DACs connected to the parallel
+       LCD interface driving a VGA connector, such as found on the
+       Olimex A13 boards.
+
+config VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH
+       boolean "Force sync active high for VGA via LCD controller support"
+       depends on VIDEO_VGA_VIA_LCD
+       default n
+       ---help---
+       Say Y here if you've a board which uses opendrain drivers for the vga
+       hsync and vsync signals. Opendrain drivers cannot generate steep enough
+       positive edges for a stable video output, so on boards with opendrain
+       drivers the sync signals must always be active high.
+
+config VIDEO_VGA_EXTERNAL_DAC_EN
+       string "LCD panel power enable pin"
+       depends on VIDEO_VGA_VIA_LCD
+       default ""
+       ---help---
+       Set the enable pin for the external VGA DAC. This takes a string in the
+       format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
+
+config VIDEO_LCD_MODE
+       string "LCD panel timing details"
+       depends on VIDEO
+       default ""
+       ---help---
+       LCD panel timing details string, leave empty if there is no LCD panel.
+       This is in drivers/video/videomodes.c: video_get_params() format, e.g.
+       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
+
+config VIDEO_LCD_DCLK_PHASE
+       int "LCD panel display clock phase"
+       depends on VIDEO
+       default 1
+       ---help---
+       Select LCD panel display clock phase shift, range 0-3.
+
+config VIDEO_LCD_POWER
+       string "LCD panel power enable pin"
+       depends on VIDEO
+       default ""
+       ---help---
+       Set the power enable pin for the LCD panel. This takes a string in the
+       format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
+
+config VIDEO_LCD_BL_EN
+       string "LCD panel backlight enable pin"
+       depends on VIDEO
+       default ""
+       ---help---
+       Set the backlight enable pin for the LCD panel. This takes a string in the
+       the format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
+       port H.
+
+config VIDEO_LCD_BL_PWM
+       string "LCD panel backlight pwm pin"
+       depends on VIDEO
+       default ""
+       ---help---
+       Set the backlight pwm pin for the LCD panel. This takes a string in the
+       format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
+
+config VIDEO_LCD_BL_PWM_ACTIVE_LOW
+       bool "LCD panel backlight pwm is inverted"
+       depends on VIDEO
+       default y
+       ---help---
+       Set this if the backlight pwm output is active low.
+
+
+# Note only one of these may be selected at a time! But hidden choices are
+# not supported by Kconfig
+config VIDEO_LCD_IF_PARALLEL
+       bool
+
+config VIDEO_LCD_IF_LVDS
+       bool
+
+
+choice
+       prompt "LCD panel support"
+       depends on VIDEO
+       ---help---
+       Select which type of LCD panel to support.
+
+config VIDEO_LCD_PANEL_PARALLEL
+       bool "Generic parallel interface LCD panel"
+       select VIDEO_LCD_IF_PARALLEL
+
+config VIDEO_LCD_PANEL_LVDS
+       bool "Generic lvds interface LCD panel"
+       select VIDEO_LCD_IF_LVDS
+
+config VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828
+       bool "MIPI 4-lane, 513Mbps LCD panel via SSD2828 bridge chip"
+       select VIDEO_LCD_SSD2828
+       select VIDEO_LCD_IF_PARALLEL
+       ---help---
+        7.85" 768x1024 LCD panels, such as LG LP079X01 or AUO B079XAN01.0
+
+config VIDEO_LCD_PANEL_HITACHI_TX18D42VM
+       bool "Hitachi tx18d42vm LCD panel"
+       select VIDEO_LCD_HITACHI_TX18D42VM
+       select VIDEO_LCD_IF_LVDS
+       ---help---
+       7.85" 1024x768 Hitachi tx18d42vm LCD panel support
+
+endchoice
+
+
+config USB_MUSB_SUNXI
+       bool "Enable sunxi OTG / DRC USB controller in host mode"
+       default n
+       ---help---
+       Say y here to enable support for the sunxi OTG / DRC USB controller
+       used on almost all sunxi boards. Note currently u-boot can only have
+       one usb host controller enabled at a time, so enabling this on boards
+       which also use the ehci host controller will result in build errors.
+
+config USB_KEYBOARD
+       boolean "Enable USB keyboard support"
+       default y
+       ---help---
+       Say Y here to add support for using a USB keyboard (typically used
+       in combination with a graphical console).
+
+config GMAC_TX_DELAY
+       int "GMAC Transmit Clock Delay Chain"
+       default 0
+       ---help---
+       Set the GMAC Transmit Clock Delay Chain value.
 
 endif