summaryrefslogtreecommitdiff
path: root/src/drivers/Spi.h
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-05-07 17:53:51 (GMT)
committerJF <jf@codingfield.com>2020-05-07 17:53:51 (GMT)
commit0b8e6c3fa20457bce931b1d289f187e46fc68307 (patch)
tree5c2f7ba6c10e380eaa60c2ce15e65637535c8178 /src/drivers/Spi.h
parentf96c048debc84bf2ccd10c4e7356e8e20df9bb3a (diff)
Add SPI NOR Flash driver, WIP.
Diffstat (limited to 'src/drivers/Spi.h')
-rw-r--r--src/drivers/Spi.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/drivers/Spi.h b/src/drivers/Spi.h
new file mode 100644
index 0000000..7e15558
--- /dev/null
+++ b/src/drivers/Spi.h
@@ -0,0 +1,33 @@
+#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* data, size_t size);
+ void Sleep();
+ void Wakeup();
+
+ private:
+ SpiMaster& spiMaster;
+ uint8_t pinCsn;
+ };
+ }
+}