| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745 |
- //*****************************************************************************
- //
- // 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__
|