[spi-devel-general] [PATCH v3 0/2] spi: driver for Cirrus EP93xx SPI controller
Martin Guy
martinwguy at gmail.com
Sat Apr 17 14:43:23 EDT 2010
(sorry for the duplicate, Mika, I forgot to include the list)
On 4/17/10, Mika Westerberg <mika.westerberg at iki.fi> wrote:
> However, I'm not sure what you mean by limited only to built-in GPIOs? Currently
> the driver does:
>
> info->cs_control(spi->chip_select, value, info->data);
>
> when it wants to assert/deassert the chip select.
There's a further strangeness when a board has a single SPI device not
using any GPIO chip select. At present, clients seem to need to
declare that they have 1 chip select and to provide an empty
cs_control function that does nothing. For example:
static void null_cs_control(unsigned cs, unsigned value, void *data) {
/* Sim.One only has MMC card and no GPIO chip select logic */
}
static struct ep93xx_spi_info simone_spi_info = {
.num_chipselect = 1,
.cs_control = null_cs_control,
.data = NULL,
};
...
static void __init simone_init_machine(void)
{
...
spi_register_board_info(simone_spi_board_info,
ARRAY_SIZE(simone_spi_board_info));
ep93xx_register_spi(&simone_spi_info);
...
Allowing cs_control to be NULL would do away with the empty function, but
when I just tried with num_chipselect = 0 the device did not appear. There
may be a better solution.
M
More information about the linux-arm-kernel
mailing list