 37fb330b36
			
		
	
	
		37fb330b36
		
			
		
	
	
	
	
		
			
			* Improve RNG error handling * Sync RTC shadow registers on Stop mode exit * Implement working STOP2 mode * Fix formatting * FuriHal: disable SWD pins if debug is disabled * Power: cleanup battery info view, handle zero current report from gauge * Fbt: add command line argument for extra global defines * FuriHal: cleanup debug defines in power and os, drop deep_insomnia counter. * Add a setting to disable deep sleep * Clean up furi_hal_power * FuriHal,FapLoader,Debug: implement debug in stop mode, workaround resume in stop * FuriHal: document OS and power subsystems debugging * Furi: enable debug interface on crash --------- Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
		
			
				
	
	
		
			127 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <furi.h>
 | |
| 
 | |
| #include <stm32wbxx.h>
 | |
| #include <stm32wbxx_ll_gpio.h>
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /* Input Related Constants */
 | |
| #define INPUT_DEBOUNCE_TICKS 4
 | |
| 
 | |
| /* Input Keys */
 | |
| typedef enum {
 | |
|     InputKeyUp,
 | |
|     InputKeyDown,
 | |
|     InputKeyRight,
 | |
|     InputKeyLeft,
 | |
|     InputKeyOk,
 | |
|     InputKeyBack,
 | |
|     InputKeyMAX, /**< Special value */
 | |
| } InputKey;
 | |
| 
 | |
| /* Light */
 | |
| typedef enum {
 | |
|     LightRed = (1 << 0),
 | |
|     LightGreen = (1 << 1),
 | |
|     LightBlue = (1 << 2),
 | |
|     LightBacklight = (1 << 3),
 | |
| } Light;
 | |
| 
 | |
| typedef struct {
 | |
|     const GpioPin* gpio;
 | |
|     const InputKey key;
 | |
|     const bool inverted;
 | |
|     const char* name;
 | |
| } InputPin;
 | |
| 
 | |
| typedef struct {
 | |
|     const GpioPin* pin;
 | |
|     const char* name;
 | |
|     const bool debug;
 | |
| } GpioPinRecord;
 | |
| 
 | |
| extern const InputPin input_pins[];
 | |
| extern const size_t input_pins_count;
 | |
| 
 | |
| extern const GpioPinRecord gpio_pins[];
 | |
| extern const size_t gpio_pins_count;
 | |
| 
 | |
| extern const GpioPin gpio_swdio;
 | |
| extern const GpioPin gpio_swclk;
 | |
| 
 | |
| extern const GpioPin gpio_vibro;
 | |
| extern const GpioPin gpio_ibutton;
 | |
| 
 | |
| extern const GpioPin gpio_display_cs;
 | |
| extern const GpioPin gpio_display_rst_n;
 | |
| extern const GpioPin gpio_display_di;
 | |
| extern const GpioPin gpio_sdcard_cs;
 | |
| extern const GpioPin gpio_sdcard_cd;
 | |
| 
 | |
| extern const GpioPin gpio_button_up;
 | |
| extern const GpioPin gpio_button_down;
 | |
| extern const GpioPin gpio_button_right;
 | |
| extern const GpioPin gpio_button_left;
 | |
| extern const GpioPin gpio_button_ok;
 | |
| extern const GpioPin gpio_button_back;
 | |
| 
 | |
| extern const GpioPin gpio_spi_d_miso;
 | |
| extern const GpioPin gpio_spi_d_mosi;
 | |
| extern const GpioPin gpio_spi_d_sck;
 | |
| 
 | |
| extern const GpioPin gpio_ext_pc0;
 | |
| extern const GpioPin gpio_ext_pc1;
 | |
| extern const GpioPin gpio_ext_pc3;
 | |
| extern const GpioPin gpio_ext_pb2;
 | |
| extern const GpioPin gpio_ext_pb3;
 | |
| extern const GpioPin gpio_ext_pa4;
 | |
| extern const GpioPin gpio_ext_pa6;
 | |
| extern const GpioPin gpio_ext_pa7;
 | |
| 
 | |
| extern const GpioPin gpio_ext_pc5;
 | |
| extern const GpioPin gpio_ext_pc4;
 | |
| extern const GpioPin gpio_ext_pa5;
 | |
| extern const GpioPin gpio_ext_pb9;
 | |
| extern const GpioPin gpio_ext_pa0;
 | |
| extern const GpioPin gpio_ext_pa1;
 | |
| extern const GpioPin gpio_ext_pa15;
 | |
| extern const GpioPin gpio_ext_pe4;
 | |
| extern const GpioPin gpio_ext_pa2;
 | |
| extern const GpioPin gpio_ext_pb4;
 | |
| extern const GpioPin gpio_ext_pb5;
 | |
| extern const GpioPin gpio_ext_pd0;
 | |
| extern const GpioPin gpio_ext_pb13;
 | |
| 
 | |
| extern const GpioPin gpio_usart_tx;
 | |
| extern const GpioPin gpio_usart_rx;
 | |
| extern const GpioPin gpio_i2c_power_sda;
 | |
| extern const GpioPin gpio_i2c_power_scl;
 | |
| 
 | |
| extern const GpioPin gpio_speaker;
 | |
| 
 | |
| extern const GpioPin gpio_periph_power;
 | |
| 
 | |
| extern const GpioPin gpio_usb_dm;
 | |
| extern const GpioPin gpio_usb_dp;
 | |
| 
 | |
| void furi_hal_resources_init_early();
 | |
| 
 | |
| void furi_hal_resources_deinit_early();
 | |
| 
 | |
| void furi_hal_resources_init();
 | |
| 
 | |
| /**
 | |
|  * Get a corresponding external connector pin number for a gpio
 | |
|  * @param gpio GpioPin
 | |
|  * @return pin number or -1 if gpio is not on the external connector
 | |
|  */
 | |
| int32_t furi_hal_resources_get_ext_pin_number(const GpioPin* gpio);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 |