soc/intel/cannonlake: Set correct serirq mode based on SERIRQ_CONTINUOUS_MODE

Tested on system76 galp3-c

Signed-off-by: Jeremy Soller <jeremy@system76.com>
Change-Id: I9ad4f5a6c7391fc6e813ec1306c708f449a69f59
This commit is contained in:
Jeremy Soller
2019-02-20 16:39:55 -07:00
parent 00b535505d
commit 67a5b962d0
3 changed files with 11 additions and 1 deletions

View File

@@ -337,6 +337,11 @@ struct soc_intel_cannonlake_config {
*/
uint8_t SerialIoDevMode[PchSerialIoIndexMAX];
enum {
SERIAL_IRQ_QUIET_MODE = 0,
SERIAL_IRQ_CONTINUOUS_MODE = 1,
} SerialIrqConfigSirqMode;
/* GPIO SD card detect pin */
unsigned int sdcard_cd_gpio;

View File

@@ -361,6 +361,9 @@ void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd)
/* Unlock all GPIO pads */
tconfig->PchUnlockGpioPads = config->PchUnlockGpioPads;
/* Set correct Sirq mode based on config */
params->PchSirqMode = config->SerialIrqConfigSirqMode;
}
/* Mainboard GPIO Configuration */

View File

@@ -219,6 +219,8 @@ static void clock_gate_8254(const struct device *dev)
void lpc_soc_init(struct device *dev)
{
const config_t *config = dev->chip_info;
/* Legacy initialization */
isa_dma_init();
pch_misc_init();
@@ -227,7 +229,7 @@ void lpc_soc_init(struct device *dev)
lpc_enable_pci_clk_cntl();
/* Set LPC Serial IRQ mode */
if (CONFIG(SERIRQ_CONTINUOUS_MODE))
if (config->SerialIrqConfigSirqMode)
lpc_set_serirq_mode(SERIRQ_CONTINUOUS);
else
lpc_set_serirq_mode(SERIRQ_QUIET);