linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: McSPI questions pertaining to GPIO chip select support
@ 2011-08-30 10:14 Raju Sana
  2011-08-30 13:50 ` Ben Gamari
  0 siblings, 1 reply; 19+ messages in thread
From: Raju Sana @ 2011-08-30 10:14 UTC (permalink / raw)
  To: Ben Gamari
  Cc: David Brownell, Michael Hennerich, beagleboard, Eric Miao,
	spi-devel-general, linux-omap

Hi Ben,

Could you please post your patch as I am also working the similar design.
I need to modify the existing McSPI driver to support 3 codec chips.

Thanks.
Venkat Raju.


On Thu, Jan 28, 2010 at 9:40 AM, Ben Gamari <bgamari.foss-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:

> Hey all!
>
> Recently I've been thinking about adding support to the McSPI driver for
> using GPIO pins as chip selects. As a starting point, I've browsed the
> driver source trying to identify what changes would be necessary to add
> this support. It seems like the rough idea is,
>
>  a) add a cs_gpio field to the device struct (omap2_mcspi)
>  b) modify omap2_mcspi_force_cs() to use cs_gpio instead of the
>     CHxCONF[FORCE] bit if cs_gpio is valid
>
> Unfortunately, I'm having a bit of difficulty seeing how the existing
> configuration works. In master mode, it seems that the controller is
> configured in single forced channel mode (MCSPI_MODULECTRL_SINGLE).  As
> far as I can tell, this means that the driver is responsible for
> managing the chip selects through the MCSPI_CHxCONF[FORCE] bits. It
> seems that this is ideal as little will need to be changed to
> incorporate GPIO CS support.
>
> Nevertheless, the timing of the various operations isn't making sense to
> me. As far as I understand it, the callgraph is as follows,
>
>
> omap2_mcspi_work():
>  loop over messages
>    omap2_mcspi_set_enable(1)
>    loop over transfers:
>      configure bus parameters
>      if (!cs_active) cs = 1
>      if (dma):
>        omap2_mcspi_txrx_dma()
>      else:
>        omap2_mcspi_txrx_pio()
>      if (cs_change) cs = 0
>    end loop
>
>    if (cs_active) cs = 0
>    omap2_mcspi_set_enable(0)
>  end loop
>
>
> It seems that omap2_mcspi_set_enable() is called to enable the channel
> (MCSPI_CHCTRLx[EN] is set) before force_cs() is called. If I'm
> interpreting the hardware documentation correctly, the enable bit (among
> other things) starts the SPI clock, meaning that the chip will begin
> clocking out zeros to the device before CS is brought high.
> Furthermore, even after CS is brought high, it seems there could be a
> fair amount of time before the chip begins actually clocking out valid
> data.
>
> As I am writing this, it now occurs to me that perhaps the chip doesn't
> start SPI_CLK until it has data to send. It seems that if this were the
> case my concerns would be resolved. However, it is not at all clear that
> this is the case from the documentation. When exactly does the
> controller start the bus clock? Is this stated explicitly anywhere in
> the documentation?
>
> Any input you could offer would be greatly appreciated.
> Thanks for your time.
>
> - Ben
>
>
> P.S. The more and more I think about it, it seems like my hypothesis is
> the only logical behavior. It would be great if someone could confirm my
> suspicions, however. It really seems like this should be in the
> documentation either way.
>
> P.P.S. I apologize if this is something someone familiar with SPI should
> just know. My knowledge is a little spotty on this sort of thing.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
------------------------------------------------------------------------------
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free "Love Thy Logs" t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev

^ permalink raw reply	[flat|nested] 19+ messages in thread
* Re: McSPI questions pertaining to GPIO chip select support
@ 2010-01-28  4:33 jassi brar
  2010-12-21 17:56 ` [PATCH] mcspi: Add support for GPIO chip select lines Ben Gamari
  0 siblings, 1 reply; 19+ messages in thread
From: jassi brar @ 2010-01-28  4:33 UTC (permalink / raw)
  To: Ben Gamari
  Cc: David Brownell, Michael Hennerich, beagleboard, Eric Miao,
	spi-devel-general, linux-omap

On Thu, Jan 28, 2010 at 1:10 PM, Ben Gamari <bgamari.foss-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> Hey all!
>
> Recently I've been thinking about adding support to the McSPI driver for
> using GPIO pins as chip selects. As a starting point, I've browsed the
> driver source trying to identify what changes would be necessary to add
> this support. It seems like the rough idea is,
You may loot at drivers/spi/spi_s3c64xx.c in Grant Likely's tree.

It doesn't put limit on the number of CS and not even on whether
the CS mechanism is simple GPIO toggling(though the callback
type is defined to match gpio_set_value).
For platform side of it, you need to look in to Ben Dooks' tree.

hth

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2011-08-30 13:51 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <c0ffcf4415b8edbf55d653a620b92fbbbcd8fed7>
     [not found] ` <1297635034-24504-1-git-send-email-bgamari.foss@gmail.com>
     [not found]   ` <20110302215026.GA22854@angua.secretlab.ca>
     [not found]     ` <87sjv517yd.fsf@gmail.com>
     [not found]       ` <f7a269db-3bcf-4bac-8c38-b363e5c7bd0b@email.android.com>
2011-03-13 19:04         ` GPIO chip select support in McSPI Ben Gamari
2011-03-13 19:05           ` [PATCH] mcspi: Add support for GPIO chip select lines Ben Gamari
2011-03-14 19:27             ` Grant Likely
2011-03-15  2:06               ` Ben Gamari
2011-03-15  2:10                 ` Grant Likely
2011-03-14 19:25           ` GPIO chip select support in McSPI Grant Likely
2011-03-15  2:22             ` Ben Gamari
2011-03-15  3:29               ` Grant Likely
2011-08-30 10:14 McSPI questions pertaining to GPIO chip select support Raju Sana
2011-08-30 13:50 ` Ben Gamari
2011-08-30 13:50   ` [PATCH] mcspi: Add support for GPIO chip select lines Ben Gamari
  -- strict thread matches above, loose matches on Subject: below --
2010-01-28  4:33 McSPI questions pertaining to GPIO chip select support jassi brar
2010-12-21 17:56 ` [PATCH] mcspi: Add support for GPIO chip select lines Ben Gamari
2010-12-23 19:59   ` Tony Lindgren
2010-12-23 21:38   ` Grant Likely
2010-12-23 23:09     ` Ben Gamari
2010-12-24  0:37       ` Grant Likely
2010-12-24  2:27         ` Ben Gamari
2010-12-24  3:28           ` Grant Likely
2010-12-24  6:05             ` Ben Gamari
2011-02-12  8:33               ` Grant Likely
2011-02-13 22:07                 ` Ben Gamari

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).