Zephyr Project API  3.2.0
A Scalable Open Source RTOS
espi.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2019 Intel Corporation.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12#ifndef ZEPHYR_INCLUDE_ESPI_H_
13#define ZEPHYR_INCLUDE_ESPI_H_
14
15#include <zephyr/sys/__assert.h>
16#include <zephyr/types.h>
17#include <zephyr/device.h>
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
37};
38
103};
104
116};
117
126};
127
132#define ESPI_PERIPHERAL_INDEX_0 0ul
133#define ESPI_PERIPHERAL_INDEX_1 1ul
134#define ESPI_PERIPHERAL_INDEX_2 2ul
135
136#define ESPI_SLAVE_TO_MASTER 0ul
137#define ESPI_MASTER_TO_SLAVE 1ul
138
139#define ESPI_VWIRE_SRC_ID0 0ul
140#define ESPI_VWIRE_SRC_ID1 1ul
141#define ESPI_VWIRE_SRC_ID2 2ul
142#define ESPI_VWIRE_SRC_ID3 3ul
143#define ESPI_VWIRE_SRC_ID_MAX 4ul
144
145#define ESPI_PERIPHERAL_NODATA 0ul
146
147#define E8042_START_OPCODE 0x50
148#define E8042_MAX_OPCODE 0x5F
149
150#define EACPI_START_OPCODE 0x60
151#define EACPI_MAX_OPCODE 0x6F
152
153#define ECUSTOM_START_OPCODE 0xF0
154#define ECUSTOM_MAX_OPCODE 0xFF
155
170#if defined(CONFIG_ESPI_PERIPHERAL_EC_HOST_CMD)
171 ESPI_PERIPHERAL_EC_HOST_CMD,
172#endif /* CONFIG_ESPI_PERIPHERAL_EC_HOST_CMD */
173};
174
188};
189
195 /* Virtual wires that can only be send from master to slave */
212 /* Virtual wires that can only be sent from slave to master */
222 /* System management interrupt */
224 /* System control interrupt */
228 /*
229 * Virtual wire GPIOs that can be sent from slave to master for
230 * platform specific usage.
231 */
240
241 /* USB-C port over current */
246
247 /* Number of Virtual Wires */
250
251/* eSPI LPC peripherals. */
253 /* Read transactions */
256 /* Write transactions */
259 /* Write transactions without input parameters */
263 /* Status transactions */
267 /* ACPI read transactions */
268 EACPI_OBF_HAS_CHAR = EACPI_START_OPCODE,
270 /* ACPI write transactions */
272 /* ACPI status transactions */
275#if defined(CONFIG_ESPI_PERIPHERAL_ACPI_SHM_REGION)
276 /* Shared memory region support to return the ACPI response data */
277 EACPI_GET_SHARED_MEMORY,
278#endif /* CONFIG_ESPI_PERIPHERAL_ACPI_SHM_REGION */
279#if defined(CONFIG_ESPI_PERIPHERAL_CUSTOM_OPCODE)
280 /* Other customized transactions */
281 ECUSTOM_HOST_SUBS_INTERRUPT_EN = ECUSTOM_START_OPCODE,
282 ECUSTOM_HOST_CMD_GET_PARAM_MEMORY,
283 ECUSTOM_HOST_CMD_SEND_RESULT,
284#endif /* CONFIG_ESPI_PERIPHERAL_CUSTOM_OPCODE */
285};
286
287/* KBC 8042 event: Input Buffer Full */
288#define HOST_KBC_EVT_IBF BIT(0)
289/* KBC 8042 event: Output Buffer Empty */
290#define HOST_KBC_EVT_OBE BIT(1)
299};
300
308};
309
320};
321
325struct espi_cfg {
332};
333
343};
344
351};
352
360};
361
362struct espi_callback;
363
373typedef void (*espi_callback_handler_t) (const struct device *dev,
374 struct espi_callback *cb,
375 struct espi_event espi_evt);
376
387struct espi_callback {
389 sys_snode_t node;
390
393
399 enum espi_bus_event evt_type;
400};
410typedef int (*espi_api_config)(const struct device *dev, struct espi_cfg *cfg);
411typedef bool (*espi_api_get_channel_status)(const struct device *dev,
412 enum espi_channel ch);
413/* Logical Channel 0 APIs */
414typedef int (*espi_api_read_request)(const struct device *dev,
415 struct espi_request_packet *req);
416typedef int (*espi_api_write_request)(const struct device *dev,
417 struct espi_request_packet *req);
418typedef int (*espi_api_lpc_read_request)(const struct device *dev,
419 enum lpc_peripheral_opcode op,
420 uint32_t *data);
421typedef int (*espi_api_lpc_write_request)(const struct device *dev,
422 enum lpc_peripheral_opcode op,
423 uint32_t *data);
424/* Logical Channel 1 APIs */
425typedef int (*espi_api_send_vwire)(const struct device *dev,
426 enum espi_vwire_signal vw,
427 uint8_t level);
428typedef int (*espi_api_receive_vwire)(const struct device *dev,
429 enum espi_vwire_signal vw,
430 uint8_t *level);
431/* Logical Channel 2 APIs */
432typedef int (*espi_api_send_oob)(const struct device *dev,
433 struct espi_oob_packet *pckt);
434typedef int (*espi_api_receive_oob)(const struct device *dev,
435 struct espi_oob_packet *pckt);
436/* Logical Channel 3 APIs */
437typedef int (*espi_api_flash_read)(const struct device *dev,
438 struct espi_flash_packet *pckt);
439typedef int (*espi_api_flash_write)(const struct device *dev,
440 struct espi_flash_packet *pckt);
441typedef int (*espi_api_flash_erase)(const struct device *dev,
442 struct espi_flash_packet *pckt);
443/* Callbacks and traffic intercept */
444typedef int (*espi_api_manage_callback)(const struct device *dev,
445 struct espi_callback *callback,
446 bool set);
447
448__subsystem struct espi_driver_api {
449 espi_api_config config;
450 espi_api_get_channel_status get_channel_status;
451 espi_api_read_request read_request;
452 espi_api_write_request write_request;
453 espi_api_lpc_read_request read_lpc_request;
454 espi_api_lpc_write_request write_lpc_request;
455 espi_api_send_vwire send_vwire;
456 espi_api_receive_vwire receive_vwire;
457 espi_api_send_oob send_oob;
458 espi_api_receive_oob receive_oob;
459 espi_api_flash_read flash_read;
460 espi_api_flash_write flash_write;
461 espi_api_flash_erase flash_erase;
462 espi_api_manage_callback manage_callback;
463};
464
515__syscall int espi_config(const struct device *dev, struct espi_cfg *cfg);
516
517static inline int z_impl_espi_config(const struct device *dev,
518 struct espi_cfg *cfg)
519{
520 const struct espi_driver_api *api =
521 (const struct espi_driver_api *)dev->api;
522
523 return api->config(dev, cfg);
524}
525
538__syscall bool espi_get_channel_status(const struct device *dev,
539 enum espi_channel ch);
540
541static inline bool z_impl_espi_get_channel_status(const struct device *dev,
542 enum espi_channel ch)
543{
544 const struct espi_driver_api *api =
545 (const struct espi_driver_api *)dev->api;
546
547 return api->get_channel_status(dev, ch);
548}
549
564__syscall int espi_read_request(const struct device *dev,
565 struct espi_request_packet *req);
566
567static inline int z_impl_espi_read_request(const struct device *dev,
568 struct espi_request_packet *req)
569{
570 const struct espi_driver_api *api =
571 (const struct espi_driver_api *)dev->api;
572
573 if (!api->read_request) {
574 return -ENOTSUP;
575 }
576
577 return api->read_request(dev, req);
578}
579
594__syscall int espi_write_request(const struct device *dev,
595 struct espi_request_packet *req);
596
597static inline int z_impl_espi_write_request(const struct device *dev,
598 struct espi_request_packet *req)
599{
600 const struct espi_driver_api *api =
601 (const struct espi_driver_api *)dev->api;
602
603 if (!api->write_request) {
604 return -ENOTSUP;
605 }
606
607 return api->write_request(dev, req);
608}
609
626__syscall int espi_read_lpc_request(const struct device *dev,
627 enum lpc_peripheral_opcode op,
628 uint32_t *data);
629
630static inline int z_impl_espi_read_lpc_request(const struct device *dev,
631 enum lpc_peripheral_opcode op,
632 uint32_t *data)
633{
634 const struct espi_driver_api *api =
635 (const struct espi_driver_api *)dev->api;
636
637 if (!api->read_lpc_request) {
638 return -ENOTSUP;
639 }
640
641 return api->read_lpc_request(dev, op, data);
642}
643
659__syscall int espi_write_lpc_request(const struct device *dev,
660 enum lpc_peripheral_opcode op,
661 uint32_t *data);
662
663static inline int z_impl_espi_write_lpc_request(const struct device *dev,
664 enum lpc_peripheral_opcode op,
665 uint32_t *data)
666{
667 const struct espi_driver_api *api =
668 (const struct espi_driver_api *)dev->api;
669
670 if (!api->write_lpc_request) {
671 return -ENOTSUP;
672 }
673
674 return api->write_lpc_request(dev, op, data);
675}
676
690__syscall int espi_send_vwire(const struct device *dev,
692 uint8_t level);
693
694static inline int z_impl_espi_send_vwire(const struct device *dev,
696 uint8_t level)
697{
698 const struct espi_driver_api *api =
699 (const struct espi_driver_api *)dev->api;
700
701 return api->send_vwire(dev, signal, level);
702}
703
716__syscall int espi_receive_vwire(const struct device *dev,
718 uint8_t *level);
719
720static inline int z_impl_espi_receive_vwire(const struct device *dev,
722 uint8_t *level)
723{
724 const struct espi_driver_api *api =
725 (const struct espi_driver_api *)dev->api;
726
727 return api->receive_vwire(dev, signal, level);
728}
729
741__syscall int espi_send_oob(const struct device *dev,
742 struct espi_oob_packet *pckt);
743
744static inline int z_impl_espi_send_oob(const struct device *dev,
745 struct espi_oob_packet *pckt)
746{
747 const struct espi_driver_api *api =
748 (const struct espi_driver_api *)dev->api;
749
750 if (!api->send_oob) {
751 return -ENOTSUP;
752 }
753
754 return api->send_oob(dev, pckt);
755}
756
768__syscall int espi_receive_oob(const struct device *dev,
769 struct espi_oob_packet *pckt);
770
771static inline int z_impl_espi_receive_oob(const struct device *dev,
772 struct espi_oob_packet *pckt)
773{
774 const struct espi_driver_api *api =
775 (const struct espi_driver_api *)dev->api;
776
777 if (!api->receive_oob) {
778 return -ENOTSUP;
779 }
780
781 return api->receive_oob(dev, pckt);
782}
783
797__syscall int espi_read_flash(const struct device *dev,
798 struct espi_flash_packet *pckt);
799
800static inline int z_impl_espi_read_flash(const struct device *dev,
801 struct espi_flash_packet *pckt)
802{
803 const struct espi_driver_api *api =
804 (const struct espi_driver_api *)dev->api;
805
806 if (!api->flash_read) {
807 return -ENOTSUP;
808 }
809
810 return api->flash_read(dev, pckt);
811}
812
826__syscall int espi_write_flash(const struct device *dev,
827 struct espi_flash_packet *pckt);
828
829static inline int z_impl_espi_write_flash(const struct device *dev,
830 struct espi_flash_packet *pckt)
831{
832 const struct espi_driver_api *api =
833 (const struct espi_driver_api *)dev->api;
834
835 if (!api->flash_write) {
836 return -ENOTSUP;
837 }
838
839 return api->flash_write(dev, pckt);
840}
841
855__syscall int espi_flash_erase(const struct device *dev,
856 struct espi_flash_packet *pckt);
857
858static inline int z_impl_espi_flash_erase(const struct device *dev,
859 struct espi_flash_packet *pckt)
860{
861 const struct espi_driver_api *api =
862 (const struct espi_driver_api *)dev->api;
863
864 if (!api->flash_erase) {
865 return -ENOTSUP;
866 }
867
868 return api->flash_erase(dev, pckt);
869}
870
939static inline void espi_init_callback(struct espi_callback *callback,
941 enum espi_bus_event evt_type)
942{
943 __ASSERT(callback, "Callback pointer should not be NULL");
944 __ASSERT(handler, "Callback handler pointer should not be NULL");
945
946 callback->handler = handler;
947 callback->evt_type = evt_type;
948}
949
962static inline int espi_add_callback(const struct device *dev,
963 struct espi_callback *callback)
964{
965 const struct espi_driver_api *api =
966 (const struct espi_driver_api *)dev->api;
967
968 if (!api->manage_callback) {
969 return -ENOTSUP;
970 }
971
972 return api->manage_callback(dev, callback, true);
973}
974
991static inline int espi_remove_callback(const struct device *dev,
992 struct espi_callback *callback)
993{
994 const struct espi_driver_api *api =
995 (const struct espi_driver_api *)dev->api;
996
997 if (!api->manage_callback) {
998 return -ENOTSUP;
999 }
1000
1001 return api->manage_callback(dev, callback, false);
1002}
1003
1004#ifdef __cplusplus
1005}
1006#endif
1007
1011#include <syscalls/espi.h>
1012#endif /* ZEPHYR_INCLUDE_ESPI_H_ */
int espi_read_flash(const struct device *dev, struct espi_flash_packet *pckt)
Sends a read request packet for shared flash.
espi_io_mode
eSPI I/O mode capabilities
Definition: espi.h:33
int espi_read_request(const struct device *dev, struct espi_request_packet *req)
Sends memory, I/O or message read request over eSPI.
int espi_write_request(const struct device *dev, struct espi_request_packet *req)
Sends memory, I/O or message write request over eSPI.
int espi_send_oob(const struct device *dev, struct espi_oob_packet *pckt)
Sends SMBus transaction (out-of-band) packet over eSPI bus.
espi_virtual_peripheral
eSPI peripheral notification type.
Definition: espi.h:164
void(* espi_callback_handler_t)(const struct device *dev, struct espi_callback *cb, struct espi_event espi_evt)
Define the application callback handler function signature.
Definition: espi.h:373
espi_bus_event
eSPI bus event.
Definition: espi.h:110
espi_cycle_type
eSPI cycle types supported over eSPI peripheral channel
Definition: espi.h:178
int espi_receive_oob(const struct device *dev, struct espi_oob_packet *pckt)
Receives SMBus transaction (out-of-band) packet from eSPI bus.
int espi_config(const struct device *dev, struct espi_cfg *cfg)
Configure operation of a eSPI controller.
static int espi_remove_callback(const struct device *dev, struct espi_callback *callback)
Remove an application callback.
Definition: espi.h:991
bool espi_get_channel_status(const struct device *dev, enum espi_channel ch)
Query to see if it a channel is ready.
int espi_write_lpc_request(const struct device *dev, enum lpc_peripheral_opcode op, uint32_t *data)
Writes data to a LPC peripheral which generates an eSPI transaction.
static void espi_init_callback(struct espi_callback *callback, espi_callback_handler_t handler, enum espi_bus_event evt_type)
Helper to initialize a struct espi_callback properly.
Definition: espi.h:939
int espi_receive_vwire(const struct device *dev, enum espi_vwire_signal signal, uint8_t *level)
Retrieves level status for a signal encapsulated in a virtual wire.
int espi_write_flash(const struct device *dev, struct espi_flash_packet *pckt)
Sends a write request packet for shared flash.
int espi_flash_erase(const struct device *dev, struct espi_flash_packet *pckt)
Sends a write request packet for shared flash.
espi_vwire_signal
eSPI system platform signals that can be send or receive through virtual wire channel
Definition: espi.h:194
static int espi_add_callback(const struct device *dev, struct espi_callback *callback)
Add an application callback.
Definition: espi.h:962
espi_pc_event
eSPI peripheral channel events.
Definition: espi.h:123
int espi_send_vwire(const struct device *dev, enum espi_vwire_signal signal, uint8_t level)
Sends system/platform signal as a virtual wire packet.
lpc_peripheral_opcode
Definition: espi.h:252
int espi_read_lpc_request(const struct device *dev, enum lpc_peripheral_opcode op, uint32_t *data)
Reads SOC data from a LPC peripheral with information updated over eSPI.
espi_channel
eSPI channel.
Definition: espi.h:98
@ ESPI_IO_MODE_QUAD_LINES
Definition: espi.h:36
@ ESPI_IO_MODE_SINGLE_LINE
Definition: espi.h:34
@ ESPI_IO_MODE_DUAL_LINES
Definition: espi.h:35
@ ESPI_PERIPHERAL_UART
Definition: espi.h:165
@ ESPI_PERIPHERAL_HOST_IO
Definition: espi.h:167
@ ESPI_PERIPHERAL_HOST_IO_PVT
Definition: espi.h:169
@ ESPI_PERIPHERAL_8042_KBC
Definition: espi.h:166
@ ESPI_PERIPHERAL_DEBUG_PORT80
Definition: espi.h:168
@ ESPI_BUS_EVENT_OOB_RECEIVED
Definition: espi.h:114
@ ESPI_BUS_EVENT_CHANNEL_READY
Definition: espi.h:112
@ ESPI_BUS_PERIPHERAL_NOTIFICATION
Definition: espi.h:115
@ ESPI_BUS_EVENT_VWIRE_RECEIVED
Definition: espi.h:113
@ ESPI_BUS_RESET
Definition: espi.h:111
@ ESPI_CYCLE_OK_COMPLETION_NODATA
Definition: espi.h:185
@ ESPI_CYCLE_NOK_COMPLETION_NODATA
Definition: espi.h:187
@ ESPI_CYCLE_MEMORY_WRITE32
Definition: espi.h:181
@ ESPI_CYCLE_MESSAGE_DATA
Definition: espi.h:184
@ ESPI_CYCLE_MEMORY_WRITE64
Definition: espi.h:182
@ ESPI_CYCLE_MEMORY_READ32
Definition: espi.h:179
@ ESPI_CYCLE_MESSAGE_NODATA
Definition: espi.h:183
@ ESPI_CYCLE_MEMORY_READ64
Definition: espi.h:180
@ ESPI_CYCLE_OKCOMPLETION_DATA
Definition: espi.h:186
@ ESPI_VWIRE_SIGNAL_OCB_2
Definition: espi.h:244
@ ESPI_VWIRE_SIGNAL_PLTRST
Definition: espi.h:200
@ ESPI_VWIRE_SIGNAL_SUS_STAT
Definition: espi.h:201
@ ESPI_VWIRE_SIGNAL_OCB_0
Definition: espi.h:242
@ ESPI_VWIRE_SIGNAL_RST_CPU_INIT
Definition: espi.h:221
@ ESPI_VWIRE_SIGNAL_SMIOUT
Definition: espi.h:203
@ ESPI_VWIRE_SIGNAL_SMI
Definition: espi.h:223
@ ESPI_VWIRE_SIGNAL_OOB_RST_WARN
Definition: espi.h:199
@ ESPI_VWIRE_SIGNAL_SLP_WLAN
Definition: espi.h:208
@ ESPI_VWIRE_SIGNAL_SLV_GPIO_2
Definition: espi.h:234
@ ESPI_VWIRE_SIGNAL_SLV_GPIO_5
Definition: espi.h:237
@ ESPI_VWIRE_SIGNAL_SLP_S4
Definition: espi.h:197
@ ESPI_VWIRE_SIGNAL_ERR_NON_FATAL
Definition: espi.h:217
@ ESPI_VWIRE_SIGNAL_DNX_ACK
Definition: espi.h:226
@ ESPI_VWIRE_SIGNAL_SLV_GPIO_1
Definition: espi.h:233
@ ESPI_VWIRE_SIGNAL_OCB_1
Definition: espi.h:243
@ ESPI_VWIRE_SIGNAL_WAKE
Definition: espi.h:214
@ ESPI_VWIRE_SIGNAL_SLV_GPIO_0
Definition: espi.h:232
@ ESPI_VWIRE_SIGNAL_HOST_RST_ACK
Definition: espi.h:220
@ ESPI_VWIRE_SIGNAL_SLV_GPIO_4
Definition: espi.h:236
@ ESPI_VWIRE_SIGNAL_OOB_RST_ACK
Definition: espi.h:215
@ ESPI_VWIRE_SIGNAL_DNX_WARN
Definition: espi.h:211
@ ESPI_VWIRE_SIGNAL_SUS_WARN
Definition: espi.h:207
@ ESPI_VWIRE_SIGNAL_SLV_GPIO_3
Definition: espi.h:235
@ ESPI_VWIRE_SIGNAL_SLP_A
Definition: espi.h:205
@ ESPI_VWIRE_SIGNAL_PME
Definition: espi.h:213
@ ESPI_VWIRE_SIGNAL_SLV_BOOT_DONE
Definition: espi.h:219
@ ESPI_VWIRE_SIGNAL_SLV_GPIO_7
Definition: espi.h:239
@ ESPI_VWIRE_SIGNAL_ERR_FATAL
Definition: espi.h:218
@ ESPI_VWIRE_SIGNAL_SUS_PWRDN_ACK
Definition: espi.h:206
@ ESPI_VWIRE_SIGNAL_SLP_S3
Definition: espi.h:196
@ ESPI_VWIRE_SIGNAL_HOST_C10
Definition: espi.h:210
@ ESPI_VWIRE_SIGNAL_SLP_LAN
Definition: espi.h:209
@ ESPI_VWIRE_SIGNAL_SUS_ACK
Definition: espi.h:227
@ ESPI_VWIRE_SIGNAL_SLP_S5
Definition: espi.h:198
@ ESPI_VWIRE_SIGNAL_NMIOUT
Definition: espi.h:202
@ ESPI_VWIRE_SIGNAL_COUNT
Definition: espi.h:248
@ ESPI_VWIRE_SIGNAL_OCB_3
Definition: espi.h:245
@ ESPI_VWIRE_SIGNAL_SLV_BOOT_STS
Definition: espi.h:216
@ ESPI_VWIRE_SIGNAL_SLV_GPIO_6
Definition: espi.h:238
@ ESPI_VWIRE_SIGNAL_HOST_RST_WARN
Definition: espi.h:204
@ ESPI_VWIRE_SIGNAL_SCI
Definition: espi.h:225
@ ESPI_PC_EVT_BUS_MASTER_ENABLE
Definition: espi.h:125
@ ESPI_PC_EVT_BUS_CHANNEL_READY
Definition: espi.h:124
@ EACPI_READ_STS
Definition: espi.h:273
@ EACPI_WRITE_STS
Definition: espi.h:274
@ EACPI_IBF_HAS_CHAR
Definition: espi.h:269
@ EACPI_OBF_HAS_CHAR
Definition: espi.h:268
@ E8042_CLEAR_FLAG
Definition: espi.h:266
@ E8042_PAUSE_IRQ
Definition: espi.h:261
@ EACPI_WRITE_CHAR
Definition: espi.h:271
@ E8042_SET_FLAG
Definition: espi.h:265
@ E8042_READ_KB_STS
Definition: espi.h:264
@ E8042_WRITE_KB_CHAR
Definition: espi.h:257
@ E8042_WRITE_MB_CHAR
Definition: espi.h:258
@ E8042_IBF_HAS_CHAR
Definition: espi.h:255
@ E8042_OBF_HAS_CHAR
Definition: espi.h:254
@ E8042_RESUME_IRQ
Definition: espi.h:260
@ E8042_CLEAR_OBF
Definition: espi.h:262
@ ESPI_CHANNEL_OOB
Definition: espi.h:101
@ ESPI_CHANNEL_PERIPHERAL
Definition: espi.h:99
@ ESPI_CHANNEL_FLASH
Definition: espi.h:102
@ ESPI_CHANNEL_VWIRE
Definition: espi.h:100
int flash_erase(const struct device *dev, off_t offset, size_t size)
Erase part or all of a flash memory.
int flash_write(const struct device *dev, off_t offset, const void *data, size_t len)
Write buffer into flash memory.
int flash_read(const struct device *dev, off_t offset, void *data, size_t len)
Read data from flash.
#define BIT(n)
Unsigned integer with bit position n set (signed in assembly language).
Definition: util_macro.h:44
#define ENOTSUP
Definition: errno.h:115
struct _snode sys_snode_t
Definition: slist.h:33
#define bool
Definition: stdbool.h:13
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition: device.h:435
const void * api
Definition: device.h:441
eSPI bus configuration parameters
Definition: espi.h:325
enum espi_io_mode io_caps
Definition: espi.h:327
enum espi_channel channel_caps
Definition: espi.h:329
uint8_t max_freq
Definition: espi.h:331
eSPI event
Definition: espi.h:313
uint32_t evt_data
Definition: espi.h:319
enum espi_bus_event evt_type
Definition: espi.h:315
uint32_t evt_details
Definition: espi.h:317
Bit field definition of evt_data in struct espi_event for ACPI.
Definition: espi.h:304
uint32_t data
Definition: espi.h:306
uint32_t type
Definition: espi.h:305
uint32_t reserved
Definition: espi.h:307
Bit field definition of evt_data in struct espi_event for KBC.
Definition: espi.h:294
uint32_t reserved
Definition: espi.h:298
uint32_t evt
Definition: espi.h:297
uint32_t data
Definition: espi.h:296
uint32_t type
Definition: espi.h:295
eSPI flash transactions packet format
Definition: espi.h:356
uint8_t * buf
Definition: espi.h:357
uint32_t flash_addr
Definition: espi.h:358
uint16_t len
Definition: espi.h:359
eSPI out-of-band transaction packet format
Definition: espi.h:348
uint8_t * buf
Definition: espi.h:349
uint16_t len
Definition: espi.h:350
eSPI peripheral request packet format
Definition: espi.h:337
uint8_t tag
Definition: espi.h:339
uint32_t address
Definition: espi.h:341
uint8_t * data
Definition: espi.h:342
enum espi_cycle_type cycle_type
Definition: espi.h:338
uint16_t len
Definition: espi.h:340
static fdata_t data[2]
Definition: test_fifo_contexts.c:15
static struct k_poll_signal signal
Definition: test_poll.c:704
static void handler(struct k_timer *timer)
Definition: main.c:19