IMX500 MCU SDK
API reference for the Arducam IMX500 MCU SDK
Loading...
Searching...
No Matches
ai_driver.h
Go to the documentation of this file.
1
5
6#ifndef AI_DRIVER_H
7#define AI_DRIVER_H
8
9#include <stdint.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
16typedef int (*spi_write_fn)(uint8_t *data, uint32_t len);
17
19typedef int (*spi_read_fn)(uint8_t *data, uint32_t len);
20
26
27extern spi_driver g_spi_driver;
28
31
33int _spi_write(uint8_t* data, uint32_t len);
34
36int _spi_read(uint8_t* data, uint32_t len);
37
39typedef int (*i2c_write_fn)(uint16_t addr, uint32_t val, uint32_t size);
40
42typedef int (*i2c_read_fn)(uint16_t addr, uint32_t *val, uint32_t size);
43
45typedef int (*i2c_write_block_fn)(uint16_t addr, const uint8_t *data, uint32_t len);
46
48typedef void (*sleep_ms_fn)(uint32_t ms);
49
51typedef void (*sleep_us_fn)(uint64_t us);
52
54typedef void (*imx500_printf_fn)(const char *msg);
55
64
65extern i2c_driver g_i2c_driver;
66extern imx500_printf_fn g_printf_fn;
67
70
73
75int _i2c_write(uint32_t addr, uint32_t val, uint32_t size);
76
78int _i2c_read(uint32_t addr, uint32_t *val, uint32_t size);
79
80#ifdef __cplusplus
81}
82#endif
83
84#endif // AI_DRIVER_H
int(* spi_write_fn)(uint8_t *data, uint32_t len)
SPI transmit callback supplied by the platform.
Definition ai_driver.h:16
int(* spi_read_fn)(uint8_t *data, uint32_t len)
SPI receive callback supplied by the platform.
Definition ai_driver.h:19
void register_spi_driver(spi_driver driver)
Register the SPI implementation used by the SDK.
int(* i2c_write_fn)(uint16_t addr, uint32_t val, uint32_t size)
I2C write callback supplied by the platform.
Definition ai_driver.h:39
int(* i2c_read_fn)(uint16_t addr, uint32_t *val, uint32_t size)
I2C read callback supplied by the platform.
Definition ai_driver.h:42
void(* sleep_us_fn)(uint64_t us)
Microsecond delay callback supplied by the platform.
Definition ai_driver.h:51
void(* imx500_printf_fn)(const char *msg)
Optional log sink used instead of the SDK printf fallback.
Definition ai_driver.h:54
void register_printf(imx500_printf_fn fn)
Register an optional logging callback for SDK messages.
int(* i2c_write_block_fn)(uint16_t addr, const uint8_t *data, uint32_t len)
Optional raw I2C block-write callback supplied by the platform.
Definition ai_driver.h:45
void register_i2c_driver(i2c_driver driver)
Register the I2C and delay implementation used by the SDK.
void(* sleep_ms_fn)(uint32_t ms)
Millisecond delay callback supplied by the platform.
Definition ai_driver.h:48
Platform I2C and timing hooks used by the SDK runtime.
Definition ai_driver.h:57
i2c_write_fn write
Definition ai_driver.h:58
sleep_us_fn slp_us
Definition ai_driver.h:62
sleep_ms_fn slp_ms
Definition ai_driver.h:61
i2c_write_block_fn write_block
Definition ai_driver.h:60
i2c_read_fn read
Definition ai_driver.h:59
Platform SPI hooks used by the SDK runtime.
Definition ai_driver.h:22
spi_write_fn write
Definition ai_driver.h:23
spi_read_fn read
Definition ai_driver.h:24