Lines Matching +full:ar7100 +full:- +full:reset
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * AR71xx Reset Controller Driver
13 #include <linux/reset-controller.h>
33 spin_lock_irqsave(&ath79_reset->lock, flags); in ath79_reset_update()
34 val = readl(ath79_reset->base); in ath79_reset_update()
39 writel(val, ath79_reset->base); in ath79_reset_update()
40 spin_unlock_irqrestore(&ath79_reset->lock, flags); in ath79_reset_update()
64 val = readl(ath79_reset->base); in ath79_reset_status()
81 ath79_reset_assert(&ath79_reset->rcdev, FULL_CHIP_RESET); in ath79_reset_restart_handler()
92 ath79_reset = devm_kzalloc(&pdev->dev, in ath79_reset_probe()
95 return -ENOMEM; in ath79_reset_probe()
100 ath79_reset->base = devm_ioremap_resource(&pdev->dev, res); in ath79_reset_probe()
101 if (IS_ERR(ath79_reset->base)) in ath79_reset_probe()
102 return PTR_ERR(ath79_reset->base); in ath79_reset_probe()
104 spin_lock_init(&ath79_reset->lock); in ath79_reset_probe()
105 ath79_reset->rcdev.ops = &ath79_reset_ops; in ath79_reset_probe()
106 ath79_reset->rcdev.owner = THIS_MODULE; in ath79_reset_probe()
107 ath79_reset->rcdev.of_node = pdev->dev.of_node; in ath79_reset_probe()
108 ath79_reset->rcdev.of_reset_n_cells = 1; in ath79_reset_probe()
109 ath79_reset->rcdev.nr_resets = 32; in ath79_reset_probe()
111 err = devm_reset_controller_register(&pdev->dev, &ath79_reset->rcdev); in ath79_reset_probe()
115 ath79_reset->restart_nb.notifier_call = ath79_reset_restart_handler; in ath79_reset_probe()
116 ath79_reset->restart_nb.priority = 128; in ath79_reset_probe()
118 err = register_restart_handler(&ath79_reset->restart_nb); in ath79_reset_probe()
120 dev_warn(&pdev->dev, "Failed to register restart handler\n"); in ath79_reset_probe()
126 { .compatible = "qca,ar7100-reset", },
133 .name = "ath79-reset",