1# eSPI configuration options
2
3# Copyright (c) 2019 Intel Corporation
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig ESPI
7	bool "Enhanced Serial Peripheral Interface (eSPI) bus drivers"
8	help
9	  Enable ESPI Driver.
10
11if ESPI
12
13source "drivers/espi/Kconfig.xec"
14
15source "drivers/espi/Kconfig.npcx"
16
17source "drivers/espi/Kconfig.espi_emul"
18
19source "drivers/espi/Kconfig.it8xxx2"
20
21module = ESPI
22module-str = espi
23source "subsys/logging/Kconfig.template.log_config"
24
25config ESPI_TARGET
26	bool "ESPI target driver"
27	default y
28	help
29	  Enables eSPI driver in target mode.
30
31config ESPI_INIT_PRIORITY
32	int "ESPI Controller driver initialization priority"
33	default 3
34	help
35	  Driver initialization priority for eSPI driver.
36
37config ESPI_PERIPHERAL_CHANNEL
38	bool "eSPI peripheral channel"
39	default y
40	help
41	  eSPI Controller supports peripheral channel.
42
43config ESPI_VWIRE_CHANNEL
44	bool "eSPI virtual wire channel"
45	default y
46	help
47	  eSPI Controller supports virtual wires channel.
48
49config ESPI_AUTOMATIC_WARNING_ACKNOWLEDGE
50	bool "Automatic acknowledge for eSPI HOST warnings"
51	default y
52	depends on ESPI_VWIRE_CHANNEL
53	depends on ESPI_TARGET
54	help
55	  Enable automatic acknowledgment from eSPI target towards eSPI controller
56	  whenever it receives suspend or reset warning.
57	  If this is disabled, it means the app wants to be give the opportunity
58	  to prepare for either HOST suspend or reset.
59
60config ESPI_AUTOMATIC_BOOT_DONE_ACKNOWLEDGE
61	bool "Automatic acknowledge target boot status"
62	default y
63	depends on ESPI_VWIRE_CHANNEL
64	depends on ESPI_TARGET
65	help
66	  Enable automatic acknowledgment from target basic configuration been
67	  completed by sending a virtual wire message to the eSPI master.
68	  This depends on SPI boot configuration. It could be either very
69	  early in the flow after the VW channel is configured. Or it could be
70	  until flash channel is configured.
71
72config ESPI_OOB_CHANNEL
73	bool "eSPI Out-of-band channel"
74	help
75	  eSPI Controller supports OOB channel.
76
77config ESPI_FLASH_CHANNEL
78	bool "ESPI flash channel"
79	help
80	  eSPI Controller supports flash channel.
81
82if ESPI_PERIPHERAL_CHANNEL
83
84config ESPI_PERIPHERAL_UART
85	bool "UART peripheral"
86	help
87	  Enables UART over eSPI peripheral channel.
88
89config ESPI_PERIPHERAL_8042_KBC
90	bool "8042 kbc peripheral"
91	help
92	  Enables 8042 keyboard controller over eSPI peripheral channel.
93
94config ESPI_PERIPHERAL_HOST_IO
95	bool "Host I/O peripheral"
96	help
97	  Enables ACPI Host I/O over eSPI peripheral channel.
98
99config ESPI_PERIPHERAL_HOST_IO_PVT
100	bool "Host I/O peripheral Private Channel"
101	help
102	  Enables ACPI Host I/O over eSPI peripheral channel for private channel.
103
104config ESPI_PERIPHERAL_HOST_IO_PVT_PORT_NUM
105	hex "Host I/O peripheral Private Channel"
106	depends on ESPI_PERIPHERAL_HOST_IO_PVT
107	default 0x06A00000
108	help
109	  This is the port number used by the Host and EC to communicate over
110	  the private channel. Please ensure the Host code is configured to use
111	  the same port. Also, ensure the port number selected doesn't clash
112	  with the existing ports (like 80, 92, 62 etc).
113
114config ESPI_PERIPHERAL_DEBUG_PORT_80
115	bool "Debug Port 80 peripheral"
116	help
117	  Enables debug Port 80 over eSPI peripheral channel.
118
119config ESPI_PERIPHERAL_EC_HOST_CMD
120	bool "Host peripheral device support EC host command subsystem"
121	help
122	  Enables Embedded Controller (EC) host command subsystem via eSPI
123	  peripheral channel.
124
125config ESPI_PERIPHERAL_ACPI_SHM_REGION
126	bool "Host peripheral device support shared memory region"
127	help
128	  Enables shared memory region over eSPI peripheral channel to access
129	  the ACPI response data.
130
131config ESPI_PERIPHERAL_ACPI_SHM_REGION_PORT_NUM
132	hex "Host I/O peripheral port number for shared memory region"
133	depends on ESPI_PERIPHERAL_ACPI_SHM_REGION
134	default 0x0900
135	help
136	  This is the port number used by the Host and EC to communicate over
137	  the shared memory region to access the ACPI response data. Please
138	  ensure the Host code is configured to use for accessing ACPI response
139	  data. Also, ensure the port number selected doesn't clash with the
140	  existing ports.
141
142config ESPI_PERIPHERAL_CUSTOM_OPCODE
143	bool "Host peripheral device support customized opcode"
144	help
145	  Enables opcode is customized for certain platforms such as Chromebook
146	  and so on over eSPI peripheral channel.
147
148config ESPI_PERIPHERAL_HOST_CMD_DATA_PORT_NUM
149	hex "Host I/O peripheral port number for ec host command data"
150	depends on ESPI_PERIPHERAL_EC_HOST_CMD
151	default 0x0200
152	help
153	  This is the port number used by the Host and EC to communicate over
154	  the eSPI peripheral channel to send EC host command data and its
155	  result. Please ensure the Host code is configured to use for accessing
156	  host command data and result. Also, ensure the port number selected
157	  doesn't clash with the existing ports.
158
159config ESPI_PERIPHERAL_HOST_CMD_PARAM_PORT_NUM
160	hex "Host I/O peripheral port number for ec host command parameters"
161	depends on ESPI_PERIPHERAL_EC_HOST_CMD
162	default 0x0800
163	help
164	  This is the port number used by the Host and EC to communicate over
165	  the eSPI peripheral channel to access the host command request and
166	  response data. Please ensure the Host code is configured to use for
167	  accessing these package data. Also, ensure the port number selected
168	  doesn't clash with the existing ports.
169
170endif # ESPI_PERIPHERAL_CHANNEL
171
172config ESPI_OOB_CHANNEL_RX_ASYNC
173	bool "OOB host-initiated traffic handling"
174	depends on ESPI_OOB_CHANNEL
175	help
176	  Enables asynchronous handling for host-initiated OOB traffic.
177	  Otherwise OOB traffic is assumed to be always client-initiated.
178
179config ESPI_TAF
180	bool "ESPI TAF driver"
181	depends on ESPI_FLASH_CHANNEL
182	help
183	  Enable Target Attached Flash eSPI driver. TAF depends upon ESPI driver
184	  and flash channel.
185
186config ESPI_TAF_INIT_PRIORITY
187	int "ESPI TAF driver initialization priority"
188	depends on ESPI_TAF
189	default 4
190	help
191	  Driver initialization priority for eSPI TAF driver. TAF driver must
192	  initialize after the ESPI driver.
193
194endif # ESPI
195