Lines Matching +full:invert +full:- +full:ext
1 // SPDX-License-Identifier: GPL-2.0+
15 #include "imx-audmux.h"
31 .gpio = -1,
32 .name = "headset-gpio",
34 .invert = 0,
53 struct imx_es8328_data *data = container_of(rtd->card, in imx_es8328_dai_init()
58 if (gpio_is_valid(data->jack_gpio)) { in imx_es8328_dai_init()
59 ret = snd_soc_card_jack_new_pins(rtd->card, "Headphone", in imx_es8328_dai_init()
67 headset_jack_gpios[0].gpio = data->jack_gpio; in imx_es8328_dai_init()
80 SND_SOC_DAPM_REGULATOR_SUPPLY("audio-amp", 1, 0),
90 struct device_node *np = pdev->dev.of_node; in imx_es8328_probe()
97 struct device *dev = &pdev->dev; in imx_es8328_probe()
99 ret = of_property_read_u32(np, "mux-int-port", &int_port); in imx_es8328_probe()
101 dev_err(dev, "mux-int-port missing or invalid\n"); in imx_es8328_probe()
105 dev_err(dev, "mux-int-port: hardware only has %d mux ports\n", in imx_es8328_probe()
107 ret = -EINVAL; in imx_es8328_probe()
111 ret = of_property_read_u32(np, "mux-ext-port", &ext_port); in imx_es8328_probe()
113 dev_err(dev, "mux-ext-port missing or invalid\n"); in imx_es8328_probe()
117 dev_err(dev, "mux-ext-port: hardware only has %d mux ports\n", in imx_es8328_probe()
119 ret = -EINVAL; in imx_es8328_probe()
127 int_port--; in imx_es8328_probe()
128 ext_port--; in imx_es8328_probe()
148 ssi_np = of_parse_phandle(pdev->dev.of_node, "ssi-controller", 0); in imx_es8328_probe()
149 codec_np = of_parse_phandle(pdev->dev.of_node, "audio-codec", 0); in imx_es8328_probe()
152 ret = -EINVAL; in imx_es8328_probe()
159 ret = -EINVAL; in imx_es8328_probe()
165 ret = -ENOMEM; in imx_es8328_probe()
171 ret = -ENOMEM; in imx_es8328_probe()
175 data->dev = dev; in imx_es8328_probe()
177 data->jack_gpio = of_get_named_gpio(pdev->dev.of_node, "jack-gpio", 0); in imx_es8328_probe()
181 * platform is using soc-generic-dmaengine-pcm in imx_es8328_probe()
183 data->dai.cpus = in imx_es8328_probe()
184 data->dai.platforms = &comp[0]; in imx_es8328_probe()
185 data->dai.codecs = &comp[1]; in imx_es8328_probe()
187 data->dai.num_cpus = 1; in imx_es8328_probe()
188 data->dai.num_codecs = 1; in imx_es8328_probe()
189 data->dai.num_platforms = 1; in imx_es8328_probe()
191 data->dai.name = "hifi"; in imx_es8328_probe()
192 data->dai.stream_name = "hifi"; in imx_es8328_probe()
193 data->dai.codecs->dai_name = "es8328-hifi-analog"; in imx_es8328_probe()
194 data->dai.codecs->of_node = codec_np; in imx_es8328_probe()
195 data->dai.cpus->of_node = ssi_np; in imx_es8328_probe()
196 data->dai.init = &imx_es8328_dai_init; in imx_es8328_probe()
197 data->dai.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | in imx_es8328_probe()
200 data->card.dev = dev; in imx_es8328_probe()
201 data->card.dapm_widgets = imx_es8328_dapm_widgets; in imx_es8328_probe()
202 data->card.num_dapm_widgets = ARRAY_SIZE(imx_es8328_dapm_widgets); in imx_es8328_probe()
203 data->card.controls = imx_es8328_controls; in imx_es8328_probe()
204 data->card.num_controls = ARRAY_SIZE(imx_es8328_controls); in imx_es8328_probe()
205 ret = snd_soc_of_parse_card_name(&data->card, "model"); in imx_es8328_probe()
210 ret = snd_soc_of_parse_audio_routing(&data->card, "audio-routing"); in imx_es8328_probe()
215 data->card.num_links = 1; in imx_es8328_probe()
216 data->card.owner = THIS_MODULE; in imx_es8328_probe()
217 data->card.dai_link = &data->dai; in imx_es8328_probe()
219 ret = devm_snd_soc_register_card(&pdev->dev, &data->card); in imx_es8328_probe()
227 put_device(&ssi_pdev->dev); in imx_es8328_probe()
236 { .compatible = "fsl,imx-audio-es8328", },
243 .name = "imx-es8328",
253 MODULE_ALIAS("platform:imx-audio-es8328");