summaryrefslogtreecommitdiff
path: root/drivers/spi/spi-sh-hspi.c
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@ingics.com>2014-02-12 22:09:52 +0800
committerMark Brown <broonie@linaro.org>2014-02-23 12:44:49 +0900
commit4522193698d115761f9e4f340697f86975ac8e69 (patch)
tree67bdb7b4760bb4caf7200a0917a39644629a3d56 /drivers/spi/spi-sh-hspi.c
parent38dbfb59d1175ef458d006556061adeaa8751b72 (diff)
spi: sh-hspi: Convert to let spi core validate bits_per_word
Set bits_per_word_mask so spi core will reject transfers that attempt to use an unsupported bits_per_word value. Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'drivers/spi/spi-sh-hspi.c')
-rw-r--r--drivers/spi/spi-sh-hspi.c18
1 files changed, 2 insertions, 16 deletions
diff --git a/drivers/spi/spi-sh-hspi.c b/drivers/spi/spi-sh-hspi.c
index 82d2f922ffa0..dbd2c44f95e9 100644
--- a/drivers/spi/spi-sh-hspi.c
+++ b/drivers/spi/spi-sh-hspi.c
@@ -230,21 +230,6 @@ static int hspi_transfer_one_message(struct spi_master *master,
return ret;
}
-static int hspi_setup(struct spi_device *spi)
-{
- struct hspi_priv *hspi = spi_master_get_devdata(spi->master);
- struct device *dev = hspi->dev;
-
- if (8 != spi->bits_per_word) {
- dev_err(dev, "bits_per_word should be 8\n");
- return -EIO;
- }
-
- dev_dbg(dev, "%s setup\n", spi->modalias);
-
- return 0;
-}
-
static void hspi_cleanup(struct spi_device *spi)
{
struct hspi_priv *hspi = spi_master_get_devdata(spi->master);
@@ -300,12 +285,13 @@ static int hspi_probe(struct platform_device *pdev)
master->num_chipselect = 1;
master->bus_num = pdev->id;
- master->setup = hspi_setup;
master->cleanup = hspi_cleanup;
master->mode_bits = SPI_CPOL | SPI_CPHA;
master->dev.of_node = pdev->dev.of_node;
master->auto_runtime_pm = true;
master->transfer_one_message = hspi_transfer_one_message;
+ master->bits_per_word_mask = SPI_BPW_MASK(8);
+
ret = devm_spi_register_master(&pdev->dev, master);
if (ret < 0) {
dev_err(&pdev->dev, "spi_register_master error.\n");