blob: fc5201ccb08ee365c6d6cbd3f7d7904e046011eb [file] [log] [blame]
/*
* Copyright (c) 2010 Nest Labs, Inc.
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program; if not, write to the Free
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
* Description:
* This file defines register and register field constants and
* macros for the Texas Instruments Open Multimedia Application
* Platform (OMAP) 3 SDRAM Controller (SDRC).
*/
#ifndef _OMAP3_SDRC_H
#define _OMAP3_SDRC_H
#include <asm/arch/bits.h>
/*
* SDRAM Controller Revision
*/
#define SDRC_REVISION_REV_MASK ARM_REG_VAL(0, 0xFF)
#define SDRC_REVISION_REV_MAJOR_MASK ARM_REG_VAL(4, 0xF)
#define SDRC_REVISION_REV_MINOR_MASK ARM_REG_VAL(0, 0xF)
#define SDRC_REVISION_REV_MAJOR_DECODE(x) ARM_REG_VAL_DECODE(4, SDRC_REVISION_REV_MAJOR_MASK, x)
#define SDRC_REVISION_REV_MINOR_DECODE(x) ARM_REG_VAL_DECODE(0, SDRC_REVISION_REV_MINOR_MASK), x)
/*
* SDRAM Controller System Configuration
*/
#define SDRC_SYSCONFIG_NOMEMORYMRS_DISABLE ARM_REG_VAL(8, 0)
#define SDRC_SYSCONFIG_NOMEMORYMRS_ENABLE ARM_REG_VAL(8, 1)
#define SDRC_SYSCONFIG_IDLEMODE_SMART ARM_REG_VAL(3, 0x2)
#define SDRC_SYSCONFIG_SOFTRESET_CLEAR ARM_REG_VAL(1, 0x0)
#define SDRC_SYSCONFIG_SOFTRESET_SET ARM_REG_VAL(1, 0x1)
/*
* SDRAM Controller System Status
*/
#define SDRC_SYSSTATUS_RESETDONE ARM_REG_VAL(0, 1)
/*
* SDRAM Controller Chip Select Configuration
*/
/*
* SDRAM Controller Multiplexing
*/
#define SDRC_SHARING_LOCK_OFF ARM_REG_VAL(30, 0)
#define SDRC_SHARING_LOCK_ON ARM_REG_VAL(30, 1)
#define SDRC_SHARING_CS1MUXCFG_MASK ARM_REG_VAL(12, 0x7)
#define SDRC_SHARING_CS1MUXCFG_ENCODE(v) ARM_REG_VAL_ENCODE(12, SDRC_SHARING_CS1MUXCFG_MASK, v)
#define SDRC_SHARING_CS1MUXCFG_DECODE(v) ARM_REG_VAL_DECODE(12, SDRC_SHARING_CS1MUXCFG_MASK, v)
#define SDRC_SHARING_CS1MUXCFG_32_BIT_31_0 0x0
#define SDRC_SHARING_CS1MUXCFG_16_BIT_31_16 0x2
#define SDRC_SHARING_CS1MUXCFG_16_BIT_16_0 0x3
#define SDRC_SHARING_CS0MUXCFG_MASK ARM_REG_VAL(9, 0x7)
#define SDRC_SHARING_CS0MUXCFG_ENCODE(v) ARM_REG_VAL_ENCODE(9, SDRC_SHARING_CS0MUXCFG_MASK, v)
#define SDRC_SHARING_CS0MUXCFG_DECODE(v) ARM_REG_VAL_DECODE(9, SDRC_SHARING_CS0MUXCFG_MASK), v)
#define SDRC_SHARING_CS0MUXCFG_32_BIT_31_0 0x0
#define SDRC_SHARING_CS0MUXCFG_16_BIT_31_16 0x2
#define SDRC_SHARING_CS0MUXCFG_16_BIT_16_0 0x3
#define SDRC_SHARING_SDRCTRISTATE_ON ARM_REG_VAL(8, 0)
#define SDRC_SHARING_SDRCTRISTATE_OFF ARM_REG_VAL(8, 1)
/*
* SDRAM Controller Error Address
*/
/*
* SDRAM Controller Error Type
*/
/*
* SDRAM Controller DDR A Fine Tuning Control
*/
#define SDRC_DLLA_CTRL_FIXED_DELAY_MASK ARM_REG_VAL(24, 0xFF)
#define SDRC_DLLA_CTRL_FIXED_DELAY_ENCODE(v) ARM_REG_VAL_ENCODE(24, SDRC_DLLA_CTRL_FIXED_DELAY_MASK, v)
#define SDRC_DLLA_CTRL_FIXED_DELAY_DECODE(v) ARM_REG_VAL_DECODE(24, SDRC_DLLA_CTRL_FIXED_DELAY_MASK, v)
#define SDRC_DLLA_CTRL_INIT_LAT_MASK ARM_REG_VAL(16, 0xFF)
#define SDRC_DLLA_CTRL_INIT_LAT_ENCODE(v) ARM_REG_VAL_ENCODE(16, SDRC_DLLA_CTRL_INIT_LAT_MASK, v / 2)
#define SDRC_DLLA_CTRL_INIT_LAT_DECODE(v) (ARM_REG_VAL_DECODE(16, SDRC_DLLA_CTRL_INIT_LAT_MASK, v) * 2)
#define SDRC_DLLA_CTRL_MODE_ON_IDLE_MASK ARM_REG_VAL(5, 0x3)
#define SDRC_DLLA_CTRL_MODE_ON_IDLE_ENCODE(v) ARM_REG_VAL_ENCODE(5, SDRC_DLLA_CTRL_MODE_ON_IDLE_MASK, v)
#define SDRC_DLLA_CTRL_MODE_ON_IDLE_DECODE(v) ARM_REG_VAL_DECODE(5, SDRC_DLLA_CTRL_MODE_ON_IDLE_MASK, v)
#define SDRC_DLLA_CTRL_MODE_ON_IDLE_PWD 0x0
#define SDRC_DLLA_CTRL_MODE_ON_IDLE_IDLE 0x1
#define SDRC_DLLA_CTRL_MODE_ON_IDLE_IGNORE 0x2
#define SDRC_DLLA_CTRL_IDLE_DISABLE ARM_REG_VAL(4, 0)
#define SDRC_DLLA_CTRL_IDLE_ENABLE ARM_REG_VAL(4, 1)
#define SDRC_DLLA_CTRL_DLL_DISABLE ARM_REG_VAL(3, 0)
#define SDRC_DLLA_CTRL_DLL_ENABLE ARM_REG_VAL(3, 1)
#define SDRC_DLLA_CTRL_LOCK_TRACKINGDELAY ARM_REG_VAL(2, 0)
#define SDRC_DLLA_CTRL_LOCK_FIXEDDELAY ARM_REG_VAL(2, 1)
/*
* SDRAM Controller DDR A Fine Tuning Status
*/
/*
* SDRAM Controller Power Management Policy
*/
#define SDRC_POWER_REG_WAKEUP_DELAYED ARM_REG_VAL(26, 0)
#define SDRC_POWER_REG_WAKEUP_IMMED ARM_REG_VAL(26, 1)
#define SDRC_POWER_REG_AUTOCOUNT_MASK ARM_REG_VAL(8, 0xFFFF)
#define SDRC_POWER_REG_AUTOCOUNT_ENCODE(v) ARM_REG_VAL_ENCODE(8, SDRC_POWER_REG_AUTOCOUNT_MASK, v)
#define SDRC_POWER_REG_AUTOCOUNT_DECODE(v) ARM_REG_VAL_DECODE(8, SDRC_POWER_REG_AUTOCOUNT_MASK), v)
#define SDRC_POWER_REG_SRFR_ON_RST_DISABLE ARM_REG_VAL(7, 0)
#define SDRC_POWER_REG_SRFR_ON_RST_ENABLE ARM_REG_VAL(7, 1)
#define SDRC_POWER_REG_SRFR_ON_IDLE_DISABLE ARM_REG_VAL(6, 0)
#define SDRC_POWER_REG_SRFR_ON_IDLE_ENABLE ARM_REG_VAL(6, 1)
#define SDRC_POWER_REG_CLKCTRL_MASK ARM_REG_VAL(4, 0x3)
#define SDRC_POWER_REG_CLKCTRL_ENCODE(v) ARM_REG_VAL_ENCODE(4, SDRC_POWER_REG_CLKCTRL_MASK, v)
#define SDRC_POWER_REG_CLKCTRL_DECODE(v) ARM_REG_VAL_DECODE(4, SDRC_POWER_REG_CLKCTRL_MASK), v)
#define SDRC_POWER_REG_CLKCTRL_NONE 0x0
#define SDRC_POWER_REG_CLKCTRL_SELF_GATE 0x1
#define SDRC_POWER_REG_CLKCTRL_SELF_REFRESH 0x2
#define SDRC_POWER_REG_EXTCLKDIS_ON ARM_REG_VAL(3, 1)
#define SDRC_POWER_REG_EXTCLKDIS_ON ARM_REG_VAL(3, 1)
#define SDRC_POWER_REG_PWD_DISABLE ARM_REG_VAL(2, 0)
#define SDRC_POWER_REG_PWD_ENABLE ARM_REG_VAL(2, 1)
#define SDRC_POWER_REG_PAGEPOLICY_HPHB ARM_REG_VAL(0, 1)
/*
* SDRAM Controller Memory Configuration
*/
#define SDRC_MCFG_LOCKSTATUS_RW ARM_REG_VAL(30, 0)
#define SDRC_MCFG_LOCKSTATUS_RO ARM_REG_VAL(30, 1)
#define SDRC_MCFG_RASWIDTH_MASK ARM_REG_VAL(24, 0x7)
#define SDRC_MCFG_RASWIDTH_ENCODE(v) ARM_REG_VAL_ENCODE(24, SDRC_MCFG_RASWIDTH_MASK, v)
#define SDRC_MCFG_RASWIDTH_DECODE(v) ARM_REG_VAL_DECODE(24, SDRC_MCFG_RASWIDTH_MASK), v)
#define SDRC_MCFG_RASWIDTH_11_BITS 0x0
#define SDRC_MCFG_RASWIDTH_12_BITS 0x1
#define SDRC_MCFG_RASWIDTH_13_BITS 0x2
#define SDRC_MCFG_RASWIDTH_14_BITS 0x3
#define SDRC_MCFG_RASWIDTH_15_BITS 0x4
#define SDRC_MCFG_RASWIDTH_16_BITS 0x5
#define SDRC_MCFG_RASWIDTH_17_BITS 0x6
#define SDRC_MCFG_RASWIDTH_18_BITS 0x7
#define SDRC_MCFG_CASWIDTH_MASK ARM_REG_VAL(20, 0x7)
#define SDRC_MCFG_CASWIDTH_ENCODE(v) ARM_REG_VAL_ENCODE(20, SDRC_MCFG_CASWIDTH_MASK, v)
#define SDRC_MCFG_CASWIDTH_DECODE(v) ARM_REG_VAL_DECODE(20, SDRC_MCFG_CASWIDTH_MASK), v)
#define SDRC_MCFG_CASWIDTH_5_BITS 0x0
#define SDRC_MCFG_CASWIDTH_6_BITS 0x1
#define SDRC_MCFG_CASWIDTH_7_BITS 0x2
#define SDRC_MCFG_CASWIDTH_8_BITS 0x3
#define SDRC_MCFG_CASWIDTH_9_BITS 0x4
#define SDRC_MCFG_CASWIDTH_10_BITS 0x5
#define SDRC_MCFG_CASWIDTH_11_BITS 0x6
#define SDRC_MCFG_CASWIDTH_12_BITS 0x7
#define SDRC_MCFG_ADDRMUX_MASK ARM_REG_VAL(20, 0x1F)
#define SDRC_MCFG_ADDRMUX_ENCODE(v) ARM_REG_VAL_ENCODE(20, SDRC_MCFG_ADDRMUX_MASK, v)
#define SDRC_MCFG_ADDRMUX_DECODE(v) ARM_REG_VAL_DECODE(20, SDRC_MCFG_ADDRMUX_MASK, v)
#define SDRC_MCFG_ADDRMUX_SCHEME_1 0x0
#define SDRC_MCFG_ADDRMUX_SCHEME_2 0x1
#define SDRC_MCFG_ADDRMUX_SCHEME_3 0x2
#define SDRC_MCFG_ADDRMUX_SCHEME_4 0x3
#define SDRC_MCFG_ADDRMUX_SCHEME_5 0x4
#define SDRC_MCFG_ADDRMUX_SCHEME_6 0x5
#define SDRC_MCFG_ADDRMUX_SCHEME_7 0x6
#define SDRC_MCFG_ADDRMUX_SCHEME_8 0x7
#define SDRC_MCFG_ADDRMUX_SCHEME_9 0x8
#define SDRC_MCFG_ADDRMUX_SCHEME_10 0x9
#define SDRC_MCFG_ADDRMUX_SCHEME_11 0xA
#define SDRC_MCFG_ADDRMUX_SCHEME_12 0xB
#define SDRC_MCFG_ADDRMUX_SCHEME_13 0xC
#define SDRC_MCFG_ADDRMUX_SCHEME_14 0xD
#define SDRC_MCFG_ADDRMUX_SCHEME_15 0xE
#define SDRC_MCFG_ADDRMUX_SCHEME_16 0xF
#define SDRC_MCFG_ADDRMUX_SCHEME_23 0x16
#define SDRC_MCFG_ADDRMUX_SCHEME_24 0x17
#define SDRC_MCFG_ADDRMUX_SCHEME_25 0x18
#define SDRC_MCFG_ADDRMUX_SCHEME_26 0x19
#define SDRC_MCFG_ADDRMUX_SCHEME_27 0x1A
#define SDRC_MCFG_ADDRMUX_SCHEME_28 0x1B
#define SDRC_MCFG_ADDRMUX_SCHEME_29 0x1C
#define SDRC_MCFG_ADDRMUXLEGACY_FIXED ARM_REG_VAL(19, 0)
#define SDRC_MCFG_ADDRMUXLEGACY_FLEXIBLE ARM_REG_VAL(19, 1)
#define SDRC_MCFG_RAMSIZE_MASK ARM_REG_VAL(8, 0x3FF)
#define SDRC_MCFG_RAMSIZE_ENCODE(v) ARM_REG_VAL_ENCODE(8, SDRC_MCFG_RAMSIZE_MASK, ((v) / 2))
#define SDRC_MCFG_RAMSIZE_DECODE(v) (ARM_REG_VAL_DECODE(8, SDRC_MCFG_RAMSIZE_MASK, v) * 2)
#define SDRC_MCFG_BANKALLOCATION_MASK ARM_REG_VAL(6, 0x3)
#define SDRC_MCFG_BANKALLOCATION_ENCODE(v) ARM_REG_VAL_ENCODE(6, SDRC_MCFG_BANKALLOCATION_MASK, v)
#define SDRC_MCFG_BANKALLOCATION_DECODE(v) ARM_REG_VAL_DECODE(6, SDRC_MCFG_BANKALLOCATION_MASK), v)
#define SDRC_MCFG_BANKALLOCATION_B_R_C 0x0
#define SDRC_MCFG_BANKALLOCATION_B1_R_B0_C 0x1
#define SDRC_MCFG_BANKALLOCATION_R_B_C 0x2
#define SDRC_MCFG_B32NOT16_OFF ARM_REG_VAL(4, 0)
#define SDRC_MCFG_B32NOT16_ON ARM_REG_VAL(4, 1)
#define SDRC_MCFG_DEEPPD_UNSUPPORTED ARM_REG_VAL(3, 0)
#define SDRC_MCFG_DEEPPD_SUPPORTED ARM_REG_VAL(3, 1)
#define SDRC_MCFG_DDRTYPE_MASK ARM_REG_VAL(2, 0x1)
#define SDRC_MCFG_DDRTYPE_ENCODE(v) ARM_REG_VAL_ENCODE(2, SDRC_MCFG_DDRTYPE_MASK, v)
#define SDRC_MCFG_DDRTYPE_DECODE(v) ARM_REG_VAL_DECODE(2, SDRC_MCFG_DDRTYPE_MASK, v)
#define SDRC_MCFG_DDRTYPE_MOBILE_DDR 0
#define SDRC_MCFG_RAMTYPE_MASK ARM_REG_VAL(0, 0x3)
#define SDRC_MCFG_RAMTYPE_ENCODE(v) ARM_REG_VAL_ENCODE(0, SDRC_MCFG_RAMTYPE_MASK, v)
#define SDRC_MCFG_RAMTYPE_DECODE(v) ARM_REG_VAL_DECODE(0, SDRC_MCFG_RAMTYPE_MASK, v)
#define SDRC_MCFG_RAMTYPE_SDR 0x0
#define SDRC_MCFG_RAMTYPE_DDR 0x1
/*
* SDRAM Controller DDR Mode Register (Corresponds 1:1 w/ JEDEC Mode
* Register)
*/
#define SDRC_MR_ZERO_1 ARM_REG_VAL(10, 0)
#define SDRC_MR_WBST_ENABLE ARM_REG_VAL(9, 0)
#define SDRC_MR_WBST_DISABLE ARM_REG_VAL(9, 1)
#define SDRC_MR_ZERO_0 ARM_REG_VAL(7, 0)
#define SDRC_MR_CASL_MASK ARM_REG_VAL(4, 0x7)
#define SDRC_MR_CASL_ENCODE(v) ARM_REG_VAL_ENCODE(4, SDRC_MR_CASL_MASK, v)
#define SDRC_MR_CASL_DECODE(v) ARM_REG_VAL_DECODE(4, SDRC_MR_CASL_MASK, v)
#define SDRC_MR_CASL_1 0x1
#define SDRC_MR_CASL_2 0x2
#define SDRC_MR_CASL_3 0x3
#define SDRC_MR_CASL_4 0x4
#define SDRC_MR_CASL_5 0x5
#define SDRC_MR_SIL_SERIAL ARM_REG_VAL(3, 0)
#define SDRC_MR_SIL_INTERLEAVED ARM_REG_VAL(3, 1)
#define SDRC_MR_BL_MASK ARM_REG_VAL(0, 0x7)
#define SDRC_MR_BL_ENCODE(v) ARM_REG_VAL_ENCODE(0, SDRC_MR_BL_MASK, v)
#define SDRC_MR_BL_DECODE(v) ARM_REG_VAL_DECODE(0, SDRC_MR_BL_MASK, v)
#define SDRC_MR_BL_1 0x0
#define SDRC_MR_BL_2 0x1
#define SDRC_MR_BL_4 0x2
#define SDRC_MR_BL_8 0x3
#define SDRC_MR_BL_FULL_PAGE 0x7
/*
* SDRAM Controller DDR Extended Mode Register (Corresponds 1:1 w/
* JEDEC Mode Register)
*/
/*
* SDRAM Controller AC Timing Control A
*/
#define SDRC_ACTIM_CTRLA_TRFC_MASK ARM_REG_VAL(27, 0x1F)
#define SDRC_ACTIM_CTRLA_TRFC_ENCODE(v) ARM_REG_VAL_ENCODE(27, SDRC_ACTIM_CTRLA_TRFC_MASK, v)
#define SDRC_ACTIM_CTRLA_TRFC_DECODE(v) ARM_REG_VAL_DECODE(27, SDRC_ACTIM_CTRLA_TRFC_MASK), v)
#define SDRC_ACTIM_CTRLA_TRC_MASK ARM_REG_VAL(22, 0x1F)
#define SDRC_ACTIM_CTRLA_TRC_ENCODE(v) ARM_REG_VAL_ENCODE(22, SDRC_ACTIM_CTRLA_TRC_MASK, v)
#define SDRC_ACTIM_CTRLA_TRC_DECODE(v) ARM_REG_VAL_DECODE(22, SDRC_ACTIM_CTRLA_TRC_MASK), v)
#define SDRC_ACTIM_CTRLA_TRAS_MASK ARM_REG_VAL(18, 0xF)
#define SDRC_ACTIM_CTRLA_TRAS_ENCODE(v) ARM_REG_VAL_ENCODE(18, SDRC_ACTIM_CTRLA_TRAS_MASK, v)
#define SDRC_ACTIM_CTRLA_TRAS_DECODE(v) ARM_REG_VAL_DECODE(18, SDRC_ACTIM_CTRLA_TRAS_MASK), v)
#define SDRC_ACTIM_CTRLA_TRP_MASK ARM_REG_VAL(15, 0x7)
#define SDRC_ACTIM_CTRLA_TRP_ENCODE(v) ARM_REG_VAL_ENCODE(15, SDRC_ACTIM_CTRLA_TRP_MASK, v)
#define SDRC_ACTIM_CTRLA_TRP_DECODE(v) ARM_REG_VAL_DECODE(15, SDRC_ACTIM_CTRLA_TRP_MASK), v)
#define SDRC_ACTIM_CTRLA_TRCD_MASK ARM_REG_VAL(12, 0x7)
#define SDRC_ACTIM_CTRLA_TRCD_ENCODE(v) ARM_REG_VAL_ENCODE(12, SDRC_ACTIM_CTRLA_TRCD_MASK, v)
#define SDRC_ACTIM_CTRLA_TRCD_DECODE(v) ARM_REG_VAL_DECODE(12, SDRC_ACTIM_CTRLA_TRCD_MASK), v)
#define SDRC_ACTIM_CTRLA_TRRD_MASK ARM_REG_VAL(9, 0x7)
#define SDRC_ACTIM_CTRLA_TRRD_ENCODE(v) ARM_REG_VAL_ENCODE(9, SDRC_ACTIM_CTRLA_TRRD_MASK, v)
#define SDRC_ACTIM_CTRLA_TRRD_DECODE(v) ARM_REG_VAL_DECODE(9, SDRC_ACTIM_CTRLA_TRRD_MASK), v)
#define SDRC_ACTIM_CTRLA_TDPL_MASK ARM_REG_VAL(6, 0x7)
#define SDRC_ACTIM_CTRLA_TDPL_ENCODE(v) ARM_REG_VAL_ENCODE(6, SDRC_ACTIM_CTRLA_TDPL_MASK, v)
#define SDRC_ACTIM_CTRLA_TDPL_DECODE(v) ARM_REG_VAL_DECODE(6, SDRC_ACTIM_CTRLA_TDPL_MASK), v)
#define SDRC_ACTIM_CTRLA_TDAL_MASK ARM_REG_VAL(0, 0x1F)
#define SDRC_ACTIM_CTRLA_TDAL_ENCODE(v) ARM_REG_VAL_ENCODE(0, SDRC_ACTIM_CTRLA_TDAL_MASK, v)
#define SDRC_ACTIM_CTRLA_TDAL_DECODE(v) ARM_REG_VAL_DECODE(0, SDRC_ACTIM_CTRLA_TDAL_MASK), v)
/*
* SDRAM Controller AC Timing Control B
*/
#define SDRC_ACTIM_CTRLB_TWTR_MASK ARM_REG_VAL(16, 0x3)
#define SDRC_ACTIM_CTRLB_TWTR_ENCODE(v) ARM_REG_VAL_ENCODE(16, SDRC_ACTIM_CTRLB_TWTR_MASK, v)
#define SDRC_ACTIM_CTRLB_TWTR_DECODE(v) ARM_REG_VAL_DECODE(16, SDRC_ACTIM_CTRLB_TWTR_MASK), v)
#define SDRC_ACTIM_CTRLB_TCKE_MASK ARM_REG_VAL(12, 0x7)
#define SDRC_ACTIM_CTRLB_TCKE_ENCODE(v) ARM_REG_VAL_ENCODE(12, SDRC_ACTIM_CTRLB_TCKE_MASK, v)
#define SDRC_ACTIM_CTRLB_TCKE_DECODE(v) ARM_REG_VAL_DECODE(12, SDRC_ACTIM_CTRLB_TCKE_MASK), v)
#define SDRC_ACTIM_CTRLB_TXP_MASK ARM_REG_VAL(8, 0x7)
#define SDRC_ACTIM_CTRLB_TXP_ENCODE(v) ARM_REG_VAL_ENCODE(8, SDRC_ACTIM_CTRLB_TXP_MASK, v)
#define SDRC_ACTIM_CTRLB_TXP_DECODE(v) ARM_REG_VAL_DECODE(8, SDRC_ACTIM_CTRLB_TXP_MASK), v)
#define SDRC_ACTIM_CTRLB_TXSR_MASK ARM_REG_VAL(0, 0xFF)
#define SDRC_ACTIM_CTRLB_TXSR_ENCODE(v) ARM_REG_VAL_ENCODE(0, SDRC_ACTIM_CTRLB_TXSR_MASK, v)
#define SDRC_ACTIM_CTRLB_TXSR_DECODE(v) ARM_REG_VAL_DECODE(0, SDRC_ACTIM_CTRLB_TXSR_MASK), v)
/*
* SDRAM Controller Autorefresh Control
*/
#define SDRC_RFR_CTRL_ARCV_MASK ARM_REG_VAL(8, 0xFFFF)
#define SDRC_RFR_CTRL_ARCV_ENCODE(v) ARM_REG_VAL_ENCODE(8, SDRC_RFR_CTRL_ARCV_MASK, v)
#define SDRC_RFR_CTRL_ARCV_DECODE(v) ARM_REG_VAL_DECODE(8, SDRC_RFR_CTRL_ARCV_MASK), v)
#define SDRC_RFR_CTRL_ARE_MASK ARM_REG_VAL(0, 0x3)
#define SDRC_RFR_CTRL_ARE_ENCODE(v) ARM_REG_VAL_ENCODE(0, SDRC_RFR_CTRL_ARE_MASK, v)
#define SDRC_RFR_CTRL_ARE_DECODE(v) ARM_REG_VAL_DECODE(0, SDRC_RFR_CTRL_ARE_MASK), v)
#define SDRC_RFR_CTRL_ARE_DISABLED 0x0
#define SDRC_RFR_CTRL_ARE_1_ARCV 0x1
#define SDRC_RFR_CTRL_ARE_4_ARCV 0x2
#define SDRC_RFR_CTRL_ARE_8_ARCV 0x3
/*
* SDRAM Controller Manual Control
*/
#define SDRC_MANUAL_CMDPARAM_MASK ARM_REG_VAL(16, 0xFFFF)
#define SDRC_MANUAL_CMDPARAM_ENCODE(v) ARM_REG_VAL_ENCODE(16, SDRC_MANUAL_CMDPARAM_MASK, v)
#define SDRC_MANUAL_CMDPARAM_DECODE(v) ARM_REG_VAL_DECODE(16, SDRC_MANUAL_CMDPARAM_MASK), v)
#define SDRC_MANUAL_CMDCODE_MASK ARM_REG_VAL(0, 0x7)
#define SDRC_MANUAL_CMDCODE_ENCODE(v) ARM_REG_VAL_ENCODE(0, SDRC_MANUAL_CMDCODE_MASK, v)
#define SDRC_MANUAL_CMDCODE_DECODE(v) ARM_REG_VAL_DECODE(0, SDRC_MANUAL_CMDCODE_MASK), v)
#define SDRC_MANUAL_CMDCODE_NOP 0x0
#define SDRC_MANUAL_CMDCODE_PRECHARGE_ALL 0x1
#define SDRC_MANUAL_CMDCODE_AUTOREFRESH 0x2
#define SDRC_MANUAL_CMDCODE_ENTER_PWD 0x3
#define SDRC_MANUAL_CMDCODE_EXIT_PWD 0x4
#define SDRC_MANUAL_CMDCODE_ENTER_SELFREFRESH 0x5
#define SDRC_MANUAL_CMDCODE_EXIT_SELFREFRESH 0x6
#define SDRC_MANUAL_CMDCODE_SET_CKE_HIGH 0x7
#define SDRC_MANUAL_CMDCODE_SET_CKE_LOW 0x8
#endif /* _OMAP3_SDRC_H */