annotate packages/devs/flash/atmel/dataflash/current/include/dataflash.h @ 1738:0801d20c7256

* include/dataflash.h: * src/devs_flash_atmel_dataflash.c: Changed the API to be more consistent, included error reporting and added blocking/non blocking mode of operation. * src/devs_flash_atmel_dataflash_flash_dev_funs.c: Synced with new API and set the block size to DataFlash's native page size.
author asl
date Thu, 07 Oct 2004 19:59:27 +0000
parents 1646bf44203c
children a8729175ad24
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
1 #ifndef CYGONCE_DATAFLASH_H
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
2 #define CYGONCE_DATAFLASH_H
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
3 //==========================================================================
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
4 //
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
5 // dataflash.h
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
6 //
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
7 // DataFlash series flash driver defines
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
8 //
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
9 //==========================================================================
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
10 //####ECOSGPLCOPYRIGHTBEGIN####
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
11 // -------------------------------------------
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
12 // This file is part of eCos, the Embedded Configurable Operating System.
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
13 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
14 //
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
15 // eCos is free software; you can redistribute it and/or modify it under
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
16 // the terms of the GNU General Public License as published by the Free
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
17 // Software Foundation; either version 2 or (at your option) any later version.
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
18 //
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
19 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
20 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
21 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
22 // for more details.
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
23 //
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
24 // You should have received a copy of the GNU General Public License along
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
25 // with eCos; if not, write to the Free Software Foundation, Inc.,
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
26 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
27 //
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
28 // As a special exception, if other files instantiate templates or use macros
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
29 // or inline functions from this file, or you compile this file and link it
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
30 // with other works to produce a work based on this file, this file does not
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
31 // by itself cause the resulting work to be covered by the GNU General Public
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
32 // License. However the source code for this file must still be made available
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
33 // in accordance with section (3) of the GNU General Public License.
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
34 //
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
35 // This exception does not invalidate any other reasons why a work based on
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
36 // this file might be covered by the GNU General Public License.
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
37 //
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
38 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
39 // at http://sources.redhat.com/ecos/ecos-license/
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
40 // -------------------------------------------
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
41 //####ECOSGPLCOPYRIGHTEND####
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
42
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
43 //==========================================================================
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
44 //#####DESCRIPTIONBEGIN####
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
45 //
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
46 // Author(s): Savin Zlobec <savin@elatec.si>
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
47 // Date: 2004-08-27
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
48 //
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
49 //####DESCRIPTIONEND####
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
50 //
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
51 //==========================================================================
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
52
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
53 #include <pkgconf/hal.h>
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
54 #include <pkgconf/devs_flash_atmel_dataflash.h>
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
55
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
56 #include <cyg/infra/cyg_type.h>
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
57 #include <cyg/hal/drv_api.h>
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
58 #include <cyg/io/spi.h>
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
59
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
60 //----------------------------------------------------------------------------
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
61
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
62 enum {
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
63 CYG_DATAFLASH_ERR_OK = 0, // No error
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
64 CYG_DATAFLASH_ERR_INVALID = 1, // Invalid address error
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
65 CYG_DATAFLASH_ERR_WRONG_PART = 2, // Unsupported device error
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
66 CYG_DATAFLASH_ERR_TIMEOUT = 3, // Operation timeout error
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
67 CYG_DATAFLASH_ERR_COMPARE = 4 // Buffer - main memory compare error
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
68 };
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
69
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
70 enum {
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
71 CYG_DATAFLASH_STATE_IDLE = 0,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
72 CYG_DATAFLASH_STATE_BUSY = 1
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
73 };
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
74
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
75 //----------------------------------------------------------------------------
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
76
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
77 typedef struct cyg_dataflash_dev_info_s
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
78 {
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
79 cyg_uint8 device_id; // Device ID
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
80 cyg_uint16 page_size; // Page size in bytes
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
81 cyg_uint16 page_count; // Total number of pages
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
82 cyg_uint8 baddr_bits; // Bits used for byte address in addressing seq
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
83 cyg_uint16 block_size; // Block size in pages
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
84 cyg_uint16 sector_sizes[64]; // Sector sizes in blocks
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
85 cyg_uint16 sector_count; // Total number of sectors
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
86 } cyg_dataflash_dev_info_t;
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
87
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
88 typedef struct cyg_dataflash_device_s
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
89 {
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
90 const cyg_dataflash_dev_info_t *info; // DataFlash device info
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
91 cyg_spi_device *spi_dev; // SPI device
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
92 cyg_drv_mutex_t lock; // Access lock
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
93 cyg_bool polled; // Polled mode flag
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
94 cyg_bool blocking; // Blocking mode flag
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
95 int state; // Current state (IDLE, BUSY, ...)
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
96 cyg_uint8 busy_buf; // Current busy buffer number
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
97 } cyg_dataflash_device_t;
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
98
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
99 //----------------------------------------------------------------------------
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
100
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
101 #ifdef _FLASH_PRIVATE_
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
102 #include <cyg/io/flash.h>
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
103
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
104 typedef struct cyg_dataflash_flash_dev_config_s
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
105 {
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
106 cyg_spi_device **spi_dev; // SPI device
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
107 cyg_uint32 address; // Memory address (flash driver)
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
108 cyg_int16 start_sector; // Start sector of flash driver space
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
109 cyg_int16 end_sector; // End sector of flash driver space
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
110 } cyg_dataflash_flash_dev_config_t;
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
111
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
112 typedef struct cyg_dataflash_flash_dev_priv_s
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
113 {
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
114 cyg_dataflash_device_t dev; // DataFlash device
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
115 cyg_uint32 start_page; // Start page of flash driver space
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
116 cyg_uint32 end_page; // End page of flash driver space
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
117 } cyg_dataflash_flash_dev_priv_t;
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
118
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
119 externC struct cyg_flash_dev_funs cyg_dataflash_flash_dev_funs;
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
120
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
121 #define CYG_DATAFLASH_FLASH_DRIVER(name, _sdev, _addr, _start, _end) \
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
122 static cyg_dataflash_flash_dev_config_t config_ ## name = { \
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
123 .spi_dev = &_sdev, \
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
124 .address = _addr, \
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
125 .start_sector = _start, \
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
126 .end_sector = _end \
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
127 }; \
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
128 CYG_FLASH_DRIVER(name, &cyg_dataflash_flash_dev_funs, \
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
129 &config_ ## name, 0, \
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
130 sizeof(cyg_dataflash_flash_dev_priv_t))
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
131
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
132 #endif // _FLASH_PRIVATE_
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
133
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
134 //----------------------------------------------------------------------------
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
135
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
136 static inline cyg_uint8
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
137 cyg_dataflash_get_device_id(cyg_dataflash_device_t *dev)
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
138 {
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
139 return dev->info->device_id;
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
140 }
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
141
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
142 static inline cyg_uint16
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
143 cyg_dataflash_get_page_size(cyg_dataflash_device_t *dev)
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
144 {
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
145 return dev->info->page_size;
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
146 }
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
147
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
148 static inline cyg_uint16
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
149 cyg_dataflash_get_page_count(cyg_dataflash_device_t *dev)
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
150 {
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
151 return dev->info->page_size;
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
152 }
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
153
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
154 static inline cyg_uint16
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
155 cyg_dataflash_get_block_size(cyg_dataflash_device_t *dev)
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
156 {
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
157 return dev->info->block_size;
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
158 }
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
159
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
160 static inline cyg_uint16
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
161 cyg_dataflash_get_sector_size(cyg_dataflash_device_t *dev, cyg_uint8 sector_num)
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
162 {
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
163 return dev->info->sector_sizes[sector_num];
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
164 }
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
165
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
166 static inline cyg_uint16
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
167 cyg_dataflash_get_sector_count(cyg_dataflash_device_t *dev)
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
168 {
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
169 return dev->info->sector_count;
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
170 }
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
171
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
172 static inline void
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
173 cyg_dataflash_set_polled_operation(cyg_dataflash_device_t *dev, cyg_bool polled)
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
174 {
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
175 dev->polled = polled;
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
176 }
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
177
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
178 static inline void
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
179 cyg_dataflash_set_blocking_operation(cyg_dataflash_device_t *dev, cyg_bool block)
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
180 {
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
181 dev->blocking = block;
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
182 }
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
183
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
184 //----------------------------------------------------------------------------
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
185
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
186 externC int cyg_dataflash_init(cyg_spi_device *spi_dev,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
187 cyg_bool polled,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
188 cyg_dataflash_device_t *dev);
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
189
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
190 externC int cyg_dataflash_aquire(cyg_dataflash_device_t *dev);
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
191
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
192 externC int cyg_dataflash_release(cyg_dataflash_device_t *dev);
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
193
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
194 externC cyg_uint16 cyg_dataflash_get_sector_start(cyg_dataflash_device_t *dev,
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
195 cyg_uint16 sector_num);
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
196
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
197 externC int cyg_dataflash_wait_ready(cyg_dataflash_device_t *dev);
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
198
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
199 externC int cyg_dataflash_read_buf(cyg_dataflash_device_t *dev,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
200 cyg_uint8 buf_num,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
201 cyg_uint8 *buf,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
202 cyg_uint32 len,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
203 cyg_uint32 pos);
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
204
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
205 externC int cyg_dataflash_write_buf(cyg_dataflash_device_t *dev,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
206 cyg_uint8 buf_num,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
207 const cyg_uint8 *buf,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
208 cyg_uint32 len,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
209 cyg_uint32 pos);
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
210
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
211 externC int cyg_dataflash_mem_to_buf(cyg_dataflash_device_t *dev,
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
212 cyg_uint8 buf_num,
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
213 cyg_uint32 page_num);
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
214
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
215 externC int cyg_dataflash_program_buf(cyg_dataflash_device_t *dev,
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
216 cyg_uint8 buf_num,
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
217 cyg_uint32 page_num,
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
218 cyg_bool erase);
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
219
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
220 externC int cyg_dataflash_compare_buf(cyg_dataflash_device_t *dev,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
221 cyg_uint8 buf_num,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
222 cyg_uint32 page_num);
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
223
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
224 externC int cyg_dataflash_erase(cyg_dataflash_device_t *dev,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
225 cyg_uint32 page_num);
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
226
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
227 externC int cyg_dataflash_erase_block(cyg_dataflash_device_t *dev,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
228 cyg_uint32 block_num);
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
229
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
230 externC int cyg_dataflash_auto_rewrite(cyg_dataflash_device_t *dev,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
231 cyg_uint8 buf_num,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
232 cyg_uint32 page_num);
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
233
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
234 externC int cyg_dataflash_read(cyg_dataflash_device_t *dev,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
235 cyg_uint8 *buf,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
236 cyg_uint32 len,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
237 cyg_uint32 pos);
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
238
1738
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
239 externC int cyg_dataflash_program(cyg_dataflash_device_t *dev,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
240 const cyg_uint8 *buf,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
241 cyg_uint32 *len,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
242 cyg_uint32 pos,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
243 cyg_bool erase,
0801d20c7256 * include/dataflash.h:
asl
parents: 1732
diff changeset
244 cyg_bool verify);
1732
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
245
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
246 //----------------------------------------------------------------------------
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
247
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
248 #endif // CYGONCE_DATAFLASH_H
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
249
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
250 //----------------------------------------------------------------------------
1646bf44203c * cdl/devs_flash_atmel_dataflash.cdl:
asl
parents:
diff changeset
251 // End of dataflash.h