So far SAI IPs integrated with imx6 only supported one data line. Starting with imx7 and imx8 SAI integration support up to 8 data lines.
New SAI IP version introduces two new registers (Version and Parmeter registers) which are placed at the beginning of register address space. For this reason we need to fix the register's address.
Changes since v1: - removed patches from Lucas as they were already accepted - addressed comments from Lucas and Nicolin regarding device tree property naming - removed comment saying that "datalines" must be always consecutively enabled (this is not true, checked with IP owner) - added new patch to document newly introduced compatbile strings - removed patch introducing combined mode as I will still need some time to figure out how to properly allow users to set it.
Nicolin,
Unfortunately I couldn't find any clean solution on handling registers address shifts. As mentioned in patch 5/7 Tx/Rx data registers and Tx/Rx FIFO registers keep their addresses while others are shifted by 8 bytes.
Even if I could create two regmaps as suggested I will still need to update each call of regmap_functions.
Daniel Baluta (7): ASoC: fsl_sai: Add registers definition for multiple datalines ASoC: fsl_sai: Update Tx/Rx channel enable mask ASoC: fsl_sai: Add support to enable multiple data lines ASoC: dt-bindings: Document dl-mask property ASoC: fsl_sai: Add support for SAI new version ASoC: fsl_sai: Add support for imx7ulp/imx8mq ASoC: dt-bindings: Introduce compatible strings for 7ULP and 8MQ
.../devicetree/bindings/sound/fsl-sai.txt | 10 +- sound/soc/fsl/fsl_sai.c | 331 ++++++++++++------ sound/soc/fsl/fsl_sai.h | 82 +++-- 3 files changed, 293 insertions(+), 130 deletions(-)