Lines Matching +full:bcm2835 +full:- +full:pm
1 // SPDX-License-Identifier: GPL-2.0+
3 * PM MFD driver for Broadcom BCM2835
5 * This driver binds to the PM block and creates the MFD device for
11 #include <linux/mfd/bcm2835-pm.h>
21 { .name = "bcm2835-wdt" },
25 { .name = "bcm2835-power" },
31 struct device *dev = &pdev->dev; in bcm2835_pm_probe()
32 struct bcm2835_pm *pm; in bcm2835_pm_probe() local
35 pm = devm_kzalloc(dev, sizeof(*pm), GFP_KERNEL); in bcm2835_pm_probe()
36 if (!pm) in bcm2835_pm_probe()
37 return -ENOMEM; in bcm2835_pm_probe()
38 platform_set_drvdata(pdev, pm); in bcm2835_pm_probe()
40 pm->dev = dev; in bcm2835_pm_probe()
43 pm->base = devm_ioremap_resource(dev, res); in bcm2835_pm_probe()
44 if (IS_ERR(pm->base)) in bcm2835_pm_probe()
45 return PTR_ERR(pm->base); in bcm2835_pm_probe()
47 ret = devm_mfd_add_devices(dev, -1, in bcm2835_pm_probe()
54 * bcm2835-pm binding as the key for whether we can reference in bcm2835_pm_probe()
55 * the full PM register range and support power domains. in bcm2835_pm_probe()
59 pm->asb = devm_ioremap_resource(dev, res); in bcm2835_pm_probe()
60 if (IS_ERR(pm->asb)) in bcm2835_pm_probe()
61 return PTR_ERR(pm->asb); in bcm2835_pm_probe()
63 ret = devm_mfd_add_devices(dev, -1, in bcm2835_pm_probe()
75 { .compatible = "brcm,bcm2835-pm-wdt", },
76 { .compatible = "brcm,bcm2835-pm", },
84 .name = "bcm2835-pm",
91 MODULE_DESCRIPTION("Driver for Broadcom BCM2835 PM MFD");