pmw3389.h (2878B)
1 // Copyright 2022 Stefan Kerkmann (KarlK90) 2 // Copyright 2021 Alabastard (@Alabastard-64) 3 // Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com> 4 // Copyright 2019 Sunjun Kim 5 // Copyright 2020 Ploopy Corporation 6 // SPDX-License-Identifier: GPL-2.0-or-later 7 8 #pragma once 9 10 #include <stdint.h> 11 12 #if !defined(PMW33XX_CPI) 13 # define PMW33XX_CPI 2000 14 #endif 15 16 #define PMW33XX_CPI_STEP 50 17 #define PMW33XX_CPI_MIN 50 18 #define PMW33XX_CPI_MAX 16000 19 20 // PMW3389 register addresses 21 // clang-format off 22 #define REG_Product_ID 0x00 23 #define REG_Revision_ID 0x01 24 #define REG_Motion 0x02 25 #define REG_Delta_X_L 0x03 26 #define REG_Delta_X_H 0x04 27 #define REG_Delta_Y_L 0x05 28 #define REG_Delta_Y_H 0x06 29 #define REG_SQUAL 0x07 30 #define REG_RawData_Sum 0x08 31 #define REG_Maximum_RawData 0x09 32 #define REG_Minimum_RawData 0x0a 33 #define REG_Shutter_Lower 0x0b 34 #define REG_Shutter_Upper 0x0c 35 #define REG_Ripple_Control 0x0d 36 #define REG_Resolution_L 0x0e 37 #define REG_Resolution_H 0x0f 38 #define REG_Config2 0x10 39 #define REG_Angle_Tune 0x11 40 #define REG_Frame_Capture 0x12 41 #define REG_SROM_Enable 0x13 42 #define REG_Run_Downshift 0x14 43 #define REG_Rest1_Rate_Lower 0x15 44 #define REG_Rest1_Rate_Upper 0x16 45 #define REG_Rest1_Downshift 0x17 46 #define REG_Rest2_Rate_Lower 0x18 47 #define REG_Rest2_Rate_Upper 0x19 48 #define REG_Rest2_Downshift 0x1a 49 #define REG_Rest3_Rate_Lower 0x1b 50 #define REG_Rest3_Rate_Upper 0x1c 51 #define REG_Observation 0x24 52 #define REG_Data_Out_Lower 0x25 53 #define REG_Data_Out_Upper 0x26 54 #define REG_SROM_ID 0x2a 55 #define REG_Min_SQ_Run 0x2b 56 #define REG_RawData_Threshold 0x2c 57 #define REG_Control2 0x2d 58 #define REG_Config5_L 0x2e 59 #define REG_Config5_H 0x2f 60 #define REG_Power_Up_Reset 0X3a 61 #define REG_Shutdown 0x3b 62 #define REG_Inverse_Product_ID 0x3f 63 #define REG_LiftCutoff_Cal3 0x41 64 #define REG_Angle_Snap 0x42 65 #define REG_LiftCutoff_Cal1 0x4a 66 #define REG_Motion_Burst 0x50 67 #define REG_SROM_Load_Burst 0x62 68 #define REG_Lift_Config 0x63 69 #define REG_RawData_Burst 0x64 70 #define REG_LiftCutoff_Cal2 0x65 71 #define REG_LiftCutoff_Cal_Timeout 0x71 72 #define REG_LiftCutoff_Cal_Min_Length 0x72 73 #define REG_PWM_Period_Cnt 0x73 74 #define REG_PWM_Width_Cnt 0x74 75 // clang-format on