# Copyright (c) 2020 ITE Corporation. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0

config SOC_SERIES_IT8XXX2
	bool
	select SOC_FAMILY_ITE_EC
	help
	    Enable support for ITE IT8XXX2

config SOC_IT8XXX2
	bool
	select SOC_SERIES_IT8XXX2

config SOC_IT81302BX
	bool
	select SOC_IT8XXX2

config SOC_IT81202BX
	bool
	select SOC_IT8XXX2

config SOC_IT81302CX
	bool
	select SOC_IT8XXX2

config SOC_IT81202CX
	bool
	select SOC_IT8XXX2

config SOC_IT82202AX
	bool
	select SOC_IT8XXX2

config SOC_IT82302AX
	bool
	select SOC_IT8XXX2

config SOC_IT82002AW
	bool
	select SOC_IT8XXX2

config SOC_IT82202BW
	bool
	select SOC_IT8XXX2

config SOC_IT82302BW
	bool
	select SOC_IT8XXX2

config SOC_SERIES
	default "it8xxx2" if SOC_SERIES_IT8XXX2

config SOC
	default "it81202bx" if SOC_IT81202BX
	default "it81202cx" if SOC_IT81202CX
	default "it81302bx" if SOC_IT81302BX
	default "it81302cx" if SOC_IT81302CX
	default "it82002aw" if SOC_IT82002AW
	default "it82202ax" if SOC_IT82202AX
	default "it82302ax" if SOC_IT82302AX
	default "it82202bw" if SOC_IT82202BW
	default "it82302bw" if SOC_IT82302BW
