summaryrefslogtreecommitdiffstatshomepage
path: root/cc3200/hal/inc/hw_mcspi.h
diff options
context:
space:
mode:
Diffstat (limited to 'cc3200/hal/inc/hw_mcspi.h')
-rw-r--r--cc3200/hal/inc/hw_mcspi.h1745
1 files changed, 1745 insertions, 0 deletions
diff --git a/cc3200/hal/inc/hw_mcspi.h b/cc3200/hal/inc/hw_mcspi.h
new file mode 100644
index 0000000000..079e4b6b67
--- /dev/null
+++ b/cc3200/hal/inc/hw_mcspi.h
@@ -0,0 +1,1745 @@
+//*****************************************************************************
+//
+// Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
+//
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+//
+// Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of Texas Instruments Incorporated nor the names of
+// its contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "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 COPYRIGHT
+// OWNER OR CONTRIBUTORS 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.
+//
+//*****************************************************************************
+
+#ifndef __HW_MCSPI_H__
+#define __HW_MCSPI_H__
+
+//*****************************************************************************
+//
+// The following are defines for the MCSPI register offsets.
+//
+//*****************************************************************************
+#define MCSPI_O_HL_REV 0x00000000 // IP Revision Identifier (X.Y.R)
+ // Used by software to track
+ // features bugs and compatibility
+#define MCSPI_O_HL_HWINFO 0x00000004 // Information about the IP
+ // module's hardware configuration
+ // i.e. typically the module's HDL
+ // generics (if any). Actual field
+ // format and encoding is up to the
+ // module's designer to decide.
+#define MCSPI_O_HL_SYSCONFIG 0x00000010 // 0x4402 1010 0x4402 2010 Clock
+ // management configuration
+#define MCSPI_O_REVISION 0x00000100 // 0x4402 1100 0x4402 2100 This
+ // register contains the hard coded
+ // RTL revision number.
+#define MCSPI_O_SYSCONFIG 0x00000110 // 0x4402 1110 0x4402 2110 This
+ // register allows controlling
+ // various parameters of the OCP
+ // interface.
+#define MCSPI_O_SYSSTATUS 0x00000114 // 0x4402 1114 0x4402 2114 This
+ // register provides status
+ // information about the module
+ // excluding the interrupt status
+ // information
+#define MCSPI_O_IRQSTATUS 0x00000118 // 0x4402 1118 0x4402 2118 The
+ // interrupt status regroups all the
+ // status of the module internal
+ // events that can generate an
+ // interrupt
+#define MCSPI_O_IRQENABLE 0x0000011C // 0x4402 111C 0x4402 211C This
+ // register allows to enable/disable
+ // the module internal sources of
+ // interrupt on an event-by-event
+ // basis.
+#define MCSPI_O_WAKEUPENABLE 0x00000120 // 0x4402 1120 0x4402 2120 The
+ // wakeup enable register allows to
+ // enable/disable the module
+ // internal sources of wakeup on
+ // event-by-event basis.
+#define MCSPI_O_SYST 0x00000124 // 0x4402 1124 0x4402 2124 This
+ // register is used to check the
+ // correctness of the system
+ // interconnect either internally to
+ // peripheral bus or externally to
+ // device IO pads when the module is
+ // configured in system test
+ // (SYSTEST) mode.
+#define MCSPI_O_MODULCTRL 0x00000128 // 0x4402 1128 0x4402 2128 This
+ // register is dedicated to the
+ // configuration of the serial port
+ // interface.
+#define MCSPI_O_CH0CONF 0x0000012C // 0x4402 112C 0x4402 212C This
+ // register is dedicated to the
+ // configuration of the channel 0
+#define MCSPI_O_CH0STAT 0x00000130 // 0x4402 1130 0x4402 2130 This
+ // register provides status
+ // information about transmitter and
+ // receiver registers of channel 0
+#define MCSPI_O_CH0CTRL 0x00000134 // 0x4402 1134 0x4402 2134 This
+ // register is dedicated to enable
+ // the channel 0
+#define MCSPI_O_TX0 0x00000138 // 0x4402 1138 0x4402 2138 This
+ // register contains a single SPI
+ // word to transmit on the serial
+ // link what ever SPI word length
+ // is.
+#define MCSPI_O_RX0 0x0000013C // 0x4402 113C 0x4402 213C This
+ // register contains a single SPI
+ // word received through the serial
+ // link what ever SPI word length
+ // is.
+#define MCSPI_O_CH1CONF 0x00000140 // 0x4402 1140 0x4402 2140 This
+ // register is dedicated to the
+ // configuration of the channel.
+#define MCSPI_O_CH1STAT 0x00000144 // 0x4402 1144 0x4402 2144 This
+ // register provides status
+ // information about transmitter and
+ // receiver registers of channel 1
+#define MCSPI_O_CH1CTRL 0x00000148 // 0x4402 1148 0x4402 2148 This
+ // register is dedicated to enable
+ // the channel 1
+#define MCSPI_O_TX1 0x0000014C // 0x4402 114C 0x4402 214C This
+ // register contains a single SPI
+ // word to transmit on the serial
+ // link what ever SPI word length
+ // is.
+#define MCSPI_O_RX1 0x00000150 // 0x4402 1150 0x4402 2150 This
+ // register contains a single SPI
+ // word received through the serial
+ // link what ever SPI word length
+ // is.
+#define MCSPI_O_CH2CONF 0x00000154 // 0x4402 1154 0x4402 2154 This
+ // register is dedicated to the
+ // configuration of the channel 2
+#define MCSPI_O_CH2STAT 0x00000158 // 0x4402 1158 0x4402 2158 This
+ // register provides status
+ // information about transmitter and
+ // receiver registers of channel 2
+#define MCSPI_O_CH2CTRL 0x0000015C // 0x4402 115C 0x4402 215C This
+ // register is dedicated to enable
+ // the channel 2
+#define MCSPI_O_TX2 0x00000160 // 0x4402 1160 0x4402 2160 This
+ // register contains a single SPI
+ // word to transmit on the serial
+ // link what ever SPI word length
+ // is.
+#define MCSPI_O_RX2 0x00000164 // 0x4402 1164 0x4402 2164 This
+ // register contains a single SPI
+ // word received through the serial
+ // link what ever SPI word length
+ // is.
+#define MCSPI_O_CH3CONF 0x00000168 // 0x4402 1168 0x4402 2168 This
+ // register is dedicated to the
+ // configuration of the channel 3
+#define MCSPI_O_CH3STAT 0x0000016C // 0x4402 116C 0x4402 216C This
+ // register provides status
+ // information about transmitter and
+ // receiver registers of channel 3
+#define MCSPI_O_CH3CTRL 0x00000170 // 0x4402 1170 0x4402 2170 This
+ // register is dedicated to enable
+ // the channel 3
+#define MCSPI_O_TX3 0x00000174 // 0x4402 1174 0x4402 2174 This
+ // register contains a single SPI
+ // word to transmit on the serial
+ // link what ever SPI word length
+ // is.
+#define MCSPI_O_RX3 0x00000178 // 0x4402 1178 0x4402 2178 This
+ // register contains a single SPI
+ // word received through the serial
+ // link what ever SPI word length
+ // is.
+#define MCSPI_O_XFERLEVEL 0x0000017C // 0x4402 117C 0x4402 217C This
+ // register provides transfer levels
+ // needed while using FIFO buffer
+ // during transfer.
+#define MCSPI_O_DAFTX 0x00000180 // 0x4402 1180 0x4402 2180 This
+ // register contains the SPI words
+ // to transmit on the serial link
+ // when FIFO used and DMA address is
+ // aligned on 256 bit.This register
+ // is an image of one of MCSPI_TX(i)
+ // register corresponding to the
+ // channel which have its FIFO
+ // enabled.
+#define MCSPI_O_DAFRX 0x000001A0 // 0x4402 11A0 0x4402 21A0 This
+ // register contains the SPI words
+ // to received on the serial link
+ // when FIFO used and DMA address is
+ // aligned on 256 bit.This register
+ // is an image of one of MCSPI_RX(i)
+ // register corresponding to the
+ // channel which have its FIFO
+ // enabled.
+
+
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_HL_REV register.
+//
+//******************************************************************************
+#define MCSPI_HL_REV_SCHEME_M 0xC0000000
+#define MCSPI_HL_REV_SCHEME_S 30
+#define MCSPI_HL_REV_RSVD_M 0x30000000 // Reserved These bits are
+ // initialized to zero and writes to
+ // them are ignored.
+#define MCSPI_HL_REV_RSVD_S 28
+#define MCSPI_HL_REV_FUNC_M 0x0FFF0000 // Function indicates a software
+ // compatible module family. If
+ // there is no level of software
+ // compatibility a new Func number
+ // (and hence REVISION) should be
+ // assigned.
+#define MCSPI_HL_REV_FUNC_S 16
+#define MCSPI_HL_REV_R_RTL_M 0x0000F800 // RTL Version (R) maintained by IP
+ // design owner. RTL follows a
+ // numbering such as X.Y.R.Z which
+ // are explained in this table. R
+ // changes ONLY when: (1) PDS
+ // uploads occur which may have been
+ // due to spec changes (2) Bug fixes
+ // occur (3) Resets to '0' when X or
+ // Y changes. Design team has an
+ // internal 'Z' (customer invisible)
+ // number which increments on every
+ // drop that happens due to DV and
+ // RTL updates. Z resets to 0 when R
+ // increments.
+#define MCSPI_HL_REV_R_RTL_S 11
+#define MCSPI_HL_REV_X_MAJOR_M 0x00000700 // Major Revision (X) maintained by
+ // IP specification owner. X changes
+ // ONLY when: (1) There is a major
+ // feature addition. An example
+ // would be adding Master Mode to
+ // Utopia Level2. The Func field (or
+ // Class/Type in old PID format)
+ // will remain the same. X does NOT
+ // change due to: (1) Bug fixes (2)
+ // Change in feature parameters.
+#define MCSPI_HL_REV_X_MAJOR_S 8
+#define MCSPI_HL_REV_CUSTOM_M 0x000000C0
+#define MCSPI_HL_REV_CUSTOM_S 6
+#define MCSPI_HL_REV_Y_MINOR_M 0x0000003F // Minor Revision (Y) maintained by
+ // IP specification owner. Y changes
+ // ONLY when: (1) Features are
+ // scaled (up or down). Flexibility
+ // exists in that this feature
+ // scalability may either be
+ // represented in the Y change or a
+ // specific register in the IP that
+ // indicates which features are
+ // exactly available. (2) When
+ // feature creeps from Is-Not list
+ // to Is list. But this may not be
+ // the case once it sees silicon; in
+ // which case X will change. Y does
+ // NOT change due to: (1) Bug fixes
+ // (2) Typos or clarifications (3)
+ // major functional/feature
+ // change/addition/deletion. Instead
+ // these changes may be reflected
+ // via R S X as applicable. Spec
+ // owner maintains a
+ // customer-invisible number 'S'
+ // which changes due to: (1)
+ // Typos/clarifications (2) Bug
+ // documentation. Note that this bug
+ // is not due to a spec change but
+ // due to implementation.
+ // Nevertheless the spec tracks the
+ // IP bugs. An RTL release (say for
+ // silicon PG1.1) that occurs due to
+ // bug fix should document the
+ // corresponding spec number (X.Y.S)
+ // in its release notes.
+#define MCSPI_HL_REV_Y_MINOR_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_HL_HWINFO register.
+//
+//******************************************************************************
+#define MCSPI_HL_HWINFO_RETMODE 0x00000040
+#define MCSPI_HL_HWINFO_FFNBYTE_M \
+ 0x0000003E
+
+#define MCSPI_HL_HWINFO_FFNBYTE_S 1
+#define MCSPI_HL_HWINFO_USEFIFO 0x00000001
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// MCSPI_O_HL_SYSCONFIG register.
+//
+//******************************************************************************
+#define MCSPI_HL_SYSCONFIG_IDLEMODE_M \
+ 0x0000000C // Configuration of the local
+ // target state management mode. By
+ // definition target can handle
+ // read/write transaction as long as
+ // it is out of IDLE state. 0x0
+ // Force-idle mode: local target's
+ // idle state follows (acknowledges)
+ // the system's idle requests
+ // unconditionally i.e. regardless
+ // of the IP module's internal
+ // requirements.Backup mode for
+ // debug only. 0x1 No-idle mode:
+ // local target never enters idle
+ // state.Backup mode for debug only.
+ // 0x2 Smart-idle mode: local
+ // target's idle state eventually
+ // follows (acknowledges) the
+ // system's idle requests depending
+ // on the IP module's internal
+ // requirements.IP module shall not
+ // generate (IRQ- or
+ // DMA-request-related) wakeup
+ // events. 0x3 "Smart-idle
+ // wakeup-capable mode: local
+ // target's idle state eventually
+ // follows (acknowledges) the
+ // system's idle requests depending
+ // on the IP module's internal
+ // requirements.IP module may
+ // generate (IRQ- or
+ // DMA-request-related) wakeup
+ // events when in idle state.Mode is
+ // only relevant if the appropriate
+ // IP module ""swakeup"" output(s)
+ // is (are) implemented."
+
+#define MCSPI_HL_SYSCONFIG_IDLEMODE_S 2
+#define MCSPI_HL_SYSCONFIG_FREEEMU \
+ 0x00000002 // Sensitivity to emulation (debug)
+ // suspend input signal. 0 IP module
+ // is sensitive to emulation suspend
+ // 1 IP module is not sensitive to
+ // emulation suspend
+
+#define MCSPI_HL_SYSCONFIG_SOFTRESET \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_REVISION register.
+//
+//******************************************************************************
+#define MCSPI_REVISION_REV_M 0x000000FF // IP revision [7:4] Major revision
+ // [3:0] Minor revision Examples:
+ // 0x10 for 1.0 0x21 for 2.1
+#define MCSPI_REVISION_REV_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_SYSCONFIG register.
+//
+//******************************************************************************
+#define MCSPI_SYSCONFIG_CLOCKACTIVITY_M \
+ 0x00000300 // Clocks activity during wake up
+ // mode period 0x0 OCP and
+ // Functional clocks may be switched
+ // off. 0x1 OCP clock is maintained.
+ // Functional clock may be
+ // switched-off. 0x2 Functional
+ // clock is maintained. OCP clock
+ // may be switched-off. 0x3 OCP and
+ // Functional clocks are maintained.
+
+#define MCSPI_SYSCONFIG_CLOCKACTIVITY_S 8
+#define MCSPI_SYSCONFIG_SIDLEMODE_M \
+ 0x00000018 // Power management 0x0 If an idle
+ // request is detected the McSPI
+ // acknowledges it unconditionally
+ // and goes in Inactive mode.
+ // Interrupt DMA requests and wake
+ // up lines are unconditionally
+ // de-asserted and the module wakeup
+ // capability is deactivated even if
+ // the bit
+ // MCSPI_SYSCONFIG[EnaWakeUp] is
+ // set. 0x1 If an idle request is
+ // detected the request is ignored
+ // and the module does not switch to
+ // wake up mode and keeps on
+ // behaving normally. 0x2 If an idle
+ // request is detected the module
+ // will switch to idle mode based on
+ // its internal activity. The wake
+ // up capability cannot be used. 0x3
+ // If an idle request is detected
+ // the module will switch to idle
+ // mode based on its internal
+ // activity and the wake up
+ // capability can be used if the bit
+ // MCSPI_SYSCONFIG[EnaWakeUp] is
+ // set.
+
+#define MCSPI_SYSCONFIG_SIDLEMODE_S 3
+#define MCSPI_SYSCONFIG_ENAWAKEUP \
+ 0x00000004 // WakeUp feature control 0 WakeUp
+ // capability is disabled 1 WakeUp
+ // capability is enabled
+
+#define MCSPI_SYSCONFIG_SOFTRESET \
+ 0x00000002 // Software reset. During reads it
+ // always returns 0. 0 (write)
+ // Normal mode 1 (write) Set this
+ // bit to 1 to trigger a module
+ // reset.The bit is automatically
+ // reset by the hardware.
+
+#define MCSPI_SYSCONFIG_AUTOIDLE \
+ 0x00000001 // Internal OCP Clock gating
+ // strategy 0 OCP clock is
+ // free-running 1 Automatic OCP
+ // clock gating strategy is applied
+ // based on the OCP interface
+ // activity
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_SYSSTATUS register.
+//
+//******************************************************************************
+#define MCSPI_SYSSTATUS_RESETDONE \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_IRQSTATUS register.
+//
+//******************************************************************************
+#define MCSPI_IRQSTATUS_EOW 0x00020000
+#define MCSPI_IRQSTATUS_WKS 0x00010000
+#define MCSPI_IRQSTATUS_RX3_FULL \
+ 0x00004000
+
+#define MCSPI_IRQSTATUS_TX3_UNDERFLOW \
+ 0x00002000
+
+#define MCSPI_IRQSTATUS_TX3_EMPTY \
+ 0x00001000
+
+#define MCSPI_IRQSTATUS_RX2_FULL \
+ 0x00000400
+
+#define MCSPI_IRQSTATUS_TX2_UNDERFLOW \
+ 0x00000200
+
+#define MCSPI_IRQSTATUS_TX2_EMPTY \
+ 0x00000100
+
+#define MCSPI_IRQSTATUS_RX1_FULL \
+ 0x00000040
+
+#define MCSPI_IRQSTATUS_TX1_UNDERFLOW \
+ 0x00000020
+
+#define MCSPI_IRQSTATUS_TX1_EMPTY \
+ 0x00000010
+
+#define MCSPI_IRQSTATUS_RX0_OVERFLOW \
+ 0x00000008
+
+#define MCSPI_IRQSTATUS_RX0_FULL \
+ 0x00000004
+
+#define MCSPI_IRQSTATUS_TX0_UNDERFLOW \
+ 0x00000002
+
+#define MCSPI_IRQSTATUS_TX0_EMPTY \
+ 0x00000001
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_IRQENABLE register.
+//
+//******************************************************************************
+#define MCSPI_IRQENABLE_EOW_ENABLE \
+ 0x00020000 // End of Word count Interrupt
+ // Enable. 0 Interrupt disabled 1
+ // Interrupt enabled
+
+#define MCSPI_IRQENABLE_WKE 0x00010000 // Wake Up event interrupt Enable
+ // in slave mode when an active
+ // control signal is detected on the
+ // SPIEN line programmed in the
+ // field MCSPI_CH0CONF[SPIENSLV] 0
+ // Interrupt disabled 1 Interrupt
+ // enabled
+#define MCSPI_IRQENABLE_RX3_FULL_ENABLE \
+ 0x00004000 // Receiver register Full Interrupt
+ // Enable. Ch 3 0 Interrupt disabled
+ // 1 Interrupt enabled
+
+#define MCSPI_IRQENABLE_TX3_UNDERFLOW_ENABLE \
+ 0x00002000 // Transmitter register Underflow
+ // Interrupt Enable. Ch 3 0
+ // Interrupt disabled 1 Interrupt
+ // enabled
+
+#define MCSPI_IRQENABLE_TX3_EMPTY_ENABLE \
+ 0x00001000 // Transmitter register Empty
+ // Interrupt Enable. Ch3 0 Interrupt
+ // disabled 1 Interrupt enabled
+
+#define MCSPI_IRQENABLE_RX2_FULL_ENABLE \
+ 0x00000400 // Receiver register Full Interrupt
+ // Enable. Ch 2 0 Interrupt disabled
+ // 1 Interrupt enabled
+
+#define MCSPI_IRQENABLE_TX2_UNDERFLOW_ENABLE \
+ 0x00000200 // Transmitter register Underflow
+ // Interrupt Enable. Ch 2 0
+ // Interrupt disabled 1 Interrupt
+ // enabled
+
+#define MCSPI_IRQENABLE_TX2_EMPTY_ENABLE \
+ 0x00000100 // Transmitter register Empty
+ // Interrupt Enable. Ch 2 0
+ // Interrupt disabled 1 Interrupt
+ // enabled
+
+#define MCSPI_IRQENABLE_RX1_FULL_ENABLE \
+ 0x00000040 // Receiver register Full Interrupt
+ // Enable. Ch 1 0 Interrupt disabled
+ // 1 Interrupt enabled
+
+#define MCSPI_IRQENABLE_TX1_UNDERFLOW_ENABLE \
+ 0x00000020 // Transmitter register Underflow
+ // Interrupt Enable. Ch 1 0
+ // Interrupt disabled 1 Interrupt
+ // enabled
+
+#define MCSPI_IRQENABLE_TX1_EMPTY_ENABLE \
+ 0x00000010 // Transmitter register Empty
+ // Interrupt Enable. Ch 1 0
+ // Interrupt disabled 1 Interrupt
+ // enabled
+
+#define MCSPI_IRQENABLE_RX0_OVERFLOW_ENABLE \
+ 0x00000008 // Receiver register Overflow
+ // Interrupt Enable. Ch 0 0
+ // Interrupt disabled 1 Interrupt
+ // enabled
+
+#define MCSPI_IRQENABLE_RX0_FULL_ENABLE \
+ 0x00000004 // Receiver register Full Interrupt
+ // Enable. Ch 0 0 Interrupt disabled
+ // 1 Interrupt enabled
+
+#define MCSPI_IRQENABLE_TX0_UNDERFLOW_ENABLE \
+ 0x00000002 // Transmitter register Underflow
+ // Interrupt Enable. Ch 0 0
+ // Interrupt disabled 1 Interrupt
+ // enabled
+
+#define MCSPI_IRQENABLE_TX0_EMPTY_ENABLE \
+ 0x00000001 // Transmitter register Empty
+ // Interrupt Enable. Ch 0 0
+ // Interrupt disabled 1 Interrupt
+ // enabled
+
+//******************************************************************************
+//
+// The following are defines for the bit fields in the
+// MCSPI_O_WAKEUPENABLE register.
+//
+//******************************************************************************
+#define MCSPI_WAKEUPENABLE_WKEN 0x00000001 // WakeUp functionality in slave
+ // mode when an active control
+ // signal is detected on the SPIEN
+ // line programmed in the field
+ // MCSPI_CH0CONF[SPIENSLV] 0 The
+ // event is not allowed to wakeup
+ // the system even if the global
+ // control bit
+ // MCSPI_SYSCONF[EnaWakeUp] is set.
+ // 1 The event is allowed to wakeup
+ // the system if the global control
+ // bit MCSPI_SYSCONF[EnaWakeUp] is
+ // set.
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_SYST register.
+//
+//******************************************************************************
+#define MCSPI_SYST_SSB 0x00000800 // Set status bit 0 No action.
+ // Writing 0 does not clear already
+ // set status bits; This bit must be
+ // cleared prior attempting to clear
+ // a status bit of the
+ // <MCSPI_IRQSTATUS> register. 1
+ // Force to 1 all status bits of
+ // MCSPI_IRQSTATUS register. Writing
+ // 1 into this bit sets to 1 all
+ // status bits contained in the
+ // <MCSPI_IRQSTATUS> register.
+#define MCSPI_SYST_SPIENDIR 0x00000400 // Set the direction of the
+ // SPIEN[3:0] lines and SPICLK line
+ // 0 output (as in master mode) 1
+ // input (as in slave mode)
+#define MCSPI_SYST_SPIDATDIR1 0x00000200 // Set the direction of the
+ // SPIDAT[1] 0 output 1 input
+#define MCSPI_SYST_SPIDATDIR0 0x00000100 // Set the direction of the
+ // SPIDAT[0] 0 output 1 input
+#define MCSPI_SYST_WAKD 0x00000080 // SWAKEUP output (signal data
+ // value of internal signal to
+ // system). The signal is driven
+ // high or low according to the
+ // value written into this register
+ // bit. 0 The pin is driven low. 1
+ // The pin is driven high.
+#define MCSPI_SYST_SPICLK 0x00000040 // SPICLK line (signal data value)
+ // If MCSPI_SYST[SPIENDIR] = 1
+ // (input mode direction) this bit
+ // returns the value on the CLKSPI
+ // line (high or low) and a write
+ // into this bit has no effect. If
+ // MCSPI_SYST[SPIENDIR] = 0 (output
+ // mode direction) the CLKSPI line
+ // is driven high or low according
+ // to the value written into this
+ // register.
+#define MCSPI_SYST_SPIDAT_1 0x00000020 // SPIDAT[1] line (signal data
+ // value) If MCSPI_SYST[SPIDATDIR1]
+ // = 0 (output mode direction) the
+ // SPIDAT[1] line is driven high or
+ // low according to the value
+ // written into this register. If
+ // MCSPI_SYST[SPIDATDIR1] = 1 (input
+ // mode direction) this bit returns
+ // the value on the SPIDAT[1] line
+ // (high or low) and a write into
+ // this bit has no effect.
+#define MCSPI_SYST_SPIDAT_0 0x00000010 // SPIDAT[0] line (signal data
+ // value) If MCSPI_SYST[SPIDATDIR0]
+ // = 0 (output mode direction) the
+ // SPIDAT[0] line is driven high or
+ // low according to the value
+ // written into this register. If
+ // MCSPI_SYST[SPIDATDIR0] = 1 (input
+ // mode direction) this bit returns
+ // the value on the SPIDAT[0] line
+ // (high or low) and a write into
+ // this bit has no effect.
+#define MCSPI_SYST_SPIEN_3 0x00000008 // SPIEN[3] line (signal data
+ // value) If MCSPI_SYST[SPIENDIR] =
+ // 0 (output mode direction) the
+ // SPIENT[3] line is driven high or
+ // low according to the value
+ // written into this register. If
+ // MCSPI_SYST[SPIENDIR] = 1 (input
+ // mode direction) this bit returns
+ // the value on the SPIEN[3] line
+ // (high or low) and a write into
+ // this bit has no effect.
+#define MCSPI_SYST_SPIEN_2 0x00000004 // SPIEN[2] line (signal data
+ // value) If MCSPI_SYST[SPIENDIR] =
+ // 0 (output mode direction) the
+ // SPIENT[2] line is driven high or
+ // low according to the value
+ // written into this register. If
+ // MCSPI_SYST[SPIENDIR] = 1 (input
+ // mode direction) this bit returns
+ // the value on the SPIEN[2] line
+ // (high or low) and a write into
+ // this bit has no effect.
+#define MCSPI_SYST_SPIEN_1 0x00000002 // SPIEN[1] line (signal data
+ // value) If MCSPI_SYST[SPIENDIR] =
+ // 0 (output mode direction) the
+ // SPIENT[1] line is driven high or
+ // low according to the value
+ // written into this register. If
+ // MCSPI_SYST[SPIENDIR] = 1 (input
+ // mode direction) this bit returns
+ // the value on the SPIEN[1] line
+ // (high or low) and a write into
+ // this bit has no effect.
+#define MCSPI_SYST_SPIEN_0 0x00000001 // SPIEN[0] line (signal data
+ // value) If MCSPI_SYST[SPIENDIR] =
+ // 0 (output mode direction) the
+ // SPIENT[0] line is driven high or
+ // low according to the value
+ // written into this register. If
+ // MCSPI_SYST[SPIENDIR] = 1 (input
+ // mode direction) this bit returns
+ // the value on the SPIEN[0] line
+ // (high or low) and a write into
+ // this bit has no effect.
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_MODULCTRL register.
+//
+//******************************************************************************
+#define MCSPI_MODULCTRL_FDAA 0x00000100 // FIFO DMA Address 256-bit aligned
+ // This register is used when a FIFO
+ // is managed by the module and DMA
+ // connected to the controller
+ // provides only 256 bit aligned
+ // address. If this bit is set the
+ // enabled channel which uses the
+ // FIFO has its datas managed
+ // through MCSPI_DAFTX and
+ // MCSPI_DAFRX registers instead of
+ // MCSPI_TX(i) and MCSPI_RX(i)
+ // registers. 0 FIFO data managed by
+ // MCSPI_TX(i) and MCSPI_RX(i)
+ // registers. 1 FIFO data managed by
+ // MCSPI_DAFTX and MCSPI_DAFRX
+ // registers.
+#define MCSPI_MODULCTRL_MOA 0x00000080 // Multiple word ocp access: This
+ // register can only be used when a
+ // channel is enabled using a FIFO.
+ // It allows the system to perform
+ // multiple SPI word access for a
+ // single 32-bit OCP word access.
+ // This is possible for WL < 16. 0
+ // Multiple word access disabled 1
+ // Multiple word access enabled with
+ // FIFO
+#define MCSPI_MODULCTRL_INITDLY_M \
+ 0x00000070 // Initial spi delay for first
+ // transfer: This register is an
+ // option only available in SINGLE
+ // master mode The controller waits
+ // for a delay to transmit the first
+ // spi word after channel enabled
+ // and corresponding TX register
+ // filled. This Delay is based on
+ // SPI output frequency clock No
+ // clock output provided to the
+ // boundary and chip select is not
+ // active in 4 pin mode within this
+ // period. 0x0 No delay for first
+ // spi transfer. 0x1 The controller
+ // wait 4 spi bus clock 0x2 The
+ // controller wait 8 spi bus clock
+ // 0x3 The controller wait 16 spi
+ // bus clock 0x4 The controller wait
+ // 32 spi bus clock
+
+#define MCSPI_MODULCTRL_INITDLY_S 4
+#define MCSPI_MODULCTRL_SYSTEM_TEST \
+ 0x00000008 // Enables the system test mode 0
+ // Functional mode 1 System test
+ // mode (SYSTEST)
+
+#define MCSPI_MODULCTRL_MS 0x00000004 // Master/ Slave 0 Master - The
+ // module generates the SPICLK and
+ // SPIEN[3:0] 1 Slave - The module
+ // receives the SPICLK and
+ // SPIEN[3:0]
+#define MCSPI_MODULCTRL_PIN34 0x00000002 // Pin mode selection: This
+ // register is used to configure the
+ // SPI pin mode in master or slave
+ // mode. If asserted the controller
+ // only use SIMOSOMI and SPICLK
+ // clock pin for spi transfers. 0
+ // SPIEN is used as a chip select. 1
+ // SPIEN is not used.In this mode
+ // all related option to chip select
+ // have no meaning.
+#define MCSPI_MODULCTRL_SINGLE 0x00000001 // Single channel / Multi Channel
+ // (master mode only) 0 More than
+ // one channel will be used in
+ // master mode. 1 Only one channel
+ // will be used in master mode. This
+ // bit must be set in Force SPIEN
+ // mode.
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_CH0CONF register.
+//
+//******************************************************************************
+#define MCSPI_CH0CONF_CLKG 0x20000000 // Clock divider granularity This
+ // register defines the granularity
+ // of channel clock divider: power
+ // of two or one clock cycle
+ // granularity. When this bit is set
+ // the register MCSPI_CHCTRL[EXTCLK]
+ // must be configured to reach a
+ // maximum of 4096 clock divider
+ // ratio. Then The clock divider
+ // ratio is a concatenation of
+ // MCSPI_CHCONF[CLKD] and
+ // MCSPI_CHCTRL[EXTCLK] values 0
+ // Clock granularity of power of two
+ // 1 One clock cycle ganularity
+#define MCSPI_CH0CONF_FFER 0x10000000 // FIFO enabled for receive:Only
+ // one channel can have this bit
+ // field set. 0 The buffer is not
+ // used to receive data. 1 The
+ // buffer is used to receive data.
+#define MCSPI_CH0CONF_FFEW 0x08000000 // FIFO enabled for Transmit:Only
+ // one channel can have this bit
+ // field set. 0 The buffer is not
+ // used to transmit data. 1 The
+ // buffer is used to transmit data.
+#define MCSPI_CH0CONF_TCS0_M 0x06000000 // Chip Select Time Control This
+ // 2-bits field defines the number
+ // of interface clock cycles between
+ // CS toggling and first or last
+ // edge of SPI clock. 0x0 0.5 clock
+ // cycle 0x1 1.5 clock cycle 0x2 2.5
+ // clock cycle 0x3 3.5 clock cycle
+#define MCSPI_CH0CONF_TCS0_S 25
+#define MCSPI_CH0CONF_SBPOL 0x01000000 // Start bit polarity 0 Start bit
+ // polarity is held to 0 during SPI
+ // transfer. 1 Start bit polarity is
+ // held to 1 during SPI transfer.
+#define MCSPI_CH0CONF_SBE 0x00800000 // Start bit enable for SPI
+ // transfer 0 Default SPI transfer
+ // length as specified by WL bit
+ // field 1 Start bit D/CX added
+ // before SPI transfer polarity is
+ // defined by MCSPI_CH0CONF[SBPOL]
+#define MCSPI_CH0CONF_SPIENSLV_M \
+ 0x00600000 // Channel 0 only and slave mode
+ // only: SPI slave select signal
+ // detection. Reserved bits for
+ // other cases. 0x0 Detection
+ // enabled only on SPIEN[0] 0x1
+ // Detection enabled only on
+ // SPIEN[1] 0x2 Detection enabled
+ // only on SPIEN[2] 0x3 Detection
+ // enabled only on SPIEN[3]
+
+#define MCSPI_CH0CONF_SPIENSLV_S 21
+#define MCSPI_CH0CONF_FORCE 0x00100000 // Manual SPIEN assertion to keep
+ // SPIEN active between SPI words.
+ // (single channel master mode only)
+ // 0 Writing 0 into this bit drives
+ // low the SPIEN line when
+ // MCSPI_CHCONF(i)[EPOL]=0 and
+ // drives it high when
+ // MCSPI_CHCONF(i)[EPOL]=1. 1
+ // Writing 1 into this bit drives
+ // high the SPIEN line when
+ // MCSPI_CHCONF(i)[EPOL]=0 and
+ // drives it low when
+ // MCSPI_CHCONF(i)[EPOL]=1
+#define MCSPI_CH0CONF_TURBO 0x00080000 // Turbo mode 0 Turbo is
+ // deactivated (recommended for
+ // single SPI word transfer) 1 Turbo
+ // is activated to maximize the
+ // throughput for multi SPI words
+ // transfer.
+#define MCSPI_CH0CONF_IS 0x00040000 // Input Select 0 Data Line0
+ // (SPIDAT[0]) selected for
+ // reception. 1 Data Line1
+ // (SPIDAT[1]) selected for
+ // reception
+#define MCSPI_CH0CONF_DPE1 0x00020000 // Transmission Enable for data
+ // line 1 (SPIDATAGZEN[1]) 0 Data
+ // Line1 (SPIDAT[1]) selected for
+ // transmission 1 No transmission on
+ // Data Line1 (SPIDAT[1])
+#define MCSPI_CH0CONF_DPE0 0x00010000 // Transmission Enable for data
+ // line 0 (SPIDATAGZEN[0]) 0 Data
+ // Line0 (SPIDAT[0]) selected for
+ // transmission 1 No transmission on
+ // Data Line0 (SPIDAT[0])
+#define MCSPI_CH0CONF_DMAR 0x00008000 // DMA Read request The DMA Read
+ // request line is asserted when the
+ // channel is enabled and a new data
+ // is available in the receive
+ // register of the channel. The DMA
+ // Read request line is deasserted
+ // on read completion of the receive
+ // register of the channel. 0 DMA
+ // Read Request disabled 1 DMA Read
+ // Request enabled
+#define MCSPI_CH0CONF_DMAW 0x00004000 // DMA Write request. The DMA Write
+ // request line is asserted when The
+ // channel is enabled and the
+ // transmitter register of the
+ // channel is empty. The DMA Write
+ // request line is deasserted on
+ // load completion of the
+ // transmitter register of the
+ // channel. 0 DMA Write Request
+ // disabled 1 DMA Write Request
+ // enabled
+#define MCSPI_CH0CONF_TRM_M 0x00003000 // Transmit/Receive modes 0x0
+ // Transmit and Receive mode 0x1
+ // Receive only mode 0x2 Transmit
+ // only mode 0x3 Reserved
+#define MCSPI_CH0CONF_TRM_S 12
+#define MCSPI_CH0CONF_WL_M 0x00000F80 // SPI word length 0x00 Reserved
+ // 0x01 Reserved 0x02 Reserved 0x03
+ // The SPI word is 4-bits long 0x04
+ // The SPI word is 5-bits long 0x05
+ // The SPI word is 6-bits long 0x06
+ // The SPI word is 7-bits long 0x07
+ // The SPI word is 8-bits long 0x08
+ // The SPI word is 9-bits long 0x09
+ // The SPI word is 10-bits long 0x0A
+ // The SPI word is 11-bits long 0x0B
+ // The SPI word is 12-bits long 0x0C
+ // The SPI word is 13-bits long 0x0D
+ // The SPI word is 14-bits long 0x0E
+ // The SPI word is 15-bits long 0x0F
+ // The SPI word is 16-bits long 0x10
+ // The SPI word is 17-bits long 0x11
+ // The SPI word is 18-bits long 0x12
+ // The SPI word is 19-bits long 0x13
+ // The SPI word is 20-bits long 0x14
+ // The SPI word is 21-bits long 0x15
+ // The SPI word is 22-bits long 0x16
+ // The SPI word is 23-bits long 0x17
+ // The SPI word is 24-bits long 0x18
+ // The SPI word is 25-bits long 0x19
+ // The SPI word is 26-bits long 0x1A
+ // The SPI word is 27-bits long 0x1B
+ // The SPI word is 28-bits long 0x1C
+ // The SPI word is 29-bits long 0x1D
+ // The SPI word is 30-bits long 0x1E
+ // The SPI word is 31-bits long 0x1F
+ // The SPI word is 32-bits long
+#define MCSPI_CH0CONF_WL_S 7
+#define MCSPI_CH0CONF_EPOL 0x00000040 // SPIEN polarity 0 SPIEN is held
+ // high during the active state. 1
+ // SPIEN is held low during the
+ // active state.
+#define MCSPI_CH0CONF_CLKD_M 0x0000003C // Frequency divider for SPICLK.
+ // (only when the module is a Master
+ // SPI device). A programmable clock
+ // divider divides the SPI reference
+ // clock (CLKSPIREF) with a 4-bit
+ // value and results in a new clock
+ // SPICLK available to shift-in and
+ // shift-out data. By default the
+ // clock divider ratio has a power
+ // of two granularity when
+ // MCSPI_CHCONF[CLKG] is cleared
+ // Otherwise this register is the 4
+ // LSB bit of a 12-bit register
+ // concatenated with clock divider
+ // extension MCSPI_CHCTRL[EXTCLK]
+ // register.The value description
+ // below defines the clock ratio
+ // when MCSPI_CHCONF[CLKG] is set to
+ // 0. 0x0 1 0x1 2 0x2 4 0x3 8 0x4 16
+ // 0x5 32 0x6 64 0x7 128 0x8 256 0x9
+ // 512 0xA 1024 0xB 2048 0xC 4096
+ // 0xD 8192 0xE 16384 0xF 32768
+#define MCSPI_CH0CONF_CLKD_S 2
+#define MCSPI_CH0CONF_POL 0x00000002 // SPICLK polarity 0 SPICLK is held
+ // high during the active state 1
+ // SPICLK is held low during the
+ // active state
+#define MCSPI_CH0CONF_PHA 0x00000001 // SPICLK phase 0 Data are latched
+ // on odd numbered edges of SPICLK.
+ // 1 Data are latched on even
+ // numbered edges of SPICLK.
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_CH0STAT register.
+//
+//******************************************************************************
+#define MCSPI_CH0STAT_RXFFF 0x00000040
+#define MCSPI_CH0STAT_RXFFE 0x00000020
+#define MCSPI_CH0STAT_TXFFF 0x00000010
+#define MCSPI_CH0STAT_TXFFE 0x00000008
+#define MCSPI_CH0STAT_EOT 0x00000004
+#define MCSPI_CH0STAT_TXS 0x00000002
+#define MCSPI_CH0STAT_RXS 0x00000001
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_CH0CTRL register.
+//
+//******************************************************************************
+#define MCSPI_CH0CTRL_EXTCLK_M 0x0000FF00 // Clock ratio extension: This
+ // register is used to concatenate
+ // with MCSPI_CHCONF[CLKD] register
+ // for clock ratio only when
+ // granularity is one clock cycle
+ // (MCSPI_CHCONF[CLKG] set to 1).
+ // Then the max value reached is
+ // 4096 clock divider ratio. 0x00
+ // Clock ratio is CLKD + 1 0x01
+ // Clock ratio is CLKD + 1 + 16 0xFF
+ // Clock ratio is CLKD + 1 + 4080
+#define MCSPI_CH0CTRL_EXTCLK_S 8
+#define MCSPI_CH0CTRL_EN 0x00000001 // Channel Enable 0 "Channel ""i""
+ // is not active" 1 "Channel ""i""
+ // is active"
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_TX0 register.
+//
+//******************************************************************************
+#define MCSPI_TX0_TDATA_M 0xFFFFFFFF // Channel 0 Data to transmit
+#define MCSPI_TX0_TDATA_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_RX0 register.
+//
+//******************************************************************************
+#define MCSPI_RX0_RDATA_M 0xFFFFFFFF // Channel 0 Received Data
+#define MCSPI_RX0_RDATA_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_CH1CONF register.
+//
+//******************************************************************************
+#define MCSPI_CH1CONF_CLKG 0x20000000 // Clock divider granularity This
+ // register defines the granularity
+ // of channel clock divider: power
+ // of two or one clock cycle
+ // granularity. When this bit is set
+ // the register MCSPI_CHCTRL[EXTCLK]
+ // must be configured to reach a
+ // maximum of 4096 clock divider
+ // ratio. Then The clock divider
+ // ratio is a concatenation of
+ // MCSPI_CHCONF[CLKD] and
+ // MCSPI_CHCTRL[EXTCLK] values 0
+ // Clock granularity of power of two
+ // 1 One clock cycle ganularity
+#define MCSPI_CH1CONF_FFER 0x10000000 // FIFO enabled for receive:Only
+ // one channel can have this bit
+ // field set. 0 The buffer is not
+ // used to receive data. 1 The
+ // buffer is used to receive data.
+#define MCSPI_CH1CONF_FFEW 0x08000000 // FIFO enabled for Transmit:Only
+ // one channel can have this bit
+ // field set. 0 The buffer is not
+ // used to transmit data. 1 The
+ // buffer is used to transmit data.
+#define MCSPI_CH1CONF_TCS1_M 0x06000000 // Chip Select Time Control This
+ // 2-bits field defines the number
+ // of interface clock cycles between
+ // CS toggling and first or last
+ // edge of SPI clock. 0x0 0.5 clock
+ // cycle 0x1 1.5 clock cycle 0x2 2.5
+ // clock cycle 0x3 3.5 clock cycle
+#define MCSPI_CH1CONF_TCS1_S 25
+#define MCSPI_CH1CONF_SBPOL 0x01000000 // Start bit polarity 0 Start bit
+ // polarity is held to 0 during SPI
+ // transfer. 1 Start bit polarity is
+ // held to 1 during SPI transfer.
+#define MCSPI_CH1CONF_SBE 0x00800000 // Start bit enable for SPI
+ // transfer 0 Default SPI transfer
+ // length as specified by WL bit
+ // field 1 Start bit D/CX added
+ // before SPI transfer polarity is
+ // defined by MCSPI_CH1CONF[SBPOL]
+#define MCSPI_CH1CONF_FORCE 0x00100000 // Manual SPIEN assertion to keep
+ // SPIEN active between SPI words.
+ // (single channel master mode only)
+ // 0 Writing 0 into this bit drives
+ // low the SPIEN line when
+ // MCSPI_CHCONF(i)[EPOL]=0 and
+ // drives it high when
+ // MCSPI_CHCONF(i)[EPOL]=1. 1
+ // Writing 1 into this bit drives
+ // high the SPIEN line when
+ // MCSPI_CHCONF(i)[EPOL]=0 and
+ // drives it low when
+ // MCSPI_CHCONF(i)[EPOL]=1
+#define MCSPI_CH1CONF_TURBO 0x00080000 // Turbo mode 0 Turbo is
+ // deactivated (recommended for
+ // single SPI word transfer) 1 Turbo
+ // is activated to maximize the
+ // throughput for multi SPI words
+ // transfer.
+#define MCSPI_CH1CONF_IS 0x00040000 // Input Select 0 Data Line0
+ // (SPIDAT[0]) selected for
+ // reception. 1 Data Line1
+ // (SPIDAT[1]) selected for
+ // reception
+#define MCSPI_CH1CONF_DPE1 0x00020000 // Transmission Enable for data
+ // line 1 (SPIDATAGZEN[1]) 0 Data
+ // Line1 (SPIDAT[1]) selected for
+ // transmission 1 No transmission on
+ // Data Line1 (SPIDAT[1])
+#define MCSPI_CH1CONF_DPE0 0x00010000 // Transmission Enable for data
+ // line 0 (SPIDATAGZEN[0]) 0 Data
+ // Line0 (SPIDAT[0]) selected for
+ // transmission 1 No transmission on
+ // Data Line0 (SPIDAT[0])
+#define MCSPI_CH1CONF_DMAR 0x00008000 // DMA Read request The DMA Read
+ // request line is asserted when the
+ // channel is enabled and a new data
+ // is available in the receive
+ // register of the channel. The DMA
+ // Read request line is deasserted
+ // on read completion of the receive
+ // register of the channel. 0 DMA
+ // Read Request disabled 1 DMA Read
+ // Request enabled
+#define MCSPI_CH1CONF_DMAW 0x00004000 // DMA Write request. The DMA Write
+ // request line is asserted when The
+ // channel is enabled and the
+ // transmitter register of the
+ // channel is empty. The DMA Write
+ // request line is deasserted on
+ // load completion of the
+ // transmitter register of the
+ // channel. 0 DMA Write Request
+ // disabled 1 DMA Write Request
+ // enabled
+#define MCSPI_CH1CONF_TRM_M 0x00003000 // Transmit/Receive modes 0x0
+ // Transmit and Receive mode 0x1
+ // Receive only mode 0x2 Transmit
+ // only mode 0x3 Reserved
+#define MCSPI_CH1CONF_TRM_S 12
+#define MCSPI_CH1CONF_WL_M 0x00000F80 // SPI word length 0x00 Reserved
+ // 0x01 Reserved 0x02 Reserved 0x03
+ // The SPI word is 4-bits long 0x04
+ // The SPI word is 5-bits long 0x05
+ // The SPI word is 6-bits long 0x06
+ // The SPI word is 7-bits long 0x07
+ // The SPI word is 8-bits long 0x08
+ // The SPI word is 9-bits long 0x09
+ // The SPI word is 10-bits long 0x0A
+ // The SPI word is 11-bits long 0x0B
+ // The SPI word is 12-bits long 0x0C
+ // The SPI word is 13-bits long 0x0D
+ // The SPI word is 14-bits long 0x0E
+ // The SPI word is 15-bits long 0x0F
+ // The SPI word is 16-bits long 0x10
+ // The SPI word is 17-bits long 0x11
+ // The SPI word is 18-bits long 0x12
+ // The SPI word is 19-bits long 0x13
+ // The SPI word is 20-bits long 0x14
+ // The SPI word is 21-bits long 0x15
+ // The SPI word is 22-bits long 0x16
+ // The SPI word is 23-bits long 0x17
+ // The SPI word is 24-bits long 0x18
+ // The SPI word is 25-bits long 0x19
+ // The SPI word is 26-bits long 0x1A
+ // The SPI word is 27-bits long 0x1B
+ // The SPI word is 28-bits long 0x1C
+ // The SPI word is 29-bits long 0x1D
+ // The SPI word is 30-bits long 0x1E
+ // The SPI word is 31-bits long 0x1F
+ // The SPI word is 32-bits long
+#define MCSPI_CH1CONF_WL_S 7
+#define MCSPI_CH1CONF_EPOL 0x00000040 // SPIEN polarity 0 SPIEN is held
+ // high during the active state. 1
+ // SPIEN is held low during the
+ // active state.
+#define MCSPI_CH1CONF_CLKD_M 0x0000003C // Frequency divider for SPICLK.
+ // (only when the module is a Master
+ // SPI device). A programmable clock
+ // divider divides the SPI reference
+ // clock (CLKSPIREF) with a 4-bit
+ // value and results in a new clock
+ // SPICLK available to shift-in and
+ // shift-out data. By default the
+ // clock divider ratio has a power
+ // of two granularity when
+ // MCSPI_CHCONF[CLKG] is cleared
+ // Otherwise this register is the 4
+ // LSB bit of a 12-bit register
+ // concatenated with clock divider
+ // extension MCSPI_CHCTRL[EXTCLK]
+ // register.The value description
+ // below defines the clock ratio
+ // when MCSPI_CHCONF[CLKG] is set to
+ // 0. 0x0 1 0x1 2 0x2 4 0x3 8 0x4 16
+ // 0x5 32 0x6 64 0x7 128 0x8 256 0x9
+ // 512 0xA 1024 0xB 2048 0xC 4096
+ // 0xD 8192 0xE 16384 0xF 32768
+#define MCSPI_CH1CONF_CLKD_S 2
+#define MCSPI_CH1CONF_POL 0x00000002 // SPICLK polarity 0 SPICLK is held
+ // high during the active state 1
+ // SPICLK is held low during the
+ // active state
+#define MCSPI_CH1CONF_PHA 0x00000001 // SPICLK phase 0 Data are latched
+ // on odd numbered edges of SPICLK.
+ // 1 Data are latched on even
+ // numbered edges of SPICLK.
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_CH1STAT register.
+//
+//******************************************************************************
+#define MCSPI_CH1STAT_RXFFF 0x00000040
+#define MCSPI_CH1STAT_RXFFE 0x00000020
+#define MCSPI_CH1STAT_TXFFF 0x00000010
+#define MCSPI_CH1STAT_TXFFE 0x00000008
+#define MCSPI_CH1STAT_EOT 0x00000004
+#define MCSPI_CH1STAT_TXS 0x00000002
+#define MCSPI_CH1STAT_RXS 0x00000001
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_CH1CTRL register.
+//
+//******************************************************************************
+#define MCSPI_CH1CTRL_EXTCLK_M 0x0000FF00 // Clock ratio extension: This
+ // register is used to concatenate
+ // with MCSPI_CHCONF[CLKD] register
+ // for clock ratio only when
+ // granularity is one clock cycle
+ // (MCSPI_CHCONF[CLKG] set to 1).
+ // Then the max value reached is
+ // 4096 clock divider ratio. 0x00
+ // Clock ratio is CLKD + 1 0x01
+ // Clock ratio is CLKD + 1 + 16 0xFF
+ // Clock ratio is CLKD + 1 + 4080
+#define MCSPI_CH1CTRL_EXTCLK_S 8
+#define MCSPI_CH1CTRL_EN 0x00000001 // Channel Enable 0 "Channel ""i""
+ // is not active" 1 "Channel ""i""
+ // is active"
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_TX1 register.
+//
+//******************************************************************************
+#define MCSPI_TX1_TDATA_M 0xFFFFFFFF // Channel 1 Data to transmit
+#define MCSPI_TX1_TDATA_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_RX1 register.
+//
+//******************************************************************************
+#define MCSPI_RX1_RDATA_M 0xFFFFFFFF // Channel 1 Received Data
+#define MCSPI_RX1_RDATA_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_CH2CONF register.
+//
+//******************************************************************************
+#define MCSPI_CH2CONF_CLKG 0x20000000 // Clock divider granularity This
+ // register defines the granularity
+ // of channel clock divider: power
+ // of two or one clock cycle
+ // granularity. When this bit is set
+ // the register MCSPI_CHCTRL[EXTCLK]
+ // must be configured to reach a
+ // maximum of 4096 clock divider
+ // ratio. Then The clock divider
+ // ratio is a concatenation of
+ // MCSPI_CHCONF[CLKD] and
+ // MCSPI_CHCTRL[EXTCLK] values 0
+ // Clock granularity of power of two
+ // 1 One clock cycle ganularity
+#define MCSPI_CH2CONF_FFER 0x10000000 // FIFO enabled for receive:Only
+ // one channel can have this bit
+ // field set. 0 The buffer is not
+ // used to receive data. 1 The
+ // buffer is used to receive data.
+#define MCSPI_CH2CONF_FFEW 0x08000000 // FIFO enabled for Transmit:Only
+ // one channel can have this bit
+ // field set. 0 The buffer is not
+ // used to transmit data. 1 The
+ // buffer is used to transmit data.
+#define MCSPI_CH2CONF_TCS2_M 0x06000000 // Chip Select Time Control This
+ // 2-bits field defines the number
+ // of interface clock cycles between
+ // CS toggling and first or last
+ // edge of SPI clock. 0x0 0.5 clock
+ // cycle 0x1 1.5 clock cycle 0x2 2.5
+ // clock cycle 0x3 3.5 clock cycle
+#define MCSPI_CH2CONF_TCS2_S 25
+#define MCSPI_CH2CONF_SBPOL 0x01000000 // Start bit polarity 0 Start bit
+ // polarity is held to 0 during SPI
+ // transfer. 1 Start bit polarity is
+ // held to 1 during SPI transfer.
+#define MCSPI_CH2CONF_SBE 0x00800000 // Start bit enable for SPI
+ // transfer 0 Default SPI transfer
+ // length as specified by WL bit
+ // field 1 Start bit D/CX added
+ // before SPI transfer polarity is
+ // defined by MCSPI_CH2CONF[SBPOL]
+#define MCSPI_CH2CONF_FORCE 0x00100000 // Manual SPIEN assertion to keep
+ // SPIEN active between SPI words.
+ // (single channel master mode only)
+ // 0 Writing 0 into this bit drives
+ // low the SPIEN line when
+ // MCSPI_CHCONF(i)[EPOL]=0 and
+ // drives it high when
+ // MCSPI_CHCONF(i)[EPOL]=1. 1
+ // Writing 1 into this bit drives
+ // high the SPIEN line when
+ // MCSPI_CHCONF(i)[EPOL]=0 and
+ // drives it low when
+ // MCSPI_CHCONF(i)[EPOL]=1
+#define MCSPI_CH2CONF_TURBO 0x00080000 // Turbo mode 0 Turbo is
+ // deactivated (recommended for
+ // single SPI word transfer) 1 Turbo
+ // is activated to maximize the
+ // throughput for multi SPI words
+ // transfer.
+#define MCSPI_CH2CONF_IS 0x00040000 // Input Select 0 Data Line0
+ // (SPIDAT[0]) selected for
+ // reception. 1 Data Line1
+ // (SPIDAT[1]) selected for
+ // reception
+#define MCSPI_CH2CONF_DPE1 0x00020000 // Transmission Enable for data
+ // line 1 (SPIDATAGZEN[1]) 0 Data
+ // Line1 (SPIDAT[1]) selected for
+ // transmission 1 No transmission on
+ // Data Line1 (SPIDAT[1])
+#define MCSPI_CH2CONF_DPE0 0x00010000 // Transmission Enable for data
+ // line 0 (SPIDATAGZEN[0]) 0 Data
+ // Line0 (SPIDAT[0]) selected for
+ // transmission 1 No transmission on
+ // Data Line0 (SPIDAT[0])
+#define MCSPI_CH2CONF_DMAR 0x00008000 // DMA Read request The DMA Read
+ // request line is asserted when the
+ // channel is enabled and a new data
+ // is available in the receive
+ // register of the channel. The DMA
+ // Read request line is deasserted
+ // on read completion of the receive
+ // register of the channel. 0 DMA
+ // Read Request disabled 1 DMA Read
+ // Request enabled
+#define MCSPI_CH2CONF_DMAW 0x00004000 // DMA Write request. The DMA Write
+ // request line is asserted when The
+ // channel is enabled and the
+ // transmitter register of the
+ // channel is empty. The DMA Write
+ // request line is deasserted on
+ // load completion of the
+ // transmitter register of the
+ // channel. 0 DMA Write Request
+ // disabled 1 DMA Write Request
+ // enabled
+#define MCSPI_CH2CONF_TRM_M 0x00003000 // Transmit/Receive modes 0x0
+ // Transmit and Receive mode 0x1
+ // Receive only mode 0x2 Transmit
+ // only mode 0x3 Reserved
+#define MCSPI_CH2CONF_TRM_S 12
+#define MCSPI_CH2CONF_WL_M 0x00000F80 // SPI word length 0x00 Reserved
+ // 0x01 Reserved 0x02 Reserved 0x03
+ // The SPI word is 4-bits long 0x04
+ // The SPI word is 5-bits long 0x05
+ // The SPI word is 6-bits long 0x06
+ // The SPI word is 7-bits long 0x07
+ // The SPI word is 8-bits long 0x08
+ // The SPI word is 9-bits long 0x09
+ // The SPI word is 10-bits long 0x0A
+ // The SPI word is 11-bits long 0x0B
+ // The SPI word is 12-bits long 0x0C
+ // The SPI word is 13-bits long 0x0D
+ // The SPI word is 14-bits long 0x0E
+ // The SPI word is 15-bits long 0x0F
+ // The SPI word is 16-bits long 0x10
+ // The SPI word is 17-bits long 0x11
+ // The SPI word is 18-bits long 0x12
+ // The SPI word is 19-bits long 0x13
+ // The SPI word is 20-bits long 0x14
+ // The SPI word is 21-bits long 0x15
+ // The SPI word is 22-bits long 0x16
+ // The SPI word is 23-bits long 0x17
+ // The SPI word is 24-bits long 0x18
+ // The SPI word is 25-bits long 0x19
+ // The SPI word is 26-bits long 0x1A
+ // The SPI word is 27-bits long 0x1B
+ // The SPI word is 28-bits long 0x1C
+ // The SPI word is 29-bits long 0x1D
+ // The SPI word is 30-bits long 0x1E
+ // The SPI word is 31-bits long 0x1F
+ // The SPI word is 32-bits long
+#define MCSPI_CH2CONF_WL_S 7
+#define MCSPI_CH2CONF_EPOL 0x00000040 // SPIEN polarity 0 SPIEN is held
+ // high during the active state. 1
+ // SPIEN is held low during the
+ // active state.
+#define MCSPI_CH2CONF_CLKD_M 0x0000003C // Frequency divider for SPICLK.
+ // (only when the module is a Master
+ // SPI device). A programmable clock
+ // divider divides the SPI reference
+ // clock (CLKSPIREF) with a 4-bit
+ // value and results in a new clock
+ // SPICLK available to shift-in and
+ // shift-out data. By default the
+ // clock divider ratio has a power
+ // of two granularity when
+ // MCSPI_CHCONF[CLKG] is cleared
+ // Otherwise this register is the 4
+ // LSB bit of a 12-bit register
+ // concatenated with clock divider
+ // extension MCSPI_CHCTRL[EXTCLK]
+ // register.The value description
+ // below defines the clock ratio
+ // when MCSPI_CHCONF[CLKG] is set to
+ // 0. 0x0 1 0x1 2 0x2 4 0x3 8 0x4 16
+ // 0x5 32 0x6 64 0x7 128 0x8 256 0x9
+ // 512 0xA 1024 0xB 2048 0xC 4096
+ // 0xD 8192 0xE 16384 0xF 32768
+#define MCSPI_CH2CONF_CLKD_S 2
+#define MCSPI_CH2CONF_POL 0x00000002 // SPICLK polarity 0 SPICLK is held
+ // high during the active state 1
+ // SPICLK is held low during the
+ // active state
+#define MCSPI_CH2CONF_PHA 0x00000001 // SPICLK phase 0 Data are latched
+ // on odd numbered edges of SPICLK.
+ // 1 Data are latched on even
+ // numbered edges of SPICLK.
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_CH2STAT register.
+//
+//******************************************************************************
+#define MCSPI_CH2STAT_RXFFF 0x00000040
+#define MCSPI_CH2STAT_RXFFE 0x00000020
+#define MCSPI_CH2STAT_TXFFF 0x00000010
+#define MCSPI_CH2STAT_TXFFE 0x00000008
+#define MCSPI_CH2STAT_EOT 0x00000004
+#define MCSPI_CH2STAT_TXS 0x00000002
+#define MCSPI_CH2STAT_RXS 0x00000001
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_CH2CTRL register.
+//
+//******************************************************************************
+#define MCSPI_CH2CTRL_EXTCLK_M 0x0000FF00 // Clock ratio extension: This
+ // register is used to concatenate
+ // with MCSPI_CHCONF[CLKD] register
+ // for clock ratio only when
+ // granularity is one clock cycle
+ // (MCSPI_CHCONF[CLKG] set to 1).
+ // Then the max value reached is
+ // 4096 clock divider ratio. 0x00
+ // Clock ratio is CLKD + 1 0x01
+ // Clock ratio is CLKD + 1 + 16 0xFF
+ // Clock ratio is CLKD + 1 + 4080
+#define MCSPI_CH2CTRL_EXTCLK_S 8
+#define MCSPI_CH2CTRL_EN 0x00000001 // Channel Enable 0 "Channel ""i""
+ // is not active" 1 "Channel ""i""
+ // is active"
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_TX2 register.
+//
+//******************************************************************************
+#define MCSPI_TX2_TDATA_M 0xFFFFFFFF // Channel 2 Data to transmit
+#define MCSPI_TX2_TDATA_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_RX2 register.
+//
+//******************************************************************************
+#define MCSPI_RX2_RDATA_M 0xFFFFFFFF // Channel 2 Received Data
+#define MCSPI_RX2_RDATA_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_CH3CONF register.
+//
+//******************************************************************************
+#define MCSPI_CH3CONF_CLKG 0x20000000 // Clock divider granularity This
+ // register defines the granularity
+ // of channel clock divider: power
+ // of two or one clock cycle
+ // granularity. When this bit is set
+ // the register MCSPI_CHCTRL[EXTCLK]
+ // must be configured to reach a
+ // maximum of 4096 clock divider
+ // ratio. Then The clock divider
+ // ratio is a concatenation of
+ // MCSPI_CHCONF[CLKD] and
+ // MCSPI_CHCTRL[EXTCLK] values 0
+ // Clock granularity of power of two
+ // 1 One clock cycle ganularity
+#define MCSPI_CH3CONF_FFER 0x10000000 // FIFO enabled for receive:Only
+ // one channel can have this bit
+ // field set. 0 The buffer is not
+ // used to receive data. 1 The
+ // buffer is used to receive data.
+#define MCSPI_CH3CONF_FFEW 0x08000000 // FIFO enabled for Transmit:Only
+ // one channel can have this bit
+ // field set. 0 The buffer is not
+ // used to transmit data. 1 The
+ // buffer is used to transmit data.
+#define MCSPI_CH3CONF_TCS3_M 0x06000000 // Chip Select Time Control This
+ // 2-bits field defines the number
+ // of interface clock cycles between
+ // CS toggling and first or last
+ // edge of SPI clock. 0x0 0.5 clock
+ // cycle 0x1 1.5 clock cycle 0x2 2.5
+ // clock cycle 0x3 3.5 clock cycle
+#define MCSPI_CH3CONF_TCS3_S 25
+#define MCSPI_CH3CONF_SBPOL 0x01000000 // Start bit polarity 0 Start bit
+ // polarity is held to 0 during SPI
+ // transfer. 1 Start bit polarity is
+ // held to 1 during SPI transfer.
+#define MCSPI_CH3CONF_SBE 0x00800000 // Start bit enable for SPI
+ // transfer 0 Default SPI transfer
+ // length as specified by WL bit
+ // field 1 Start bit D/CX added
+ // before SPI transfer polarity is
+ // defined by MCSPI_CH3CONF[SBPOL]
+#define MCSPI_CH3CONF_FORCE 0x00100000 // Manual SPIEN assertion to keep
+ // SPIEN active between SPI words.
+ // (single channel master mode only)
+ // 0 Writing 0 into this bit drives
+ // low the SPIEN line when
+ // MCSPI_CHCONF(i)[EPOL]=0 and
+ // drives it high when
+ // MCSPI_CHCONF(i)[EPOL]=1. 1
+ // Writing 1 into this bit drives
+ // high the SPIEN line when
+ // MCSPI_CHCONF(i)[EPOL]=0 and
+ // drives it low when
+ // MCSPI_CHCONF(i)[EPOL]=1
+#define MCSPI_CH3CONF_TURBO 0x00080000 // Turbo mode 0 Turbo is
+ // deactivated (recommended for
+ // single SPI word transfer) 1 Turbo
+ // is activated to maximize the
+ // throughput for multi SPI words
+ // transfer.
+#define MCSPI_CH3CONF_IS 0x00040000 // Input Select 0 Data Line0
+ // (SPIDAT[0]) selected for
+ // reception. 1 Data Line1
+ // (SPIDAT[1]) selected for
+ // reception
+#define MCSPI_CH3CONF_DPE1 0x00020000 // Transmission Enable for data
+ // line 1 (SPIDATAGZEN[1]) 0 Data
+ // Line1 (SPIDAT[1]) selected for
+ // transmission 1 No transmission on
+ // Data Line1 (SPIDAT[1])
+#define MCSPI_CH3CONF_DPE0 0x00010000 // Transmission Enable for data
+ // line 0 (SPIDATAGZEN[0]) 0 Data
+ // Line0 (SPIDAT[0]) selected for
+ // transmission 1 No transmission on
+ // Data Line0 (SPIDAT[0])
+#define MCSPI_CH3CONF_DMAR 0x00008000 // DMA Read request The DMA Read
+ // request line is asserted when the
+ // channel is enabled and a new data
+ // is available in the receive
+ // register of the channel. The DMA
+ // Read request line is deasserted
+ // on read completion of the receive
+ // register of the channel. 0 DMA
+ // Read Request disabled 1 DMA Read
+ // Request enabled
+#define MCSPI_CH3CONF_DMAW 0x00004000 // DMA Write request. The DMA Write
+ // request line is asserted when The
+ // channel is enabled and the
+ // transmitter register of the
+ // channel is empty. The DMA Write
+ // request line is deasserted on
+ // load completion of the
+ // transmitter register of the
+ // channel. 0 DMA Write Request
+ // disabled 1 DMA Write Request
+ // enabled
+#define MCSPI_CH3CONF_TRM_M 0x00003000 // Transmit/Receive modes 0x0
+ // Transmit and Receive mode 0x1
+ // Receive only mode 0x2 Transmit
+ // only mode 0x3 Reserved
+#define MCSPI_CH3CONF_TRM_S 12
+#define MCSPI_CH3CONF_WL_M 0x00000F80 // SPI word length 0x00 Reserved
+ // 0x01 Reserved 0x02 Reserved 0x03
+ // The SPI word is 4-bits long 0x04
+ // The SPI word is 5-bits long 0x05
+ // The SPI word is 6-bits long 0x06
+ // The SPI word is 7-bits long 0x07
+ // The SPI word is 8-bits long 0x08
+ // The SPI word is 9-bits long 0x09
+ // The SPI word is 10-bits long 0x0A
+ // The SPI word is 11-bits long 0x0B
+ // The SPI word is 12-bits long 0x0C
+ // The SPI word is 13-bits long 0x0D
+ // The SPI word is 14-bits long 0x0E
+ // The SPI word is 15-bits long 0x0F
+ // The SPI word is 16-bits long 0x10
+ // The SPI word is 17-bits long 0x11
+ // The SPI word is 18-bits long 0x12
+ // The SPI word is 19-bits long 0x13
+ // The SPI word is 20-bits long 0x14
+ // The SPI word is 21-bits long 0x15
+ // The SPI word is 22-bits long 0x16
+ // The SPI word is 23-bits long 0x17
+ // The SPI word is 24-bits long 0x18
+ // The SPI word is 25-bits long 0x19
+ // The SPI word is 26-bits long 0x1A
+ // The SPI word is 27-bits long 0x1B
+ // The SPI word is 28-bits long 0x1C
+ // The SPI word is 29-bits long 0x1D
+ // The SPI word is 30-bits long 0x1E
+ // The SPI word is 31-bits long 0x1F
+ // The SPI word is 32-bits long
+#define MCSPI_CH3CONF_WL_S 7
+#define MCSPI_CH3CONF_EPOL 0x00000040 // SPIEN polarity 0 SPIEN is held
+ // high during the active state. 1
+ // SPIEN is held low during the
+ // active state.
+#define MCSPI_CH3CONF_CLKD_M 0x0000003C // Frequency divider for SPICLK.
+ // (only when the module is a Master
+ // SPI device). A programmable clock
+ // divider divides the SPI reference
+ // clock (CLKSPIREF) with a 4-bit
+ // value and results in a new clock
+ // SPICLK available to shift-in and
+ // shift-out data. By default the
+ // clock divider ratio has a power
+ // of two granularity when
+ // MCSPI_CHCONF[CLKG] is cleared
+ // Otherwise this register is the 4
+ // LSB bit of a 12-bit register
+ // concatenated with clock divider
+ // extension MCSPI_CHCTRL[EXTCLK]
+ // register.The value description
+ // below defines the clock ratio
+ // when MCSPI_CHCONF[CLKG] is set to
+ // 0. 0x0 1 0x1 2 0x2 4 0x3 8 0x4 16
+ // 0x5 32 0x6 64 0x7 128 0x8 256 0x9
+ // 512 0xA 1024 0xB 2048 0xC 4096
+ // 0xD 8192 0xE 16384 0xF 32768
+#define MCSPI_CH3CONF_CLKD_S 2
+#define MCSPI_CH3CONF_POL 0x00000002 // SPICLK polarity 0 SPICLK is held
+ // high during the active state 1
+ // SPICLK is held low during the
+ // active state
+#define MCSPI_CH3CONF_PHA 0x00000001 // SPICLK phase 0 Data are latched
+ // on odd numbered edges of SPICLK.
+ // 1 Data are latched on even
+ // numbered edges of SPICLK.
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_CH3STAT register.
+//
+//******************************************************************************
+#define MCSPI_CH3STAT_RXFFF 0x00000040
+#define MCSPI_CH3STAT_RXFFE 0x00000020
+#define MCSPI_CH3STAT_TXFFF 0x00000010
+#define MCSPI_CH3STAT_TXFFE 0x00000008
+#define MCSPI_CH3STAT_EOT 0x00000004
+#define MCSPI_CH3STAT_TXS 0x00000002
+#define MCSPI_CH3STAT_RXS 0x00000001
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_CH3CTRL register.
+//
+//******************************************************************************
+#define MCSPI_CH3CTRL_EXTCLK_M 0x0000FF00 // Clock ratio extension: This
+ // register is used to concatenate
+ // with MCSPI_CHCONF[CLKD] register
+ // for clock ratio only when
+ // granularity is one clock cycle
+ // (MCSPI_CHCONF[CLKG] set to 1).
+ // Then the max value reached is
+ // 4096 clock divider ratio. 0x00
+ // Clock ratio is CLKD + 1 0x01
+ // Clock ratio is CLKD + 1 + 16 0xFF
+ // Clock ratio is CLKD + 1 + 4080
+#define MCSPI_CH3CTRL_EXTCLK_S 8
+#define MCSPI_CH3CTRL_EN 0x00000001 // Channel Enable 0 "Channel ""i""
+ // is not active" 1 "Channel ""i""
+ // is active"
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_TX3 register.
+//
+//******************************************************************************
+#define MCSPI_TX3_TDATA_M 0xFFFFFFFF // Channel 3 Data to transmit
+#define MCSPI_TX3_TDATA_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_RX3 register.
+//
+//******************************************************************************
+#define MCSPI_RX3_RDATA_M 0xFFFFFFFF // Channel 3 Received Data
+#define MCSPI_RX3_RDATA_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_XFERLEVEL register.
+//
+//******************************************************************************
+#define MCSPI_XFERLEVEL_WCNT_M 0xFFFF0000 // Spi word counterThis register
+ // holds the programmable value of
+ // number of SPI word to be
+ // transferred on channel which is
+ // using the FIFO buffer.When
+ // transfer had started a read back
+ // in this register returns the
+ // current SPI word transfer index.
+ // 0x0000 Counter not used 0x0001
+ // one word 0xFFFE 65534 spi word
+ // 0xFFFF 65535 spi word
+#define MCSPI_XFERLEVEL_WCNT_S 16
+#define MCSPI_XFERLEVEL_AFL_M 0x0000FF00 // Buffer Almost Full This register
+ // holds the programmable almost
+ // full level value used to
+ // determine almost full buffer
+ // condition. If the user wants an
+ // interrupt or a DMA read request
+ // to be issued during a receive
+ // operation when the data buffer
+ // holds at least n bytes then the
+ // buffer MCSPI_MODULCTRL[AFL] must
+ // be set with n-1.The size of this
+ // register is defined by the
+ // generic parameter FFNBYTE. 0x00
+ // one byte 0x01 2 bytes 0xFE
+ // 255bytes 0xFF 256bytes
+#define MCSPI_XFERLEVEL_AFL_S 8
+#define MCSPI_XFERLEVEL_AEL_M 0x000000FF // Buffer Almost EmptyThis register
+ // holds the programmable almost
+ // empty level value used to
+ // determine almost empty buffer
+ // condition. If the user wants an
+ // interrupt or a DMA write request
+ // to be issued during a transmit
+ // operation when the data buffer is
+ // able to receive n bytes then the
+ // buffer MCSPI_MODULCTRL[AEL] must
+ // be set with n-1. 0x00 one byte
+ // 0x01 2 bytes 0xFE 255 bytes 0xFF
+ // 256bytes
+#define MCSPI_XFERLEVEL_AEL_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_DAFTX register.
+//
+//******************************************************************************
+#define MCSPI_DAFTX_DAFTDATA_M 0xFFFFFFFF // FIFO Data to transmit with DMA
+ // 256 bit aligned address. "This
+ // Register is only is used when
+ // MCSPI_MODULCTRL[FDAA] is set to
+ // ""1"" and only one of the
+ // MCSPI_CH(i)CONF[FFEW] of enabled
+ // channels is set. If these
+ // conditions are not respected any
+ // access to this register return a
+ // null value."
+#define MCSPI_DAFTX_DAFTDATA_S 0
+//******************************************************************************
+//
+// The following are defines for the bit fields in the MCSPI_O_DAFRX register.
+//
+//******************************************************************************
+#define MCSPI_DAFRX_DAFRDATA_M 0xFFFFFFFF // FIFO Data to transmit with DMA
+ // 256 bit aligned address. "This
+ // Register is only is used when
+ // MCSPI_MODULCTRL[FDAA] is set to
+ // ""1"" and only one of the
+ // MCSPI_CH(i)CONF[FFEW] of enabled
+ // channels is set. If these
+ // conditions are not respected any
+ // access to this register return a
+ // null value."
+#define MCSPI_DAFRX_DAFRDATA_S 0
+
+
+
+#endif // __HW_MCSPI_H__