blob: aab525635423541cad099abacf0598d6fd0ad6cc [file] [log] [blame]
Sylvain Munaut26bc4652020-09-14 10:19:49 +02001/*
2 * spi.h
3 *
4 * Copyright (C) 2019-2020 Sylvain Munaut <tnt@246tNt.com>
5 * SPDX-License-Identifier: LGPL-3.0-or-later
6 */
7
8#pragma once
9
10#include <stdbool.h>
11
12struct spi_xfer_chunk {
13 uint8_t *data;
14 unsigned len;
15 bool write;
16 bool read;
17};
18
19#define SPI_CS_FLASH 0
20#define SPI_CS_LIU(n) (4+(n))
21
22void spi_init(void);
23void spi_xfer(unsigned cs, const struct spi_xfer_chunk *xfer, unsigned n);
24
25void flash_cmd(uint8_t cmd);
26void flash_deep_power_down(void);
27void flash_wake_up(void);
28void flash_write_enable(void);
29void flash_write_disable(void);
30void flash_manuf_id(void *manuf);
31void flash_unique_id(void *id);
32uint8_t flash_read_sr(void);
33void flash_write_sr(uint8_t sr);
34void flash_read(void *dst, uint32_t addr, unsigned len);
Sylvain Munautc5f3f772020-10-28 21:58:57 +010035void flash_page_program(const void *src, uint32_t addr, unsigned len);
Sylvain Munaut26bc4652020-09-14 10:19:49 +020036void flash_sector_erase(uint32_t addr);