mirror of
https://github.com/brain-hackers/linux-brain.git
synced 2024-06-09 23:36:23 +09:00
MLK-24862-2 input: touch: goodix: force set the IRQ_TYPE_EDGE_FALLING for GT1151Q
For the touch chip use on the new OLED panel(rm67199), when touch the screen, GT1151Q sends a falling edge pulse via INT pin. For code logic, it will read the touch internal config data, the bit[1~0] of config[6] means the interrupt trigger method. For this GT1151Q, this bit[1~0] is 3 in default, which means IRQ_TYPE_LEVEL_HIGH, which not match with the datasheet and the hardware behavior. Since the default level of the INT pin is high, so after driver probe, a lot of useless touch interrupts keep triggered. To fix this, need to update the touch firmware. Set the bit[1~0] of config[6] to value 1. Since we lack the touch firmware file, as a workaround, add a property "edge-failling-trigger" in dts file, if has this property, force set the IRQ_TYPE_EDGE_FALLING. Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
This commit is contained in:
parent
bd81511b80
commit
e391202476
|
@ -817,6 +817,9 @@ static int goodix_configure_dev(struct goodix_ts_data *ts)
|
|||
return error;
|
||||
}
|
||||
|
||||
if (device_property_read_bool(ts->input_dev->dev.parent, "edge-failling-trigger"))
|
||||
ts->int_trigger_type = GOODIX_INT_TRIGGER;
|
||||
|
||||
ts->irq_flags = goodix_irq_flags[ts->int_trigger_type] | IRQF_ONESHOT;
|
||||
error = goodix_request_irq(ts);
|
||||
if (error) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user