Signed-off-by: Adrian Fiergolski <adrian.fiergol...@cern.ch> --- drivers/spi/spi.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 0239b45..d2267e9 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -1549,6 +1549,17 @@ of_register_spi_device(struct spi_master *master, struct device_node *nc) } spi->max_speed_hz = value; + /* Device bits-per-word */ + if( ! of_property_read_u32(nc, "spi-bits-per-word", &value) ){ + if( value > 32 ) + dev_warn(&master->dev, + "bits-per-word %d not supported\n", + value); + else + spi->bits_per_word = value; + } + + /* Store a pointer to the node in the device structure */ of_node_get(nc); spi->dev.of_node = nc; @@ -1626,6 +1637,13 @@ static int acpi_spi_add_resource(struct acpi_resource *ares, void *data) spi->max_speed_hz = sb->connection_speed; + if(sb->data_bit_length > 32) + dev_warn(&master->dev, + "bits-per-word %d not supported\n", + sb->data_bit_length); + else + spi->bits_per_word = sb->data_bit_length; + if (sb->clock_phase == ACPI_SPI_SECOND_PHASE) spi->mode |= SPI_CPHA; if (sb->clock_polarity == ACPI_SPI_START_HIGH) -- 2.9.3