From 813b00468989ce8a0fc81bd2a7dbe31137a3ee01 Mon Sep 17 00:00:00 2001
From: Matteo Pignataro <matteo.pignataro@skywarder.eu>
Date: Sat, 1 Jul 2023 09:26:28 +0000
Subject: [PATCH] [H3LIS331DL] Added getDefaultSPIConfig

---
 src/shared/sensors/H3LIS331DL/H3LIS331DL.cpp | 12 ++++++++++--
 src/shared/sensors/H3LIS331DL/H3LIS331DL.h   |  2 ++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/shared/sensors/H3LIS331DL/H3LIS331DL.cpp b/src/shared/sensors/H3LIS331DL/H3LIS331DL.cpp
index 634704a74..9998ed115 100644
--- a/src/shared/sensors/H3LIS331DL/H3LIS331DL.cpp
+++ b/src/shared/sensors/H3LIS331DL/H3LIS331DL.cpp
@@ -31,8 +31,7 @@ H3LIS331DL::H3LIS331DL(SPIBusInterface& spiBus, miosix::GpioPin cs,
                        H3LIS331DLDefs::FullScaleRange fs)
     : spi(spiBus, cs, cfg), odr(odr), bdu(bdu), fs(fs), initialized(false)
 {
-    spi.config.byteOrder = SPI::Order::LSB_FIRST;
-    spi.config.mode      = SPI::Mode::MODE_3;
+    spi.config = getDefaultSPIConfig();
 }
 
 H3LIS331DL::H3LIS331DL(SPIBusInterface& spiBus, miosix::GpioPin cs,
@@ -43,6 +42,15 @@ H3LIS331DL::H3LIS331DL(SPIBusInterface& spiBus, miosix::GpioPin cs,
 {
 }
 
+SPIBusConfig H3LIS331DL::getDefaultSPIConfig()
+{
+    SPIBusConfig spiConfig;
+    spiConfig.clockDivider = SPI::ClockDivider::DIV_128;
+    spiConfig.mode         = SPI::Mode::MODE_3;
+    spiConfig.byteOrder    = SPI::Order::LSB_FIRST;
+    return spiConfig;
+}
+
 bool H3LIS331DL::init()
 {
     if (initialized)
diff --git a/src/shared/sensors/H3LIS331DL/H3LIS331DL.h b/src/shared/sensors/H3LIS331DL/H3LIS331DL.h
index b8d0c11b8..947709cbd 100644
--- a/src/shared/sensors/H3LIS331DL/H3LIS331DL.h
+++ b/src/shared/sensors/H3LIS331DL/H3LIS331DL.h
@@ -71,6 +71,8 @@ public:
                H3LIS331DLDefs::BlockDataUpdate bdu,
                H3LIS331DLDefs::FullScaleRange fs);
 
+    static SPIBusConfig getDefaultSPIConfig();
+
     /**
      * @brief Initializes the H3LIS331DL
      *
-- 
GitLab