Audit and eliminate redundant #include directives in src/flash headers.
[openocd.git] / src / flash / str9xpec.h
1 /***************************************************************************
2 * Copyright (C) 2005 by Dominic Rath *
3 * Dominic.Rath@gmx.de *
4 * *
5 * Copyright (C) 2008 by Spencer Oliver *
6 * spen@spen-soft.co.uk *
7 * *
8 * This program is free software; you can redistribute it and/or modify *
9 * it under the terms of the GNU General Public License as published by *
10 * the Free Software Foundation; either version 2 of the License, or *
11 * (at your option) any later version. *
12 * *
13 * This program is distributed in the hope that it will be useful, *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16 * GNU General Public License for more details. *
17 * *
18 * You should have received a copy of the GNU General Public License *
19 * along with this program; if not, write to the *
20 * Free Software Foundation, Inc., *
21 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
22 ***************************************************************************/
23 #ifndef STR9XPEC_H
24 #define STR9XPEC_H
25
26 #include "flash.h"
27 #include "jtag.h"
28
29 typedef struct str9xpec_flash_controller_s
30 {
31 jtag_tap_t *tap;
32 u32 *sector_bits;
33 int chain_pos;
34 int isc_enable;
35 u8 options[8];
36 } str9xpec_flash_controller_t;
37
38 enum str9xpec_status_codes
39 {
40 STR9XPEC_INVALID_COMMAND = 1,
41 STR9XPEC_ISC_SUCCESS = 2,
42 STR9XPEC_ISC_DISABLED = 3,
43 STR9XPEC_ISC_INTFAIL = 32,
44 };
45
46 /* ISC commands */
47
48 #define ISC_IDCODE 0xFE
49 #define ISC_MFG_READ 0x4C
50 #define ISC_CONFIGURATION 0x07
51 #define ISC_ENABLE 0x0C
52 #define ISC_DISABLE 0x0F
53 #define ISC_NOOP 0x10
54 #define ISC_ADDRESS_SHIFT 0x11
55 #define ISC_CLR_STATUS 0x13
56 #define ISC_PROGRAM 0x20
57 #define ISC_PROGRAM_SECURITY 0x22
58 #define ISC_PROGRAM_UC 0x23
59 #define ISC_ERASE 0x30
60 #define ISC_READ 0x50
61 #define ISC_BLANK_CHECK 0x60
62
63 /* ISC_DEFAULT bit definitions */
64
65 #define ISC_STATUS_SECURITY 0x40
66 #define ISC_STATUS_INT_ERROR 0x30
67 #define ISC_STATUS_MODE 0x08
68 #define ISC_STATUS_BUSY 0x04
69 #define ISC_STATUS_ERROR 0x03
70
71 /* Option bytes definitions */
72
73 #define STR9XPEC_OPT_CSMAPBIT 48
74 #define STR9XPEC_OPT_LVDTHRESBIT 49
75 #define STR9XPEC_OPT_LVDSELBIT 50
76 #define STR9XPEC_OPT_LVDWARNBIT 51
77 #define STR9XPEC_OPT_OTPBIT 63
78
79 #endif /* STR9XPEC_H */