I am trying to make use of the BMI088 driver with our board and am running into some problem getting things set up.
I’ve got modules setup as listed here and the BMI088 module is showing up with lsmod. I have the following in my DTS
how ever i see no devices listed in /sys/bus/iio/devices/ starting to run out of ideas of what to check to see what is wrong. The only bmi related thing showing up for me with sudo dmsg is [ 46.433103] Modules linked in: lzo_rle lzo_compress zram loop realtek aes_ce_blk crypto_simd cryptd aes_ce_cipher ghash_ce sha2_ce sha256_arm64 sha1_ce snd_soc_spdif_tx nvgpu ina3221 pwm_fan max77620_thermal tegra_bpmp_thermal bmi088 userspace_alert kfifo_buf ar1335 spi_tegra114 nvmap 8021q garp mrp ramoops reed_solomon ip_tables x_tables
may I confirm which Jetpack release version you’re working with, please check release tag, $ cat /etc/nv_tegra_release for confirmation.
please also note that, this node, bmi088@69 must be added as a child of the i2c@c250000 node in device tree.
We are using jetpack R35 rev 1
i2c@c250000 seems like the first of the problems I was having, in my case i needed i2c@3160000 though instead. but with that change I am now seeing the IIO devices populate. Now attempting to successfully test them to confirm stuff is working correctly!
update gave the iio_generic_buffer tool a try and hit a crash issue
ran the following
root@er-mbu:/home/ubuntu/iio# echo 0 > /sys/bus/iio/devices/iio:device0/scan_elements/in_timestamp_en
root@er-mbu:/home/ubuntu/iio# echo 0 > /sys/bus/iio/devices/iio:device1/scan_elements/in_timestamp_en
root@er-mbu:/home/ubuntu/iio# ./iio_generic_buffer -a -c 10 --device-name accelerometer -g
Results in me seeing the 2 IIO devices. However when I disable the timestamp channel and then run
./iio_generic_buffer -a -c 10 --device-name accelerometer -g as described here. I started to see kernel panic that i posted above. Since then I have tried adding the following to the device tree.
Doing this and then running the following commands from the super user
root@er-mbu:/home/ubuntu/iio# echo 0 > /sys/bus/iio/devices/iio:device0/scan_elements/in_timestamp_en
root@er-mbu:/home/ubuntu/iio# ./iio_generic_buffer -a -c 10 --device-name accelerometer -g
there’re some documentation erroneous, could you please check r35.6.0 developer guide for the steps.
for instance, BMI088 IMU Driver.
as mentioned by developer guide,
re-cap as below… The data-ready interrupts must be connected to Jetson Always On (AON) GPIOs, which have hardware timestamp capability to record the accurate time of the interrupt occurrences.
however, it seems you’re used Main GPIOs instead of AON GPIOs in the code snippets.
could you please change the pin to AON GPIOs for testing,
besides, please share all your step in details to reproduce the same on AGX Xavier developer kit.
Moving the interrupts to a different bank is difficult at this point due to board design. Can you give me some details about why the time stamp function the driver is using is specifically limited to the AON GPIOs and is not available on the main GIPOs?