Lines Matching +full:imx31 +full:- +full:audmux
1 // SPDX-License-Identifier: GPL-2.0+
19 #include "imx-audmux.h"
21 #define DRIVER_NAME "imx-audmux"
40 return "imx-ssi.0"; in audmux_port_string()
42 return "imx-ssi.1"; in audmux_port_string()
61 uintptr_t port = (uintptr_t)file->private_data; in audmux_read_file()
75 return -ENOMEM; in audmux_read_file()
80 ret += scnprintf(buf + ret, PAGE_SIZE - ret, in audmux_read_file()
84 ret += scnprintf(buf + ret, PAGE_SIZE - ret, in audmux_read_file()
88 ret += scnprintf(buf + ret, PAGE_SIZE - ret, in audmux_read_file()
92 ret += scnprintf(buf + ret, PAGE_SIZE - ret, in audmux_read_file()
95 ret += scnprintf(buf + ret, PAGE_SIZE - ret, "\n"); in audmux_read_file()
98 ret += scnprintf(buf + ret, PAGE_SIZE - ret, in audmux_read_file()
102 ret += scnprintf(buf + ret, PAGE_SIZE - ret, in audmux_read_file()
106 ret += scnprintf(buf + ret, PAGE_SIZE - ret, in audmux_read_file()
110 ret += scnprintf(buf + ret, PAGE_SIZE - ret, in audmux_read_file()
114 ret += scnprintf(buf + ret, PAGE_SIZE - ret, in audmux_read_file()
118 ret += scnprintf(buf + ret, PAGE_SIZE - ret, in audmux_read_file()
140 audmux_debugfs_root = debugfs_create_dir("audmux", NULL); in audmux_debugfs_init()
169 { .compatible = "fsl,imx21-audmux", .data = (void *)IMX21_AUDMUX, },
170 { .compatible = "fsl,imx31-audmux", .data = (void *)IMX31_AUDMUX, },
182 return -EINVAL; in imx_audmux_v1_configure_port()
185 return -ENOSYS; in imx_audmux_v1_configure_port()
188 return -EINVAL; in imx_audmux_v1_configure_port()
202 return -EINVAL; in imx_audmux_v2_configure_port()
205 return -ENOSYS; in imx_audmux_v2_configure_port()
234 ret = of_property_read_u32(child, "fsl,audmux-port", &port); in imx_audmux_parse_dt_defaults()
236 dev_warn(&pdev->dev, "Failed to get fsl,audmux-port of child node \"%pOF\"\n", in imx_audmux_parse_dt_defaults()
240 if (!of_property_present(child, "fsl,port-config")) { in imx_audmux_parse_dt_defaults()
241 dev_warn(&pdev->dev, "child node \"%pOF\" does not have property fsl,port-config\n", in imx_audmux_parse_dt_defaults()
247 "fsl,port-config", i, &val)) == 0; in imx_audmux_parse_dt_defaults()
259 if (ret != -EOVERFLOW) { in imx_audmux_parse_dt_defaults()
260 dev_err(&pdev->dev, "Failed to read u32 at index %d of child %pOF\n", in imx_audmux_parse_dt_defaults()
267 dev_err(&pdev->dev, "One pdcr value is missing in child node %pOF\n", in imx_audmux_parse_dt_defaults()
286 audmux_clk = devm_clk_get(&pdev->dev, "audmux"); in imx_audmux_probe()
288 dev_dbg(&pdev->dev, "cannot get clock: %ld\n", in imx_audmux_probe()
293 audmux_type = (uintptr_t)of_device_get_match_data(&pdev->dev); in imx_audmux_probe()
304 dev_err(&pdev->dev, "unsupported version!\n"); in imx_audmux_probe()
305 return -EINVAL; in imx_audmux_probe()
308 regcache = devm_kzalloc(&pdev->dev, sizeof(u32) * reg_max, GFP_KERNEL); in imx_audmux_probe()
310 return -ENOMEM; in imx_audmux_probe()
312 imx_audmux_parse_dt_defaults(pdev, pdev->dev.of_node); in imx_audmux_probe()
377 MODULE_DESCRIPTION("Freescale i.MX AUDMUX driver");