diff options
| author | Dasky <[email protected]> | 2024-06-27 05:10:13 +0100 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2024-06-27 05:10:13 +0100 | 
| commit | a7aa58cc8130b9c59bc39f41e33d9387a46b1e8c (patch) | |
| tree | d3b12e2b95c7802f72e75ad174a51762516feeae | |
| parent | 276ecd4693e630b876558f96106f019d83502604 (diff) | |
| download | qmk_firmware-a7aa58cc8130b9c59bc39f41e33d9387a46b1e8c.tar.gz qmk_firmware-a7aa58cc8130b9c59bc39f41e33d9387a46b1e8c.zip | |
Change ADNS9800 and PMW33XX SROM uploads to opt in. (#24001)
Make SROM upload optional
| -rw-r--r-- | drivers/sensors/adns9800.c | 11 | ||||
| -rw-r--r-- | drivers/sensors/pmw33xx_common.c | 4 | 
2 files changed, 14 insertions, 1 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); diff --git a/drivers/sensors/pmw33xx_common.c b/drivers/sensors/pmw33xx_common.c index 82a7ec3297..f1f2d0e865 100644 --- a/drivers/sensors/pmw33xx_common.c +++ b/drivers/sensors/pmw33xx_common.c @@ -154,10 +154,12 @@ bool pmw33xx_init(uint8_t sensor) {      pmw33xx_read(sensor, REG_Delta_Y_L);      pmw33xx_read(sensor, REG_Delta_Y_H); +#ifdef PMW33XX_UPLOAD_SROM      if (!pmw33xx_upload_firmware(sensor)) {          pd_dprintf("PMW33XX (%d): firmware upload failed!\n", sensor);          return false;      } +#endif      spi_stop(); @@ -200,7 +202,7 @@ pmw33xx_report_t pmw33xx_read_burst(uint8_t sensor) {      spi_write(REG_Motion_Burst);      wait_us(35); // waits for tSRAD_MOTBR -    spi_receive((uint8_t*)&report, sizeof(report)); +    spi_receive((uint8_t *)&report, sizeof(report));      // panic recovery, sometimes burst mode works weird.      if (report.motion.w & 0b111) { | 
