if ARCH_MX6

config ARCH_MX6Q
	bool
	select USB_ARCH_HAS_EHCI
	select ARCH_MXC_IOMUX_V3
	select ARCH_MXC_AUDMUX_V2
	select ARCH_SUPPORTS_MSI
	select ARM_GIC
	select ARCH_HAS_CPUFREQ
	select OC_ETM
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_FEC
	select IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL
	select IMX_HAVE_PLATFORM_IMX_IPUV3
	select IMX_HAVE_PLATFORM_MXC_PWM
	select IMX_HAVE_PLATFORM_LDB
	select IMX_HAVE_PLATFORM_IMX_SPDIF
	select IMX_HAVE_PLATFORM_IMX_VDOA

config FORCE_MAX_ZONEORDER
    int "MAX_ORDER"
    default "13"

config	SOC_IMX6Q
	bool

config	SOC_IMX6SL
	bool

config	MACH_MICROSOM
	bool

config MACH_MX6Q_ARM2
	bool "Support i.MX 6Quad Armadillo2 platform"
	select ARCH_MX6Q
	select SOC_IMX6Q
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_DMA
	select IMX_HAVE_PLATFORM_FEC
	select IMX_HAVE_PLATFORM_GPMI_NFC
	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
	select IMX_HAVE_PLATFORM_SPI_IMX
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_VIV_GPU
	select IMX_HAVE_PLATFORM_IMX_VPU
	select IMX_HAVE_PLATFORM_IMX_DVFS
	select IMX_HAVE_PLATFORM_IMX_ESAI
	select IMX_HAVE_PLATFORM_IMX_SSI
	select IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL
	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_FSL_OTG
	select IMX_HAVE_PLATFORM_FSL_USB_WAKEUP
	select IMX_HAVE_PLATFORM_AHCI
	select IMX_HAVE_PLATFORM_IMX_OCOTP
	select IMX_HAVE_PLATFORM_IMX_VIIM
	select IMX_HAVE_PLATFORM_IMX2_WDT
	select IMX_HAVE_PLATFORM_IMX_SNVS_RTC
	select IMX_HAVE_PLATFORM_IMX_PM
	select IMX_HAVE_PLATFORM_MXC_HDMI
	select IMX_HAVE_PLATFORM_IMX_ASRC
	select IMX_HAVE_PLATFORM_IMX_SPDIF
	select IMX_HAVE_PLATFORM_IMX_MIPI_DSI
	select IMX_HAVE_PLATFORM_FLEXCAN
	select IMX_HAVE_PLATFORM_IMX_MIPI_CSI2
	select IMX_HAVE_PLATFORM_PERFMON
	select IMX_HAVE_PLATFORM_MXC_MLB
	select IMX_HAVE_PLATFORM_IMX_EPDC
	select IMX_HAVE_PLATFORM_IMX_ELCDIF
	select IMX_HAVE_PLATFORM_IMX_PXP
	select IMX_HAVE_PLATFORM_IMX_PCIE
	select IMX_HAVE_PLATFORM_IMX_CAAM
	help
	  Include support for i.MX 6Quad Armadillo2 platform. This includes specific
	  configurations for the board and its peripherals.

config MACH_MX6SL_ARM2
	bool "Support i.MX 6SoloLite Armadillo2 platform"
	select ARCH_MX6Q
	select SOC_IMX6SL
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_DMA
	select IMX_HAVE_PLATFORM_FEC
	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
	select IMX_HAVE_PLATFORM_SPI_IMX
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_VIV_GPU
	select IMX_HAVE_PLATFORM_IMX_DVFS
	select IMX_HAVE_PLATFORM_IMX_SSI
	select IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL
	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_FSL_OTG
	select IMX_HAVE_PLATFORM_FSL_USB_WAKEUP
	select IMX_HAVE_PLATFORM_AHCI
	select IMX_HAVE_PLATFORM_IMX_OCOTP
	select IMX_HAVE_PLATFORM_IMX_VIIM
	select IMX_HAVE_PLATFORM_IMX2_WDT
	select IMX_HAVE_PLATFORM_IMX_SNVS_RTC
	select IMX_HAVE_PLATFORM_IMX_PM
	select IMX_HAVE_PLATFORM_IMX_SPDIF
	select IMX_HAVE_PLATFORM_PERFMON
	select IMX_HAVE_PLATFORM_IMX_EPDC
	select IMX_HAVE_PLATFORM_IMX_SPDC
	select IMX_HAVE_PLATFORM_IMX_PXP
	select IMX_HAVE_PLATFORM_IMX_KEYPAD
	select IMX_HAVE_PLATFORM_IMX_DCP
	select IMX_HAVE_PLATFORM_RANDOM_RNGC
	select ARCH_HAS_RNGC
	help
	  Include support for i.MX 6Sololite Armadillo2 platform. This includes specific
	  configurations for the board and its peripherals.

