Provide selected SoC interrupt to GPIO ?

Hi, anybody konw, is possible to provide selected SoC interrupt to GPIO via pinmux? in particular interrupt UARTS?

To clarify, are you wanting to cause a driver to queue its interrupt based on a GPIO pin? If so, I’d think it is possible. I don’t know if you’d need to use assembler. This is something I must also research in the near future.

Yes, exactly I want provide initialization or transmission int to gpio. I have another question.

If it works for you input on the gpio? How do you set the input high state?

I have not yet got to this stage in my projects (custom hardware may need more I/O than Jetson can provide, investigating use of mPCIe). Not much I can tell you at this point, except that GPIO does have settings for edge and level. Example, see
/sys/class/gpio/gpio143/*
…notice edge and active_low

An article you may find of use (which uses a different board so some non-linux things differ):
ttps://developer.ridgerun.com/wiki/index.php/How_to_use_GPIO_signals#GPIO_interrupts_from_user_space

EDIT: Here is another related URL; it uses a different board, but still linux GPIO:
https://www.youtube.com/watch?v=SaIpz00lE84

Is it possible to create old fashion DOS interrupt callback on jetson-ubuntu board?

Or may be any guarantee for polling loop delay that the loop must be at least 1000Hz (less than ms) for each interval?

I have not done it yet, but pinmux does allow marking a GPIO as input, output, or interrupt.

Hi,

I could not find out how to config the pinmux to interrupt. I did use the example code mentioned in one of the posts by linuxdev and used poll() to get the behavior i wanted. Is it using interrupts internally?

I could not find any irq assigned to the gpio so i dont know how to figure out how to check if the interrupt is working. How do i assign a gpio to another device like spi as an interrupt.

Are the TK1 pins 3.3V tolerant. In my hurry to get things working I connected the a 3.3V signal line to GPIO161 on TK1. Everything worked without issues. Only now i realized my mistake and disconnected the signal. So do you think I might have damaged the GPIO?

Thanks,
Benzun

The pins themselves probably won’t be hurt by 3.3V, as the pullup on these pins can be set for 3.3V. However, they are normally running 1.8V, so somewhere in using 3.3V the pins will fail to behave correctly (something expecting 3.3V high won’t work with 1.8V). The trick is that even if the Tegra chip is ok, something else could be connected which might not be tolerant of 3.3V. If I were to bet, I’d say nothing was harmed.

Yes the board is not harmed as you had said. To be on the safe side I put a level converter.

How do you specify the gpio pin as an interrupt in the dts file for another device?

Keep in mind that the dts does not require setup unless the hardware is to be set up at boot time, or if a boot time setup is interfering with your software. In general, GPIO have the ability to be set up from /sys. Take a look at:

cat /sys/kernel/debug/gpio

You’ll find that anything shown there should be accessible with an echo in /sys. You can export or unexport individual gpio via echo of the number into /sys/class/gpio/export or unexport. Once this exists, you can set up other characteristics. You’ll probably be writing a kernel driver to use a custom gpio somewhere the driver was not designed to originally support.