static void __init mid_map_io(void) {
	s5p_init_io(NULL, 0, S5P_VA_CHIPID);
	s3c24xx_init_clocks(24000000);
	s5pv210_gpiolib_init();
	s3c24xx_init_uarts(mid_uartcfgs, ARRAY_SIZE(mid_uartcfgs));
	s5p_reserve_bootmem(s5pv210_media_devs, ARRAY_SIZE(s5pv210_media_devs), S5P_RANGE_MFC);
	s3c_device_nand.name = "s5pv210-nand";
}
Esempio n. 2
0
static void __init mini210_map_io(void)
{
	struct s3cfb_lcd *lcd = mini210_get_lcd();
	int frame_size, fimd_size;

	s5p_init_io(NULL, 0, S5P_VA_CHIPID);
	s3c24xx_init_clocks(24000000);
	s5pv210_gpiolib_init();
	s3c24xx_init_uarts(mini210_uartcfgs, ARRAY_SIZE(mini210_uartcfgs));
#ifndef CONFIG_S5P_HIGH_RES_TIMERS
	s5p_set_timer_source(S5P_PWM2, S5P_PWM4);
#endif

	frame_size = lcd->width * lcd->height * BYTES_PER_PIXEL;
	fimd_size = ALIGN(frame_size, PAGE_SIZE) * NUM_BUFFER;
	if (frame_size > 0x200000) {
		fimd_size += ALIGN(frame_size, PAGE_SIZE) * 2;
	}
	/* Reserve 0x003f6000 bytes for PVR YUV video, and 1 page */
	fimd_size += ALIGN(1280*720, PAGE_SIZE) * 3;
	fimd_size += ALIGN(1280*360, PAGE_SIZE) * 3 + PAGE_SIZE;
	if (fimd_size != S5PV210_VIDEO_SAMSUNG_MEMSIZE_FIMD) {
		mini210_fixup_bootmem(S5P_MDEV_FIMD, fimd_size);
	}
	if (lcd->width > 1280) {
		mini210_fixup_bootmem(S5P_MDEV_FIMC2, 12288 * SZ_1K);
	}
	s5p_reserve_bootmem(mini210_media_devs,
			ARRAY_SIZE(mini210_media_devs), S5P_RANGE_MFC);

#ifdef CONFIG_TOUCHSCREEN_GOODIX
	goodix_pdata.screen_width = lcd->width;
	goodix_pdata.screen_height = lcd->height;
#endif
#ifdef CONFIG_TOUCHSCREEN_FT5X0X
	ft5x0x_pdata.screen_max_x = lcd->width;
	ft5x0x_pdata.screen_max_y = lcd->height;
#endif
}