@@ -457,13 +457,19 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
return PTR_ERR(i2s->regmap);
}
+ if (of_property_read_bool(np, "rockchip,i2s-broken-burst-len")) {
+ i2s->playback_dma_data.maxburst = 1;
+ i2s->capture_dma_data.maxburst = 1;
+ } else {
+ i2s->playback_dma_data.maxburst = 4;
+ i2s->capture_dma_data.maxburst = 4;
+ }
+
i2s->playback_dma_data.addr = res->start + I2S_TXDR;
i2s->playback_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
- i2s->playback_dma_data.maxburst = 4;
i2s->capture_dma_data.addr = res->start + I2S_RXDR;
i2s->capture_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
- i2s->capture_dma_data.maxburst = 4;
i2s->dev = &pdev->dev;
dev_set_drvdata(&pdev->dev, i2s);