config MACH_MX6SL_EVK
	bool "Support i.MX 6SoloLite EVK platform"
	select ARCH_MX6Q
	select SOC_IMX6SL
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_DMA
	select IMX_HAVE_PLATFORM_FEC
	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
	select IMX_HAVE_PLATFORM_SPI_IMX
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_VIV_GPU
	select IMX_HAVE_PLATFORM_IMX_DVFS
	select IMX_HAVE_PLATFORM_IMX_SSI
	select IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL
	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_FSL_OTG
	select IMX_HAVE_PLATFORM_FSL_USB_WAKEUP
	select IMX_HAVE_PLATFORM_AHCI
	select IMX_HAVE_PLATFORM_IMX_OCOTP
	select IMX_HAVE_PLATFORM_IMX_VIIM
	select IMX_HAVE_PLATFORM_IMX2_WDT
	select IMX_HAVE_PLATFORM_IMX_SNVS_RTC
	select IMX_HAVE_PLATFORM_IMX_PM
	select IMX_HAVE_PLATFORM_IMX_SPDIF
	select IMX_HAVE_PLATFORM_PERFMON
	select IMX_HAVE_PLATFORM_IMX_EPDC
	select IMX_HAVE_PLATFORM_IMX_SPDC
	select IMX_HAVE_PLATFORM_IMX_PXP
	select IMX_HAVE_PLATFORM_IMX_FSL_CSI
	select IMX_HAVE_PLATFORM_IMX_KEYPAD
	select IMX_HAVE_PLATFORM_IMX_DCP
	select IMX_HAVE_PLATFORM_RANDOM_RNGC
	select ARCH_HAS_RNGC
	help
	  Include support for i.MX 6Sololite EVK platform. This includes specific
	  configurations for the board and its peripherals.

config MACH_MX6Q_SABRELITE
	bool "Support i.MX 6Quad SABRE Lite platform"
	select ARCH_MX6Q
	select SOC_IMX6Q
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_DMA
	select IMX_HAVE_PLATFORM_FEC
	select IMX_HAVE_PLATFORM_GPMI_NFC
	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
	select IMX_HAVE_PLATFORM_SPI_IMX
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_VIV_GPU
	select IMX_HAVE_PLATFORM_IMX_VPU
	select IMX_HAVE_PLATFORM_IMX_SSI
	select IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL
	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_FSL_OTG
	select IMX_HAVE_PLATFORM_FSL_USB_WAKEUP
	select IMX_HAVE_PLATFORM_AHCI
	select IMX_HAVE_PLATFORM_IMX_OCOTP
	select IMX_HAVE_PLATFORM_IMX_VIIM
	select IMX_HAVE_PLATFORM_IMX2_WDT
	select IMX_HAVE_PLATFORM_IMX_SNVS_RTC
	select IMX_HAVE_PLATFORM_IMX_PM
	select IMX_HAVE_PLATFORM_MXC_HDMI
	select IMX_HAVE_PLATFORM_IMX_ASRC
	select IMX_HAVE_PLATFORM_FLEXCAN
	select IMX_HAVE_PLATFORM_IMX_CAAM
	help
	  Include support for i.MX 6Quad SABRE Lite platform. This includes specific
	  configurations for the board and its peripherals.

config MACH_MX6Q_SABRESD
	bool "Support i.MX 6Quad SABRESD platform"
	select ARCH_MX6Q
	select SOC_IMX6Q
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_DMA
	select IMX_HAVE_PLATFORM_FEC
	select IMX_HAVE_PLATFORM_GPMI_NFC
	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
	select IMX_HAVE_PLATFORM_SPI_IMX
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_VIV_GPU
	select IMX_HAVE_PLATFORM_IMX_VPU
	select IMX_HAVE_PLATFORM_IMX_SSI
	select IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL
	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_FSL_OTG
	select IMX_HAVE_PLATFORM_FSL_USB_WAKEUP
	select IMX_HAVE_PLATFORM_AHCI
	select IMX_HAVE_PLATFORM_IMX_OCOTP
	select IMX_HAVE_PLATFORM_IMX_VIIM
	select IMX_HAVE_PLATFORM_IMX2_WDT
	select IMX_HAVE_PLATFORM_IMX_SNVS_RTC
	select IMX_HAVE_PLATFORM_IMX_PM
	select IMX_HAVE_PLATFORM_MXC_HDMI
	select IMX_HAVE_PLATFORM_IMX_ASRC
	select IMX_HAVE_PLATFORM_FLEXCAN
	select IMX_HAVE_PLATFORM_IMX_PCIE
	select IMX_HAVE_PLATFORM_IMX_CAAM
	help
	  Include support for i.MX 6Quad SABRE SD platform. This includes specific
	  configurations for the board and its peripherals.

