picofuse

deviceio.h
Go to the documentation of this file.
1 
16 #pragma once
17 #include <stddef.h>
18 #include <stdint.h>
19 
26 #ifndef HW_DEVICEIO_CAPACITY
27 #define HW_DEVICEIO_CAPACITY 8
28 #endif
29 
36 #ifndef HW_DEVICEIO_CONTEXT_SIZE
37 #define HW_DEVICEIO_CONTEXT_SIZE 32
38 #endif
39 
41 // TYPES
42 
49 
54 typedef enum {
55  hw_deviceio_i2c,
56  hw_deviceio_spi,
58 
60 // LIFECYCLE
61 
75 void hw_deviceio_deinit(hw_deviceio_t *device);
76 
79 // PROPERTIES
81 
93 
96 // METHODS
98 
119 size_t hw_deviceio_xfr(hw_deviceio_t *device, void *data, size_t tx, size_t rx,
120  uint32_t timeout_ms);
121 
133 size_t hw_deviceio_read_reg(hw_deviceio_t *device, uint8_t reg, void *data,
134  size_t len, uint32_t timeout_ms);
135 
147 size_t hw_deviceio_write_reg(hw_deviceio_t *device, uint8_t reg,
148  const void *data, size_t len, uint32_t timeout_ms);
149 
struct hw_deviceio_t hw_deviceio_t
Opaque device I/O handle.
Definition: deviceio.h:48
hw_deviceio_bus_t hw_deviceio_bus(const hw_deviceio_t *device)
Get which bus backs a device I/O handle.
size_t hw_deviceio_read_reg(hw_deviceio_t *device, uint8_t reg, void *data, size_t len, uint32_t timeout_ms)
Read bytes from a register on a device.
size_t hw_deviceio_xfr(hw_deviceio_t *device, void *data, size_t tx, size_t rx, uint32_t timeout_ms)
Perform a raw, bidirectional transfer.
void hw_deviceio_deinit(hw_deviceio_t *device)
Release a device I/O handle.
size_t hw_deviceio_write_reg(hw_deviceio_t *device, uint8_t reg, const void *data, size_t len, uint32_t timeout_ms)
Write bytes to a register on a device.
hw_deviceio_bus_t
Which bus backs a device I/O handle.
Definition: deviceio.h:54