]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/sunxi/Kconfig
karo: fdt: fix inverted pixelclock polarity
[karo-tx-uboot.git] / board / sunxi / Kconfig
index a170c561aab10344474c4fd7921cd302b4695b25..55906b5b76046b701997b6df50372ea636a94336 100644 (file)
@@ -1,38 +1,86 @@
 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"
+       optional
 
 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 SUNXI_GEN_SUN4I
        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 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
+       select SUNXI_GEN_SUN4I
        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
+       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 ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
+
+config MACH_SUN9I
+       bool "sun9i (Allwinner A80)"
+       select CPU_V7
+       select SUNXI_GEN_SUN6I
 
 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
@@ -57,6 +105,13 @@ config DRAM_ZQ
        ---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"
@@ -65,13 +120,6 @@ config DRAM_EMR1
        ---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
@@ -132,12 +180,28 @@ endchoice
 
 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_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
+       default "sun9i" if MACH_SUN9I
 
 config SYS_BOARD
        default "sunxi"
@@ -145,24 +209,8 @@ config SYS_BOARD
 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"
-       depends on SPL_FEL
        default n
        ---help---
        Repurpose the SD card slot for getting access to the UART0 serial
@@ -172,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.
 
-config FDTFILE
-       string "Default fdtfile env setting for this board"
-
 config OLD_SUNXI_KERNEL_COMPAT
        boolean "Enable workarounds for booting old kernels"
        default n
@@ -208,6 +253,25 @@ config MMC3_CD_PIN
        ---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
@@ -223,6 +287,20 @@ config USB0_VBUS_PIN
        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 USB0_VBUS_DET
+       string "Vbus detect pin for usb0 (otg)"
+       default ""
+       ---help---
+       Set the Vbus detect 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 USB0_ID_DET
+       string "ID detect pin for usb0 (otg)"
+       default ""
+       ---help---
+       Set the ID detect 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
@@ -239,6 +317,50 @@ config USB2_VBUS_PIN
        ---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
@@ -288,6 +410,13 @@ config VIDEO_VGA_EXTERNAL_DAC_EN
        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_COMPOSITE
+       boolean "Composite video output support"
+       depends on VIDEO && (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
+       default n
+       ---help---
+       Say Y here to add support for outputting composite video.
+
 config VIDEO_LCD_MODE
        string "LCD panel timing details"
        depends on VIDEO
@@ -296,6 +425,7 @@ config VIDEO_LCD_MODE
        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
+       Also see: http://linux-sunxi.org/LCD
 
 config VIDEO_LCD_DCLK_PHASE
        int "LCD panel display clock phase"
@@ -344,6 +474,30 @@ config VIDEO_LCD_BL_PWM_ACTIVE_LOW
        ---help---
        Set this if the backlight pwm output is active low.
 
+config VIDEO_LCD_PANEL_I2C
+       bool "LCD panel needs to be configured via i2c"
+       depends on VIDEO
+       default n
+       ---help---
+       Say y here if the LCD panel needs to be configured via i2c. This
+       will add a bitbang i2c controller using gpios to talk to the LCD.
+
+config VIDEO_LCD_PANEL_I2C_SDA
+       string "LCD panel i2c interface SDA pin"
+       depends on VIDEO_LCD_PANEL_I2C
+       default "PG12"
+       ---help---
+       Set the SDA pin for the LCD i2c interface. 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_PANEL_I2C_SCL
+       string "LCD panel i2c interface SCL pin"
+       depends on VIDEO_LCD_PANEL_I2C
+       default "PG10"
+       ---help---
+       Set the SCL pin for the LCD i2c interface. This takes a string in the
+       format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
+
 
 # Note only one of these may be selected at a time! But hidden choices are
 # not supported by Kconfig
@@ -373,7 +527,16 @@ config VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828
        select VIDEO_LCD_SSD2828
        select VIDEO_LCD_IF_PARALLEL
        ---help---
-        7.85" 768x1024 LCD panels, such as LG LP079X01 or AUO B079XAN01.0
+       7.85" 768x1024 LCD panels, such as LG LP079X01 or AUO B079XAN01.0
+
+config VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804
+       bool "eDP 4-lane, 1.62G LCD panel via ANX9804 bridge chip"
+       select VIDEO_LCD_ANX9804
+       select VIDEO_LCD_IF_PARALLEL
+       select VIDEO_LCD_PANEL_I2C
+       ---help---
+       Select this for eDP LCD panels with 4 lanes running at 1.62G,
+       connected via an ANX9804 bridge chip.
 
 config VIDEO_LCD_PANEL_HITACHI_TX18D42VM
        bool "Hitachi tx18d42vm LCD panel"
@@ -382,24 +545,16 @@ config VIDEO_LCD_PANEL_HITACHI_TX18D42VM
        ---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
+config VIDEO_LCD_TL059WV5C0
+       bool "tl059wv5c0 LCD panel"
+       select VIDEO_LCD_PANEL_I2C
+       select VIDEO_LCD_IF_PARALLEL
        ---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.
+       6" 480x800 tl059wv5c0 panel support, as used on the Utoo P66 and
+       Aigo M60/M608/M606 tablets.
+
+endchoice
 
-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"