Dear @collin.tx ,
Your instructions did work as intended, we’ve managed to enable the chipone_icn8318 module on the system. We also added an entry to the device tree as you’ve suggested earlier with the i2c part looking like this
/* Verdin I2C_1 */
&main_i2c1 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
lvds_ti_sn65dsi84: bridge@2c {
compatible = "ti,sn65dsi84";
reg = <0x2c>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_dsi1_bkl_en>;
/* Verdin Verdin DSI_1_INT# (SN65DSI84 IRQ, SODIMM 17, unused) */
/* Verdin DSI_1_BKL_EN (SODIMM 21) */
enable-gpios = <&main_gpio0 30 GPIO_ACTIVE_HIGH>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dsi84_in: endpoint {
data-lanes = <1 2 3 4>;
remote-endpoint = <&mipi_dsi_bridge1_out>;
};
};
port@2 {
reg = <2>;
lvds_out_panel: endpoint {
remote-endpoint = <&panel_in_lvds>;
};
};
};
};
chipone_icn8318: touchscreen@48 {
compatible = "chipone,icn8318";
reg = <0x48>;
/*
* Verdin DSI_1_INT#
* (TOUCH_INT#, SODIMM 17, also routed to SN65DSI84 IRQ albeit currently unused)
*/
interrupt-parent = <&main_gpio1>;
interrupts = <49 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_dsi1_int>, <&pinctrl_i2s_2_bclk_gpio>;
/* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 42) */
reset-gpios = <&main_gpio0 35 GPIO_ACTIVE_LOW>;
wake-gpios = <&main_gpio0 36 GPIO_ACTIVE_HIGH>;
touchscreen-size-x = <1024>;
touchscreen-size-y = <600>;
};
};
Unfortunately, the touch still doesn’t work. We’ve also tried a similar case with a different panel that uses the ILI2132 driver and it worked correctly when we followed a different thread from here Riverdi ILI2132A Touch Screen Driver on Colibri-IMX8QXP & Iris 2.0 - Technical Support - Toradex Community.
The dmesg returned a line
input: icn8318 as /devices/platform/bus@f0000/20010000.i2c/i2c-1/1-0048/input/input1
And when I used evtest on /dev/input/event1 it gave me details on the chipone driver
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
Input device name: "icn8318"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 330 (BTN_TOUCH)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 0
Min 0
Max 1023
Event code 1 (ABS_Y)
Value 0
Min 0
Max 599
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 4
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 1023
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 599
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 65535
Properties:
Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
The i2cdetect -y -r 1 register 48 changed to UU after applying the correct devicetree
Maybe there is something I’ve missed in the i2c section of the devicetree?