/* SPDX-License-Identifier: GPL-2.0-or-later */

/*
 * This file is created based on Intel Tiger Lake Processor PCH Datasheet
 * Document number: 575857
 * Chapter number: 7
 */

#include <intelblocks/spi.h>
#include <intelblocks/fast_spi.h>
#include <soc/pci_devs.h>

#define PSF_SPI_DESTINATION_ID_H	0x23b0
#define PSF_SPI_DESTINATION_ID		0x23a8

int spi_soc_devfn_to_bus(unsigned int devfn)
{
	switch (devfn) {
	case PCH_DEVFN_SPI:
		return 0;
	case PCH_DEVFN_GSPI0:
		return 1;
	case PCH_DEVFN_GSPI1:
		return 2;
	case PCH_DEVFN_GSPI2:
		return 3;
	}
	return -1;
}

uint32_t soc_get_spi_psf_destination_id(void)
{
	if (CONFIG(SOC_INTEL_TIGERLAKE_PCH_H))
		return PSF_SPI_DESTINATION_ID_H;
	return PSF_SPI_DESTINATION_ID;
}
