Lines Matching +full:dev +full:- +full:ctrl
1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2026 Kuan-Wei Chiu <visitorckw@gmail.com>
38 struct qemu_virt_ctrl *ctrl = data->cb_data; in qemu_virt_ctrl_power_off() local
40 virt_ctrl_write32(CMD_HALT, ctrl->base + VIRT_CTRL_REG_CMD); in qemu_virt_ctrl_power_off()
47 struct qemu_virt_ctrl *ctrl = data->cb_data; in qemu_virt_ctrl_restart() local
49 virt_ctrl_write32(CMD_RESET, ctrl->base + VIRT_CTRL_REG_CMD); in qemu_virt_ctrl_restart()
57 struct qemu_virt_ctrl *ctrl = container_of(nb, struct qemu_virt_ctrl, reboot_nb); in qemu_virt_ctrl_reboot_notify() local
60 virt_ctrl_write32(CMD_HALT, ctrl->base + VIRT_CTRL_REG_CMD); in qemu_virt_ctrl_reboot_notify()
67 struct qemu_virt_ctrl *ctrl; in qemu_virt_ctrl_probe() local
70 ctrl = devm_kzalloc(&pdev->dev, sizeof(*ctrl), GFP_KERNEL); in qemu_virt_ctrl_probe()
71 if (!ctrl) in qemu_virt_ctrl_probe()
72 return -ENOMEM; in qemu_virt_ctrl_probe()
74 ctrl->base = devm_platform_ioremap_resource(pdev, 0); in qemu_virt_ctrl_probe()
75 if (IS_ERR(ctrl->base)) in qemu_virt_ctrl_probe()
76 return PTR_ERR(ctrl->base); in qemu_virt_ctrl_probe()
78 ret = devm_register_sys_off_handler(&pdev->dev, in qemu_virt_ctrl_probe()
82 ctrl); in qemu_virt_ctrl_probe()
84 return dev_err_probe(&pdev->dev, ret, in qemu_virt_ctrl_probe()
87 ret = devm_register_sys_off_handler(&pdev->dev, in qemu_virt_ctrl_probe()
91 ctrl); in qemu_virt_ctrl_probe()
93 return dev_err_probe(&pdev->dev, ret, in qemu_virt_ctrl_probe()
94 "cannot register power-off handler\n"); in qemu_virt_ctrl_probe()
96 ctrl->reboot_nb.notifier_call = qemu_virt_ctrl_reboot_notify; in qemu_virt_ctrl_probe()
97 ret = devm_register_reboot_notifier(&pdev->dev, &ctrl->reboot_nb); in qemu_virt_ctrl_probe()
99 return dev_err_probe(&pdev->dev, ret, "cannot register reboot notifier\n"); in qemu_virt_ctrl_probe()
105 { .name = "qemu-virt-ctrl" },
113 .name = "qemu-virt-ctrl",
119 MODULE_AUTHOR("Kuan-Wei Chiu <visitorckw@gmail.com>");