~ruther/qmk_firmware

a8482a4424ee3035d2a7487ea8d0de8684d3918f — Alabastard-64 3 years ago bd2af5c
PMW3389 Revert Firmware load during Initilization (#15859)

2 files changed, 2 insertions(+), 5 deletions(-)

M docs/feature_pointing_device.md
M drivers/sensors/pmw3389.c
M docs/feature_pointing_device.md => docs/feature_pointing_device.md +0 -1
@@ 174,7 174,6 @@ The PMW 3389 is an SPI driven optical sensor, that uses a built in IR LED for su
|`PMW3389_SPI_DIVISOR`            | (Optional) Sets the SPI Divisor used for SPI communication.                                | _varies_      |
|`PMW3389_LIFTOFF_DISTANCE`       | (Optional) Sets the lift off distance at run time                                          | `0x02`        |
|`ROTATIONAL_TRANSFORM_ANGLE`     | (Optional) Allows for the sensor data to be rotated +/- 30 degrees directly in the sensor. | `0`           |
|`PMW3389_LEGACY_FIRMWARE_UPLOAD` | (Optional) Switches to older, manual upload of firmware, for compatibility.                | _not defined_ |

The CPI range is 50-16000, in increments of 50. Defaults to 2000 CPI.


M drivers/sensors/pmw3389.c => drivers/sensors/pmw3389.c +2 -4
@@ 210,16 210,14 @@ void pmw3389_upload_firmware(void) {
    spi_write(REG_SROM_Load_Burst | 0x80);
    wait_us(15);

#ifdef PMW3389_LEGACY_FIRMWARE_UPLOAD
    // legacy only for PMW3389 spi_transmit failed to load firmware
    unsigned char c;
    for (int i = 0; i < FIRMWARE_LENGTH; i++) {
        c = (unsigned char)pgm_read_byte(firmware_data + i);
        spi_write(c);
        wait_us(15);
    }
#else
    spi_transmit(firmware_data, sizeof(firmware_data));
#endif

    wait_us(200);

    pmw3389_read(REG_SROM_ID);