mfd: da9052: Fix register access via SPI
authorAdam Ward <adam.ward.opensource@diasemi.com>
Wed, 4 Mar 2015 16:13:12 +0000 (16:13 +0000)
committerLee Jones <lee.jones@linaro.org>
Thu, 12 Mar 2015 09:06:40 +0000 (09:06 +0000)
The range of registers used by this driver exceeds that available
via SPI with no paging (127), so we have to override the values
from the default config which is set-up for I2C access.
Also change SPI settings to match device's recommended OTP values.

Signed-off-by: Adam Ward <adam.ward.opensource@diasemi.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/da9052-spi.c

index 45ae0b7d13ef19749311a3cdbc2f06dd456f8e4e..b5de8a6856c0de07f29c10dbeaa4de67c0ac4617 100644 (file)
@@ -32,7 +32,7 @@ static int da9052_spi_probe(struct spi_device *spi)
        if (!da9052)
                return -ENOMEM;
 
-       spi->mode = SPI_MODE_0 | SPI_CPOL;
+       spi->mode = SPI_MODE_0;
        spi->bits_per_word = 8;
        spi_setup(spi);
 
@@ -43,6 +43,10 @@ static int da9052_spi_probe(struct spi_device *spi)
 
        config = da9052_regmap_config;
        config.read_flag_mask = 1;
+       config.reg_bits = 7;
+       config.pad_bits = 1;
+       config.val_bits = 8;
+       config.use_single_rw = 1;
 
        da9052->regmap = devm_regmap_init_spi(spi, &config);
        if (IS_ERR(da9052->regmap)) {