xref: /openbmc/linux/drivers/media/dvb-frontends/cxd2880/cxd2880_spi.h (revision c13aca79ff3c4af5fd31a5b2743a90eba6e36a26)
1*4e67e6cbSYasunari Takiguchi /* SPDX-License-Identifier: GPL-2.0 */
2*4e67e6cbSYasunari Takiguchi /*
3*4e67e6cbSYasunari Takiguchi  * cxd2880_spi.h
4*4e67e6cbSYasunari Takiguchi  * Sony CXD2880 DVB-T2/T tuner + demodulator driver
5*4e67e6cbSYasunari Takiguchi  * SPI access definitions
6*4e67e6cbSYasunari Takiguchi  *
7*4e67e6cbSYasunari Takiguchi  * Copyright (C) 2016, 2017, 2018 Sony Semiconductor Solutions Corporation
8*4e67e6cbSYasunari Takiguchi  */
9*4e67e6cbSYasunari Takiguchi 
10*4e67e6cbSYasunari Takiguchi #ifndef CXD2880_SPI_H
11*4e67e6cbSYasunari Takiguchi #define CXD2880_SPI_H
12*4e67e6cbSYasunari Takiguchi 
13*4e67e6cbSYasunari Takiguchi #include "cxd2880_common.h"
14*4e67e6cbSYasunari Takiguchi 
15*4e67e6cbSYasunari Takiguchi enum cxd2880_spi_mode {
16*4e67e6cbSYasunari Takiguchi 	CXD2880_SPI_MODE_0,
17*4e67e6cbSYasunari Takiguchi 	CXD2880_SPI_MODE_1,
18*4e67e6cbSYasunari Takiguchi 	CXD2880_SPI_MODE_2,
19*4e67e6cbSYasunari Takiguchi 	CXD2880_SPI_MODE_3
20*4e67e6cbSYasunari Takiguchi };
21*4e67e6cbSYasunari Takiguchi 
22*4e67e6cbSYasunari Takiguchi struct cxd2880_spi {
23*4e67e6cbSYasunari Takiguchi 	int (*read)(struct cxd2880_spi *spi, u8 *data,
24*4e67e6cbSYasunari Takiguchi 		    u32 size);
25*4e67e6cbSYasunari Takiguchi 	int (*write)(struct cxd2880_spi *spi, const u8 *data,
26*4e67e6cbSYasunari Takiguchi 		     u32 size);
27*4e67e6cbSYasunari Takiguchi 	int (*write_read)(struct cxd2880_spi *spi,
28*4e67e6cbSYasunari Takiguchi 			  const u8 *tx_data, u32 tx_size,
29*4e67e6cbSYasunari Takiguchi 			  u8 *rx_data, u32 rx_size);
30*4e67e6cbSYasunari Takiguchi 	u32 flags;
31*4e67e6cbSYasunari Takiguchi 	void *user;
32*4e67e6cbSYasunari Takiguchi };
33*4e67e6cbSYasunari Takiguchi 
34*4e67e6cbSYasunari Takiguchi #endif
35