if ARCH_MX6

config MX6_SMP
	bool
	select ARM_ERRATA_751472
	select ARM_ERRATA_761320
	select ARM_ERRATA_794072
	select ARM_ERRATA_845369
	select MP

config MX6
	bool
	default y
	select ARM_ERRATA_743622 if !MX6UL && !MX6ULL
	select GPT_TIMER if !MX6UL && !MX6ULL
	imply CMD_FUSE

choice
	prompt "i.MX6 SoC select"

config MX6D
	bool "i.MX 6Dual SoC support"
	select HAS_CAAM
	select MX6_SMP

config MX6DL
	bool "i.MX 6DualLite SoC support"
	select HAS_CAAM
	select MX6_SMP

config MX6Q
	bool "i.MX 6Quad SoC support"
	select HAS_CAAM
	select MX6_SMP

config MX6QDL
	bool "i.MX 6Dual and 6Quad SoC support"
	select HAS_CAAM
	select MX6_SMP

config MX6S
	bool "i.MX 6Solo SoC support"
	select HAS_CAAM

config MX6SL
	bool "i.MX 6SoloLite SoC support"

config MX6SX
	bool "i.MX 6SoloX SoC support"
	select HAS_CAAM
	select ROM_UNIFIED_SECTIONS

config MX6SLL
	bool "i.MX 6SLL SoC support"
	select ROM_UNIFIED_SECTIONS

config MX6UL
	bool "i.MX 6UltraLite SoC support"
	select HAS_CAAM
	select ROM_UNIFIED_SECTIONS
	select SYSCOUNTER_TIMER
	select SYS_L2CACHE_OFF

config MX6ULL
	bool "i.MX 6ULL SoC support"
	select ROM_UNIFIED_SECTIONS
	select SYSCOUNTER_TIMER
	select SYS_L2CACHE_OFF

endchoice

config MX6UL_LITESOM
	bool
	select DM
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM

config MX6UL_OPOS6UL
	bool
	select BOARD_LATE_INIT
	select DM
	select DM_GPIO
	select DM_MMC
	select DM_THERMAL
	select SPL_DM if SPL
	select SPL_OF_CONTROL if SPL
	select SPL_PINCTRL if SPL
	select SPL_SEPARATE_BSS if SPL
	select SUPPORT_SPL
	imply CMD_DM

config MX6_OCRAM_256KB
	bool "Support 256KB OCRAM"
	depends on MX6D || MX6Q
	help
	 Allows using the full 256KB size of the OCRAM on the MX6Q/MX6D series
	 of chips, such as for SPL. The OCRAM of the Lite series of chips is
	 only 128KB, so using this option will prevent the resulting code from
	 working on those chips.

config MX6_DDRCAL
	bool "Include dynamic DDR calibration routines"
	depends on SPL
	default n
	help
	  Say "Y" if your board uses dynamic (per-boot) DDR calibration.
	  If unsure, say N.

choice
	prompt "MX6 board select"
	optional

config TARGET_APALIS_IMX6
	bool "Toradex Apalis iMX6 board"
	depends on MX6Q
	select BOARD_LATE_INIT
	select DM
	select DM_SERIAL
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM
	imply CMD_SATA

config TARGET_ARISTAINETOS2C
	bool "Support aristainetos2-revC"
	depends on MX6DL
	select BOARD_LATE_INIT
	select SYS_I2C_MXC
	select MXC_UART
	select FEC_MXC
	select DM
	imply CMD_SATA
	imply CMD_DM

config TARGET_ARISTAINETOS2CCSLB
	bool "Support aristainetos2-revC CSL"
	depends on MX6DL
	select BOARD_LATE_INIT
	select SYS_I2C_MXC
	select MXC_UART
	select FEC_MXC
	select DM
	imply CMD_SATA
	imply CMD_DM

config TARGET_CM_FX6
	bool "CM-FX6"
	depends on MX6QDL
	select BOARD_LATE_INIT
	select DM
	select DM_GPIO
	select DM_SERIAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_COLIBRI_IMX6
	bool "Toradex Colibri iMX6 board"
	select BOARD_LATE_INIT
	select DM
	select DM_SERIAL
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_COLIBRI_IMX6ULL
	bool "Toradex Colibri iMX6ULL"
	depends on MX6ULL
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL

