• Home
  • Raw
  • Download

Lines Matching +full:audmux +full:- +full:port

1 // SPDX-License-Identifier: GPL-2.0+
15 #include "imx-audmux.h"
31 .gpio = -1,
32 .name = "headset-gpio",
43 struct imx_es8328_data *data = container_of(rtd->card, in imx_es8328_dai_init()
48 if (gpio_is_valid(data->jack_gpio)) { in imx_es8328_dai_init()
49 ret = snd_soc_card_jack_new(rtd->card, "Headphone", in imx_es8328_dai_init()
55 headset_jack_gpios[0].gpio = data->jack_gpio; in imx_es8328_dai_init()
68 SND_SOC_DAPM_REGULATOR_SUPPLY("audio-amp", 1, 0),
73 struct device_node *np = pdev->dev.of_node; in imx_es8328_probe()
80 struct device *dev = &pdev->dev; in imx_es8328_probe()
82 ret = of_property_read_u32(np, "mux-int-port", &int_port); in imx_es8328_probe()
84 dev_err(dev, "mux-int-port missing or invalid\n"); in imx_es8328_probe()
88 dev_err(dev, "mux-int-port: hardware only has %d mux ports\n", in imx_es8328_probe()
90 ret = -EINVAL; in imx_es8328_probe()
94 ret = of_property_read_u32(np, "mux-ext-port", &ext_port); in imx_es8328_probe()
96 dev_err(dev, "mux-ext-port missing or invalid\n"); in imx_es8328_probe()
100 dev_err(dev, "mux-ext-port: hardware only has %d mux ports\n", in imx_es8328_probe()
102 ret = -EINVAL; in imx_es8328_probe()
107 * The port numbering in the hardware manual starts at 1, while in imx_es8328_probe()
108 * the audmux API expects it starts at 0. in imx_es8328_probe()
110 int_port--; in imx_es8328_probe()
111 ext_port--; in imx_es8328_probe()
120 dev_err(dev, "audmux internal port setup failed\n"); in imx_es8328_probe()
127 dev_err(dev, "audmux external port setup failed\n"); in imx_es8328_probe()
131 ssi_np = of_parse_phandle(pdev->dev.of_node, "ssi-controller", 0); in imx_es8328_probe()
132 codec_np = of_parse_phandle(pdev->dev.of_node, "audio-codec", 0); in imx_es8328_probe()
135 ret = -EINVAL; in imx_es8328_probe()
142 ret = -EINVAL; in imx_es8328_probe()
148 ret = -ENOMEM; in imx_es8328_probe()
154 ret = -ENOMEM; in imx_es8328_probe()
158 data->dev = dev; in imx_es8328_probe()
160 data->jack_gpio = of_get_named_gpio(pdev->dev.of_node, "jack-gpio", 0); in imx_es8328_probe()
162 data->dai.cpus = &comp[0]; in imx_es8328_probe()
163 data->dai.codecs = &comp[1]; in imx_es8328_probe()
164 data->dai.platforms = &comp[2]; in imx_es8328_probe()
166 data->dai.num_cpus = 1; in imx_es8328_probe()
167 data->dai.num_codecs = 1; in imx_es8328_probe()
168 data->dai.num_platforms = 1; in imx_es8328_probe()
170 data->dai.name = "hifi"; in imx_es8328_probe()
171 data->dai.stream_name = "hifi"; in imx_es8328_probe()
172 data->dai.codecs->dai_name = "es8328-hifi-analog"; in imx_es8328_probe()
173 data->dai.codecs->of_node = codec_np; in imx_es8328_probe()
174 data->dai.cpus->of_node = ssi_np; in imx_es8328_probe()
175 data->dai.platforms->of_node = ssi_np; in imx_es8328_probe()
176 data->dai.init = &imx_es8328_dai_init; in imx_es8328_probe()
177 data->dai.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | in imx_es8328_probe()
180 data->card.dev = dev; in imx_es8328_probe()
181 data->card.dapm_widgets = imx_es8328_dapm_widgets; in imx_es8328_probe()
182 data->card.num_dapm_widgets = ARRAY_SIZE(imx_es8328_dapm_widgets); in imx_es8328_probe()
183 ret = snd_soc_of_parse_card_name(&data->card, "model"); in imx_es8328_probe()
188 ret = snd_soc_of_parse_audio_routing(&data->card, "audio-routing"); in imx_es8328_probe()
193 data->card.num_links = 1; in imx_es8328_probe()
194 data->card.owner = THIS_MODULE; in imx_es8328_probe()
195 data->card.dai_link = &data->dai; in imx_es8328_probe()
197 ret = snd_soc_register_card(&data->card); in imx_es8328_probe()
205 put_device(&ssi_pdev->dev); in imx_es8328_probe()
217 snd_soc_unregister_card(&data->card); in imx_es8328_remove()
223 { .compatible = "fsl,imx-audio-es8328", },
230 .name = "imx-es8328",
241 MODULE_ALIAS("platform:imx-audio-es8328");