Lines Matching +full:bcm6345 +full:- +full:reset
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * BCM6345 Reset Controller Driver
13 #include <linux/reset-controller.h>
38 spin_lock_irqsave(&bcm6345_reset->lock, flags); in bcm6345_reset_update()
39 val = __raw_readl(bcm6345_reset->base); in bcm6345_reset_update()
44 __raw_writel(val, bcm6345_reset->base); in bcm6345_reset_update()
45 spin_unlock_irqrestore(&bcm6345_reset->lock, flags); in bcm6345_reset_update()
71 * Ensure component is taken out reset state by sleeping also after in bcm6345_reset_reset()
72 * deasserting the reset. Otherwise, the component may not be ready in bcm6345_reset_reset()
86 return !(__raw_readl(bcm6345_reset->base) & BIT(id)); in bcm6345_reset_status()
92 .reset = bcm6345_reset_reset,
100 bcm6345_reset = devm_kzalloc(&pdev->dev, in bcm6345_reset_probe()
103 return -ENOMEM; in bcm6345_reset_probe()
105 bcm6345_reset->base = devm_platform_ioremap_resource(pdev, 0); in bcm6345_reset_probe()
106 if (IS_ERR(bcm6345_reset->base)) in bcm6345_reset_probe()
107 return PTR_ERR(bcm6345_reset->base); in bcm6345_reset_probe()
109 spin_lock_init(&bcm6345_reset->lock); in bcm6345_reset_probe()
110 bcm6345_reset->rcdev.ops = &bcm6345_reset_ops; in bcm6345_reset_probe()
111 bcm6345_reset->rcdev.owner = THIS_MODULE; in bcm6345_reset_probe()
112 bcm6345_reset->rcdev.of_node = pdev->dev.of_node; in bcm6345_reset_probe()
113 bcm6345_reset->rcdev.of_reset_n_cells = 1; in bcm6345_reset_probe()
114 bcm6345_reset->rcdev.nr_resets = BCM6345_RESET_NUM; in bcm6345_reset_probe()
116 return devm_reset_controller_register(&pdev->dev, in bcm6345_reset_probe()
117 &bcm6345_reset->rcdev); in bcm6345_reset_probe()
121 { .compatible = "brcm,bcm6345-reset" },
128 .name = "bcm6345-reset",