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