blob: 90ecdda02e5ba165be14de9ab22cb9d4ab15bce4 [file] [log] [blame]
Mathew King2e2fc7a2020-12-08 11:33:58 -07001/* SPDX-License-Identifier: GPL-2.0-or-later */
2
Mathew King10dd7752021-01-26 16:08:14 -07003#include <baseboard/variants.h>
Mathew King2e2fc7a2020-12-08 11:33:58 -07004#include <device/device.h>
Mathew Kingad830232021-02-23 13:08:15 -07005#include <variant/ec.h>
Mathew King5d478872021-02-16 14:05:15 -07006#include <vendorcode/google/chromeos/chromeos.h>
Mathew King2e2fc7a2020-12-08 11:33:58 -07007
Mathew King10dd7752021-01-26 16:08:14 -07008static void mainboard_configure_gpios(void)
9{
10 size_t base_num_gpios, override_num_gpios;
11 const struct soc_amd_gpio *base_gpios, *override_gpios;
12
13 base_gpios = variant_base_gpio_table(&base_num_gpios);
14 override_gpios = variant_override_gpio_table(&override_num_gpios);
15
16 gpio_configure_pads_with_override(base_gpios, base_num_gpios, override_gpios,
17 override_num_gpios);
18}
19
Mathew King2e2fc7a2020-12-08 11:33:58 -070020static void mainboard_init(void *chip_info)
21{
Mathew King10dd7752021-01-26 16:08:14 -070022 mainboard_configure_gpios();
Mathew Kingad830232021-02-23 13:08:15 -070023 mainboard_ec_init();
Mathew King2e2fc7a2020-12-08 11:33:58 -070024}
25
26static void mainboard_enable(struct device *dev)
27{
Mathew King5d478872021-02-16 14:05:15 -070028 printk(BIOS_INFO, "Mainboard " CONFIG_MAINBOARD_PART_NUMBER " Enable.\n");
29
30 dev->ops->acpi_inject_dsdt = chromeos_dsdt_generator;
Mathew King2e2fc7a2020-12-08 11:33:58 -070031}
32
33struct chip_operations mainboard_ops = {
34 .init = mainboard_init,
35 .enable_dev = mainboard_enable,
36};