* FuriHal: port spi to ll. Bootloader: add spi and display. * Makefile: rollback disabled freertos introspection * FuriHal: spi lock asserts. F6: minor cleanup port sdcard shenanigans to furi_hal_gpio. * SdCard: port missing bits to furi-hal-gpio * FuriHal: fix broken RX in SPI, update SPI API usage. RFAL: more asserts in SPI platform code. * GUI: clear canvas on start. FuriHal: no pullup on radio spi bus. * FuriHal: use check instead of assert in spi lock routines * FuriHal: remove timeouts * SdHal: add guard time to SDCARD CS PIN control. * FuriHal: proper name for SPI device reconfigure routine. SdHal: one more enterprise delay and better documentation. * Bootloader: update DFU text and add image. * FuriHal: drop unused ST HAL modules. * SdHal: fixed swapped hal_gpio_init_ex arguments * SpiHal: fixed swapped hal_gpio_init_ex arguments * IrdaHal: use hal_gpio_init instead of hal_gpio_init_ex * RfidHal: fixed swapped hal_gpio_init_ex arguments Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include <furi-hal-gpio.h>
 | 
						|
#include <stm32wbxx_ll_spi.h>
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
extern const LL_SPI_InitTypeDef furi_hal_spi_config_nfc;
 | 
						|
extern const LL_SPI_InitTypeDef furi_hal_spi_config_subghz;
 | 
						|
extern const LL_SPI_InitTypeDef furi_hal_spi_config_display;
 | 
						|
extern const LL_SPI_InitTypeDef furi_hal_spi_config_sd_fast;
 | 
						|
extern const LL_SPI_InitTypeDef furi_hal_spi_config_sd_slow;
 | 
						|
 | 
						|
/** FURI HAL SPI BUS handler
 | 
						|
 * Structure content may change at some point
 | 
						|
 */
 | 
						|
typedef struct {
 | 
						|
    const SPI_TypeDef* spi;
 | 
						|
    const GpioPin* miso;
 | 
						|
    const GpioPin* mosi;
 | 
						|
    const GpioPin* clk;
 | 
						|
} FuriHalSpiBus;
 | 
						|
 | 
						|
/** FURI HAL SPI Device handler
 | 
						|
 * Structure content may change at some point
 | 
						|
 */
 | 
						|
typedef struct {
 | 
						|
    const FuriHalSpiBus* bus;
 | 
						|
    const LL_SPI_InitTypeDef* config;
 | 
						|
    const GpioPin* chip_select;
 | 
						|
} FuriHalSpiDevice;
 | 
						|
 | 
						|
/** FURI HAL SPI Standard Device IDs */
 | 
						|
typedef enum {
 | 
						|
    FuriHalSpiDeviceIdSubGhz, /** SubGhz: CC1101, non-standard SPI usage */
 | 
						|
    FuriHalSpiDeviceIdDisplay, /** Display: ERC12864, only have MOSI */
 | 
						|
    FuriHalSpiDeviceIdSdCardFast, /** SDCARD: fast mode, after initialization */
 | 
						|
    FuriHalSpiDeviceIdSdCardSlow, /** SDCARD: slow mode, before initialization */
 | 
						|
    FuriHalSpiDeviceIdNfc, /** NFC: ST25R3916, pretty standard, but RFAL makes it complex */
 | 
						|
 | 
						|
    FuriHalSpiDeviceIdMax, /** Service Value, do not use */
 | 
						|
} FuriHalSpiDeviceId;
 | 
						|
 | 
						|
/** Furi Hal Spi Bus R
 | 
						|
 * CC1101, Nfc
 | 
						|
 */
 | 
						|
extern const FuriHalSpiBus spi_r;
 | 
						|
 | 
						|
/** Furi Hal Spi Bus D
 | 
						|
 * Display, SdCard
 | 
						|
 */
 | 
						|
extern const FuriHalSpiBus spi_d;
 | 
						|
 | 
						|
/** Furi Hal Spi devices */
 | 
						|
extern const FuriHalSpiDevice furi_hal_spi_devices[FuriHalSpiDeviceIdMax];
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif |