Lines Matching +full:berlin2 +full:- +full:reset
4 * Marvell Berlin reset driver
6 * Antoine Tenart <antoine.tenart@free-electrons.com>
22 #include <linux/reset-controller.h>
43 regmap_write(priv->regmap, offset, mask); in berlin_reset_reset()
45 /* let the reset be effective */ in berlin_reset_reset()
52 .reset = berlin_reset_reset,
60 offset = reset_spec->args[0]; in berlin_reset_xlate()
61 bit = reset_spec->args[1]; in berlin_reset_xlate()
64 return -EINVAL; in berlin_reset_xlate()
74 priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); in berlin2_reset_probe()
76 return -ENOMEM; in berlin2_reset_probe()
78 parent_np = of_get_parent(pdev->dev.of_node); in berlin2_reset_probe()
79 priv->regmap = syscon_node_to_regmap(parent_np); in berlin2_reset_probe()
81 if (IS_ERR(priv->regmap)) in berlin2_reset_probe()
82 return PTR_ERR(priv->regmap); in berlin2_reset_probe()
84 priv->rcdev.owner = THIS_MODULE; in berlin2_reset_probe()
85 priv->rcdev.ops = &berlin_reset_ops; in berlin2_reset_probe()
86 priv->rcdev.of_node = pdev->dev.of_node; in berlin2_reset_probe()
87 priv->rcdev.of_reset_n_cells = 2; in berlin2_reset_probe()
88 priv->rcdev.of_xlate = berlin_reset_xlate; in berlin2_reset_probe()
90 return reset_controller_register(&priv->rcdev); in berlin2_reset_probe()
94 { .compatible = "marvell,berlin2-reset" },
102 .name = "berlin2-reset",
108 MODULE_AUTHOR("Antoine Tenart <antoine.tenart@free-electrons.com>");
110 MODULE_DESCRIPTION("Synaptics Berlin reset controller");