~ruther/qmk_firmware

86f073a8eaaa58648ca9168cc9ca318e76041c49 — Dasky 1 year, 6 months ago ce81801
Add basic presence check for cirque trackpad.  (#22546)

2 files changed, 18 insertions(+), 6 deletions(-)

M docs/feature_pointing_device.md
M drivers/sensors/cirque_pinnacle.c
M docs/feature_pointing_device.md => docs/feature_pointing_device.md +7 -6
@@ 177,12 177,13 @@ This supports the Cirque Pinnacle 1CA027 Touch Controller, which is used in the 

#### Common settings

| Setting                          | Description                                                | Default                                     |
| -------------------------------- | ---------------------------------------------------------- | ------------------------------------------- |
| `CIRQUE_PINNACLE_DIAMETER_MM`    | (Optional) Diameter of the trackpad sensor in millimeters. | `40`                                        |
| `CIRQUE_PINNACLE_ATTENUATION`    | (Optional) Sets the attenuation of the sensor data.        | `EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_4X` |
| `CIRQUE_PINNACLE_CURVED_OVERLAY` | (Optional) Applies settings tuned for curved overlay.      | _not defined_                               |
| `CIRQUE_PINNACLE_POSITION_MODE`  | (Optional) Mode of operation.                              | _not defined_                               |
| Setting                              | Description                                                | Default                                     |
| ------------------------------------ | ---------------------------------------------------------- | ------------------------------------------- |
| `CIRQUE_PINNACLE_DIAMETER_MM`        | (Optional) Diameter of the trackpad sensor in millimeters. | `40`                                        |
| `CIRQUE_PINNACLE_ATTENUATION`        | (Optional) Sets the attenuation of the sensor data.        | `EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_4X` |
| `CIRQUE_PINNACLE_CURVED_OVERLAY`     | (Optional) Applies settings tuned for curved overlay.      | _not defined_                               |
| `CIRQUE_PINNACLE_POSITION_MODE`      | (Optional) Mode of operation.                              | _not defined_                               |
| `CIRQUE_PINNACLE_SKIP_SENSOR_CHECK`  | (Optional) Skips sensor presence check                     | _not defined_                               |

**`CIRQUE_PINNACLE_ATTENUATION`** is a measure of how much data is suppressed in regards to sensitivity. The higher the attenuation, the less sensitive the touchpad will be.


M drivers/sensors/cirque_pinnacle.c => drivers/sensors/cirque_pinnacle.c +11 -0
@@ 216,6 216,13 @@ void cirque_pinnacle_cursor_smoothing(bool enable) {
    RAP_Write(HOSTREG__FEEDCONFIG3, feedconfig3);
}

// Check sensor is connected
bool cirque_pinnacle_connected(void) {
    uint8_t zidle = 0;
    RAP_ReadBytes(HOSTREG__ZIDLE, &zidle, 1);
    return zidle == HOSTREG__ZIDLE_DEFVAL;
}

/*  Pinnacle-based TM040040/TM035035/TM023023 Functions  */
void cirque_pinnacle_init(void) {
#if defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi)


@@ 274,6 281,10 @@ void cirque_pinnacle_init(void) {
    }

    cirque_pinnacle_enable_feed(true);

#ifndef CIRQUE_PINNACLE_SKIP_SENSOR_CHECK
    touchpad_init = cirque_pinnacle_connected();
#endif
}

pinnacle_data_t cirque_pinnacle_read_data(void) {

Do not follow this link