Skip to contentSkip to conversation

does cs_change work in spi-dw.c?

DISCUSSION Michael Jones 2 participants 2 messages Aug 12, 2014 – Sep 2, 2014 1 message not in the archive SPI

lore
Share & tools
lore
#0 lore raw

Hello,

I'm using spi-dw.c via a userspace spidev device. I'm doing an SPI read access via the ioctl SPI_IOC_MESSAGE(). I would like to execute two messages, with the chip select staying active between the two. If I understand correctly, this is what the member 'cs_change' in 'struct spi_ioc_transfer' is suppose to provide. What I observe, though, is that the chip select deactivates between messages regardless of how I set 'cs_change'.

Can anybody confirm that they're able to use the cs_change switch with this driver?

I'm using an older kernel (3.10.31-LTSI), but I've browsed the more recent changes to this driver and didn't see anything that obviously effected this feature.

thanks,
Michael

MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Uwe Furtner, Erhard Meier
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw

Hi Jones and Jin,

AFAIK, the dw-spi controller HW has a feature (so-called) that the CS will be de-asserted when the TX FIFO is empty, if you use the chip select register for CS.

So if you meet problem with the chip select stuff, there are 2 ways you may try:
1. Try to keep the TX FIFO not empty
2. Use a dedicated extern GPIO based line for the chip select.

There is already a "cs_control" hook in current spi-dw code, and you can tweak your device's platform data to set the right cs_control. (btw: that code is contributed by other developer, and myself haven't manually tested that).

- Feng

Quoted 24 lines

-----Original Message-----
From: Michael Jones [mailto:[email protected]]
Sent: Tuesday, August 12, 2014 11:25 PM
To: [email protected]
Cc: Tang, Feng
Subject: does cs_change work in spi-dw.c?

Hello,

I'm using spi-dw.c via a userspace spidev device. I'm doing an SPI read access via the ioctl SPI_IOC_MESSAGE(). I would like to execute two messages, with the chip select staying active between the two. If I understand correctly, this is what the member 'cs_change' in 'struct spi_ioc_transfer' is suppose to provide. What I observe, though, is that the chip select deactivates between messages regardless of how I set 'cs_change'.

Can anybody confirm that they're able to use the cs_change switch with this driver?

I'm using an older kernel (3.10.31-LTSI), but I've browsed the more recent changes to this driver and didn't see anything that obviously effected this feature.

Quoted 6 lines

thanks,
Michael

MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Uwe Furtner, Erhard Meier

--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html