11a3ef038SYasunari Takiguchi /* SPDX-License-Identifier: GPL-2.0 */
21a3ef038SYasunari Takiguchi /*
31a3ef038SYasunari Takiguchi  * cxd2880.h
41a3ef038SYasunari Takiguchi  * Sony CXD2880 DVB-T2/T tuner + demodulator driver public definitions
51a3ef038SYasunari Takiguchi  *
61a3ef038SYasunari Takiguchi  * Copyright (C) 2016, 2017, 2018 Sony Semiconductor Solutions Corporation
71a3ef038SYasunari Takiguchi  */
81a3ef038SYasunari Takiguchi 
91a3ef038SYasunari Takiguchi #ifndef CXD2880_H
101a3ef038SYasunari Takiguchi #define CXD2880_H
111a3ef038SYasunari Takiguchi 
121a3ef038SYasunari Takiguchi struct cxd2880_config {
131a3ef038SYasunari Takiguchi 	struct spi_device *spi;
141a3ef038SYasunari Takiguchi 	struct mutex *spi_mutex; /* For SPI access exclusive control */
151a3ef038SYasunari Takiguchi };
161a3ef038SYasunari Takiguchi 
171a3ef038SYasunari Takiguchi #if IS_REACHABLE(CONFIG_DVB_CXD2880)
181a3ef038SYasunari Takiguchi extern struct dvb_frontend *cxd2880_attach(struct dvb_frontend *fe,
191a3ef038SYasunari Takiguchi 					struct cxd2880_config *cfg);
201a3ef038SYasunari Takiguchi #else
cxd2880_attach(struct dvb_frontend * fe,struct cxd2880_config * cfg)211a3ef038SYasunari Takiguchi static inline struct dvb_frontend *cxd2880_attach(struct dvb_frontend *fe,
221a3ef038SYasunari Takiguchi 					struct cxd2880_config *cfg)
231a3ef038SYasunari Takiguchi {
241a3ef038SYasunari Takiguchi 	pr_warn("%s: driver disabled by Kconfig\n", __func__);
251a3ef038SYasunari Takiguchi 	return NULL;
261a3ef038SYasunari Takiguchi }
271a3ef038SYasunari Takiguchi #endif /* CONFIG_DVB_CXD2880 */
281a3ef038SYasunari Takiguchi 
291a3ef038SYasunari Takiguchi #endif /* CXD2880_H */
30