1 /* 2 * Copyright (c) 2025 Croxel Inc. 3 * Copyright (c) 2025 CogniPilot Foundation 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 */ 7 8 #ifndef ZEPHYR_DRIVERS_SENSOR_PAA3905_REG_H_ 9 #define ZEPHYR_DRIVERS_SENSOR_PAA3905_REG_H_ 10 11 #define REG_SPI_READ_BIT 0 12 #define REG_SPI_WRITE_BIT BIT(7) 13 14 /* Registers */ 15 #define REG_PRODUCT_ID 0x00 16 #define REG_MOTION 0x02 17 #define REG_DELTA_X_L 0x03 18 #define REG_DELTA_X_H 0x04 19 #define REG_DELTA_Y_L 0x05 20 #define REG_DELTA_Y_H 0x06 21 #define REG_BURST_READ 0x16 22 #define REG_POWER_UP_RESET 0x3A 23 #define REG_RESOLUTION 0x4E 24 25 /* Misc. Defines */ 26 #define PRODUCT_ID 0xA2 27 #define POWER_UP_RESET_VAL 0x5A 28 29 #define REG_MOTION_DETECTED(val) ((val) & BIT(7)) 30 #define REG_MOTION_CHALLENGING_COND(val) ((val) & BIT(0)) 31 32 #define REG_OBSERVATION_MODE(val) (((val) & (BIT(7) | BIT(6))) >> 6) 33 #define REG_OBSERVATION_CHIP_OK(val) (((val) & BIT_MASK(6)) == 0x3F) 34 35 #define OBSERVATION_MODE_BRIGHT 0 36 #define OBSERVATION_MODE_LOW_LIGHT 1 37 #define OBSERVATION_MODE_SUPER_LOW_LIGHT 2 38 39 /* Data validation boundaries */ 40 #define SQUAL_MIN_BRIGHT 0x19 41 #define SHUTTER_MAX_BRIGHT 0x00FF80 42 43 #define SQUAL_MIN_LOW_LIGHT 0x46 44 #define SHUTTER_MAX_LOW_LIGHT 0x00FF80 45 46 #define SQUAL_MIN_SUPER_LOW_LIGHT 0x55 47 #define SHUTTER_MAX_SUPER_LOW_LIGHT 0x025998 48 49 50 #endif /* ZEPHYR_DRIVERS_SENSOR_PAA3905_REG_H_ */ 51