 68a3f6b4b7
			
		
	
	
		68a3f6b4b7
		
			
		
	
	
	
	
		
			
			* Add F5 target, lp5562 driver and api-hal-light. Update api-usage, switch to F5 by default. * API HAL: add i2c and hardware version api. Dolphin: show hardware version. * OTP version generator and flashing utility. * Assets script: fix code formatting * Backport F5 changes to F4 * F4: disable insomnia, prevent damage to BLE RX path * F5 HAL API Light: remove magic delay to fix magic BLE * Dolphin: HW target validation on start * invert RSSI indication in sub-1 * API HAL: rename board to body in version api * Gpio tester: detach and release viewport on exit Co-authored-by: aanper <mail@s3f.ru>
		
			
				
	
	
		
			87 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #if BITS_BIG_ENDIAN == 1
 | |
| #error Bit structures defined in this file is not portable to BE
 | |
| #endif
 | |
| 
 | |
| #define LP5562_ADDRESS 0x60
 | |
| 
 | |
| typedef enum {
 | |
|     EngExecHold=0b00,
 | |
|     EngExecStep=0b01,
 | |
|     EngExecRun=0b10,
 | |
|     EngExecPC=0b11,
 | |
| } EngExec;
 | |
| 
 | |
| typedef struct {
 | |
|     EngExec ENG3_EXEC:2;
 | |
|     EngExec ENG2_EXEC:2;
 | |
|     EngExec ENG1_EXEC:2;
 | |
|     bool CHIP_EN:1;
 | |
|     bool LOG_EN:1;
 | |
| } Reg00_Enable;
 | |
| 
 | |
| typedef enum {
 | |
|     EngModeDisable=0b00,
 | |
|     EngModeLoad=0b01,
 | |
|     EngModeRun=0b10,
 | |
|     EngModeDirect=0b11,
 | |
| } EngMode;
 | |
| 
 | |
| typedef struct {
 | |
|     EngMode ENG3_MODE:2;
 | |
|     EngMode ENG2_MODE:2;
 | |
|     EngMode ENG1_MODE:2;
 | |
|     uint8_t reserved:2;
 | |
| } Reg01_OpMode;
 | |
| 
 | |
| typedef struct {
 | |
|     bool INT_CLK_EN:1;
 | |
|     bool CLK_DET_EN:1;
 | |
|     uint8_t reserved0:3;
 | |
|     bool PS_EN:1;
 | |
|     bool PWM_HF:1;
 | |
|     uint8_t reserved1:1;
 | |
| } Reg08_Config;
 | |
| 
 | |
| typedef struct {
 | |
|     uint8_t pc:3;
 | |
|     uint8_t reserved:5;
 | |
| } Reg09_Engine1PC;
 | |
| 
 | |
| typedef struct {
 | |
|     uint8_t pc:3;
 | |
|     uint8_t reserved:5;
 | |
| } Reg0A_Engine2PC;
 | |
| 
 | |
| typedef struct {
 | |
|     uint8_t pc:3;
 | |
|     uint8_t reserved:5;
 | |
| } Reg0B_Engine3PC;
 | |
| 
 | |
| typedef struct {
 | |
|     bool ENG3_INT:1;
 | |
|     bool ENG2_INT:1;
 | |
|     bool ENG1_INT:1;
 | |
|     bool EXT_CLK_USED:1;
 | |
|     uint8_t reserved:5;
 | |
| } Reg0C_Status;
 | |
| 
 | |
| typedef struct {
 | |
|     uint8_t value;
 | |
| } Reg0D_Reset;
 | |
| 
 | |
| typedef enum {
 | |
|     EngSelectI2C=0b00,
 | |
|     EngSelectEngine1=0b01,
 | |
|     EngSelectEngine2=0b10,
 | |
|     EngSelectEngine3=0b11,
 | |
| } EngSelect;
 | |
| 
 | |
| typedef struct {
 | |
|     EngSelect blue:2;
 | |
|     EngSelect green:2;
 | |
|     EngSelect red:2;
 | |
|     EngSelect white:2;
 | |
| } Reg70_LedMap;
 |