[PATCH] spi: omap2-mcspi: Fix native cs with new set_cs
Michael Welling
mwelling at ieee.org
Fri May 22 08:31:57 PDT 2015
On Fri, May 22, 2015 at 01:25:44PM +0100, Mark Brown wrote:
> On Thu, May 21, 2015 at 06:48:33PM -0500, Michael Welling wrote:
>
> > So after reverting this patch I found there is a issue in that it is difficult
> > to determine when a transfer is complete to properly drive the chipselect from
> > within the transfer_one function.
>
> Is unprepare_message() a suitable place here? I've got a feeling the
> answer is no...
>
> > Then I figured that we could handle the case when GPIOs are being used with
> > some conditional calls to omap2_mcspi_set_cs in the omap2_mcspi_work_one
> > function.
> >
> > Near the beginning of the function I added:
> > if (gpio_is_valid(spi->cs_gpio))
> > omap2_mcspi_set_cs(spi, 0);
> >
> > Near the end of the function I added:
> > if (gpio_is_valid(spi->cs_gpio))
> > omap2_mcspi_set_cs(spi, 1);
> >
> > This makes GPIO chip select support work while leaving the native working
> > as previous.
> >
> > Is this solution acceptible?
>
> I think that's probably OK as well, it's not ideal though (and risky if
> the chip select is routed somewhere...).
>
> > In the process of reviewing the changes I found a few other things that
> > should be changed as well.
>
> Please send fixes for these as separate patches (ideally without any
> dependency on your new work so we can send them to Linus as fixes).
>
Well actually these fixes are needed as the results of the first three patches
pushed into next.
When switching from transfer_one_message to tranfer_one I did not realize that
the delay was handled in the core.
When adding the set_cs function I did not notice that the enable was
complemented by the core driver.
> > Here you will see a delay that is already handled by the core spi driver:
> > https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tree/drivers/spi/spi-omap2-mcspi.c#n1166
>
> I can't actually see that since I have no internet access right now!
That's like a fish out of water.
More information about the linux-arm-kernel
mailing list