menuconfig BR2_PACKAGE_FREESCALE_IMX
	bool "Freescale i.MX libraries"
	depends on BR2_arm || BR2_aarch64
	help
	  Those packages provide hardware acceleration for GPU or VPU,
	  hardware optimization or some hardware tools for Freescale
	  i.MX platforms.

if BR2_PACKAGE_FREESCALE_IMX
choice
	prompt "i.MX platform"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
	bool "imx25-3stack"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
	bool "imx27ads"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX37_3STACK
	bool "imx37-3stack"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX50
	bool "imx50"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
	bool "imx51"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
	bool "imx53"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
	bool "imx6q/imx6dl"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
	bool "imx6sl/imx6sx"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
	bool "imx6ul/imx6ull"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
	bool "imx7d/imx7ulp"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
	bool "imx8m"
endchoice

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
	string
	default "IMX25_3STACK" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
	default "IMX27ADS" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
	default "IMX37_3STACK" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX37_3STACK
	default "IMX50" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX50
	default "IMX51" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
	default "IMX53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
	default "IMX6Q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
	default "IMX6S" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
	default "IMX6UL" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
	default "IMX7" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
	default "IMX8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M

config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
	bool
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS || \
		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 || \
		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53 || \
		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q

config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
	bool
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M

config BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
	bool
	default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q || \
		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S || \
		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7 || \
		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M

source "package/freescale-imx/imx-alsa-plugins/Config.in"
source "package/freescale-imx/imx-codec/Config.in"
source "package/freescale-imx/imx-kobs/Config.in"
source "package/freescale-imx/imx-lib/Config.in"
source "package/freescale-imx/imx-m4fwloader/Config.in"
source "package/freescale-imx/imx-parser/Config.in"
source "package/freescale-imx/imx-uuc/Config.in"
source "package/freescale-imx/imx-vpu/Config.in"
source "package/freescale-imx/imx-vpu-hantro/Config.in"
source "package/freescale-imx/imx-vpuwrap/Config.in"
source "package/freescale-imx/firmware-imx/Config.in"
if (BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 || BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53)
source "package/freescale-imx/gpu-amd-bin-mx51/Config.in"
source "package/freescale-imx/libz160/Config.in"
endif
if BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU
source "package/freescale-imx/imx-gpu-g2d/Config.in"
source "package/freescale-imx/imx-gpu-viv/Config.in"
source "package/freescale-imx/kernel-module-imx-gpu-viv/Config.in"
endif

endif