config TARGET_DART_6UL
	bool "Variscite imx6ULL dart(DART-SOM-6ULL)"
	depends on MX6ULL
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_I2C
	select DM_MMC
	select DM_SERIAL
	select DM_THERMAL
	select SUPPORT_SPL

config TARGET_DHCOMIMX6
	bool "dh_imx6"
	depends on MX6QDL
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM
	imply CMD_SPL

config TARGET_DISPLAY5
	bool "LWN DISPLAY5 board"
	depends on MX6Q
	select DM
	select DM_ETH
	select DM_I2C
	select DM_MMC
	select DM_SPI
	select DM_GPIO
	select DM_SERIAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_EMBESTMX6BOARDS
	bool "embestmx6boards"
	select BOARD_LATE_INIT
	select SUPPORT_SPL

config TARGET_GE_BX50V3
	bool "General Electric Bx50v3"
	depends on MX6Q
	select BOARD_LATE_INIT

config TARGET_GE_B1X5V2
	bool "General Electric B1x5v2"
	depends on MX6QDL
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	select SUPPORT_SPL

config TARGET_GW_VENTANA
	bool "gw_ventana"
	depends on MX6QDL
	select SUPPORT_SPL
	imply CMD_SATA
	imply CMD_SPL

config TARGET_KOSAGI_NOVENA
	bool "Kosagi Novena"
	select BOARD_LATE_INIT
	select DM_ETH
	select DM_GPIO
	select DM_MMC
	select DM_PCI
	select DM_SCSI
	select DM_VIDEO
	select OF_CONTROL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_MCCMON6
	bool "mccmon6"
	depends on MX6QDL
	select SUPPORT_SPL
	select DM
	select DM_GPIO
	select DM_ETH
	select DM_SERIAL
	select DM_I2C
	select DM_SPI
	imply CMD_DM

config TARGET_MX6CUBOXI
	bool "Solid-run mx6 boards"
	depends on MX6QDL
	select BOARD_LATE_INIT
	select SUPPORT_SPL

config TARGET_MX6LOGICPD
	bool "Logic PD i.MX6 SOM"
	depends on MX6Q
	select SUPPORT_SPL
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_I2C
	select DM_MMC
	select DM_PMIC
	select OF_CONTROL
	imply CMD_DM

config TARGET_MX6MEMCAL
	bool "mx6memcal"
	depends on MX6QDL
	select SUPPORT_SPL
	help
	  The mx6memcal board is a virtual board that can be used to validate
	  and characterize the memory layout of a new design during the initial
	  development and pre-production stages.

config TARGET_MX6DL_MAMOJ
	bool "Support BTicino Mamoj"
	depends on MX6QDL
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_I2C
	select DM_MMC
	select DM_PMIC
	select DM_PMIC_PFUZE100
	select DM_THERMAL
	select OF_CONTROL
	select PINCTRL
	select SPL
	select SPL_DM if SPL
	select SPL_GPIO if SPL
	select SPL_LIBCOMMON_SUPPORT if SPL
	select SPL_LIBDISK_SUPPORT if SPL
	select SPL_LIBGENERIC_SUPPORT if SPL
	select SPL_MMC_SUPPORT if SPL
	select SPL_OF_CONTROL if SPL
	select SPL_OF_LIBFDT if SPL
	select SPL_PINCTRL if SPL
	select SPL_SEPARATE_BSS if SPL
	select SPL_SERIAL_SUPPORT if SPL
	select SPL_USB_GADGET if SPL
	select SPL_USB_HOST if SPL
	select SPL_USB_SDP_SUPPORT if SPL
	select SPL_WATCHDOG if SPL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_MX6Q_ENGICAM
	bool "Support Engicam i.Core(RQS)"
	depends on MX6QDL
	select BOARD_LATE_INIT
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_I2C
	select DM_MMC
	select DM_THERMAL
	select OF_CONTROL
	select SPL_DM if SPL
	select SPL_OF_CONTROL if SPL
	select SPL_OF_LIBFDT
	select SPL_PINCTRL if SPL
	select SPL_SEPARATE_BSS if SPL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_MX6SABREAUTO
	bool "mx6sabreauto"
	depends on MX6QDL
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_MX6SABRESD
	bool "mx6sabresd"
	depends on MX6QDL
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_MX6SLEVK
	bool "mx6slevk"
	depends on MX6SL
	select SUPPORT_SPL

