Sergey Kubushyn | c74b210 | 2007-08-10 20:26:18 +0200 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> |
| 3 | * |
| 4 | * See file CREDITS for list of people who contributed to this |
| 5 | * project. |
| 6 | * |
| 7 | * This program is free software; you can redistribute it and/or |
| 8 | * modify it under the terms of the GNU General Public License as |
| 9 | * published by the Free Software Foundation; either version 2 of |
| 10 | * the License, or (at your option) any later version. |
| 11 | * |
| 12 | * This program is distributed in the hope that it will be useful, |
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 15 | * GNU General Public License for more details. |
| 16 | * |
| 17 | * You should have received a copy of the GNU General Public License |
| 18 | * along with this program; if not, write to the Free Software |
| 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
| 20 | * MA 02111-1307 USA |
| 21 | */ |
| 22 | #ifndef _EMIF_DEFS_H_ |
| 23 | #define _EMIF_DEFS_H_ |
| 24 | |
| 25 | #include <asm/arch/hardware.h> |
| 26 | |
Nick Thompson | 6228e63 | 2010-02-08 11:34:58 -0500 | [diff] [blame] | 27 | typedef struct davinci_emif_regs { |
Sergey Kubushyn | c74b210 | 2007-08-10 20:26:18 +0200 | [diff] [blame] | 28 | dv_reg ERCSR; |
| 29 | dv_reg AWCCR; |
| 30 | dv_reg SDBCR; |
| 31 | dv_reg SDRCR; |
| 32 | dv_reg AB1CR; |
| 33 | dv_reg AB2CR; |
| 34 | dv_reg AB3CR; |
| 35 | dv_reg AB4CR; |
| 36 | dv_reg SDTIMR; |
| 37 | dv_reg DDRSR; |
| 38 | dv_reg DDRPHYCR; |
| 39 | dv_reg DDRPHYSR; |
| 40 | dv_reg TOTAR; |
| 41 | dv_reg TOTACTR; |
| 42 | dv_reg DDRPHYID_REV; |
| 43 | dv_reg SDSRETR; |
| 44 | dv_reg EIRR; |
| 45 | dv_reg EIMR; |
| 46 | dv_reg EIMSR; |
| 47 | dv_reg EIMCR; |
| 48 | dv_reg IOCTRLR; |
| 49 | dv_reg IOSTATR; |
| 50 | u_int8_t RSVD0[8]; |
| 51 | dv_reg NANDFCR; |
| 52 | dv_reg NANDFSR; |
| 53 | u_int8_t RSVD1[8]; |
Nick Thompson | 97f4eb8 | 2009-12-12 12:12:26 -0500 | [diff] [blame] | 54 | dv_reg NANDFECC[4]; |
Sandeep Paulraj | 77b351c | 2009-08-18 10:10:42 -0400 | [diff] [blame] | 55 | u_int8_t RSVD2[60]; |
| 56 | dv_reg NAND4BITECCLOAD; |
| 57 | dv_reg NAND4BITECC1; |
| 58 | dv_reg NAND4BITECC2; |
| 59 | dv_reg NAND4BITECC3; |
| 60 | dv_reg NAND4BITECC4; |
| 61 | dv_reg NANDERRADD1; |
| 62 | dv_reg NANDERRADD2; |
| 63 | dv_reg NANDERRVAL1; |
| 64 | dv_reg NANDERRVAL2; |
Sergey Kubushyn | c74b210 | 2007-08-10 20:26:18 +0200 | [diff] [blame] | 65 | } emif_registers; |
| 66 | |
| 67 | typedef emif_registers *emifregs; |
Nick Thompson | 97f4eb8 | 2009-12-12 12:12:26 -0500 | [diff] [blame] | 68 | |
Nick Thompson | 6228e63 | 2010-02-08 11:34:58 -0500 | [diff] [blame] | 69 | #define davinci_emif_regs \ |
| 70 | ((struct davinci_emif_regs *)DAVINCI_ASYNC_EMIF_CNTRL_BASE) |
| 71 | |
Nick Thompson | 26be2c5 | 2009-12-12 12:13:10 -0500 | [diff] [blame] | 72 | #define DAVINCI_NANDFCR_NAND_ENABLE(n) (1 << (n-2)) |
Nick Thompson | 97f4eb8 | 2009-12-12 12:12:26 -0500 | [diff] [blame] | 73 | #define DAVINCI_NANDFCR_4BIT_ECC_SEL_MASK (3 << 4) |
| 74 | #define DAVINCI_NANDFCR_4BIT_ECC_SEL(n) ((n-2) << 4) |
Nick Thompson | 97f4eb8 | 2009-12-12 12:12:26 -0500 | [diff] [blame] | 75 | #define DAVINCI_NANDFCR_1BIT_ECC_START(n) (1 << (8 + (n-2))) |
Nick Thompson | 97f4eb8 | 2009-12-12 12:12:26 -0500 | [diff] [blame] | 76 | #define DAVINCI_NANDFCR_4BIT_ECC_START (1 << 12) |
| 77 | #define DAVINCI_NANDFCR_4BIT_CALC_START (1 << 13) |
| 78 | |
Nick Thompson | 6228e63 | 2010-02-08 11:34:58 -0500 | [diff] [blame] | 79 | /* Chip Select setup */ |
| 80 | #define DAVINCI_ABCR_STROBE_SELECT (1 << 31) |
| 81 | #define DAVINCI_ABCR_EXT_WAIT (1 << 30) |
| 82 | #define DAVINCI_ABCR_WSETUP(n) (n << 26) |
| 83 | #define DAVINCI_ABCR_WSTROBE(n) (n << 20) |
| 84 | #define DAVINCI_ABCR_WHOLD(n) (n << 17) |
| 85 | #define DAVINCI_ABCR_RSETUP(n) (n << 13) |
| 86 | #define DAVINCI_ABCR_RSTROBE(n) (n << 7) |
| 87 | #define DAVINCI_ABCR_RHOLD(n) (n << 4) |
| 88 | #define DAVINCI_ABCR_TA(n) (n << 2) |
| 89 | #define DAVINCI_ABCR_ASIZE_16BIT 1 |
| 90 | #define DAVINCI_ABCR_ASIZE_8BIT 0 |
| 91 | |
Sergey Kubushyn | c74b210 | 2007-08-10 20:26:18 +0200 | [diff] [blame] | 92 | #endif |