| 1 | /*************************************************************************** |
|---|
| 2 | * Copyright (c) 2003-2009, Broadcom Corporation |
|---|
| 3 | * All Rights Reserved |
|---|
| 4 | * Confidential Property of Broadcom Corporation |
|---|
| 5 | * |
|---|
| 6 | * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE |
|---|
| 7 | * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR |
|---|
| 8 | * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. |
|---|
| 9 | * |
|---|
| 10 | * $brcm_Workfile: bsettop_config.h $ |
|---|
| 11 | * $brcm_Revision: 14 $ |
|---|
| 12 | * $brcm_Date: 3/13/09 3:13p $ |
|---|
| 13 | * |
|---|
| 14 | * Module Description: |
|---|
| 15 | * |
|---|
| 16 | * Revision History: |
|---|
| 17 | * |
|---|
| 18 | * $brcm_Log: /BSEAV/api/include/bsettop_config.h $ |
|---|
| 19 | * |
|---|
| 20 | * 14 3/13/09 3:13p jgarrett |
|---|
| 21 | * PR 49827: Merge to main branch |
|---|
| 22 | * |
|---|
| 23 | * PR49827/3 3/3/09 1:59p mward |
|---|
| 24 | * PR 52355: Adding ANR |
|---|
| 25 | * |
|---|
| 26 | * 13 2/20/09 1:39p jgarrett |
|---|
| 27 | * PR 52355: Adding ANR |
|---|
| 28 | * |
|---|
| 29 | * PR49827/2 1/13/09 5:11p mward |
|---|
| 30 | * PR50613: Add support for SRS Volume IQ. |
|---|
| 31 | * |
|---|
| 32 | * PR49827/1 12/1/08 4:37p mward |
|---|
| 33 | * PR49827: Add a Dolby Volume checkbox in Info:Audio. |
|---|
| 34 | * |
|---|
| 35 | * 12 8/14/08 11:46a jgarrett |
|---|
| 36 | * PR 32047: Adding pcm capture |
|---|
| 37 | * |
|---|
| 38 | * 11 1/31/08 5:15p jgarrett |
|---|
| 39 | * PR 39180: Adding ofdm tuning |
|---|
| 40 | * |
|---|
| 41 | * 10 8/22/07 5:29p jgarrett |
|---|
| 42 | * PR 32044: Merging to main branch |
|---|
| 43 | * |
|---|
| 44 | * 7405_pip_support/1 8/21/07 2:38p katrep |
|---|
| 45 | * PR34204: Added mosaic mode support for 7405. |
|---|
| 46 | * |
|---|
| 47 | * 9 7/10/07 5:05p vsilyaev |
|---|
| 48 | * PR 32849: Added list of streamer and input band object ID's |
|---|
| 49 | * |
|---|
| 50 | * PR32044/1 6/26/07 5:55p jgarrett |
|---|
| 51 | * PR 32044: Adding Mosaic Mode APIs |
|---|
| 52 | * |
|---|
| 53 | * 8 2/23/07 3:41p jgarrett |
|---|
| 54 | * PR 28036: Adding new options for LAB/CAB/Sharpness |
|---|
| 55 | * |
|---|
| 56 | * 7 2/8/07 3:45p jgarrett |
|---|
| 57 | * PR 27751: Adding runtime detection of PVR encryption support |
|---|
| 58 | * |
|---|
| 59 | * 6 1/19/07 7:24p vsilyaev |
|---|
| 60 | * PR 26400: Added decoder to handle separate audio decode |
|---|
| 61 | * |
|---|
| 62 | * 5 11/30/06 7:22p jgarrett |
|---|
| 63 | * PR 24698: PR 24264: Adding features for MAD, BNR/MNR/DCR, and video |
|---|
| 64 | * formats. |
|---|
| 65 | * |
|---|
| 66 | * 4 9/13/06 3:57p erickson |
|---|
| 67 | * PR22954: add HD display as bconfig feature |
|---|
| 68 | * |
|---|
| 69 | * 3 6/15/05 11:25a mphillip |
|---|
| 70 | * PR15896: Remove two const declarations (and add a "this structure |
|---|
| 71 | * should be treated as read-only" comment) to get bconfig_copy to work |
|---|
| 72 | * under 2.7 |
|---|
| 73 | * |
|---|
| 74 | * 2 4/4/05 2:58p erickson |
|---|
| 75 | * PR13823: added linein and analog to bconfig, and fixed a few areas |
|---|
| 76 | * |
|---|
| 77 | * 1 2/7/05 7:04p dlwin |
|---|
| 78 | * Merge down for release 2005_REFSW_MERGETOMAIN: |
|---|
| 79 | * |
|---|
| 80 | * Irvine_BSEAVSW_Devel/9 12/10/04 4:28p marcusk |
|---|
| 81 | * PR13348: Added support for record_pes and record_tsdma options. |
|---|
| 82 | * |
|---|
| 83 | * Irvine_BSEAVSW_Devel/8 5/3/04 5:07p vsilyaev |
|---|
| 84 | * PR 10927: Renamed pcm to pcm_play. |
|---|
| 85 | * |
|---|
| 86 | * Irvine_BSEAVSW_Devel/7 5/3/04 12:28p vsilyaev |
|---|
| 87 | * PR 10927: Changed type of bconfig to be constant point to constant data |
|---|
| 88 | * (it allows to change data at initialization time). |
|---|
| 89 | * |
|---|
| 90 | * Irvine_BSEAVSW_Devel/6 5/3/04 11:22a vsilyaev |
|---|
| 91 | * PR 10927: Added resource list. |
|---|
| 92 | * |
|---|
| 93 | * Irvine_BSEAVSW_Devel/5 11/4/03 2:42p erickson |
|---|
| 94 | * documentation changes |
|---|
| 95 | * |
|---|
| 96 | * Irvine_BSEAVSW_Devel/4 10/28/03 11:28a erickson |
|---|
| 97 | * settop api reworks after internal design view |
|---|
| 98 | * |
|---|
| 99 | * Irvine_BSEAVSW_Devel/3 9/30/03 1:13a erickson |
|---|
| 100 | * updated docjet documentation |
|---|
| 101 | * |
|---|
| 102 | * Irvine_BSEAVSW_Devel/2 9/30/03 12:19a erickson |
|---|
| 103 | * added standard header stuff like cplusplus |
|---|
| 104 | * |
|---|
| 105 | * Irvine_BSEAVSW_Devel/1 8/11/03 4:27p vsilyaev |
|---|
| 106 | * Settop run-time config. |
|---|
| 107 | * |
|---|
| 108 | ***************************************************************************/ |
|---|
| 109 | #ifndef BSETTOP_CONFIG_H__ |
|---|
| 110 | #define BSETTOP_CONFIG_H__ |
|---|
| 111 | |
|---|
| 112 | #ifdef __cplusplus |
|---|
| 113 | extern "C" { |
|---|
| 114 | #endif |
|---|
| 115 | |
|---|
| 116 | /*=************** |
|---|
| 117 | The config interface allows the application to get information |
|---|
| 118 | about the board, its high-level features, and all chips on the board. |
|---|
| 119 | |
|---|
| 120 | Read the bconfig global variable after calling bsettop_init() |
|---|
| 121 | to access all information. |
|---|
| 122 | |
|---|
| 123 | Although most of the structure is const-protected, the current |
|---|
| 124 | toolchain does not appear to allow it all to be protected and still be |
|---|
| 125 | used in bconfig_copy for proxy mode. The user of this API should note |
|---|
| 126 | that these structures should be treated as read-only. Modifying |
|---|
| 127 | the values will not actually affect what capabilities are supported |
|---|
| 128 | by the chip or board. |
|---|
| 129 | ****************/ |
|---|
| 130 | |
|---|
| 131 | /* |
|---|
| 132 | Summary: |
|---|
| 133 | String array datatype used in several bconfig structures. |
|---|
| 134 | */ |
|---|
| 135 | typedef const char *bstring_list[]; |
|---|
| 136 | |
|---|
| 137 | /* |
|---|
| 138 | Summary: |
|---|
| 139 | A data structure to describe a single chip family on a board. |
|---|
| 140 | */ |
|---|
| 141 | typedef struct bconfig_family { |
|---|
| 142 | const char *name; /* for example, venom2 */ |
|---|
| 143 | const char *revision; /* family revision, for example, B0 */ |
|---|
| 144 | char major; /* major revision 'A', 'B' ... */ |
|---|
| 145 | unsigned minor; /* minor revision number */ |
|---|
| 146 | } bconfig_family; |
|---|
| 147 | |
|---|
| 148 | /* |
|---|
| 149 | Summary: |
|---|
| 150 | A data structure to list the chip families on a board. |
|---|
| 151 | */ |
|---|
| 152 | typedef bconfig_family *bconfig_family_list[10]; |
|---|
| 153 | |
|---|
| 154 | /* |
|---|
| 155 | Summary: |
|---|
| 156 | A data structure to describe a single chip on a board. |
|---|
| 157 | */ |
|---|
| 158 | typedef struct bconfig_chip { |
|---|
| 159 | unsigned chip_no; /* chip name like 7320, 7020 */ |
|---|
| 160 | const char *revision; /* chip revision, like RC0 */ |
|---|
| 161 | char major; /* major revision 'A', 'B' ... */ |
|---|
| 162 | unsigned minor; /* minor revision number */ |
|---|
| 163 | bconfig_family_list families; /* list of family cores included in the chip */ |
|---|
| 164 | } bconfig_chip; |
|---|
| 165 | |
|---|
| 166 | /* |
|---|
| 167 | Summary: |
|---|
| 168 | A data structure to define the list of chips on a board. |
|---|
| 169 | */ |
|---|
| 170 | typedef bconfig_chip *bconfig_chip_list[10]; |
|---|
| 171 | |
|---|
| 172 | /* |
|---|
| 173 | Summary: |
|---|
| 174 | The set of features which can be supported by a board. |
|---|
| 175 | */ |
|---|
| 176 | typedef struct bconfig_features { |
|---|
| 177 | bool sds; /* system might have SDS */ |
|---|
| 178 | bool qam; /* system might have QAM */ |
|---|
| 179 | bool vsb; /* system might have VSB */ |
|---|
| 180 | bool ofdm; /* system might have DVB-T OFDM */ |
|---|
| 181 | bool analog; /* system might have analog audio/video source */ |
|---|
| 182 | bool video_hd; /* system could decode HD video */ |
|---|
| 183 | bool display_hd; /* system could display HD video */ |
|---|
| 184 | bool dnr_dcr; /* system might have DCR support (digital contour removal) */ |
|---|
| 185 | bool dnr_bnr; /* system might have BNR support (block noise removal) */ |
|---|
| 186 | bool dnr_mnr; /* system might have MNR support (mosquito noise removal)*/ |
|---|
| 187 | bool anr; /* system might have ANR support (analog noise reduction)*/ |
|---|
| 188 | bool deinterlacer; /* system might have deinterlacing support */ |
|---|
| 189 | bool box_detect; /* system might have letterbox detection support */ |
|---|
| 190 | bool pvr_encryption; /* system might have PVR encryption */ |
|---|
| 191 | bool sharpness; /* System might have sharpness control */ |
|---|
| 192 | bool cab; /* System might have color adjustments [Green stretch, Blue Stretch, Auto Flesh Tome] */ |
|---|
| 193 | bool lab; /* System might have luma adjustments [Dynamic Contrast] */ |
|---|
| 194 | bool mosaic; /* System might support mosaic mode */ |
|---|
| 195 | bool dolby_volume; /* System might have Dolby volume post processing */ |
|---|
| 196 | bool srs_volume; /* System might have SRS volume IQ post processing */ |
|---|
| 197 | |
|---|
| 198 | bool video_format_is_supported[bvideo_format_count]; /* Array of supported video formats (index w/bvideo_format values) */ |
|---|
| 199 | } bconfig_features; |
|---|
| 200 | |
|---|
| 201 | |
|---|
| 202 | typedef struct bconfig_obj_list { |
|---|
| 203 | const char *type; /* string representation of the object type */ |
|---|
| 204 | unsigned total; /* total number of objects */ |
|---|
| 205 | const bobject_t *objects; /* list (array) of objects avaliable in the system */ |
|---|
| 206 | } bconfig_obj_list; |
|---|
| 207 | |
|---|
| 208 | /* |
|---|
| 209 | Summary: |
|---|
| 210 | Data structure to describe list of resources avaliable on a board. |
|---|
| 211 | */ |
|---|
| 212 | typedef struct bconfig_board_resources { |
|---|
| 213 | bconfig_obj_list record; /* list of records */ |
|---|
| 214 | bconfig_obj_list record_pes; /* list of pes records */ |
|---|
| 215 | bconfig_obj_list record_tsdma; /* list of tsdma records */ |
|---|
| 216 | bconfig_obj_list playback; /* list of playbacks */ |
|---|
| 217 | bconfig_obj_list encode; /* list of MPEG encoders */ |
|---|
| 218 | bconfig_obj_list display; /* list of displays */ |
|---|
| 219 | bconfig_obj_list decode; /* list of decodes */ |
|---|
| 220 | bconfig_obj_list analog; /* list of analog tuners */ |
|---|
| 221 | bconfig_obj_list linein; /* list of linein ids (see btuner_linein_t) */ |
|---|
| 222 | bconfig_obj_list sds; /* list of SDS capable tuners */ |
|---|
| 223 | bconfig_obj_list qam; /* list of QAM capable tuners */ |
|---|
| 224 | bconfig_obj_list vsb; /* list of VSB capable tuners */ |
|---|
| 225 | bconfig_obj_list ofdm; /* list of DVB-T/OFDM capable tuners */ |
|---|
| 226 | bconfig_obj_list pcm_play; /* list of PCM playbacks */ |
|---|
| 227 | bconfig_obj_list decode_still; /* list of video still picture decodes */ |
|---|
| 228 | bconfig_obj_list decode_es; /* list of ES only decoders (used for audio ES decode) */ |
|---|
| 229 | bconfig_obj_list streamers; /* list of streamer inputs */ |
|---|
| 230 | bconfig_obj_list input_bands; /* list of transport input bands */ |
|---|
| 231 | bconfig_obj_list decode_mosaic;/* list of Mosaic mode decoders */ |
|---|
| 232 | bconfig_obj_list pcm_capture; /* list of PCM capture channels */ |
|---|
| 233 | } bconfig_board_resources; |
|---|
| 234 | |
|---|
| 235 | /* |
|---|
| 236 | Summary: |
|---|
| 237 | Data structure to describe a board, including a list of chips |
|---|
| 238 | and features. |
|---|
| 239 | */ |
|---|
| 240 | typedef struct bconfig_system{ |
|---|
| 241 | const char *board; /* name of the board */ |
|---|
| 242 | unsigned board_revision; |
|---|
| 243 | bconfig_chip_list chips; /* list of Broadcom chips on the board */ |
|---|
| 244 | bconfig_features features; /* list of features supported by the board */ |
|---|
| 245 | bconfig_board_resources resources; /* list of resources provided by the board hardware */ |
|---|
| 246 | } bconfig_system; |
|---|
| 247 | |
|---|
| 248 | /* |
|---|
| 249 | Summary: |
|---|
| 250 | The access point for all system configuration information. |
|---|
| 251 | Description: |
|---|
| 252 | It is initialized after calling bsettop_init(). |
|---|
| 253 | */ |
|---|
| 254 | extern const bconfig_system * const bconfig; |
|---|
| 255 | |
|---|
| 256 | #ifdef __cplusplus |
|---|
| 257 | } |
|---|
| 258 | #endif |
|---|
| 259 | |
|---|
| 260 | #endif /* BSETTOP_CONFIG_H__ */ |
|---|
| 261 | |
|---|