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 ARCH_MISC_INIT
	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_THERMAL
	select MMC
	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
	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 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 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 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
	select IOMUX_LPSR

config TARGET_DART_6UL
	bool "Variscite imx6ULL dart(DART-SOM-6ULL)"
	depends on MX6ULL
	select DM
	select DM_GPIO
	select DM_I2C
	select DM_SERIAL
	select DM_THERMAL
	select MMC
	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_I2C
	select DM_SPI
	select DM_GPIO
	select DM_SERIAL
	select MMC
	select MTD
	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
	select GATEWORKS_SC
	select MISC
	imply SATA
	imply CMD_SPL

config TARGET_KONTRON_MX6UL
	bool "Kontron Electronics SL/BL i.MX6UL/ULL (N63xx/N64xx)"
	depends on MX6UL
	select BINMAN
	select DM
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM

config TARGET_KOSAGI_NOVENA
	bool "Kosagi Novena"
	select BOARD_LATE_INIT
	select DM_GPIO
	select MMC
	select PCI
	select SCSI
	select 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_SERIAL
	select DM_I2C
	select DM_SPI
	select MTD
	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_GPIO
	select DM_I2C
	select DM_PMIC
	select MMC
	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_GPIO
	select DM_I2C
	select DM_PMIC
	select DM_PMIC_PFUZE100
	select DM_THERMAL
	select MMC
	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 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 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_GPIO
	select DM_I2C
	select DM_THERMAL
	select MMC
	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_MX6Q_ACC
	bool "Support for Bosch ACC board"
	depends on MX6QDL
	select BOARD_LATE_INIT
	select OF_CONTROL
	select SPL_OF_LIBFDT
	select DM
	select DM_GPIO
	select DM_I2C
	select DM_THERMAL
	select MMC
	select SUPPORT_SPL

config TARGET_MX6S_SIELAFF
	bool "Sielaff i.MX6 Solo Board"
	depends on MX6S
	select BINMAN
	select DM
	select DM_THERMAL
	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
	select FSL_CAAM
	select ARCH_MISC_INIT

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
	select FSL_CAAM
	select ARCH_MISC_INIT

config TARGET_MX6SLEVK
	bool "mx6slevk"
	depends on MX6SL
	select SUPPORT_SPL
	imply OF_UPSTREAM

config TARGET_MX6SLLEVK
	bool "mx6sll evk"
	depends on MX6SLL
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	select IOMUX_LPSR
	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
	select FSL_CAAM
	select ARCH_MISC_INIT

config TARGET_MX6SXSABREAUTO
	bool "mx6sxsabreauto"
	depends on MX6SX
	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
	select FSL_CAAM
	select ARCH_MISC_INIT

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
	select FSL_CAAM
	select ARCH_MISC_INIT

config TARGET_MX6UL_ENGICAM
	bool "Support Engicam GEAM6UL/Is.IoT"
	depends on MX6UL
	select BOARD_LATE_INIT
	select DM
	select DM_GPIO
	select DM_I2C
	select DM_THERMAL
	select MMC
	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
	select IOMUX_LPSR
	imply CMD_DM

config TARGET_MX6ULZ_SMM_M2
	bool "Support imx6ulz_smm_m2"
	depends on MX6ULL
	select DM
	select DM_GPIO
	select DM_I2C
	select DM_SERIAL
	select DM_MTD
	select DM_THERMAL
	select SUPPORT_SPL
	imply OF_UPSTREAM

config TARGET_MYS_6ULX
	bool "MYiR MYS-6ULX"
	depends on MX6ULL
	select DM
	select DM_GPIO
	select DM_I2C
	select DM_SERIAL
	select DM_THERMAL
	select MMC
	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_GPIO
	select DM_SERIAL
	select DM_THERMAL
	select MMC
	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_LXR2
	bool "Comvetia i.MX6Q LXR2"
	depends on MX6Q
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select DM
	select DM_THERMAL
	select SUPPORT_SPL
	imply CMD_DM
	imply OF_UPSTREAM

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_GPIO
	select DM_I2C
	select DM_SERIAL
	select DM_THERMAL
	select MMC
	select SUPPORT_SPL

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

config TARGET_SOMLABS_VISIONSOM_6ULL
	bool "visionsom-6ull"
	depends on MX6ULL
	select BOARD_LATE_INIT
	select DM
	select DM_GPIO
	select DM_SERIAL
	select DM_THERMAL
	select MMC
	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 MMC
	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 MTD
	imply DM_SPI
	imply DM_SPI_FLASH
	imply DM_I2C
	imply CMD_SF
	imply CMD_DM

config TARGET_TQMA6UL
	bool "TQ-Systems TQMa6UL[L]x"
	depends on MX6UL || MX6ULL
	select TQ_COMMON_SOM
	select TQ_COMMON_SYSINFO
	select BOARD_EARLY_INIT_F
	select BOARD_LATE_INIT
	select OF_SYSTEM_SETUP
	select DM
	select DM_I2C
	select SUPPORT_SPL
	select SPL_SEPARATE_BSS if SPL
	imply DM_GPIO
	imply DM_MMC
	imply DM_SPI if SPI
	imply DM_SPI_FLASH if SPI
	imply SPI
	help
	  TQMa6UL[L]x is a TQ SoM with i.MX6UL/i.MX6ULL CPU
	  The SoM can be used on various baseboards.

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

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
	imply OF_UPSTREAM

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_BRPPT2
	bool "brppt2"
	depends on MX6QDL
	select BOARD_LATE_INIT
	select OF_CONTROL
	select SPL_OF_LIBFDT
	select DM
	select DM_GPIO
	select DM_I2C
	select 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/bsh/imx6ulz_smm_m2/Kconfig"
source "board/bticino/mamoj/Kconfig"
source "board/compulab/cm_fx6/Kconfig"
source "board/comvetia/lxr2/Kconfig"
source "board/dhelectronics/dh_imx6/Kconfig"
source "board/embest/mx6boards/Kconfig"
source "board/engicam/imx6q/Kconfig"
source "board/engicam/imx6ul/Kconfig"
source "board/nxp/mx6memcal/Kconfig"
source "board/nxp/mx6sabreauto/Kconfig"
source "board/nxp/mx6sabresd/Kconfig"
source "board/nxp/mx6slevk/Kconfig"
source "board/nxp/mx6sllevk/Kconfig"
source "board/nxp/mx6sxsabresd/Kconfig"
source "board/nxp/mx6sxsabreauto/Kconfig"
source "board/nxp/mx6ul_14x14_evk/Kconfig"
source "board/nxp/mx6ullevk/Kconfig"
source "board/bosch/acc/Kconfig"
source "board/grinn/liteboard/Kconfig"
source "board/phytec/pcm058/Kconfig"
source "board/phytec/pcl063/Kconfig"
source "board/gateworks/gw_ventana/Kconfig"
source "board/kontron/sl-mx6ul/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/sielaff/imx6dl-sielaff/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/tq/tqma6/Kconfig"
source "board/tq/tqma6ul/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/BuR/brppt2/Kconfig"
source "board/out4/o4-imx6ull-nano/Kconfig"

endif