config MACH_MX6Q_SABREAUTO
	bool "Support i.MX 6Quad SABRE Auto platform"
	select ARCH_MX6Q
	select SOC_IMX6Q
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_DMA
	select IMX_HAVE_PLATFORM_FEC
	select IMX_HAVE_PLATFORM_GPMI_NFC
	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
	select IMX_HAVE_PLATFORM_SPI_IMX
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_VIV_GPU
	select IMX_HAVE_PLATFORM_IMX_VPU
	select IMX_HAVE_PLATFORM_IMX_DVFS
	select IMX_HAVE_PLATFORM_IMX_ESAI
	select IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL
	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_FSL_OTG
	select IMX_HAVE_PLATFORM_FSL_USB_WAKEUP
	select IMX_HAVE_PLATFORM_AHCI
	select IMX_HAVE_PLATFORM_IMX_OCOTP
	select IMX_HAVE_PLATFORM_IMX_VIIM
	select IMX_HAVE_PLATFORM_IMX2_WDT
	select IMX_HAVE_PLATFORM_IMX_SNVS_RTC
	select IMX_HAVE_PLATFORM_IMX_PM
	select IMX_HAVE_PLATFORM_MXC_HDMI
	select IMX_HAVE_PLATFORM_IMX_ASRC
	select IMX_HAVE_PLATFORM_IMX_SPDIF
	select IMX_HAVE_PLATFORM_IMX_MIPI_DSI
	select IMX_HAVE_PLATFORM_FLEXCAN
	select IMX_HAVE_PLATFORM_IMX_MIPI_CSI2
	select IMX_HAVE_PLATFORM_IMX_PCIE
	select IMX_HAVE_PLATFORM_IMX_CAAM
	help
	  Include support for i.MX 6Quad SABRE Auto platform. This includes specific
	  configurations for the board and its peripherals.

config MACH_MX6Q_HDMIDONGLE
	bool "Support i.MX 6Quad HDMIDONGLE platform"
	select ARCH_MX6Q
	select SOC_IMX6Q
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_DMA
	select IMX_HAVE_PLATFORM_GPMI_NFC
	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
	select IMX_HAVE_PLATFORM_SPI_IMX
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_VIV_GPU
	select IMX_HAVE_PLATFORM_IMX_VPU
	select IMX_HAVE_PLATFORM_IMX_DVFS
	select IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL
	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_FSL_OTG
	select IMX_HAVE_PLATFORM_FSL_USB_WAKEUP
	select IMX_HAVE_PLATFORM_AHCI
	select IMX_HAVE_PLATFORM_IMX_OCOTP
	select IMX_HAVE_PLATFORM_IMX_VIIM
	select IMX_HAVE_PLATFORM_IMX2_WDT
	select IMX_HAVE_PLATFORM_IMX_SNVS_RTC
	select IMX_HAVE_PLATFORM_IMX_PM
	select IMX_HAVE_PLATFORM_MXC_HDMI
	select IMX_HAVE_PLATFORM_IMX_PCIE
	help
	  Include support for i.MX 6Quad HDMI Dongle platform. This includes specific
	  configurations for the board and its peripherals.

config MACH_HB
	bool "Support SolidRun i.MX6 HummingBoard"
	select ARCH_MX6Q
	select SOC_IMX6Q
	select MACH_MICROSOM
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_DMA
	select IMX_HAVE_PLATFORM_FEC
	select IMX_HAVE_PLATFORM_GPMI_NFC
	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
	select IMX_HAVE_PLATFORM_SPI_IMX
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_VIV_GPU
	select IMX_HAVE_PLATFORM_IMX_VPU
	select IMX_HAVE_PLATFORM_IMX_SSI
	select IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL
	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_FSL_OTG
	select IMX_HAVE_PLATFORM_FSL_USB_WAKEUP
	select IMX_HAVE_PLATFORM_AHCI
	select IMX_HAVE_PLATFORM_IMX_OCOTP
	select IMX_HAVE_PLATFORM_IMX_VIIM
	select IMX_HAVE_PLATFORM_IMX2_WDT
	select IMX_HAVE_PLATFORM_IMX_PM
	select IMX_HAVE_PLATFORM_MXC_HDMI
	select IMX_HAVE_PLATFORM_IMX_ASRC
	select IMX_HAVE_PLATFORM_FLEXCAN
	select IMX_HAVE_PLATFORM_IMX_PCIE
	select IMX_HAVE_PLATFORM_IMX_CAAM
	help
	  Include support for SolidRun i.MX6 based HummingBoard

