source: svn/newcon3bcm2_21bu/nexus/modules/transport/7552/include/nexus_mpod.h

Last change on this file was 76, checked in by megakiss, 10 years ago

1W 대기전력을 만족시키기 위하여 POWEROFF시 튜너를 Standby 상태로 함

  • Property svn:executable set to *
File size: 8.1 KB
Line 
1/******************************************************************************
2 *    (c)2008-2011 Broadcom Corporation
3 *
4 * This program is the proprietary software of Broadcom Corporation and/or its licensors,
5 * and may only be used, duplicated, modified or distributed pursuant to the terms and
6 * conditions of a separate, written license agreement executed between you and Broadcom
7 * (an "Authorized License").  Except as set forth in an Authorized License, Broadcom grants
8 * no license (express or implied), right to use, or waiver of any kind with respect to the
9 * Software, and Broadcom expressly reserves all rights in and to the Software and all
10 * intellectual property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU
11 * HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY
12 * NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
13 *
14 * Except as expressly set forth in the Authorized License,
15 *
16 * 1.     This program, including its structure, sequence and organization, constitutes the valuable trade
17 * secrets of Broadcom, and you shall use all reasonable efforts to protect the confidentiality thereof,
18 * and to use this information only in connection with your use of Broadcom integrated circuit products.
19 *
20 * 2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
21 * AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
22 * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
23 * THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL IMPLIED WARRANTIES
24 * OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE,
25 * LACK OF VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION
26 * OR CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF
27 * USE OR PERFORMANCE OF THE SOFTWARE.
28 *
29 * 3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR ITS
30 * LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT, OR
31 * EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY RELATING TO YOUR
32 * USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN ADVISED OF
33 * THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT
34 * ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE
35 * LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF
36 * ANY LIMITED REMEDY.
37 *
38 * $brcm_Workfile: nexus_mpod.h $
39 * $brcm_Revision: 11 $
40 * $brcm_Date: 11/7/11 3:59p $
41 *
42 * Module Description:
43 *
44 * Revision History:
45 *
46 * $brcm_Log: /nexus/modules/transport/7400/include/nexus_mpod.h $
47 *
48 * 11   11/7/11 3:59p bandrews
49 * SW7231-446: merge to main
50 *
51 * SW7231-446/1   11/3/11 9:26p bandrews
52 * SW7231-391: mpod param verification requires a struct
53 *
54 * 10   9/21/10 11:10a mphillip
55 * SW7420-1044: Correct location of pre-filtering MPOD variable
56 *
57 * 9   9/20/10 6:28p mphillip
58 * SW7420-1044: Add support for pre-filtering pids destined for MPOD
59 *
60 * 8   10/9/09 10:41a erickson
61 * SW7325-605: add NEXUS_MpodOpenSettings.clockNotRunning
62 *
63 * 7   9/22/09 1:03p erickson
64 * SW7325-605: add NEXUS_MpodOpenSettings.outputInvertSync. update
65 *  comments.
66 *
67 * 6   9/23/08 9:16a jgarrett
68 * PR 46513: Merging 97459 support to mainline
69 *
70 * PR44830/2   9/15/08 5:10p anilmm
71 * PR44830: Adjust for nexus naming convention
72 *
73 * PR44830/1   7/28/08 7:31p anilmm
74 * PR44830: Add output interface formatter control to
75 *  NEXUS_MpodOpenSettings
76 *
77 * 5   7/7/08 4:44p erickson
78 * PR44486: added NEXUS_MpodOpenSettings.pod2ChipMClkMuxSelect
79 *
80 * 4   6/18/08 1:28p erickson
81 * PR43730: fix warning, remove unneeded handle in GetDefaultSettings
82 *
83 * 3   5/21/08 1:56p shyam
84 * PR 42103 : Fix comments
85 *
86 * 2   5/21/08 11:16a erickson
87 * PR42103: comment changes
88 *
89 * 1   5/20/08 7:47p shyam
90 * PR 42103 : Add transport MPOD support
91 *
92 *****************************************************************************/
93
94#ifndef NEXUS_MPOD_H__
95#define NEXUS_MPOD_H__
96
97#include "nexus_types.h"
98#include "nexus_playpump.h"
99#include "nexus_parser_band.h"
100
101#ifdef __cplusplus
102extern "C" {
103#endif
104
105/**
106Summary:
107Handle which represents an Mpod device.
108**/
109typedef struct NEXUS_Mpod *NEXUS_MpodHandle;
110
111/**
112Summary:
113Handle which represents an Mpod input channel.
114**/
115typedef struct NEXUS_MpodInput *NEXUS_MpodInputHandle;
116
117/**
118Summary:
119The type of Mpod device interface
120**/
121typedef enum NEXUS_MpodMode
122{
123    NEXUS_MpodMode_eSpod, /* SPOD Cable Card interface */
124    NEXUS_MpodMode_eMpod, /* MPOD Cable Card interface */
125    NEXUS_MpodMode_eMax
126} NEXUS_MpodMode;
127
128/**
129Summary:
130Enum used in NEXUS_MpodOpenSettings to select input source to Mpod.
131**/
132typedef enum NEXUS_MpodBandType
133{
134    NEXUS_MpodBandType_eParserBand,
135    NEXUS_MpodBandType_ePlaypump,
136    NEXUS_MpodBandType_eMax
137} NEXUS_MpodBandType;
138
139/**
140Summary:
141Open settings for an Mpod device interface
142**/
143typedef struct NEXUS_MpodOpenSettings
144{
145    NEXUS_MpodMode mpodMode;
146
147    bool enableBandAssociation; /* A virtual Parser band can be associated with a data stream
148                                   for data that originates in the S-Pod. The parser band assocated can be a playback or a inputband parser.
149                                   determined by bandType field if enabled using enableBandAssociation. */
150
151    NEXUS_MpodBandType bandType; /* Determines the use of band union */
152    struct
153    {
154        NEXUS_ParserBand parserBand;
155        NEXUS_PlaypumpHandle playpump;
156    } band;                     /* input source used for NEXUS_MpodMode_eSpod */
157
158
159    bool timestampInsertEnable; /* Replace the timestamp received from the interface with a new internally generated one. */
160
161    /* Output Interface Formatter Control */
162    bool byteSync; /* If true, byte sync is enabled */
163    bool clockNotRunning; /* If true, the output clock will stop when data is not being output (CLK_NRUN). */
164    bool invertClock; /* If true, clock is active low, else active high */
165    unsigned clockDelay; /* Delay of output clock in 108MHz cycles (0=none) */
166    bool outputInvertSync;
167
168    bool pod2ChipMClkMuxSelect; /* Selects which pin is used for the Pod2Chip MCLK.
169                                    false - Use the POD2CHIP_MCLKI input pin (default).
170                                    true - Use a GPIO input pin. The pin number and pin mux configuration is chip or board specific. */
171} NEXUS_MpodOpenSettings;
172
173/**
174Summary:
175Enable routing of parser band (for live) or playback to Mpod.
176
177band and bandType are only used in NEXUS_Mpod_Open.
178**/
179typedef struct NEXUS_MpodInputSettings
180{
181    NEXUS_MpodBandType bandType; /* determines the use of band union */
182    union
183    {
184        NEXUS_PlaypumpHandle playpump;
185        NEXUS_ParserBand parserBand;
186    } band;
187    bool allPass; /* Used for debug mode */
188    bool mpodPreFilter; /* If true, enable filtering on the data stream */
189} NEXUS_MpodInputSettings;
190
191/**
192Summary:
193Get default settings for NEXUS_Mpod_Open
194**/
195void NEXUS_Mpod_GetDefaultOpenSettings(
196    NEXUS_MpodOpenSettings* pOpenSettings /* [out] */
197    );
198
199/**
200Summary:
201Opens the Mpod device
202**/
203NEXUS_MpodHandle NEXUS_Mpod_Open(
204    unsigned int index,
205    const NEXUS_MpodOpenSettings *pOpenSettings
206    );
207
208/**
209Summary:
210Closes the Mpod device
211**/
212void NEXUS_Mpod_Close(
213    NEXUS_MpodHandle mpod
214    );
215
216/**
217Summary:
218Gets default Mpod Input settings for use in NEXUS_MpodInput_Open
219**/
220void NEXUS_MpodInput_GetDefaultSettings(
221    NEXUS_MpodInputSettings *pMpodInputSettings /* [out] */
222    );
223
224/**
225Summary:
226Opens an Mpod input channel
227**/
228NEXUS_MpodInputHandle NEXUS_MpodInput_Open(
229    NEXUS_MpodHandle mpod,
230    const NEXUS_MpodInputSettings *pMpodInputSettings
231    );
232
233/**
234Summary:
235Closes an Mpod input channel
236**/
237void NEXUS_MpodInput_Close(
238    NEXUS_MpodInputHandle mpod
239    );
240
241/**
242Summary:
243Gets Mpod input channel settings
244**/
245void NEXUS_MpodInput_GetSettings(
246    NEXUS_MpodInputHandle mpodInput,
247    NEXUS_MpodInputSettings *pMpodInputSettings /* [out] */
248    );
249
250/**
251Summary:
252Sets Mpod input channel settings
253**/
254NEXUS_Error NEXUS_MpodInput_SetSettings(
255    NEXUS_MpodInputHandle mpodInput,
256    const NEXUS_MpodInputSettings *pMpodInputSettings
257    );
258
259#ifdef __cplusplus
260}
261#endif
262
263#endif /* NEXUS_MPOD_H__ */
264
Note: See TracBrowser for help on using the repository browser.