/*************************************************************************** * Copyright (c) 2003-2007, Broadcom Corporation * All Rights Reserved * Confidential Property of Broadcom Corporation * * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. * * $brcm_Workfile: bacm_spdif_defs.h $ * $brcm_Revision: Hydra_Software_Devel/2 $ * $brcm_Date: 4/25/07 1:04p $ * * Module Description: * * Revision History: * * $brcm_Log: /magnum/commonutils/acm/bacm_spdif_defs.h $ * * Hydra_Software_Devel/2 4/25/07 1:04p rgreen * PR29814: undefine PC (defined in kernel mode) so register macro works * * Hydra_Software_Devel/Refsw_Devel_3563/1 4/12/07 9:50p honglang * PR29713: For BDTV kernel mode compile * * Hydra_Software_Devel/1 3/15/07 3:18p rgreen * PR27181: Initial audio common support for SPDIF Channel Status * types/functions * * Hydra_Software_Devel/4 9/22/05 9:42p bandrews * PR17068: Refactored common spdif stuff. Improved status reporting. * * Hydra_Software_Devel/3 9/12/05 3:29p bandrews * PR17068: Added enum of audio types * * Hydra_Software_Devel/2 9/12/05 3:24p bandrews * PR17068: Fixed bug in masks for first three bits of chstat * * Hydra_Software_Devel/1 9/9/05 7:59p bandrews * PR17068: Added common spdif defs file ***************************************************************************/ #ifndef BACM_SPDIF_DEFS_H__ #define BACM_SPDIF_DEFS_H__ #ifdef PC #undef PC #endif /* define/create macro BACM_SPDIF_GET_SPDIF_FIELD_DATA based on BCHP_GET_FIELD_DATA macro */ #define BACM_SPDIF_MASK(Register,Field) \ BACM_SPDIF_##Register##_##Field##_MASK #define BACM_SPDIF_SHIFT(Register,Field) \ BACM_SPDIF_##Register##_##Field##_SHIFT #define BACM_SPDIF_GET_FIELD_DATA(Memory,Register,Field) \ ((((Memory) & BACM_SPDIF_MASK(Register,Field)) >> \ BACM_SPDIF_SHIFT(Register,Field))) /* SPDIF Preamble C fields */ #define BACM_SPDIF_PC_DATA_TYPE_BITS 5 #define BACM_SPDIF_PC_DATA_TYPE_MASK 0x001f #define BACM_SPDIF_PC_DATA_TYPE_SHIFT 0 #define BACM_SPDIF_PC_DATA_TYPE_Null 0x00 #define BACM_SPDIF_PC_DATA_TYPE_AC3 0x01 #define BACM_SPDIF_PC_DATA_TYPE_Reserved2 0x2 #define BACM_SPDIF_PC_DATA_TYPE_Pause 0x03 #define BACM_SPDIF_PC_DATA_TYPE_Mpeg1L1 0x04 #define BACM_SPDIF_PC_DATA_TYPE_Mpeg1L23Mpeg2noext 0x05 #define BACM_SPDIF_PC_DATA_TYPE_Mpeg2withext 0x06 #define BACM_SPDIF_PC_DATA_TYPE_AAC 0x07 #define BACM_SPDIF_PC_DATA_TYPE_Mpeg2L1LF 0x08 #define BACM_SPDIF_PC_DATA_TYPE_Mpeg2L2LF 0x09 #define BACM_SPDIF_PC_DATA_TYPE_Mpeg2L3LF 0x0a #define BACM_SPDIF_PC_DATA_TYPE_DTS1 0x0b #define BACM_SPDIF_PC_DATA_TYPE_DTS2 0x0c #define BACM_SPDIF_PC_DATA_TYPE_DTS3 0x0d #define BACM_SPDIF_PC_DATA_TYPE_ATRAC 0x0e #define BACM_SPDIF_PC_DATA_TYPE_ATRAC23 0x0f #define BACM_SPDIF_PC_DATA_TYPE_Extended 0x1f #define BACM_SPDIF_PC_RESERVED0_BITS 2 #define BACM_SPDIF_PC_RESERVED0_MASK 0x0060 #define BACM_SPDIF_PC_RESERVED0_SHIFT 5 #define BACM_SPDIF_PC_PAYLOAD_ERRORS_BITS 1 #define BACM_SPDIF_PC_PAYLOAD_ERRORS_MASK 0x0080 #define BACM_SPDIF_PC_PAYLOAD_ERRORS_SHIFT 7 #define BACM_SPDIF_PC_PAYLOAD_ERRORS_None 0 #define BACM_SPDIF_PC_PAYLOAD_ERRORS_Present 1 #define BACM_SPDIF_PC_TYPE_DEP_INFO_BITS 4 #define BACM_SPDIF_PC_TYPE_DEP_INFO_MASK 0x0f00 #define BACM_SPDIF_PC_TYPE_DEP_INFO_SHIFT 8 #define BACM_SPDIF_PC_BS_NUM_BITS 4 #define BACM_SPDIF_PC_BS_NUM_MASK 0xf000 #define BACM_SPDIF_PC_BS_NUM_SHIFT 12 /* SPDIF Channel Status fields */ #define BACM_SPDIF_CHAN_STAT0_APPLICATION_BITS 1 #define BACM_SPDIF_CHAN_STAT0_APPLICATION_MASK 0x1 #define BACM_SPDIF_CHAN_STAT0_APPLICATION_SHIFT 0 #define BACM_SPDIF_CHAN_STAT0_APPLICATION_Consumer 0 #define BACM_SPDIF_CHAN_STAT0_APPLICATION_Professional 1 #define BACM_SPDIF_CHAN_STAT0_STREAM_TYPE_BITS 1 #define BACM_SPDIF_CHAN_STAT0_STREAM_TYPE_MASK 0x2 #define BACM_SPDIF_CHAN_STAT0_STREAM_TYPE_SHIFT 1 #define BACM_SPDIF_CHAN_STAT0_STREAM_TYPE_Linear 0 #define BACM_SPDIF_CHAN_STAT0_STREAM_TYPE_Nonlinear 1 #define BACM_SPDIF_CHAN_STAT0_COPYRIGHT_BITS 1 #define BACM_SPDIF_CHAN_STAT0_COPYRIGHT_MASK 0x4 #define BACM_SPDIF_CHAN_STAT0_COPYRIGHT_SHIFT 2 #define BACM_SPDIF_CHAN_STAT0_COPYRIGHT_Asserted 0 #define BACM_SPDIF_CHAN_STAT0_COPYRIGHT_Unknown 1 #define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_BITS 3 #define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_MASK 0x38 #define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_SHIFT 3 #define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_PCM_2ChannelNoPreEmphasis 0 #define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_PCM_2ChannelPreEmphasis50us15us 4 #define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_PCM_2ChannelPreEmphasisReserved0 2 #define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_PCM_2ChannelPreEmphasisReserved1 6 #define BACM_SPDIF_CHAN_STAT0_ADDED_FORMAT_INFO_NonLinear_Default 0 #define BACM_SPDIF_CHAN_STAT0_MODE_BITS 2 #define BACM_SPDIF_CHAN_STAT0_MODE_MASK 0xc0 #define BACM_SPDIF_CHAN_STAT0_MODE_SHIFT 6 #define BACM_SPDIF_CHAN_STAT0_MODE_Mode0 0 #define BACM_SPDIF_CHAN_STAT1_CATEGORY_CODE_BITS 8 #define BACM_SPDIF_CHAN_STAT1_CATEGORY_CODE_MASK 0xff #define BACM_SPDIF_CHAN_STAT1_CATEGORY_CODE_SHIFT 0 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_BITS 4 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_MASK 0x0f #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_SHIFT 0 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_Unspecified 0x0 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_1 0x1 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_2 0x2 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_3 0x3 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_4 0x4 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_5 0x5 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_6 0x6 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_7 0x7 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_8 0x8 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_9 0x9 #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_10 0xa #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_11 0xb #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_12 0xc #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_13 0xd #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_14 0xe #define BACM_SPDIF_CHAN_STAT2_SOURCE_NUM_15 0xf #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_BITS 4 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_MASK 0xf0 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_SHIFT 4 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_Unspecified 0x0 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_1 0x1 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_2 0x2 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_3 0x3 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_4 0x4 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_5 0x5 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_6 0x6 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_7 0x7 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_8 0x8 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_9 0x9 #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_10 0xa #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_11 0xb #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_12 0xc #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_13 0xd #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_14 0xe #define BACM_SPDIF_CHAN_STAT2_CHAN_NUM_15 0xf #define BACM_SPDIF_CHAN_STAT3_FS_BITS 4 #define BACM_SPDIF_CHAN_STAT3_FS_MASK 0x0f #define BACM_SPDIF_CHAN_STAT3_FS_SHIFT 0 #define BACM_SPDIF_CHAN_STAT3_FS_44100 0x0 #define BACM_SPDIF_CHAN_STAT3_FS_Unspecified 0x1 #define BACM_SPDIF_CHAN_STAT3_FS_48000 0x2 #define BACM_SPDIF_CHAN_STAT3_FS_32000 0x3 #define BACM_SPDIF_CHAN_STAT3_FS_22050 0x4 #define BACM_SPDIF_CHAN_STAT3_FS_24000 0x6 #define BACM_SPDIF_CHAN_STAT3_FS_88200 0x8 #define BACM_SPDIF_CHAN_STAT3_FS_96000 0xa #define BACM_SPDIF_CHAN_STAT3_FS_176400 0xc #define BACM_SPDIF_CHAN_STAT3_FS_192000 0xe #define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_BITS 2 #define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_MASK 0x30 #define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_SHIFT 4 #define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_LevelII 0x0 #define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_LevelI 0x1 #define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_LevelIII 0x2 #define BACM_SPDIF_CHAN_STAT3_CLK_ACCURACY_Unmatched 0x3 #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_BITS 4 #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_MASK 0x0f #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_SHIFT 0 #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_UNSPECIFIED_OF_20_BITS 0x0 #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_16_OF_20_BITS 0x2 #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_17_OF_20_BITS 0xc #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_18_OF_20_BITS 0x4 #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_19_OF_20_BITS 0x8 #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_20_OF_20_BITS 0xa #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_UNSPECIFIED_OF_24_BITS 0x1 #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_20_OF_24_BITS 0x3 #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_21_OF_24_BITS 0xd #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_22_OF_24_BITS 0x5 #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_23_OF_24_BITS 0x9 #define BACM_SPDIF_CHAN_STAT4_WORD_LEN_24_OF_24_BITS 0xb #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_BITS 4 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_MASK 0xf0 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_SHIFT 4 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_Unspecified 0x0 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_192000 0x1 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_12000 0x2 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_176400 0x3 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_Reserved0 0x4 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_96000 0x5 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_8000 0x6 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_88200 0x7 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_16000 0x8 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_24000 0x9 #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_11025 0xa #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_22050 0xb #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_32000 0xc #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_48000 0xd #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_Reserved1 0xe #define BACM_SPDIF_CHAN_STAT4_ORIG_FS_44100 0xf #endif /* BACM_SPDIF_DEFS_H__ */