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()
70 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); in brcm_rescal_reset_probe()
72 return -ENOMEM; in brcm_rescal_reset_probe()
74 data->base = devm_platform_ioremap_resource(pdev, 0); in brcm_rescal_reset_probe()
75 if (IS_ERR(data->base)) in brcm_rescal_reset_probe()
76 return PTR_ERR(data->base); in brcm_rescal_reset_probe()
78 data->rcdev.owner = THIS_MODULE; in brcm_rescal_reset_probe()
79 data->rcdev.nr_resets = 1; in brcm_rescal_reset_probe()
80 data->rcdev.ops = &brcm_rescal_reset_ops; in brcm_rescal_reset_probe()
81 data->rcdev.of_node = pdev->dev.of_node; in brcm_rescal_reset_probe()
82 data->rcdev.of_xlate = brcm_rescal_reset_xlate; in brcm_rescal_reset_probe()
83 data->dev = &pdev->dev; in brcm_rescal_reset_probe()
85 return devm_reset_controller_register(&pdev->dev, &data->rcdev); in brcm_rescal_reset_probe()
89 { .compatible = "brcm,bcm7216-pcie-sata-rescal" },
97 .name = "brcm-rescal-reset",
104 MODULE_DESCRIPTION("Broadcom SATA/PCIe rescal reset controller");