I am writing a device tree overlay file for a custom cape containing a
touchscreen , and am having problems mapping a GPIO line as an interrupt to
be handled by a device driver.
I cannot get interrupt pulses on my GPIO line to invoke the ISR in the
device driver.
I have reached the limits of my BBB debug capabilities - I'm looking for
any suggestions about how to find
the disconnect between the pin and the ISR.
Thanks,
Bill
-------------------------
What I have so far:
My .dts file compiles, is loaded, configures the pins. the driver maps its
ISR to the IRQ obtained from devm_request_threaded_irq(),
and I have verified with a scope that the hardware is generating Interrupt
requests on the correct pin.
The applicable fragments from my overlay are:
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
pinctrl-single,pins = <
0x90 0x37 /* INT gpio2_2, MODE7, INPUT,
PULLUP */
0x44 0x17 /* RESET gpio1_17, MODE7, OUTPUT,
PULLUP */
>;
};
};
fragment@1{
target = <&i2c2>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
/* Capacitive Touch Panel */
edt_ft5x06@38 {
status = "okay";
compatible = "edt,edt-ft5x06";
/*compatible = "ft5x0x_ts";*/
pinctrl-names = "default";
pinctrl-0 = <&pharm_ctp_pins>;
reg = <0x38>;
interrupt-parent = <&gpio2>;
interrupts = <2 1>;
reset-gpios = <&gpio1 17 1>;
touchscreen-size-x = <480>;
touchscreen-size-y = <272>;
};
};
};
The pins are properly configured as confirmed by
/sys/kernel/debug/pinctrl/44e10800.pinmux/*
Debug prints in the driver confirms its probe function runs cleanly, and
the ISR is never called.
/proc/interrupts confirms that an IRQ is assigned as GPIO to the driver
(with either compatible driver).
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.