18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Panasonic MN88472 DVB-T/T2/C demodulator driver
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (C) 2013 Antti Palosaari <crope@iki.fi>
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#ifndef MN88472_H
98c2ecf20Sopenharmony_ci#define MN88472_H
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#include <linux/dvb/frontend.h>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci/* Define old names for backward compatibility */
148c2ecf20Sopenharmony_ci#define VARIABLE_TS_CLOCK   MN88472_TS_CLK_VARIABLE
158c2ecf20Sopenharmony_ci#define FIXED_TS_CLOCK      MN88472_TS_CLK_FIXED
168c2ecf20Sopenharmony_ci#define SERIAL_TS_MODE      MN88472_TS_MODE_SERIAL
178c2ecf20Sopenharmony_ci#define PARALLEL_TS_MODE    MN88472_TS_MODE_PARALLEL
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci/**
208c2ecf20Sopenharmony_ci * struct mn88472_config - Platform data for the mn88472 driver
218c2ecf20Sopenharmony_ci * @xtal: Clock frequency.
228c2ecf20Sopenharmony_ci * @ts_mode: TS mode.
238c2ecf20Sopenharmony_ci * @ts_clock: TS clock config.
248c2ecf20Sopenharmony_ci * @i2c_wr_max: Max number of bytes driver writes to I2C at once.
258c2ecf20Sopenharmony_ci * @fe: pointer to a frontend pointer
268c2ecf20Sopenharmony_ci * @get_dvb_frontend: Get DVB frontend callback.
278c2ecf20Sopenharmony_ci */
288c2ecf20Sopenharmony_cistruct mn88472_config {
298c2ecf20Sopenharmony_ci	unsigned int xtal;
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci#define MN88472_TS_MODE_SERIAL      0
328c2ecf20Sopenharmony_ci#define MN88472_TS_MODE_PARALLEL    1
338c2ecf20Sopenharmony_ci	int ts_mode;
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci#define MN88472_TS_CLK_FIXED        0
368c2ecf20Sopenharmony_ci#define MN88472_TS_CLK_VARIABLE     1
378c2ecf20Sopenharmony_ci	int ts_clock;
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci	u16 i2c_wr_max;
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	/* Everything after that is returned by the driver. */
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci	/*
448c2ecf20Sopenharmony_ci	 * DVB frontend.
458c2ecf20Sopenharmony_ci	 */
468c2ecf20Sopenharmony_ci	struct dvb_frontend **fe;
478c2ecf20Sopenharmony_ci	struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *);
488c2ecf20Sopenharmony_ci};
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci#endif
51