source: svn/newcon3bcm2_21bu/magnum/portinginterface/gio/7552/bgio.c @ 26

Last change on this file since 26 was 26, checked in by phkim, 11 years ago
  1. phkim
  2. 서경방소에서 kctv 로고 변경
  • Property svn:executable set to *
File size: 2.4 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2003-2011, 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: bgio.c $
11 * $brcm_Revision: Hydra_Software_Devel/3 $
12 * $brcm_Date: 6/16/11 5:58p $
13 *
14 * Module Description:
15 *
16 *
17 * Revision History:
18 * $brcm_Log: /magnum/portinginterface/gio/7038/bgio.c $
19 *
20 * Hydra_Software_Devel/3   6/16/11 5:58p tdo
21 * SWDTV-7592: add BDBG_OBJECT_ASSERT for BGIO.
22 *
23 * Hydra_Software_Devel/2   9/12/07 5:58p syang
24 * PR 30391, PR 32351: BGIO only init for the pin created by BGIO to ovoid
25 * override configures by other sw entity; BGIO read from HW reg (no more
26 * sw buffering);
27 *
28 * Hydra_Software_Devel/1   2/24/04 7:17p syang
29 * PR 9785: init version
30 *
31 ***************************************************************************/
32
33#include "bgio.h"             /*  */
34#include "bgio_priv.h"        /*  */
35#include "bkni.h"
36
37BDBG_MODULE(BGIO);
38BDBG_OBJECT_ID(BGIO);
39
40/***************************************************************************
41 *
42 */
43BERR_Code BGIO_Open(
44        BGIO_Handle *         phGpio,
45        BCHP_Handle           hChip,
46        BREG_Handle           hRegister )
47{
48        BERR_Code  eResult = BERR_SUCCESS;
49        BGIO_P_Context *  pGpio = NULL;
50
51        if ( (NULL == phGpio) ||
52                 (NULL == hChip) ||
53                 (NULL == hRegister) )
54        {
55                return BERR_TRACE(BERR_INVALID_PARAMETER);
56        }
57
58        pGpio = (BGIO_P_Context *)BKNI_Malloc( sizeof(BGIO_P_Context) );
59        if ( NULL == pGpio )
60        {
61                return BERR_TRACE(BERR_OUT_OF_SYSTEM_MEMORY);
62        }
63        BKNI_Memset((void*)pGpio, 0x0, sizeof(BGIO_P_Context));
64        BDBG_OBJECT_SET(pGpio, BGIO);
65
66        /* init pin list */
67        BLST_D_INIT(&pGpio->PinHead);
68
69        pGpio->hChip = hChip;
70        pGpio->hRegister = hRegister;
71        BGIO_P_MAIN_SET_BLACK_MAGIC(pGpio);
72
73        *phGpio = pGpio;
74        return eResult;
75}
76
77/***************************************************************************
78 *
79 */
80BERR_Code BGIO_Close(
81        BGIO_Handle           hGpio )
82{
83        BDBG_OBJECT_ASSERT(hGpio, BGIO);
84
85        /* sub-modules have to be explicitly destroied first */
86        if ( true != BLST_D_EMPTY(&hGpio->PinHead) )
87        {
88                return BERR_TRACE(BERR_LEAKED_RESOURCE);
89        }
90
91        BDBG_OBJECT_DESTROY(hGpio, BGIO);
92        BKNI_Free((void*)hGpio);
93        return BERR_SUCCESS;
94}
95
96/* End of File */
Note: See TracBrowser for help on using the repository browser.