This is an old revision of the document!
Enable I2C proximity sensor vl53l.
Identify GND, VCC, I2C_SCL and I2C_SDA data lines on expansion header and connect the sensor accordingly.
Setup should look like this:
Look inside ~/work/nss-linux/drivers/iio
and find a proper driver for vl53l
sensor. Use git grep vl53l
. Once you find the correct source file look inside the driver and remember the compatible string.
Once you found the driver, use make menuconfig
and select it to be compiled as a module. <M>
Look inside arch/arm64/boot/dts/freescale/imx8mq-pico-pi.dts
and add your node under i2c3
node.
Your node should look like this:
&i2c3 { proximity-sensor@XX { compatible = <compatible-you-found-in-the-driver>; reg =<XX>; pinctrl-0 = <&pinctrl_prox>; status = "okay"; }; };
XX - is the address of the I2C device. There are two ways of finding this. You can dig inside the datasheet and confirm the address by scanning for devices on i2c3 node on the hardware. Use i2cdetect -y 2
.
Once the device tree is ready, recompile the kernel and boot the board. On the board, use modprobe <driver-name>
to load the driver. If everything goes well the driver will be correctly loaded and you will be able to read data.
$ modprobe vl53l0x-i2c $ cat /sys/bus/iio/devices/iio:device0/in_distance_scale