config TARGET_MX6SLLEVK
	bool "mx6sll evk"
	depends on MX6SLL
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	imply CMD_DM

config TARGET_MX6SXSABRESD
	bool "mx6sxsabresd"
	depends on MX6SX
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	select SUPPORT_SPL

config TARGET_MX6SXSABREAUTO
	bool "mx6sxsabreauto"
	depends on MX6SX
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	imply CMD_DM

config TARGET_MX6UL_9X9_EVK
	bool "mx6ul_9x9_evk"
	depends on MX6UL
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_MX6UL_14X14_EVK
	bool "mx6ul_14x14_evk"
	depends on MX6UL
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_MX6UL_ENGICAM
	bool "Support Engicam GEAM6UL/Is.IoT"
	depends on MX6UL
	select BOARD_LATE_INIT
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_I2C
	select DM_MMC
	select DM_THERMAL
	select OF_CONTROL
	select SPL_DM if SPL
	select SPL_OF_CONTROL if SPL
	select SPL_PINCTRL if SPL
	select SPL_SEPARATE_BSS if SPL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_MX6ULL_14X14_EVK
	bool "Support mx6ull_14x14_evk"
	depends on MX6ULL
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	imply CMD_DM

config TARGET_MYS_6ULX
	bool "MYiR MYS-6ULX"
	depends on MX6ULL
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_I2C
	select DM_MMC
	select DM_SERIAL
	select DM_THERMAL
	select SUPPORT_SPL

config TARGET_NITROGEN6X
	bool "nitrogen6x"
	depends on MX6DL || MX6Q || MX6QDL || MX6S
	imply USB_ETHER_ASIX
	imply USB_ETHER_MCS7830
	imply USB_ETHER_SMSC95XX
	imply USB_HOST_ETHER

config TARGET_NPI_IMX6ULL
	bool "Seeed NPI-IMX6ULL"
	depends on MX6ULL
	select DM
	select DM_ETH
	select DM_MMC
	select DM_GPIO
	select DM_SERIAL
	select DM_THERMAL
	select SUPPORT_SPL

config TARGET_OPOS6ULDEV
	bool "Armadeus OPOS6ULDev board"
	depends on MX6UL
	select MX6UL_OPOS6UL

config TARGET_PICO_IMX6
	bool "PICO-IMX6"
	depends on MX6QDL
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_PICO_IMX6UL
	bool "PICO-IMX6UL-EMMC"
	depends on MX6UL
	select DM
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_LITEBOARD
	bool "Grinn liteBoard (i.MX6UL)"
	depends on MX6UL
	select BOARD_LATE_INIT
	select MX6UL_LITESOM

config TARGET_PCM058
	bool "Phytec PCM058 i.MX6 Quad"
	depends on MX6Q
	select BOARD_LATE_INIT
	select SUPPORT_SPL
	select DM
	select OF_CONTROL
	imply CMD_DM

config TARGET_PCL063
	bool "PHYTEC PCL063 (phyCORE-i.MX6UL)"
	depends on MX6UL
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_I2C
	select DM_MMC
	select DM_SERIAL
	select DM_THERMAL
	select SUPPORT_SPL

config TARGET_PCL063_ULL
	bool "PHYTEC PCL063 (phyCORE-i.MX6ULL)"
	depends on MX6ULL
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_I2C
	select DM_MMC
	select DM_SERIAL
	select DM_THERMAL
	select SUPPORT_SPL

config TARGET_SOMLABS_VISIONSOM_6ULL
	bool "visionsom-6ull"
	depends on MX6ULL
	select BOARD_LATE_INIT
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_MMC
	select DM_SERIAL
	select DM_THERMAL
	imply CMD_DM

config TARGET_TBS2910
	bool "TBS2910 Matrix ARM mini PC"
	depends on MX6Q

config TARGET_KP_IMX6Q_TPC
	bool "K+P KP_IMX6Q_TPC i.MX6 Quad"
	depends on MX6QDL
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select DM
	select SPL_DM if SPL
	select DM_THERMAL
	select DM_MMC
	select DM_ETH
	select DM_REGULATOR
	select SPL_DM_REGULATOR if SPL
	select DM_SERIAL
	select DM_I2C
	select DM_GPIO
	select SUPPORT_SPL
	select SPL_SEPARATE_BSS if SPL
	imply CMD_DM
	imply CMD_SPL

