summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/Bma421.cpp4
-rw-r--r--src/drivers/Cst816s.cpp18
-rw-r--r--src/drivers/Cst816s.h2
-rw-r--r--src/drivers/DebugPins.cpp2
-rw-r--r--src/drivers/Hrs3300.cpp14
-rw-r--r--src/drivers/Hrs3300.h6
-rw-r--r--src/drivers/InternalFlash.cpp2
-rw-r--r--src/drivers/PinMap.h1
-rw-r--r--src/drivers/Spi.cpp2
-rw-r--r--src/drivers/Spi.h2
-rw-r--r--src/drivers/SpiMaster.cpp2
-rw-r--r--src/drivers/SpiNorFlash.cpp4
-rw-r--r--src/drivers/St7789.cpp4
-rw-r--r--src/drivers/TwiMaster.cpp2
-rw-r--r--src/drivers/Watchdog.cpp2
15 files changed, 31 insertions, 36 deletions
diff --git a/src/drivers/Bma421.cpp b/src/drivers/Bma421.cpp
index dd284000..2f60f42f 100644
--- a/src/drivers/Bma421.cpp
+++ b/src/drivers/Bma421.cpp
@@ -1,7 +1,7 @@
+#include "drivers/Bma421.h"
#include <libraries/delay/nrf_delay.h>
#include <libraries/log/nrf_log.h>
-#include "Bma421.h"
-#include "TwiMaster.h"
+#include "drivers/TwiMaster.h"
#include <drivers/Bma421_C/bma423.h>
using namespace Pinetime::Drivers;
diff --git a/src/drivers/Cst816s.cpp b/src/drivers/Cst816s.cpp
index 4aac19f9..e9573df1 100644
--- a/src/drivers/Cst816s.cpp
+++ b/src/drivers/Cst816s.cpp
@@ -1,4 +1,4 @@
-#include "Cst816s.h"
+#include "drivers/Cst816s.h"
#include <FreeRTOS.h>
#include <legacy/nrf_drv_gpiote.h>
#include <nrfx_log.h>
@@ -32,17 +32,11 @@ bool Cst816S::Init() {
twiMaster.Read(twiAddress, 0xa7, &dummy, 1);
vTaskDelay(5);
- static constexpr uint8_t maxRetries = 3;
- bool isDeviceOk;
- uint8_t retries = 0;
- do {
- isDeviceOk = CheckDeviceIds();
- retries++;
- } while (!isDeviceOk && retries < maxRetries);
-
- if (!isDeviceOk) {
- return false;
- }
+ // TODO This function check that the device IDs from the controller are equal to the ones
+ // we expect. However, it seems to return false positive (probably in case of communication issue).
+ // Also, it seems that some users have pinetimes that works correctly but that report different device IDs
+ // Until we know more about this, we'll just read the IDs but not take any action in case they are not 'valid'
+ CheckDeviceIds();
/*
[2] EnConLR - Continuous operation can slide around
diff --git a/src/drivers/Cst816s.h b/src/drivers/Cst816s.h
index 507dd4f5..4a548d45 100644
--- a/src/drivers/Cst816s.h
+++ b/src/drivers/Cst816s.h
@@ -1,6 +1,6 @@
#pragma once
-#include "TwiMaster.h"
+#include "drivers/TwiMaster.h"
namespace Pinetime {
namespace Drivers {
diff --git a/src/drivers/DebugPins.cpp b/src/drivers/DebugPins.cpp
index 56fd1458..92091280 100644
--- a/src/drivers/DebugPins.cpp
+++ b/src/drivers/DebugPins.cpp
@@ -1,4 +1,4 @@
-#include "DebugPins.h"
+#include "drivers/DebugPins.h"
#include <hal/nrf_gpio.h>
#ifdef USE_DEBUG_PINS
diff --git a/src/drivers/Hrs3300.cpp b/src/drivers/Hrs3300.cpp
index edb9e81d..ec620af2 100644
--- a/src/drivers/Hrs3300.cpp
+++ b/src/drivers/Hrs3300.cpp
@@ -4,9 +4,9 @@
C++ port Copyright (C) 2021 Jean-François Milants
*/
+#include "drivers/Hrs3300.h"
#include <algorithm>
#include <nrf_gpio.h>
-#include "Hrs3300.h"
#include <FreeRTOS.h>
#include <task.h>
@@ -36,8 +36,8 @@ void Hrs3300::Init() {
// HRS and ALS both in 16-bit mode
WriteRegister(static_cast<uint8_t>(Registers::Res), 0x88);
- // 64x gain
- WriteRegister(static_cast<uint8_t>(Registers::Hgain), 0x10);
+ // 8x gain, non default, reduced value for better readings
+ WriteRegister(static_cast<uint8_t>(Registers::Hgain), 0xc);
}
void Hrs3300::Enable() {
@@ -54,18 +54,18 @@ void Hrs3300::Disable() {
WriteRegister(static_cast<uint8_t>(Registers::Enable), value);
}
-uint16_t Hrs3300::ReadHrs() {
+uint32_t Hrs3300::ReadHrs() {
auto m = ReadRegister(static_cast<uint8_t>(Registers::C0DataM));
auto h = ReadRegister(static_cast<uint8_t>(Registers::C0DataH));
auto l = ReadRegister(static_cast<uint8_t>(Registers::C0dataL));
- return (m << 8) | ((h & 0x0f) << 4) | (l & 0x0f) | ((l & 0x30) << 12);
+ return ((l & 0x30) << 12) | (m << 8) | ((h & 0x0f) << 4) | (l & 0x0f);
}
-uint16_t Hrs3300::ReadAls() {
+uint32_t Hrs3300::ReadAls() {
auto m = ReadRegister(static_cast<uint8_t>(Registers::C1dataM));
auto h = ReadRegister(static_cast<uint8_t>(Registers::C1dataH));
auto l = ReadRegister(static_cast<uint8_t>(Registers::C1dataL));
- return (m << 3) | ((h & 0x3f) << 11) | (l & 0x07);
+ return ((h & 0x3f) << 11) | (m << 3) | (l & 0x07);
}
void Hrs3300::SetGain(uint8_t gain) {
diff --git a/src/drivers/Hrs3300.h b/src/drivers/Hrs3300.h
index c4f28900..8bbdc69a 100644
--- a/src/drivers/Hrs3300.h
+++ b/src/drivers/Hrs3300.h
@@ -1,6 +1,6 @@
#pragma once
-#include "TwiMaster.h"
+#include "drivers/TwiMaster.h"
namespace Pinetime {
namespace Drivers {
@@ -30,8 +30,8 @@ namespace Pinetime {
void Init();
void Enable();
void Disable();
- uint16_t ReadHrs();
- uint16_t ReadAls();
+ uint32_t ReadHrs();
+ uint32_t ReadAls();
void SetGain(uint8_t gain);
void SetDrive(uint8_t drive);
diff --git a/src/drivers/InternalFlash.cpp b/src/drivers/InternalFlash.cpp
index 0840c6e5..ec5885d5 100644
--- a/src/drivers/InternalFlash.cpp
+++ b/src/drivers/InternalFlash.cpp
@@ -1,4 +1,4 @@
-#include "InternalFlash.h"
+#include "drivers/InternalFlash.h"
#include <mdk/nrf.h>
using namespace Pinetime::Drivers;
diff --git a/src/drivers/PinMap.h b/src/drivers/PinMap.h
index 57964020..579bf38a 100644
--- a/src/drivers/PinMap.h
+++ b/src/drivers/PinMap.h
@@ -1,4 +1,5 @@
#pragma once
+#include <cstdint>
namespace Pinetime {
namespace PinMap {
diff --git a/src/drivers/Spi.cpp b/src/drivers/Spi.cpp
index a55d2888..e477622b 100644
--- a/src/drivers/Spi.cpp
+++ b/src/drivers/Spi.cpp
@@ -1,4 +1,4 @@
-#include "Spi.h"
+#include "drivers/Spi.h"
#include <hal/nrf_gpio.h>
#include <nrfx_log.h>
diff --git a/src/drivers/Spi.h b/src/drivers/Spi.h
index 6875710d..9b6a30f4 100644
--- a/src/drivers/Spi.h
+++ b/src/drivers/Spi.h
@@ -1,7 +1,7 @@
#pragma once
#include <cstdint>
#include <cstddef>
-#include "SpiMaster.h"
+#include "drivers/SpiMaster.h"
namespace Pinetime {
namespace Drivers {
diff --git a/src/drivers/SpiMaster.cpp b/src/drivers/SpiMaster.cpp
index c45e1294..747dbc84 100644
--- a/src/drivers/SpiMaster.cpp
+++ b/src/drivers/SpiMaster.cpp
@@ -1,4 +1,4 @@
-#include "SpiMaster.h"
+#include "drivers/SpiMaster.h"
#include <hal/nrf_gpio.h>
#include <hal/nrf_spim.h>
#include <nrfx_log.h>
diff --git a/src/drivers/SpiNorFlash.cpp b/src/drivers/SpiNorFlash.cpp
index 068d1d02..ebe3174c 100644
--- a/src/drivers/SpiNorFlash.cpp
+++ b/src/drivers/SpiNorFlash.cpp
@@ -1,8 +1,8 @@
-#include "SpiNorFlash.h"
+#include "drivers/SpiNorFlash.h"
#include <hal/nrf_gpio.h>
#include <libraries/delay/nrf_delay.h>
#include <libraries/log/nrf_log.h>
-#include "Spi.h"
+#include "drivers/Spi.h"
using namespace Pinetime::Drivers;
diff --git a/src/drivers/St7789.cpp b/src/drivers/St7789.cpp
index 4d81cf27..fd1366f8 100644
--- a/src/drivers/St7789.cpp
+++ b/src/drivers/St7789.cpp
@@ -1,8 +1,8 @@
-#include "St7789.h"
+#include "drivers/St7789.h"
#include <hal/nrf_gpio.h>
#include <libraries/delay/nrf_delay.h>
#include <nrfx_log.h>
-#include "Spi.h"
+#include "drivers/Spi.h"
using namespace Pinetime::Drivers;
diff --git a/src/drivers/TwiMaster.cpp b/src/drivers/TwiMaster.cpp
index 76009278..9b456d5f 100644
--- a/src/drivers/TwiMaster.cpp
+++ b/src/drivers/TwiMaster.cpp
@@ -1,4 +1,4 @@
-#include "TwiMaster.h"
+#include "drivers/TwiMaster.h"
#include <cstring>
#include <hal/nrf_gpio.h>
#include <nrfx_log.h>
diff --git a/src/drivers/Watchdog.cpp b/src/drivers/Watchdog.cpp
index a6ad263a..d0907a65 100644
--- a/src/drivers/Watchdog.cpp
+++ b/src/drivers/Watchdog.cpp
@@ -1,4 +1,4 @@
-#include "Watchdog.h"
+#include "drivers/Watchdog.h"
#include <mdk/nrf.h>
using namespace Pinetime::Drivers;