Loading Documentation/devicetree/bindings/sound/simple-card.txt +3 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,7 @@ sound { simple-audio-card,name = "Cubox Audio"; simple-audio-card,dai-link@0 { /* I2S - HDMI */ reg = <0>; format = "i2s"; cpu { sound-dai = <&audio1 0>; Loading @@ -150,6 +151,7 @@ sound { }; simple-audio-card,dai-link@1 { /* S/PDIF - HDMI */ reg = <1>; cpu { sound-dai = <&audio1 1>; }; Loading @@ -159,6 +161,7 @@ sound { }; simple-audio-card,dai-link@2 { /* S/PDIF - S/PDIF */ reg = <2>; cpu { sound-dai = <&audio1 1>; }; Loading Documentation/devicetree/bindings/sound/st,stm32-adfsdm.txt 0 → 100644 +63 −0 Original line number Diff line number Diff line STMicroelectronics Audio Digital Filter Sigma Delta modulators(DFSDM) The DFSDM allows PDM microphones capture through SPI interface. The Audio interface is seems as a sub block of the DFSDM device. For details on DFSDM bindings refer to ../iio/adc/st,stm32-dfsdm-adc.txt Required properties: - compatible: "st,stm32h7-dfsdm-dai". - #sound-dai-cells : Must be equal to 0 - io-channels : phandle to iio dfsdm instance node. Example of a sound card using audio DFSDM node. sound_card { compatible = "audio-graph-card"; dais = <&cpu_port>; }; dfsdm: dfsdm@40017000 { compatible = "st,stm32h7-dfsdm"; reg = <0x40017000 0x400>; clocks = <&rcc DFSDM1_CK>; clock-names = "dfsdm"; #interrupt-cells = <1>; #address-cells = <1>; #size-cells = <0>; dfsdm_adc0: filter@0 { compatible = "st,stm32-dfsdm-dmic"; reg = <0>; interrupts = <110>; dmas = <&dmamux1 101 0x400 0x00>; dma-names = "rx"; st,adc-channels = <1>; st,adc-channel-names = "dmic0"; st,adc-channel-types = "SPI_R"; st,adc-channel-clk-src = "CLKOUT"; st,filter-order = <5>; dfsdm_dai0: dfsdm-dai { compatible = "st,stm32h7-dfsdm-dai"; #sound-dai-cells = <0>; io-channels = <&dfsdm_adc0 0>; cpu_port: port { dfsdm_endpoint: endpoint { remote-endpoint = <&dmic0_endpoint>; }; }; }; }; dmic0: dmic@0 { compatible = "dmic-codec"; #sound-dai-cells = <0>; port { dmic0_endpoint: endpoint { remote-endpoint = <&dfsdm_endpoint>; }; }; }; sound/soc/codecs/sgtl5000.c +4 −1 Original line number Diff line number Diff line Loading @@ -1332,10 +1332,13 @@ static int sgtl5000_i2c_probe(struct i2c_client *client, sgtl5000->mclk = devm_clk_get(&client->dev, NULL); if (IS_ERR(sgtl5000->mclk)) { ret = PTR_ERR(sgtl5000->mclk); dev_err(&client->dev, "Failed to get mclock: %d\n", ret); /* Defer the probe to see if the clk will be provided later */ if (ret == -ENOENT) ret = -EPROBE_DEFER; if (ret != -EPROBE_DEFER) dev_err(&client->dev, "Failed to get mclock: %d\n", ret); goto disable_regs; } Loading sound/soc/codecs/si476x.c +6 −3 Original line number Diff line number Diff line Loading @@ -231,14 +231,17 @@ static struct snd_soc_dai_driver si476x_dai = { .ops = &si476x_dai_ops, }; static struct regmap *si476x_get_regmap(struct device *dev) static int si476x_probe(struct snd_soc_component *component) { return dev_get_regmap(dev->parent, NULL); snd_soc_component_init_regmap(component, dev_get_regmap(component->dev->parent, NULL)); return 0; } static const struct snd_soc_codec_driver soc_codec_dev_si476x = { .get_regmap = si476x_get_regmap, .component_driver = { .probe = si476x_probe, .dapm_widgets = si476x_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(si476x_dapm_widgets), .dapm_routes = si476x_dapm_routes, Loading sound/soc/codecs/spdif_receiver.c +3 −2 Original line number Diff line number Diff line Loading @@ -35,9 +35,10 @@ static const struct snd_soc_dapm_route dir_routes[] = { #define STUB_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | \ SNDRV_PCM_FMTBIT_S20_3LE | \ SNDRV_PCM_FMTBIT_S24_LE | \ SNDRV_PCM_FMTBIT_S32_LE | \ SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE) static const struct snd_soc_codec_driver soc_codec_spdif_dir = { static struct snd_soc_codec_driver soc_codec_spdif_dir = { .component_driver = { .dapm_widgets = dir_widgets, .num_dapm_widgets = ARRAY_SIZE(dir_widgets), Loading Loading
Documentation/devicetree/bindings/sound/simple-card.txt +3 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,7 @@ sound { simple-audio-card,name = "Cubox Audio"; simple-audio-card,dai-link@0 { /* I2S - HDMI */ reg = <0>; format = "i2s"; cpu { sound-dai = <&audio1 0>; Loading @@ -150,6 +151,7 @@ sound { }; simple-audio-card,dai-link@1 { /* S/PDIF - HDMI */ reg = <1>; cpu { sound-dai = <&audio1 1>; }; Loading @@ -159,6 +161,7 @@ sound { }; simple-audio-card,dai-link@2 { /* S/PDIF - S/PDIF */ reg = <2>; cpu { sound-dai = <&audio1 1>; }; Loading
Documentation/devicetree/bindings/sound/st,stm32-adfsdm.txt 0 → 100644 +63 −0 Original line number Diff line number Diff line STMicroelectronics Audio Digital Filter Sigma Delta modulators(DFSDM) The DFSDM allows PDM microphones capture through SPI interface. The Audio interface is seems as a sub block of the DFSDM device. For details on DFSDM bindings refer to ../iio/adc/st,stm32-dfsdm-adc.txt Required properties: - compatible: "st,stm32h7-dfsdm-dai". - #sound-dai-cells : Must be equal to 0 - io-channels : phandle to iio dfsdm instance node. Example of a sound card using audio DFSDM node. sound_card { compatible = "audio-graph-card"; dais = <&cpu_port>; }; dfsdm: dfsdm@40017000 { compatible = "st,stm32h7-dfsdm"; reg = <0x40017000 0x400>; clocks = <&rcc DFSDM1_CK>; clock-names = "dfsdm"; #interrupt-cells = <1>; #address-cells = <1>; #size-cells = <0>; dfsdm_adc0: filter@0 { compatible = "st,stm32-dfsdm-dmic"; reg = <0>; interrupts = <110>; dmas = <&dmamux1 101 0x400 0x00>; dma-names = "rx"; st,adc-channels = <1>; st,adc-channel-names = "dmic0"; st,adc-channel-types = "SPI_R"; st,adc-channel-clk-src = "CLKOUT"; st,filter-order = <5>; dfsdm_dai0: dfsdm-dai { compatible = "st,stm32h7-dfsdm-dai"; #sound-dai-cells = <0>; io-channels = <&dfsdm_adc0 0>; cpu_port: port { dfsdm_endpoint: endpoint { remote-endpoint = <&dmic0_endpoint>; }; }; }; }; dmic0: dmic@0 { compatible = "dmic-codec"; #sound-dai-cells = <0>; port { dmic0_endpoint: endpoint { remote-endpoint = <&dfsdm_endpoint>; }; }; };
sound/soc/codecs/sgtl5000.c +4 −1 Original line number Diff line number Diff line Loading @@ -1332,10 +1332,13 @@ static int sgtl5000_i2c_probe(struct i2c_client *client, sgtl5000->mclk = devm_clk_get(&client->dev, NULL); if (IS_ERR(sgtl5000->mclk)) { ret = PTR_ERR(sgtl5000->mclk); dev_err(&client->dev, "Failed to get mclock: %d\n", ret); /* Defer the probe to see if the clk will be provided later */ if (ret == -ENOENT) ret = -EPROBE_DEFER; if (ret != -EPROBE_DEFER) dev_err(&client->dev, "Failed to get mclock: %d\n", ret); goto disable_regs; } Loading
sound/soc/codecs/si476x.c +6 −3 Original line number Diff line number Diff line Loading @@ -231,14 +231,17 @@ static struct snd_soc_dai_driver si476x_dai = { .ops = &si476x_dai_ops, }; static struct regmap *si476x_get_regmap(struct device *dev) static int si476x_probe(struct snd_soc_component *component) { return dev_get_regmap(dev->parent, NULL); snd_soc_component_init_regmap(component, dev_get_regmap(component->dev->parent, NULL)); return 0; } static const struct snd_soc_codec_driver soc_codec_dev_si476x = { .get_regmap = si476x_get_regmap, .component_driver = { .probe = si476x_probe, .dapm_widgets = si476x_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(si476x_dapm_widgets), .dapm_routes = si476x_dapm_routes, Loading
sound/soc/codecs/spdif_receiver.c +3 −2 Original line number Diff line number Diff line Loading @@ -35,9 +35,10 @@ static const struct snd_soc_dapm_route dir_routes[] = { #define STUB_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | \ SNDRV_PCM_FMTBIT_S20_3LE | \ SNDRV_PCM_FMTBIT_S24_LE | \ SNDRV_PCM_FMTBIT_S32_LE | \ SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE) static const struct snd_soc_codec_driver soc_codec_spdif_dir = { static struct snd_soc_codec_driver soc_codec_spdif_dir = { .component_driver = { .dapm_widgets = dir_widgets, .num_dapm_widgets = ARRAY_SIZE(dir_widgets), Loading