summaryrefslogtreecommitdiff
path: root/src/drivers/Spi.h
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-06-07 12:17:45 (GMT)
committerGitea <gitea@fake.local>2020-06-07 12:17:45 (GMT)
commita0e73f5c1a1e652aa6270b7e42a73aee3d12ded6 (patch)
tree6205dfb543bb22245d39a2f6e44d2c26cb381c10 /src/drivers/Spi.h
parent8a94750e30399bfb204cbec59a769d9d1b6b5baa (diff)
parentdbdb26ae1fa45cec88f1b9ea0353b3d0a3c39f56 (diff)
Merge branch 'develop' of JF/PineTime into master
Diffstat (limited to 'src/drivers/Spi.h')
-rw-r--r--src/drivers/Spi.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/drivers/Spi.h b/src/drivers/Spi.h
new file mode 100644
index 0000000..82ba8a6
--- /dev/null
+++ b/src/drivers/Spi.h
@@ -0,0 +1,34 @@
+#pragma once
+#include <FreeRTOS.h>
+#include <cstdint>
+#include <cstddef>
+#include <array>
+#include <atomic>
+#include <task.h>
+
+#include "BufferProvider.h"
+#include "SpiMaster.h"
+
+namespace Pinetime {
+ namespace Drivers {
+ class Spi {
+ public:
+ Spi(SpiMaster& spiMaster, uint8_t pinCsn);
+ Spi(const Spi&) = delete;
+ Spi& operator=(const Spi&) = delete;
+ Spi(Spi&&) = delete;
+ Spi& operator=(Spi&&) = delete;
+
+ bool Init();
+ bool Write(const uint8_t* data, size_t size);
+ bool Read(uint8_t* cmd, size_t cmdSize, uint8_t *data, size_t dataSize);
+ bool WriteCmdAndBuffer(const uint8_t* cmd, size_t cmdSize, const uint8_t *data, size_t dataSize);
+ void Sleep();
+ void Wakeup();
+
+ private:
+ SpiMaster& spiMaster;
+ uint8_t pinCsn;
+ };
+ }
+}