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"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
	bool "imx8mm"

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
	bool "imx8x"
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 || \
		BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM

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"
source "package/freescale-imx/imx-sc-firmware/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
