From d9cba6e978b60d67b00b5f868cf321d2d48e5fc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Mart=C3=ADnez?= <58857054+elpekenin@users.noreply.github.com> Date: Sat, 10 Dec 2022 03:18:40 +0100 Subject: Add `*_RIGHT` configuration for PMW33XX driver (#19243) --- drivers/sensors/pmw33xx_common.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'drivers/sensors/pmw33xx_common.h') diff --git a/drivers/sensors/pmw33xx_common.h b/drivers/sensors/pmw33xx_common.h index c725e80f24..88523b8420 100644 --- a/drivers/sensors/pmw33xx_common.h +++ b/drivers/sensors/pmw33xx_common.h @@ -1,3 +1,4 @@ +// Copyright 2022 Pablo Martinez (@elpekenin) // Copyright 2022 Daniel Kao (dkao) // Copyright 2022 Stefan Kerkmann (KarlK90) // Copyright 2022 Ulrich Spörlein (@uqs) @@ -9,6 +10,7 @@ #pragma once +#include "quantum.h" //to get is_keyboard_left #include #include "spi_master.h" #include "util.h" @@ -79,6 +81,20 @@ _Static_assert(sizeof((pmw33xx_report_t){0}.motion) == 1, "pmw33xx_report_t.moti # endif #endif +// Support single spelling and default to be the same as left side +#if !defined(PMW33XX_CS_PINS_RIGHT) +# if !defined(PMW33XX_CS_PIN_RIGHT) +# define PMW33XX_CS_PIN_RIGHT PMW33XX_CS_PIN +# endif +# define PMW33XX_CS_PINS_RIGHT \ + { PMW33XX_CS_PIN_RIGHT } +#endif + +// Defines so the old variable names are swapped by the appropiate value on each half +#define cs_pins (is_keyboard_left() ? cs_pins_left : cs_pins_right) +#define in_burst (is_keyboard_left() ? in_burst_left : in_burst_right) +#define pmw33xx_number_of_sensors (is_keyboard_left() ? ARRAY_SIZE((pin_t[])PMW33XX_CS_PINS) : ARRAY_SIZE((pin_t[])PMW33XX_CS_PINS_RIGHT)) + #if PMW33XX_CPI > PMW33XX_CPI_MAX || PMW33XX_CPI < PMW33XX_CPI_MIN || (PMW33XX_CPI % PMW33XX_CPI_STEP) != 0U # pragma message "PMW33XX_CPI has to be in the range of " STR(PMW33XX_CPI_MAX) "-" STR(PMW33XX_CPI_MIN) " in increments of " STR(PMW33XX_CPI_STEP) ". But it is " STR(PMW33XX_CPI) "." # error Use correct PMW33XX_CPI value. -- cgit v1.2.3