]> git.sur5r.net Git - openocd/blob - src/flash/nand/arm_io.h
Make #include guard naming consistent
[openocd] / src / flash / nand / arm_io.h
1 /*
2  * Copyright (C) 2009 by David Brownell
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17 #ifndef OPENOCD_FLASH_NAND_ARM_IO_H
18 #define OPENOCD_FLASH_NAND_ARM_IO_H
19
20 /**
21  * Available operational states the arm_nand_data struct can be in.
22  */
23 enum arm_nand_op {
24         ARM_NAND_NONE,  /**< No operation performed. */
25         ARM_NAND_READ,  /**< Read operation performed. */
26         ARM_NAND_WRITE, /**< Write operation performed. */
27 };
28
29 /**
30  * The arm_nand_data struct is used for defining NAND I/O operations on an ARM
31  * core.
32  */
33 struct arm_nand_data {
34         /** Target is proxy for some ARM core. */
35         struct target *target;
36
37         /** The copy area holds code loop and data for I/O operations. */
38         struct working_area *copy_area;
39
40         /** The chunk size is the page size or ECC chunk. */
41         unsigned chunk_size;
42
43         /** Where data is read from or written to. */
44         uint32_t data;
45
46         /** Last operation executed using this struct. */
47         enum arm_nand_op op;
48
49         /* currently implicit:  data width == 8 bits (not 16) */
50 };
51
52 int arm_nandwrite(struct arm_nand_data *nand, uint8_t *data, int size);
53 int arm_nandread(struct arm_nand_data *nand, uint8_t *data, uint32_t size);
54
55 #endif /* OPENOCD_FLASH_NAND_ARM_IO_H */