Files
banban/ql-bootloader/common/inc/ssp_reg.h

417 lines
15 KiB
C

/******************************************************************************
*
* Name: ssp_reg.h
* Project: Hermon-2
* Purpose: Testing
*
******************************************************************************/
/******************************************************************************
*
* (C)Copyright 2005 - 2011 Marvell. All Rights Reserved.
*
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MARVELL.
* The copyright notice above does not evidence any actual or intended
* publication of such source code.
* This Module contains Proprietary Information of Marvell and should be
* treated as Confidential.
* The information in this file is provided for the exclusive use of the
* licensees of Marvell.
* Such users have the right to use, modify, and incorporate this code into
* products for purposes authorized by the license agreement provided they
* include this notice and the associated copyright notice with any such
* product.
* The information in this file is provided "AS IS" without warranty.
*
******************************************************************************/
/******************************************************************************
*
* This file was automatically generated by reg.pl using * SSP.csv
*
******************************************************************************/
/******************************************************************************
*
* History:
*
********* PLEASE INSERT THE CVS HISTORY OF THE PREVIOUS VERSION HERE. *********
*******************************************************************************/
#ifndef __INC_SSP_H
#define __INC_SSP_H
/*
*
* THE BASE ADDRESSES
*
*/
#define SSP0_BASE 0xD401B000
#define SSP1_BASE 0xD401B800
#define SSP2_BASE 0xD401C000
#define APBC_SSP0_CLK_RST (0xD4015000 + 0x001C) //Clock/Reset Control Register for SSP 0
#define APBC_SSP1_CLK_RST (0xD4015000 + 0x0020) //Clock/Reset Control Register for SSP 1
#define APBC_SSP2_CLK_RST (0xD4015000 + 0x004C) //Clock/Reset Control Register for SSP 2
#define GPIO0_BASE 0xD4019000
#define GPIO1_BASE 0xD4019004
#define GPIO2_BASE 0xD4019008
#define GPIO3_BASE 0xD4019100
#define GPIO_PLR (0x0000) /* 32 bit GPIO Pin-Level Register */
#define GPIO_PDR (0x000C) /* 32 bit GPIO Pin Direction Register */
#define GPIO_PSR (0x0018) /* 32 bit GPIO Pin Output Set Register */
#define GPIO_PCR (0x0024) /* 32 bit GPIO Pin Output Clear Register */
#define GPIO_RER (0x0030) /* 32 bit GPIO Rising-Edge Detect Enable Register*/
#define GPIO_FERX (0x003C) /* 32 bit GPIO Falling-Edge Detect Enable Register*/
#define GPIO_EDR (0x0048) /* 32 bit GPIO Edge Detect Status Register */
#define GPIO_SDR (0x0054) /* 32 bit Bit-wise Set of GPIO Direction Register */
#define GPIO_CDR (0x0060) /* 32 bit Bit-wise Clear of GPIO Direction Register */
#define GPIO_SRERX (0x006c) /* 32 bit Bit-wise Set of GPIO Rising Edge Detect Enable Register */
#define GPIO_CRERX (0x0078) /* 32 bit Bit-wise Clear of GPIO Rising Edge Detect Enable Register */
#define GPIO_SFER (0x0084) /* 32 bit Bit-wise Set of GPIO Falling Edge Detect Enable Register */
#define GPIO_CFER (0x0090) /* 32 bit Bit-wise Clear of GPIO Falling Edge Detect Enable Register */
#define APMASK (0x009c) /* 32 bit AP Bit-wise Mask of GPIO Edge Detect Register */
#define CPMASK (0x00a8) /* 32 bit CP Bit-wise Mask of GPIO Edge Detect Register */
#define FlashAddrOutOfRange 0x3d
#define SSPWaitTxEmptyTimeOutError 0x80
#define SSPRdStatusTimeOutError 0x81
#define SSPWelWaitTxEmptyTimeOutError 0x82
#define SSPWaitForWELTimeOutError 0x83
#define SSPWaitCompleteTimeOutError 0x84
#define SSPRxChannelTimeOutError 0x85
#define SSPTxChannelTimeOutError 0x86
#define SSPNOTREADY 0x87
/*
*
* THE REGISTER DEFINES
*
*/
#define SSP_SSCR0 (0x0000) /* 32 bit SSP Control Register 0 */
#define SSP_SSCR1 (0x0004) /* 32 bit SSP Control Register 1 */
#define SSP_SSSR (0x0014) /* 32 bit SSP Status Register */
#define SSP_SSITR (0x000C) /* 32 bit SSP Interrupt Test
* Register
*/
#define SSP_SSDR (0x0010) /* 32 bit SSP Data Register */
#define SSP_SSTO (0x0028) /* 32 bit SSP Time Out Register */
#define SSP_SSPSP (0x002C) /* 32 bit SSP Programmable Serial
* Protocol Register
*/
#define SSP_SSTSA (0x0030) /* 32 bit SSP TX Time Slot Active
* Register
*/
#define SSP_SSRSA (0x0034) /* 32 bit SSP RX Time Slot Active
* Register
*/
#define SSP_SSTSS (0x0038) /* 32 bit SSP Time Slot Status
* Register
*/
#define SSP_SSACD (0x003C) /* 32 bit SSP Audio Clock Divider
* Register
*/
#define SSP_SSACDD (0x0040) /* 32 bit SSP Audio Clock Dither
* Divider Register
*/
#define DUMMY_REGISTER (0x0000) /* 32 bit This is a Dummy Register */
/*
*
* THE BIT DEFINES
*
*/
/* SSP_SSCR0 0x0000 SSP Control Register 0 */
#define SSP_SSCR0_MOD BIT_31 /* Mode */
#define SSP_SSCR0_ACS BIT_30 /* Audio Clock Select */
#define SSP_SSCR0_FPCKE BIT_29 /* FIFO Packing Enable */
/* Bit(s) SSP_SSCR0_RSRV_28 reserved */
#define SSP_SSCR0_52MM BIT_27 /* 52M[bps] M[ode */
#define SSP_SSCR0_FRDC_MSK SHIFT24(0x7) /* Frame Rate Divider Control */
#define SSP_SSCR0_FRDC_BASE 24
/* Transmit FIFO Underrun Interrupt Mask */
#define SSP_SSCR0_TIM BIT_23
/* Receive FIFO Overrun Interrupt Mask */
#define SSP_SSCR0_RIM BIT_22
#define SSP_SSCR0_NCS BIT_21 /* Network Clock Select */
#define SSP_SSCR0_EDSS BIT_20 /* Extended Data Size Select */
#define SSP_SSCR0_SCR_MSK SHIFT8(0xfff) /* Serial Clock Rate */
#define SSP_SSCR0_SCR_BASE 8
#define SSP_SSCR0_SSE BIT_7 /* Synchronous Serial Port Enable */
#define SSP_SSCR0_ECS BIT_6 /* External Clock Select */
#define SSP_SSCR0_FRF_MSK SHIFT4(0x3) /* Frame Format */
#define SSP_SSCR0_FRF_BASE 4
#define SSP_SSCR0_DSS_MSK SHIFT0(0xf) /* Data Size Select */
#define SSP_SSCR0_DSS_BASE 0
/* SSP_SSCR1 0x0004 SSP Control Register 1 */
/* TXD Three-state Enable On Last Phase */
#define SSP_SSCR1_TTELP BIT_31
#define SSP_SSCR1_TTE BIT_30 /* TXD Three-State Enable */
#define SSP_SSCR1_EBCEI BIT_29 /* Enable Bit Count Error Interrupt */
#define SSP_SSCR1_SCFR BIT_28 /* Slave Clock Free Running */
#define SSP_SSCR1_ECRA BIT_27 /* Enable Clock Request A */
#define SSP_SSCR1_ECRB BIT_26 /* Enable Clock Request B */
/* SSP Serial Bit Rate Clock (SSPSCLKx) Direction */
#define SSP_SSCR1_SCLKDIR BIT_25
#define SSP_SSCR1_SFRMDIR BIT_24 /* SSP Frame (SSPSFRMx) Direction */
#define SSP_SSCR1_RWOT BIT_23 /* Receive Without Transmit */
#define SSP_SSCR1_TRAIL BIT_22 /* Trailing Byte */
#define SSP_SSCR1_TSRE BIT_21 /* Transmit Service Request Enable */
#define SSP_SSCR1_RSRE BIT_20 /* Receive Service Request Enable */
/* Receiver Time-out Interrupt Enable */
#define SSP_SSCR1_TINTE BIT_19
/* Peripheral Trailing Byte Interrupt Enable */
#define SSP_SSCR1_PINTE BIT_18
/* Bit(s) SSP_SSCR1_RSRV_17 reserved */
#define SSP_SSCR1_IFS BIT_16 /* Invert Frame Signal */
#define SSP_SSCR1_STRF BIT_15 /* Select FIFO For Efwr */
#define SSP_SSCR1_EFWR BIT_14 /* Enable FIFO Write/read */
#define SSP_SSCR1_RFT_MSK SHIFT10(0xf) /* RXFIFO Trigger Threshold */
#define SSP_SSCR1_RFT_BASE 10
#define SSP_SSCR1_TFT_MSK SHIFT6(0xf) /* TXFIFO Trigger Threshold */
#define SSP_SSCR1_TFT_BASE 6
/* Motorola SPI SSPSCLK phase setting */
#define SSP_SSCR1_SPH BIT_4
/* Motorola SPI SSPSCLK Polarity Setting */
#define SSP_SSCR1_SPO BIT_3
#define SSP_SSCR1_LBM BIT_2 /* Loopback Mode */
#define SSP_SSCR1_TIE BIT_1 /* Transmit FIFO Interrupt Enable */
#define SSP_SSCR1_RIE BIT_0 /* Receive FIFO Interrupt Enable */
/* SSP_SSSR 0x0008 SSP Status Register */
#define SSP_SSSR_OSS BIT_31 /* Odd Sample Status */
/* TX FIFO Odd Sample Status */
#define SSP_SSSR_TX_OSS BIT_30
/* Bit(s) SSP_SSSR_RSRV_29_24 reserved */
#define SSP_SSSR_BCE BIT_23 /* Bit Count Error */
/* Clock Synchronization Status */
#define SSP_SSSR_CSS BIT_22
#define SSP_SSSR_TUR BIT_21 /* Transmit FIFO Underrun */
#define SSP_SSSR_EOC BIT_20 /* End Of Chain */
/* Receiver Time-out Interrupt */
#define SSP_SSSR_TINT BIT_19
/* Peripheral Trailing Byte Interrupt */
#define SSP_SSSR_PINT BIT_18
/* Bit(s) SSP_SSSR_RSRV_17_16 reserved */
#define SSP_SSSR_RFL_MSK SHIFT12(0xf) /* Receive FIFO Level */
#define SSP_SSSR_RFL_BASE 12
#define SSP_SSSR_TFL_MSK SHIFT8(0xf) /* Transmit FIFO Level */
#define SSP_SSSR_TFL_BASE 8
#define SSP_SSSR_ROR BIT_7 /* Receive FIFO Overrun */
/* Receive FIFO Service Request */
#define SSP_SSSR_RFS BIT_6
/* Transmit FIFO Service Request */
#define SSP_SSSR_TFS BIT_5
#define SSP_SSSR_BSY BIT_4 /* SSP Busy */
#define SSP_SSSR_RNE BIT_3 /* Receive FIFO Not Empty */
#define SSP_SSSR_TNF BIT_2 /* Transmit FIFO Not Full */
/* Bit(s) SSP_SSSR_RSRV_1_0 reserved */
/* SSP_SSITR 0x000C SSP Interrupt Test Register */
/* Bit(s) SSP_SSITR_RSRV_31_8 reserved */
#define SSP_SSITR_TROR BIT_7 /* Test RXFIFO Overrun */
/* Test RXFIFO Service Request */
#define SSP_SSITR_TRFS BIT_6
/* Test TXFIFO Service Request */
#define SSP_SSITR_TTFS BIT_5
/* Bit(s) SSP_SSITR_RSRV_4_0 reserved */
/* SSP_SSDR 0x0010 SSP Data Register */
#define SSP_SSDR_DATA_MSK SHIFT0(0xffffffff) /* DATA */
#define SSP_SSDR_DATA_BASE 0
/* */
/* Bit(s) SSP_SSTO_RSRV_31_24 reserved */
#define SSP_SSTO_TIMEOUT_MSK SHIFT0(0xffffff) /* Timeout Value */
#define SSP_SSTO_TIMEOUT_BASE 0
/* SSP_SSPSP 0x002C SSP Programmable Serial Protocol Register */
/* Bit(s) SSP_SSPSP_RSRV_31 reserved */
#define SSP_SSPSP_EDMYSTOP_MSK SHIFT28(0x7) /* Extended Dummy Stop */
#define SSP_SSPSP_EDMYSTOP_BASE 28
#define SSP_SSPSP_EDMYSTRT_MSK SHIFT26(0x3) /* Extended Dummy Start */
#define SSP_SSPSP_EDMYSTRT_BASE 26
/* Frame Sync Relative Timing Bit */
#define SSP_SSPSP_FSRT BIT_25
#define SSP_SSPSP_DMYSTOP_MSK SHIFT23(0x3) /* Dummy Stop */
#define SSP_SSPSP_DMYSTOP_BASE 23
/* Bit(s) SSP_SSPSP_RSRV_22 reserved */
#define SSP_SSPSP_SFRMWDTH_MSK SHIFT16(0x3f) /* Serial Frame Width */
#define SSP_SSPSP_SFRMWDTH_BASE 16
#define SSP_SSPSP_SFRMDLY_MSK SHIFT9(0x7f) /* Serial Frame Delay */
#define SSP_SSPSP_SFRMDLY_BASE 9
#define SSP_SSPSP_DMYSTRT_MSK SHIFT7(0x3) /* Dummy Start */
#define SSP_SSPSP_DMYSTRT_BASE 7
#define SSP_SSPSP_STRTDLY_MSK SHIFT4(0x7) /* Start Delay */
#define SSP_SSPSP_STRTDLY_BASE 4
#define SSP_SSPSP_ETDS BIT_3 /* End Of Transfer Data State */
#define SSP_SSPSP_SFRMP BIT_2 /* Serial Frame Polarity */
#define SSP_SSPSP_SCMODE_MSK SHIFT0(0x3) /* Serial Bit-rate Clock Mode */
#define SSP_SSPSP_SCMODE_BASE 0
/* SSP_SSTSA 0x0030 SSP TX Time Slot Active Register */
/* Bit(s) SSP_SSTSA_RSRV_31_8 reserved */
#define SSP_SSTSA_TTSA_MSK SHIFT0(0xff) /* TX Time Slot Active */
#define SSP_SSTSA_TTSA_BASE 0
/* SSP_SSRSA 0x0034 SSP RX Time Slot Active Register */
/* Bit(s) SSP_SSRSA_RSRV_31_8 reserved */
#define SSP_SSRSA_RTSA_MSK SHIFT0(0xff) /* RX Time Slot Active */
#define SSP_SSRSA_RTSA_BASE 0
/* SSP_SSTSS 0x0038 SSP Time Slot Status Register */
#define SSP_SSTSS_NMBSY BIT_31 /* Network Mode Busy */
/* Bit(s) SSP_SSTSS_RSRV_30_3 reserved */
#define SSP_SSTSS_TSS_MSK SHIFT0(0x7) /* Time Slot Status */
#define SSP_SSTSS_TSS_BASE 0
/* SSP_SSACD 0x003C SSP Audio Clock Divider Register */
/* Bit(s) SSP_SSACD_RSRV_31_8 reserved */
#define SSP_SSACD_SCDX8 BIT_7 /* SYSCLK Divided By 8 */
/* Audio Clock PLL Select */
#define SSP_SSACD_ACPS_MSK SHIFT4(0x7)
#define SSP_SSACD_ACPS_BASE 4
/* SYSCLK Divider Bypass */
#define SSP_SSACD_SCDB BIT_3
/* Audio Clock Divider Select */
#define SSP_SSACD_ACDS_MSK SHIFT0(0x7)
#define SSP_SSACD_ACDS_BASE 0
/* SSP_SSACDD 0x0040 SSP Audio Clock Dither Divider Register */
/* Bit(s) SSP_SSACDD_RSRV_31 reserved */
#define SSP_SSACDD_NUM_MSK SHIFT16(0x7fff) /* Numerator */
#define SSP_SSACDD_NUM_BASE 16
/* Bit(s) SSP_SSACDD_RSRV_15_12 reserved */
#define SSP_SSACDD_DEN_MSK SHIFT0(0xfff) /* Denominator */
#define SSP_SSACDD_DEN_BASE 0
/* DUMMY_REGISTER 0x0000 This is a Dummy Register */
#define DUMMY_REGISTER_DUMMY_MSK SHIFT0(0xffffffff) /* Ignore this register */
#define DUMMY_REGISTER_DUMMY_BASE 0
/*
*
* THE REGISTER DEFINES
*
*/
#define SSP_TOP_CTRL (0x0000)
#define SSP_FIFO_CTRL (0x0004)
#define SSP_INT_EN (0x0008)
#define SSP_TIMEOUT (0x000C)
#define SSP_DATAR (0x0010) /* 32 bit SSP Data Register */
#define SSP_STATUS (0x0014)
/*
*
* SSP Top Control Register
*
*/
/* TXD Three-state Enable On Last Phase */
#define SSP_TCR_TTELP BIT_18
/* TXD Three-State Enable */
#define SSP_TCR_TTE BIT_17
/* Slave Clock Free Running */
#define SSP_TCR_SCFR BIT_16
/* Invert Frame Signal */
#define SSP_TCR_IFS BIT_15
/* Hold Frame Low Control */
#define SSP_TCR_HFL BIT_14
/* Trailing Byte */
#define SSP_TCR_TRIAL BIT_13
/* Loopback Mode */
#define SSP_TCR_LBM BIT_12
/* Motorola SPI SSPSCLK phase setting */
#define SSP_TCR_SPH BIT_11
/* Motorola SPI SSPSCLK Polarity Setting */
#define SSP_TCR_SPO BIT_10
/* Data Size Select */
#define SSP_TCR_DSS_MASK SHIFT5(0x1f)
#define SSP_TCR_DSS32 SHIFT5(0x1f)
#define SSP_TCR_DSS24 SHIFT5(0x17)
#define SSP_TCR_DSS16 SHIFT5(0xf)
#define SSP_TCR_DSS8 SHIFT5(0x7)
/* SSP Frame (SSPSFRMx) Direction */
#define SSP_TCR_SFRMDIR BIT_4
/* SSP Serial Bit Rate Clock (SSPSCLKx) Direction */
#define SSP_TCR_SCLKDIR BIT_3
#define SSP_TCR_FRF_MASK SHIFT1(0x3)
/* Synchronous Serial Port Enable */
#define SSP_TCR_SSE BIT_0
/*
*
* SSP FIFO Control Register
*
*/
/* Rx FIFO Auto Full Control */
#define SSP_FCR_RAFC BIT_17
/* apb_pwdata Write to Tx FIFO Endian */
#define SSP_FCR_TWE_MASK SHIFT14(0x3)
#define SSP_FCR_TWE(x) (x << 14)
/* apb_prdata Read from Rx FIFO Endian */
#define SSP_FCR_RRE_MASK SHIFT12(0x3)
#define SSP_FCR_RRE(x) (x << 12)
/* Receive Service Request Enable */
#define SSP_FCR_RSRE BIT_11
/* Transmit Service Request Enable */
#define SSP_FCR_TSRE BIT_10
/* RXFIFO Trigger Threshold */
/* MaxBurstSize(DMA)/Data Size Select(SSP) - 1 */
#define SSP_FCR_RFT_MASK SHIFT5(0x1f)
#define SSP_FCR_RFT(x) (x << 5)
/* TXFIFO Trigger Threshold */
/* MaxBurstSize(DMA)/Data Size Select(SSP) - 1 */
#define SSP_FCR_TFT_MASK SHIFT0(0x1f)
#define SSP_FCR_TFT(x) (x << 0)
/*
*
* SSP Interrupt Enable Register
*
*/
/* Transmit FIFO Underrun Interrupt Mask */
#define SSP_IER_TIM BIT_5
/* Receive FIFO Overrun Interrupt Mask */
#define SSP_IER_RIM BIT_4
/* Transmit FIFO Interrupt Enable */
#define SSP_IER_TIE BIT_3
/* Receive FIFO Interrupt Enable */
#define SSP_IER_RIE BIT_2
/* Receiver Time-out Interrupt Enable */
#define SSP_IER_RTOIE BIT_1
/* -------------------- */
#endif /* __INC_SSP_H */