Lines Matching +full:fpga +full:- +full:based
2 * PIKA FPGA based Watchdog Timer
28 #define DRV_NAME "PIKA-WDT"
49 void __iomem *fpga; member
70 /* -- FPGA: Reset Control Register (32bit R/W) (Offset: 0x14) -- in pikawdt_reset()
75 * Bit 8-11, WTCHDG_TIMEOUT_SEC: Sets the watchdog timeout value in in pikawdt_reset()
79 unsigned reset = in_be32(pikawdt_private.fpga + 0x14); in pikawdt_reset()
80 /* enable with max timeout - 15 seconds */ in pikawdt_reset()
82 out_be32(pikawdt_private.fpga + 0x14, reset); in pikawdt_reset()
117 return -EBUSY; in pikawdt_open()
156 return -EFAULT; in pikawdt_write()
170 * Handle commands from user-space.
181 return copy_to_user(argp, &ident, sizeof(ident)) ? -EFAULT : 0; in pikawdt_ioctl()
195 return -EFAULT; in pikawdt_ioctl()
205 return -ENOTTY; in pikawdt_ioctl()
227 void __iomem *fpga; in pikawdt_init() local
231 np = of_find_compatible_node(NULL, NULL, "pika,fpga"); in pikawdt_init()
233 pr_err("Unable to find fpga\n"); in pikawdt_init()
234 return -ENOENT; in pikawdt_init()
237 pikawdt_private.fpga = of_iomap(np, 0); in pikawdt_init()
239 if (pikawdt_private.fpga == NULL) { in pikawdt_init()
240 pr_err("Unable to map fpga\n"); in pikawdt_init()
241 return -ENOMEM; in pikawdt_init()
244 ident.firmware_version = in_be32(pikawdt_private.fpga + 0x1c) & 0xffff; in pikawdt_init()
247 np = of_find_compatible_node(NULL, NULL, "pika,fpga-sd"); in pikawdt_init()
249 pr_err("Unable to find fpga-sd\n"); in pikawdt_init()
250 ret = -ENOENT; in pikawdt_init()
254 fpga = of_iomap(np, 0); in pikawdt_init()
256 if (fpga == NULL) { in pikawdt_init()
257 pr_err("Unable to map fpga-sd\n"); in pikawdt_init()
258 ret = -ENOMEM; in pikawdt_init()
262 /* -- FPGA: POST Test Results Register 1 (32bit R/W) (Offset: 0x4040) -- in pikawdt_init()
266 post1 = in_be32(fpga + 0x40); in pikawdt_init()
270 iounmap(fpga); in pikawdt_init()
285 iounmap(pikawdt_private.fpga); in pikawdt_init()
293 iounmap(pikawdt_private.fpga); in pikawdt_exit()
300 MODULE_DESCRIPTION("PIKA FPGA based Watchdog Timer");