* 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;
 |