Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions Documentation/devicetree/bindings/sound/qcom,sm8250.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ properties:
- qcom,sdm845-sndcard
- qcom,shikra-cqm-sndcard
- qcom,shikra-cqs-sndcard
- qcom,shikra-iqs-lt9611uxd-sndcard
- qcom,shikra-iqs-sndcard
- qcom,sm8250-sndcard
- qcom,sm8450-sndcard
Expand Down Expand Up @@ -243,3 +244,45 @@ examples:
};
};
};

- |
#include <dt-bindings/sound/qcom,q6afe.h>
sound {
compatible = "qcom,shikra-iqs-lt9611uxd-sndcard";
model = "shikra-iqs-lt9611uxd-evk";
audio-routing = "VA DMIC0", "vdd-micb",
"VA DMIC1", "vdd-micb",
"VA DMIC2", "vdd-micb",
"VA DMIC3", "vdd-micb";

pri-i2s-playback-dai-link {
link-name = "Analog Playback";
cpu {
sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>;
};
platform {
sound-dai = <&q6apm>;
};
codec {
sound-dai = <&lt9611uxd 0>;
};
};

pri-i2s-capture-dai-link {
link-name = "Analog Capture";
status = "disabled";
};

va-dmic-dai-link {
link-name = "VA DMIC Capture";
cpu {
sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
};
platform {
sound-dai = <&q6apm>;
};
codec {
sound-dai = <&vamacro 0>;
};
};
};
4 changes: 4 additions & 0 deletions arch/arm64/boot/dts/qcom/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,10 @@ dtb-$(CONFIG_ARCH_QCOM) += shikra-cqs-evk-el2.dtb

dtb-$(CONFIG_ARCH_QCOM) += shikra-iqs-evk.dtb

shikra-iqs-lt9611uxd-evk-dtbs := shikra-iqs-evk.dtb shikra-iqs-lt9611uxd-evk.dtbo

dtb-$(CONFIG_ARCH_QCOM) += shikra-iqs-lt9611uxd-evk.dtb

shikra-iqs-evk-el2-dtbs := shikra-iqs-evk.dtb shikra-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += shikra-iqs-evk-el2.dtb

Expand Down
2 changes: 1 addition & 1 deletion arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
};
};

sound {
sound: sound {
compatible = "qcom,shikra-iqs-sndcard";
model = "shikra-iqs-evk";

Expand Down
36 changes: 36 additions & 0 deletions arch/arm64/boot/dts/qcom/shikra-iqs-lt9611uxd-evk.dtso
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
*/

/dts-v1/;
/plugin/;

/* Board subtype 0: LT9611UXD as I2S audio codec, no MAX98091 */

&hdmi_bridge {
#sound-dai-cells = <1>;
};

&sound {
compatible = "qcom,shikra-iqs-lt9611uxd-sndcard";
model = "shikra-iqs-lt9611uxd-evk";
audio-routing = "VA DMIC0", "vdd-micb",
"VA DMIC1", "vdd-micb",
"VA DMIC2", "vdd-micb",
"VA DMIC3", "vdd-micb";

pri-i2s-playback-dai-link {
codec {
sound-dai = <&hdmi_bridge 0>;
};
};

pri-i2s-capture-dai-link {
status = "disabled";
};
};

&max98091 {
status = "disabled";
};
9 changes: 7 additions & 2 deletions sound/soc/qcom/qdsp6/q6apm-dai.c
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,8 @@ static const struct snd_pcm_hardware q6apm_dai_hardware_capture = {
SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_RESUME |
SNDRV_PCM_INFO_NO_REWINDS | SNDRV_PCM_INFO_SYNC_APPLPTR |
SNDRV_PCM_INFO_BATCH),
.formats = (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE),
.formats = (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE |
SNDRV_PCM_FMTBIT_S32_LE),
.rates = SNDRV_PCM_RATE_8000_48000,
.rate_min = 8000,
.rate_max = 48000,
Expand All @@ -315,7 +316,8 @@ static const struct snd_pcm_hardware q6apm_dai_hardware_playback = {
SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_RESUME |
SNDRV_PCM_INFO_NO_REWINDS | SNDRV_PCM_INFO_SYNC_APPLPTR |
SNDRV_PCM_INFO_BATCH),
.formats = (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE),
.formats = (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE |
SNDRV_PCM_FMTBIT_S32_LE),
.rates = SNDRV_PCM_RATE_8000_192000,
.rate_min = 8000,
.rate_max = 192000,
Expand Down Expand Up @@ -675,6 +677,9 @@ static int q6apm_dai_hw_params(struct snd_soc_component *component,
case SNDRV_PCM_FORMAT_S24_LE:
prtd->bits_per_sample = 24;
break;
case SNDRV_PCM_FORMAT_S32_LE:
prtd->bits_per_sample = 32;
break;
default:
return -EINVAL;
}
Expand Down
22 changes: 21 additions & 1 deletion sound/soc/qcom/sc8280xp.c
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,16 @@ static int sc8280xp_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
struct snd_mask *fmt = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT);

rate->min = rate->max = 48000;
snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S16_LE);
switch (cpu_dai->id) {
case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX:
case QUINARY_MI2S_RX ... QUINARY_MI2S_TX:
case DISPLAY_PORT_RX_0:
case DISPLAY_PORT_RX_1 ... DISPLAY_PORT_RX_7:
break;
default:
snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S16_LE);
break;
}
channels->min = 2;
channels->max = 2;
switch (cpu_dai->id) {
Expand Down Expand Up @@ -524,6 +533,15 @@ static const struct snd_soc_common shikra_iqs_priv_data = {
.mi2s_bclk_enable = true,
};

static const struct snd_soc_common shikra_iqs_lt9611uxd_priv_data = {
.driver_name = "shikra",
.dapm_widgets = sc8280xp_dapm_widgets,
.num_dapm_widgets = ARRAY_SIZE(sc8280xp_dapm_widgets),
.codec_dai_fmt = SND_SOC_DAIFMT_BC_FC |
SND_SOC_DAIFMT_NB_NF |
SND_SOC_DAIFMT_I2S,
};

static struct snd_soc_common sm8450_priv_data = {
.driver_name = "sm8450",
.dapm_widgets = sc8280xp_dapm_widgets,
Expand Down Expand Up @@ -559,6 +577,8 @@ static const struct of_device_id snd_sc8280xp_dt_match[] = {
{.compatible = "qcom,shikra-cqm-sndcard", .data = &shikra_cqm_priv_data},
{.compatible = "qcom,shikra-cqs-sndcard", .data = &shikra_cqs_priv_data},
{.compatible = "qcom,shikra-iqs-sndcard", .data = &shikra_iqs_priv_data},
{.compatible = "qcom,shikra-iqs-lt9611uxd-sndcard",
.data = &shikra_iqs_lt9611uxd_priv_data},
{.compatible = "qcom,sm8450-sndcard", .data = &sm8450_priv_data},
{.compatible = "qcom,sm8550-sndcard", .data = &sm8550_priv_data},
{.compatible = "qcom,sm8650-sndcard", .data = &sm8650_priv_data},
Expand Down