RTEMS: bsps/arm/atsam/include/libchip/include/sams70/component/component_sdramc.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
component_sdramc.h
1/* ---------------------------------------------------------------------------- */
2/* Atmel Microcontroller Software Support */
3/* SAM Software Package License */
4/* ---------------------------------------------------------------------------- */
5/* Copyright (c) 2015, Atmel Corporation */
6/* */
7/* All rights reserved. */
8/* */
9/* Redistribution and use in source and binary forms, with or without */
10/* modification, are permitted provided that the following condition is met: */
11/* */
12/* - Redistributions of source code must retain the above copyright notice, */
13/* this list of conditions and the disclaimer below. */
14/* */
15/* Atmel's name may not be used to endorse or promote products derived from */
16/* this software without specific prior written permission. */
17/* */
18/* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
19/* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
20/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
21/* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
22/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
23/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
24/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
25/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
26/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
27/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
28/* ---------------------------------------------------------------------------- */
29
30#ifndef _SAMS70_SDRAMC_COMPONENT_
31#define _SAMS70_SDRAMC_COMPONENT_
32
33/* ============================================================================= */
35/* ============================================================================= */
38
39#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
41typedef struct {
42 __IO uint32_t SDRAMC_MR;
43 __IO uint32_t SDRAMC_TR;
44 __IO uint32_t SDRAMC_CR;
45 __I uint32_t Reserved1[1];
46 __IO uint32_t SDRAMC_LPR;
47 __O uint32_t SDRAMC_IER;
48 __O uint32_t SDRAMC_IDR;
49 __I uint32_t SDRAMC_IMR;
50 __I uint32_t SDRAMC_ISR;
51 __IO uint32_t SDRAMC_MDR;
52 __IO uint32_t SDRAMC_CFR1;
53 __IO uint32_t SDRAMC_OCMS;
54 __O uint32_t SDRAMC_OCMS_KEY1;
55 __O uint32_t SDRAMC_OCMS_KEY2;
56} Sdramc;
57#endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
58/* -------- SDRAMC_MR : (SDRAMC Offset: 0x00) SDRAMC Mode Register -------- */
59#define SDRAMC_MR_MODE_Pos 0
60#define SDRAMC_MR_MODE_Msk (0x7u << SDRAMC_MR_MODE_Pos)
61#define SDRAMC_MR_MODE(value) ((SDRAMC_MR_MODE_Msk & ((value) << SDRAMC_MR_MODE_Pos)))
62#define SDRAMC_MR_MODE_NORMAL (0x0u << 0)
63#define SDRAMC_MR_MODE_NOP (0x1u << 0)
64#define SDRAMC_MR_MODE_ALLBANKS_PRECHARGE (0x2u << 0)
65#define SDRAMC_MR_MODE_LOAD_MODEREG (0x3u << 0)
66#define SDRAMC_MR_MODE_AUTO_REFRESH (0x4u << 0)
67#define SDRAMC_MR_MODE_EXT_LOAD_MODEREG (0x5u << 0)
68#define SDRAMC_MR_MODE_DEEP_POWERDOWN (0x6u << 0)
69/* -------- SDRAMC_TR : (SDRAMC Offset: 0x04) SDRAMC Refresh Timer Register -------- */
70#define SDRAMC_TR_COUNT_Pos 0
71#define SDRAMC_TR_COUNT_Msk (0xfffu << SDRAMC_TR_COUNT_Pos)
72#define SDRAMC_TR_COUNT(value) ((SDRAMC_TR_COUNT_Msk & ((value) << SDRAMC_TR_COUNT_Pos)))
73/* -------- SDRAMC_CR : (SDRAMC Offset: 0x08) SDRAMC Configuration Register -------- */
74#define SDRAMC_CR_NC_Pos 0
75#define SDRAMC_CR_NC_Msk (0x3u << SDRAMC_CR_NC_Pos)
76#define SDRAMC_CR_NC(value) ((SDRAMC_CR_NC_Msk & ((value) << SDRAMC_CR_NC_Pos)))
77#define SDRAMC_CR_NC_COL8 (0x0u << 0)
78#define SDRAMC_CR_NC_COL9 (0x1u << 0)
79#define SDRAMC_CR_NC_COL10 (0x2u << 0)
80#define SDRAMC_CR_NC_COL11 (0x3u << 0)
81#define SDRAMC_CR_NR_Pos 2
82#define SDRAMC_CR_NR_Msk (0x3u << SDRAMC_CR_NR_Pos)
83#define SDRAMC_CR_NR(value) ((SDRAMC_CR_NR_Msk & ((value) << SDRAMC_CR_NR_Pos)))
84#define SDRAMC_CR_NR_ROW11 (0x0u << 2)
85#define SDRAMC_CR_NR_ROW12 (0x1u << 2)
86#define SDRAMC_CR_NR_ROW13 (0x2u << 2)
87#define SDRAMC_CR_NB (0x1u << 4)
88#define SDRAMC_CR_NB_BANK2 (0x0u << 4)
89#define SDRAMC_CR_NB_BANK4 (0x1u << 4)
90#define SDRAMC_CR_CAS_Pos 5
91#define SDRAMC_CR_CAS_Msk (0x3u << SDRAMC_CR_CAS_Pos)
92#define SDRAMC_CR_CAS(value) ((SDRAMC_CR_CAS_Msk & ((value) << SDRAMC_CR_CAS_Pos)))
93#define SDRAMC_CR_CAS_LATENCY1 (0x0u << 5)
94#define SDRAMC_CR_CAS_LATENCY2 (0x1u << 5)
95#define SDRAMC_CR_CAS_LATENCY3 (0x2u << 5)
96#define SDRAMC_CR_DBW (0x1u << 7)
97#define SDRAMC_CR_TWR_Pos 8
98#define SDRAMC_CR_TWR_Msk (0xfu << SDRAMC_CR_TWR_Pos)
99#define SDRAMC_CR_TWR(value) ((SDRAMC_CR_TWR_Msk & ((value) << SDRAMC_CR_TWR_Pos)))
100#define SDRAMC_CR_TRC_TRFC_Pos 12
101#define SDRAMC_CR_TRC_TRFC_Msk (0xfu << SDRAMC_CR_TRC_TRFC_Pos)
102#define SDRAMC_CR_TRC_TRFC(value) ((SDRAMC_CR_TRC_TRFC_Msk & ((value) << SDRAMC_CR_TRC_TRFC_Pos)))
103#define SDRAMC_CR_TRP_Pos 16
104#define SDRAMC_CR_TRP_Msk (0xfu << SDRAMC_CR_TRP_Pos)
105#define SDRAMC_CR_TRP(value) ((SDRAMC_CR_TRP_Msk & ((value) << SDRAMC_CR_TRP_Pos)))
106#define SDRAMC_CR_TRCD_Pos 20
107#define SDRAMC_CR_TRCD_Msk (0xfu << SDRAMC_CR_TRCD_Pos)
108#define SDRAMC_CR_TRCD(value) ((SDRAMC_CR_TRCD_Msk & ((value) << SDRAMC_CR_TRCD_Pos)))
109#define SDRAMC_CR_TRAS_Pos 24
110#define SDRAMC_CR_TRAS_Msk (0xfu << SDRAMC_CR_TRAS_Pos)
111#define SDRAMC_CR_TRAS(value) ((SDRAMC_CR_TRAS_Msk & ((value) << SDRAMC_CR_TRAS_Pos)))
112#define SDRAMC_CR_TXSR_Pos 28
113#define SDRAMC_CR_TXSR_Msk (0xfu << SDRAMC_CR_TXSR_Pos)
114#define SDRAMC_CR_TXSR(value) ((SDRAMC_CR_TXSR_Msk & ((value) << SDRAMC_CR_TXSR_Pos)))
115/* -------- SDRAMC_LPR : (SDRAMC Offset: 0x10) SDRAMC Low Power Register -------- */
116#define SDRAMC_LPR_LPCB_Pos 0
117#define SDRAMC_LPR_LPCB_Msk (0x3u << SDRAMC_LPR_LPCB_Pos)
118#define SDRAMC_LPR_LPCB(value) ((SDRAMC_LPR_LPCB_Msk & ((value) << SDRAMC_LPR_LPCB_Pos)))
119#define SDRAMC_LPR_LPCB_DISABLED (0x0u << 0)
120#define SDRAMC_LPR_LPCB_SELF_REFRESH (0x1u << 0)
121#define SDRAMC_LPR_LPCB_POWER_DOWN (0x2u << 0)
122#define SDRAMC_LPR_LPCB_DEEP_POWER_DOWN (0x3u << 0)
123#define SDRAMC_LPR_PASR_Pos 4
124#define SDRAMC_LPR_PASR_Msk (0x7u << SDRAMC_LPR_PASR_Pos)
125#define SDRAMC_LPR_PASR(value) ((SDRAMC_LPR_PASR_Msk & ((value) << SDRAMC_LPR_PASR_Pos)))
126#define SDRAMC_LPR_TCSR_Pos 8
127#define SDRAMC_LPR_TCSR_Msk (0x3u << SDRAMC_LPR_TCSR_Pos)
128#define SDRAMC_LPR_TCSR(value) ((SDRAMC_LPR_TCSR_Msk & ((value) << SDRAMC_LPR_TCSR_Pos)))
129#define SDRAMC_LPR_DS_Pos 10
130#define SDRAMC_LPR_DS_Msk (0x3u << SDRAMC_LPR_DS_Pos)
131#define SDRAMC_LPR_DS(value) ((SDRAMC_LPR_DS_Msk & ((value) << SDRAMC_LPR_DS_Pos)))
132#define SDRAMC_LPR_TIMEOUT_Pos 12
133#define SDRAMC_LPR_TIMEOUT_Msk (0x3u << SDRAMC_LPR_TIMEOUT_Pos)
134#define SDRAMC_LPR_TIMEOUT(value) ((SDRAMC_LPR_TIMEOUT_Msk & ((value) << SDRAMC_LPR_TIMEOUT_Pos)))
135#define SDRAMC_LPR_TIMEOUT_LP_LAST_XFER (0x0u << 12)
136#define SDRAMC_LPR_TIMEOUT_LP_LAST_XFER_64 (0x1u << 12)
137#define SDRAMC_LPR_TIMEOUT_LP_LAST_XFER_128 (0x2u << 12)
138/* -------- SDRAMC_IER : (SDRAMC Offset: 0x14) SDRAMC Interrupt Enable Register -------- */
139#define SDRAMC_IER_RES (0x1u << 0)
140/* -------- SDRAMC_IDR : (SDRAMC Offset: 0x18) SDRAMC Interrupt Disable Register -------- */
141#define SDRAMC_IDR_RES (0x1u << 0)
142/* -------- SDRAMC_IMR : (SDRAMC Offset: 0x1C) SDRAMC Interrupt Mask Register -------- */
143#define SDRAMC_IMR_RES (0x1u << 0)
144/* -------- SDRAMC_ISR : (SDRAMC Offset: 0x20) SDRAMC Interrupt Status Register -------- */
145#define SDRAMC_ISR_RES (0x1u << 0)
146/* -------- SDRAMC_MDR : (SDRAMC Offset: 0x24) SDRAMC Memory Device Register -------- */
147#define SDRAMC_MDR_MD_Pos 0
148#define SDRAMC_MDR_MD_Msk (0x3u << SDRAMC_MDR_MD_Pos)
149#define SDRAMC_MDR_MD(value) ((SDRAMC_MDR_MD_Msk & ((value) << SDRAMC_MDR_MD_Pos)))
150#define SDRAMC_MDR_MD_SDRAM (0x0u << 0)
151#define SDRAMC_MDR_MD_LPSDRAM (0x1u << 0)
152/* -------- SDRAMC_CFR1 : (SDRAMC Offset: 0x28) SDRAMC Configuration Register 1 -------- */
153#define SDRAMC_CFR1_TMRD_Pos 0
154#define SDRAMC_CFR1_TMRD_Msk (0xfu << SDRAMC_CFR1_TMRD_Pos)
155#define SDRAMC_CFR1_TMRD(value) ((SDRAMC_CFR1_TMRD_Msk & ((value) << SDRAMC_CFR1_TMRD_Pos)))
156#define SDRAMC_CFR1_UNAL (0x1u << 8)
157#define SDRAMC_CFR1_UNAL_UNSUPPORTED (0x0u << 8)
158#define SDRAMC_CFR1_UNAL_SUPPORTED (0x1u << 8)
159/* -------- SDRAMC_OCMS : (SDRAMC Offset: 0x2C) SDRAMC OCMS Register -------- */
160#define SDRAMC_OCMS_SDR_SE (0x1u << 0)
161/* -------- SDRAMC_OCMS_KEY1 : (SDRAMC Offset: 0x30) SDRAMC OCMS KEY1 Register -------- */
162#define SDRAMC_OCMS_KEY1_KEY1_Pos 0
163#define SDRAMC_OCMS_KEY1_KEY1_Msk (0xffffffffu << SDRAMC_OCMS_KEY1_KEY1_Pos)
164#define SDRAMC_OCMS_KEY1_KEY1(value) ((SDRAMC_OCMS_KEY1_KEY1_Msk & ((value) << SDRAMC_OCMS_KEY1_KEY1_Pos)))
165/* -------- SDRAMC_OCMS_KEY2 : (SDRAMC Offset: 0x34) SDRAMC OCMS KEY2 Register -------- */
166#define SDRAMC_OCMS_KEY2_KEY2_Pos 0
167#define SDRAMC_OCMS_KEY2_KEY2_Msk (0xffffffffu << SDRAMC_OCMS_KEY2_KEY2_Pos)
168#define SDRAMC_OCMS_KEY2_KEY2(value) ((SDRAMC_OCMS_KEY2_KEY2_Msk & ((value) << SDRAMC_OCMS_KEY2_KEY2_Pos)))
169
173#endif /* _SAMS70_SDRAMC_COMPONENT_ */
__O
#define __O
Definition: core_cm7.h:286
__IO
#define __IO
Definition: core_cm7.h:287
__I
#define __I
Definition: core_cm7.h:284
Sdramc
Sdramc hardware registers.
Definition: component_sdramc.h:41