source: svn/newcon3bcm2_21bu/rockford/bsp/bcm97552/common/bcmmux.c @ 22

Last change on this file since 22 was 22, checked in by phkim, 11 years ago
  1. phkim
  2. newcon3sk 를 kctv 로 브랜치 함
  • Property svn:executable set to *
File size: 4.5 KB
Line 
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: bcmmux.c $
11 * $brcm_Revision: Hydra_Software_Devel/1 $
12 * $brcm_Date: 9/30/09 5:18p $
13 *
14 * Module Description:
15 *
16 * Revision History:
17 *
18 * $brcm_Log: /rockford/bsp/bcm97550/common/bcmmux.c $
19 *
20 * Hydra_Software_Devel/1   9/30/09 5:18p farshidf
21 * SW7550-38: mini non-os code
22 *
23 * Hydra_Software_Devel/1   3/24/05 4:40p dlwin
24 * PR 14606: Merge to main development branch.
25 *
26 * Hydra_Software_Devel/2   10/6/03 11:54a brianlee
27 * Changed the name BMUX to BAPP_Mux.
28 *
29 * Hydra_Software_Devel/1   10/3/03 4:54p brianlee
30 * Initial version.
31 *
32 *
33 ***************************************************************************/
34#include "bstd.h"
35#include "breg_mem.h"
36#include "bchp_qam.h"
37#include "bcmmux.h"
38
39/****************************************************************
40* bcmConfigure3250Gpio
41*
42* INPUTS:       pReg3250 - 3250 register handle
43*                       
44* OUTPUTS:     
45* RETURNS:      none
46* FUNCTION:
47*
48****************************************************************/
49void bcmConfigure3250Gpio (BREG_Handle hReg3250)
50{
51        uint8_t         bval;
52
53        bval = BREG_Read8 (hReg3250, (uint32_t)(BCM3250_UPG_CORE_OFFSET + GIO_DIRLSB));
54        bval &= ~GPIO_MUX_MASK;
55        BREG_Write8 (hReg3250, (BCM3250_UPG_CORE_OFFSET + GIO_DIRLSB), bval);
56}
57
58/****************************************************************
59* bcmSelectTunerAAgc
60*
61* INPUTS:       pReg3250 - 3250 register handle
62*                       agcSelect - select between analog and digital
63*                       
64* OUTPUTS:     
65* RETURNS:      none
66* FUNCTION: This function selects IF and AGC between digital and
67*                       analog for Tuner A.  For bcm97038, this is controlled
68*                       by GPIO bit 2 of the 3250.
69*
70****************************************************************/
71void bcmSelectTunerAAgc(BREG_Handle hReg3250, BAPP_Mux_AgcSelect agcSelect)
72{
73        uint8_t         bval;
74
75        bval = BREG_Read8 (hReg3250, (uint32_t)(BCM3250_UPG_CORE_OFFSET + GIO_OUTLSB)); 
76        if (agcSelect == BAPP_Mux_AgcSelect_eDigital)
77                bval &= ~GPIO_TUNER_A_AGC_SEL;
78        else
79                bval |= GPIO_TUNER_A_AGC_SEL;
80        BREG_Write8 (hReg3250, (BCM3250_UPG_CORE_OFFSET + GIO_OUTLSB), bval);
81}
82
83/****************************************************************
84* bcmSelectTunerCAgc
85*
86* INPUTS:       pReg3250 - 3250 register handle
87*                       agcSelect - select between analog and digital
88*                       
89* OUTPUTS:     
90* RETURNS:      none
91* FUNCTION: This function selects IF and AGC between digital and
92*                       analog for Tuner C.  For bcm97038, this is controlled
93*                       by GPIO bit 3 of the 3250.
94*
95****************************************************************/
96void bcmSelectTunerCAgc(BREG_Handle hReg3250, BAPP_Mux_AgcSelect agcSelect)
97{
98        uint8_t         bval;
99
100        bval = BREG_Read8 (hReg3250, (uint32_t)(BCM3250_UPG_CORE_OFFSET + GIO_OUTLSB)); 
101        if (agcSelect == BAPP_Mux_AgcSelect_eDigital)
102                bval &= ~GPIO_TUNER_C_AGC_SEL;
103        else
104                bval |= GPIO_TUNER_C_AGC_SEL;
105        BREG_Write8 (hReg3250, (BCM3250_UPG_CORE_OFFSET + GIO_OUTLSB), bval);
106}
107
108/****************************************************************
109* bcmSelectRfmBypass
110*
111* INPUTS:       pReg3250 - 3250 register handle
112*                       bypass - bypasses RFM
113*                       
114* OUTPUTS:     
115* RETURNS:      none
116* FUNCTION: This function selects a MUX which bypasses RF Modulator.
117*
118****************************************************************/
119void bcmSelectRfmBypass (BREG_Handle hReg3250, bool bypass)
120{
121        uint8_t         bval;
122
123        bval = BREG_Read8 (hReg3250, (uint32_t)(BCM3250_UPG_CORE_OFFSET + GIO_OUTLSB)); 
124        if (bypass)
125                bval |= GPIO_RFM_BYPASS;
126        else
127                bval &= ~GPIO_RFM_BYPASS;
128        BREG_Write8 (hReg3250, (BCM3250_UPG_CORE_OFFSET + GIO_OUTLSB), bval);
129}
130
131/****************************************************************
132* bcmSelectIFDemodInput
133*
134* INPUTS:       pReg3250 - 3250 register handle
135*                       ifdSelect - tuner A or VSB
136*                       
137* OUTPUTS:     
138* RETURNS:      none
139* FUNCTION: This function selects IF Demod input.
140*
141****************************************************************/
142void bcmSelectIFDemodInput (BREG_Handle hReg3250, BAPP_Mux_IfDemodSelect ifdSelect)
143{
144        uint8_t         bval;
145
146        bval = BREG_Read8 (hReg3250, (uint32_t)(BCM3250_UPG_CORE_OFFSET + GIO_OUTLSB)); 
147        if (ifdSelect == BAPP_Mux_IfDemodSelect_eTunerA)
148                bval |= GPIO_BCM7038_IF_SEL;
149        else
150                bval &= GPIO_BCM7038_IF_SEL;
151        BREG_Write8 (hReg3250, (BCM3250_UPG_CORE_OFFSET + GIO_OUTLSB), bval);
152}
153
Note: See TracBrowser for help on using the repository browser.