xref: /OK3568_Linux_fs/kernel/drivers/media/dvb-frontends/cxd2880/cxd2880_dvbt.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * cxd2880_dvbt.h
4*4882a593Smuzhiyun  * Sony CXD2880 DVB-T2/T tuner + demodulator driver
5*4882a593Smuzhiyun  * DVB-T related definitions
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * Copyright (C) 2016, 2017, 2018 Sony Semiconductor Solutions Corporation
8*4882a593Smuzhiyun  */
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #ifndef CXD2880_DVBT_H
11*4882a593Smuzhiyun #define CXD2880_DVBT_H
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun #include "cxd2880_common.h"
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun enum cxd2880_dvbt_constellation {
16*4882a593Smuzhiyun 	CXD2880_DVBT_CONSTELLATION_QPSK,
17*4882a593Smuzhiyun 	CXD2880_DVBT_CONSTELLATION_16QAM,
18*4882a593Smuzhiyun 	CXD2880_DVBT_CONSTELLATION_64QAM,
19*4882a593Smuzhiyun 	CXD2880_DVBT_CONSTELLATION_RESERVED_3
20*4882a593Smuzhiyun };
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun enum cxd2880_dvbt_hierarchy {
23*4882a593Smuzhiyun 	CXD2880_DVBT_HIERARCHY_NON,
24*4882a593Smuzhiyun 	CXD2880_DVBT_HIERARCHY_1,
25*4882a593Smuzhiyun 	CXD2880_DVBT_HIERARCHY_2,
26*4882a593Smuzhiyun 	CXD2880_DVBT_HIERARCHY_4
27*4882a593Smuzhiyun };
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun enum cxd2880_dvbt_coderate {
30*4882a593Smuzhiyun 	CXD2880_DVBT_CODERATE_1_2,
31*4882a593Smuzhiyun 	CXD2880_DVBT_CODERATE_2_3,
32*4882a593Smuzhiyun 	CXD2880_DVBT_CODERATE_3_4,
33*4882a593Smuzhiyun 	CXD2880_DVBT_CODERATE_5_6,
34*4882a593Smuzhiyun 	CXD2880_DVBT_CODERATE_7_8,
35*4882a593Smuzhiyun 	CXD2880_DVBT_CODERATE_RESERVED_5,
36*4882a593Smuzhiyun 	CXD2880_DVBT_CODERATE_RESERVED_6,
37*4882a593Smuzhiyun 	CXD2880_DVBT_CODERATE_RESERVED_7
38*4882a593Smuzhiyun };
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun enum cxd2880_dvbt_guard {
41*4882a593Smuzhiyun 	CXD2880_DVBT_GUARD_1_32,
42*4882a593Smuzhiyun 	CXD2880_DVBT_GUARD_1_16,
43*4882a593Smuzhiyun 	CXD2880_DVBT_GUARD_1_8,
44*4882a593Smuzhiyun 	CXD2880_DVBT_GUARD_1_4
45*4882a593Smuzhiyun };
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun enum cxd2880_dvbt_mode {
48*4882a593Smuzhiyun 	CXD2880_DVBT_MODE_2K,
49*4882a593Smuzhiyun 	CXD2880_DVBT_MODE_8K,
50*4882a593Smuzhiyun 	CXD2880_DVBT_MODE_RESERVED_2,
51*4882a593Smuzhiyun 	CXD2880_DVBT_MODE_RESERVED_3
52*4882a593Smuzhiyun };
53*4882a593Smuzhiyun 
54*4882a593Smuzhiyun enum cxd2880_dvbt_profile {
55*4882a593Smuzhiyun 	CXD2880_DVBT_PROFILE_HP = 0,
56*4882a593Smuzhiyun 	CXD2880_DVBT_PROFILE_LP
57*4882a593Smuzhiyun };
58*4882a593Smuzhiyun 
59*4882a593Smuzhiyun struct cxd2880_dvbt_tpsinfo {
60*4882a593Smuzhiyun 	enum cxd2880_dvbt_constellation constellation;
61*4882a593Smuzhiyun 	enum cxd2880_dvbt_hierarchy hierarchy;
62*4882a593Smuzhiyun 	enum cxd2880_dvbt_coderate rate_hp;
63*4882a593Smuzhiyun 	enum cxd2880_dvbt_coderate rate_lp;
64*4882a593Smuzhiyun 	enum cxd2880_dvbt_guard guard;
65*4882a593Smuzhiyun 	enum cxd2880_dvbt_mode mode;
66*4882a593Smuzhiyun 	u8 fnum;
67*4882a593Smuzhiyun 	u8 length_indicator;
68*4882a593Smuzhiyun 	u16 cell_id;
69*4882a593Smuzhiyun 	u8 cell_id_ok;
70*4882a593Smuzhiyun 	u8 reserved_even;
71*4882a593Smuzhiyun 	u8 reserved_odd;
72*4882a593Smuzhiyun };
73*4882a593Smuzhiyun 
74*4882a593Smuzhiyun #endif
75