Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

spi: imx: fix ERR009165

Change to XCH mode even in dma mode, please refer to the below
errata:
https://www.nxp.com/docs/en/errata/IMX6DQCE.pdf

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>

authored by

Robin Gong and committed by
Shawn Guo
980f8848 a4965888

+3 -7
+3 -7
drivers/spi/spi-imx.c
··· 591 591 ctrl |= mx51_ecspi_clkdiv(spi_imx, spi_imx->spi_bus_clk, &clk); 592 592 spi_imx->spi_bus_clk = clk; 593 593 594 - if (spi_imx->usedma) 595 - ctrl |= MX51_ECSPI_CTRL_SMC; 594 + /* ERR009165: work in XHC mode as PIO */ 595 + ctrl &= ~MX51_ECSPI_CTRL_SMC; 596 596 597 597 writel(ctrl, spi_imx->base + MX51_ECSPI_CTRL); 598 598 ··· 623 623 * and enable DMA request. 624 624 */ 625 625 writel(MX51_ECSPI_DMA_RX_WML(spi_imx->wml - 1) | 626 - MX51_ECSPI_DMA_TX_WML(spi_imx->wml) | 626 + MX51_ECSPI_DMA_TX_WML(0) | 627 627 MX51_ECSPI_DMA_RXT_WML(spi_imx->wml) | 628 628 MX51_ECSPI_DMA_TEDEN | MX51_ECSPI_DMA_RXDEN | 629 629 MX51_ECSPI_DMA_RXTDEN, spi_imx->base + MX51_ECSPI_DMA); ··· 1238 1238 struct spi_master *master) 1239 1239 { 1240 1240 int ret; 1241 - 1242 - /* use pio mode for i.mx6dl chip TKT238285 */ 1243 - if (of_machine_is_compatible("fsl,imx6dl")) 1244 - return 0; 1245 1241 1246 1242 spi_imx->wml = spi_imx->devtype_data->fifo_size / 2; 1247 1243