summaryrefslogtreecommitdiff
path: root/drivers/sensors/adns9800.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/sensors/adns9800.h')
-rw-r--r--drivers/sensors/adns9800.h42
1 files changed, 36 insertions, 6 deletions
diff --git a/drivers/sensors/adns9800.h b/drivers/sensors/adns9800.h
index d19ded4012..e75a869c03 100644
--- a/drivers/sensors/adns9800.h
+++ b/drivers/sensors/adns9800.h
@@ -18,18 +18,48 @@
#include <stdint.h>
+#ifndef ADNS9800_CPI
+# define ADNS9800_CPI 1600
+#endif
+
+#ifndef ADNS9800_CLOCK_SPEED
+# define ADNS9800_CLOCK_SPEED 2000000
+#endif
+
+#ifndef ADNS9800_SPI_LSBFIRST
+# define ADNS9800_SPI_LSBFIRST false
+#endif
+
+#ifndef ADNS9800_SPI_MODE
+# define ADNS9800_SPI_MODE 3
+#endif
+
+#ifndef ADNS9800_SPI_DIVISOR
+# ifdef __AVR__
+# define ADNS9800_SPI_DIVISOR (F_CPU / ADNS9800_CLOCK_SPEED)
+# else
+# define ADNS9800_SPI_DIVISOR 64
+# endif
+#endif
+
+#ifndef ADNS9800_CS_PIN
+# error "No chip select pin defined -- missing ADNS9800_CS_PIN"
+#endif
+
typedef struct {
/* 200 - 8200 CPI supported */
uint16_t cpi;
-} config_adns_t;
+} config_adns9800_t;
typedef struct {
int16_t x;
int16_t y;
-} report_adns_t;
+} report_adns9800_t;
-void adns_init(void);
-config_adns_t adns_get_config(void);
-void adns_set_config(config_adns_t);
+void adns9800_init(void);
+config_adns9800_t adns9800_get_config(void);
+void adns9800_set_config(config_adns9800_t);
+uint16_t adns9800_get_cpi(void);
+void adns9800_set_cpi(uint16_t cpi);
/* Reads and clears the current delta values on the ADNS sensor */
-report_adns_t adns_get_report(void);
+report_adns9800_t adns9800_get_report(void);