ASoC: samsung-i2s: Add 192kHz config option
Subsystems (5)
PATCH 1/1 ASoC: samsung-i2s: Add 192kHz config option
Adds QUIRK_SUPPORTS_192KHZ to allow 192kHz rate
to be selected for hardware that supports it.
--- .../devicetree/bindings/sound/samsung-i2s.txt | 2 ++ include/linux/platform_data/asoc-s3c.h | 1 + sound/soc/samsung/i2s.c | 8 ++++++++ 3 files changed, 11 insertions(+), 0 deletions(-)
Documentation/devicetree/bindings/sound/samsung-i2s.txt +2 -0
@@ -40,6 +40,8 @@ Optional SoC Specific Properties: sub system(used in secondary sound source). - pinctrl-0: Should specify pin control groups used for this controller. - pinctrl-names: Should contain only one value - "default". +- samsung,supports-192khz: specify this (without a value) if you want to allow + 192000 sample rate over the I2S link. Example:
include/linux/platform_data/asoc-s3c.h +1 -0
@@ -28,6 +28,7 @@ struct samsung_i2s {#define QUIRK_NEED_RSTCLR (1 << 3)#define QUIRK_SUPPORTS_TDM (1 << 4)#define QUIRK_SUPPORTS_IDMA (1 << 5) +#define QUIRK_SUPPORTS_192KHZ (1 << 6)/* Quirks of the I2S controller */ u32 quirks;dma_addr_t idma_addr;
sound/soc/samsung/i2s.c +8 -0
@@ -1219,6 +1219,9 @@ static int samsung_i2s_probe(struct platform_device *pdev) "specified"); } } + +if (of_find_property (np,"samsung,supports-192khz" ,NULL )) + quirks |=QUIRK_SUPPORTS_192KHZ ; } res =platform_get_resource (pdev,IORESOURCE_MEM ,0 );
@@ -1247,6 +1250,11 @@ static int samsung_i2s_probe(struct platform_device *pdev)if (quirks &QUIRK_PRI_6CHAN ) pri_dai->i2s_dai_drv.playback.channels_max =6 ; +if (quirks &QUIRK_SUPPORTS_192KHZ ) { + pri_dai->i2s_dai_drv.playback.rates |=SNDRV_PCM_RATE_192000 ; + pri_dai->i2s_dai_drv.capture.rates |=SNDRV_PCM_RATE_192000 ; + } +if (quirks &QUIRK_SEC_DAI ) { sec_dai =i2s_alloc_dai (pdev, true);if (!sec_dai) {
Signature · 1 line
1.7.2.5
Mark Brown
maintainerQuoted 5 lines · Richard Fitzgerald
Adds
QUIRK_SUPPORTS_192KHZto allow 192kHz rate
to be selected for hardware that supports it.+- samsung,supports-192khz: specify this (without a value) if you want to allow + 192000 sample rate over the I2S link.
Two things here. One is that the first half is a funny way of saying "boolean property" (the other standard idiom is "present if..."). The other is that "if you want to allow" suggests that this is a bit of runtime configuration (which shouldn't be in device tree at all). If there's a quirk here it should be a fixed property of the hardware, if this is a system integration choice then it should at most be specified in the machine driver and the I2S controller should just advertise whatever it's physically capable of.