static int __init str8100_int28vbus_inthandler_init(void) { int ret; printk("%s: \n",__FUNCTION__); if(PWRMGT_USB_DEVICE_POWERMGT_REG&0x1) HAL_PWRMGT_GLOBAL_SOFTWARE_RESET(); // schedule_work(&reboot_work); //str8100_set_interrupt_trigger (INTC_GPIO_EXTERNAL_INT_BIT_INDEX,INTC_LEVEL_TRIGGER,INTC_ACTIVE_HIGH); if ((ret=request_irq(INTC_USB_DEVICE_VBUS_BIT_INDEX, str8100_int28vbus_irq_handler, 0, "vbus", NULL))){ printk("%s: request_irq failed(ret=0x%x)(-EBUSY=0x%x)\n",__FUNCTION__,ret,-EBUSY); return -EBUSY; } return 0; }
static void watchdog_fire(int irq, void *dev_id, struct pt_regs *regs) { printk(KERN_CRIT "Watchdog(%s): Reboot System.\n",__FUNCTION__); HAL_PWRMGT_GLOBAL_SOFTWARE_RESET(); }