#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#

menuconfig ARC_PLAT_QTN
	bool "Quantenna Platforms"
	select DW_APB_ICTL
	select GPIO_DWAPB
	select OF_GPIO
	select GENERIC_IRQ_CHIP
	select ARCH_REQUIRE_GPIOLIB
	select MIGHT_HAVE_PCI
	select ARC_PLAT_NEEDS_PHYS_TO_DMA
	select QTN_PLATFORM_MISALIGN_WAR
	help
	  Support for Quantenna platforms

config QTN_PLATFORM_MISALIGN_WAR
	bool

if ARC_PLAT_QTN

config ARCH_QSR1000
	depends on ISA_ARCOMPACT
	bool "Quantenna QSR1000 architecture"
	help
	  This adds support for Quantenna QSR1000 architecture

endif
