Lines Matching +full:bcm7216 +full:- +full:pcie +full:- +full:sata +full:- +full:rescal

1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright (C) 2018-2020 Broadcom */
9 #include <linux/reset-controller.h>
28 void __iomem *base = data->base; in brcm_rescal_reset_set()
36 dev_err(data->dev, "failed to start SATA/PCIe rescal\n"); in brcm_rescal_reset_set()
37 return -EIO; in brcm_rescal_reset_set()
43 dev_err(data->dev, "time out on SATA/PCIe rescal\n"); in brcm_rescal_reset_set()
50 dev_dbg(data->dev, "SATA/PCIe rescal success\n"); in brcm_rescal_reset_set()
58 /* This is needed if #reset-cells == 0. */ in brcm_rescal_reset_xlate()
71 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); in brcm_rescal_reset_probe()
73 return -ENOMEM; in brcm_rescal_reset_probe()
76 data->base = devm_ioremap_resource(&pdev->dev, res); in brcm_rescal_reset_probe()
77 if (IS_ERR(data->base)) in brcm_rescal_reset_probe()
78 return PTR_ERR(data->base); in brcm_rescal_reset_probe()
80 data->rcdev.owner = THIS_MODULE; in brcm_rescal_reset_probe()
81 data->rcdev.nr_resets = 1; in brcm_rescal_reset_probe()
82 data->rcdev.ops = &brcm_rescal_reset_ops; in brcm_rescal_reset_probe()
83 data->rcdev.of_node = pdev->dev.of_node; in brcm_rescal_reset_probe()
84 data->rcdev.of_xlate = brcm_rescal_reset_xlate; in brcm_rescal_reset_probe()
85 data->dev = &pdev->dev; in brcm_rescal_reset_probe()
87 return devm_reset_controller_register(&pdev->dev, &data->rcdev); in brcm_rescal_reset_probe()
91 { .compatible = "brcm,bcm7216-pcie-sata-rescal" },
99 .name = "brcm-rescal-reset",
106 MODULE_DESCRIPTION("Broadcom SATA/PCIe rescal reset controller");