diff options
Diffstat (limited to 'drivers/sensors/paw3204.c')
-rw-r--r-- | drivers/sensors/paw3204.c | 16 |
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) { |