zephyr/drivers/espi/Kconfig.it8xxx2
Dino Li f76f2928f1 espi/it8xxx2: enable EC to accept port 81 cycle
This allows EC to accept 2 bytes of port 80 data written from the Host.

Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
2024-05-10 20:25:13 -04:00

146 lines
3.6 KiB
Plaintext

# Copyright (c) 2021 ITE Corporation. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
config ESPI_IT8XXX2
bool "ITE IT8XXX2 embedded controller ESPI driver"
default y
depends on DT_HAS_ITE_IT8XXX2_ESPI_ENABLED
depends on SOC_IT8XXX2
help
Enable ITE IT8XXX2 ESPI driver.
if ESPI_IT8XXX2
config ESPI_OOB_CHANNEL
default y
config ESPI_PERIPHERAL_8042_KBC
default y
config ESPI_PERIPHERAL_HOST_IO
default y
config ESPI_PERIPHERAL_DEBUG_PORT_80
default y
config ESPI_PERIPHERAL_EC_HOST_CMD
default y
choice IT8XXX2_H2RAM_HC_SIZE_CHOICE
prompt "H2RAM space for ec host command"
default IT8XXX2_H2RAM_HC_SIZE_256
depends on ESPI_PERIPHERAL_EC_HOST_CMD
config IT8XXX2_H2RAM_HC_SIZE_16
bool "16"
config IT8XXX2_H2RAM_HC_SIZE_32
bool "32"
config IT8XXX2_H2RAM_HC_SIZE_64
bool "64"
config IT8XXX2_H2RAM_HC_SIZE_128
bool "128"
config IT8XXX2_H2RAM_HC_SIZE_256
bool "256"
config IT8XXX2_H2RAM_HC_SIZE_512
bool "512"
config IT8XXX2_H2RAM_HC_SIZE_1024
bool "1024"
config IT8XXX2_H2RAM_HC_SIZE_2048
bool "2048"
endchoice
config ESPI_IT8XXX2_HC_H2RAM_SIZE
int
depends on ESPI_PERIPHERAL_EC_HOST_CMD
default 16 if IT8XXX2_H2RAM_HC_SIZE_16
default 32 if IT8XXX2_H2RAM_HC_SIZE_32
default 64 if IT8XXX2_H2RAM_HC_SIZE_64
default 128 if IT8XXX2_H2RAM_HC_SIZE_128
default 256 if IT8XXX2_H2RAM_HC_SIZE_256
default 512 if IT8XXX2_H2RAM_HC_SIZE_512
default 1024 if IT8XXX2_H2RAM_HC_SIZE_1024
default 2048 if IT8XXX2_H2RAM_HC_SIZE_2048
config ESPI_PERIPHERAL_ACPI_SHM_REGION
default y
choice IT8XXX2_H2RAM_ACPI_SHM_SIZE_CHOICE
prompt "H2RAM space for ACPI shared memory region"
default IT8XXX2_H2RAM_ACPI_SHM_SIZE_256
depends on ESPI_PERIPHERAL_ACPI_SHM_REGION
config IT8XXX2_H2RAM_ACPI_SHM_SIZE_16
bool "16"
config IT8XXX2_H2RAM_ACPI_SHM_SIZE_32
bool "32"
config IT8XXX2_H2RAM_ACPI_SHM_SIZE_64
bool "64"
config IT8XXX2_H2RAM_ACPI_SHM_SIZE_128
bool "128"
config IT8XXX2_H2RAM_ACPI_SHM_SIZE_256
bool "256"
config IT8XXX2_H2RAM_ACPI_SHM_SIZE_512
bool "512"
config IT8XXX2_H2RAM_ACPI_SHM_SIZE_1024
bool "1024"
config IT8XXX2_H2RAM_ACPI_SHM_SIZE_2048
bool "2048"
endchoice
config ESPI_IT8XXX2_ACPI_SHM_H2RAM_SIZE
int
depends on ESPI_PERIPHERAL_ACPI_SHM_REGION
default 16 if IT8XXX2_H2RAM_ACPI_SHM_SIZE_16
default 32 if IT8XXX2_H2RAM_ACPI_SHM_SIZE_32
default 64 if IT8XXX2_H2RAM_ACPI_SHM_SIZE_64
default 128 if IT8XXX2_H2RAM_ACPI_SHM_SIZE_128
default 256 if IT8XXX2_H2RAM_ACPI_SHM_SIZE_256
default 512 if IT8XXX2_H2RAM_ACPI_SHM_SIZE_512
default 1024 if IT8XXX2_H2RAM_ACPI_SHM_SIZE_1024
default 2048 if IT8XXX2_H2RAM_ACPI_SHM_SIZE_2048
config ESPI_PERIPHERAL_CUSTOM_OPCODE
default y
config ESPI_FLASH_CHANNEL
default y
config ESPI_IT8XXX2_PNPCFG_DEVICE_KBC_MOUSE
bool "ITE IT8XXX2 KBC mouse device"
help
With this option enabled, EC will send IRQ12 signal to host when the
KBC mouse output buffer is full.
# On IT8xxx2 series, this configuration option has limitation:
# Port 80 and 81 I/O cycles share the same interrupt source and there is no
# status bit to indicate which cycle triggered the interrupt and data registers
# of these two ports are read only. Hence EC have to read these two data
# registers at the same time in the ISR.
# It means that the Host must alwasy write 2 bytes of data to port 80 otherwise
# port 81 data will not be updated.
config ESPI_IT8XXX2_PORT_81_CYCLE
bool "EC accepts 0x81 I/O cycle from eSPI transaction"
depends on ESPI_PERIPHERAL_DEBUG_PORT_80
help
With this option enabled, EC will accept 0x81 I/O cycle from the Host.
This allows EC to accept 2 bytes of port 80 data written from the Host.
(e.g. using iotools: iotools io_write16 0x80 0x1234)
endif #ESPI_IT8XXX2