blob: 21a0f44963b3097464c28953ed9117d8a2280d08 [file] [log] [blame]
Patrick Georgiac959032020-05-05 22:49:26 +02001/* SPDX-License-Identifier: GPL-2.0-or-later */
Lance Zhaoa7ff9c52015-11-12 18:19:41 -08002
Lance Zhaoa7ff9c52015-11-12 18:19:41 -08003#include <device/pci.h>
Ravi Sarawadiefa606b2017-08-04 16:26:09 -07004#include <intelblocks/lpc_lib.h>
5#include <intelblocks/rtc.h>
Ravi Sarawadiefa606b2017-08-04 16:26:09 -07006#include <soc/pcr_ids.h>
Jagadish Krishnamoorthyb6b233a2016-05-17 18:06:49 -07007#include <soc/pm.h>
Sean Rhodes7a82a802022-06-02 11:28:43 +01008#include <soc/intel/common/block/lpc/lpc_def.h>
Alexandru Gagniuc3aa34a82016-04-04 10:47:49 -07009#include "chip.h"
10
Sean Rhodes7a82a802022-06-02 11:28:43 +010011void soc_get_gen_io_dec_range(uint32_t gen_io_dec[LPC_NUM_GENERIC_IO_RANGES])
12{
13 const config_t *config = config_of_soc();
14
15 gen_io_dec[0] = config->gen1_dec;
16 gen_io_dec[1] = config->gen2_dec;
17 gen_io_dec[2] = config->gen3_dec;
18 gen_io_dec[3] = config->gen4_dec;
19}
20
Subrata Banik88852062018-01-10 10:51:50 +053021void lpc_soc_init(struct device *dev)
Alexandru Gagniuc3aa34a82016-04-04 10:47:49 -070022{
Ravi Sarawadiefa606b2017-08-04 16:26:09 -070023 const struct soc_intel_apollolake_config *cfg;
Kyösti Mälkki8950cfb2019-07-13 22:16:25 +030024 cfg = config_of(dev);
Alexandru Gagniuc3aa34a82016-04-04 10:47:49 -070025
Ravi Sarawadiefa606b2017-08-04 16:26:09 -070026 /* Set LPC Serial IRQ mode */
27 lpc_set_serirq_mode(cfg->serirq_mode);
Jagadish Krishnamoorthyb6b233a2016-05-17 18:06:49 -070028
29 /* Initialize RTC */
30 rtc_init();
Alexandru Gagniuc3aa34a82016-04-04 10:47:49 -070031}