aboutsummaryrefslogtreecommitdiff
path: root/drivers/bus/qspi.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/bus/qspi.h')
-rw-r--r--drivers/bus/qspi.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/bus/qspi.h b/drivers/bus/qspi.h
index 31c9d14fc..c82796fac 100644
--- a/drivers/bus/qspi.h
+++ b/drivers/bus/qspi.h
@@ -28,6 +28,8 @@
#include "py/mphal.h"
+#define MP_SPI_ADDR_IS_32B(addr) (addr & 0xff000000)
+
enum {
MP_QSPI_IOCTL_INIT,
MP_QSPI_IOCTL_DEINIT,
@@ -54,4 +56,19 @@ typedef struct _mp_soft_qspi_obj_t {
extern const mp_qspi_proto_t mp_soft_qspi_proto;
+static inline uint8_t mp_spi_set_addr_buff(uint8_t *buf, uint32_t addr) {
+ if (MP_SPI_ADDR_IS_32B(addr)) {
+ buf[0] = addr >> 24;
+ buf[1] = addr >> 16;
+ buf[2] = addr >> 8;
+ buf[3] = addr;
+ return 4;
+ } else {
+ buf[0] = addr >> 16;
+ buf[1] = addr >> 8;
+ buf[2] = addr;
+ return 3;
+ }
+}
+
#endif // MICROPY_INCLUDED_DRIVERS_BUS_QSPI_H