| /* |
| * 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__ */ |