soc/intel/pantherlake: Remove soc_info.[hc] interface
[coreboot2.git] / src / soc / intel / skylake / lpc.c
blobeea86fc1a9b2fea3a439e43d207555bc7bd031bc
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #include <device/device.h>
4 #include <device/pci.h>
5 #include <pc80/isa-dma.h>
6 #include <pc80/i8259.h>
7 #include <arch/ioapic.h>
8 #include <intelblocks/itss.h>
9 #include <intelblocks/lpc_lib.h>
10 #include <soc/iomap.h>
11 #include <soc/pcr_ids.h>
12 #include <soc/intel/common/block/lpc/lpc_def.h>
14 #include "chip.h"
16 void soc_get_gen_io_dec_range(uint32_t gen_io_dec[LPC_NUM_GENERIC_IO_RANGES])
18 const config_t *config = config_of_soc();
20 gen_io_dec[0] = config->gen1_dec;
21 gen_io_dec[1] = config->gen2_dec;
22 gen_io_dec[2] = config->gen3_dec;
23 gen_io_dec[3] = config->gen4_dec;
26 void lpc_soc_init(struct device *dev)
28 const config_t *const config = config_of(dev);
30 /* Legacy initialization */
31 isa_dma_init();
32 pch_misc_init();
34 /* Enable BIOS updates outside of SMM */
35 pci_and_config8(PCH_DEV_LPC, 0xdc, ~(1 << 5));
37 /* Enable CLKRUN_EN for power gating LPC */
38 lpc_enable_pci_clk_cntl();
40 /* Set LPC Serial IRQ mode */
41 lpc_set_serirq_mode(config->serirq_mode);
43 /* Interrupt configuration */
44 pch_enable_ioapic();
45 pch_pirq_init();
46 setup_i8259();
47 i8259_configure_irq_trigger(9, 1);