aboutsummaryrefslogtreecommitdiff
path: root/drivers/sensors/paw3204.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/sensors/paw3204.c')
-rw-r--r--drivers/sensors/paw3204.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/sensors/paw3204.c b/drivers/sensors/paw3204.c
index 475821f175..228b7fa986 100644
--- a/drivers/sensors/paw3204.c
+++ b/drivers/sensors/paw3204.c
@@ -58,7 +58,15 @@ const pointing_device_driver_t paw3204_pointing_device_driver = {
.get_cpi = paw3204_get_cpi,
};
-void paw3204_init(void) {
+uint8_t read_pid_paw3204(void) {
+ return paw3204_read_reg(REG_PID1);
+}
+
+bool __attribute__((weak)) paw3204_check_signature(void) {
+ return (read_pid_paw3204() == 0x30);
+}
+
+bool paw3204_init(void) {
gpio_set_pin_output(PAW3204_SCLK_PIN); // setclockpin to output
gpio_set_pin_input_high(PAW3204_SDIO_PIN); // set datapin input high
@@ -69,6 +77,8 @@ void paw3204_init(void) {
paw3204_read_reg(0x01); // read id2
// PAW3204_write_reg(REG_SETUP,0x06); // dont reset sensor and set cpi 1600
paw3204_write_reg(REG_IMGTRASH, 0x32); // write image trashhold
+
+ return paw3204_check_signature();
}
uint8_t paw3204_serial_read(void) {
@@ -175,10 +185,6 @@ uint16_t paw3204_get_cpi(void) {
return cpival;
}
-uint8_t read_pid_paw3204(void) {
- return paw3204_read_reg(REG_PID1);
-}
-
report_mouse_t paw3204_get_report(report_mouse_t mouse_report) {
report_paw3204_t data = paw3204_read();
if (data.isMotion) {