mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-09-20 02:24:45 +03:00
190 lines
4.9 KiB
C
190 lines
4.9 KiB
C
|
/**************************************************************************
|
||
|
*
|
||
|
* BRIEF MODULE DESCRIPTION
|
||
|
* UART register definitions
|
||
|
*
|
||
|
* Copyright 2004 IDT Inc. (rischelp@idt.com)
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify it
|
||
|
* under the terms of the GNU General Public License as published by the
|
||
|
* Free Software Foundation; either version 2 of the License, or (at your
|
||
|
* option) any later version.
|
||
|
*
|
||
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||
|
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||
|
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||
|
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
*
|
||
|
* 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.,
|
||
|
* 675 Mass Ave, Cambridge, MA 02139, USA.
|
||
|
*
|
||
|
*
|
||
|
**************************************************************************
|
||
|
* May 2004 rkt, neb.
|
||
|
*
|
||
|
* Initial Release
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
**************************************************************************
|
||
|
*/
|
||
|
|
||
|
#ifndef __IDT_UART_H__
|
||
|
#define __IDT_UART_H__
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
UART0_PhysicalAddress = 0x1c000000,
|
||
|
UART_PhysicalAddress = UART0_PhysicalAddress, // Default
|
||
|
|
||
|
UART0_VirtualAddress = 0xbc000000,
|
||
|
UART_VirtualAddress = UART0_VirtualAddress, // Default
|
||
|
} ;
|
||
|
|
||
|
/*
|
||
|
* Register definitions are in bytes so we can handle endian problems.
|
||
|
*/
|
||
|
|
||
|
typedef struct UART_s
|
||
|
{
|
||
|
union
|
||
|
{
|
||
|
u32 const uartrb ; // 0x00 - DLAB=0, read.
|
||
|
u32 uartth ; // 0x00 - DLAB=0, write.
|
||
|
u32 uartdll ; // 0x00 - DLAB=1, read/write.
|
||
|
} ;
|
||
|
|
||
|
union
|
||
|
{
|
||
|
u32 uartie ; // 0x04 - DLAB=0, read/write.
|
||
|
u32 uartdlh ; // 0x04 - DLAB=1, read/write.
|
||
|
} ;
|
||
|
union
|
||
|
{
|
||
|
u32 const uartii ; // 0x08 - DLAB=0, read.
|
||
|
u32 uartfc ; // 0x08 - DLAB=0, write.
|
||
|
} ;
|
||
|
|
||
|
u32 uartlc ; // 0x0c
|
||
|
u32 uartmc ; // 0x10
|
||
|
u32 uartls ; // 0x14
|
||
|
u32 uartms ; // 0x18
|
||
|
u32 uarts ; // 0x1c
|
||
|
} volatile *UART_t ;
|
||
|
|
||
|
// Reset registers.
|
||
|
typedef u32 volatile *UARTRR_t ;
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
UARTIE_rda_b = 0,
|
||
|
UARTIE_rda_m = 0x00000001,
|
||
|
UARTIE_the_b = 1,
|
||
|
UARTIE_the_m = 0x00000002,
|
||
|
UARTIE_rls_b = 2,
|
||
|
UARTIE_rls_m = 0x00000004,
|
||
|
UARTIE_ems_b = 3,
|
||
|
UARTIE_ems_m = 0x00000008,
|
||
|
|
||
|
UARTII_pi_b = 0,
|
||
|
UARTII_pi_m = 0x00000001,
|
||
|
UARTII_iid_b = 1,
|
||
|
UARTII_iid_m = 0x0000000e,
|
||
|
UARTII_iid_ms_v = 0, // Modem stat-CTS,DSR,RI or DCD.
|
||
|
UARTII_iid_thre_v = 1, // Trans. Holding Reg. empty.
|
||
|
UARTII_iid_rda_v = 2, // Receive data available
|
||
|
UARTII_iid_rls_v = 3, // Overrun, parity, etc, error.
|
||
|
UARTII_iid_res4_v = 4, // reserved.
|
||
|
UARTII_iid_res5_v = 5, // reserved.
|
||
|
UARTII_iid_cto_v = 6, // Character timeout.
|
||
|
UARTII_iid_res7_v = 7, // reserved.
|
||
|
|
||
|
UARTFC_en_b = 0,
|
||
|
UARTFC_en_m = 0x00000001,
|
||
|
UARTFC_rr_b = 1,
|
||
|
UARTFC_rr_m = 0x00000002,
|
||
|
UARTFC_tr_b = 2,
|
||
|
UARTFC_tr_m = 0x00000004,
|
||
|
UARTFC_dms_b = 3,
|
||
|
UARTFC_dms_m = 0x00000008,
|
||
|
UARTFC_rt_b = 6,
|
||
|
UARTFC_rt_m = 0x000000c0,
|
||
|
UARTFC_rt_1Byte_v = 0,
|
||
|
UARTFC_rt_4Byte_v = 1,
|
||
|
UARTFC_rt_8Byte_v = 2,
|
||
|
UARTFC_rt_14Byte_v = 3,
|
||
|
|
||
|
UARTLC_wls_b = 0,
|
||
|
UARTLC_wls_m = 0x00000003,
|
||
|
UARTLC_wls_5Bits_v = 0,
|
||
|
UARTLC_wls_6Bits_v = 1,
|
||
|
UARTLC_wls_7Bits_v = 2,
|
||
|
UARTLC_wls_8Bits_v = 3,
|
||
|
UARTLC_stb_b = 2,
|
||
|
UARTLC_stb_m = 0x00000004,
|
||
|
UARTLC_pen_b = 3,
|
||
|
UARTLC_pen_m = 0x00000008,
|
||
|
UARTLC_eps_b = 4,
|
||
|
UARTLC_eps_m = 0x00000010,
|
||
|
UARTLC_sp_b = 5,
|
||
|
UARTLC_sp_m = 0x00000020,
|
||
|
UARTLC_sb_b = 6,
|
||
|
UARTLC_sb_m = 0x00000040,
|
||
|
UARTLC_dlab_b = 7,
|
||
|
UARTLC_dlab_m = 0x00000080,
|
||
|
|
||
|
UARTMC_dtr_b = 0,
|
||
|
UARTMC_dtr_m = 0x00000001,
|
||
|
UARTMC_rts_b = 1,
|
||
|
UARTMC_rts_m = 0x00000002,
|
||
|
UARTMC_o1_b = 2,
|
||
|
UARTMC_o1_m = 0x00000004,
|
||
|
UARTMC_o2_b = 3,
|
||
|
UARTMC_o2_m = 0x00000008,
|
||
|
UARTMC_lp_b = 4,
|
||
|
UARTMC_lp_m = 0x00000010,
|
||
|
|
||
|
UARTLS_dr_b = 0,
|
||
|
UARTLS_dr_m = 0x00000001,
|
||
|
UARTLS_oe_b = 1,
|
||
|
UARTLS_oe_m = 0x00000002,
|
||
|
UARTLS_pe_b = 2,
|
||
|
UARTLS_pe_m = 0x00000004,
|
||
|
UARTLS_fe_b = 3,
|
||
|
UARTLS_fe_m = 0x00000008,
|
||
|
UARTLS_bi_b = 4,
|
||
|
UARTLS_bi_m = 0x00000010,
|
||
|
UARTLS_thr_b = 5,
|
||
|
UARTLS_thr_m = 0x00000020,
|
||
|
UARTLS_te_b = 6,
|
||
|
UARTLS_te_m = 0x00000040,
|
||
|
UARTLS_rfe_b = 7,
|
||
|
UARTLS_rfe_m = 0x00000080,
|
||
|
|
||
|
UARTMS_dcts_b = 0,
|
||
|
UARTMS_dcts_m = 0x00000001,
|
||
|
UARTMS_ddsr_b = 1,
|
||
|
UARTMS_ddsr_m = 0x00000002,
|
||
|
UARTMS_teri_b = 2,
|
||
|
UARTMS_teri_m = 0x00000004,
|
||
|
UARTMS_ddcd_b = 3,
|
||
|
UARTMS_ddcd_m = 0x00000008,
|
||
|
UARTMS_cts_b = 4,
|
||
|
UARTMS_cts_m = 0x00000010,
|
||
|
UARTMS_dsr_b = 5,
|
||
|
UARTMS_dsr_m = 0x00000020,
|
||
|
UARTMS_ri_b = 6,
|
||
|
UARTMS_ri_m = 0x00000040,
|
||
|
UARTMS_dcd_b = 7,
|
||
|
UARTMS_dcd_m = 0x00000080,
|
||
|
} ;
|
||
|
|
||
|
#endif // __IDT_UART_H__
|