13 #include <soc/timer.h>
16 #include <libbdk-arch/bdk-numa.h>
17 #include <libbdk-hal/bdk-config.h>
18 #include <libbdk-hal/bdk-twsi.h>
19 #include <libbdk-boot/bdk-watchdog.h>
36 uint16_t internal_addr,
int num_bytes,
43 assert (ia_width_bytes < 3);
46 seg[0].
slave = dev_addr;
47 seg[0].
buf = (
u8 *)&internal_addr;
48 seg[0].
len = ia_width_bytes;
50 seg[1].
slave = dev_addr;
52 seg[1].
len = num_bytes;
57 return cpu_to_be32(
buf);
78 uint16_t internal_addr,
int num_bytes,
85 assert (ia_width_bytes < 3);
87 memcpy(
buf, &internal_addr, ia_width_bytes);
88 memcpy(&
buf[ia_width_bytes], &data, num_bytes);
93 seg.
len = num_bytes + ia_width_bytes;
void * memcpy(void *dest, const void *src, size_t n)
#define assert(statement)
void bdk_watchdog_set(unsigned int timeout_ms)
void bdk_watchdog_poke(void)
int64_t bdk_twsix_read_ia(bdk_node_t node, int twsi_id, uint8_t dev_addr, uint16_t internal_addr, int num_bytes, int ia_width_bytes)
Do a twsi read from a 7 bit device address using an (optional) internal address.
int bdk_watchdog_is_running(void)
int bdk_twsix_write_ia(bdk_node_t node, int twsi_id, uint8_t dev_addr, uint16_t internal_addr, int num_bytes, int ia_width_bytes, uint64_t data)
Write 1-8 bytes to a TWSI device using an internal address.
void bdk_watchdog_disable(void)
int platform_i2c_transfer(unsigned int bus, struct i2c_msg *msg, int count)
static int i2c_transfer(unsigned int bus, struct i2c_msg *segments, int count)
void watchdog_disable(const size_t index)
Disable the hardware watchdog.
void watchdog_poke(const size_t index)
Signal the watchdog that we are still running.
void watchdog_set(const size_t index, unsigned int timeout_ms)
Setup the watchdog to expire in timeout_ms milliseconds.
int watchdog_is_running(const size_t index)
Return true if the watchdog is configured and running.
unsigned long long uint64_t
struct i2c_msg - an I2C transaction segment beginning with START @addr: Slave address,...