On 05/17/2018 07:54 AM, Mark Brown wrote:
On Tue, May 15, 2018 at 12:22:24PM +0300, Radu Pirea wrote:
On Mon, 2018-05-14 at 20:38 +0300, Andy Shevchenko wrote:
So, what is not going as expected in "SPI core takes care of CSs"
case?
Did you use oscilloscope for that?
Yes, I used and CSs was not asserted. Anyway, I will will try again.
If the core chip select handling is not working properly for some reason
then the core chip select handling should be fixed rather than just open
coding in your driver - probably it's also broken for other users.
Hi Mark,
I found the fix for cs-gpios. If I change spi_add_device function like
this(see below) everything is ok.
int spi_add_device(struct spi_device *spi)
...
if (ctlr->cs_gpios){
spi->cs_gpio = ctlr->cs_gpios[spi->chip_select];
if(gpio_is_valid(spi->cs_gpio))
gpio_direction_output(spi->cs_gpio, !(spi->mode &
SPI_CS_HIGH));
}
...
return status;
}
In the subsystem gpio direction of pins is never set and
gpio_set_value() don't set the direction.
In my opinion gpio_direction_output() set direction should be called in
spi_add_device. What do you think? Is ok?
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html