将ft5x06触摸屏与yocto连接

时间:2016-06-08 10:29:44

标签: embedded interrupt yocto device-tree imx6

我从使用yocto创建的内核中获得以下Col1.setCellFactory((TableColumn<Map, String> p) -> { ComboBoxTableCell<Map, String> cell = new ComboBoxTableCell<>(List1); cell.setComboBoxEditable(true); return cell; }); Col2.setCellFactory((TableColumn<Map, String> p) -> { ComboBoxTableCell<Map, String> cell = new ComboBoxTableCell<>(List2); cell.setComboBoxEditable(true); return cell; }); 输出。

dmesg

我的设备树包含:

bus: 'i2c': add driver edt_ft5x06
bus: 'i2c': driver_probe_device: matched device 1-0038 with driver edt_ft5x06
bus: 'i2c': really_probe: probing driver edt_ft5x06 with device 1-0038
edt_ft5x06 1-0038: no default pinctrl state
edt_ft5x06 1-0038: probe
edt_ft5x06 1-0038: no platform data?
edt_ft5x06: probe of 1-0038 failed with error -22
i2c-core: driver [edt_ft5x06] registered

我的主板是smarc-samx6i(imx6q&#34;飞思卡尔&#34;处理器)。
Linux内核是3.10.17。

但触摸没有响应;即使是i2c也没有回应。还有什么我需要照顾的吗?

2 个答案:

答案 0 :(得分:1)

我有一个带有&#34; EDT-FT5x06&#34;&#34; EDT-FT5x06&#34;在主线linux内核4.6上运行的Lenmaker BananaPro(A20)上的触摸控制器。

这是我设备树的补丁。查看wake-gpiosinterrupts

diff --git a/arch/arm/boot/dts/sun7i-a20-bananapro.dts b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
index 18fcc87..50f1a36 100644
--- a/arch/arm/boot/dts/sun7i-a20-bananapro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
@@ -147,6 +147,26 @@
status = "okay";
 };

+&i2c3 {
+   status = "okay";
+   pinctrl-names = "default";
+   pinctrl-0 = <&i2c3_pins_a>;
+   edt: edt-ft5x06@38 {
+           compatible = "edt,edt-ft5x06";
+           reg = <0x38>;
+           interrupt-parent = <&pio>;
+           interrupts = <7 9 IRQ_TYPE_EDGE_FALLING>;
+           wake-gpios = <7 7 GPIO_ACTIVE_LOW>;
+           pinctrl-names = "default";
+           pinctrl-0 = <&edt_ft5x06_pins>;
+           touchscreen-size-x = <1024>;
+           touchscreen-size-y = <600>;
+           touchscreen-inverted-x;
+           touchscreen-swapped-x-y;
+   };
+};
+
+
&ir0 {
  pinctrl-names = "default";
  pinctrl-0 = <&ir0_rx_pins_a>;
@@ -222,6 +242,14 @@
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
  allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  };
+
+   edt_ft5x06_pins: edt_ft5x06_pins@0 {
+       allwinner,pins = "PH7", "PH9";
+       allwinner,function = "gpio_out";
+       allwinner,drive = <SUN4I_PINCTRL_40_MA>;
+       allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+   };
+
};

 &reg_usb1_vbus {

也许您在Linux内核模块的文档中找到了更多内容:https://www.kernel.org/doc/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt

或此处:http://linux-sunxi.org/Touchscreen

答案 1 :(得分:1)

3.10.17内核中的edt ft5x06驱动程序未启用设备树。您必须从更新的内核(如4.1或更高版本)向后端移动驱动程序,然后您才能将设备树与驱动程序一起使用。