Exemplo n.º 1
0
static __init void s5pv210_fb_init(void)
{
	struct s5pv210fb_lcd * lcd;

	s5pv210_fb.priv = resource_get_data(s5pv210_fb.info->name);
	lcd = (struct s5pv210fb_lcd *)(s5pv210_fb.priv);

	if(! s5pv210_fb.priv)
	{
		LOG_W("can't get the resource of \'%s\'", s5pv210_fb.info->name);
		return;
	}

	if(! clk_get_rate("dsys-hclk", 0))
	{
		LOG_E("can't get the clock of \'dsys-hclk\'");
		return;
	}

	if( (lcd->bits_per_pixel != 16) && (lcd->bits_per_pixel != 24) && (lcd->bits_per_pixel != 32) )
		return;

	info.surface.info.bits_per_pixel = lcd->bits_per_pixel;
	info.surface.info.bytes_per_pixel = lcd->bytes_per_pixel;
	info.surface.info.red_mask_size = lcd->rgba.r_mask;
	info.surface.info.red_field_pos = lcd->rgba.r_field;
	info.surface.info.green_mask_size = lcd->rgba.g_mask;
	info.surface.info.green_field_pos = lcd->rgba.g_field;
	info.surface.info.blue_mask_size = lcd->rgba.b_mask;
	info.surface.info.blue_field_pos = lcd->rgba.b_field;
	info.surface.info.alpha_mask_size = lcd->rgba.a_mask;
	info.surface.info.alpha_field_pos = lcd->rgba.a_field;
	info.surface.info.fmt = get_pixel_format(&(info.surface.info));

	info.surface.w = lcd->width;
	info.surface.h = lcd->height;
	info.surface.pitch = lcd->width * lcd->bytes_per_pixel;
	info.surface.flag = SURFACE_PIXELS_DONTFREE;
	info.surface.pixels = lcd->vram_front;

	info.surface.clip.x = 0;
	info.surface.clip.y = 0;
	info.surface.clip.w = lcd->width;
	info.surface.clip.h = lcd->height;

	memset(&info.surface.maps, 0, sizeof(struct surface_maps));
	surface_set_maps(&info.surface.maps);

	if(! register_framebuffer(&s5pv210_fb))
		LOG_E("failed to register framebuffer driver '%s'", s5pv210_fb.info->name);
}
Exemplo n.º 2
0
static __init void console_trigger_init(void)
{
	struct led * led;

	led = (struct led *)resource_get_data(console_trigger.name);
	if(led && led->set)
	{
		if(led->init)
			(led->init)();

		console_trigger.led = led;
		if(trigger_register(&console_trigger))
		{
			setup_timer(&console_trigger_timer, console_trigger_function, (u32_t)(&console_trigger));
			valid = TRUE;
			return;
		}
	}

	valid = FALSE;
}
Exemplo n.º 3
0
static __init void s5pv210_serial_dev_init(void)
{
	struct serial_parameter * param;
	u32_t i;

	if(!clk_get_rate("psys-pclk", 0))
	{
		LOG_E("can't get the clock of \'psys-pclk\'");
		return;
	}

	/* register serial driver */
	for(i = 0; i < ARRAY_SIZE(s5pv210_uart_driver); i++)
	{
		param = (struct serial_parameter *)resource_get_data(s5pv210_uart_driver[i].info->name);
		if(param)
			memcpy(s5pv210_uart_driver[i].info->parameter, param, sizeof(struct serial_parameter));
		else
			LOG_W("can't get the resource of \'%s\', use default parameter", s5pv210_uart_driver[i].info->name);

		if(!register_serial(&s5pv210_uart_driver[i]))
			LOG_E("failed to register serial driver '%s'", s5pv210_uart_driver[i].info->name);
	}
}