# Abilis Systems TB10x platform kernel configuration file
#
# Author: Christian Ruppert <christian.ruppert@abilis.com>
#
# 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.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA


menuconfig ARC_PLAT_TB10X
	bool "Abilis TB10x"
	select COMMON_CLK
	select PINCTRL
	select PINCTRL_TB10X
	select PINMUX
	select ARCH_REQUIRE_GPIOLIB
	select GPIO_TB10X
	select TB10X_IRQC
	help
	  Support for platforms based on the TB10x home media gateway SOC by
	  Abilis Systems. TB10x is based on the ARC700 CPU architecture.
	  Say Y if you are building a kernel for one of the SOCs in this
	  series (e.g. TB100 or TB101). If in doubt say N.
