/* SPDX-License-Identifier: GPL-2.0-only */

#include <console/console.h>
#include <device/device.h>
#include <drivers/intel/gma/int15.h>
#include <gpio.h>
#include <mainboard/gpio.h>
#include <soc/gpio.h>
#include <soc/ramstage.h>

static void print_board_id(void)
{
	gpio_t id_gpios[] = {
		GPP_G14,
		GPP_G13,
		GPP_G12,
	};

	printk(BIOS_INFO, "Board ID: ");

	switch (gpio_base2_value(id_gpios, ARRAY_SIZE(id_gpios))) {
	case 0:
		printk(BIOS_INFO, "ThinkCentre M900 Tiny\n");
		break;
	case 2:
	case 3:
	case 4:
		printk(BIOS_INFO, "ThinkCentre M700 Tiny\n");
		break;
	default:
		printk(BIOS_INFO, "Unknown!\n");
		break;
	}

	printk(BIOS_INFO, "Serial header %spopulated\n", !gpio_get(GPP_A22) ? "" : "un");

	printk(BIOS_INFO, "PS/2 header %spopulated\n", !gpio_get(GPP_D14) ? "" : "un");

	printk(BIOS_INFO, "USB header %spopulated\n", !gpio_get(GPP_C19) ? "" : "un");

	printk(BIOS_INFO, "DisplayPort header %spopulated\n", !gpio_get(GPP_B15) ? "" : "un");

	printk(BIOS_INFO, "PCIe / SATA header %spopulated\n", !gpio_get(GPP_B21) ? "" : "un");
}

static void mainboard_enable(struct device *dev)
{
	mainboard_configure_gpios();
	print_board_id();
}

struct chip_operations mainboard_ops = {
	.enable_dev = mainboard_enable,
};
