Make the message control word parameters part of the register offsets
array so we have them all in one struct.

Signed-off-by: Jonas Gorski <[email protected]>
---
 drivers/spi/spi-bcm63xx.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/drivers/spi/spi-bcm63xx.c b/drivers/spi/spi-bcm63xx.c
index 6353607..42f33bc 100644
--- a/drivers/spi/spi-bcm63xx.c
+++ b/drivers/spi/spi-bcm63xx.c
@@ -128,6 +128,9 @@ enum bcm63xx_regs_spi {
        SPI_MSG_CTL,
        SPI_MSG_DATA,
        SPI_RX_DATA,
+       SPI_MSG_TYPE_SHIFT,
+       SPI_MSG_CTL_WIDTH,
+       SPI_MSG_DATA_SIZE,
 };
 
 #define BCM63XX_SPI_MAX_PREPEND                15
@@ -439,6 +442,9 @@ static const unsigned long bcm6348_spi_reg_offsets[] = {
        [SPI_MSG_CTL]           = SPI_6348_MSG_CTL,
        [SPI_MSG_DATA]          = SPI_6348_MSG_DATA,
        [SPI_RX_DATA]           = SPI_6348_RX_DATA,
+       [SPI_MSG_TYPE_SHIFT]    = SPI_6348_MSG_TYPE_SHIFT,
+       [SPI_MSG_CTL_WIDTH]     = SPI_6348_MSG_CTL_WIDTH,
+       [SPI_MSG_DATA_SIZE]     = SPI_6348_MSG_DATA_SIZE,
 };
 
 static const unsigned long bcm6358_spi_reg_offsets[] = {
@@ -454,6 +460,9 @@ static const unsigned long bcm6358_spi_reg_offsets[] = {
        [SPI_MSG_CTL]           = SPI_6358_MSG_CTL,
        [SPI_MSG_DATA]          = SPI_6358_MSG_DATA,
        [SPI_RX_DATA]           = SPI_6358_RX_DATA,
+       [SPI_MSG_TYPE_SHIFT]    = SPI_6358_MSG_TYPE_SHIFT,
+       [SPI_MSG_CTL_WIDTH]     = SPI_6358_MSG_CTL_WIDTH,
+       [SPI_MSG_DATA_SIZE]     = SPI_6358_MSG_DATA_SIZE,
 };
 
 static int bcm63xx_spi_probe(struct platform_device *pdev)
@@ -517,15 +526,9 @@ static int bcm63xx_spi_probe(struct platform_device *pdev)
        switch (resource_size(r)) {
        case SPI_6348_RSET_SIZE:
                bs->reg_offsets = bcm6348_spi_reg_offsets;
-               bs->msg_type_shift = SPI_6348_MSG_TYPE_SHIFT;
-               bs->msg_ctl_width = SPI_6348_MSG_CTL_WIDTH;
-               bs->fifo_size = SPI_6348_MSG_DATA_SIZE;
                break;
        case SPI_6358_RSET_SIZE:
                bs->reg_offsets = bcm6358_spi_reg_offsets;
-               bs->msg_type_shift = SPI_6358_MSG_TYPE_SHIFT;
-               bs->msg_ctl_width = SPI_6358_MSG_CTL_WIDTH;
-               bs->fifo_size = SPI_6358_MSG_DATA_SIZE;
                break;
        default:
                ret = -EINVAL;
@@ -534,6 +537,10 @@ static int bcm63xx_spi_probe(struct platform_device *pdev)
                goto out_err;
        }
 
+       bs->msg_type_shift = bs->reg_offsets[SPI_MSG_TYPE_SHIFT];
+       bs->msg_ctl_width = bs->reg_offsets[SPI_MSG_CTL_WIDTH];
+       bs->fifo_size = bs->reg_offsets[SPI_MSG_DATA_SIZE];
+
        bs->tx_io = (u8 *)(bs->regs + bs->reg_offsets[SPI_MSG_DATA]);
        bs->rx_io = (const u8 *)(bs->regs + bs->reg_offsets[SPI_RX_DATA]);
 
-- 
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to