config MACH_CUBOX_I
	bool "Support SolidRun i.MX6 CuBox-i family of products"
	select ARCH_MX6Q
	select SOC_IMX6Q
	select MACH_MICROSOM
	select IMX_HAVE_PLATFORM_IMX_UART
	select IMX_HAVE_PLATFORM_DMA
	select IMX_HAVE_PLATFORM_FEC
	select IMX_HAVE_PLATFORM_GPMI_NFC
	select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
	select IMX_HAVE_PLATFORM_SPI_IMX
	select IMX_HAVE_PLATFORM_IMX_I2C
	select IMX_HAVE_PLATFORM_VIV_GPU
	select IMX_HAVE_PLATFORM_IMX_VPU
	select IMX_HAVE_PLATFORM_IMX_SSI
	select IMX_HAVE_PLATFORM_IMX_ANATOP_THERMAL
	select IMX_HAVE_PLATFORM_FSL_USB2_UDC
	select IMX_HAVE_PLATFORM_MXC_EHCI
	select IMX_HAVE_PLATFORM_FSL_OTG
	select IMX_HAVE_PLATFORM_FSL_USB_WAKEUP
	select IMX_HAVE_PLATFORM_AHCI
	select IMX_HAVE_PLATFORM_IMX_OCOTP
	select IMX_HAVE_PLATFORM_IMX_VIIM
	select IMX_HAVE_PLATFORM_IMX2_WDT
	select IMX_HAVE_PLATFORM_IMX_PM
	select IMX_HAVE_PLATFORM_MXC_HDMI
	select IMX_HAVE_PLATFORM_IMX_ASRC
	select IMX_HAVE_PLATFORM_FLEXCAN
	select IMX_HAVE_PLATFORM_IMX_PCIE
	select IMX_HAVE_PLATFORM_IMX_CAAM
	help
	  Include support for SolidRun i.MX6 based CuBox-i family of products

comment "MX6 Options:"

config IMX_PCIE
	bool "PCI Express support"
	select PCI

config IMX_PCIE_EP_MODE_IN_EP_RC_SYS
	bool "PCI Express EP mode in the IMX6 RC/EP interconnection system"
	depends on IMX_PCIE

config IMX_PCIE_RC_MODE_IN_EP_RC_SYS
	bool "PCI Express RC mode in the IMX6 RC/EP interconnection system"
	depends on IMX_PCIE

config USB_EHCI_ARC_H1
	tristate "USB Host 1 support"
	depends on USB_EHCI_ARC

config USB_FSL_ARC_OTG
	tristate "FSL USB OTG support"

config USB_ID_WAKEUP_ENABLE
	bool "Enable USB ID Pin As System Wakeup Source"
	depends on SOC_IMX6SL
	default n

config MX6_INTER_LDO_BYPASS
	bool "Internal LDO in MX6Q/DL bypass"
	depends on  REGULATOR_PFUZE100 && CPU_FREQ_IMX && ARCH_MX6
	default n
	help
	 This is choosed for bypass internal LDO in MX6. If choose it, internal
	 LDO will replaced by external pmic regulator(e.g. pfuze100), VDDCORE
	 can be adjust automatically adjust by cpu frequency.

config MX6_CLK_FOR_BOOTUI_TRANS
	bool "MX6 clk setting for smooth UI transtion from bootloader to kernel"
	depends on MXC_IPU_V3H
	default n
	help
	 This is choosed to keep enable IPU related clocks and PWM clocks and
	 avoid setting IPU related clocks' parents when initializing clock tree
	 so that bootloader splashimage can transition to kernel smoothly.

config MACH_IMX_BLUETOOTH_RFKILL
       tristate "i.MX Bluetooth rfkill interface support"
       depends on RFKILL
       ---help---
	Say Y to get the standard rfkill interface of Bluetooth

config SDMA_IRAM
	bool "Use Internal RAM for SDMA data structures"
	depends on IMX_SDMA && SOC_IMX6SL
	help
	  SDMA buffer or control structures are stored in the IRAM/OCRAM


endif
