diff --git a/Documentation/devicetree/bindings/spi/spi-bus.txt b/Documentation/devicetree/bindings/spi/spi-bus.txt index 296015e3c632af7d7f6dbc85e862bfd20044a296..800dafe5b01b1b6cc0e6c8f4fcd6d9432c9d699f 100644 --- a/Documentation/devicetree/bindings/spi/spi-bus.txt +++ b/Documentation/devicetree/bindings/spi/spi-bus.txt @@ -55,6 +55,16 @@ contain the following properties. chip select active high - spi-3wire - (optional) Empty property indicating device requires 3-wire mode. +- spi-tx-bus-width - (optional) The bus width(number of data wires) that + used for MOSI. Defaults to 1 if not present. +- spi-rx-bus-width - (optional) The bus width(number of data wires) that + used for MISO. Defaults to 1 if not present. + +Some SPI controllers and devices support Dual and Quad SPI transfer mode. +It allows data in SPI system transfered in 2 wires(DUAL) or 4 wires(QUAD). +Now the value that spi-tx-bus-width and spi-rx-bus-width can receive is +only 1(SINGLE), 2(DUAL) and 4(QUAD). +Dual/Quad mode is not allowed when 3-wire mode is used. If a gpio chipselect is used for the SPI slave the gpio number will be passed via the cs_gpio diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 7557f611457ffb0b4d6635218c6bedf23112e39a..0075318f4fa1170a542e20293d9e75456eb1fc63 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -870,7 +870,7 @@ static void of_register_spi_devices(struct spi_master *master) spi->mode |= SPI_3WIRE; /* Device DUAL/QUAD mode */ - prop = of_get_property(nc, "spi-tx-nbits", &len); + prop = of_get_property(nc, "spi-tx-bus-width", &len); if (prop && len == sizeof(*prop)) { switch (be32_to_cpup(prop)) { case SPI_NBITS_SINGLE: @@ -883,14 +883,14 @@ static void of_register_spi_devices(struct spi_master *master) break; default: dev_err(&master->dev, - "spi-tx-nbits %d not supported\n", + "spi-tx-bus-width %d not supported\n", be32_to_cpup(prop)); spi_dev_put(spi); continue; } } - prop = of_get_property(nc, "spi-rx-nbits", &len); + prop = of_get_property(nc, "spi-rx-bus-width", &len); if (prop && len == sizeof(*prop)) { switch (be32_to_cpup(prop)) { case SPI_NBITS_SINGLE: @@ -903,7 +903,7 @@ static void of_register_spi_devices(struct spi_master *master) break; default: dev_err(&master->dev, - "spi-rx-nbits %d not supported\n", + "spi-rx-bus-width %d not supported\n", be32_to_cpup(prop)); spi_dev_put(spi); continue;