Ejemplo n.º 1
0
error_t soclib_fb_init(struct device_s *fb, void *base, uint_t size, uint_t irq)
{  
	fb->base = base;
	fb->irq  = irq;
	fb->type = DEV_CHR;

	fb->op.dev.open       = &fb_open;
	fb->op.dev.read       = &fb_read;
	fb->op.dev.write      = &fb_write;
	fb->op.dev.close      = NULL;
	fb->op.dev.lseek      = &fb_lseek;
	fb->op.dev.mmap       = &fb_mmap;
	fb->op.dev.munmap     = &fb_munmap;
	fb->op.dev.set_params = NULL;
	fb->op.dev.get_params = &fb_get_params;
	fb->op.drvid          = SOCLIB_FB_ID;

	fb->data = (void*)size;
	sprintk(fb->name, 
#if CONFIG_ROOTFS_IS_VFAT
		"FB%d"
#else
		"fb%d"
#endif
		,fb_count++);

	metafs_init(&fb->node, fb->name);
	return 0;
}
Ejemplo n.º 2
0
error_t soclib_timer_init(struct device_s *timer)
{
	timer->type = DEV_INTERNAL;

	timer->action.dev         = timer;
	timer->action.irq_handler = &timer_irq_handler;
	timer->action.data        = NULL;
  
	sprintk(timer->name, "timer%d", timer_count++);
	metafs_init(&timer->node, timer->name);
  
	timer->op.timer.run        = &timer_run;
	timer->op.timer.stop       = &timer_stop;
	timer->op.timer.set_period = &timer_set_period;
	timer->op.timer.get_value  = &timer_get_value;
	timer->op.drvid            = SOCLIB_TIMER_ID;
	
	timer->data = NULL;
	return 0;
}