SPI tranfer from a DSR
|[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]|
Hi,I'm trying to write a driver for an NXP SC16IS740 SPI / I2C UART chip: http://www.nxp.com/documents/data_sheet/SC16IS740_750_760.pdf
I'm running on an AT91SAM7X512 (custom board), using the SPI interface.When an interrupt occurs on the NXP chip, it asserts a GPIO line connected to the IRQ0 pin on the sam7. I've set up an interrupt handler for this in my driver. However when this occurs I need to perform an SPI transfer to read the IIR register to figure out what the interrupt is.
However in the ECOS reference on the SPI interface page: http://ecos.sourceware.org/docs-3.0/ref/spi-api.html It states that an SPI transfer should not be performed in an ISR or a DSR, for locking reasons and also we don't want to block a DSR.
So ideally we want to be able to start the transfer and then return from the DSR and get interrupted again when the transfer had finished.
Is there a nice way to do this without modifying the AT91 SPI driver? Thanks, Andrew -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss