树莓派4B 设备树配置GT9271和PCA9536,以及PCA9536的P1和P2引脚与GT9271的RESET和INT引脚的设备树驱动
时间: 2024-02-19 09:03:52 浏览: 209
PCA9536.pdf
好的,针对您的问题,我可以提供以下设备树配置示例:
```
&i2c {
status = "okay";
gt9271: gt9271@5d {
compatible = "goodix,gt9271";
reg = <0x5d>;
interrupt-parent = <&gpio>;
interrupts = <14 2>;
reset-gpios = <&gpio 15 0>;
irq-gpios = <&gpio 16 0>;
touchscreen-size-x = <800>;
touchscreen-size-y = <480>;
touchscreen-inverted-x;
touchscreen-swapped-x-y;
touchscreen-inverted-y;
touchscreen-fuzz-x = <8>;
touchscreen-fuzz-y = <8>;
touchscreen-min-pressure = <10>;
touchscreen-max-pressure = <255>;
/* PCA9536 P1 and P2 pins */
pca9536: pca9536@21 {
compatible = "nxp,pca9536";
reg = <0x21>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio>;
interrupts = <13 2>;
pinctrl-names = "default";
pinctrl-0 = <&pca9536_pins>;
/* PCA9536 P1 pin */
pca9536_p1: pca9536_p1 {
gpio-hog;
gpios = <&pca9536 0 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "pca9536-p1";
};
/* PCA9536 P2 pin */
pca9536_p2: pca9536_p2 {
gpio-hog;
gpios = <&pca9536 1 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "pca9536-p2";
};
};
};
};
&pca9536 {
status = "okay";
pca9536_pins: pca9536_pins {
pca9536_p1_pin: pca9536_p1_pin {
gpio-hog;
gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "pca9536-p1";
};
pca9536_p2_pin: pca9536_p2_pin {
gpio-hog;
gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "pca9536-p2";
};
};
};
```
上述示例代码中,我们在设备树中首先定义了 I2C 总线,并在该总线下定义了 GT9271 触摸屏设备(节点 `gt9271@5d`)。同时,在 GT9271 设备下,我们还定义了 PCA9536 IO 扩展器设备(节点 `pca9536@21`),并通过设备树的 `pinctrl` 属性将其与两个 GPIO 引脚(节点 `pca9536_p1` 和 `pca9536_p2`)进行绑定。
需要注意的是,上述代码中的具体引脚编号可能与您的具体硬件连接方式有所不同,因此您需要根据实际情况进行修改。
另外,您提到需要将 PCA9536 的 P1 和 P2 引脚与 GT9271 的 RESET 和 INT 引脚进行绑定,但是在设备树中并不能直接进行引脚之间的绑定。如果您需要在驱动程序中进行引脚绑定,可以使用 GPIO 虚拟子系统提供的 `gpio_request()` 和 `gpio_set_value()` 等函数来实现。
阅读全文