| // SPDX-License-Identifier: GPL-2.0+ |
| * Copyright 2021, Heinrich Schuchardt <heinrich.schuchardt@canonical.com> |
| static enum sbi_srst_reset_type reset_type_map[SYSRESET_COUNT] = { |
| [SYSRESET_WARM] = SBI_SRST_RESET_TYPE_WARM_REBOOT, |
| [SYSRESET_COLD] = SBI_SRST_RESET_TYPE_COLD_REBOOT, |
| [SYSRESET_POWER] = SBI_SRST_RESET_TYPE_COLD_REBOOT, |
| [SYSRESET_POWER_OFF] = SBI_SRST_RESET_TYPE_SHUTDOWN, |
| static int sbi_sysreset_request(struct udevice *dev, enum sysreset_t type) |
| enum sbi_srst_reset_type reset_type; |
| reset_type = reset_type_map[type]; |
| sbi_srst_reset(reset_type, SBI_SRST_RESET_REASON_NONE); |
| static int sbi_sysreset_probe(struct udevice *dev) |
| have_reset = sbi_probe_extension(SBI_EXT_SRST); |
| log_warning("SBI has no system reset extension\n"); |
| static struct sysreset_ops sbi_sysreset_ops = { |
| .request = sbi_sysreset_request, |
| U_BOOT_DRIVER(sbi_sysreset) = { |
| .ops = &sbi_sysreset_ops, |
| .probe = sbi_sysreset_probe, |