Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * Afatech AF9013 demodulator driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  * Copyright (C) 2007 Antti Palosaari <crope@iki.fi>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  * Copyright (C) 2011 Antti Palosaari <crope@iki.fi>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)  * Thanks to Afatech who kindly provided information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #ifndef AF9013_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define AF9013_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include <linux/dvb/frontend.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)  * I2C address: 0x1c, 0x1d
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)  * struct af9013_platform_data - Platform data for the af9013 driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)  * @clk: Clock frequency.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)  * @tuner: Used tuner model.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)  * @if_frequency: IF frequency.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)  * @ts_mode: TS mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)  * @ts_output_pin: TS output pin.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)  * @spec_inv: Input spectrum inverted.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)  * @api_version: Firmware API version.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)  * @gpio: GPIOs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)  * @get_dvb_frontend: Get DVB frontend callback.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)  * @get_i2c_adapter: Get I2C adapter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)  * @pid_filter_ctrl: Control PID filter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)  * @pid_filter: Set PID to PID filter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) struct af9013_platform_data {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	/*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	 * 20480000, 25000000, 28000000, 28800000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	u32 clk;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) #define AF9013_TUNER_MXL5003D      3 /* MaxLinear */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #define AF9013_TUNER_MXL5005D     13 /* MaxLinear */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) #define AF9013_TUNER_MXL5005R     30 /* MaxLinear */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #define AF9013_TUNER_ENV77H11D5  129 /* Panasonic */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) #define AF9013_TUNER_MT2060      130 /* Microtune */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #define AF9013_TUNER_MC44S803    133 /* Freescale */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #define AF9013_TUNER_QT1010      134 /* Quantek */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #define AF9013_TUNER_UNKNOWN     140 /* for can tuners ? */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) #define AF9013_TUNER_MT2060_2    147 /* Microtune */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #define AF9013_TUNER_TDA18271    156 /* NXP */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #define AF9013_TUNER_QT1010A     162 /* Quantek */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #define AF9013_TUNER_MXL5007T    177 /* MaxLinear */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) #define AF9013_TUNER_TDA18218    179 /* NXP */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 	u8 tuner;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 	u32 if_frequency;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #define AF9013_TS_MODE_USB       0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) #define AF9013_TS_MODE_PARALLEL  1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) #define AF9013_TS_MODE_SERIAL    2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 	u8 ts_mode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 	u8 ts_output_pin;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 	bool spec_inv;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 	u8 api_version[4];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) #define AF9013_GPIO_ON (1 << 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) #define AF9013_GPIO_EN (1 << 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) #define AF9013_GPIO_O  (1 << 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) #define AF9013_GPIO_I  (1 << 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) #define AF9013_GPIO_LO (AF9013_GPIO_ON|AF9013_GPIO_EN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) #define AF9013_GPIO_HI (AF9013_GPIO_ON|AF9013_GPIO_EN|AF9013_GPIO_O)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) #define AF9013_GPIO_TUNER_ON  (AF9013_GPIO_ON|AF9013_GPIO_EN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) #define AF9013_GPIO_TUNER_OFF (AF9013_GPIO_ON|AF9013_GPIO_EN|AF9013_GPIO_O)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 	u8 gpio[4];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) 	struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) 	struct i2c_adapter* (*get_i2c_adapter)(struct i2c_client *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) 	int (*pid_filter_ctrl)(struct dvb_frontend *, int);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) 	int (*pid_filter)(struct dvb_frontend *, u8, u16, int);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)  * AF9013/5 GPIOs (mostly guessed)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)  * demod#1-gpio#0 - set demod#2 i2c-addr for dual devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)  * demod#1-gpio#1 - xtal setting (?)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)  * demod#1-gpio#3 - tuner#1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)  * demod#2-gpio#0 - tuner#2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)  * demod#2-gpio#1 - xtal setting (?)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) #endif /* AF9013_H */