Lines Matching +full:imx +full:- +full:scu
1 // SPDX-License-Identifier: GPL-2.0+
6 #include <linux/firmware/imx/svc/misc.h>
11 #include <linux/reset-controller.h>
13 #include <dt-bindings/firmware/imx/rsrc.h>
39 return imx_sc_misc_set_control(priv->ipc_handle, imx_scu_id_map[id].resource_id, in imx_scu_reset_assert()
51 for (i = 0; i < rc->nr_resets; i++) in imx_scu_xlate()
52 if (reset_spec->args[0] == imx_scu_id_map[i].resource_id) in imx_scu_xlate()
55 return -EINVAL; in imx_scu_xlate()
60 struct device *dev = &pdev->dev; in imx_scu_reset_probe()
66 return -ENOMEM; in imx_scu_reset_probe()
68 platform_set_drvdata(pdev, &priv->rc); in imx_scu_reset_probe()
70 ret = imx_scu_get_handle(&priv->ipc_handle); in imx_scu_reset_probe()
74 priv->rc.ops = &imx_scu_reset_ops; in imx_scu_reset_probe()
75 priv->rc.owner = THIS_MODULE; in imx_scu_reset_probe()
76 priv->rc.of_node = dev->of_node; in imx_scu_reset_probe()
77 priv->rc.of_reset_n_cells = 1; in imx_scu_reset_probe()
78 priv->rc.of_xlate = imx_scu_xlate; in imx_scu_reset_probe()
79 priv->rc.nr_resets = ARRAY_SIZE(imx_scu_id_map); in imx_scu_reset_probe()
81 return devm_reset_controller_register(dev, &priv->rc); in imx_scu_reset_probe()
85 { .compatible = "fsl,imx-scu-reset", },
93 .name = "scu-reset",
100 MODULE_DESCRIPTION("i.MX scu reset driver");