xref: /linux/drivers/media/dvb-frontends/cxd2880/cxd2880.h (revision c13aca79ff3c4af5fd31a5b2743a90eba6e36a26)
1*1a3ef038SYasunari Takiguchi /* SPDX-License-Identifier: GPL-2.0 */
2*1a3ef038SYasunari Takiguchi /*
3*1a3ef038SYasunari Takiguchi  * cxd2880.h
4*1a3ef038SYasunari Takiguchi  * Sony CXD2880 DVB-T2/T tuner + demodulator driver public definitions
5*1a3ef038SYasunari Takiguchi  *
6*1a3ef038SYasunari Takiguchi  * Copyright (C) 2016, 2017, 2018 Sony Semiconductor Solutions Corporation
7*1a3ef038SYasunari Takiguchi  */
8*1a3ef038SYasunari Takiguchi 
9*1a3ef038SYasunari Takiguchi #ifndef CXD2880_H
10*1a3ef038SYasunari Takiguchi #define CXD2880_H
11*1a3ef038SYasunari Takiguchi 
12*1a3ef038SYasunari Takiguchi struct cxd2880_config {
13*1a3ef038SYasunari Takiguchi 	struct spi_device *spi;
14*1a3ef038SYasunari Takiguchi 	struct mutex *spi_mutex; /* For SPI access exclusive control */
15*1a3ef038SYasunari Takiguchi };
16*1a3ef038SYasunari Takiguchi 
17*1a3ef038SYasunari Takiguchi #if IS_REACHABLE(CONFIG_DVB_CXD2880)
18*1a3ef038SYasunari Takiguchi extern struct dvb_frontend *cxd2880_attach(struct dvb_frontend *fe,
19*1a3ef038SYasunari Takiguchi 					struct cxd2880_config *cfg);
20*1a3ef038SYasunari Takiguchi #else
cxd2880_attach(struct dvb_frontend * fe,struct cxd2880_config * cfg)21*1a3ef038SYasunari Takiguchi static inline struct dvb_frontend *cxd2880_attach(struct dvb_frontend *fe,
22*1a3ef038SYasunari Takiguchi 					struct cxd2880_config *cfg)
23*1a3ef038SYasunari Takiguchi {
24*1a3ef038SYasunari Takiguchi 	pr_warn("%s: driver disabled by Kconfig\n", __func__);
25*1a3ef038SYasunari Takiguchi 	return NULL;
26*1a3ef038SYasunari Takiguchi }
27*1a3ef038SYasunari Takiguchi #endif /* CONFIG_DVB_CXD2880 */
28*1a3ef038SYasunari Takiguchi 
29*1a3ef038SYasunari Takiguchi #endif /* CXD2880_H */
30