driver: espi: Enable espi uart port sirq based on uart mapping.

Espi has three uart port from 0 to 2 and uart sirq need to enabled for
the port which is active in the hardware. An active uart sirq shoudl be
enabled based on uart mapping configuration.

Signed-off-by: Venkataramana Kotakonda <venkataramana.kotakonda@intel.com>
This commit is contained in:
Venkataramana Kotakonda 2020-06-01 11:14:30 -04:00 committed by Carles Cufí
commit 69aa4eeee6

View file

@ -40,6 +40,14 @@
#define ESPI_XEC_PORT80_BAR_ADDRESS 0x00800000
#define ESPI_XEC_PORT81_BAR_ADDRESS 0x00810000
/* Espi peripheral has 3 uart ports */
#define ESPI_PERIPHERAL_UART_PORT0 0
#define ESPI_PERIPHERAL_UART_PORT1 1
#define ESPI_PERIPHERAL_UART_PORT2 2
#define UART_DEFAULT_IRQ_POS 2u
#define UART_DEFAULT_IRQ BIT(UART_DEFAULT_IRQ_POS)
#define MAX_OOB_BUFFER_SIZE 128ul
#define MAX_SLAVE_BUFFER_SIZE 128ul
@ -795,7 +803,17 @@ static void config_sub_devices(struct device *dev)
static void configure_sirq(void)
{
#ifdef CONFIG_ESPI_PERIPHERAL_UART
ESPI_SIRQ_REGS->UART_1_SIRQ = 0x04;
switch (CONFIG_ESPI_PERIPHERAL_UART_SOC_MAPPING) {
case ESPI_PERIPHERAL_UART_PORT0:
ESPI_SIRQ_REGS->UART_0_SIRQ = UART_DEFAULT_IRQ;
break;
case ESPI_PERIPHERAL_UART_PORT1:
ESPI_SIRQ_REGS->UART_1_SIRQ = UART_DEFAULT_IRQ;
break;
case ESPI_PERIPHERAL_UART_PORT2:
ESPI_SIRQ_REGS->UART_2_SIRQ = UART_DEFAULT_IRQ;
break;
}
#endif
#ifdef CONFIG_ESPI_PERIPHERAL_8042_KBC
ESPI_SIRQ_REGS->KBC_SIRQ_0 = 0x01;