aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/atmel-ssc.h
diff options
context:
space:
mode:
authorBo Shen <voice.shen@atmel.com>2014-06-11 18:14:40 +0800
committerMark Brown <broonie@linaro.org>2014-06-21 11:37:35 +0100
commitdfaf535665faa4b5aba4b59633f6b724a467c96e (patch)
treebf4edd7d04f0c939f0778e49f6584a34426d38bc /include/linux/atmel-ssc.h
parentASoC: atmel-ssc: distinguish whether SSC supports fslen ext (diff)
downloadlinux-dev-dfaf535665faa4b5aba4b59633f6b724a467c96e.tar.xz
linux-dev-dfaf535665faa4b5aba4b59633f6b724a467c96e.zip
ASoC: atmel_ssc_dai: enable fslen extension feature
When SSC work as master, it will generate the frame sync signal. On old SoCs, it only supports frame sync length less or equal to 16bits, on newer SoCs, it supports frame sync length extension, which can support frame size larger than 16 bits. So, add this to make it supports playback 24/32 bits audio clips. Signed-off-by: Bo Shen <voice.shen@atmel.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'include/linux/atmel-ssc.h')
-rw-r--r--include/linux/atmel-ssc.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/atmel-ssc.h b/include/linux/atmel-ssc.h
index e8dd40873d55..7c0f6549898b 100644
--- a/include/linux/atmel-ssc.h
+++ b/include/linux/atmel-ssc.h
@@ -72,6 +72,12 @@ void ssc_free(struct ssc_device *ssc);
#define SSC_RFMR_DATNB_OFFSET 8
#define SSC_RFMR_FSEDGE_SIZE 1
#define SSC_RFMR_FSEDGE_OFFSET 24
+/*
+ * The FSLEN_EXT exist on at91sam9rl, at91sam9g10,
+ * at91sam9g20, and at91sam9g45 and newer SoCs
+ */
+#define SSC_RFMR_FSLEN_EXT_SIZE 4
+#define SSC_RFMR_FSLEN_EXT_OFFSET 28
#define SSC_RFMR_FSLEN_SIZE 4
#define SSC_RFMR_FSLEN_OFFSET 16
#define SSC_RFMR_FSOS_SIZE 4
@@ -110,6 +116,12 @@ void ssc_free(struct ssc_device *ssc);
#define SSC_TFMR_FSDEN_OFFSET 23
#define SSC_TFMR_FSEDGE_SIZE 1
#define SSC_TFMR_FSEDGE_OFFSET 24
+/*
+ * The FSLEN_EXT exist on at91sam9rl, at91sam9g10,
+ * at91sam9g20, and at91sam9g45 and newer SoCs
+ */
+#define SSC_TFMR_FSLEN_EXT_SIZE 4
+#define SSC_TFMR_FSLEN_EXT_OFFSET 28
#define SSC_TFMR_FSLEN_SIZE 4
#define SSC_TFMR_FSLEN_OFFSET 16
#define SSC_TFMR_FSOS_SIZE 3