##
## This file is part of the coreboot project.
##
## Copyright (C) 2009 Ronald G. Minnich
## Copyright (C) 2012 Advanced Micro Devices, Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; version 2 of the License.
##
## 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.
##

config SUPERIO_WANTS_14MHZ_CLOCK
	bool

config SUPERIO_SMSC_DME1737
	bool
config SUPERIO_SMSC_FDC37N972
	bool
config SUPERIO_SMSC_LPC47B272
	bool
config SUPERIO_SMSC_LPC47B397
	bool
config SUPERIO_SMSC_LPC47M10X
	bool
config SUPERIO_SMSC_LPC47M15X
	bool
config SUPERIO_SMSC_LPC47N207
	bool
config SUPERIO_SMSC_LPC47N217
	bool
config SUPERIO_SMSC_LPC47N227
	bool
config SUPERIO_SMSC_SIO10N268
	bool
config SUPERIO_SMSC_SIO1007
	bool
config SUPERIO_SMSC_KBC1100
	bool
config SUPERIO_SMSC_MEC1308
	bool
config SUPERIO_SMSC_SMSCSUPERIO
	bool
	select SUPERIO_WANTS_14MHZ_CLOCK
config SUPERIO_SMSC_SIO1036
	bool
config SUPERIO_SMSC_SCH4037
	bool
