162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * altera-ci.c
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci *  CI driver in conjunction with NetUp Dual DVB-T/C RF CI card
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Copyright (C) 2010 NetUP Inc.
862306a36Sopenharmony_ci * Copyright (C) 2010 Igor M. Liplianin <liplianin@netup.ru>
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci#ifndef __ALTERA_CI_H
1162306a36Sopenharmony_ci#define __ALTERA_CI_H
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#define ALT_DATA	0x000000ff
1462306a36Sopenharmony_ci#define ALT_TDI		0x00008000
1562306a36Sopenharmony_ci#define ALT_TDO		0x00004000
1662306a36Sopenharmony_ci#define ALT_TCK		0x00002000
1762306a36Sopenharmony_ci#define ALT_RDY		0x00001000
1862306a36Sopenharmony_ci#define ALT_RD		0x00000800
1962306a36Sopenharmony_ci#define ALT_WR		0x00000400
2062306a36Sopenharmony_ci#define ALT_AD_RG	0x00000200
2162306a36Sopenharmony_ci#define ALT_CS		0x00000100
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_cistruct altera_ci_config {
2462306a36Sopenharmony_ci	void *dev;/* main dev, for example cx23885_dev */
2562306a36Sopenharmony_ci	void *adapter;/* for CI to connect to */
2662306a36Sopenharmony_ci	struct dvb_demux *demux;/* for hardware PID filter to connect to */
2762306a36Sopenharmony_ci	int (*fpga_rw) (void *dev, int ad_rg, int val, int rw);
2862306a36Sopenharmony_ci};
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci#if IS_REACHABLE(CONFIG_MEDIA_ALTERA_CI)
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciextern int altera_ci_init(struct altera_ci_config *config, int ci_nr);
3362306a36Sopenharmony_ciextern void altera_ci_release(void *dev, int ci_nr);
3462306a36Sopenharmony_ciextern int altera_ci_irq(void *dev);
3562306a36Sopenharmony_ciextern int altera_ci_tuner_reset(void *dev, int ci_nr);
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci#else
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_cistatic inline int altera_ci_init(struct altera_ci_config *config, int ci_nr)
4062306a36Sopenharmony_ci{
4162306a36Sopenharmony_ci	pr_warn("%s: driver disabled by Kconfig\n", __func__);
4262306a36Sopenharmony_ci	return 0;
4362306a36Sopenharmony_ci}
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_cistatic inline void altera_ci_release(void *dev, int ci_nr)
4662306a36Sopenharmony_ci{
4762306a36Sopenharmony_ci	pr_warn("%s: driver disabled by Kconfig\n", __func__);
4862306a36Sopenharmony_ci}
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_cistatic inline int altera_ci_irq(void *dev)
5162306a36Sopenharmony_ci{
5262306a36Sopenharmony_ci	pr_warn("%s: driver disabled by Kconfig\n", __func__);
5362306a36Sopenharmony_ci	return 0;
5462306a36Sopenharmony_ci}
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_cistatic inline int altera_ci_tuner_reset(void *dev, int ci_nr)
5762306a36Sopenharmony_ci{
5862306a36Sopenharmony_ci	pr_warn("%s: driver disabled by Kconfig\n", __func__);
5962306a36Sopenharmony_ci	return 0;
6062306a36Sopenharmony_ci}
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci#endif
6362306a36Sopenharmony_ci#if 0
6462306a36Sopenharmony_cistatic inline int altera_hw_filt_init(struct altera_ci_config *config,
6562306a36Sopenharmony_ci							int hw_filt_nr)
6662306a36Sopenharmony_ci{
6762306a36Sopenharmony_ci	pr_warn("%s: driver disabled by Kconfig\n", __func__);
6862306a36Sopenharmony_ci	return 0;
6962306a36Sopenharmony_ci}
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_cistatic inline void altera_hw_filt_release(void *dev, int filt_nr)
7262306a36Sopenharmony_ci{
7362306a36Sopenharmony_ci	pr_warn("%s: driver disabled by Kconfig\n", __func__);
7462306a36Sopenharmony_ci}
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_cistatic inline int altera_pid_feed_control(void *dev, int filt_nr,
7762306a36Sopenharmony_ci		struct dvb_demux_feed *dvbdmxfeed, int onoff)
7862306a36Sopenharmony_ci{
7962306a36Sopenharmony_ci	pr_warn("%s: driver disabled by Kconfig\n", __func__);
8062306a36Sopenharmony_ci	return 0;
8162306a36Sopenharmony_ci}
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci#endif /* CONFIG_MEDIA_ALTERA_CI */
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci#endif /* __ALTERA_CI_H */
86