added prescaler for 16 bit pwm in LPC1347 target

Fork of mbed-dev by mbed official

Committer:
JojoS
Date:
Sat Sep 10 15:32:04 2016 +0000
Revision:
147:ba84b7dc41a7
Parent:
80:bdf1132a57cf
added prescaler for 16 bit timers (solution as in LPC11xx), default prescaler 31 for max 28 ms period time

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 80:bdf1132a57cf 1 /* MPS2 CMSIS Library
mbed_official 80:bdf1132a57cf 2 *
mbed_official 80:bdf1132a57cf 3 * Copyright (c) 2006-2016 ARM Limited
mbed_official 80:bdf1132a57cf 4 * All rights reserved.
mbed_official 80:bdf1132a57cf 5 *
mbed_official 80:bdf1132a57cf 6 * Redistribution and use in source and binary forms, with or without
mbed_official 80:bdf1132a57cf 7 * modification, are permitted provided that the following conditions are met:
mbed_official 80:bdf1132a57cf 8 *
mbed_official 80:bdf1132a57cf 9 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 80:bdf1132a57cf 10 * this list of conditions and the following disclaimer.
mbed_official 80:bdf1132a57cf 11 *
mbed_official 80:bdf1132a57cf 12 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 80:bdf1132a57cf 13 * this list of conditions and the following disclaimer in the documentation
mbed_official 80:bdf1132a57cf 14 * and/or other materials provided with the distribution.
mbed_official 80:bdf1132a57cf 15 *
mbed_official 80:bdf1132a57cf 16 * 3. Neither the name of the copyright holder nor the names of its contributors
mbed_official 80:bdf1132a57cf 17 * may be used to endorse or promote products derived from this software without
mbed_official 80:bdf1132a57cf 18 * specific prior written permission.
mbed_official 80:bdf1132a57cf 19 *
mbed_official 80:bdf1132a57cf 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 80:bdf1132a57cf 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 80:bdf1132a57cf 22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
mbed_official 80:bdf1132a57cf 23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
mbed_official 80:bdf1132a57cf 24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
mbed_official 80:bdf1132a57cf 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
mbed_official 80:bdf1132a57cf 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
mbed_official 80:bdf1132a57cf 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
mbed_official 80:bdf1132a57cf 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
mbed_official 80:bdf1132a57cf 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
mbed_official 80:bdf1132a57cf 30 * POSSIBILITY OF SUCH DAMAGE.
mbed_official 80:bdf1132a57cf 31 *******************************************************************************
mbed_official 80:bdf1132a57cf 32 * File: smm_mps2.h
mbed_official 80:bdf1132a57cf 33 * Release: Version 1.1
mbed_official 80:bdf1132a57cf 34 *******************************************************************************/
mbed_official 80:bdf1132a57cf 35
mbed_official 80:bdf1132a57cf 36 #ifndef __SMM_MPS2_H
mbed_official 80:bdf1132a57cf 37 #define __SMM_MPS2_H
mbed_official 80:bdf1132a57cf 38
mbed_official 80:bdf1132a57cf 39 #include "peripherallink.h" /* device specific header file */
mbed_official 80:bdf1132a57cf 40
mbed_official 80:bdf1132a57cf 41 #if defined ( __CC_ARM )
mbed_official 80:bdf1132a57cf 42 #pragma anon_unions
mbed_official 80:bdf1132a57cf 43 #endif
mbed_official 80:bdf1132a57cf 44
mbed_official 80:bdf1132a57cf 45 /******************************************************************************/
mbed_official 80:bdf1132a57cf 46 /* FPGA System Register declaration */
mbed_official 80:bdf1132a57cf 47 /******************************************************************************/
mbed_official 80:bdf1132a57cf 48
mbed_official 80:bdf1132a57cf 49 typedef struct
mbed_official 80:bdf1132a57cf 50 {
mbed_official 80:bdf1132a57cf 51 __IO uint32_t LED; // Offset: 0x000 (R/W) LED connections
mbed_official 80:bdf1132a57cf 52 // [31:2] : Reserved
mbed_official 80:bdf1132a57cf 53 // [1:0] : LEDs
mbed_official 80:bdf1132a57cf 54 uint32_t RESERVED1[1];
mbed_official 80:bdf1132a57cf 55 __IO uint32_t BUTTON; // Offset: 0x008 (R/W) Buttons
mbed_official 80:bdf1132a57cf 56 // [31:2] : Reserved
mbed_official 80:bdf1132a57cf 57 // [1:0] : Buttons
mbed_official 80:bdf1132a57cf 58 uint32_t RESERVED2[1];
mbed_official 80:bdf1132a57cf 59 __IO uint32_t CLK1HZ; // Offset: 0x010 (R/W) 1Hz up counter
mbed_official 80:bdf1132a57cf 60 __IO uint32_t CLK100HZ; // Offset: 0x014 (R/W) 100Hz up counter
mbed_official 80:bdf1132a57cf 61 __IO uint32_t COUNTER; // Offset: 0x018 (R/W) Cycle Up Counter
mbed_official 80:bdf1132a57cf 62 // Increments when 32-bit prescale counter reach zero
mbed_official 80:bdf1132a57cf 63 __IO uint32_t PRESCALE; // Offset: 0x1C (R/W) Prescaler
mbed_official 80:bdf1132a57cf 64 // Bit[31:0] : reload value for prescale counter
mbed_official 80:bdf1132a57cf 65 __IO uint32_t PSCNTR; // Offset: 0x020 (R/W) 32-bit Prescale counter
mbed_official 80:bdf1132a57cf 66 // current value of the pre-scaler counter
mbed_official 80:bdf1132a57cf 67 // The Cycle Up Counter increment when the prescale down counter reach 0
mbed_official 80:bdf1132a57cf 68 // The pre-scaler counter is reloaded with PRESCALE after reaching 0.
mbed_official 80:bdf1132a57cf 69 uint32_t RESERVED4[10];
mbed_official 80:bdf1132a57cf 70 __IO uint32_t MISC; // Offset: 0x04C (R/W) Misc control */
mbed_official 80:bdf1132a57cf 71 // [31:10] : Reserved
mbed_official 80:bdf1132a57cf 72 // [9] : SHIELD_1_SPI_nCS
mbed_official 80:bdf1132a57cf 73 // [8] : SHIELD_0_SPI_nCS
mbed_official 80:bdf1132a57cf 74 // [7] : ADC_SPI_nCS
mbed_official 80:bdf1132a57cf 75 // [6] : CLCD_BL_CTRL
mbed_official 80:bdf1132a57cf 76 // [5] : CLCD_RD
mbed_official 80:bdf1132a57cf 77 // [4] : CLCD_RS
mbed_official 80:bdf1132a57cf 78 // [3] : CLCD_RESET
mbed_official 80:bdf1132a57cf 79 // [2] : RESERVED
mbed_official 80:bdf1132a57cf 80 // [1] : SPI_nSS
mbed_official 80:bdf1132a57cf 81 // [0] : CLCD_CS
mbed_official 80:bdf1132a57cf 82 } MPS2_FPGAIO_TypeDef;
mbed_official 80:bdf1132a57cf 83
mbed_official 80:bdf1132a57cf 84 // MISC register bit definitions
mbed_official 80:bdf1132a57cf 85
mbed_official 80:bdf1132a57cf 86 #define CLCD_CS_Pos 0
mbed_official 80:bdf1132a57cf 87 #define CLCD_CS_Msk (1UL<<CLCD_CS_Pos)
mbed_official 80:bdf1132a57cf 88 #define SPI_nSS_Pos 1
mbed_official 80:bdf1132a57cf 89 #define SPI_nSS_Msk (1UL<<SPI_nSS_Pos)
mbed_official 80:bdf1132a57cf 90 #define CLCD_RESET_Pos 3
mbed_official 80:bdf1132a57cf 91 #define CLCD_RESET_Msk (1UL<<CLCD_RESET_Pos)
mbed_official 80:bdf1132a57cf 92 #define CLCD_RS_Pos 4
mbed_official 80:bdf1132a57cf 93 #define CLCD_RS_Msk (1UL<<CLCD_RS_Pos)
mbed_official 80:bdf1132a57cf 94 #define CLCD_RD_Pos 5
mbed_official 80:bdf1132a57cf 95 #define CLCD_RD_Msk (1UL<<CLCD_RD_Pos)
mbed_official 80:bdf1132a57cf 96 #define CLCD_BL_Pos 6
mbed_official 80:bdf1132a57cf 97 #define CLCD_BL_Msk (1UL<<CLCD_BL_Pos)
mbed_official 80:bdf1132a57cf 98 #define ADC_nCS_Pos 7
mbed_official 80:bdf1132a57cf 99 #define ADC_nCS_Msk (1UL<<ADC_nCS_Pos)
mbed_official 80:bdf1132a57cf 100 #define SHIELD_0_nCS_Pos 8
mbed_official 80:bdf1132a57cf 101 #define SHIELD_0_nCS_Msk (1UL<<SHIELD_0_nCS_Pos)
mbed_official 80:bdf1132a57cf 102 #define SHIELD_1_nCS_Pos 9
mbed_official 80:bdf1132a57cf 103 #define SHIELD_1_nCS_Msk (1UL<<SHIELD_1_nCS_Pos)
mbed_official 80:bdf1132a57cf 104
mbed_official 80:bdf1132a57cf 105 /******************************************************************************/
mbed_official 80:bdf1132a57cf 106 /* SCC Register declaration */
mbed_official 80:bdf1132a57cf 107 /******************************************************************************/
mbed_official 80:bdf1132a57cf 108
mbed_official 80:bdf1132a57cf 109 typedef struct //
mbed_official 80:bdf1132a57cf 110 {
mbed_official 80:bdf1132a57cf 111 __IO uint32_t CFG_REG0; // Offset: 0x000 (R/W) Remaps block RAM to ZBT
mbed_official 80:bdf1132a57cf 112 // [31:1] : Reserved
mbed_official 80:bdf1132a57cf 113 // [0] 1 : REMAP BlockRam to ZBT
mbed_official 80:bdf1132a57cf 114 __IO uint32_t LEDS; // Offset: 0x004 (R/W) Controls the MCC user LEDs
mbed_official 80:bdf1132a57cf 115 // [31:8] : Reserved
mbed_official 80:bdf1132a57cf 116 // [7:0] : MCC LEDs
mbed_official 80:bdf1132a57cf 117 uint32_t RESERVED0[1];
mbed_official 80:bdf1132a57cf 118 __I uint32_t SWITCHES; // Offset: 0x00C (R/ ) Denotes the state of the MCC user switches
mbed_official 80:bdf1132a57cf 119 // [31:8] : Reserved
mbed_official 80:bdf1132a57cf 120 // [7:0] : These bits indicate state of the MCC switches
mbed_official 80:bdf1132a57cf 121 __I uint32_t CFG_REG4; // Offset: 0x010 (R/ ) Denotes the board revision
mbed_official 80:bdf1132a57cf 122 // [31:4] : Reserved
mbed_official 80:bdf1132a57cf 123 // [3:0] : Used by the MCC to pass PCB revision. 0 = A 1 = B
mbed_official 80:bdf1132a57cf 124 uint32_t RESERVED1[35];
mbed_official 80:bdf1132a57cf 125 __IO uint32_t SYS_CFGDATA_RTN; // Offset: 0x0A0 (R/W) User data register
mbed_official 80:bdf1132a57cf 126 // [31:0] : Data
mbed_official 80:bdf1132a57cf 127 __IO uint32_t SYS_CFGDATA_OUT; // Offset: 0x0A4 (R/W) User data register
mbed_official 80:bdf1132a57cf 128 // [31:0] : Data
mbed_official 80:bdf1132a57cf 129 __IO uint32_t SYS_CFGCTRL; // Offset: 0x0A8 (R/W) Control register
mbed_official 80:bdf1132a57cf 130 // [31] : Start (generates interrupt on write to this bit)
mbed_official 80:bdf1132a57cf 131 // [30] : R/W access
mbed_official 80:bdf1132a57cf 132 // [29:26] : Reserved
mbed_official 80:bdf1132a57cf 133 // [25:20] : Function value
mbed_official 80:bdf1132a57cf 134 // [19:12] : Reserved
mbed_official 80:bdf1132a57cf 135 // [11:0] : Device (value of 0/1/2 for supported clocks)
mbed_official 80:bdf1132a57cf 136 __IO uint32_t SYS_CFGSTAT; // Offset: 0x0AC (R/W) Contains status information
mbed_official 80:bdf1132a57cf 137 // [31:2] : Reserved
mbed_official 80:bdf1132a57cf 138 // [1] : Error
mbed_official 80:bdf1132a57cf 139 // [0] : Complete
mbed_official 80:bdf1132a57cf 140 __IO uint32_t RESERVED2[20];
mbed_official 80:bdf1132a57cf 141 __IO uint32_t SCC_DLL; // Offset: 0x100 (R/W) DLL Lock Register
mbed_official 80:bdf1132a57cf 142 // [31:24] : DLL LOCK MASK[7:0] - Indicate if the DLL locked is masked
mbed_official 80:bdf1132a57cf 143 // [23:16] : DLL LOCK MASK[7:0] - Indicate if the DLLs are locked or unlocked
mbed_official 80:bdf1132a57cf 144 // [15:1] : Reserved
mbed_official 80:bdf1132a57cf 145 // [0] : This bit indicates if all enabled DLLs are locked
mbed_official 80:bdf1132a57cf 146 uint32_t RESERVED3[957];
mbed_official 80:bdf1132a57cf 147 __I uint32_t SCC_AID; // Offset: 0xFF8 (R/ ) SCC AID Register
mbed_official 80:bdf1132a57cf 148 // [31:24] : FPGA build number
mbed_official 80:bdf1132a57cf 149 // [23:20] : V2M-MPS2 target board revision (A = 0, B = 1)
mbed_official 80:bdf1132a57cf 150 // [19:11] : Reserved
mbed_official 80:bdf1132a57cf 151 // [10] : if “1” SCC_SW register has been implemented
mbed_official 80:bdf1132a57cf 152 // [9] : if “1” SCC_LED register has been implemented
mbed_official 80:bdf1132a57cf 153 // [8] : if “1” DLL lock register has been implemented
mbed_official 80:bdf1132a57cf 154 // [7:0] : number of SCC configuration register
mbed_official 80:bdf1132a57cf 155 __I uint32_t SCC_ID; // Offset: 0xFFC (R/ ) Contains information about the FPGA image
mbed_official 80:bdf1132a57cf 156 // [31:24] : Implementer ID: 0x41 = ARM
mbed_official 80:bdf1132a57cf 157 // [23:20] : Application note IP variant number
mbed_official 80:bdf1132a57cf 158 // [19:16] : IP Architecture: 0x4 =AHB
mbed_official 80:bdf1132a57cf 159 // [15:4] : Primary part number: 386 = AN386
mbed_official 80:bdf1132a57cf 160 // [3:0] : Application note IP revision number
mbed_official 80:bdf1132a57cf 161 } MPS2_SCC_TypeDef;
mbed_official 80:bdf1132a57cf 162
mbed_official 80:bdf1132a57cf 163
mbed_official 80:bdf1132a57cf 164 /******************************************************************************/
mbed_official 80:bdf1132a57cf 165 /* SSP Peripheral declaration */
mbed_official 80:bdf1132a57cf 166 /******************************************************************************/
mbed_official 80:bdf1132a57cf 167
mbed_official 80:bdf1132a57cf 168 typedef struct // Document DDI0194G_ssp_pl022_r1p3_trm.pdf
mbed_official 80:bdf1132a57cf 169 {
mbed_official 80:bdf1132a57cf 170 __IO uint32_t CR0; // Offset: 0x000 (R/W) Control register 0
mbed_official 80:bdf1132a57cf 171 // [31:16] : Reserved
mbed_official 80:bdf1132a57cf 172 // [15:8] : Serial clock rate
mbed_official 80:bdf1132a57cf 173 // [7] : SSPCLKOUT phase, applicable to Motorola SPI frame format only
mbed_official 80:bdf1132a57cf 174 // [6] : SSPCLKOUT polarity, applicable to Motorola SPI frame format only
mbed_official 80:bdf1132a57cf 175 // [5:4] : Frame format
mbed_official 80:bdf1132a57cf 176 // [3:0] : Data Size Select
mbed_official 80:bdf1132a57cf 177 __IO uint32_t CR1; // Offset: 0x004 (R/W) Control register 1
mbed_official 80:bdf1132a57cf 178 // [31:4] : Reserved
mbed_official 80:bdf1132a57cf 179 // [3] : Slave-mode output disable
mbed_official 80:bdf1132a57cf 180 // [2] : Master or slave mode select
mbed_official 80:bdf1132a57cf 181 // [1] : Synchronous serial port enable
mbed_official 80:bdf1132a57cf 182 // [0] : Loop back mode
mbed_official 80:bdf1132a57cf 183 __IO uint32_t DR; // Offset: 0x008 (R/W) Data register
mbed_official 80:bdf1132a57cf 184 // [31:16] : Reserved
mbed_official 80:bdf1132a57cf 185 // [15:0] : Transmit/Receive FIFO
mbed_official 80:bdf1132a57cf 186 __I uint32_t SR; // Offset: 0x00C (R/ ) Status register
mbed_official 80:bdf1132a57cf 187 // [31:5] : Reserved
mbed_official 80:bdf1132a57cf 188 // [4] : PrimeCell SSP busy flag
mbed_official 80:bdf1132a57cf 189 // [3] : Receive FIFO full
mbed_official 80:bdf1132a57cf 190 // [2] : Receive FIFO not empty
mbed_official 80:bdf1132a57cf 191 // [1] : Transmit FIFO not full
mbed_official 80:bdf1132a57cf 192 // [0] : Transmit FIFO empty
mbed_official 80:bdf1132a57cf 193 __IO uint32_t CPSR; // Offset: 0x010 (R/W) Clock prescale register
mbed_official 80:bdf1132a57cf 194 // [31:8] : Reserved
mbed_official 80:bdf1132a57cf 195 // [8:0] : Clock prescale divisor
mbed_official 80:bdf1132a57cf 196 __IO uint32_t IMSC; // Offset: 0x014 (R/W) Interrupt mask set or clear register
mbed_official 80:bdf1132a57cf 197 // [31:4] : Reserved
mbed_official 80:bdf1132a57cf 198 // [3] : Transmit FIFO interrupt mask
mbed_official 80:bdf1132a57cf 199 // [2] : Receive FIFO interrupt mask
mbed_official 80:bdf1132a57cf 200 // [1] : Receive timeout interrupt mask
mbed_official 80:bdf1132a57cf 201 // [0] : Receive overrun interrupt mask
mbed_official 80:bdf1132a57cf 202 __I uint32_t RIS; // Offset: 0x018 (R/ ) Raw interrupt status register
mbed_official 80:bdf1132a57cf 203 // [31:4] : Reserved
mbed_official 80:bdf1132a57cf 204 // [3] : raw interrupt state, prior to masking, of the SSPTXINTR interrupt
mbed_official 80:bdf1132a57cf 205 // [2] : raw interrupt state, prior to masking, of the SSPRXINTR interrupt
mbed_official 80:bdf1132a57cf 206 // [1] : raw interrupt state, prior to masking, of the SSPRTINTR interrupt
mbed_official 80:bdf1132a57cf 207 // [0] : raw interrupt state, prior to masking, of the SSPRORINTR interrupt
mbed_official 80:bdf1132a57cf 208 __I uint32_t MIS; // Offset: 0x01C (R/ ) Masked interrupt status register
mbed_official 80:bdf1132a57cf 209 // [31:4] : Reserved
mbed_official 80:bdf1132a57cf 210 // [3] : transmit FIFO masked interrupt state, after masking, of the SSPTXINTR interrupt
mbed_official 80:bdf1132a57cf 211 // [2] : receive FIFO masked interrupt state, after masking, of the SSPRXINTR interrupt
mbed_official 80:bdf1132a57cf 212 // [1] : receive timeout masked interrupt state, after masking, of the SSPRTINTR interrupt
mbed_official 80:bdf1132a57cf 213 // [0] : receive over run masked interrupt status, after masking, of the SSPRORINTR interrupt
mbed_official 80:bdf1132a57cf 214 __O uint32_t ICR; // Offset: 0x020 ( /W) Interrupt clear register
mbed_official 80:bdf1132a57cf 215 // [31:2] : Reserved
mbed_official 80:bdf1132a57cf 216 // [1] : Clears the SSPRTINTR interrupt
mbed_official 80:bdf1132a57cf 217 // [0] : Clears the SSPRORINTR interrupt
mbed_official 80:bdf1132a57cf 218 __IO uint32_t DMACR; // Offset: 0x024 (R/W) DMA control register
mbed_official 80:bdf1132a57cf 219 // [31:2] : Reserved
mbed_official 80:bdf1132a57cf 220 // [1] : Transmit DMA Enable
mbed_official 80:bdf1132a57cf 221 // [0] : Receive DMA Enable
mbed_official 80:bdf1132a57cf 222 } MPS2_SSP_TypeDef;
mbed_official 80:bdf1132a57cf 223
mbed_official 80:bdf1132a57cf 224
mbed_official 80:bdf1132a57cf 225 // SSP_CR0 Control register 0
mbed_official 80:bdf1132a57cf 226 #define SSP_CR0_DSS_Pos 0 // Data Size Select
mbed_official 80:bdf1132a57cf 227 #define SSP_CR0_DSS_Msk (0xF<<SSP_CR0_DSS_Pos)
mbed_official 80:bdf1132a57cf 228 #define SSP_CR0_FRF_Pos 4 // Frame Format Select
mbed_official 80:bdf1132a57cf 229 #define SSP_CR0_FRF_Msk (3UL<<SSP_CR0_FRM_Pos)
mbed_official 80:bdf1132a57cf 230 #define SSP_CR0_SPO_Pos 6 // SSPCLKOUT polarity
mbed_official 80:bdf1132a57cf 231 #define SSP_CR0_SPO_Msk (1UL<<SSP_CR0_SPO_Pos)
mbed_official 80:bdf1132a57cf 232 #define SSP_CR0_SPH_Pos 7 // SSPCLKOUT phase
mbed_official 80:bdf1132a57cf 233 #define SSP_CR0_SPH_Msk (1UL<<SSP_CR0_SPH_Pos)
mbed_official 80:bdf1132a57cf 234 #define SSP_CR0_SCR_Pos 8 // Serial Clock Rate (divide)
mbed_official 80:bdf1132a57cf 235 #define SSP_CR0_SCR_Msk (0xFF<<SSP_CR0_SCR_Pos)
mbed_official 80:bdf1132a57cf 236
mbed_official 80:bdf1132a57cf 237 #define SSP_CR0_SCR_DFLT 0x0300 // Serial Clock Rate (divide), default set at 3
mbed_official 80:bdf1132a57cf 238 #define SSP_CR0_FRF_MOT 0x0000 // Frame format, Motorola
mbed_official 80:bdf1132a57cf 239 #define SSP_CR0_DSS_8 0x0007 // Data packet size, 8bits
mbed_official 80:bdf1132a57cf 240 #define SSP_CR0_DSS_16 0x000F // Data packet size, 16bits
mbed_official 80:bdf1132a57cf 241
mbed_official 80:bdf1132a57cf 242 // SSP_CR1 Control register 1
mbed_official 80:bdf1132a57cf 243 #define SSP_CR1_LBM_Pos 0 // Loop Back Mode
mbed_official 80:bdf1132a57cf 244 #define SSP_CR1_LBM_Msk (1UL<<SSP_CR1_LBM_Pos)
mbed_official 80:bdf1132a57cf 245 #define SSP_CR1_SSE_Pos 1 // Serial port enable
mbed_official 80:bdf1132a57cf 246 #define SSP_CR1_SSE_Msk (1UL<<SSP_CR1_SSE_Pos)
mbed_official 80:bdf1132a57cf 247 #define SSP_CR1_MS_Pos 2 // Master or Slave mode
mbed_official 80:bdf1132a57cf 248 #define SSP_CR1_MS_Msk (1UL<<SSP_CR1_MS_Pos)
mbed_official 80:bdf1132a57cf 249 #define SSP_CR1_SOD_Pos 3 // Slave Output mode Disable
mbed_official 80:bdf1132a57cf 250 #define SSP_CR1_SOD_Msk (1UL<<SSP_CR1_SOD_Pos)
mbed_official 80:bdf1132a57cf 251
mbed_official 80:bdf1132a57cf 252 // SSP_SR Status register
mbed_official 80:bdf1132a57cf 253 #define SSP_SR_TFE_Pos 0 // Transmit FIFO empty
mbed_official 80:bdf1132a57cf 254 #define SSP_SR_TFE_Msk (1UL<<SSP_SR_TFE_Pos)
mbed_official 80:bdf1132a57cf 255 #define SSP_SR_TNF_Pos 1 // Transmit FIFO not full
mbed_official 80:bdf1132a57cf 256 #define SSP_SR_TNF_Msk (1UL<<SSP_SR_TNF_Pos)
mbed_official 80:bdf1132a57cf 257 #define SSP_SR_RNE_Pos 2 // Receive FIFO not empty
mbed_official 80:bdf1132a57cf 258 #define SSP_SR_RNE_Msk (1UL<<SSP_SR_RNE_Pos)
mbed_official 80:bdf1132a57cf 259 #define SSP_SR_RFF_Pos 3 // Receive FIFO full
mbed_official 80:bdf1132a57cf 260 #define SSP_SR_RFF_Msk (1UL<<SSP_SR_RFF_Pos)
mbed_official 80:bdf1132a57cf 261 #define SSP_SR_BSY_Pos 4 // Busy
mbed_official 80:bdf1132a57cf 262 #define SSP_SR_BSY_Msk (1UL<<SSP_SR_BSY_Pos)
mbed_official 80:bdf1132a57cf 263
mbed_official 80:bdf1132a57cf 264 // SSP_CPSR Clock prescale register
mbed_official 80:bdf1132a57cf 265 #define SSP_CPSR_CPD_Pos 0 // Clock prescale divisor
mbed_official 80:bdf1132a57cf 266 #define SSP_CPSR_CPD_Msk (0xFF<<SSP_CPSR_CDP_Pos)
mbed_official 80:bdf1132a57cf 267
mbed_official 80:bdf1132a57cf 268 #define SSP_CPSR_DFLT 0x0008 // Clock prescale (use with SCR), default set at 8
mbed_official 80:bdf1132a57cf 269
mbed_official 80:bdf1132a57cf 270 // SSPIMSC Interrupt mask set and clear register
mbed_official 80:bdf1132a57cf 271 #define SSP_IMSC_RORIM_Pos 0 // Receive overrun not Masked
mbed_official 80:bdf1132a57cf 272 #define SSP_IMSC_RORIM_Msk (1UL<<SSP_IMSC_RORIM_Pos)
mbed_official 80:bdf1132a57cf 273 #define SSP_IMSC_RTIM_Pos 1 // Receive timeout not Masked
mbed_official 80:bdf1132a57cf 274 #define SSP_IMSC_RTIM_Msk (1UL<<SSP_IMSC_RTIM_Pos)
mbed_official 80:bdf1132a57cf 275 #define SSP_IMSC_RXIM_Pos 2 // Receive FIFO not Masked
mbed_official 80:bdf1132a57cf 276 #define SSP_IMSC_RXIM_Msk (1UL<<SSP_IMSC_RXIM_Pos)
mbed_official 80:bdf1132a57cf 277 #define SSP_IMSC_TXIM_Pos 3 // Transmit FIFO not Masked
mbed_official 80:bdf1132a57cf 278 #define SSP_IMSC_TXIM_Msk (1UL<<SSP_IMSC_TXIM_Pos)
mbed_official 80:bdf1132a57cf 279
mbed_official 80:bdf1132a57cf 280 // SSPRIS Raw interrupt status register
mbed_official 80:bdf1132a57cf 281 #define SSP_RIS_RORRIS_Pos 0 // Raw Overrun interrupt flag
mbed_official 80:bdf1132a57cf 282 #define SSP_RIS_RORRIS_Msk (1UL<<SSP_RIS_RORRIS_Pos)
mbed_official 80:bdf1132a57cf 283 #define SSP_RIS_RTRIS_Pos 1 // Raw Timemout interrupt flag
mbed_official 80:bdf1132a57cf 284 #define SSP_RIS_RTRIS_Msk (1UL<<SSP_RIS_RTRIS_Pos)
mbed_official 80:bdf1132a57cf 285 #define SSP_RIS_RXRIS_Pos 2 // Raw Receive interrupt flag
mbed_official 80:bdf1132a57cf 286 #define SSP_RIS_RXRIS_Msk (1UL<<SSP_RIS_RXRIS_Pos)
mbed_official 80:bdf1132a57cf 287 #define SSP_RIS_TXRIS_Pos 3 // Raw Transmit interrupt flag
mbed_official 80:bdf1132a57cf 288 #define SSP_RIS_TXRIS_Msk (1UL<<SSP_RIS_TXRIS_Pos)
mbed_official 80:bdf1132a57cf 289
mbed_official 80:bdf1132a57cf 290 // SSPMIS Masked interrupt status register
mbed_official 80:bdf1132a57cf 291 #define SSP_MIS_RORMIS_Pos 0 // Masked Overrun interrupt flag
mbed_official 80:bdf1132a57cf 292 #define SSP_MIS_RORMIS_Msk (1UL<<SSP_MIS_RORMIS_Pos)
mbed_official 80:bdf1132a57cf 293 #define SSP_MIS_RTMIS_Pos 1 // Masked Timemout interrupt flag
mbed_official 80:bdf1132a57cf 294 #define SSP_MIS_RTMIS_Msk (1UL<<SSP_MIS_RTMIS_Pos)
mbed_official 80:bdf1132a57cf 295 #define SSP_MIS_RXMIS_Pos 2 // Masked Receive interrupt flag
mbed_official 80:bdf1132a57cf 296 #define SSP_MIS_RXMIS_Msk (1UL<<SSP_MIS_RXMIS_Pos)
mbed_official 80:bdf1132a57cf 297 #define SSP_MIS_TXMIS_Pos 3 // Masked Transmit interrupt flag
mbed_official 80:bdf1132a57cf 298 #define SSP_MIS_TXMIS_Msk (1UL<<SSP_MIS_TXMIS_Pos)
mbed_official 80:bdf1132a57cf 299
mbed_official 80:bdf1132a57cf 300 // SSPICR Interrupt clear register
mbed_official 80:bdf1132a57cf 301 #define SSP_ICR_RORIC_Pos 0 // Clears Overrun interrupt flag
mbed_official 80:bdf1132a57cf 302 #define SSP_ICR_RORIC_Msk (1UL<<SSP_ICR_RORIC_Pos)
mbed_official 80:bdf1132a57cf 303 #define SSP_ICR_RTIC_Pos 1 // Clears Timemout interrupt flag
mbed_official 80:bdf1132a57cf 304 #define SSP_ICR_RTIC_Msk (1UL<<SSP_ICR_RTIC_Pos)
mbed_official 80:bdf1132a57cf 305
mbed_official 80:bdf1132a57cf 306 // SSPDMACR DMA control register
mbed_official 80:bdf1132a57cf 307 #define SSP_DMACR_RXDMAE_Pos 0 // Enable Receive FIFO DMA
mbed_official 80:bdf1132a57cf 308 #define SSP_DMACR_RXDMAE_Msk (1UL<<SSP_DMACR_RXDMAE_Pos)
mbed_official 80:bdf1132a57cf 309 #define SSP_DMACR_TXDMAE_Pos 1 // Enable Transmit FIFO DMA
mbed_official 80:bdf1132a57cf 310 #define SSP_DMACR_TXDMAE_Msk (1UL<<SSP_DMACR_TXDMAE_Pos)
mbed_official 80:bdf1132a57cf 311
mbed_official 80:bdf1132a57cf 312 /******************************************************************************/
mbed_official 80:bdf1132a57cf 313 /* Audio and Touch Screen (I2C) Peripheral declaration */
mbed_official 80:bdf1132a57cf 314 /******************************************************************************/
mbed_official 80:bdf1132a57cf 315
mbed_official 80:bdf1132a57cf 316 typedef struct
mbed_official 80:bdf1132a57cf 317 {
mbed_official 80:bdf1132a57cf 318 union {
mbed_official 80:bdf1132a57cf 319 __O uint32_t CONTROLS; // Offset: 0x000 CONTROL Set Register ( /W)
mbed_official 80:bdf1132a57cf 320 __I uint32_t CONTROL; // Offset: 0x000 CONTROL Status Register (R/ )
mbed_official 80:bdf1132a57cf 321 };
mbed_official 80:bdf1132a57cf 322 __O uint32_t CONTROLC; // Offset: 0x004 CONTROL Clear Register ( /W)
mbed_official 80:bdf1132a57cf 323 } MPS2_I2C_TypeDef;
mbed_official 80:bdf1132a57cf 324
mbed_official 80:bdf1132a57cf 325 #define SDA 1 << 1
mbed_official 80:bdf1132a57cf 326 #define SCL 1 << 0
mbed_official 80:bdf1132a57cf 327
mbed_official 80:bdf1132a57cf 328
mbed_official 80:bdf1132a57cf 329 /******************************************************************************/
mbed_official 80:bdf1132a57cf 330 /* Audio I2S Peripheral declaration */
mbed_official 80:bdf1132a57cf 331 /******************************************************************************/
mbed_official 80:bdf1132a57cf 332
mbed_official 80:bdf1132a57cf 333 typedef struct
mbed_official 80:bdf1132a57cf 334 {
mbed_official 80:bdf1132a57cf 335 /*!< Offset: 0x000 CONTROL Register (R/W) */
mbed_official 80:bdf1132a57cf 336 __IO uint32_t CONTROL; // <h> CONTROL </h>
mbed_official 80:bdf1132a57cf 337 // <o.0> TX Enable
mbed_official 80:bdf1132a57cf 338 // <0=> TX disabled
mbed_official 80:bdf1132a57cf 339 // <1=> TX enabled
mbed_official 80:bdf1132a57cf 340 // <o.1> TX IRQ Enable
mbed_official 80:bdf1132a57cf 341 // <0=> TX IRQ disabled
mbed_official 80:bdf1132a57cf 342 // <1=> TX IRQ enabled
mbed_official 80:bdf1132a57cf 343 // <o.2> RX Enable
mbed_official 80:bdf1132a57cf 344 // <0=> RX disabled
mbed_official 80:bdf1132a57cf 345 // <1=> RX enabled
mbed_official 80:bdf1132a57cf 346 // <o.3> RX IRQ Enable
mbed_official 80:bdf1132a57cf 347 // <0=> RX IRQ disabled
mbed_official 80:bdf1132a57cf 348 // <1=> RX IRQ enabled
mbed_official 80:bdf1132a57cf 349 // <o.10..8> TX Buffer Water Level
mbed_official 80:bdf1132a57cf 350 // <0=> / IRQ triggers when any space available
mbed_official 80:bdf1132a57cf 351 // <1=> / IRQ triggers when more than 1 space available
mbed_official 80:bdf1132a57cf 352 // <2=> / IRQ triggers when more than 2 space available
mbed_official 80:bdf1132a57cf 353 // <3=> / IRQ triggers when more than 3 space available
mbed_official 80:bdf1132a57cf 354 // <4=> Undefined!
mbed_official 80:bdf1132a57cf 355 // <5=> Undefined!
mbed_official 80:bdf1132a57cf 356 // <6=> Undefined!
mbed_official 80:bdf1132a57cf 357 // <7=> Undefined!
mbed_official 80:bdf1132a57cf 358 // <o.14..12> RX Buffer Water Level
mbed_official 80:bdf1132a57cf 359 // <0=> Undefined!
mbed_official 80:bdf1132a57cf 360 // <1=> / IRQ triggers when less than 1 space available
mbed_official 80:bdf1132a57cf 361 // <2=> / IRQ triggers when less than 2 space available
mbed_official 80:bdf1132a57cf 362 // <3=> / IRQ triggers when less than 3 space available
mbed_official 80:bdf1132a57cf 363 // <4=> / IRQ triggers when less than 4 space available
mbed_official 80:bdf1132a57cf 364 // <5=> Undefined!
mbed_official 80:bdf1132a57cf 365 // <6=> Undefined!
mbed_official 80:bdf1132a57cf 366 // <7=> Undefined!
mbed_official 80:bdf1132a57cf 367 // <o.16> FIFO reset
mbed_official 80:bdf1132a57cf 368 // <0=> Normal operation
mbed_official 80:bdf1132a57cf 369 // <1=> FIFO reset
mbed_official 80:bdf1132a57cf 370 // <o.17> Audio Codec reset
mbed_official 80:bdf1132a57cf 371 // <0=> Normal operation
mbed_official 80:bdf1132a57cf 372 // <1=> Assert audio Codec reset
mbed_official 80:bdf1132a57cf 373 /*!< Offset: 0x004 STATUS Register (R/ ) */
mbed_official 80:bdf1132a57cf 374 __I uint32_t STATUS; // <h> STATUS </h>
mbed_official 80:bdf1132a57cf 375 // <o.0> TX Buffer alert
mbed_official 80:bdf1132a57cf 376 // <0=> TX buffer don't need service yet
mbed_official 80:bdf1132a57cf 377 // <1=> TX buffer need service
mbed_official 80:bdf1132a57cf 378 // <o.1> RX Buffer alert
mbed_official 80:bdf1132a57cf 379 // <0=> RX buffer don't need service yet
mbed_official 80:bdf1132a57cf 380 // <1=> RX buffer need service
mbed_official 80:bdf1132a57cf 381 // <o.2> TX Buffer Empty
mbed_official 80:bdf1132a57cf 382 // <0=> TX buffer have data
mbed_official 80:bdf1132a57cf 383 // <1=> TX buffer empty
mbed_official 80:bdf1132a57cf 384 // <o.3> TX Buffer Full
mbed_official 80:bdf1132a57cf 385 // <0=> TX buffer not full
mbed_official 80:bdf1132a57cf 386 // <1=> TX buffer full
mbed_official 80:bdf1132a57cf 387 // <o.4> RX Buffer Empty
mbed_official 80:bdf1132a57cf 388 // <0=> RX buffer have data
mbed_official 80:bdf1132a57cf 389 // <1=> RX buffer empty
mbed_official 80:bdf1132a57cf 390 // <o.5> RX Buffer Full
mbed_official 80:bdf1132a57cf 391 // <0=> RX buffer not full
mbed_official 80:bdf1132a57cf 392 // <1=> RX buffer full
mbed_official 80:bdf1132a57cf 393 union {
mbed_official 80:bdf1132a57cf 394 /*!< Offset: 0x008 Error Status Register (R/ ) */
mbed_official 80:bdf1132a57cf 395 __I uint32_t ERROR; // <h> ERROR </h>
mbed_official 80:bdf1132a57cf 396 // <o.0> TX error
mbed_official 80:bdf1132a57cf 397 // <0=> Okay
mbed_official 80:bdf1132a57cf 398 // <1=> TX overrun/underrun
mbed_official 80:bdf1132a57cf 399 // <o.1> RX error
mbed_official 80:bdf1132a57cf 400 // <0=> Okay
mbed_official 80:bdf1132a57cf 401 // <1=> RX overrun/underrun
mbed_official 80:bdf1132a57cf 402 /*!< Offset: 0x008 Error Clear Register ( /W) */
mbed_official 80:bdf1132a57cf 403 __O uint32_t ERRORCLR; // <h> ERRORCLR </h>
mbed_official 80:bdf1132a57cf 404 // <o.0> TX error
mbed_official 80:bdf1132a57cf 405 // <0=> Okay
mbed_official 80:bdf1132a57cf 406 // <1=> Clear TX error
mbed_official 80:bdf1132a57cf 407 // <o.1> RX error
mbed_official 80:bdf1132a57cf 408 // <0=> Okay
mbed_official 80:bdf1132a57cf 409 // <1=> Clear RX error
mbed_official 80:bdf1132a57cf 410 };
mbed_official 80:bdf1132a57cf 411 /*!< Offset: 0x00C Divide ratio Register (R/W) */
mbed_official 80:bdf1132a57cf 412 __IO uint32_t DIVIDE; // <h> Divide ratio for Left/Right clock </h>
mbed_official 80:bdf1132a57cf 413 // <o.9..0> TX error (default 0x80)
mbed_official 80:bdf1132a57cf 414 /*!< Offset: 0x010 Transmit Buffer ( /W) */
mbed_official 80:bdf1132a57cf 415 __O uint32_t TXBUF; // <h> Transmit buffer </h>
mbed_official 80:bdf1132a57cf 416 // <o.15..0> Right channel
mbed_official 80:bdf1132a57cf 417 // <o.31..16> Left channel
mbed_official 80:bdf1132a57cf 418 /*!< Offset: 0x014 Receive Buffer (R/ ) */
mbed_official 80:bdf1132a57cf 419 __I uint32_t RXBUF; // <h> Receive buffer </h>
mbed_official 80:bdf1132a57cf 420 // <o.15..0> Right channel
mbed_official 80:bdf1132a57cf 421 // <o.31..16> Left channel
mbed_official 80:bdf1132a57cf 422 uint32_t RESERVED1[186];
mbed_official 80:bdf1132a57cf 423 __IO uint32_t ITCR; // <h> Integration Test Control Register </h>
mbed_official 80:bdf1132a57cf 424 // <o.0> ITEN
mbed_official 80:bdf1132a57cf 425 // <0=> Normal operation
mbed_official 80:bdf1132a57cf 426 // <1=> Integration Test mode enable
mbed_official 80:bdf1132a57cf 427 __O uint32_t ITIP1; // <h> Integration Test Input Register 1</h>
mbed_official 80:bdf1132a57cf 428 // <o.0> SDIN
mbed_official 80:bdf1132a57cf 429 __O uint32_t ITOP1; // <h> Integration Test Output Register 1</h>
mbed_official 80:bdf1132a57cf 430 // <o.0> SDOUT
mbed_official 80:bdf1132a57cf 431 // <o.1> SCLK
mbed_official 80:bdf1132a57cf 432 // <o.2> LRCK
mbed_official 80:bdf1132a57cf 433 // <o.3> IRQOUT
mbed_official 80:bdf1132a57cf 434 } MPS2_I2S_TypeDef;
mbed_official 80:bdf1132a57cf 435
mbed_official 80:bdf1132a57cf 436 #define I2S_CONTROL_TXEN_Pos 0
mbed_official 80:bdf1132a57cf 437 #define I2S_CONTROL_TXEN_Msk (1UL<<I2S_CONTROL_TXEN_Pos)
mbed_official 80:bdf1132a57cf 438
mbed_official 80:bdf1132a57cf 439 #define I2S_CONTROL_TXIRQEN_Pos 1
mbed_official 80:bdf1132a57cf 440 #define I2S_CONTROL_TXIRQEN_Msk (1UL<<I2S_CONTROL_TXIRQEN_Pos)
mbed_official 80:bdf1132a57cf 441
mbed_official 80:bdf1132a57cf 442 #define I2S_CONTROL_RXEN_Pos 2
mbed_official 80:bdf1132a57cf 443 #define I2S_CONTROL_RXEN_Msk (1UL<<I2S_CONTROL_RXEN_Pos)
mbed_official 80:bdf1132a57cf 444
mbed_official 80:bdf1132a57cf 445 #define I2S_CONTROL_RXIRQEN_Pos 3
mbed_official 80:bdf1132a57cf 446 #define I2S_CONTROL_RXIRQEN_Msk (1UL<<I2S_CONTROL_RXIRQEN_Pos)
mbed_official 80:bdf1132a57cf 447
mbed_official 80:bdf1132a57cf 448 #define I2S_CONTROL_TXWLVL_Pos 8
mbed_official 80:bdf1132a57cf 449 #define I2S_CONTROL_TXWLVL_Msk (7UL<<I2S_CONTROL_TXWLVL_Pos)
mbed_official 80:bdf1132a57cf 450
mbed_official 80:bdf1132a57cf 451 #define I2S_CONTROL_RXWLVL_Pos 12
mbed_official 80:bdf1132a57cf 452 #define I2S_CONTROL_RXWLVL_Msk (7UL<<I2S_CONTROL_RXWLVL_Pos)
mbed_official 80:bdf1132a57cf 453 /* FIFO reset*/
mbed_official 80:bdf1132a57cf 454 #define I2S_CONTROL_FIFORST_Pos 16
mbed_official 80:bdf1132a57cf 455 #define I2S_CONTROL_FIFORST_Msk (1UL<<I2S_CONTROL_FIFORST_Pos)
mbed_official 80:bdf1132a57cf 456 /* Codec reset*/
mbed_official 80:bdf1132a57cf 457 #define I2S_CONTROL_CODECRST_Pos 17
mbed_official 80:bdf1132a57cf 458 #define I2S_CONTROL_CODECRST_Msk (1UL<<I2S_CONTROL_CODECRST_Pos)
mbed_official 80:bdf1132a57cf 459
mbed_official 80:bdf1132a57cf 460 #define I2S_STATUS_TXIRQ_Pos 0
mbed_official 80:bdf1132a57cf 461 #define I2S_STATUS_TXIRQ_Msk (1UL<<I2S_STATUS_TXIRQ_Pos)
mbed_official 80:bdf1132a57cf 462
mbed_official 80:bdf1132a57cf 463 #define I2S_STATUS_RXIRQ_Pos 1
mbed_official 80:bdf1132a57cf 464 #define I2S_STATUS_RXIRQ_Msk (1UL<<I2S_STATUS_RXIRQ_Pos)
mbed_official 80:bdf1132a57cf 465
mbed_official 80:bdf1132a57cf 466 #define I2S_STATUS_TXEmpty_Pos 2
mbed_official 80:bdf1132a57cf 467 #define I2S_STATUS_TXEmpty_Msk (1UL<<I2S_STATUS_TXEmpty_Pos)
mbed_official 80:bdf1132a57cf 468
mbed_official 80:bdf1132a57cf 469 #define I2S_STATUS_TXFull_Pos 3
mbed_official 80:bdf1132a57cf 470 #define I2S_STATUS_TXFull_Msk (1UL<<I2S_STATUS_TXFull_Pos)
mbed_official 80:bdf1132a57cf 471
mbed_official 80:bdf1132a57cf 472 #define I2S_STATUS_RXEmpty_Pos 4
mbed_official 80:bdf1132a57cf 473 #define I2S_STATUS_RXEmpty_Msk (1UL<<I2S_STATUS_RXEmpty_Pos)
mbed_official 80:bdf1132a57cf 474
mbed_official 80:bdf1132a57cf 475 #define I2S_STATUS_RXFull_Pos 5
mbed_official 80:bdf1132a57cf 476 #define I2S_STATUS_RXFull_Msk (1UL<<I2S_STATUS_RXFull_Pos)
mbed_official 80:bdf1132a57cf 477
mbed_official 80:bdf1132a57cf 478 #define I2S_ERROR_TXERR_Pos 0
mbed_official 80:bdf1132a57cf 479 #define I2S_ERROR_TXERR_Msk (1UL<<I2S_ERROR_TXERR_Pos)
mbed_official 80:bdf1132a57cf 480
mbed_official 80:bdf1132a57cf 481 #define I2S_ERROR_RXERR_Pos 1
mbed_official 80:bdf1132a57cf 482 #define I2S_ERROR_RXERR_Msk (1UL<<I2S_ERROR_RXERR_Pos)
mbed_official 80:bdf1132a57cf 483
mbed_official 80:bdf1132a57cf 484 /******************************************************************************/
mbed_official 80:bdf1132a57cf 485 /* SMSC9220 Register Definitions */
mbed_official 80:bdf1132a57cf 486 /******************************************************************************/
mbed_official 80:bdf1132a57cf 487
mbed_official 80:bdf1132a57cf 488 typedef struct // SMSC LAN9220
mbed_official 80:bdf1132a57cf 489 {
mbed_official 80:bdf1132a57cf 490 __I uint32_t RX_DATA_PORT; // Receive FIFO Ports (offset 0x0)
mbed_official 80:bdf1132a57cf 491 uint32_t RESERVED1[0x7];
mbed_official 80:bdf1132a57cf 492 __O uint32_t TX_DATA_PORT; // Transmit FIFO Ports (offset 0x20)
mbed_official 80:bdf1132a57cf 493 uint32_t RESERVED2[0x7];
mbed_official 80:bdf1132a57cf 494
mbed_official 80:bdf1132a57cf 495 __I uint32_t RX_STAT_PORT; // Receive FIFO status port (offset 0x40)
mbed_official 80:bdf1132a57cf 496 __I uint32_t RX_STAT_PEEK; // Receive FIFO status peek (offset 0x44)
mbed_official 80:bdf1132a57cf 497 __I uint32_t TX_STAT_PORT; // Transmit FIFO status port (offset 0x48)
mbed_official 80:bdf1132a57cf 498 __I uint32_t TX_STAT_PEEK; // Transmit FIFO status peek (offset 0x4C)
mbed_official 80:bdf1132a57cf 499
mbed_official 80:bdf1132a57cf 500 __I uint32_t ID_REV; // Chip ID and Revision (offset 0x50)
mbed_official 80:bdf1132a57cf 501 __IO uint32_t IRQ_CFG; // Main Interrupt Configuration (offset 0x54)
mbed_official 80:bdf1132a57cf 502 __IO uint32_t INT_STS; // Interrupt Status (offset 0x58)
mbed_official 80:bdf1132a57cf 503 __IO uint32_t INT_EN; // Interrupt Enable Register (offset 0x5C)
mbed_official 80:bdf1132a57cf 504 uint32_t RESERVED3; // Reserved for future use (offset 0x60)
mbed_official 80:bdf1132a57cf 505 __I uint32_t BYTE_TEST; // Read-only byte order testing register 87654321h (offset 0x64)
mbed_official 80:bdf1132a57cf 506 __IO uint32_t FIFO_INT; // FIFO Level Interrupts (offset 0x68)
mbed_official 80:bdf1132a57cf 507 __IO uint32_t RX_CFG; // Receive Configuration (offset 0x6C)
mbed_official 80:bdf1132a57cf 508 __IO uint32_t TX_CFG; // Transmit Configuration (offset 0x70)
mbed_official 80:bdf1132a57cf 509 __IO uint32_t HW_CFG; // Hardware Configuration (offset 0x74)
mbed_official 80:bdf1132a57cf 510 __IO uint32_t RX_DP_CTL; // RX Datapath Control (offset 0x78)
mbed_official 80:bdf1132a57cf 511 __I uint32_t RX_FIFO_INF; // Receive FIFO Information (offset 0x7C)
mbed_official 80:bdf1132a57cf 512 __I uint32_t TX_FIFO_INF; // Transmit FIFO Information (offset 0x80)
mbed_official 80:bdf1132a57cf 513 __IO uint32_t PMT_CTRL; // Power Management Control (offset 0x84)
mbed_official 80:bdf1132a57cf 514 __IO uint32_t GPIO_CFG; // General Purpose IO Configuration (offset 0x88)
mbed_official 80:bdf1132a57cf 515 __IO uint32_t GPT_CFG; // General Purpose Timer Configuration (offset 0x8C)
mbed_official 80:bdf1132a57cf 516 __I uint32_t GPT_CNT; // General Purpose Timer Count (offset 0x90)
mbed_official 80:bdf1132a57cf 517 uint32_t RESERVED4; // Reserved for future use (offset 0x94)
mbed_official 80:bdf1132a57cf 518 __IO uint32_t ENDIAN; // WORD SWAP Register (offset 0x98)
mbed_official 80:bdf1132a57cf 519 __I uint32_t FREE_RUN; // Free Run Counter (offset 0x9C)
mbed_official 80:bdf1132a57cf 520 __I uint32_t RX_DROP; // RX Dropped Frames Counter (offset 0xA0)
mbed_official 80:bdf1132a57cf 521 __IO uint32_t MAC_CSR_CMD; // MAC CSR Synchronizer Command (offset 0xA4)
mbed_official 80:bdf1132a57cf 522 __IO uint32_t MAC_CSR_DATA; // MAC CSR Synchronizer Data (offset 0xA8)
mbed_official 80:bdf1132a57cf 523 __IO uint32_t AFC_CFG; // Automatic Flow Control Configuration (offset 0xAC)
mbed_official 80:bdf1132a57cf 524 __IO uint32_t E2P_CMD; // EEPROM Command (offset 0xB0)
mbed_official 80:bdf1132a57cf 525 __IO uint32_t E2P_DATA; // EEPROM Data (offset 0xB4)
mbed_official 80:bdf1132a57cf 526
mbed_official 80:bdf1132a57cf 527 } SMSC9220_TypeDef;
mbed_official 80:bdf1132a57cf 528
mbed_official 80:bdf1132a57cf 529 // SMSC9220 MAC Registers Indices
mbed_official 80:bdf1132a57cf 530 #define SMSC9220_MAC_CR 0x1
mbed_official 80:bdf1132a57cf 531 #define SMSC9220_MAC_ADDRH 0x2
mbed_official 80:bdf1132a57cf 532 #define SMSC9220_MAC_ADDRL 0x3
mbed_official 80:bdf1132a57cf 533 #define SMSC9220_MAC_HASHH 0x4
mbed_official 80:bdf1132a57cf 534 #define SMSC9220_MAC_HASHL 0x5
mbed_official 80:bdf1132a57cf 535 #define SMSC9220_MAC_MII_ACC 0x6
mbed_official 80:bdf1132a57cf 536 #define SMSC9220_MAC_MII_DATA 0x7
mbed_official 80:bdf1132a57cf 537 #define SMSC9220_MAC_FLOW 0x8
mbed_official 80:bdf1132a57cf 538 #define SMSC9220_MAC_VLAN1 0x9
mbed_official 80:bdf1132a57cf 539 #define SMSC9220_MAC_VLAN2 0xA
mbed_official 80:bdf1132a57cf 540 #define SMSC9220_MAC_WUFF 0xB
mbed_official 80:bdf1132a57cf 541 #define SMSC9220_MAC_WUCSR 0xC
mbed_official 80:bdf1132a57cf 542
mbed_official 80:bdf1132a57cf 543 // SMSC9220 PHY Registers Indices
mbed_official 80:bdf1132a57cf 544 #define SMSC9220_PHY_BCONTROL 0x0
mbed_official 80:bdf1132a57cf 545 #define SMSC9220_PHY_BSTATUS 0x1
mbed_official 80:bdf1132a57cf 546 #define SMSC9220_PHY_ID1 0x2
mbed_official 80:bdf1132a57cf 547 #define SMSC9220_PHY_ID2 0x3
mbed_official 80:bdf1132a57cf 548 #define SMSC9220_PHY_ANEG_ADV 0x4
mbed_official 80:bdf1132a57cf 549 #define SMSC9220_PHY_ANEG_LPA 0x5
mbed_official 80:bdf1132a57cf 550 #define SMSC9220_PHY_ANEG_EXP 0x6
mbed_official 80:bdf1132a57cf 551 #define SMSC9220_PHY_MCONTROL 0x17
mbed_official 80:bdf1132a57cf 552 #define SMSC9220_PHY_MSTATUS 0x18
mbed_official 80:bdf1132a57cf 553 #define SMSC9220_PHY_CSINDICATE 0x27
mbed_official 80:bdf1132a57cf 554 #define SMSC9220_PHY_INTSRC 0x29
mbed_official 80:bdf1132a57cf 555 #define SMSC9220_PHY_INTMASK 0x30
mbed_official 80:bdf1132a57cf 556 #define SMSC9220_PHY_CS 0x31
mbed_official 80:bdf1132a57cf 557
mbed_official 80:bdf1132a57cf 558 /******************************************************************************/
mbed_official 80:bdf1132a57cf 559 /* Peripheral memory map */
mbed_official 80:bdf1132a57cf 560 /******************************************************************************/
mbed_official 80:bdf1132a57cf 561
mbed_official 80:bdf1132a57cf 562 #define MPS2_SSP0_BASE (0x40020000ul) /* User SSP Base Address */
mbed_official 80:bdf1132a57cf 563 #define MPS2_SSP1_BASE (0x40021000ul) /* CLCD SSP Base Address */
mbed_official 80:bdf1132a57cf 564 #define MPS2_TSC_I2C_BASE (0x40022000ul) /* Touch Screen I2C Base Address */
mbed_official 80:bdf1132a57cf 565 #define MPS2_AAIC_I2C_BASE (0x40023000ul) /* Audio Interface I2C Base Address */
mbed_official 80:bdf1132a57cf 566 #define MPS2_AAIC_I2S_BASE (0x40024000ul) /* Audio Interface I2S Base Address */
mbed_official 80:bdf1132a57cf 567 #define MPS2_SSP2_BASE (0x40025000ul) /* adc SSP Base Address */
mbed_official 80:bdf1132a57cf 568 #define MPS2_SSP3_BASE (0x40026000ul) /* shield 0 SSP Base Address */
mbed_official 80:bdf1132a57cf 569 #define MPS2_SSP4_BASE (0x40027000ul) /* shield 1 SSP Base Address */
mbed_official 80:bdf1132a57cf 570 #define MPS2_FPGAIO_BASE (0x40028000ul) /* FPGAIO Base Address */
mbed_official 80:bdf1132a57cf 571 #define MPS2_SHIELD0_I2C_BASE (0x40029000ul) /* Audio Interface I2C Base Address */
mbed_official 80:bdf1132a57cf 572 #define MPS2_SHIELD1_I2C_BASE (0x4002A000ul) /* Audio Interface I2C Base Address */
mbed_official 80:bdf1132a57cf 573 #define MPS2_SCC_BASE (0x4002F000ul) /* SCC Base Address */
mbed_official 80:bdf1132a57cf 574
mbed_official 80:bdf1132a57cf 575 #define SMSC9220_BASE (0x40200000ul) /* Ethernet SMSC9220 Base Address */
mbed_official 80:bdf1132a57cf 576
mbed_official 80:bdf1132a57cf 577 #define MPS2_VGA_TEXT_BUFFER (0x41000000ul) /* VGA Text Buffer Address */
mbed_official 80:bdf1132a57cf 578 #define MPS2_VGA_BUFFER (0x41100000ul) /* VGA Buffer Base Address */
mbed_official 80:bdf1132a57cf 579
mbed_official 80:bdf1132a57cf 580 /******************************************************************************/
mbed_official 80:bdf1132a57cf 581 /* Peripheral declaration */
mbed_official 80:bdf1132a57cf 582 /******************************************************************************/
mbed_official 80:bdf1132a57cf 583
mbed_official 80:bdf1132a57cf 584 #define SMSC9220 ((SMSC9220_TypeDef *) SMSC9220_BASE )
mbed_official 80:bdf1132a57cf 585 #define MPS2_TS_I2C ((MPS2_I2C_TypeDef *) MPS2_TSC_I2C_BASE )
mbed_official 80:bdf1132a57cf 586 #define MPS2_AAIC_I2C ((MPS2_I2C_TypeDef *) MPS2_AAIC_I2C_BASE )
mbed_official 80:bdf1132a57cf 587 #define MPS2_SHIELD0_I2C ((MPS2_I2C_TypeDef *) MPS2_SHIELD0_I2C_BASE )
mbed_official 80:bdf1132a57cf 588 #define MPS2_SHIELD1_I2C ((MPS2_I2C_TypeDef *) MPS2_SHIELD1_I2C_BASE )
mbed_official 80:bdf1132a57cf 589 #define MPS2_AAIC_I2S ((MPS2_I2S_TypeDef *) MPS2_AAIC_I2S_BASE )
mbed_official 80:bdf1132a57cf 590 #define MPS2_FPGAIO ((MPS2_FPGAIO_TypeDef *) MPS2_FPGAIO_BASE )
mbed_official 80:bdf1132a57cf 591 #define MPS2_SCC ((MPS2_SCC_TypeDef *) MPS2_SCC_BASE )
mbed_official 80:bdf1132a57cf 592 #define MPS2_SSP0 ((MPS2_SSP_TypeDef *) MPS2_SSP0_BASE )
mbed_official 80:bdf1132a57cf 593 #define MPS2_SSP1 ((MPS2_SSP_TypeDef *) MPS2_SSP1_BASE )
mbed_official 80:bdf1132a57cf 594 #define MPS2_SSP2 ((MPS2_SSP_TypeDef *) MPS2_SSP2_BASE )
mbed_official 80:bdf1132a57cf 595 #define MPS2_SSP3 ((MPS2_SSP_TypeDef *) MPS2_SSP3_BASE )
mbed_official 80:bdf1132a57cf 596 #define MPS2_SSP4 ((MPS2_SSP_TypeDef *) MPS2_SSP4_BASE )
mbed_official 80:bdf1132a57cf 597
mbed_official 80:bdf1132a57cf 598 /******************************************************************************/
mbed_official 80:bdf1132a57cf 599 /* General Function Definitions */
mbed_official 80:bdf1132a57cf 600 /******************************************************************************/
mbed_official 80:bdf1132a57cf 601
mbed_official 80:bdf1132a57cf 602
mbed_official 80:bdf1132a57cf 603 /******************************************************************************/
mbed_official 80:bdf1132a57cf 604 /* General MACRO Definitions */
mbed_official 80:bdf1132a57cf 605 /******************************************************************************/
mbed_official 80:bdf1132a57cf 606
mbed_official 80:bdf1132a57cf 607
mbed_official 80:bdf1132a57cf 608
mbed_official 80:bdf1132a57cf 609 #endif /* __SMM_MPS2_H */
mbed_official 80:bdf1132a57cf 610