1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Cadence Tensilica xtfpga system reset driver. 4 * 5 * (C) Copyright 2016 Cadence Design Systems Inc. 6 */ 7 8 #include <common.h> 9 #include <dm.h> 10 #include <errno.h> 11 #include <sysreset.h> 12 #include <asm/io.h> 13 14 static int xtfpga_reset_request(struct udevice *dev, enum sysreset_t type) 15 { 16 switch (type) { 17 case SYSRESET_COLD: 18 writel(CONFIG_SYS_FPGAREG_RESET_CODE, 19 CONFIG_SYS_FPGAREG_RESET); 20 break; 21 default: 22 return -EPROTONOSUPPORT; 23 } 24 25 return -EINPROGRESS; 26 } 27 28 static struct sysreset_ops xtfpga_sysreset_ops = { 29 .request = xtfpga_reset_request, 30 }; 31 32 U_BOOT_DRIVER(xtfpga_sysreset) = { 33 .name = "xtfpga_sysreset", 34 .id = UCLASS_SYSRESET, 35 .ops = &xtfpga_sysreset_ops, 36 }; 37