diff options
Diffstat (limited to 'drivers/spi/spi-bcm63xx-hsspi.c')
| -rw-r--r-- | drivers/spi/spi-bcm63xx-hsspi.c | 36 | 
1 files changed, 17 insertions, 19 deletions
diff --git a/drivers/spi/spi-bcm63xx-hsspi.c b/drivers/spi/spi-bcm63xx-hsspi.c index cd0a6478f5e7..ee2528dad02d 100644 --- a/drivers/spi/spi-bcm63xx-hsspi.c +++ b/drivers/spi/spi-bcm63xx-hsspi.c @@ -349,7 +349,7 @@ static int bcm63xx_hsspi_do_prepend_txrx(struct spi_device *spi,  					 struct spi_transfer *t)  {  	struct bcm63xx_hsspi *bs = spi_master_get_devdata(spi->master); -	unsigned int chip_select = spi->chip_select; +	unsigned int chip_select = spi_get_chipselect(spi, 0);  	u16 opcode = 0, val;  	const u8 *tx = t->tx_buf;  	u8 *rx = t->rx_buf; @@ -441,7 +441,7 @@ static void bcm63xx_hsspi_set_cs(struct bcm63xx_hsspi *bs, unsigned int cs,  static void bcm63xx_hsspi_set_clk(struct bcm63xx_hsspi *bs,  				  struct spi_device *spi, int hz)  { -	unsigned int profile = spi->chip_select; +	unsigned int profile = spi_get_chipselect(spi, 0);  	u32 reg;  	reg = DIV_ROUND_UP(2048, DIV_ROUND_UP(bs->speed_hz, hz)); @@ -468,7 +468,7 @@ static void bcm63xx_hsspi_set_clk(struct bcm63xx_hsspi *bs,  static int bcm63xx_hsspi_do_txrx(struct spi_device *spi, struct spi_transfer *t)  {  	struct bcm63xx_hsspi *bs = spi_master_get_devdata(spi->master); -	unsigned int chip_select = spi->chip_select; +	unsigned int chip_select = spi_get_chipselect(spi, 0);  	u16 opcode = 0, val;  	int pending = t->len;  	int step_size = HSSPI_BUFFER_LEN; @@ -478,7 +478,7 @@ static int bcm63xx_hsspi_do_txrx(struct spi_device *spi, struct spi_transfer *t)  	bcm63xx_hsspi_set_clk(bs, spi, t->speed_hz);  	if (!t->cs_off) -		bcm63xx_hsspi_set_cs(bs, spi->chip_select, true); +		bcm63xx_hsspi_set_cs(bs, spi_get_chipselect(spi, 0), true);  	if (tx && rx)  		opcode = HSSPI_OP_READ_WRITE; @@ -545,14 +545,14 @@ static int bcm63xx_hsspi_setup(struct spi_device *spi)  	u32 reg;  	reg = __raw_readl(bs->regs + -			  HSSPI_PROFILE_SIGNAL_CTRL_REG(spi->chip_select)); +			  HSSPI_PROFILE_SIGNAL_CTRL_REG(spi_get_chipselect(spi, 0)));  	reg &= ~(SIGNAL_CTRL_LAUNCH_RISING | SIGNAL_CTRL_LATCH_RISING);  	if (spi->mode & SPI_CPHA)  		reg |= SIGNAL_CTRL_LAUNCH_RISING;  	else  		reg |= SIGNAL_CTRL_LATCH_RISING;  	__raw_writel(reg, bs->regs + -		     HSSPI_PROFILE_SIGNAL_CTRL_REG(spi->chip_select)); +		     HSSPI_PROFILE_SIGNAL_CTRL_REG(spi_get_chipselect(spi, 0)));  	mutex_lock(&bs->bus_mutex);  	reg = __raw_readl(bs->regs + HSSPI_GLOBAL_CTRL_REG); @@ -560,16 +560,16 @@ static int bcm63xx_hsspi_setup(struct spi_device *spi)  	/* only change actual polarities if there is no transfer */  	if ((reg & GLOBAL_CTRL_CS_POLARITY_MASK) == bs->cs_polarity) {  		if (spi->mode & SPI_CS_HIGH) -			reg |= BIT(spi->chip_select); +			reg |= BIT(spi_get_chipselect(spi, 0));  		else -			reg &= ~BIT(spi->chip_select); +			reg &= ~BIT(spi_get_chipselect(spi, 0));  		__raw_writel(reg, bs->regs + HSSPI_GLOBAL_CTRL_REG);  	}  	if (spi->mode & SPI_CS_HIGH) -		bs->cs_polarity |= BIT(spi->chip_select); +		bs->cs_polarity |= BIT(spi_get_chipselect(spi, 0));  	else -		bs->cs_polarity &= ~BIT(spi->chip_select); +		bs->cs_polarity &= ~BIT(spi_get_chipselect(spi, 0));  	mutex_unlock(&bs->bus_mutex); @@ -600,7 +600,7 @@ static int bcm63xx_hsspi_do_dummy_cs_txrx(struct spi_device *spi,  	 * e. At the end restore the polarities again to their default values.  	 */ -	dummy_cs = !spi->chip_select; +	dummy_cs = !spi_get_chipselect(spi, 0);  	bcm63xx_hsspi_set_cs(bs, dummy_cs, true);  	list_for_each_entry(t, &msg->transfers, transfer_list) { @@ -633,22 +633,22 @@ static int bcm63xx_hsspi_do_dummy_cs_txrx(struct spi_device *spi,  				keep_cs = true;  			} else {  				if (!t->cs_off) -					bcm63xx_hsspi_set_cs(bs, spi->chip_select, false); +					bcm63xx_hsspi_set_cs(bs, spi_get_chipselect(spi, 0), false);  				spi_transfer_cs_change_delay_exec(msg, t);  				if (!list_next_entry(t, transfer_list)->cs_off) -					bcm63xx_hsspi_set_cs(bs, spi->chip_select, true); +					bcm63xx_hsspi_set_cs(bs, spi_get_chipselect(spi, 0), true);  			}  		} else if (!list_is_last(&t->transfer_list, &msg->transfers) &&  			   t->cs_off != list_next_entry(t, transfer_list)->cs_off) { -			bcm63xx_hsspi_set_cs(bs, spi->chip_select, t->cs_off); +			bcm63xx_hsspi_set_cs(bs, spi_get_chipselect(spi, 0), t->cs_off);  		}  	}  	bcm63xx_hsspi_set_cs(bs, dummy_cs, false);  	if (status || !keep_cs) -		bcm63xx_hsspi_set_cs(bs, spi->chip_select, false); +		bcm63xx_hsspi_set_cs(bs, spi_get_chipselect(spi, 0), false);  	return status;  } @@ -878,7 +878,7 @@ out_disable_clk:  } -static int bcm63xx_hsspi_remove(struct platform_device *pdev) +static void bcm63xx_hsspi_remove(struct platform_device *pdev)  {  	struct spi_master *master = platform_get_drvdata(pdev);  	struct bcm63xx_hsspi *bs = spi_master_get_devdata(master); @@ -888,8 +888,6 @@ static int bcm63xx_hsspi_remove(struct platform_device *pdev)  	clk_disable_unprepare(bs->pll_clk);  	clk_disable_unprepare(bs->clk);  	sysfs_remove_group(&pdev->dev.kobj, &bcm63xx_hsspi_group); - -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -946,7 +944,7 @@ static struct platform_driver bcm63xx_hsspi_driver = {  		.of_match_table = bcm63xx_hsspi_of_match,  	},  	.probe		= bcm63xx_hsspi_probe, -	.remove		= bcm63xx_hsspi_remove, +	.remove_new	= bcm63xx_hsspi_remove,  };  module_platform_driver(bcm63xx_hsspi_driver);  |