I actually do not know if this is right to do so. Nevertheless, I have added as well under i2c1 node the following:
&i2c1 {
#address-cells <1>; // not changed
#size-cells = <0>; // not changed
clock-frequency = <400000>; // changed from 100000
pinctrl-names = "default"; // not changed
pinctrl-0 = <&pintctrl_i2c1>; // not changed
// all what is in this penmount is new based on the atmel_mxt_ts
penmount: touchscree@41 {
compatible = "penmount,pm2504";
reg = <0x41>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_penmount_conn>;
interrupt-parent = <&lsio_gpio3>;
interrupts = <20 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 107 */
reset-gpios = <&lsio_gpio3 24 GPIO_ACTIVE_LOW>; /* SODIMM 106 */
status = "disabled";
};
};
as well I have created a .dtsi file for the penmount-connector:
&penmount {
status = "okay";
}
&i2c1 {
status = "okay";
}
and still I could not achieve the touch signal on the Penmount touchscreen. I am pretty sure I’m doing something wrong, and it can be conceptually not understanding something right.
last point I have checked the user guide that I shared, you can see that the device should work over hid_i2c, is there any comment regarding this? or it does not matter? since the shared dts configuration is quite different of what I am trying to do here.
Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!
Did you like my answer?
Hello,
Thank you for reaching out with your question about configuring the PenMount touchscreen on the iMX8X module. Let’s go through some steps to help you troubleshoot and verify your setup:
Device Tree Configuration: Your modifications to the imx8dx.dtsi file should accurately reflect the hardware setup. Double-check the pin numbers and configurations to ensure they match your PenMount device’s requirements. Ensure that the pinctrl settings and I2C configurations are correct.
HID over I2C: The PenMount touchscreen may require the hid_i2c driver, which is a standard Linux driver for HID devices over I2C. Verify that this driver is enabled in your kernel configuration. You can check if the driver is loaded by running lsmod | grep hid_i2c.
I2C Device Detection: Use I2C tools to confirm that the device is detected on the I2C bus. Run i2cdetect -y <bus_number> to see if the device appears at the expected address (0x41 in your case). If it does not appear, there may be an issue with the I2C bus configuration or the physical connection.
Kernel Logs: Check the kernel logs for any messages related to I2C or the touchscreen. Use dmesg | grep i2c or dmesg | grep penmount to find relevant log entries that might indicate what is going wrong.
Driver Compatibility: Ensure that the PenMount device is compatible with the hid_i2c driver. You may need to consult the PenMount documentation to confirm compatibility with Linux and the specific driver.
Status Property: In your device tree, the status property for the PenMount device is set to “disabled”. Change this to “okay” to enable the device.
By following these steps, you should be able to diagnose and resolve the issue with your PenMount touchscreen. If the device is not recognized, further investigation into the compatibility of the device with the Linux kernel and the hid_i2c driver may be necessary.
Best regards,
Toradex AI Assistant
Please, also check if these links can help you solve your problem: