1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * AMD SPI controller driver common stuff
4  *
5  * Copyright (c) 2025, Advanced Micro Devices, Inc.
6  * All Rights Reserved.
7  *
8  * Author: Krishnamoorthi M <krishnamoorthi.m@amd.com>
9  */
10 
11 #ifndef SPI_AMD_H
12 #define SPI_AMD_H
13 
14 /**
15  * enum amd_spi_versions - SPI controller versions
16  * @AMD_SPI_V1:         AMDI0061 hardware version
17  * @AMD_SPI_V2:         AMDI0062 hardware version
18  * @AMD_HID2_SPI:       AMDI0063 hardware version
19  */
20 enum amd_spi_versions {
21 	AMD_SPI_V1 = 1,
22 	AMD_SPI_V2,
23 	AMD_HID2_SPI,
24 };
25 
26 /**
27  * struct amd_spi - SPI driver instance
28  * @io_remap_addr:      Start address of the SPI controller registers
29  * @phy_dma_buf:        Physical address of DMA buffer
30  * @dma_virt_addr:      Virtual address of DMA buffer
31  * @version:            SPI controller hardware version
32  * @speed_hz:           Device frequency
33  */
34 struct amd_spi {
35 	void __iomem *io_remap_addr;
36 	dma_addr_t phy_dma_buf;
37 	void *dma_virt_addr;
38 	enum amd_spi_versions version;
39 	unsigned int speed_hz;
40 };
41 
42 int amd_spi_probe_common(struct device *dev, struct spi_controller *host);
43 
44 #endif /* SPI_AMD_H */
45