* [PATCH v5 0/2] Modify documentation and machine driver for mt8186_rt1019_rt5682s sound card
@ 2022-10-31 12:22 ` Ajye Huang
0 siblings, 0 replies; 18+ messages in thread
From: Ajye Huang @ 2022-10-31 12:22 UTC (permalink / raw)
To: linux-kernel
Cc: Mark Brown, Liam Girdwood, Krzysztof Kozlowski, Rob Herring,
linux-mediatek, chunxu . li, Takashi Iwai, Jaroslav Kysela,
Jiaxin Yu, Matthias Brugger, AngeloGioacchino Del Regno,
Ajye Huang, Nícolas F . R . A . Prado, linux-arm-kernel,
devicetree, alsa-devel
v5:
- Documentation:
- Add #include <dt-bindings/gpio/gpio.h> in order to use
GPIO_ACTIVE_HIGH.
- Remove the change-id in message.
v4:
- Documentation:
- Fix the FATAL ERROR: Unable to parse input tree.
v3:
- Documentation:
- Add an explain example in description.
- Add the pinctrl-name and pinctrl id in its example.
v2:
- dmic codec driver:
- Remove the unnecessary use of_property_read_bool()
v1:
- Documentation: Add dmic-gpios optional prop for two DMICs case.
- dmic codec driver:
- "dmic-gpios" property is used for amixer control to switch
the dmic signal source between the Front and Rear Dmic.
Thanks for the review!
Ajye Huang (2):
ASoC: mediatek: dt-bindings: modify machine bindings for two MICs case
ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs
case
.../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 14 ++-
.../mt8186/mt8186-mt6366-rt1019-rt5682s.c | 102 +++++++++++++++++-
2 files changed, 114 insertions(+), 2 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v5 0/2] Modify documentation and machine driver for mt8186_rt1019_rt5682s sound card
@ 2022-10-31 12:22 ` Ajye Huang
0 siblings, 0 replies; 18+ messages in thread
From: Ajye Huang @ 2022-10-31 12:22 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree, alsa-devel, chunxu . li,
Nícolas F . R . A . Prado, Mark Brown, Ajye Huang,
Liam Girdwood, Jiaxin Yu, Takashi Iwai, Rob Herring,
linux-mediatek, Krzysztof Kozlowski, Matthias Brugger,
linux-arm-kernel, AngeloGioacchino Del Regno
v5:
- Documentation:
- Add #include <dt-bindings/gpio/gpio.h> in order to use
GPIO_ACTIVE_HIGH.
- Remove the change-id in message.
v4:
- Documentation:
- Fix the FATAL ERROR: Unable to parse input tree.
v3:
- Documentation:
- Add an explain example in description.
- Add the pinctrl-name and pinctrl id in its example.
v2:
- dmic codec driver:
- Remove the unnecessary use of_property_read_bool()
v1:
- Documentation: Add dmic-gpios optional prop for two DMICs case.
- dmic codec driver:
- "dmic-gpios" property is used for amixer control to switch
the dmic signal source between the Front and Rear Dmic.
Thanks for the review!
Ajye Huang (2):
ASoC: mediatek: dt-bindings: modify machine bindings for two MICs case
ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs
case
.../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 14 ++-
.../mt8186/mt8186-mt6366-rt1019-rt5682s.c | 102 +++++++++++++++++-
2 files changed, 114 insertions(+), 2 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v5 0/2] Modify documentation and machine driver for mt8186_rt1019_rt5682s sound card
@ 2022-10-31 12:22 ` Ajye Huang
0 siblings, 0 replies; 18+ messages in thread
From: Ajye Huang @ 2022-10-31 12:22 UTC (permalink / raw)
To: linux-kernel
Cc: Mark Brown, Liam Girdwood, Krzysztof Kozlowski, Rob Herring,
linux-mediatek, chunxu . li, Takashi Iwai, Jaroslav Kysela,
Jiaxin Yu, Matthias Brugger, AngeloGioacchino Del Regno,
Ajye Huang, Nícolas F . R . A . Prado, linux-arm-kernel,
devicetree, alsa-devel
v5:
- Documentation:
- Add #include <dt-bindings/gpio/gpio.h> in order to use
GPIO_ACTIVE_HIGH.
- Remove the change-id in message.
v4:
- Documentation:
- Fix the FATAL ERROR: Unable to parse input tree.
v3:
- Documentation:
- Add an explain example in description.
- Add the pinctrl-name and pinctrl id in its example.
v2:
- dmic codec driver:
- Remove the unnecessary use of_property_read_bool()
v1:
- Documentation: Add dmic-gpios optional prop for two DMICs case.
- dmic codec driver:
- "dmic-gpios" property is used for amixer control to switch
the dmic signal source between the Front and Rear Dmic.
Thanks for the review!
Ajye Huang (2):
ASoC: mediatek: dt-bindings: modify machine bindings for two MICs case
ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs
case
.../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 14 ++-
.../mt8186/mt8186-mt6366-rt1019-rt5682s.c | 102 +++++++++++++++++-
2 files changed, 114 insertions(+), 2 deletions(-)
--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v5 1/2] ASoC: mediatek: dt-bindings: modify machine bindings for two MICs case
2022-10-31 12:22 ` Ajye Huang
(?)
@ 2022-10-31 12:22 ` Ajye Huang
-1 siblings, 0 replies; 18+ messages in thread
From: Ajye Huang @ 2022-10-31 12:22 UTC (permalink / raw)
To: linux-kernel
Cc: Mark Brown, Liam Girdwood, Krzysztof Kozlowski, Rob Herring,
linux-mediatek, chunxu . li, Takashi Iwai, Jaroslav Kysela,
Jiaxin Yu, Matthias Brugger, AngeloGioacchino Del Regno,
Ajye Huang, Nícolas F . R . A . Prado, linux-arm-kernel,
devicetree, alsa-devel
Add a property "dmic-gpios" for switching between two MICs.
Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
---
.../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml b/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
index 4fc5b045d3cf..9d3139990237 100644
--- a/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
+++ b/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
@@ -21,6 +21,13 @@ properties:
$ref: "/schemas/types.yaml#/definitions/phandle"
description: The phandle of MT8186 ASoC platform.
+ dmic-gpios:
+ maxItems: 1
+ description:
+ dmic-gpios optional prop for switching between two DMICs.
+ Ex, the GPIO can control a MUX HW component to select
+ dmic clk and data form a Front or Rear dmic.
+
headset-codec:
type: object
additionalProperties: false
@@ -63,14 +70,19 @@ required:
examples:
- |
+ #include <dt-bindings/gpio/gpio.h>
sound: mt8186-sound {
compatible = "mediatek,mt8186-mt6366-rt1019-rt5682s-sound";
mediatek,platform = <&afe>;
pinctrl-names = "aud_clk_mosi_off",
- "aud_clk_mosi_on";
+ "aud_clk_mosi_on",
+ "aud_gpio_dmic_sec";
pinctrl-0 = <&aud_clk_mosi_off>;
pinctrl-1 = <&aud_clk_mosi_on>;
+ pinctrl-2 = <&aud_gpio_dmic_sec>;
+
+ dmic-gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
headset-codec {
sound-dai = <&rt5682s>;
--
2.25.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v5 1/2] ASoC: mediatek: dt-bindings: modify machine bindings for two MICs case
@ 2022-10-31 12:22 ` Ajye Huang
0 siblings, 0 replies; 18+ messages in thread
From: Ajye Huang @ 2022-10-31 12:22 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree, alsa-devel, chunxu . li,
Nícolas F . R . A . Prado, Mark Brown, Ajye Huang,
Liam Girdwood, Jiaxin Yu, Takashi Iwai, Rob Herring,
linux-mediatek, Krzysztof Kozlowski, Matthias Brugger,
linux-arm-kernel, AngeloGioacchino Del Regno
Add a property "dmic-gpios" for switching between two MICs.
Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
---
.../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml b/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
index 4fc5b045d3cf..9d3139990237 100644
--- a/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
+++ b/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
@@ -21,6 +21,13 @@ properties:
$ref: "/schemas/types.yaml#/definitions/phandle"
description: The phandle of MT8186 ASoC platform.
+ dmic-gpios:
+ maxItems: 1
+ description:
+ dmic-gpios optional prop for switching between two DMICs.
+ Ex, the GPIO can control a MUX HW component to select
+ dmic clk and data form a Front or Rear dmic.
+
headset-codec:
type: object
additionalProperties: false
@@ -63,14 +70,19 @@ required:
examples:
- |
+ #include <dt-bindings/gpio/gpio.h>
sound: mt8186-sound {
compatible = "mediatek,mt8186-mt6366-rt1019-rt5682s-sound";
mediatek,platform = <&afe>;
pinctrl-names = "aud_clk_mosi_off",
- "aud_clk_mosi_on";
+ "aud_clk_mosi_on",
+ "aud_gpio_dmic_sec";
pinctrl-0 = <&aud_clk_mosi_off>;
pinctrl-1 = <&aud_clk_mosi_on>;
+ pinctrl-2 = <&aud_gpio_dmic_sec>;
+
+ dmic-gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
headset-codec {
sound-dai = <&rt5682s>;
--
2.25.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v5 1/2] ASoC: mediatek: dt-bindings: modify machine bindings for two MICs case
@ 2022-10-31 12:22 ` Ajye Huang
0 siblings, 0 replies; 18+ messages in thread
From: Ajye Huang @ 2022-10-31 12:22 UTC (permalink / raw)
To: linux-kernel
Cc: Mark Brown, Liam Girdwood, Krzysztof Kozlowski, Rob Herring,
linux-mediatek, chunxu . li, Takashi Iwai, Jaroslav Kysela,
Jiaxin Yu, Matthias Brugger, AngeloGioacchino Del Regno,
Ajye Huang, Nícolas F . R . A . Prado, linux-arm-kernel,
devicetree, alsa-devel
Add a property "dmic-gpios" for switching between two MICs.
Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
---
.../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml b/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
index 4fc5b045d3cf..9d3139990237 100644
--- a/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
+++ b/Documentation/devicetree/bindings/sound/mt8186-mt6366-rt1019-rt5682s.yaml
@@ -21,6 +21,13 @@ properties:
$ref: "/schemas/types.yaml#/definitions/phandle"
description: The phandle of MT8186 ASoC platform.
+ dmic-gpios:
+ maxItems: 1
+ description:
+ dmic-gpios optional prop for switching between two DMICs.
+ Ex, the GPIO can control a MUX HW component to select
+ dmic clk and data form a Front or Rear dmic.
+
headset-codec:
type: object
additionalProperties: false
@@ -63,14 +70,19 @@ required:
examples:
- |
+ #include <dt-bindings/gpio/gpio.h>
sound: mt8186-sound {
compatible = "mediatek,mt8186-mt6366-rt1019-rt5682s-sound";
mediatek,platform = <&afe>;
pinctrl-names = "aud_clk_mosi_off",
- "aud_clk_mosi_on";
+ "aud_clk_mosi_on",
+ "aud_gpio_dmic_sec";
pinctrl-0 = <&aud_clk_mosi_off>;
pinctrl-1 = <&aud_clk_mosi_on>;
+ pinctrl-2 = <&aud_gpio_dmic_sec>;
+
+ dmic-gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
headset-codec {
sound-dai = <&rt5682s>;
--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v5 2/2] ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs case
2022-10-31 12:22 ` Ajye Huang
(?)
@ 2022-10-31 12:22 ` Ajye Huang
-1 siblings, 0 replies; 18+ messages in thread
From: Ajye Huang @ 2022-10-31 12:22 UTC (permalink / raw)
To: linux-kernel
Cc: Mark Brown, Liam Girdwood, Krzysztof Kozlowski, Rob Herring,
linux-mediatek, chunxu . li, Takashi Iwai, Jaroslav Kysela,
Jiaxin Yu, Matthias Brugger, AngeloGioacchino Del Regno,
Ajye Huang, Nícolas F . R . A . Prado, linux-arm-kernel,
devicetree, alsa-devel
Having two DMICs, a front DMIC and a Rear DMIC,
but only host audio input AUX port0 is used for these two Dmics.
A "dmic-gpios" property is used for a mixer control to switch
the dmic signal source between the Front and Rear Dmic.
Refer to this one as an example,
commit 3cfbf07c6d27
("ASoC: qcom: sc7180: Modify machine driver for 2mic")
Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
---
.../mt8186/mt8186-mt6366-rt1019-rt5682s.c | 102 +++++++++++++++++-
1 file changed, 101 insertions(+), 1 deletion(-)
diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
index 2414c5b77233..75351734464c 100644
--- a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
+++ b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
@@ -7,6 +7,8 @@
// Author: Jiaxin Yu <jiaxin.yu@mediatek.com>
//
+#include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
#include <linux/input.h>
#include <linux/module.h>
#include <linux/of_device.h>
@@ -39,6 +41,8 @@
struct mt8186_mt6366_rt1019_rt5682s_priv {
struct snd_soc_jack headset_jack, hdmi_jack;
+ struct gpio_desc *dmic_sel;
+ int dmic_switch;
};
/* Headset jack detection DAPM pins */
@@ -68,6 +72,94 @@ static struct snd_soc_codec_conf mt8186_mt6366_rt1019_rt5682s_codec_conf[] = {
},
};
+static int dmic_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
+ struct mtk_soc_card_data *soc_card_data =
+ snd_soc_card_get_drvdata(dapm->card);
+ struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
+
+ ucontrol->value.integer.value[0] = priv->dmic_switch;
+ return 0;
+}
+
+static int dmic_set(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
+ struct mtk_soc_card_data *soc_card_data =
+ snd_soc_card_get_drvdata(dapm->card);
+ struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
+
+ priv->dmic_switch = ucontrol->value.integer.value[0];
+ if (priv->dmic_sel) {
+ gpiod_set_value(priv->dmic_sel, priv->dmic_switch);
+ dev_info(dapm->card->dev, "dmic_set_value %d\n",
+ priv->dmic_switch);
+ }
+ return 0;
+}
+
+static const char * const dmic_mux_text[] = {
+ "FrontMic",
+ "RearMic",
+};
+
+static SOC_ENUM_SINGLE_DECL(mt8186_dmic_enum,
+ SND_SOC_NOPM, 0, dmic_mux_text);
+
+static const struct snd_kcontrol_new mt8186_dmic_mux_control =
+ SOC_DAPM_ENUM_EXT("DMIC Select Mux", mt8186_dmic_enum,
+ dmic_get, dmic_set);
+
+static const struct snd_soc_dapm_widget dmic_widgets[] = {
+ SND_SOC_DAPM_MIC("DMIC", NULL),
+ SND_SOC_DAPM_MUX("Dmic Mux", SND_SOC_NOPM, 0, 0, &mt8186_dmic_mux_control),
+};
+
+static const struct snd_soc_dapm_route dmic_map[] = {
+ /* digital mics */
+ {"Dmic Mux", "FrontMic", "DMIC"},
+ {"Dmic Mux", "RearMic", "DMIC"},
+};
+
+static int primary_codec_init(struct snd_soc_pcm_runtime *rtd)
+{
+ struct snd_soc_card *card = rtd->card;
+ struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(card);
+ struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
+ int ret;
+
+ ret = mt8186_mt6366_init(rtd);
+
+ if (ret) {
+ dev_err(card->dev, "mt8186_mt6366_init failed: %d\n", ret);
+ return ret;
+ }
+
+ if (!priv->dmic_sel) {
+ dev_info(card->dev, "dmic_sel is null\n");
+ return ret;
+ }
+
+ ret = snd_soc_dapm_new_controls(&card->dapm, dmic_widgets,
+ ARRAY_SIZE(dmic_widgets));
+ if (ret) {
+ dev_err(card->dev, "DMic widget addition failed: %d\n", ret);
+ /* Don't need to add routes if widget addition failed */
+ return ret;
+ }
+
+ ret = snd_soc_dapm_add_routes(&card->dapm, dmic_map,
+ ARRAY_SIZE(dmic_map));
+
+ if (ret)
+ dev_err(card->dev, "DMic map addition failed: %d\n", ret);
+
+ return ret;
+}
+
static int mt8186_rt5682s_init(struct snd_soc_pcm_runtime *rtd)
{
struct snd_soc_component *cmpnt_afe =
@@ -775,7 +867,7 @@ static struct snd_soc_dai_link mt8186_mt6366_rt1019_rt5682s_dai_links[] = {
.dpcm_playback = 1,
.dpcm_capture = 1,
.ignore_suspend = 1,
- .init = mt8186_mt6366_init,
+ .init = primary_codec_init,
SND_SOC_DAILINK_REG(adda),
},
{
@@ -1015,6 +1107,14 @@ static int mt8186_mt6366_rt1019_rt5682s_dev_probe(struct platform_device *pdev)
soc_card_data->mach_priv = mach_priv;
+ mach_priv->dmic_sel = devm_gpiod_get_optional(&pdev->dev,
+ "dmic", GPIOD_OUT_LOW);
+ if (IS_ERR(mach_priv->dmic_sel)) {
+ dev_err(&pdev->dev, "DMIC gpio failed err=%ld\n",
+ PTR_ERR(mach_priv->dmic_sel));
+ return PTR_ERR(mach_priv->dmic_sel);
+ }
+
adsp_node = of_parse_phandle(pdev->dev.of_node, "mediatek,adsp", 0);
if (adsp_node) {
struct mtk_sof_priv *sof_priv;
--
2.25.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v5 2/2] ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs case
@ 2022-10-31 12:22 ` Ajye Huang
0 siblings, 0 replies; 18+ messages in thread
From: Ajye Huang @ 2022-10-31 12:22 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree, alsa-devel, chunxu . li,
Nícolas F . R . A . Prado, Mark Brown, Ajye Huang,
Liam Girdwood, Jiaxin Yu, Takashi Iwai, Rob Herring,
linux-mediatek, Krzysztof Kozlowski, Matthias Brugger,
linux-arm-kernel, AngeloGioacchino Del Regno
Having two DMICs, a front DMIC and a Rear DMIC,
but only host audio input AUX port0 is used for these two Dmics.
A "dmic-gpios" property is used for a mixer control to switch
the dmic signal source between the Front and Rear Dmic.
Refer to this one as an example,
commit 3cfbf07c6d27
("ASoC: qcom: sc7180: Modify machine driver for 2mic")
Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
---
.../mt8186/mt8186-mt6366-rt1019-rt5682s.c | 102 +++++++++++++++++-
1 file changed, 101 insertions(+), 1 deletion(-)
diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
index 2414c5b77233..75351734464c 100644
--- a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
+++ b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
@@ -7,6 +7,8 @@
// Author: Jiaxin Yu <jiaxin.yu@mediatek.com>
//
+#include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
#include <linux/input.h>
#include <linux/module.h>
#include <linux/of_device.h>
@@ -39,6 +41,8 @@
struct mt8186_mt6366_rt1019_rt5682s_priv {
struct snd_soc_jack headset_jack, hdmi_jack;
+ struct gpio_desc *dmic_sel;
+ int dmic_switch;
};
/* Headset jack detection DAPM pins */
@@ -68,6 +72,94 @@ static struct snd_soc_codec_conf mt8186_mt6366_rt1019_rt5682s_codec_conf[] = {
},
};
+static int dmic_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
+ struct mtk_soc_card_data *soc_card_data =
+ snd_soc_card_get_drvdata(dapm->card);
+ struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
+
+ ucontrol->value.integer.value[0] = priv->dmic_switch;
+ return 0;
+}
+
+static int dmic_set(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
+ struct mtk_soc_card_data *soc_card_data =
+ snd_soc_card_get_drvdata(dapm->card);
+ struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
+
+ priv->dmic_switch = ucontrol->value.integer.value[0];
+ if (priv->dmic_sel) {
+ gpiod_set_value(priv->dmic_sel, priv->dmic_switch);
+ dev_info(dapm->card->dev, "dmic_set_value %d\n",
+ priv->dmic_switch);
+ }
+ return 0;
+}
+
+static const char * const dmic_mux_text[] = {
+ "FrontMic",
+ "RearMic",
+};
+
+static SOC_ENUM_SINGLE_DECL(mt8186_dmic_enum,
+ SND_SOC_NOPM, 0, dmic_mux_text);
+
+static const struct snd_kcontrol_new mt8186_dmic_mux_control =
+ SOC_DAPM_ENUM_EXT("DMIC Select Mux", mt8186_dmic_enum,
+ dmic_get, dmic_set);
+
+static const struct snd_soc_dapm_widget dmic_widgets[] = {
+ SND_SOC_DAPM_MIC("DMIC", NULL),
+ SND_SOC_DAPM_MUX("Dmic Mux", SND_SOC_NOPM, 0, 0, &mt8186_dmic_mux_control),
+};
+
+static const struct snd_soc_dapm_route dmic_map[] = {
+ /* digital mics */
+ {"Dmic Mux", "FrontMic", "DMIC"},
+ {"Dmic Mux", "RearMic", "DMIC"},
+};
+
+static int primary_codec_init(struct snd_soc_pcm_runtime *rtd)
+{
+ struct snd_soc_card *card = rtd->card;
+ struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(card);
+ struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
+ int ret;
+
+ ret = mt8186_mt6366_init(rtd);
+
+ if (ret) {
+ dev_err(card->dev, "mt8186_mt6366_init failed: %d\n", ret);
+ return ret;
+ }
+
+ if (!priv->dmic_sel) {
+ dev_info(card->dev, "dmic_sel is null\n");
+ return ret;
+ }
+
+ ret = snd_soc_dapm_new_controls(&card->dapm, dmic_widgets,
+ ARRAY_SIZE(dmic_widgets));
+ if (ret) {
+ dev_err(card->dev, "DMic widget addition failed: %d\n", ret);
+ /* Don't need to add routes if widget addition failed */
+ return ret;
+ }
+
+ ret = snd_soc_dapm_add_routes(&card->dapm, dmic_map,
+ ARRAY_SIZE(dmic_map));
+
+ if (ret)
+ dev_err(card->dev, "DMic map addition failed: %d\n", ret);
+
+ return ret;
+}
+
static int mt8186_rt5682s_init(struct snd_soc_pcm_runtime *rtd)
{
struct snd_soc_component *cmpnt_afe =
@@ -775,7 +867,7 @@ static struct snd_soc_dai_link mt8186_mt6366_rt1019_rt5682s_dai_links[] = {
.dpcm_playback = 1,
.dpcm_capture = 1,
.ignore_suspend = 1,
- .init = mt8186_mt6366_init,
+ .init = primary_codec_init,
SND_SOC_DAILINK_REG(adda),
},
{
@@ -1015,6 +1107,14 @@ static int mt8186_mt6366_rt1019_rt5682s_dev_probe(struct platform_device *pdev)
soc_card_data->mach_priv = mach_priv;
+ mach_priv->dmic_sel = devm_gpiod_get_optional(&pdev->dev,
+ "dmic", GPIOD_OUT_LOW);
+ if (IS_ERR(mach_priv->dmic_sel)) {
+ dev_err(&pdev->dev, "DMIC gpio failed err=%ld\n",
+ PTR_ERR(mach_priv->dmic_sel));
+ return PTR_ERR(mach_priv->dmic_sel);
+ }
+
adsp_node = of_parse_phandle(pdev->dev.of_node, "mediatek,adsp", 0);
if (adsp_node) {
struct mtk_sof_priv *sof_priv;
--
2.25.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v5 2/2] ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs case
@ 2022-10-31 12:22 ` Ajye Huang
0 siblings, 0 replies; 18+ messages in thread
From: Ajye Huang @ 2022-10-31 12:22 UTC (permalink / raw)
To: linux-kernel
Cc: Mark Brown, Liam Girdwood, Krzysztof Kozlowski, Rob Herring,
linux-mediatek, chunxu . li, Takashi Iwai, Jaroslav Kysela,
Jiaxin Yu, Matthias Brugger, AngeloGioacchino Del Regno,
Ajye Huang, Nícolas F . R . A . Prado, linux-arm-kernel,
devicetree, alsa-devel
Having two DMICs, a front DMIC and a Rear DMIC,
but only host audio input AUX port0 is used for these two Dmics.
A "dmic-gpios" property is used for a mixer control to switch
the dmic signal source between the Front and Rear Dmic.
Refer to this one as an example,
commit 3cfbf07c6d27
("ASoC: qcom: sc7180: Modify machine driver for 2mic")
Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
---
.../mt8186/mt8186-mt6366-rt1019-rt5682s.c | 102 +++++++++++++++++-
1 file changed, 101 insertions(+), 1 deletion(-)
diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
index 2414c5b77233..75351734464c 100644
--- a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
+++ b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
@@ -7,6 +7,8 @@
// Author: Jiaxin Yu <jiaxin.yu@mediatek.com>
//
+#include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
#include <linux/input.h>
#include <linux/module.h>
#include <linux/of_device.h>
@@ -39,6 +41,8 @@
struct mt8186_mt6366_rt1019_rt5682s_priv {
struct snd_soc_jack headset_jack, hdmi_jack;
+ struct gpio_desc *dmic_sel;
+ int dmic_switch;
};
/* Headset jack detection DAPM pins */
@@ -68,6 +72,94 @@ static struct snd_soc_codec_conf mt8186_mt6366_rt1019_rt5682s_codec_conf[] = {
},
};
+static int dmic_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
+ struct mtk_soc_card_data *soc_card_data =
+ snd_soc_card_get_drvdata(dapm->card);
+ struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
+
+ ucontrol->value.integer.value[0] = priv->dmic_switch;
+ return 0;
+}
+
+static int dmic_set(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
+ struct mtk_soc_card_data *soc_card_data =
+ snd_soc_card_get_drvdata(dapm->card);
+ struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
+
+ priv->dmic_switch = ucontrol->value.integer.value[0];
+ if (priv->dmic_sel) {
+ gpiod_set_value(priv->dmic_sel, priv->dmic_switch);
+ dev_info(dapm->card->dev, "dmic_set_value %d\n",
+ priv->dmic_switch);
+ }
+ return 0;
+}
+
+static const char * const dmic_mux_text[] = {
+ "FrontMic",
+ "RearMic",
+};
+
+static SOC_ENUM_SINGLE_DECL(mt8186_dmic_enum,
+ SND_SOC_NOPM, 0, dmic_mux_text);
+
+static const struct snd_kcontrol_new mt8186_dmic_mux_control =
+ SOC_DAPM_ENUM_EXT("DMIC Select Mux", mt8186_dmic_enum,
+ dmic_get, dmic_set);
+
+static const struct snd_soc_dapm_widget dmic_widgets[] = {
+ SND_SOC_DAPM_MIC("DMIC", NULL),
+ SND_SOC_DAPM_MUX("Dmic Mux", SND_SOC_NOPM, 0, 0, &mt8186_dmic_mux_control),
+};
+
+static const struct snd_soc_dapm_route dmic_map[] = {
+ /* digital mics */
+ {"Dmic Mux", "FrontMic", "DMIC"},
+ {"Dmic Mux", "RearMic", "DMIC"},
+};
+
+static int primary_codec_init(struct snd_soc_pcm_runtime *rtd)
+{
+ struct snd_soc_card *card = rtd->card;
+ struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(card);
+ struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
+ int ret;
+
+ ret = mt8186_mt6366_init(rtd);
+
+ if (ret) {
+ dev_err(card->dev, "mt8186_mt6366_init failed: %d\n", ret);
+ return ret;
+ }
+
+ if (!priv->dmic_sel) {
+ dev_info(card->dev, "dmic_sel is null\n");
+ return ret;
+ }
+
+ ret = snd_soc_dapm_new_controls(&card->dapm, dmic_widgets,
+ ARRAY_SIZE(dmic_widgets));
+ if (ret) {
+ dev_err(card->dev, "DMic widget addition failed: %d\n", ret);
+ /* Don't need to add routes if widget addition failed */
+ return ret;
+ }
+
+ ret = snd_soc_dapm_add_routes(&card->dapm, dmic_map,
+ ARRAY_SIZE(dmic_map));
+
+ if (ret)
+ dev_err(card->dev, "DMic map addition failed: %d\n", ret);
+
+ return ret;
+}
+
static int mt8186_rt5682s_init(struct snd_soc_pcm_runtime *rtd)
{
struct snd_soc_component *cmpnt_afe =
@@ -775,7 +867,7 @@ static struct snd_soc_dai_link mt8186_mt6366_rt1019_rt5682s_dai_links[] = {
.dpcm_playback = 1,
.dpcm_capture = 1,
.ignore_suspend = 1,
- .init = mt8186_mt6366_init,
+ .init = primary_codec_init,
SND_SOC_DAILINK_REG(adda),
},
{
@@ -1015,6 +1107,14 @@ static int mt8186_mt6366_rt1019_rt5682s_dev_probe(struct platform_device *pdev)
soc_card_data->mach_priv = mach_priv;
+ mach_priv->dmic_sel = devm_gpiod_get_optional(&pdev->dev,
+ "dmic", GPIOD_OUT_LOW);
+ if (IS_ERR(mach_priv->dmic_sel)) {
+ dev_err(&pdev->dev, "DMIC gpio failed err=%ld\n",
+ PTR_ERR(mach_priv->dmic_sel));
+ return PTR_ERR(mach_priv->dmic_sel);
+ }
+
adsp_node = of_parse_phandle(pdev->dev.of_node, "mediatek,adsp", 0);
if (adsp_node) {
struct mtk_sof_priv *sof_priv;
--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs case
2022-10-31 12:22 ` Ajye Huang
(?)
@ 2022-11-02 10:44 ` AngeloGioacchino Del Regno
-1 siblings, 0 replies; 18+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-11-02 10:44 UTC (permalink / raw)
To: Ajye Huang, linux-kernel
Cc: Mark Brown, Liam Girdwood, Krzysztof Kozlowski, Rob Herring,
linux-mediatek, chunxu . li, Takashi Iwai, Jaroslav Kysela,
Jiaxin Yu, Matthias Brugger, Nícolas F . R . A . Prado,
linux-arm-kernel, devicetree, alsa-devel
Il 31/10/22 13:22, Ajye Huang ha scritto:
> Having two DMICs, a front DMIC and a Rear DMIC,
> but only host audio input AUX port0 is used for these two Dmics.
> A "dmic-gpios" property is used for a mixer control to switch
> the dmic signal source between the Front and Rear Dmic.
>
> Refer to this one as an example,
> commit 3cfbf07c6d27
> ("ASoC: qcom: sc7180: Modify machine driver for 2mic")
>
> Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
> ---
> .../mt8186/mt8186-mt6366-rt1019-rt5682s.c | 102 +++++++++++++++++-
> 1 file changed, 101 insertions(+), 1 deletion(-)
>
> diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
> index 2414c5b77233..75351734464c 100644
> --- a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
> +++ b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
> @@ -7,6 +7,8 @@
> // Author: Jiaxin Yu <jiaxin.yu@mediatek.com>
> //
>
> +#include <linux/gpio.h>
> +#include <linux/gpio/consumer.h>
> #include <linux/input.h>
> #include <linux/module.h>
> #include <linux/of_device.h>
> @@ -39,6 +41,8 @@
>
> struct mt8186_mt6366_rt1019_rt5682s_priv {
> struct snd_soc_jack headset_jack, hdmi_jack;
> + struct gpio_desc *dmic_sel;
> + int dmic_switch;
> };
>
> /* Headset jack detection DAPM pins */
> @@ -68,6 +72,94 @@ static struct snd_soc_codec_conf mt8186_mt6366_rt1019_rt5682s_codec_conf[] = {
> },
> };
>
> +static int dmic_get(struct snd_kcontrol *kcontrol,
> + struct snd_ctl_elem_value *ucontrol)
> +{
> + struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
> + struct mtk_soc_card_data *soc_card_data =
> + snd_soc_card_get_drvdata(dapm->card);
> + struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
> +
> + ucontrol->value.integer.value[0] = priv->dmic_switch;
> + return 0;
> +}
> +
> +static int dmic_set(struct snd_kcontrol *kcontrol,
> + struct snd_ctl_elem_value *ucontrol)
> +{
> + struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
> + struct mtk_soc_card_data *soc_card_data =
> + snd_soc_card_get_drvdata(dapm->card);
> + struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
> +
> + priv->dmic_switch = ucontrol->value.integer.value[0];
> + if (priv->dmic_sel) {
> + gpiod_set_value(priv->dmic_sel, priv->dmic_switch);
> + dev_info(dapm->card->dev, "dmic_set_value %d\n",
> + priv->dmic_switch);
> + }
> + return 0;
> +}
> +
> +static const char * const dmic_mux_text[] = {
> + "FrontMic",
> + "RearMic",
Why are the two words joined?
s/FrontMic/Front Mic/g
s/RearMic/Rear Mic/g
Like that, we keep it consistent with the naming that was given in the commit
that you mentioned in the commit description.
Regards,
Angelo
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs case
@ 2022-11-02 10:44 ` AngeloGioacchino Del Regno
0 siblings, 0 replies; 18+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-11-02 10:44 UTC (permalink / raw)
To: Ajye Huang, linux-kernel
Cc: devicetree, alsa-devel, chunxu . li,
Nícolas F . R . A . Prado, Mark Brown, Liam Girdwood,
Jiaxin Yu, Takashi Iwai, Rob Herring, linux-mediatek,
Krzysztof Kozlowski, Matthias Brugger, linux-arm-kernel
Il 31/10/22 13:22, Ajye Huang ha scritto:
> Having two DMICs, a front DMIC and a Rear DMIC,
> but only host audio input AUX port0 is used for these two Dmics.
> A "dmic-gpios" property is used for a mixer control to switch
> the dmic signal source between the Front and Rear Dmic.
>
> Refer to this one as an example,
> commit 3cfbf07c6d27
> ("ASoC: qcom: sc7180: Modify machine driver for 2mic")
>
> Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
> ---
> .../mt8186/mt8186-mt6366-rt1019-rt5682s.c | 102 +++++++++++++++++-
> 1 file changed, 101 insertions(+), 1 deletion(-)
>
> diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
> index 2414c5b77233..75351734464c 100644
> --- a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
> +++ b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
> @@ -7,6 +7,8 @@
> // Author: Jiaxin Yu <jiaxin.yu@mediatek.com>
> //
>
> +#include <linux/gpio.h>
> +#include <linux/gpio/consumer.h>
> #include <linux/input.h>
> #include <linux/module.h>
> #include <linux/of_device.h>
> @@ -39,6 +41,8 @@
>
> struct mt8186_mt6366_rt1019_rt5682s_priv {
> struct snd_soc_jack headset_jack, hdmi_jack;
> + struct gpio_desc *dmic_sel;
> + int dmic_switch;
> };
>
> /* Headset jack detection DAPM pins */
> @@ -68,6 +72,94 @@ static struct snd_soc_codec_conf mt8186_mt6366_rt1019_rt5682s_codec_conf[] = {
> },
> };
>
> +static int dmic_get(struct snd_kcontrol *kcontrol,
> + struct snd_ctl_elem_value *ucontrol)
> +{
> + struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
> + struct mtk_soc_card_data *soc_card_data =
> + snd_soc_card_get_drvdata(dapm->card);
> + struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
> +
> + ucontrol->value.integer.value[0] = priv->dmic_switch;
> + return 0;
> +}
> +
> +static int dmic_set(struct snd_kcontrol *kcontrol,
> + struct snd_ctl_elem_value *ucontrol)
> +{
> + struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
> + struct mtk_soc_card_data *soc_card_data =
> + snd_soc_card_get_drvdata(dapm->card);
> + struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
> +
> + priv->dmic_switch = ucontrol->value.integer.value[0];
> + if (priv->dmic_sel) {
> + gpiod_set_value(priv->dmic_sel, priv->dmic_switch);
> + dev_info(dapm->card->dev, "dmic_set_value %d\n",
> + priv->dmic_switch);
> + }
> + return 0;
> +}
> +
> +static const char * const dmic_mux_text[] = {
> + "FrontMic",
> + "RearMic",
Why are the two words joined?
s/FrontMic/Front Mic/g
s/RearMic/Rear Mic/g
Like that, we keep it consistent with the naming that was given in the commit
that you mentioned in the commit description.
Regards,
Angelo
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs case
@ 2022-11-02 10:44 ` AngeloGioacchino Del Regno
0 siblings, 0 replies; 18+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-11-02 10:44 UTC (permalink / raw)
To: Ajye Huang, linux-kernel
Cc: Mark Brown, Liam Girdwood, Krzysztof Kozlowski, Rob Herring,
linux-mediatek, chunxu . li, Takashi Iwai, Jaroslav Kysela,
Jiaxin Yu, Matthias Brugger, Nícolas F . R . A . Prado,
linux-arm-kernel, devicetree, alsa-devel
Il 31/10/22 13:22, Ajye Huang ha scritto:
> Having two DMICs, a front DMIC and a Rear DMIC,
> but only host audio input AUX port0 is used for these two Dmics.
> A "dmic-gpios" property is used for a mixer control to switch
> the dmic signal source between the Front and Rear Dmic.
>
> Refer to this one as an example,
> commit 3cfbf07c6d27
> ("ASoC: qcom: sc7180: Modify machine driver for 2mic")
>
> Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
> ---
> .../mt8186/mt8186-mt6366-rt1019-rt5682s.c | 102 +++++++++++++++++-
> 1 file changed, 101 insertions(+), 1 deletion(-)
>
> diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
> index 2414c5b77233..75351734464c 100644
> --- a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
> +++ b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
> @@ -7,6 +7,8 @@
> // Author: Jiaxin Yu <jiaxin.yu@mediatek.com>
> //
>
> +#include <linux/gpio.h>
> +#include <linux/gpio/consumer.h>
> #include <linux/input.h>
> #include <linux/module.h>
> #include <linux/of_device.h>
> @@ -39,6 +41,8 @@
>
> struct mt8186_mt6366_rt1019_rt5682s_priv {
> struct snd_soc_jack headset_jack, hdmi_jack;
> + struct gpio_desc *dmic_sel;
> + int dmic_switch;
> };
>
> /* Headset jack detection DAPM pins */
> @@ -68,6 +72,94 @@ static struct snd_soc_codec_conf mt8186_mt6366_rt1019_rt5682s_codec_conf[] = {
> },
> };
>
> +static int dmic_get(struct snd_kcontrol *kcontrol,
> + struct snd_ctl_elem_value *ucontrol)
> +{
> + struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
> + struct mtk_soc_card_data *soc_card_data =
> + snd_soc_card_get_drvdata(dapm->card);
> + struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
> +
> + ucontrol->value.integer.value[0] = priv->dmic_switch;
> + return 0;
> +}
> +
> +static int dmic_set(struct snd_kcontrol *kcontrol,
> + struct snd_ctl_elem_value *ucontrol)
> +{
> + struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
> + struct mtk_soc_card_data *soc_card_data =
> + snd_soc_card_get_drvdata(dapm->card);
> + struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
> +
> + priv->dmic_switch = ucontrol->value.integer.value[0];
> + if (priv->dmic_sel) {
> + gpiod_set_value(priv->dmic_sel, priv->dmic_switch);
> + dev_info(dapm->card->dev, "dmic_set_value %d\n",
> + priv->dmic_switch);
> + }
> + return 0;
> +}
> +
> +static const char * const dmic_mux_text[] = {
> + "FrontMic",
> + "RearMic",
Why are the two words joined?
s/FrontMic/Front Mic/g
s/RearMic/Rear Mic/g
Like that, we keep it consistent with the naming that was given in the commit
that you mentioned in the commit description.
Regards,
Angelo
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs case
2022-11-02 10:44 ` AngeloGioacchino Del Regno
(?)
@ 2022-11-02 12:13 ` Ajye Huang
-1 siblings, 0 replies; 18+ messages in thread
From: Ajye Huang @ 2022-11-02 12:13 UTC (permalink / raw)
To: AngeloGioacchino Del Regno
Cc: linux-kernel, Mark Brown, Liam Girdwood, Krzysztof Kozlowski,
Rob Herring, linux-mediatek, chunxu . li, Takashi Iwai,
Jaroslav Kysela, Jiaxin Yu, Matthias Brugger,
Nícolas F . R . A . Prado, linux-arm-kernel, devicetree,
alsa-devel
Hi AngeloGioacchino,
On Wed, Nov 2, 2022 at 6:44 PM AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com> wrote:
>
> > A "dmic-gpios" property is used for a mixer control to switch
> > the dmic signal source between the Front and Rear Dmic.
> >
> > Refer to this one as an example,
> > commit 3cfbf07c6d27
> > ("ASoC: qcom: sc7180: Modify machine driver for 2mic")
> >
> > +static const char * const dmic_mux_text[] = {
> > + "FrontMic",
> > + "RearMic",
>
> Why are the two words joined?
> s/FrontMic/Front Mic/g
> s/RearMic/Rear Mic/g
>
> Like that, we keep it consistent with the naming that was given in the commit
> that you mentioned in the commit description.
>
> Regards,
> Angelo
Thank you for your review.
Yes, you are correct, I should keep the string format consistent with
the commit I mentioned in descriptions to avoid confusion.
I will submit the next. Thanks. Regards.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs case
@ 2022-11-02 12:13 ` Ajye Huang
0 siblings, 0 replies; 18+ messages in thread
From: Ajye Huang @ 2022-11-02 12:13 UTC (permalink / raw)
To: AngeloGioacchino Del Regno
Cc: devicetree, alsa-devel, chunxu . li,
Nícolas F . R . A . Prado, Mark Brown, Takashi Iwai,
linux-kernel, Jiaxin Yu, Liam Girdwood, Rob Herring,
linux-mediatek, Krzysztof Kozlowski, Matthias Brugger,
linux-arm-kernel
Hi AngeloGioacchino,
On Wed, Nov 2, 2022 at 6:44 PM AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com> wrote:
>
> > A "dmic-gpios" property is used for a mixer control to switch
> > the dmic signal source between the Front and Rear Dmic.
> >
> > Refer to this one as an example,
> > commit 3cfbf07c6d27
> > ("ASoC: qcom: sc7180: Modify machine driver for 2mic")
> >
> > +static const char * const dmic_mux_text[] = {
> > + "FrontMic",
> > + "RearMic",
>
> Why are the two words joined?
> s/FrontMic/Front Mic/g
> s/RearMic/Rear Mic/g
>
> Like that, we keep it consistent with the naming that was given in the commit
> that you mentioned in the commit description.
>
> Regards,
> Angelo
Thank you for your review.
Yes, you are correct, I should keep the string format consistent with
the commit I mentioned in descriptions to avoid confusion.
I will submit the next. Thanks. Regards.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs case
@ 2022-11-02 12:13 ` Ajye Huang
0 siblings, 0 replies; 18+ messages in thread
From: Ajye Huang @ 2022-11-02 12:13 UTC (permalink / raw)
To: AngeloGioacchino Del Regno
Cc: linux-kernel, Mark Brown, Liam Girdwood, Krzysztof Kozlowski,
Rob Herring, linux-mediatek, chunxu . li, Takashi Iwai,
Jaroslav Kysela, Jiaxin Yu, Matthias Brugger,
Nícolas F . R . A . Prado, linux-arm-kernel, devicetree,
alsa-devel
Hi AngeloGioacchino,
On Wed, Nov 2, 2022 at 6:44 PM AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com> wrote:
>
> > A "dmic-gpios" property is used for a mixer control to switch
> > the dmic signal source between the Front and Rear Dmic.
> >
> > Refer to this one as an example,
> > commit 3cfbf07c6d27
> > ("ASoC: qcom: sc7180: Modify machine driver for 2mic")
> >
> > +static const char * const dmic_mux_text[] = {
> > + "FrontMic",
> > + "RearMic",
>
> Why are the two words joined?
> s/FrontMic/Front Mic/g
> s/RearMic/Rear Mic/g
>
> Like that, we keep it consistent with the naming that was given in the commit
> that you mentioned in the commit description.
>
> Regards,
> Angelo
Thank you for your review.
Yes, you are correct, I should keep the string format consistent with
the commit I mentioned in descriptions to avoid confusion.
I will submit the next. Thanks. Regards.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 1/2] ASoC: mediatek: dt-bindings: modify machine bindings for two MICs case
2022-10-31 12:22 ` Ajye Huang
(?)
@ 2022-11-02 16:10 ` Rob Herring
-1 siblings, 0 replies; 18+ messages in thread
From: Rob Herring @ 2022-11-02 16:10 UTC (permalink / raw)
To: Ajye Huang
Cc: AngeloGioacchino Del Regno, chunxu . li, Takashi Iwai, Jiaxin Yu,
Jaroslav Kysela, devicetree, Liam Girdwood, linux-kernel,
linux-mediatek, linux-arm-kernel, Matthias Brugger,
Nícolas F . R . A . Prado, alsa-devel, Rob Herring,
Mark Brown, Krzysztof Kozlowski
On Mon, 31 Oct 2022 20:22:23 +0800, Ajye Huang wrote:
> Add a property "dmic-gpios" for switching between two MICs.
>
> Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
> ---
> .../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
Acked-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 1/2] ASoC: mediatek: dt-bindings: modify machine bindings for two MICs case
@ 2022-11-02 16:10 ` Rob Herring
0 siblings, 0 replies; 18+ messages in thread
From: Rob Herring @ 2022-11-02 16:10 UTC (permalink / raw)
To: Ajye Huang
Cc: devicetree, alsa-devel, chunxu . li,
Nícolas F . R . A . Prado, Liam Girdwood, linux-kernel,
Mark Brown, Takashi Iwai, Jiaxin Yu, Rob Herring, linux-mediatek,
Krzysztof Kozlowski, Matthias Brugger, linux-arm-kernel,
AngeloGioacchino Del Regno
On Mon, 31 Oct 2022 20:22:23 +0800, Ajye Huang wrote:
> Add a property "dmic-gpios" for switching between two MICs.
>
> Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
> ---
> .../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
Acked-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 1/2] ASoC: mediatek: dt-bindings: modify machine bindings for two MICs case
@ 2022-11-02 16:10 ` Rob Herring
0 siblings, 0 replies; 18+ messages in thread
From: Rob Herring @ 2022-11-02 16:10 UTC (permalink / raw)
To: Ajye Huang
Cc: AngeloGioacchino Del Regno, chunxu . li, Takashi Iwai, Jiaxin Yu,
Jaroslav Kysela, devicetree, Liam Girdwood, linux-kernel,
linux-mediatek, linux-arm-kernel, Matthias Brugger,
Nícolas F . R . A . Prado, alsa-devel, Rob Herring,
Mark Brown, Krzysztof Kozlowski
On Mon, 31 Oct 2022 20:22:23 +0800, Ajye Huang wrote:
> Add a property "dmic-gpios" for switching between two MICs.
>
> Signed-off-by: Ajye Huang <ajye_huang@compal.corp-partner.google.com>
> ---
> .../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
Acked-by: Rob Herring <robh@kernel.org>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2022-11-02 16:11 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-31 12:22 [PATCH v5 0/2] Modify documentation and machine driver for mt8186_rt1019_rt5682s sound card Ajye Huang
2022-10-31 12:22 ` Ajye Huang
2022-10-31 12:22 ` Ajye Huang
2022-10-31 12:22 ` [PATCH v5 1/2] ASoC: mediatek: dt-bindings: modify machine bindings for two MICs case Ajye Huang
2022-10-31 12:22 ` Ajye Huang
2022-10-31 12:22 ` Ajye Huang
2022-11-02 16:10 ` Rob Herring
2022-11-02 16:10 ` Rob Herring
2022-11-02 16:10 ` Rob Herring
2022-10-31 12:22 ` [PATCH v5 2/2] ASoC: mediatek: mt8186-rt5682: Modify machine driver for two DMICs case Ajye Huang
2022-10-31 12:22 ` Ajye Huang
2022-10-31 12:22 ` Ajye Huang
2022-11-02 10:44 ` AngeloGioacchino Del Regno
2022-11-02 10:44 ` AngeloGioacchino Del Regno
2022-11-02 10:44 ` AngeloGioacchino Del Regno
2022-11-02 12:13 ` Ajye Huang
2022-11-02 12:13 ` Ajye Huang
2022-11-02 12:13 ` Ajye Huang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.