spi: Change FIFO flush operation and spi channel off
Setting SW_RST does TX/RX FIFO flush. After FIFO flush, SW_RST should be cleared. The above setting and clearing SW_RST operation should be done after spi channel off. Signed-off-by: Kyoungil Kim <ki0351.kim@samsung.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
This commit is contained in:
parent
6f38010d54
commit
7d859ff493
1 changed files with 4 additions and 4 deletions
|
@ -214,6 +214,10 @@ static void flush_fifo(struct s3c64xx_spi_driver_data *sdd)
|
||||||
|
|
||||||
writel(0, regs + S3C64XX_SPI_PACKET_CNT);
|
writel(0, regs + S3C64XX_SPI_PACKET_CNT);
|
||||||
|
|
||||||
|
val = readl(regs + S3C64XX_SPI_CH_CFG);
|
||||||
|
val &= ~(S3C64XX_SPI_CH_RXCH_ON | S3C64XX_SPI_CH_TXCH_ON);
|
||||||
|
writel(val, regs + S3C64XX_SPI_CH_CFG);
|
||||||
|
|
||||||
val = readl(regs + S3C64XX_SPI_CH_CFG);
|
val = readl(regs + S3C64XX_SPI_CH_CFG);
|
||||||
val |= S3C64XX_SPI_CH_SW_RST;
|
val |= S3C64XX_SPI_CH_SW_RST;
|
||||||
val &= ~S3C64XX_SPI_CH_HS_EN;
|
val &= ~S3C64XX_SPI_CH_HS_EN;
|
||||||
|
@ -248,10 +252,6 @@ static void flush_fifo(struct s3c64xx_spi_driver_data *sdd)
|
||||||
val = readl(regs + S3C64XX_SPI_MODE_CFG);
|
val = readl(regs + S3C64XX_SPI_MODE_CFG);
|
||||||
val &= ~(S3C64XX_SPI_MODE_TXDMA_ON | S3C64XX_SPI_MODE_RXDMA_ON);
|
val &= ~(S3C64XX_SPI_MODE_TXDMA_ON | S3C64XX_SPI_MODE_RXDMA_ON);
|
||||||
writel(val, regs + S3C64XX_SPI_MODE_CFG);
|
writel(val, regs + S3C64XX_SPI_MODE_CFG);
|
||||||
|
|
||||||
val = readl(regs + S3C64XX_SPI_CH_CFG);
|
|
||||||
val &= ~(S3C64XX_SPI_CH_RXCH_ON | S3C64XX_SPI_CH_TXCH_ON);
|
|
||||||
writel(val, regs + S3C64XX_SPI_CH_CFG);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void s3c64xx_spi_dmacb(void *data)
|
static void s3c64xx_spi_dmacb(void *data)
|
||||||
|
|
Loading…
Add table
Reference in a new issue