aboutsummaryrefslogtreecommitdiff
path: root/drivers/sensors/adns9800.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/sensors/adns9800.c')
-rw-r--r--drivers/sensors/adns9800.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/sensors/adns9800.c b/drivers/sensors/adns9800.c
index f34529ee90..0ba26a365a 100644
--- a/drivers/sensors/adns9800.c
+++ b/drivers/sensors/adns9800.c
@@ -115,6 +115,7 @@ void adns9800_init(void) {
adns9800_read(REG_Delta_Y_L);
adns9800_read(REG_Delta_Y_H);
+#ifdef ADNS9800_UPLOAD_SROM
// upload firmware
// 3k firmware mode
@@ -145,6 +146,16 @@ void adns9800_init(void) {
spi_stop();
wait_ms(10);
+#else
+ // write reset value to REG_Configuration_IV
+ adns9800_write(REG_Configuration_IV, 0x0);
+
+ // write reset value to REG_SROM_Enable
+ adns9800_write(REG_SROM_Enable, 0x0);
+
+ // wait a frame
+ wait_ms(10);
+#endif
// enable laser
uint8_t laser_ctrl0 = adns9800_read(REG_LASER_CTRL0);