Lines Matching +full:imx21 +full:- +full:i2c

1 // SPDX-License-Identifier: GPL-2.0+
3 // eukrea-tlv320.c -- SoC audio for eukrea_cpuimxXX in I2S mode
9 // and on sound/soc/imx/phycore-ac97.c which is
18 #include <linux/i2c.h>
22 #include <asm/mach-types.h>
25 #include "imx-ssi.h"
26 #include "imx-audmux.h"
41 dev_err(cpu_dai->dev, in eukrea_tlv320_hw_params()
51 if (ret && ret != -EINVAL) { in eukrea_tlv320_hw_params()
52 dev_err(cpu_dai->dev, in eukrea_tlv320_hw_params()
66 DAILINK_COMP_ARRAY(COMP_CODEC(NULL, "tlv320aic23-hifi")),
88 struct device_node *np = pdev->dev.of_node; in eukrea_tlv320_probe()
91 eukrea_tlv320.dev = &pdev->dev; in eukrea_tlv320_probe()
96 dev_err(&pdev->dev, in eukrea_tlv320_probe()
101 ssi_np = of_parse_phandle(pdev->dev.of_node, in eukrea_tlv320_probe()
102 "ssi-controller", 0); in eukrea_tlv320_probe()
104 dev_err(&pdev->dev, in eukrea_tlv320_probe()
105 "ssi-controller missing or invalid.\n"); in eukrea_tlv320_probe()
106 ret = -ENODEV; in eukrea_tlv320_probe()
110 codec_np = of_parse_phandle(ssi_np, "codec-handle", 0); in eukrea_tlv320_probe()
112 eukrea_tlv320_dai.codecs->of_node = codec_np; in eukrea_tlv320_probe()
114 dev_err(&pdev->dev, "codec-handle node missing or invalid.\n"); in eukrea_tlv320_probe()
116 ret = of_property_read_u32(np, "fsl,mux-int-port", &int_port); in eukrea_tlv320_probe()
118 dev_err(&pdev->dev, in eukrea_tlv320_probe()
119 "fsl,mux-int-port node missing or invalid.\n"); in eukrea_tlv320_probe()
122 ret = of_property_read_u32(np, "fsl,mux-ext-port", &ext_port); in eukrea_tlv320_probe()
124 dev_err(&pdev->dev, in eukrea_tlv320_probe()
125 "fsl,mux-ext-port node missing or invalid.\n"); in eukrea_tlv320_probe()
133 int_port--; in eukrea_tlv320_probe()
134 ext_port--; in eukrea_tlv320_probe()
136 eukrea_tlv320_dai.cpus->of_node = ssi_np; in eukrea_tlv320_probe()
137 eukrea_tlv320_dai.platforms->of_node = ssi_np; in eukrea_tlv320_probe()
139 eukrea_tlv320_dai.cpus->dai_name = "imx-ssi.0"; in eukrea_tlv320_probe()
140 eukrea_tlv320_dai.platforms->name = "imx-ssi.0"; in eukrea_tlv320_probe()
141 eukrea_tlv320_dai.codecs->name = "tlv320aic23-codec.0-001a"; in eukrea_tlv320_probe()
142 eukrea_tlv320.name = "cpuimx-audio"; in eukrea_tlv320_probe()
146 of_find_compatible_node(NULL, NULL, "fsl,imx21-audmux")) { in eukrea_tlv320_probe()
164 of_find_compatible_node(NULL, NULL, "fsl,imx31-audmux")) { in eukrea_tlv320_probe()
183 /* The eukrea,asoc-tlv320 driver was explicitly in eukrea_tlv320_probe()
186 dev_err(&pdev->dev, in eukrea_tlv320_probe()
188 return -ENODEV; in eukrea_tlv320_probe()
200 dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret); in eukrea_tlv320_probe()
214 { .compatible = "eukrea,asoc-tlv320"},