* arch/arm/src/samv7/hardware/sam_sdramc.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
#ifndef __ARCH_ARM_SRC_SAMV7_HARDWARE_SAM_SDRAMC_H
#define __ARCH_ARM_SRC_SAMV7_HARDWARE_SAM_SDRAMC_H
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <arch/samv7/chip.h>
#include "hardware/sam_memorymap.h"
* Pre-processor Definitions
****************************************************************************/
#define SAM_SDRAMC_MR_OFFSET 0x0000
#define SAM_SDRAMC_TR_OFFSET 0x0004
#define SAM_SDRAMC_CR_OFFSET 0x0008
#define SAM_SDRAMC_LPR_OFFSET 0x0010
#define SAM_SDRAMC_IER_OFFSET 0x0014
#define SAM_SDRAMC_IDR_OFFSET 0x0018
#define SAM_SDRAMC_IMR_OFFSET 0x001c
#define SAM_SDRAMC_ISR_OFFSET 0x0020
#define SAM_SDRAMC_MDR_OFFSET 0x0024
#define SAM_SDRAMC_CFR1_OFFSET 0x0028
#define SAM_SDRAMC_OCMS_OFFSET 0x002c
#define SAM_SDRAMC_OCMS_KEY1_OFFSET 0x0030
#define SAM_SDRAMC_OCMS_KEY2_OFFSET 0x0034
#define SAM_SDRAMC_MR (SAM_SDRAMC_BASE+SAM_SDRAMC_MR_OFFSET)
#define SAM_SDRAMC_TR (SAM_SDRAMC_BASE+SAM_SDRAMC_TR_OFFSET)
#define SAM_SDRAMC_CR (SAM_SDRAMC_BASE+SAM_SDRAMC_CR_OFFSET)
#define SAM_SDRAMC_LPR (SAM_SDRAMC_BASE+SAM_SDRAMC_LPR_OFFSET)
#define SAM_SDRAMC_IER (SAM_SDRAMC_BASE+SAM_SDRAMC_IER_OFFSET)
#define SAM_SDRAMC_IDR (SAM_SDRAMC_BASE+SAM_SDRAMC_IDR_OFFSET)
#define SAM_SDRAMC_IMR (SAM_SDRAMC_BASE+SAM_SDRAMC_IMR_OFFSET)
#define SAM_SDRAMC_ISR (SAM_SDRAMC_BASE+SAM_SDRAMC_ISR_OFFSET)
#define SAM_SDRAMC_MDR (SAM_SDRAMC_BASE+SAM_SDRAMC_MDR_OFFSET)
#define SAM_SDRAMC_CFR1 (SAM_SDRAMC_BASE+SAM_SDRAMC_CFR1_OFFSET)
#define SAM_SDRAMC_OCMS (SAM_SDRAMC_BASE+SAM_SDRAMC_OCMS_OFFSET)
#define SAM_SDRAMC_OCMS_KEY1 (SAM_SDRAMC_BASE+SAM_SDRAMC_OCMS_KEY1_OFFSET)
#define SAM_SDRAMC_OCMS_KEY2 (SAM_SDRAMC_BASE+SAM_SDRAMC_OCMS_KEY2_OFFSET)
#define SDRAMC_MR_MODE_SHIFT (0)
#define SDRAMC_MR_MODE_MASK (7 << SDRAMC_MR_MODE_SHIFT)
# define SDRAMC_MR_MODE_NORMAL (0 << SDRAMC_MR_MODE_SHIFT)
# define SDRAMC_MR_MODE_NOP (1 << SDRAMC_MR_MODE_SHIFT)
# define SDRAMC_MR_MODE_PRECHARGE (2 << SDRAMC_MR_MODE_SHIFT)
# define SDRAMC_MR_MODE_LOADMODE (3 << SDRAMC_MR_MODE_SHIFT)
# define SDRAMC_MR_MODE_AUTOREFRESH (4 << SDRAMC_MR_MODE_SHIFT)
# define SDRAMC_MR_MODE_EXTLOADMODE (5 << SDRAMC_MR_MODE_SHIFT)
# define SDRAMC_MR_MODE_PWRDOWN (6 << SDRAMC_MR_MODE_SHIFT)
#define SDRAMC_TR_MASK 0x00000fff
#define SDRAMC_CR_NC_SHIFT (0)
#define SDRAMC_CR_NC_MASK (3 << SDRAMC_CR_NC_SHIFT)
# define SDRAMC_CR_NC_COL8 (0 << SDRAMC_CR_NC_SHIFT)
# define SDRAMC_CR_NC_COL9 (1 << SDRAMC_CR_NC_SHIFT)
# define SDRAMC_CR_NC_COL10 (2 << SDRAMC_CR_NC_SHIFT)
# define SDRAMC_CR_NC_COL11 (3 << SDRAMC_CR_NC_SHIFT)
#define SDRAMC_CR_NR_SHIFT (2)
#define SDRAMC_CR_NR_MASK (3 << SDRAMC_CR_NR_SHIFT)
# define SDRAMC_CR_NR_ROW11 (0 << SDRAMC_CR_NR_SHIFT)
# define SDRAMC_CR_NR_ROW12 (1 << SDRAMC_CR_NR_SHIFT)
# define SDRAMC_CR_NR_ROW13 (2 << SDRAMC_CR_NR_SHIFT)
#define SDRAMC_CR_NB (1 << 4)
# define SDRAMC_CR_NB_BANK2 (0 << 4)
# define SDRAMC_CR_NB_BANK4 (1 << 4)
#define SDRAMC_CR_CAS_SHIFT (5)
#define SDRAMC_CR_CAS_MASK (3 << SDRAMC_CR_CAS_SHIFT)
# define SDRAMC_CR_CAS_LATENCY1 (0 << SDRAMC_CR_CAS_SHIFT)
# define SDRAMC_CR_CAS_LATENCY2 (1 << SDRAMC_CR_CAS_SHIFT)
# define SDRAMC_CR_CAS_LATENCY3 (2 << SDRAMC_CR_CAS_SHIFT)
#define SDRAMC_CR_DBW (1 << 7)
#define SDRAMC_CR_TWR_SHIFT (8)
#define SDRAMC_CR_TWR_MASK (15 << SDRAMC_CR_TWR_SHIFT)
# define SDRAMC_CR_TWR(n) ((uint32_t)(n) << SDRAMC_CR_TWR_SHIFT)
#define SDRAMC_CR_TRCTRFC_SHIFT (12)
#define SDRAMC_CR_TRCTRFC_MASK (15 << SDRAMC_CR_TRCTRFC_SHIFT)
# define SDRAMC_CR_TRCTRFC(n) ((uint32_t)(n) << SDRAMC_CR_TRCTRFC_SHIFT)
#define SDRAMC_CR_TRP_SHIFT (16)
#define SDRAMC_CR_TRP_MASK (15 << SDRAMC_CR_TRP_SHIFT)
# define SDRAMC_CR_TRP(n) ((uint32_t)(n) << SDRAMC_CR_TRP_SHIFT)
#define SDRAMC_CR_TRCD_SHIFT (20)
#define SDRAMC_CR_TRCD_MASK (15 << SDRAMC_CR_TRCD_SHIFT)
# define SDRAMC_CR_TRCD(n) ((uint32_t)(n) << SDRAMC_CR_TRCD_SHIFT)
#define SDRAMC_CR_TRAS_SHIFT (24)
#define SDRAMC_CR_TRAS_MASK (15 << SDRAMC_CR_TRAS_SHIFT)
# define SDRAMC_CR_TRAS(n) ((uint32_t)(n) << SDRAMC_CR_TRAS_SHIFT)
#define SDRAMC_CR_TXSR_SHIFT (28)
#define SDRAMC_CR_TXSR_MASK (15 << SDRAMC_CR_TXSR_SHIFT)
# define SDRAMC_CR_TXSR(n) ((uint32_t)(n) << SDRAMC_CR_TXSR_SHIFT)
#define SDRAMC_LPR_LPCB_SHIFT (0)
#define SDRAMC_LPR_LPCB_MASK (3 << SDRAMC_LPR_LPCB_SHIFT)
# define SDRAMC_LPR_LPCB_DISABLED (0 << SDRAMC_LPR_LPCB_SHIFT)
# define SDRAMC_LPR_LPCB_REFRESH (1 << SDRAMC_LPR_LPCB_SHIFT)
# define SDRAMC_LPR_LPCB_PWRDOWN (2 << SDRAMC_LPR_LPCB_SHIFT)
# define SDRAMC_LPR_LPCB_DPPWRDOWN (3 << SDRAMC_LPR_LPCB_SHIFT)
#define SDRAMC_LPR_PASR_SHIFT (4)
#define SDRAMC_LPR_PASR_MASK (7 << SDRAMC_LPR_PASR_SHIFT)
#define SDRAMC_LPR_TCSR_SHIFT (8)
#define SDRAMC_LPR_TCSR_MASK (3 << SDRAMC_LPR_TCSR_SHIFT)
# define SDRAMC_LPR_TCSR(n) ((uint32_t)(n) << SDRAMC_LPR_TCSR_SHIFT)
#define SDRAMC_LPR_DS_SHIFT (10)
#define SDRAMC_LPR_DS_MASK (3 << SDRAMC_LPR_DS_SHIFT)
# define SDRAMC_LPR_DS(n) ((uint32_t)(n) << SDRAMC_LPR_DS_SHIFT)
#define SDRAMC_LPR_TIMEOUT_SHIFT (12)
#define SDRAMC_LPR_TIMEOUT_MASK (3 << SDRAMC_LPR_TIMEOUT_SHIFT)
# define SDRAMC_LPR_TIMEOUT_LP (0 << SDRAMC_LPR_TIMEOUT_SHIFT)
# define SDRAMC_LPR_TIMEOUT_LP64 (1 << SDRAMC_LPR_TIMEOUT_SHIFT)
# define SDRAMC_LPR_TIMEOUT_LP128 (2 << SDRAMC_LPR_TIMEOUT_SHIFT)
* SDRAMC Interrupt Mask Register, and SDRAMC Interrupt Status Register.
*/
#define SDRAMC_INT_RES (1 << 0)
#define SDRAMC_MDR_SHIFT (0)
#define SDRAMC_MDR_MASK (3 << SDRAMC_MDR_SHIFT)
# define SDRAMC_MDR_SDRAM (0 << SDRAMC_MDR_SHIFT)
# define SDRAMC_MDR_LPSDRAM (1 << SDRAMC_MDR_SHIFT)
#define SDRAMC_CFR1_TMRD_SHIFT (0)
#define SDRAMC_CFR1_TMRD_MASK (15 << SDRAMC_CFR1_TMRD_SHIFT)
# define SDRAMC_CFR1_TMRD(n) ((uint32_t)(n) << SDRAMC_CFR1_TMRD_SHIFT)
#define SDRAMC_CFR1_UNAL (1 << 8)
# define SDRAMC_CFR1_UNAL_UNSUPP (0 << 8)
# define SDRAMC_CFR1_UNAL_SUPPORTED (1 << 8)
#define SDRAMC_OCMS_SDRSE (1 << 0)
* Public Types
****************************************************************************/
* Public Data
****************************************************************************/
* Public Functions Prototypes
****************************************************************************/
#endif