1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*4882a593Smuzhiyun /* ********************************************************************* 3*4882a593Smuzhiyun * SB1250 Board Support Package 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * UART Constants File: sb1250_uart.h 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * This module contains constants and macros useful for 8*4882a593Smuzhiyun * manipulating the SB1250's UARTs 9*4882a593Smuzhiyun * 10*4882a593Smuzhiyun * SB1250 specification level: User's manual 1/02/02 11*4882a593Smuzhiyun * 12*4882a593Smuzhiyun ********************************************************************* 13*4882a593Smuzhiyun * 14*4882a593Smuzhiyun * Copyright 2000,2001,2002,2003 15*4882a593Smuzhiyun * Broadcom Corporation. All rights reserved. 16*4882a593Smuzhiyun * 17*4882a593Smuzhiyun ********************************************************************* */ 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun #ifndef _SB1250_UART_H 21*4882a593Smuzhiyun #define _SB1250_UART_H 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #include <asm/sibyte/sb1250_defs.h> 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun /* ********************************************************************** 26*4882a593Smuzhiyun * DUART Registers 27*4882a593Smuzhiyun ********************************************************************** */ 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun /* 30*4882a593Smuzhiyun * DUART Mode Register #1 (Table 10-3) 31*4882a593Smuzhiyun * Register: DUART_MODE_REG_1_A 32*4882a593Smuzhiyun * Register: DUART_MODE_REG_1_B 33*4882a593Smuzhiyun */ 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun #define S_DUART_BITS_PER_CHAR 0 36*4882a593Smuzhiyun #define M_DUART_BITS_PER_CHAR _SB_MAKEMASK(2, S_DUART_BITS_PER_CHAR) 37*4882a593Smuzhiyun #define V_DUART_BITS_PER_CHAR(x) _SB_MAKEVALUE(x, S_DUART_BITS_PER_CHAR) 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun #define K_DUART_BITS_PER_CHAR_RSV0 0 40*4882a593Smuzhiyun #define K_DUART_BITS_PER_CHAR_RSV1 1 41*4882a593Smuzhiyun #define K_DUART_BITS_PER_CHAR_7 2 42*4882a593Smuzhiyun #define K_DUART_BITS_PER_CHAR_8 3 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun #define V_DUART_BITS_PER_CHAR_RSV0 V_DUART_BITS_PER_CHAR(K_DUART_BITS_PER_CHAR_RSV0) 45*4882a593Smuzhiyun #define V_DUART_BITS_PER_CHAR_RSV1 V_DUART_BITS_PER_CHAR(K_DUART_BITS_PER_CHAR_RSV1) 46*4882a593Smuzhiyun #define V_DUART_BITS_PER_CHAR_7 V_DUART_BITS_PER_CHAR(K_DUART_BITS_PER_CHAR_7) 47*4882a593Smuzhiyun #define V_DUART_BITS_PER_CHAR_8 V_DUART_BITS_PER_CHAR(K_DUART_BITS_PER_CHAR_8) 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun #define M_DUART_PARITY_TYPE_EVEN 0x00 51*4882a593Smuzhiyun #define M_DUART_PARITY_TYPE_ODD _SB_MAKEMASK1(2) 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun #define S_DUART_PARITY_MODE 3 54*4882a593Smuzhiyun #define M_DUART_PARITY_MODE _SB_MAKEMASK(2, S_DUART_PARITY_MODE) 55*4882a593Smuzhiyun #define V_DUART_PARITY_MODE(x) _SB_MAKEVALUE(x, S_DUART_PARITY_MODE) 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun #define K_DUART_PARITY_MODE_ADD 0 58*4882a593Smuzhiyun #define K_DUART_PARITY_MODE_ADD_FIXED 1 59*4882a593Smuzhiyun #define K_DUART_PARITY_MODE_NONE 2 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun #define V_DUART_PARITY_MODE_ADD V_DUART_PARITY_MODE(K_DUART_PARITY_MODE_ADD) 62*4882a593Smuzhiyun #define V_DUART_PARITY_MODE_ADD_FIXED V_DUART_PARITY_MODE(K_DUART_PARITY_MODE_ADD_FIXED) 63*4882a593Smuzhiyun #define V_DUART_PARITY_MODE_NONE V_DUART_PARITY_MODE(K_DUART_PARITY_MODE_NONE) 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun #define M_DUART_TX_IRQ_SEL_TXRDY 0 66*4882a593Smuzhiyun #define M_DUART_TX_IRQ_SEL_TXEMPT _SB_MAKEMASK1(5) 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun #define M_DUART_RX_IRQ_SEL_RXRDY 0 69*4882a593Smuzhiyun #define M_DUART_RX_IRQ_SEL_RXFULL _SB_MAKEMASK1(6) 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun #define M_DUART_RX_RTS_ENA _SB_MAKEMASK1(7) 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun /* 74*4882a593Smuzhiyun * DUART Mode Register #2 (Table 10-4) 75*4882a593Smuzhiyun * Register: DUART_MODE_REG_2_A 76*4882a593Smuzhiyun * Register: DUART_MODE_REG_2_B 77*4882a593Smuzhiyun */ 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun #define M_DUART_MODE_RESERVED1 _SB_MAKEMASK(3, 0) /* ignored */ 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun #define M_DUART_STOP_BIT_LEN_2 _SB_MAKEMASK1(3) 82*4882a593Smuzhiyun #define M_DUART_STOP_BIT_LEN_1 0 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun #define M_DUART_TX_CTS_ENA _SB_MAKEMASK1(4) 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun #define M_DUART_MODE_RESERVED2 _SB_MAKEMASK1(5) /* must be zero */ 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun #define S_DUART_CHAN_MODE 6 90*4882a593Smuzhiyun #define M_DUART_CHAN_MODE _SB_MAKEMASK(2, S_DUART_CHAN_MODE) 91*4882a593Smuzhiyun #define V_DUART_CHAN_MODE(x) _SB_MAKEVALUE(x, S_DUART_CHAN_MODE) 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun #define K_DUART_CHAN_MODE_NORMAL 0 94*4882a593Smuzhiyun #define K_DUART_CHAN_MODE_LCL_LOOP 2 95*4882a593Smuzhiyun #define K_DUART_CHAN_MODE_REM_LOOP 3 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun #define V_DUART_CHAN_MODE_NORMAL V_DUART_CHAN_MODE(K_DUART_CHAN_MODE_NORMAL) 98*4882a593Smuzhiyun #define V_DUART_CHAN_MODE_LCL_LOOP V_DUART_CHAN_MODE(K_DUART_CHAN_MODE_LCL_LOOP) 99*4882a593Smuzhiyun #define V_DUART_CHAN_MODE_REM_LOOP V_DUART_CHAN_MODE(K_DUART_CHAN_MODE_REM_LOOP) 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun /* 102*4882a593Smuzhiyun * DUART Command Register (Table 10-5) 103*4882a593Smuzhiyun * Register: DUART_CMD_A 104*4882a593Smuzhiyun * Register: DUART_CMD_B 105*4882a593Smuzhiyun */ 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun #define M_DUART_RX_EN _SB_MAKEMASK1(0) 108*4882a593Smuzhiyun #define M_DUART_RX_DIS _SB_MAKEMASK1(1) 109*4882a593Smuzhiyun #define M_DUART_TX_EN _SB_MAKEMASK1(2) 110*4882a593Smuzhiyun #define M_DUART_TX_DIS _SB_MAKEMASK1(3) 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun #define S_DUART_MISC_CMD 4 113*4882a593Smuzhiyun #define M_DUART_MISC_CMD _SB_MAKEMASK(3, S_DUART_MISC_CMD) 114*4882a593Smuzhiyun #define V_DUART_MISC_CMD(x) _SB_MAKEVALUE(x, S_DUART_MISC_CMD) 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun #define K_DUART_MISC_CMD_NOACTION0 0 117*4882a593Smuzhiyun #define K_DUART_MISC_CMD_NOACTION1 1 118*4882a593Smuzhiyun #define K_DUART_MISC_CMD_RESET_RX 2 119*4882a593Smuzhiyun #define K_DUART_MISC_CMD_RESET_TX 3 120*4882a593Smuzhiyun #define K_DUART_MISC_CMD_NOACTION4 4 121*4882a593Smuzhiyun #define K_DUART_MISC_CMD_RESET_BREAK_INT 5 122*4882a593Smuzhiyun #define K_DUART_MISC_CMD_START_BREAK 6 123*4882a593Smuzhiyun #define K_DUART_MISC_CMD_STOP_BREAK 7 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun #define V_DUART_MISC_CMD_NOACTION0 V_DUART_MISC_CMD(K_DUART_MISC_CMD_NOACTION0) 126*4882a593Smuzhiyun #define V_DUART_MISC_CMD_NOACTION1 V_DUART_MISC_CMD(K_DUART_MISC_CMD_NOACTION1) 127*4882a593Smuzhiyun #define V_DUART_MISC_CMD_RESET_RX V_DUART_MISC_CMD(K_DUART_MISC_CMD_RESET_RX) 128*4882a593Smuzhiyun #define V_DUART_MISC_CMD_RESET_TX V_DUART_MISC_CMD(K_DUART_MISC_CMD_RESET_TX) 129*4882a593Smuzhiyun #define V_DUART_MISC_CMD_NOACTION4 V_DUART_MISC_CMD(K_DUART_MISC_CMD_NOACTION4) 130*4882a593Smuzhiyun #define V_DUART_MISC_CMD_RESET_BREAK_INT V_DUART_MISC_CMD(K_DUART_MISC_CMD_RESET_BREAK_INT) 131*4882a593Smuzhiyun #define V_DUART_MISC_CMD_START_BREAK V_DUART_MISC_CMD(K_DUART_MISC_CMD_START_BREAK) 132*4882a593Smuzhiyun #define V_DUART_MISC_CMD_STOP_BREAK V_DUART_MISC_CMD(K_DUART_MISC_CMD_STOP_BREAK) 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun #define M_DUART_CMD_RESERVED _SB_MAKEMASK1(7) 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun /* 137*4882a593Smuzhiyun * DUART Status Register (Table 10-6) 138*4882a593Smuzhiyun * Register: DUART_STATUS_A 139*4882a593Smuzhiyun * Register: DUART_STATUS_B 140*4882a593Smuzhiyun * READ-ONLY 141*4882a593Smuzhiyun */ 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun #define M_DUART_RX_RDY _SB_MAKEMASK1(0) 144*4882a593Smuzhiyun #define M_DUART_RX_FFUL _SB_MAKEMASK1(1) 145*4882a593Smuzhiyun #define M_DUART_TX_RDY _SB_MAKEMASK1(2) 146*4882a593Smuzhiyun #define M_DUART_TX_EMT _SB_MAKEMASK1(3) 147*4882a593Smuzhiyun #define M_DUART_OVRUN_ERR _SB_MAKEMASK1(4) 148*4882a593Smuzhiyun #define M_DUART_PARITY_ERR _SB_MAKEMASK1(5) 149*4882a593Smuzhiyun #define M_DUART_FRM_ERR _SB_MAKEMASK1(6) 150*4882a593Smuzhiyun #define M_DUART_RCVD_BRK _SB_MAKEMASK1(7) 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun /* 153*4882a593Smuzhiyun * DUART Baud Rate Register (Table 10-7) 154*4882a593Smuzhiyun * Register: DUART_CLK_SEL_A 155*4882a593Smuzhiyun * Register: DUART_CLK_SEL_B 156*4882a593Smuzhiyun */ 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun #define M_DUART_CLK_COUNTER _SB_MAKEMASK(12, 0) 159*4882a593Smuzhiyun #define V_DUART_BAUD_RATE(x) (100000000/((x)*20)-1) 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun /* 162*4882a593Smuzhiyun * DUART Data Registers (Table 10-8 and 10-9) 163*4882a593Smuzhiyun * Register: DUART_RX_HOLD_A 164*4882a593Smuzhiyun * Register: DUART_RX_HOLD_B 165*4882a593Smuzhiyun * Register: DUART_TX_HOLD_A 166*4882a593Smuzhiyun * Register: DUART_TX_HOLD_B 167*4882a593Smuzhiyun */ 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun #define M_DUART_RX_DATA _SB_MAKEMASK(8, 0) 170*4882a593Smuzhiyun #define M_DUART_TX_DATA _SB_MAKEMASK(8, 0) 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun /* 173*4882a593Smuzhiyun * DUART Input Port Register (Table 10-10) 174*4882a593Smuzhiyun * Register: DUART_IN_PORT 175*4882a593Smuzhiyun */ 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun #define M_DUART_IN_PIN0_VAL _SB_MAKEMASK1(0) 178*4882a593Smuzhiyun #define M_DUART_IN_PIN1_VAL _SB_MAKEMASK1(1) 179*4882a593Smuzhiyun #define M_DUART_IN_PIN2_VAL _SB_MAKEMASK1(2) 180*4882a593Smuzhiyun #define M_DUART_IN_PIN3_VAL _SB_MAKEMASK1(3) 181*4882a593Smuzhiyun #define M_DUART_IN_PIN4_VAL _SB_MAKEMASK1(4) 182*4882a593Smuzhiyun #define M_DUART_IN_PIN5_VAL _SB_MAKEMASK1(5) 183*4882a593Smuzhiyun #define M_DUART_RIN0_PIN _SB_MAKEMASK1(6) 184*4882a593Smuzhiyun #define M_DUART_RIN1_PIN _SB_MAKEMASK1(7) 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun /* 187*4882a593Smuzhiyun * DUART Input Port Change Status Register (Tables 10-11, 10-12, and 10-13) 188*4882a593Smuzhiyun * Register: DUART_INPORT_CHNG 189*4882a593Smuzhiyun */ 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun #define S_DUART_IN_PIN_VAL 0 192*4882a593Smuzhiyun #define M_DUART_IN_PIN_VAL _SB_MAKEMASK(4, S_DUART_IN_PIN_VAL) 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun #define S_DUART_IN_PIN_CHNG 4 195*4882a593Smuzhiyun #define M_DUART_IN_PIN_CHNG _SB_MAKEMASK(4, S_DUART_IN_PIN_CHNG) 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun /* 199*4882a593Smuzhiyun * DUART Output port control register (Table 10-14) 200*4882a593Smuzhiyun * Register: DUART_OPCR 201*4882a593Smuzhiyun */ 202*4882a593Smuzhiyun 203*4882a593Smuzhiyun #define M_DUART_OPCR_RESERVED0 _SB_MAKEMASK1(0) /* must be zero */ 204*4882a593Smuzhiyun #define M_DUART_OPC2_SEL _SB_MAKEMASK1(1) 205*4882a593Smuzhiyun #define M_DUART_OPCR_RESERVED1 _SB_MAKEMASK1(2) /* must be zero */ 206*4882a593Smuzhiyun #define M_DUART_OPC3_SEL _SB_MAKEMASK1(3) 207*4882a593Smuzhiyun #define M_DUART_OPCR_RESERVED2 _SB_MAKEMASK(4, 4) /* must be zero */ 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun /* 210*4882a593Smuzhiyun * DUART Aux Control Register (Table 10-15) 211*4882a593Smuzhiyun * Register: DUART_AUX_CTRL 212*4882a593Smuzhiyun */ 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun #define M_DUART_IP0_CHNG_ENA _SB_MAKEMASK1(0) 215*4882a593Smuzhiyun #define M_DUART_IP1_CHNG_ENA _SB_MAKEMASK1(1) 216*4882a593Smuzhiyun #define M_DUART_IP2_CHNG_ENA _SB_MAKEMASK1(2) 217*4882a593Smuzhiyun #define M_DUART_IP3_CHNG_ENA _SB_MAKEMASK1(3) 218*4882a593Smuzhiyun #define M_DUART_ACR_RESERVED _SB_MAKEMASK(4, 4) 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun #define M_DUART_CTS_CHNG_ENA _SB_MAKEMASK1(0) 221*4882a593Smuzhiyun #define M_DUART_CIN_CHNG_ENA _SB_MAKEMASK1(2) 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun /* 224*4882a593Smuzhiyun * DUART Interrupt Status Register (Table 10-16) 225*4882a593Smuzhiyun * Register: DUART_ISR 226*4882a593Smuzhiyun */ 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun #define M_DUART_ISR_TX_A _SB_MAKEMASK1(0) 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun #define S_DUART_ISR_RX_A 1 231*4882a593Smuzhiyun #define M_DUART_ISR_RX_A _SB_MAKEMASK1(S_DUART_ISR_RX_A) 232*4882a593Smuzhiyun #define V_DUART_ISR_RX_A(x) _SB_MAKEVALUE(x, S_DUART_ISR_RX_A) 233*4882a593Smuzhiyun #define G_DUART_ISR_RX_A(x) _SB_GETVALUE(x, S_DUART_ISR_RX_A, M_DUART_ISR_RX_A) 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun #define M_DUART_ISR_BRK_A _SB_MAKEMASK1(2) 236*4882a593Smuzhiyun #define M_DUART_ISR_IN_A _SB_MAKEMASK1(3) 237*4882a593Smuzhiyun #define M_DUART_ISR_ALL_A _SB_MAKEMASK(4, 0) 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun #define M_DUART_ISR_TX_B _SB_MAKEMASK1(4) 240*4882a593Smuzhiyun #define M_DUART_ISR_RX_B _SB_MAKEMASK1(5) 241*4882a593Smuzhiyun #define M_DUART_ISR_BRK_B _SB_MAKEMASK1(6) 242*4882a593Smuzhiyun #define M_DUART_ISR_IN_B _SB_MAKEMASK1(7) 243*4882a593Smuzhiyun #define M_DUART_ISR_ALL_B _SB_MAKEMASK(4, 4) 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun /* 246*4882a593Smuzhiyun * DUART Channel A Interrupt Status Register (Table 10-17) 247*4882a593Smuzhiyun * DUART Channel B Interrupt Status Register (Table 10-18) 248*4882a593Smuzhiyun * Register: DUART_ISR_A 249*4882a593Smuzhiyun * Register: DUART_ISR_B 250*4882a593Smuzhiyun */ 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun #define M_DUART_ISR_TX _SB_MAKEMASK1(0) 253*4882a593Smuzhiyun #define M_DUART_ISR_RX _SB_MAKEMASK1(1) 254*4882a593Smuzhiyun #define M_DUART_ISR_BRK _SB_MAKEMASK1(2) 255*4882a593Smuzhiyun #define M_DUART_ISR_IN _SB_MAKEMASK1(3) 256*4882a593Smuzhiyun #define M_DUART_ISR_ALL _SB_MAKEMASK(4, 0) 257*4882a593Smuzhiyun #define M_DUART_ISR_RESERVED _SB_MAKEMASK(4, 4) 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun /* 260*4882a593Smuzhiyun * DUART Interrupt Mask Register (Table 10-19) 261*4882a593Smuzhiyun * Register: DUART_IMR 262*4882a593Smuzhiyun */ 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun #define M_DUART_IMR_TX_A _SB_MAKEMASK1(0) 265*4882a593Smuzhiyun #define M_DUART_IMR_RX_A _SB_MAKEMASK1(1) 266*4882a593Smuzhiyun #define M_DUART_IMR_BRK_A _SB_MAKEMASK1(2) 267*4882a593Smuzhiyun #define M_DUART_IMR_IN_A _SB_MAKEMASK1(3) 268*4882a593Smuzhiyun #define M_DUART_IMR_ALL_A _SB_MAKEMASK(4, 0) 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun #define M_DUART_IMR_TX_B _SB_MAKEMASK1(4) 271*4882a593Smuzhiyun #define M_DUART_IMR_RX_B _SB_MAKEMASK1(5) 272*4882a593Smuzhiyun #define M_DUART_IMR_BRK_B _SB_MAKEMASK1(6) 273*4882a593Smuzhiyun #define M_DUART_IMR_IN_B _SB_MAKEMASK1(7) 274*4882a593Smuzhiyun #define M_DUART_IMR_ALL_B _SB_MAKEMASK(4, 4) 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun /* 277*4882a593Smuzhiyun * DUART Channel A Interrupt Mask Register (Table 10-20) 278*4882a593Smuzhiyun * DUART Channel B Interrupt Mask Register (Table 10-21) 279*4882a593Smuzhiyun * Register: DUART_IMR_A 280*4882a593Smuzhiyun * Register: DUART_IMR_B 281*4882a593Smuzhiyun */ 282*4882a593Smuzhiyun 283*4882a593Smuzhiyun #define M_DUART_IMR_TX _SB_MAKEMASK1(0) 284*4882a593Smuzhiyun #define M_DUART_IMR_RX _SB_MAKEMASK1(1) 285*4882a593Smuzhiyun #define M_DUART_IMR_BRK _SB_MAKEMASK1(2) 286*4882a593Smuzhiyun #define M_DUART_IMR_IN _SB_MAKEMASK1(3) 287*4882a593Smuzhiyun #define M_DUART_IMR_ALL _SB_MAKEMASK(4, 0) 288*4882a593Smuzhiyun #define M_DUART_IMR_RESERVED _SB_MAKEMASK(4, 4) 289*4882a593Smuzhiyun 290*4882a593Smuzhiyun 291*4882a593Smuzhiyun /* 292*4882a593Smuzhiyun * DUART Output Port Set Register (Table 10-22) 293*4882a593Smuzhiyun * Register: DUART_SET_OPR 294*4882a593Smuzhiyun */ 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun #define M_DUART_SET_OPR0 _SB_MAKEMASK1(0) 297*4882a593Smuzhiyun #define M_DUART_SET_OPR1 _SB_MAKEMASK1(1) 298*4882a593Smuzhiyun #define M_DUART_SET_OPR2 _SB_MAKEMASK1(2) 299*4882a593Smuzhiyun #define M_DUART_SET_OPR3 _SB_MAKEMASK1(3) 300*4882a593Smuzhiyun #define M_DUART_OPSR_RESERVED _SB_MAKEMASK(4, 4) 301*4882a593Smuzhiyun 302*4882a593Smuzhiyun /* 303*4882a593Smuzhiyun * DUART Output Port Clear Register (Table 10-23) 304*4882a593Smuzhiyun * Register: DUART_CLEAR_OPR 305*4882a593Smuzhiyun */ 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun #define M_DUART_CLR_OPR0 _SB_MAKEMASK1(0) 308*4882a593Smuzhiyun #define M_DUART_CLR_OPR1 _SB_MAKEMASK1(1) 309*4882a593Smuzhiyun #define M_DUART_CLR_OPR2 _SB_MAKEMASK1(2) 310*4882a593Smuzhiyun #define M_DUART_CLR_OPR3 _SB_MAKEMASK1(3) 311*4882a593Smuzhiyun #define M_DUART_OPCR_RESERVED _SB_MAKEMASK(4, 4) 312*4882a593Smuzhiyun 313*4882a593Smuzhiyun /* 314*4882a593Smuzhiyun * DUART Output Port RTS Register (Table 10-24) 315*4882a593Smuzhiyun * Register: DUART_OUT_PORT 316*4882a593Smuzhiyun */ 317*4882a593Smuzhiyun 318*4882a593Smuzhiyun #define M_DUART_OUT_PIN_SET0 _SB_MAKEMASK1(0) 319*4882a593Smuzhiyun #define M_DUART_OUT_PIN_SET1 _SB_MAKEMASK1(1) 320*4882a593Smuzhiyun #define M_DUART_OUT_PIN_CLR0 _SB_MAKEMASK1(2) 321*4882a593Smuzhiyun #define M_DUART_OUT_PIN_CLR1 _SB_MAKEMASK1(3) 322*4882a593Smuzhiyun #define M_DUART_OPRR_RESERVED _SB_MAKEMASK(4, 4) 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun #define M_DUART_OUT_PIN_SET(chan) \ 325*4882a593Smuzhiyun (chan == 0 ? M_DUART_OUT_PIN_SET0 : M_DUART_OUT_PIN_SET1) 326*4882a593Smuzhiyun #define M_DUART_OUT_PIN_CLR(chan) \ 327*4882a593Smuzhiyun (chan == 0 ? M_DUART_OUT_PIN_CLR0 : M_DUART_OUT_PIN_CLR1) 328*4882a593Smuzhiyun 329*4882a593Smuzhiyun #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480) 330*4882a593Smuzhiyun /* 331*4882a593Smuzhiyun * Full Interrupt Control Register 332*4882a593Smuzhiyun */ 333*4882a593Smuzhiyun 334*4882a593Smuzhiyun #define S_DUART_SIG_FULL _SB_MAKE64(0) 335*4882a593Smuzhiyun #define M_DUART_SIG_FULL _SB_MAKEMASK(4, S_DUART_SIG_FULL) 336*4882a593Smuzhiyun #define V_DUART_SIG_FULL(x) _SB_MAKEVALUE(x, S_DUART_SIG_FULL) 337*4882a593Smuzhiyun #define G_DUART_SIG_FULL(x) _SB_GETVALUE(x, S_DUART_SIG_FULL, M_DUART_SIG_FULL) 338*4882a593Smuzhiyun 339*4882a593Smuzhiyun #define S_DUART_INT_TIME _SB_MAKE64(4) 340*4882a593Smuzhiyun #define M_DUART_INT_TIME _SB_MAKEMASK(4, S_DUART_INT_TIME) 341*4882a593Smuzhiyun #define V_DUART_INT_TIME(x) _SB_MAKEVALUE(x, S_DUART_INT_TIME) 342*4882a593Smuzhiyun #define G_DUART_INT_TIME(x) _SB_GETVALUE(x, S_DUART_INT_TIME, M_DUART_INT_TIME) 343*4882a593Smuzhiyun #endif /* 1250 PASS2 || 112x PASS1 || 1480 */ 344*4882a593Smuzhiyun 345*4882a593Smuzhiyun 346*4882a593Smuzhiyun /* ********************************************************************** */ 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun 349*4882a593Smuzhiyun #endif 350