18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* ********************************************************************* 38c2ecf20Sopenharmony_ci * SB1250 Board Support Package 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Synchronous Serial Constants File: sb1250_syncser.h 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * This module contains constants and macros useful for 88c2ecf20Sopenharmony_ci * manipulating the SB1250's Synchronous Serial 98c2ecf20Sopenharmony_ci * 108c2ecf20Sopenharmony_ci * SB1250 specification level: User's manual 1/02/02 118c2ecf20Sopenharmony_ci * 128c2ecf20Sopenharmony_ci ********************************************************************* 138c2ecf20Sopenharmony_ci * 148c2ecf20Sopenharmony_ci * Copyright 2000,2001,2002,2003 158c2ecf20Sopenharmony_ci * Broadcom Corporation. All rights reserved. 168c2ecf20Sopenharmony_ci * 178c2ecf20Sopenharmony_ci ********************************************************************* */ 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci#ifndef _SB1250_SYNCSER_H 218c2ecf20Sopenharmony_ci#define _SB1250_SYNCSER_H 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci#include <asm/sibyte/sb1250_defs.h> 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci/* 268c2ecf20Sopenharmony_ci * Serial Mode Configuration Register 278c2ecf20Sopenharmony_ci */ 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci#define M_SYNCSER_CRC_MODE _SB_MAKEMASK1(0) 308c2ecf20Sopenharmony_ci#define M_SYNCSER_MSB_FIRST _SB_MAKEMASK1(1) 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci#define S_SYNCSER_FLAG_NUM 2 338c2ecf20Sopenharmony_ci#define M_SYNCSER_FLAG_NUM _SB_MAKEMASK(4, S_SYNCSER_FLAG_NUM) 348c2ecf20Sopenharmony_ci#define V_SYNCSER_FLAG_NUM _SB_MAKEVALUE(x, S_SYNCSER_FLAG_NUM) 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci#define M_SYNCSER_FLAG_EN _SB_MAKEMASK1(6) 378c2ecf20Sopenharmony_ci#define M_SYNCSER_HDLC_EN _SB_MAKEMASK1(7) 388c2ecf20Sopenharmony_ci#define M_SYNCSER_LOOP_MODE _SB_MAKEMASK1(8) 398c2ecf20Sopenharmony_ci#define M_SYNCSER_LOOPBACK _SB_MAKEMASK1(9) 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci/* 428c2ecf20Sopenharmony_ci * Serial Clock Source and Line Interface Mode Register 438c2ecf20Sopenharmony_ci */ 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci#define M_SYNCSER_RXCLK_INV _SB_MAKEMASK1(0) 468c2ecf20Sopenharmony_ci#define M_SYNCSER_RXCLK_EXT _SB_MAKEMASK1(1) 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci#define S_SYNCSER_RXSYNC_DLY 2 498c2ecf20Sopenharmony_ci#define M_SYNCSER_RXSYNC_DLY _SB_MAKEMASK(2, S_SYNCSER_RXSYNC_DLY) 508c2ecf20Sopenharmony_ci#define V_SYNCSER_RXSYNC_DLY(x) _SB_MAKEVALUE(x, S_SYNCSER_RXSYNC_DLY) 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci#define M_SYNCSER_RXSYNC_LOW _SB_MAKEMASK1(4) 538c2ecf20Sopenharmony_ci#define M_SYNCSER_RXSTRB_LOW _SB_MAKEMASK1(5) 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci#define M_SYNCSER_RXSYNC_EDGE _SB_MAKEMASK1(6) 568c2ecf20Sopenharmony_ci#define M_SYNCSER_RXSYNC_INT _SB_MAKEMASK1(7) 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci#define M_SYNCSER_TXCLK_INV _SB_MAKEMASK1(8) 598c2ecf20Sopenharmony_ci#define M_SYNCSER_TXCLK_EXT _SB_MAKEMASK1(9) 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci#define S_SYNCSER_TXSYNC_DLY 10 628c2ecf20Sopenharmony_ci#define M_SYNCSER_TXSYNC_DLY _SB_MAKEMASK(2, S_SYNCSER_TXSYNC_DLY) 638c2ecf20Sopenharmony_ci#define V_SYNCSER_TXSYNC_DLY(x) _SB_MAKEVALUE(x, S_SYNCSER_TXSYNC_DLY) 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci#define M_SYNCSER_TXSYNC_LOW _SB_MAKEMASK1(12) 668c2ecf20Sopenharmony_ci#define M_SYNCSER_TXSTRB_LOW _SB_MAKEMASK1(13) 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci#define M_SYNCSER_TXSYNC_EDGE _SB_MAKEMASK1(14) 698c2ecf20Sopenharmony_ci#define M_SYNCSER_TXSYNC_INT _SB_MAKEMASK1(15) 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci/* 728c2ecf20Sopenharmony_ci * Serial Command Register 738c2ecf20Sopenharmony_ci */ 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci#define M_SYNCSER_CMD_RX_EN _SB_MAKEMASK1(0) 768c2ecf20Sopenharmony_ci#define M_SYNCSER_CMD_TX_EN _SB_MAKEMASK1(1) 778c2ecf20Sopenharmony_ci#define M_SYNCSER_CMD_RX_RESET _SB_MAKEMASK1(2) 788c2ecf20Sopenharmony_ci#define M_SYNCSER_CMD_TX_RESET _SB_MAKEMASK1(3) 798c2ecf20Sopenharmony_ci#define M_SYNCSER_CMD_TX_PAUSE _SB_MAKEMASK1(5) 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci/* 828c2ecf20Sopenharmony_ci * Serial DMA Enable Register 838c2ecf20Sopenharmony_ci */ 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci#define M_SYNCSER_DMA_RX_EN _SB_MAKEMASK1(0) 868c2ecf20Sopenharmony_ci#define M_SYNCSER_DMA_TX_EN _SB_MAKEMASK1(4) 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci/* 898c2ecf20Sopenharmony_ci * Serial Status Register 908c2ecf20Sopenharmony_ci */ 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_CRCERR _SB_MAKEMASK1(0) 938c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_ABORT _SB_MAKEMASK1(1) 948c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_OCTET _SB_MAKEMASK1(2) 958c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_LONGFRM _SB_MAKEMASK1(3) 968c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_SHORTFRM _SB_MAKEMASK1(4) 978c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_OVERRUN _SB_MAKEMASK1(5) 988c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_SYNC_ERR _SB_MAKEMASK1(6) 998c2ecf20Sopenharmony_ci#define M_SYNCSER_TX_CRCERR _SB_MAKEMASK1(8) 1008c2ecf20Sopenharmony_ci#define M_SYNCSER_TX_UNDERRUN _SB_MAKEMASK1(9) 1018c2ecf20Sopenharmony_ci#define M_SYNCSER_TX_SYNC_ERR _SB_MAKEMASK1(10) 1028c2ecf20Sopenharmony_ci#define M_SYNCSER_TX_PAUSE_COMPLETE _SB_MAKEMASK1(11) 1038c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_EOP_COUNT _SB_MAKEMASK1(16) 1048c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_EOP_TIMER _SB_MAKEMASK1(17) 1058c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_EOP_SEEN _SB_MAKEMASK1(18) 1068c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_HWM _SB_MAKEMASK1(19) 1078c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_LWM _SB_MAKEMASK1(20) 1088c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_DSCR _SB_MAKEMASK1(21) 1098c2ecf20Sopenharmony_ci#define M_SYNCSER_RX_DERR _SB_MAKEMASK1(22) 1108c2ecf20Sopenharmony_ci#define M_SYNCSER_TX_EOP_COUNT _SB_MAKEMASK1(24) 1118c2ecf20Sopenharmony_ci#define M_SYNCSER_TX_EOP_TIMER _SB_MAKEMASK1(25) 1128c2ecf20Sopenharmony_ci#define M_SYNCSER_TX_EOP_SEEN _SB_MAKEMASK1(26) 1138c2ecf20Sopenharmony_ci#define M_SYNCSER_TX_HWM _SB_MAKEMASK1(27) 1148c2ecf20Sopenharmony_ci#define M_SYNCSER_TX_LWM _SB_MAKEMASK1(28) 1158c2ecf20Sopenharmony_ci#define M_SYNCSER_TX_DSCR _SB_MAKEMASK1(29) 1168c2ecf20Sopenharmony_ci#define M_SYNCSER_TX_DERR _SB_MAKEMASK1(30) 1178c2ecf20Sopenharmony_ci#define M_SYNCSER_TX_DZERO _SB_MAKEMASK1(31) 1188c2ecf20Sopenharmony_ci 1198c2ecf20Sopenharmony_ci/* 1208c2ecf20Sopenharmony_ci * Sequencer Table Entry format 1218c2ecf20Sopenharmony_ci */ 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ci#define M_SYNCSER_SEQ_LAST _SB_MAKEMASK1(0) 1248c2ecf20Sopenharmony_ci#define M_SYNCSER_SEQ_BYTE _SB_MAKEMASK1(1) 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ci#define S_SYNCSER_SEQ_COUNT 2 1278c2ecf20Sopenharmony_ci#define M_SYNCSER_SEQ_COUNT _SB_MAKEMASK(4, S_SYNCSER_SEQ_COUNT) 1288c2ecf20Sopenharmony_ci#define V_SYNCSER_SEQ_COUNT(x) _SB_MAKEVALUE(x, S_SYNCSER_SEQ_COUNT) 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci#define M_SYNCSER_SEQ_ENABLE _SB_MAKEMASK1(6) 1318c2ecf20Sopenharmony_ci#define M_SYNCSER_SEQ_STROBE _SB_MAKEMASK1(7) 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci#endif 134