fix LPC812 PWM

Dependents:   IR_LED_Send

Fork of mbed-dev by mbed official

Committer:
bogdanm
Date:
Thu Oct 01 15:25:22 2015 +0300
Revision:
0:9b334a45a8ff
Child:
80:bdf1132a57cf
Initial commit on mbed-dev

Replaces mbed-src (now inactive)

Who changed what in which revision?

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