Lines Matching +full:- +full:resets
1 // SPDX-License-Identifier: GPL-2.0-only
3 * dwc3-generic-plat.c - DesignWare USB3 generic platform driver
7 * Inspired by dwc3-qcom.c and dwc3-of-simple.c
20 struct reset_control *resets; member
33 struct device *dev = &pdev->dev; in dwc3_generic_probe()
40 return -ENOMEM; in dwc3_generic_probe()
42 dwc3g->dev = dev; in dwc3_generic_probe()
46 dev_err(&pdev->dev, "missing memory resource\n"); in dwc3_generic_probe()
47 return -ENODEV; in dwc3_generic_probe()
50 dwc3g->resets = devm_reset_control_array_get_optional_exclusive(dev); in dwc3_generic_probe()
51 if (IS_ERR(dwc3g->resets)) in dwc3_generic_probe()
52 return dev_err_probe(dev, PTR_ERR(dwc3g->resets), "failed to get resets\n"); in dwc3_generic_probe()
54 ret = reset_control_assert(dwc3g->resets); in dwc3_generic_probe()
56 return dev_err_probe(dev, ret, "failed to assert resets\n"); in dwc3_generic_probe()
61 ret = reset_control_deassert(dwc3g->resets); in dwc3_generic_probe()
63 return dev_err_probe(dev, ret, "failed to deassert resets\n"); in dwc3_generic_probe()
65 ret = devm_add_action_or_reset(dev, dwc3_generic_reset_control_assert, dwc3g->resets); in dwc3_generic_probe()
69 ret = devm_clk_bulk_get_all_enabled(dwc3g->dev, &dwc3g->clks); in dwc3_generic_probe()
73 dwc3g->num_clocks = ret; in dwc3_generic_probe()
74 dwc3g->dwc.dev = dev; in dwc3_generic_probe()
75 probe_data.dwc = &dwc3g->dwc; in dwc3_generic_probe()
102 clk_bulk_disable_unprepare(dwc3g->num_clocks, dwc3g->clks); in dwc3_generic_suspend()
113 ret = clk_bulk_prepare_enable(dwc3g->num_clocks, dwc3g->clks); in dwc3_generic_resume()
146 { .compatible = "spacemit,k1-dwc3", },
155 .name = "dwc3-generic-plat",