Support for Flash Memory W25N01G of 128MB (#8166)
[inav.git] / src / main / drivers / flash_w25n01g.h
blobea6737eebb26e185a318e56d8837e77da07e0dba
1 /*
2 * This file is part of iNav.
4 * iNav are free software. You can redistribute
5 * this software and/or modify this software under the terms of the
6 * GNU General Public License as published by the Free Software
7 * Foundation, either version 3 of the License, or (at your option)
8 * any later version.
10 * iNav are distributed in the hope that they
11 * will be useful, but WITHOUT ANY WARRANTY; without even the implied
12 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 * See the GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this software.
18 * If not, see <http://www.gnu.org/licenses/>.
21 #pragma once
23 #include <stdint.h>
24 #include "flash.h"
25 #include "drivers/io_types.h"
27 bool w25n01g_init(int flashNumToUse);
29 void w25n01g_eraseSector(uint32_t address);
30 void w25n01g_eraseCompletely(void);
32 uint32_t w25n01g_pageProgram(uint32_t address, const uint8_t *data, int length);
34 void w25n01g_flush(void);
36 int w25n01g_readBytes(uint32_t address, uint8_t *buffer, int length);
38 bool w25n01g_isReady(void);
39 bool w25n01g_waitForReady(timeMs_t timeoutMillis);
41 const flashGeometry_t* w25n01g_getGeometry(void);