Hello CircuitDojo Community,
In a Zephyr based application running on a Sparkfun nRF9160 based board, how may I track down what lower level driver code initializes the I2C peripheral? I see in Zephyr 2.6.0’s source tree a number of architecture specific driver files in:
[west_workspace]/zephyr/drivers/i2c
but none of the source files here have names which jump out as being for the ARM Cortex-M33. My goal is see whether there is lower level peripheral initialization code which could be called arbitrarily later after firmware boot time. I have an i2c peripheral which sometimes fails to initialize fully, but always initializes on a forced reboot, by invoking nrfjprog --reset
with a JLink attached to the development board.
Hoping to find a way to re-try I2C initialization in a manner more pointed and elegant than a cold reboot!