Sylvain Munaut | 26bc465 | 2020-09-14 10:19:49 +0200 | [diff] [blame] | 1 | /* |
| 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 | |
| 12 | struct 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 | |
| 22 | void spi_init(void); |
| 23 | void spi_xfer(unsigned cs, const struct spi_xfer_chunk *xfer, unsigned n); |
| 24 | |
| 25 | void flash_cmd(uint8_t cmd); |
| 26 | void flash_deep_power_down(void); |
| 27 | void flash_wake_up(void); |
| 28 | void flash_write_enable(void); |
| 29 | void flash_write_disable(void); |
| 30 | void flash_manuf_id(void *manuf); |
| 31 | void flash_unique_id(void *id); |
| 32 | uint8_t flash_read_sr(void); |
| 33 | void flash_write_sr(uint8_t sr); |
| 34 | void flash_read(void *dst, uint32_t addr, unsigned len); |
| 35 | void flash_page_program(void *src, uint32_t addr, unsigned len); |
| 36 | void flash_sector_erase(uint32_t addr); |