Skip to contentSkip to conversation

SPI and spi_cs_activate

U-Boot Wolfgang Wegner 2 participants 4 messages Jan 29, 2010

lore
Share & tools
lore
#0 lore raw

Hi list,

I am trying to get the spi_mmc driver by Robert Selberg and Hans Eklund to run on my new Coldfire board. (The driver was posted as a patch some time ago, clearly marked as not ready for mainline. I just did not figure out the correct search term to give the message ID.)

Now I am running into problems because the driver uses spi_cs_[de]activate, which is rather useless on coldfire which does automatic cs.

Looking through other drivers' code it seems to me that spi_cs_[de]activate was never meant to be called from anybody else but some special SPI drivers that can not aotumatically control cs lines or for systems where SPI is done in software and so setting the appropriate GPIOs is handed over to special board-dependent code.

Is this correct, or am I missing something?

Regards,
Wolfgang

#1 lore raw
Quoted 5 lines · On Friday 29 January 2010 10:59:28 Wolfgang Wegner wrote:

I am trying to get the spi_mmc driver by Robert Selberg and Hans Eklund to run on my new Coldfire board. (The driver was posted as a patch some time ago, clearly marked as not ready for mainline. I just did not figure out the correct search term to give the message ID.)

Quoted 8 lines

Now I am running into problems because the driver uses spi_cs_[de]activate, which is rather useless on coldfire which does automatic cs.

Looking through other drivers' code it seems to me that spi_cs_[de]activate was never meant to be called from anybody else but some special SPI drivers that can not aotumatically control cs lines or for systems where SPI is done in software and so setting the appropriate GPIOs is handed over to special board-dependent code.

there are plenty of SPI controllers which allow the CS to be manually controlled. this isnt a "special" driver.

the MMC/SPI driver was written on a Blackfin system. it working on any other system is coincidental as a result of leveraging the common frameworks. feel free to submit fixes.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20100129/3f571dfb/attachment.pgp

#2 lore raw

Hi Mike,

Quoted 9 lines · Mike Frysinger
Quoted 8 lines · On Friday 29 January 2010 10:59:28 Wolfgang Wegner wrote:

I am trying to get the spi_mmc driver by Robert Selberg and Hans Eklund to run on my new Coldfire board. (The driver was posted as a patch some time ago, clearly marked as not ready for mainline. I just did not figure out the correct search term to give the message ID.)

Now I am running into problems because the driver uses spi_cs_[de]activate, which is rather useless on coldfire which does automatic cs.

Quoted 8 lines
Quoted 5 lines

Looking through other drivers' code it seems to me that spi_cs_[de]activate was never meant to be called from anybody else but some special SPI drivers that can not aotumatically control cs lines or for systems where SPI is done in software and so setting the appropriate GPIOs is handed over to special board-dependent code.

there are plenty of SPI controllers which allow the CS to be manually controlled. this isnt a "special" driver.

OK, of course controlling CS manually is possible on most systems (via GPIO). What I meant is that most systems do not care to control it automatically (mostly for complexity reasons or because of real HW limitations, as far as I understand).

Quoted 3 lines

the MMC/SPI driver was written on a Blackfin system. it working on any other system is coincidental as a result of leveraging the common frameworks. feel free to submit fixes.

This is my intention in case I understand in which direction I have to fix. (And in case I then get it to work in such a way, of course.)

So, maybe a more clear question:

Are all SPI drivers supposed to supply functions to manually control the CS lines? If so, what means shall be provided to disable automatic control?

Regards,
Wolfgang

#3 lore raw
Quoted 17 lines · On Friday 29 January 2010 11:18:10 Wolfgang Wegner wrote:
Quoted 16 lines · Mike Frysinger
Quoted 14 lines · On Friday 29 January 2010 10:59:28 Wolfgang Wegner wrote:

I am trying to get the spi_mmc driver by Robert Selberg and Hans Eklund to run on my new Coldfire board. (The driver was posted as a patch some time ago, clearly marked as not ready for mainline. I just did not figure out the correct search term to give the message ID.)

Now I am running into problems because the driver uses spi_cs_[de]activate, which is rather useless on coldfire which does automatic cs.

Looking through other drivers' code it seems to me that spi_cs_[de]activate was never meant to be called from anybody else but some special SPI drivers that can not aotumatically control cs lines or for systems where SPI is done in software and so setting the appropriate GPIOs is handed over to special board-dependent code.

Quoted 7 lines
Quoted 2 lines

there are plenty of SPI controllers which allow the CS to be manually controlled. this isnt a "special" driver.

OK, of course controlling CS manually is possible on most systems (via GPIO). What I meant is that most systems do not care to control it automatically (mostly for complexity reasons or because of real HW limitations, as far as I understand).

i'm not talking about GPIOs. i'm talking about dedicated CS pins that are connected to the controller.

Quoted 6 lines
Quoted 3 lines

the MMC/SPI driver was written on a Blackfin system. it working on any other system is coincidental as a result of leveraging the common frameworks. feel free to submit fixes.

This is my intention in case I understand in which direction I have to fix. (And in case I then get it to work in such a way, of course.)

see how the linux mmc/spi driver does it. i dont think linux provides a dedicate cs function for SPI drivers to use, but the linux mmc/spi doesnt seem to have a problem.

Quoted 2 lines

Are all SPI drivers supposed to supply functions to manually control the CS lines?

*shrug*

Quoted 1 line

If so, what means shall be provided to disable automatic control?

i dont understand the question. implement the two functions that are part of the SPI API.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20100129/850c0515/attachment.pgp