spi: orion: add LSB support
The orion spi driver currently only supports the normal (i.e. MSB) mode.
This patch adds LSB first mode.
Also correct the comment about supported SPI modes that was left over by
b15d5d7004
("spi/orion: Add SPI_CHPA and SPI_CPOL support to kirkwood
driver.").
Signed-off-by: Bastian Stender <bst@pengutronix.de>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Родитель
fafd679407
Коммит
1017f42401
|
@ -39,6 +39,8 @@
|
|||
|
||||
#define ORION_SPI_IF_CTRL_REG 0x00
|
||||
#define ORION_SPI_IF_CONFIG_REG 0x04
|
||||
#define ORION_SPI_IF_RXLSBF BIT(14)
|
||||
#define ORION_SPI_IF_TXLSBF BIT(13)
|
||||
#define ORION_SPI_DATA_OUT_REG 0x08
|
||||
#define ORION_SPI_DATA_IN_REG 0x0c
|
||||
#define ORION_SPI_INT_CAUSE_REG 0x10
|
||||
|
@ -234,6 +236,11 @@ orion_spi_mode_set(struct spi_device *spi)
|
|||
reg |= ORION_SPI_MODE_CPOL;
|
||||
if (spi->mode & SPI_CPHA)
|
||||
reg |= ORION_SPI_MODE_CPHA;
|
||||
if (spi->mode & SPI_LSB_FIRST)
|
||||
reg |= ORION_SPI_IF_RXLSBF | ORION_SPI_IF_TXLSBF;
|
||||
else
|
||||
reg &= ~(ORION_SPI_IF_RXLSBF | ORION_SPI_IF_TXLSBF);
|
||||
|
||||
writel(reg, spi_reg(orion_spi, ORION_SPI_IF_CONFIG_REG));
|
||||
}
|
||||
|
||||
|
@ -591,8 +598,8 @@ static int orion_spi_probe(struct platform_device *pdev)
|
|||
master->bus_num = cell_index;
|
||||
}
|
||||
|
||||
/* we support only mode 0, and no options */
|
||||
master->mode_bits = SPI_CPHA | SPI_CPOL;
|
||||
/* we support all 4 SPI modes and LSB first option */
|
||||
master->mode_bits = SPI_CPHA | SPI_CPOL | SPI_LSB_FIRST;
|
||||
master->set_cs = orion_spi_set_cs;
|
||||
master->transfer_one = orion_spi_transfer_one;
|
||||
master->num_chipselect = ORION_NUM_CHIPSELECTS;
|
||||
|
|
Загрузка…
Ссылка в новой задаче