/* Initializes the controller */ void controller_init( void ) { /* initialize variables */ flag_check_delay = 0; flag_new_request = 0; /* clear data structures */ memset( &javiator_data, 0, sizeof( javiator_data ) ); /* initialize hardware */ ports_init( ); wdog_init( ); //adc_init( ); parallel_init( ); bmu09a_init( ); lsm215_init( ); //minia_init( ); leds_init( ); /* register watchdog event and start timer */ wdog_register_flag( (uint8_t *) &flag_check_delay, NOTIFY_PERIOD ); wdog_start( ); #if 0 /* register ADC channels */ adc_add_channel( ADC_CH_SONAR ); adc_add_channel( ADC_CH_BATT ); #endif /* set Robostix signal LEDs */ LED_ON( RED ); LED_ON( BLUE ); LED_ON( YELLOW ); /* enable interrupts */ sei( ); }
static int __init ux500_wdt_probe(struct platform_device *pdev) { int ret; /* retrieve prcmu fops from plat data */ ux500_wdt_ops = dev_get_platdata(&pdev->dev); if (!ux500_wdt_ops) { dev_err(&pdev->dev, "plat dat incorrect\n"); return -EIO; } /* Number of watch dogs */ ux500_wdt_ops->config(1, wdt_auto_off); /* convert to ms */ ux500_wdt_ops->load(wdog_id, timeout * 1000); ret = wdog_init(pdev); if (ret < 0) return ret; /* no cause for alarm if dbg_init fails, just continue */ wdog_dbg_init(); dev_info(&pdev->dev, "initialized\n"); return 0; }
/* Initializes the controller */ void controller_init( void ) { /* initialize variables */ flag_shut_down = 1; flag_check_delay = 0; flag_new_signals = 0; flag_new_sensors = 0; /* clear data structures */ memset( &javiator_data, 0, sizeof( javiator_data ) ); memset( &motor_signals, 0, sizeof( motor_signals ) ); /* initialize hardware */ ports_init( ); wdog_init( ); adc_init( ); serial_init( ); //parallel_init( ); dm3gx1_init( ); minia_init( ); pwm_init( ); leds_init( ); /* register watchdog event and start timer */ wdog_register_flag( (uint8_t *) &flag_check_delay, NOTIFY_PERIOD ); wdog_start( ); /* set Robostix signal LEDs */ LED_ON( RED ); LED_ON( BLUE ); LED_ON( YELLOW ); /* enable interrupts */ sei( ); }