summaryrefslogtreecommitdiff
path: root/drivers/spi/spi-amd.h
blob: 5f39ce7b55879776df9ffcbfaf4bc64724c6e2da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * AMD SPI controller driver common stuff
 *
 * Copyright (c) 2025, Advanced Micro Devices, Inc.
 * All Rights Reserved.
 *
 * Author: Krishnamoorthi M <krishnamoorthi.m@amd.com>
 */

#ifndef SPI_AMD_H
#define SPI_AMD_H

/**
 * enum amd_spi_versions - SPI controller versions
 * @AMD_SPI_V1:         AMDI0061 hardware version
 * @AMD_SPI_V2:         AMDI0062 hardware version
 * @AMD_HID2_SPI:       AMDI0063 hardware version
 */
enum amd_spi_versions {
	AMD_SPI_V1 = 1,
	AMD_SPI_V2,
	AMD_HID2_SPI,
};

/**
 * struct amd_spi - SPI driver instance
 * @io_remap_addr:      Start address of the SPI controller registers
 * @phy_dma_buf:        Physical address of DMA buffer
 * @dma_virt_addr:      Virtual address of DMA buffer
 * @version:            SPI controller hardware version
 * @speed_hz:           Device frequency
 */
struct amd_spi {
	void __iomem *io_remap_addr;
	dma_addr_t phy_dma_buf;
	void *dma_virt_addr;
	enum amd_spi_versions version;
	unsigned int speed_hz;
};

int amd_spi_probe_common(struct device *dev, struct spi_controller *host);

#endif /* SPI_AMD_H */