1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #include <device/device.h> 4 #include <device/pci.h> 5 #include <pc80/isa-dma.h> 6 #include <pc80/i8259.h> 7 #include <device/pci_ops.h> 8 #include <arch/ioapic.h> 9 #include <intelblocks/itss.h> 10 #include <intelblocks/lpc_lib.h> 11 #include <soc/espi.h> 12 #include <soc/iomap.h> 13 #include <soc/irq.h> 14 #include <soc/pci_devs.h> 15 #include <soc/pcr_ids.h> 16 #include <soc/soc_chip.h> 17 soc_get_gen_io_dec_range(uint32_t gen_io_dec[LPC_NUM_GENERIC_IO_RANGES])18void soc_get_gen_io_dec_range(uint32_t gen_io_dec[LPC_NUM_GENERIC_IO_RANGES]) 19 { 20 const config_t *config = config_of_soc(); 21 22 gen_io_dec[0] = config->gen1_dec; 23 gen_io_dec[1] = config->gen2_dec; 24 gen_io_dec[2] = config->gen3_dec; 25 gen_io_dec[3] = config->gen4_dec; 26 } 27 28 #if ENV_RAMSTAGE lpc_soc_init(struct device * dev)29void lpc_soc_init(struct device *dev) 30 { 31 /* Legacy initialization */ 32 isa_dma_init(); 33 pch_misc_init(); 34 35 /* Enable CLKRUN_EN for power gating ESPI */ 36 lpc_enable_pci_clk_cntl(); 37 38 /* Set ESPI Serial IRQ mode */ 39 if (CONFIG(SERIRQ_CONTINUOUS_MODE)) 40 lpc_set_serirq_mode(SERIRQ_CONTINUOUS); 41 else 42 lpc_set_serirq_mode(SERIRQ_QUIET); 43 44 /* Interrupt configuration */ 45 pch_enable_ioapic(); 46 pch_pirq_init(); 47 setup_i8259(); 48 i8259_configure_irq_trigger(9, 1); 49 } 50 51 #endif 52