/***************************************************************************
 *     Copyright (c) 1999-2010, Broadcom Corporation
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *
 * Module Description:
 *                     DO NOT EDIT THIS FILE DIRECTLY
 *
 * This module was generated magically with RDB from a source description
 * file. You must edit the source file for changes to be made to this file.
 *
 *
 * Date:           Generated on         Mon Aug  2 15:05:39 2010
 *                 MD5 Checksum         616c5da46e7f2e811fb57b174083665d
 *
 * Compiled with:  RDB Utility          combo_header.pl
 *                 RDB Parser           3.0
 *                 unknown              unknown
 *                 Perl Interpreter     5.008008
 *                 Operating System     linux
 *
 * Revision History:
 *
 * $brcm_Log: /magnum/basemodules/chp/7346/rdb/a0/bchp_uartc.h $
 * 
 * Hydra_Software_Devel/1   8/2/10 7:59p pntruong
 * SW7346-2: Initial version.
 *
 ***************************************************************************/

#ifndef BCHP_UARTC_H__
#define BCHP_UARTC_H__

/***************************************************************************
 *UARTC - UART C
 ***************************************************************************/
#define BCHP_UARTC_RBR                           0x00406980 /* Receive Buffer Register */
#define BCHP_UARTC_THR                           0x00406980 /* Transmit Holding Register */
#define BCHP_UARTC_DLH                           0x00406984 /* Divisor Latch High */
#define BCHP_UARTC_DLL                           0x00406980 /* Divisor Latch Low */
#define BCHP_UARTC_IER                           0x00406984 /* Interrupt Enable Register */
#define BCHP_UARTC_IIR                           0x00406988 /* Interrupt Identity Register */
#define BCHP_UARTC_FCR                           0x00406988 /* FIFO Control Register */
#define BCHP_UARTC_LCR                           0x0040698c /* Line Control Register */
#define BCHP_UARTC_MCR                           0x00406990 /* Modem Control Register */
#define BCHP_UARTC_LSR                           0x00406994 /* Line Status Register */
#define BCHP_UARTC_MSR                           0x00406998 /* Modem Status Register */
#define BCHP_UARTC_SCR                           0x0040699c /* Scratchpad Register */

#endif /* #ifndef BCHP_UARTC_H__ */

/* End of File */
