source: svn/trunk/newcon3bcm2_21bu/magnum/commonutils/acm/bacm_spdif_defs.h

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 9.5 KB
Line 
1/***************************************************************************
2*         Copyright (c) 2003-2007, 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: bacm_spdif_defs.h $
11* $brcm_Revision: Hydra_Software_Devel/2 $
12* $brcm_Date: 4/25/07 1:04p $
13*
14* Module Description:
15*
16* Revision History:
17*
18* $brcm_Log: /magnum/commonutils/acm/bacm_spdif_defs.h $
19*
20* Hydra_Software_Devel/2   4/25/07 1:04p rgreen
21* PR29814: undefine PC (defined in kernel mode) so register macro works
22*
23* Hydra_Software_Devel/Refsw_Devel_3563/1   4/12/07 9:50p honglang
24* PR29713: For BDTV kernel mode compile
25*
26* Hydra_Software_Devel/1   3/15/07 3:18p rgreen
27* PR27181: Initial audio common support for SPDIF Channel Status
28* types/functions
29*
30* Hydra_Software_Devel/4   9/22/05 9:42p bandrews
31* PR17068: Refactored common spdif stuff.  Improved status reporting.
32*
33* Hydra_Software_Devel/3   9/12/05 3:29p bandrews
34* PR17068: Added enum of audio types
35*
36* Hydra_Software_Devel/2   9/12/05 3:24p bandrews
37* PR17068: Fixed bug in masks for first three bits of chstat
38*
39* Hydra_Software_Devel/1   9/9/05 7:59p bandrews
40* PR17068: Added common spdif defs file
41***************************************************************************/
42
43#ifndef BACM_SPDIF_DEFS_H__
44#define BACM_SPDIF_DEFS_H__
45
46#ifdef PC
47#undef PC
48#endif
49
50/*
51define/create macro BACM_SPDIF_GET_SPDIF_FIELD_DATA based on BCHP_GET_FIELD_DATA macro
52*/
53#define BACM_SPDIF_MASK(Register,Field) \
54        BACM_SPDIF_##Register##_##Field##_MASK
55       
56#define BACM_SPDIF_SHIFT(Register,Field) \
57        BACM_SPDIF_##Register##_##Field##_SHIFT
58
59#define BACM_SPDIF_GET_FIELD_DATA(Memory,Register,Field) \
60        ((((Memory) & BACM_SPDIF_MASK(Register,Field)) >> \
61        BACM_SPDIF_SHIFT(Register,Field)))
62
63/* SPDIF Preamble C fields */
64#define BACM_SPDIF_PC_DATA_TYPE_BITS 5
65#define BACM_SPDIF_PC_DATA_TYPE_MASK 0x001f
66#define BACM_SPDIF_PC_DATA_TYPE_SHIFT 0
67#define BACM_SPDIF_PC_DATA_TYPE_Null 0x00
68#define BACM_SPDIF_PC_DATA_TYPE_AC3 0x01         
69#define BACM_SPDIF_PC_DATA_TYPE_Reserved2 0x2   
70#define BACM_SPDIF_PC_DATA_TYPE_Pause 0x03
71#define BACM_SPDIF_PC_DATA_TYPE_Mpeg1L1 0x04
72#define BACM_SPDIF_PC_DATA_TYPE_Mpeg1L23Mpeg2noext 0x05
73#define BACM_SPDIF_PC_DATA_TYPE_Mpeg2withext 0x06
74#define BACM_SPDIF_PC_DATA_TYPE_AAC 0x07
75#define BACM_SPDIF_PC_DATA_TYPE_Mpeg2L1LF 0x08
76#define BACM_SPDIF_PC_DATA_TYPE_Mpeg2L2LF 0x09
77#define BACM_SPDIF_PC_DATA_TYPE_Mpeg2L3LF 0x0a
78#define BACM_SPDIF_PC_DATA_TYPE_DTS1 0x0b 
79#define BACM_SPDIF_PC_DATA_TYPE_DTS2 0x0c
80#define BACM_SPDIF_PC_DATA_TYPE_DTS3 0x0d
81#define BACM_SPDIF_PC_DATA_TYPE_ATRAC 0x0e
82#define BACM_SPDIF_PC_DATA_TYPE_ATRAC23 0x0f
83#define BACM_SPDIF_PC_DATA_TYPE_Extended 0x1f
84
85#define BACM_SPDIF_PC_RESERVED0_BITS 2
86#define BACM_SPDIF_PC_RESERVED0_MASK 0x0060
87#define BACM_SPDIF_PC_RESERVED0_SHIFT 5
88
89#define BACM_SPDIF_PC_PAYLOAD_ERRORS_BITS 1
90#define BACM_SPDIF_PC_PAYLOAD_ERRORS_MASK 0x0080
91#define BACM_SPDIF_PC_PAYLOAD_ERRORS_SHIFT 7
92#define BACM_SPDIF_PC_PAYLOAD_ERRORS_None 0
93#define BACM_SPDIF_PC_PAYLOAD_ERRORS_Present 1
94
95#define BACM_SPDIF_PC_TYPE_DEP_INFO_BITS 4
96#define BACM_SPDIF_PC_TYPE_DEP_INFO_MASK 0x0f00
97#define BACM_SPDIF_PC_TYPE_DEP_INFO_SHIFT 8
98
99#define BACM_SPDIF_PC_BS_NUM_BITS 4
100#define BACM_SPDIF_PC_BS_NUM_MASK 0xf000
101#define BACM_SPDIF_PC_BS_NUM_SHIFT 12
102
103/* SPDIF Channel Status fields */
104#define BACM_SPDIF_CHAN_STAT0_APPLICATION_BITS 1
105#define BACM_SPDIF_CHAN_STAT0_APPLICATION_MASK 0x1
106#define BACM_SPDIF_CHAN_STAT0_APPLICATION_SHIFT 0
107#define BACM_SPDIF_CHAN_STAT0_APPLICATION_Consumer 0
108#define BACM_SPDIF_CHAN_STAT0_APPLICATION_Professional 1
109
110#define BACM_SPDIF_CHAN_STAT0_STREAM_TYPE_BITS 1
111#define BACM_SPDIF_CHAN_STAT0_STREAM_TYPE_MASK 0x2
112#define BACM_SPDIF_CHAN_STAT0_STREAM_TYPE_SHIFT 1
113#define BACM_SPDIF_CHAN_STAT0_STREAM_TYPE_Linear 0
114#define BACM_SPDIF_CHAN_STAT0_STREAM_TYPE_Nonlinear 1
115
116#define BACM_SPDIF_CHAN_STAT0_COPYRIGHT_BITS 1
117#define BACM_SPDIF_CHAN_STAT0_COPYRIGHT_MASK 0x4
118#define BACM_SPDIF_CHAN_STAT0_COPYRIGHT_SHIFT 2
119#define BACM_SPDIF_CHAN_STAT0_COPYRIGHT_Asserted 0
120#define BACM_SPDIF_CHAN_STAT0_COPYRIGHT_Unknown 1
121
122#define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_BITS 3
123#define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_MASK 0x38
124#define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_SHIFT 3
125#define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_PCM_2ChannelNoPreEmphasis 0
126#define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_PCM_2ChannelPreEmphasis50us15us 4
127#define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_PCM_2ChannelPreEmphasisReserved0 2
128#define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_PCM_2ChannelPreEmphasisReserved1 6
129#define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_NonLinear_Default 0
130
131#define BACM_SPDIF_CHAN_STAT0_MODE_BITS 2
132#define BACM_SPDIF_CHAN_STAT0_MODE_MASK 0xc0
133#define BACM_SPDIF_CHAN_STAT0_MODE_SHIFT 6
134#define BACM_SPDIF_CHAN_STAT0_MODE_Mode0 0
135
136#define BACM_SPDIF_CHAN_STAT1_CATEGORY_CODE_BITS 8
137#define BACM_SPDIF_CHAN_STAT1_CATEGORY_CODE_MASK 0xff
138#define BACM_SPDIF_CHAN_STAT1_CATEGORY_CODE_SHIFT 0
139
140#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_BITS 4
141#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_MASK 0x0f
142#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_SHIFT 0
143#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_Unspecified 0x0
144#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_1 0x1
145#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_2 0x2
146#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_3 0x3
147#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_4 0x4
148#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_5 0x5
149#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_6 0x6
150#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_7 0x7
151#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_8 0x8
152#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_9 0x9
153#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_10 0xa
154#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_11 0xb
155#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_12 0xc
156#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_13 0xd
157#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_14 0xe
158#define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_15 0xf
159
160#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_BITS 4
161#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_MASK 0xf0
162#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_SHIFT 4
163#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_Unspecified 0x0
164#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_1 0x1
165#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_2 0x2
166#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_3 0x3
167#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_4 0x4
168#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_5 0x5
169#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_6 0x6
170#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_7 0x7
171#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_8 0x8
172#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_9 0x9
173#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_10 0xa
174#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_11 0xb
175#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_12 0xc
176#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_13 0xd
177#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_14 0xe
178#define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_15 0xf
179
180#define BACM_SPDIF_CHAN_STAT3_FS_BITS 4
181#define BACM_SPDIF_CHAN_STAT3_FS_MASK 0x0f
182#define BACM_SPDIF_CHAN_STAT3_FS_SHIFT 0
183#define BACM_SPDIF_CHAN_STAT3_FS_44100 0x0
184#define BACM_SPDIF_CHAN_STAT3_FS_Unspecified 0x1
185#define BACM_SPDIF_CHAN_STAT3_FS_48000 0x2
186#define BACM_SPDIF_CHAN_STAT3_FS_32000 0x3
187#define BACM_SPDIF_CHAN_STAT3_FS_22050 0x4
188#define BACM_SPDIF_CHAN_STAT3_FS_24000 0x6
189#define BACM_SPDIF_CHAN_STAT3_FS_88200 0x8
190#define BACM_SPDIF_CHAN_STAT3_FS_96000 0xa
191#define BACM_SPDIF_CHAN_STAT3_FS_176400 0xc
192#define BACM_SPDIF_CHAN_STAT3_FS_192000 0xe
193
194#define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_BITS 2
195#define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_MASK 0x30
196#define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_SHIFT 4
197#define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_LevelII 0x0
198#define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_LevelI 0x1
199#define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_LevelIII 0x2
200#define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_Unmatched 0x3
201
202#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_BITS 4
203#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_MASK 0x0f
204#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_SHIFT 0
205#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_UNSPECIFIED_OF_20_BITS 0x0
206#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_16_OF_20_BITS 0x2
207#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_17_OF_20_BITS 0xc
208#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_18_OF_20_BITS 0x4
209#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_19_OF_20_BITS 0x8
210#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_20_OF_20_BITS 0xa
211#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_UNSPECIFIED_OF_24_BITS 0x1
212#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_20_OF_24_BITS 0x3
213#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_21_OF_24_BITS 0xd
214#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_22_OF_24_BITS 0x5
215#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_23_OF_24_BITS 0x9
216#define BACM_SPDIF_CHAN_STAT4_WORD_LEN_24_OF_24_BITS 0xb
217
218#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_BITS 4
219#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_MASK 0xf0
220#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_SHIFT 4
221#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_Unspecified 0x0
222#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_192000 0x1
223#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_12000 0x2
224#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_176400 0x3
225#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_Reserved0 0x4
226#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_96000 0x5
227#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_8000 0x6
228#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_88200 0x7
229#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_16000 0x8
230#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_24000 0x9
231#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_11025 0xa
232#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_22050 0xb
233#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_32000 0xc
234#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_48000 0xd
235#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_Reserved1 0xe
236#define BACM_SPDIF_CHAN_STAT4_ORIG_FS_44100 0xf
237
238#endif /* BACM_SPDIF_DEFS_H__ */
239
Note: See TracBrowser for help on using the repository browser.