37 lines
		
	
	
		
			720 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			720 B
		
	
	
	
		
			C
		
	
	
	
| // SPDX-License-Identifier: GPL-2.0+
 | |
| /*
 | |
|  * Cadence Tensilica xtfpga system reset driver.
 | |
|  *
 | |
|  * (C) Copyright 2016 Cadence Design Systems Inc.
 | |
|  */
 | |
| 
 | |
| #include <common.h>
 | |
| #include <dm.h>
 | |
| #include <errno.h>
 | |
| #include <sysreset.h>
 | |
| #include <asm/io.h>
 | |
| 
 | |
| static int xtfpga_reset_request(struct udevice *dev, enum sysreset_t type)
 | |
| {
 | |
| 	switch (type) {
 | |
| 	case SYSRESET_COLD:
 | |
| 		writel(CONFIG_SYS_FPGAREG_RESET_CODE,
 | |
| 		       CONFIG_SYS_FPGAREG_RESET);
 | |
| 		break;
 | |
| 	default:
 | |
| 		return -EPROTONOSUPPORT;
 | |
| 	}
 | |
| 
 | |
| 	return -EINPROGRESS;
 | |
| }
 | |
| 
 | |
| static struct sysreset_ops xtfpga_sysreset_ops = {
 | |
| 	.request	= xtfpga_reset_request,
 | |
| };
 | |
| 
 | |
| U_BOOT_DRIVER(xtfpga_sysreset) = {
 | |
| 	.name	= "xtfpga_sysreset",
 | |
| 	.id	= UCLASS_SYSRESET,
 | |
| 	.ops	= &xtfpga_sysreset_ops,
 | |
| };
 |