config TARGET_TQMA6
	bool "TQ Systems TQMa6 board"
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select MXC_SPI
	select SPI
	imply DM
	imply DM_GPIO
	imply DM_MMC
	imply DM_SPI
	imply DM_SPI_FLASH
	imply DM_I2C
	imply CMD_SF
	imply CMD_DM

config TARGET_UDOO
	bool "udoo"
	depends on MX6QDL
	select BOARD_LATE_INIT
	select SUPPORT_SPL

config TARGET_UDOO_NEO
	bool "UDOO Neo"
	depends on MX6SX
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_SOFTING_VINING_2000
	bool "Softing VIN|ING 2000"
	depends on MX6SX
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_WANDBOARD
	bool "wandboard"
	depends on MX6QDL
	select BOARD_LATE_INIT
	select SUPPORT_SPL

config TARGET_WARP
	bool "WaRP"
	depends on MX6SL
	select BOARD_LATE_INIT

config TARGET_BRPPT2
	bool "brppt2"
	depends on MX6QDL
	select BOARD_LATE_INIT
	select OF_CONTROL
	select SPL_OF_LIBFDT
	select DM
	select DM_ETH
	select DM_GPIO
	select DM_I2C
	select DM_MMC
	select SUPPORT_SPL
	select SPL_DM if SPL
	select SPL_OF_CONTROL if SPL
        help
          Support
          B&R BRPPT2 platform
          based on Freescale's iMX6 SoC

config TARGET_O4_IMX6ULL_NANO
	bool "O4-iMX6ULL-NANO"
	depends on MX6ULL
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	imply CMD_DM
	help
	  Support for www.out4.ru O4-iMX6UL-NANO platform
	  based on Freescale's i.MX6UL/i.MX6ULL SoC.

endchoice

config SYS_SOC
	default "mx6"

source "board/ge/bx50v3/Kconfig"
source "board/ge/b1x5v2/Kconfig"
source "board/aristainetos/Kconfig"
source "board/armadeus/opos6uldev/Kconfig"
source "board/boundary/nitrogen6x/Kconfig"
source "board/bticino/mamoj/Kconfig"
source "board/compulab/cm_fx6/Kconfig"
source "board/dhelectronics/dh_imx6/Kconfig"
source "board/embest/mx6boards/Kconfig"
source "board/engicam/imx6q/Kconfig"
source "board/engicam/imx6ul/Kconfig"
source "board/freescale/mx6memcal/Kconfig"
source "board/freescale/mx6sabreauto/Kconfig"
source "board/freescale/mx6sabresd/Kconfig"
source "board/freescale/mx6slevk/Kconfig"
source "board/freescale/mx6sllevk/Kconfig"
source "board/freescale/mx6sxsabresd/Kconfig"
source "board/freescale/mx6sxsabreauto/Kconfig"
source "board/freescale/mx6ul_14x14_evk/Kconfig"
source "board/freescale/mx6ullevk/Kconfig"
source "board/grinn/liteboard/Kconfig"
source "board/phytec/pcm058/Kconfig"
source "board/phytec/pcl063/Kconfig"
source "board/gateworks/gw_ventana/Kconfig"
source "board/kosagi/novena/Kconfig"
source "board/softing/vining_2000/Kconfig"
source "board/liebherr/display5/Kconfig"
source "board/liebherr/mccmon6/Kconfig"
source "board/logicpd/imx6/Kconfig"
source "board/solidrun/mx6cuboxi/Kconfig"
source "board/somlabs/visionsom-6ull/Kconfig"
source "board/technexion/pico-imx6/Kconfig"
source "board/technexion/pico-imx6ul/Kconfig"
source "board/tbs/tbs2910/Kconfig"
source "board/tqc/tqma6/Kconfig"
source "board/toradex/apalis_imx6/Kconfig"
source "board/toradex/colibri_imx6/Kconfig"
source "board/toradex/colibri-imx6ull/Kconfig"
source "board/k+p/kp_imx6q_tpc/Kconfig"
source "board/udoo/Kconfig"
source "board/udoo/neo/Kconfig"
source "board/wandboard/Kconfig"
source "board/warp/Kconfig"
source "board/BuR/brppt2/Kconfig"
source "board/out4/o4-imx6ull-nano/Kconfig"

endif
