ASoC: fsl_sai: Add registers definition for multiple datalines
SAI IP supports up to 8 data lines. The configuration of supported number of data lines is decided at SoC integration time. This patch adds definitions for all related data TX/RX registers: * TDR0..7, Transmit data register * TFR0..7, Transmit FIFO register * RDR0..7, Receive data register * RFR0..7, Receive FIFO register Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com> Acked-by: Nicolin Chen <nicoleotsuka@gmail.com> Link: https://lore.kernel.org/r/20190806151214.6783-2-daniel.baluta@nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:

committed by
Mark Brown

parent
abf31feea2
commit
5f0ac20ed6
@@ -685,7 +685,14 @@ static struct reg_default fsl_sai_reg_defaults[] = {
|
||||
{FSL_SAI_TCR3, 0},
|
||||
{FSL_SAI_TCR4, 0},
|
||||
{FSL_SAI_TCR5, 0},
|
||||
{FSL_SAI_TDR, 0},
|
||||
{FSL_SAI_TDR0, 0},
|
||||
{FSL_SAI_TDR1, 0},
|
||||
{FSL_SAI_TDR2, 0},
|
||||
{FSL_SAI_TDR3, 0},
|
||||
{FSL_SAI_TDR4, 0},
|
||||
{FSL_SAI_TDR5, 0},
|
||||
{FSL_SAI_TDR6, 0},
|
||||
{FSL_SAI_TDR7, 0},
|
||||
{FSL_SAI_TMR, 0},
|
||||
{FSL_SAI_RCR1, 0},
|
||||
{FSL_SAI_RCR2, 0},
|
||||
@@ -704,7 +711,14 @@ static bool fsl_sai_readable_reg(struct device *dev, unsigned int reg)
|
||||
case FSL_SAI_TCR3:
|
||||
case FSL_SAI_TCR4:
|
||||
case FSL_SAI_TCR5:
|
||||
case FSL_SAI_TFR:
|
||||
case FSL_SAI_TFR0:
|
||||
case FSL_SAI_TFR1:
|
||||
case FSL_SAI_TFR2:
|
||||
case FSL_SAI_TFR3:
|
||||
case FSL_SAI_TFR4:
|
||||
case FSL_SAI_TFR5:
|
||||
case FSL_SAI_TFR6:
|
||||
case FSL_SAI_TFR7:
|
||||
case FSL_SAI_TMR:
|
||||
case FSL_SAI_RCSR:
|
||||
case FSL_SAI_RCR1:
|
||||
@@ -712,8 +726,22 @@ static bool fsl_sai_readable_reg(struct device *dev, unsigned int reg)
|
||||
case FSL_SAI_RCR3:
|
||||
case FSL_SAI_RCR4:
|
||||
case FSL_SAI_RCR5:
|
||||
case FSL_SAI_RDR:
|
||||
case FSL_SAI_RFR:
|
||||
case FSL_SAI_RDR0:
|
||||
case FSL_SAI_RDR1:
|
||||
case FSL_SAI_RDR2:
|
||||
case FSL_SAI_RDR3:
|
||||
case FSL_SAI_RDR4:
|
||||
case FSL_SAI_RDR5:
|
||||
case FSL_SAI_RDR6:
|
||||
case FSL_SAI_RDR7:
|
||||
case FSL_SAI_RFR0:
|
||||
case FSL_SAI_RFR1:
|
||||
case FSL_SAI_RFR2:
|
||||
case FSL_SAI_RFR3:
|
||||
case FSL_SAI_RFR4:
|
||||
case FSL_SAI_RFR5:
|
||||
case FSL_SAI_RFR6:
|
||||
case FSL_SAI_RFR7:
|
||||
case FSL_SAI_RMR:
|
||||
return true;
|
||||
default:
|
||||
@@ -726,9 +754,30 @@ static bool fsl_sai_volatile_reg(struct device *dev, unsigned int reg)
|
||||
switch (reg) {
|
||||
case FSL_SAI_TCSR:
|
||||
case FSL_SAI_RCSR:
|
||||
case FSL_SAI_TFR:
|
||||
case FSL_SAI_RFR:
|
||||
case FSL_SAI_RDR:
|
||||
case FSL_SAI_TFR0:
|
||||
case FSL_SAI_TFR1:
|
||||
case FSL_SAI_TFR2:
|
||||
case FSL_SAI_TFR3:
|
||||
case FSL_SAI_TFR4:
|
||||
case FSL_SAI_TFR5:
|
||||
case FSL_SAI_TFR6:
|
||||
case FSL_SAI_TFR7:
|
||||
case FSL_SAI_RFR0:
|
||||
case FSL_SAI_RFR1:
|
||||
case FSL_SAI_RFR2:
|
||||
case FSL_SAI_RFR3:
|
||||
case FSL_SAI_RFR4:
|
||||
case FSL_SAI_RFR5:
|
||||
case FSL_SAI_RFR6:
|
||||
case FSL_SAI_RFR7:
|
||||
case FSL_SAI_RDR0:
|
||||
case FSL_SAI_RDR1:
|
||||
case FSL_SAI_RDR2:
|
||||
case FSL_SAI_RDR3:
|
||||
case FSL_SAI_RDR4:
|
||||
case FSL_SAI_RDR5:
|
||||
case FSL_SAI_RDR6:
|
||||
case FSL_SAI_RDR7:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
@@ -744,7 +793,14 @@ static bool fsl_sai_writeable_reg(struct device *dev, unsigned int reg)
|
||||
case FSL_SAI_TCR3:
|
||||
case FSL_SAI_TCR4:
|
||||
case FSL_SAI_TCR5:
|
||||
case FSL_SAI_TDR:
|
||||
case FSL_SAI_TDR0:
|
||||
case FSL_SAI_TDR1:
|
||||
case FSL_SAI_TDR2:
|
||||
case FSL_SAI_TDR3:
|
||||
case FSL_SAI_TDR4:
|
||||
case FSL_SAI_TDR5:
|
||||
case FSL_SAI_TDR6:
|
||||
case FSL_SAI_TDR7:
|
||||
case FSL_SAI_TMR:
|
||||
case FSL_SAI_RCSR:
|
||||
case FSL_SAI_RCR1:
|
||||
@@ -883,8 +939,8 @@ static int fsl_sai_probe(struct platform_device *pdev)
|
||||
MCLK_DIR(index));
|
||||
}
|
||||
|
||||
sai->dma_params_rx.addr = res->start + FSL_SAI_RDR;
|
||||
sai->dma_params_tx.addr = res->start + FSL_SAI_TDR;
|
||||
sai->dma_params_rx.addr = res->start + FSL_SAI_RDR0;
|
||||
sai->dma_params_tx.addr = res->start + FSL_SAI_TDR0;
|
||||
sai->dma_params_rx.maxburst = FSL_SAI_MAXBURST_RX;
|
||||
sai->dma_params_tx.maxburst = FSL_SAI_MAXBURST_TX;
|
||||
|
||||
|
Reference in New Issue
Block a user