blob: 1d034ce6e7a8b6aa31e1febd3af478332dbe37ec [file] [log] [blame]
/*
* arch/arm/mach-comcerto/include/mach/exp-bus.h
*
* Copyright (C) 2011 Mindspeed Technologies, Inc.
*
* 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
*/
#ifndef __COMCERTO_EXP_BUS_H__
#define __COMCERTO_EXP_BUS_H__
/*
* Expansion Bus control registers
*/
#define EXP_SWRST_REG (COMCERTO_EXP_CONF_BASE + 0x00)
#define EXP_CSEN_REG (COMCERTO_EXP_CONF_BASE + 0x04)
#define EXP_CS0_BASE_REG (COMCERTO_EXP_CONF_BASE + 0x08)
#define EXP_CS1_BASE_REG (COMCERTO_EXP_CONF_BASE + 0x0C)
#define EXP_CS2_BASE_REG (COMCERTO_EXP_CONF_BASE + 0x10)
#define EXP_CS3_BASE_REG (COMCERTO_EXP_CONF_BASE + 0x14)
#define EXP_CS4_BASE_REG (COMCERTO_EXP_CONF_BASE + 0x18)
#define EXP_CS0_SEG_REG (COMCERTO_EXP_CONF_BASE + 0x1C)
#define EXP_CS1_SEG_REG (COMCERTO_EXP_CONF_BASE + 0x20)
#define EXP_CS2_SEG_REG (COMCERTO_EXP_CONF_BASE + 0x24)
#define EXP_CS3_SEG_REG (COMCERTO_EXP_CONF_BASE + 0x28)
#define EXP_CS4_SEG_REG (COMCERTO_EXP_CONF_BASE + 0x2C)
#define EXP_CS0_CFG_REG (COMCERTO_EXP_CONF_BASE + 0x30)
#define EXP_CS1_CFG_REG (COMCERTO_EXP_CONF_BASE + 0x34)
#define EXP_CS2_CFG_REG (COMCERTO_EXP_CONF_BASE + 0x38)
#define EXP_CS3_CFG_REG (COMCERTO_EXP_CONF_BASE + 0x3C)
#define EXP_CS4_CFG_REG (COMCERTO_EXP_CONF_BASE + 0x40)
#define EXP_CS0_TMG1_REG (COMCERTO_EXP_CONF_BASE + 0x44)
#define EXP_CS1_TMG1_REG (COMCERTO_EXP_CONF_BASE + 0x48)
#define EXP_CS2_TMG1_REG (COMCERTO_EXP_CONF_BASE + 0x4C)
#define EXP_CS3_TMG1_REG (COMCERTO_EXP_CONF_BASE + 0x50)
#define EXP_CS4_TMG1_REG (COMCERTO_EXP_CONF_BASE + 0x54)
#define EXP_CS0_TMG2_REG (COMCERTO_EXP_CONF_BASE + 0x58)
#define EXP_CS1_TMG2_REG (COMCERTO_EXP_CONF_BASE + 0x5C)
#define EXP_CS2_TMG2_REG (COMCERTO_EXP_CONF_BASE + 0x60)
#define EXP_CS3_TMG2_REG (COMCERTO_EXP_CONF_BASE + 0x64)
#define EXP_CS4_TMG2_REG (COMCERTO_EXP_CONF_BASE + 0x68)
#define EXP_CS0_TMG3_REG (COMCERTO_EXP_CONF_BASE + 0x6C)
#define EXP_CS1_TMG3_REG (COMCERTO_EXP_CONF_BASE + 0x70)
#define EXP_CS2_TMG3_REG (COMCERTO_EXP_CONF_BASE + 0x74)
#define EXP_CS3_TMG3_REG (COMCERTO_EXP_CONF_BASE + 0x78)
#define EXP_CS4_TMG3_REG (COMCERTO_EXP_CONF_BASE + 0x7C)
#define EXP_CLOCK_DIV_REG (COMCERTO_EXP_CONF_BASE + 0x80)
#define EXP_MFSM_REG (COMCERTO_EXP_CONF_BASE + 0x100)
#define EXP_CSFSM_REG (COMCERTO_EXP_CONF_BASE + 0x104)
#define EXP_WRFSM_REG (COMCERTO_EXP_CONF_BASE + 0x108)
#define EXP_RDFSM_REG (COMCERTO_EXP_CONF_BASE + 0x10C)
#define EXP_SW_RST 0x00000001
#define EXP_CLK_EN 0x00000001
#define EXP_CSBOOT_EN 0x00000002
#define EXP_CS0_EN 0x00000002
#define EXP_CS1_EN 0x00000004
#define EXP_CS2_EN 0x00000008
#define EXP_CS3_EN 0x00000010
#define EXP_CS4_EN 0x00000020
#define EXP_MEM_BUS_8 0x00000000
#define EXP_MEM_BUS_16 0x00000002
#define EXP_CS_HIGH 0x00000008
#define EXP_WE_HIGH 0x00000010
#define EXP_RE_HIGH 0x00000020
#define EXP_ALE_MODE 0x00000040
#define EXP_STRB_MODE 0x00000080
#define EXP_DM_MODE 0x00000100
#define EXP_NAND_MODE 0x00000200
#define EXP_RDY_EN 0x00000400
#define EXP_RDY_EDGE 0x00000800
#define COMCERTO_NAND_RDY GPIO_29
#define COMCERTO_NAND_CE GPIO_28
#define BIT_9_MSK 0x00000200
#define BIT_10_MSK 0x00000400
#if defined(CONFIG_MACH_COMCERTO_C2K_ASIC) && defined(CONFIG_NAND_TYPE_SLC)
//SLC NAND on ASIC is 16-bit, and bit[0] of Exp bus is used for data mask
//hence the ALE and CLE signal is shifted by 1 bit
#define COMCERTO_NAND_ALE (BIT_9_MSK << 1)
#define COMCERTO_NAND_CLE (BIT_10_MSK << 1)
#else
#define COMCERTO_NAND_ALE BIT_9_MSK
#define COMCERTO_NAND_CLE BIT_10_MSK
#endif
#endif /* __COMCERTO_EXP_BUS_H__ */