blob: e889b1a79a88d0fd62a0cd57547ff864d1e06726 [file] [log] [blame]
Venkateshwarlu Domakonda1c2c4352014-05-26 14:35:12 +05301/*
Venkateshwarlu Domakondac09c3d82015-07-24 12:58:48 +05302 * Copyright (c) 2014, 2015, The Linux Foundation. All rights reserved.
Venkateshwarlu Domakonda1c2c4352014-05-26 14:35:12 +05303
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 * * Redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright
9 * notice, this list of conditions and the following disclaimer in the
10 * documentation and/or other materials provided with the distribution.
11 * * Neither the name of The Linux Foundation nor
12 * the names of its contributors may be used to endorse or promote
13 * products derived from this software without specific prior written
14 * permission.
15
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#ifndef __FM_CONST_H__
30#define __FM_CONST_H__
31
32
33typedef unsigned int UINT;
34typedef unsigned long ULINT;
35
36//return related
37const int IOCTL_SUCC = 0;
38const int FM_SUCCESS = 0;
39const int FM_FAILURE = -1;
40const int PROP_SET_SUCC = 0;
41
42#define TUNE_MULT 16
43const UINT CAL_DATA_SIZE = 23;
44#define STD_BUF_SIZE 256
45
46const char *const FM_PERFORMANCE_PARAMS = "/etc/fm/fm_srch_af_th.conf";
Konsta4ded22e2015-10-20 17:55:00 +030047#ifdef FM_LEGACY_PATCHLOADER
48const char *const CALIB_DATA_NAME = "/data/app/Riva_fm_cal";
49#else
Venkateshwarlu Domakondac09c3d82015-07-24 12:58:48 +053050const char *const CALIB_DATA_NAME = "/data/misc/fm/Riva_fm_cal";
Konsta4ded22e2015-10-20 17:55:00 +030051#endif
Venkateshwarlu Domakonda1c2c4352014-05-26 14:35:12 +053052
53#define V4L2_CTRL_CLASS_USER 0x00980000
54#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
Adrian DC4c0c0af2018-08-11 14:05:25 +020055#ifndef V4L2_CID_AUDIO_MUTE
Venkateshwarlu Domakonda1c2c4352014-05-26 14:35:12 +053056#define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE + 9)
Adrian DC4c0c0af2018-08-11 14:05:25 +020057#endif
Venkateshwarlu Domakonda1c2c4352014-05-26 14:35:12 +053058const UINT SEARCH_DWELL_TIME = 2;
59const UINT SEEK_DWELL_TIME = 0;
60
61enum FM_AUDIO_PATH
62{
63 AUDIO_DIGITAL_PATH,
64 AUDIO_ANALOG_PATH,
65};
66
67enum FM_DEVICE
68{
69 FM_DEV_NONE,
70 FM_RX,
71 FM_TX,
72};
73
74enum BUFF_INDEXES
75{
76 STATION_LIST_IND,
77 EVENT_IND,
78 RT_IND,
79 PS_IND,
80 AF_LIST_IND = PS_IND + 2,
81 RT_PLUS_IND = 11,
82 ERT_IND,
83};
84
85enum SEARCH_MODE
86{
87 SEEK_MODE,
88 SCAN_MODE,
89};
90
91enum SEARCH_DIR
92{
93 SEARCH_DOWN,
94 SEARCH_UP,
95};
96
97enum AUDIO_MODE
98{
99 MONO,
100 STEREO,
101};
102
103//V4L2 CONTROLS FOR FM DRIVER
104enum FM_V4L2_PRV_CONTROLS
105{
106 V4L2_CID_PRV_BASE = 0x8000000,
107 V4L2_CID_PRV_SRCHMODE,
108 V4L2_CID_PRV_SCANDWELL,
109 V4L2_CID_PRV_SRCHON,
110 V4L2_CID_PRV_STATE,
111 V4L2_CID_PRV_TRANSMIT_MODE,
112 V4L2_CID_PRV_RDSGROUP_MASK,
113 V4L2_CID_PRV_REGION,
114 V4L2_CID_PRV_SIGNAL_TH,
115 V4L2_CID_PRV_SRCH_PTY,
116 V4L2_CID_PRV_SRCH_PI,
117 V4L2_CID_PRV_SRCH_CNT,
118 V4L2_CID_PRV_EMPHASIS,
119 V4L2_CID_PRV_RDS_STD,
120 V4L2_CID_PRV_CHAN_SPACING,
121 V4L2_CID_PRV_RDSON,
122 V4L2_CID_PRV_RDSGROUP_PROC,
123 V4L2_CID_PRV_LP_MODE,
124 V4L2_CID_PRV_INTDET = V4L2_CID_PRV_BASE + 25,
125 V4L2_CID_PRV_AF_JUMP = V4L2_CID_PRV_BASE + 27,
126 V4L2_CID_PRV_SOFT_MUTE = V4L2_CID_PRV_BASE + 30,
127 V4L2_CID_PRV_AUDIO_PATH = V4L2_CID_PRV_BASE + 41,
128 V4L2_CID_PRV_SINR = V4L2_CID_PRV_BASE + 44,
129 V4L2_CID_PRV_ON_CHANNEL_THRESHOLD = V4L2_CID_PRV_BASE + 0x2D,
130 V4L2_CID_PRV_OFF_CHANNEL_THRESHOLD,
131 V4L2_CID_PRV_SINR_THRESHOLD,
132 V4L2_CID_PRV_SINR_SAMPLES,
133 V4L2_CID_PRV_SPUR_FREQ,
134 V4L2_CID_PRV_SPUR_FREQ_RMSSI,
135 V4L2_CID_PRV_SPUR_SELECTION,
136 V4L2_CID_PRV_AF_RMSSI_TH = V4L2_CID_PRV_BASE + 0x36,
137 V4L2_CID_PRV_AF_RMSSI_SAMPLES,
138 V4L2_CID_PRV_GOOD_CH_RMSSI_TH,
139 V4L2_CID_PRV_SRCHALGOTYPE,
140 V4L2_CID_PRV_CF0TH12,
141 V4L2_CID_PRV_SINRFIRSTSTAGE,
142 V4L2_CID_PRV_RMSSIFIRSTSTAGE,
143 V4L2_CID_PRV_SOFT_MUTE_TH,
144 V4L2_CID_PRV_IRIS_RDSGRP_RT,
145 V4L2_CID_PRV_IRIS_RDSGRP_PS_SIMPLE,
146 V4L2_CID_PRV_IRIS_RDSGRP_AFLIST,
147 V4L2_CID_PRV_IRIS_RDSGRP_ERT,
148 V4L2_CID_PRV_IRIS_RDSGRP_RT_PLUS,
149 V4L2_CID_PRV_IRIS_RDSGRP_3A,
150
151 V4L2_CID_PRV_IRIS_READ_DEFAULT = V4L2_CTRL_CLASS_USER + 0x928,
152 V4L2_CID_PRV_IRIS_WRITE_DEFAULT,
153 V4L2_CID_PRV_SET_CALIBRATION = V4L2_CTRL_CLASS_USER + 0x92A,
Satish kumar sugasi644b4882016-05-04 20:15:31 -0700154 HCI_FM_HELIUM_SET_SPURTABLE = 0x0098092D,
155 HCI_FM_HELIUM_GET_SPUR_TBL = 0x0098092E,
156 V4L2_CID_PRV_IRIS_FREQ,
157 V4L2_CID_PRV_IRIS_SEEK,
158 V4L2_CID_PRV_IRIS_UPPER_BAND,
159 V4L2_CID_PRV_IRIS_LOWER_BAND,
160 V4L2_CID_PRV_IRIS_AUDIO_MODE,
Kamal Negi8813e0f2016-02-10 19:12:09 +0530161 V4L2_CID_PRV_IRIS_RMSSI,
Kamal Negice09c302016-12-29 16:45:38 +0530162
163 V4L2_CID_PRV_ENABLE_SLIMBUS = 0x00980940,
Venkateshwarlu Domakonda1c2c4352014-05-26 14:35:12 +0530164};
Satish kumar sugasi644b4882016-05-04 20:15:31 -0700165
Venkateshwarlu Domakonda1c2c4352014-05-26 14:35:12 +0530166#endif