InfiniTime.git

ref: fdc89f1a20889c0295534f58dc2e82ce8c55a18b

src/drivers/Spi.h


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#pragma once
#include <cstdint>
#include <cstddef>
#include "drivers/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;
    };
  }
}