# 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 PINCTRL
	select PINCTRL_TB10X
	select PINMUX
	select 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.
