162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Driver for Microtune MT2060 "Single chip dual conversion broadband tuner" 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (c) 2006 Olivier DANET <odanet@caramail.com> 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#ifndef MT2060_H 962306a36Sopenharmony_ci#define MT2060_H 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_cistruct dvb_frontend; 1262306a36Sopenharmony_cistruct i2c_adapter; 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci/* 1562306a36Sopenharmony_ci * I2C address 1662306a36Sopenharmony_ci * 0x60, ... 1762306a36Sopenharmony_ci */ 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci/** 2062306a36Sopenharmony_ci * struct mt2060_platform_data - Platform data for the mt2060 driver 2162306a36Sopenharmony_ci * @clock_out: Clock output setting. 0 = off, 1 = CLK/4, 2 = CLK/2, 3 = CLK/1. 2262306a36Sopenharmony_ci * @if1: First IF used [MHz]. 0 defaults to 1220. 2362306a36Sopenharmony_ci * @i2c_write_max: Maximum number of bytes I2C adapter can write at once. 2462306a36Sopenharmony_ci * 0 defaults to maximum. 2562306a36Sopenharmony_ci * @dvb_frontend: DVB frontend. 2662306a36Sopenharmony_ci */ 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_cistruct mt2060_platform_data { 2962306a36Sopenharmony_ci u8 clock_out; 3062306a36Sopenharmony_ci u16 if1; 3162306a36Sopenharmony_ci unsigned int i2c_write_max:5; 3262306a36Sopenharmony_ci struct dvb_frontend *dvb_frontend; 3362306a36Sopenharmony_ci}; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci/* configuration struct for mt2060_attach() */ 3762306a36Sopenharmony_cistruct mt2060_config { 3862306a36Sopenharmony_ci u8 i2c_address; 3962306a36Sopenharmony_ci u8 clock_out; /* 0 = off, 1 = CLK/4, 2 = CLK/2, 3 = CLK/1 */ 4062306a36Sopenharmony_ci}; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci#if IS_REACHABLE(CONFIG_MEDIA_TUNER_MT2060) 4362306a36Sopenharmony_ciextern struct dvb_frontend * mt2060_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct mt2060_config *cfg, u16 if1); 4462306a36Sopenharmony_ci#else 4562306a36Sopenharmony_cistatic inline struct dvb_frontend * mt2060_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct mt2060_config *cfg, u16 if1) 4662306a36Sopenharmony_ci{ 4762306a36Sopenharmony_ci printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 4862306a36Sopenharmony_ci return NULL; 4962306a36Sopenharmony_ci} 5062306a36Sopenharmony_ci#endif // CONFIG_MEDIA_TUNER_MT2060 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci#endif 53