Hi. First of all my HW/SW config:
Jetson TK1 board running L4T 21.5 and grinch kernel 21.3.4
Accelerometer connected to i2c-1. Accelerometer interrupt INT2 - but this pin not connected to jetson.
i2cdetect successfully detect accelerometer on i2c-1 bus address 0x6a.
I have an issue with reading data from lsm6ds3 gyro-accelerometer module. I download and implement driver acсording instructions from this git repo:
https://github.com/STMemsLinuxDrivers/lsm6ds3-input
Please use the following steps to integrate LSM6DS3 driver into your kernel:
- copy the include and drivers folders into the root of kernel source:
cp -r drivers <KERNEL_SRC_ROOT>/
cp -r include <KERNEL_SRC_ROOT>/
- edit input Kconfig (drivers/input/misc/Kconfig) to include lsm6ds3 config
adding the following line:
source "drivers/input/misc/lsm6ds3/Kconfig"
- edit input Makefile (drivers/input/misc/Makefile) adding the following line:
obj-y += lsm6ds3/
To enable this driver you have to make the needed changes in the board file or
into platform device tree.
An example of binding into device tree is shown below:
&i2c4 {
pinctrl-names = "default";
lsm6ds3@6b {
pinctrl-names = "default";
pinctrl-0 = <&mcspi1_pins>;
compatible = "st,lsm6ds3";
reg = <0x6b>;
interrupts = <8 0x0>;
interrupt-parent = <&gpio5>;
st,drdy-int-pin = <1>;
};
};
I manage to compile all driver modules and them successfully loaded and probed in the system.
I make changes in device tree file.
/ {
i2c@7000c400 {
pinctrl-names = "default";
lsm6ds3: lsm6ds3@6a {
pinctrl-names = "default";
compatible = "st,lsm6ds3";
reg = <0x6a>;
interrupt-parent = <&gpio>;
interrupts = <8 0x0>;
st,drdy-int-pin = <2>;
};
};
};
The problem is in interrupts.
interrupt-parent = <&gpio>;
interrupts = <8 0x0>;
How to know which “interrupts” number I must set to my gpio pin?
For example “gpio160” is interrupts = <15 0x4f>