void __init exynos5_manta_display_init(void)
{
	struct resource *res;

	/* LCD_EN , XMMC2CDN => GPC2_2 */
	gpio_request_one(GPIO_LCD_EN, GPIOF_OUT_INIT_LOW, "LCD_EN");
	/* LED_BACKLIGHT_RESET: XCI1RGB_5 => GPG0_5 */
	gpio_request_one(GPIO_LED_BL_RST, GPIOF_OUT_INIT_LOW, "LED_BL_RST");
	s5p_gpio_set_pd_cfg(GPIO_LED_BL_RST, S5P_GPIO_PD_PREV_STATE);
	s5p_gpio_set_pd_pull(GPIO_LED_BL_RST, S5P_GPIO_PD_UPDOWN_DISABLE);

	gpio_request_one(GPIO_LCD_PWM_IN_18V, GPIOF_OUT_INIT_LOW, "PWM_IN_18V");
	s5p_gpio_set_pd_cfg(GPIO_LCD_PWM_IN_18V, S5P_GPIO_PD_INPUT);
	s5p_gpio_set_pd_pull(GPIO_LCD_PWM_IN_18V, S5P_GPIO_PD_UP_ENABLE);
	gpio_free(GPIO_LCD_PWM_IN_18V);

	gpio_request_one(GPIO_APS_EN_18V, GPIOF_OUT_INIT_LOW, "APS_EN_18V");
	s5p_gpio_set_pd_cfg(GPIO_APS_EN_18V, S5P_GPIO_PD_INPUT);
	s5p_gpio_set_pd_pull(GPIO_APS_EN_18V, S5P_GPIO_PD_UP_ENABLE);
	gpio_export(GPIO_APS_EN_18V, true);

	samsung_bl_set(&manta_bl_gpio_info, &manta_bl_data);
	s5p_fimd1_set_platdata(&manta_lcd1_pdata);
	dev_set_name(&s5p_device_fimd1.dev, "exynos5-fb.1");
	clk_add_alias("lcd", "exynos5-fb.1", "fimd", &s5p_device_fimd1.dev);
	s5p_dp_set_platdata(&manta_dp_data);

	gpio_request_one(GPIO_HDMI_HPD, GPIOF_IN, "HDMI_HPD");
	/* HDMI Companion DC/DC converter and HPD circuitry */
	gpio_request_one(GPIO_HDMI_DCDC_EN, GPIOF_OUT_INIT_HIGH, "HDMI_DCDC_EN");
	/* HDMI Companion level shifters and LDO */
	gpio_request_one(GPIO_HDMI_LS_EN, GPIOF_OUT_INIT_HIGH, "HDMI_LS_EN");

	s5p_hdmi_set_platdata(&hdmi_platdata);
	dev_set_name(&s5p_device_hdmi.dev, "exynos5-hdmi");
	clk_add_alias("hdmi", "s5p-hdmi", "hdmi", &s5p_device_hdmi.dev);
	platform_set_sysmmu(&SYSMMU_PLATDEV(tv).dev, &s5p_device_mixer.dev);
	s5p_i2c_hdmiphy_set_platdata(NULL);

	platform_add_devices(manta_display_devices,
			     ARRAY_SIZE(manta_display_devices));

	exynos5_fimd1_setup_clock(&s5p_device_fimd1.dev,
				"sclk_fimd", "sclk_vpll", 268 * MHZ);

	res = platform_get_resource(&s5p_device_fimd1, IORESOURCE_MEM, 1);
	if (res) {
		res->start = manta_bootloader_fb_start;
		res->end = res->start + manta_bootloader_fb_size - 1;
		pr_info("bootloader fb located at %8X-%8X\n", res->start,
				res->end);
	} else {
		pr_err("failed to find bootloader fb resource\n");
	}
}
Exemplo n.º 2
0
static void __init exynos4_sysmmu_init(void)
{
#ifdef CONFIG_S5P_DEV_FIMG2D
	platform_set_sysmmu(&SYSMMU_PLATDEV(2d).dev, &s5p_device_fimg2d.dev);
#endif
#ifdef CONFIG_S5P_DEV_MFC
	platform_set_sysmmu(&SYSMMU_PLATDEV(mfc_lr).dev, &s5p_device_mfc.dev);
#endif
#ifdef CONFIG_S5P_DEV_FIMC0
	platform_set_sysmmu(&SYSMMU_PLATDEV(fimc0).dev, &s5p_device_fimc0.dev);
#endif
#ifdef CONFIG_S5P_DEV_FIMC1
	platform_set_sysmmu(&SYSMMU_PLATDEV(fimc1).dev, &s5p_device_fimc1.dev);
#endif
#ifdef CONFIG_S5P_DEV_FIMC2
	platform_set_sysmmu(&SYSMMU_PLATDEV(fimc2).dev, &s5p_device_fimc2.dev);
#endif
#ifdef CONFIG_S5P_DEV_FIMC3
	platform_set_sysmmu(&SYSMMU_PLATDEV(fimc3).dev, &s5p_device_fimc3.dev);
#endif
#ifdef CONFIG_S5P_DEV_TV
	platform_set_sysmmu(&SYSMMU_PLATDEV(tv).dev, &s5p_device_mixer.dev);
#endif
#if defined(CONFIG_EXYNOS5_DEV_JPEG) || defined(CONFIG_S5P_DEV_JPEG)
	platform_set_sysmmu(&SYSMMU_PLATDEV(jpeg).dev, &s5p_device_jpeg.dev);
#endif
#ifdef CONFIG_S5P_DEV_FIMD0
	platform_set_sysmmu(&SYSMMU_PLATDEV(fimd0).dev, &s5p_device_fimd0.dev);
#endif
#ifdef CONFIG_EXYNOS4_DEV_FIMC_IS
	platform_set_sysmmu(&SYSMMU_PLATDEV(isp0).dev,
						&exynos4_device_fimc_is.dev);
	platform_set_sysmmu(&SYSMMU_PLATDEV(isp1).dev,
						&exynos4_device_fimc_is.dev);
#endif
}
Exemplo n.º 3
0
static void __init exynos5_sysmmu_init(void)
{
#ifdef CONFIG_EXYNOS5_DEV_JPEG_HX
	platform_set_sysmmu(&SYSMMU_PLATDEV(mjpeg).dev,
						&exynos5_device_jpeg_hx.dev);
#endif
#if defined(CONFIG_EXYNOS5_DEV_JPEG) || defined(CONFIG_S5P_DEV_JPEG)
	platform_set_sysmmu(&SYSMMU_PLATDEV(jpeg).dev, &s5p_device_jpeg.dev);
#endif
#ifdef CONFIG_S5P_DEV_MFC
	platform_set_sysmmu(&SYSMMU_PLATDEV(mfc_lr).dev, &s5p_device_mfc.dev);
#endif
#ifdef CONFIG_S5P_DEV_TV
	platform_set_sysmmu(&SYSMMU_PLATDEV(tv).dev, &s5p_device_mixer.dev);
#endif
#ifdef CONFIG_EXYNOS5_DEV_GSC
	platform_set_sysmmu(&SYSMMU_PLATDEV(gsc0).dev,
						&exynos5_device_gsc0.dev);
	platform_set_sysmmu(&SYSMMU_PLATDEV(gsc1).dev,
						&exynos5_device_gsc1.dev);
	platform_set_sysmmu(&SYSMMU_PLATDEV(gsc2).dev,
						&exynos5_device_gsc2.dev);
	platform_set_sysmmu(&SYSMMU_PLATDEV(gsc3).dev,
						&exynos5_device_gsc3.dev);
#endif
#ifdef CONFIG_EXYNOS5_DEV_SCALER
	platform_set_sysmmu(&SYSMMU_PLATDEV(scaler).dev,
						&exynos5_device_scaler.dev);
#endif
#ifdef CONFIG_EXYNOS_DEV_ROTATOR
	platform_set_sysmmu(&SYSMMU_PLATDEV(rot).dev,
						&exynos5_device_rotator.dev);
#endif
#if defined(CONFIG_S5P_DEV_FIMG2D) && defined(CONFIG_VIDEO_EXYNOS_FIMG2D)
	platform_set_sysmmu(&SYSMMU_PLATDEV(2d).dev,
						&s5p_device_fimg2d.dev);
#endif
#ifdef CONFIG_EXYNOS5_DEV_FIMC_IS
	platform_set_sysmmu(&SYSMMU_PLATDEV(isp0).dev,
						&exynos5_device_fimc_is.dev);
	platform_set_sysmmu(&SYSMMU_PLATDEV(isp1).dev,
						&exynos5_device_fimc_is.dev);
	platform_set_sysmmu(&SYSMMU_PLATDEV(isp2).dev,
						&exynos5_device_fimc_is.dev);
	platform_set_sysmmu(&SYSMMU_PLATDEV(isp3).dev,
						&exynos5_device_fimc_is.dev);
#endif
#ifdef CONFIG_VIDEO_EXYNOS5_FIMC_IS
	platform_set_sysmmu(&SYSMMU_PLATDEV(camif0).dev,
						&exynos5_device_fimc_is.dev);
	platform_set_sysmmu(&SYSMMU_PLATDEV(camif1).dev,
						&exynos5_device_fimc_is.dev);
	platform_set_sysmmu(&SYSMMU_PLATDEV(camif2).dev,
						&exynos5_device_fimc_is.dev);
#endif
	/*
	 * If FIMC-LITEs are needed to be controlled by exynos5_device_fimc_is
	 * in FIMC-IS driver and by exynos_device_flite0/1/2 in FIMC-LITE
	 * driver, the following restrictions must be kept:
	 * - iommu_attach_device() call against exynos5_device_fimc_is,
	 *   exynos_device_flite0, exynos_device_flite1 and exynos_device_flite2
	 *   is mutually exclusive.
	 * - platform_set_sysmmu() call against exynos5_device_fimc_is must be
	 *   prior to the call against exynos_device_flite0/1/2.
	 */
#ifdef CONFIG_VIDEO_EXYNOS_FIMC_LITE
	platform_set_sysmmu(&SYSMMU_PLATDEV(camif0).dev,
						&exynos_device_flite0.dev);
	platform_set_sysmmu(&SYSMMU_PLATDEV(camif1).dev,
						&exynos_device_flite1.dev);
	platform_set_sysmmu(&SYSMMU_PLATDEV(camif2).dev,
						&exynos_device_flite2.dev);
#endif
#ifdef CONFIG_S5P_DEV_FIMD0
	platform_set_sysmmu(&SYSMMU_PLATDEV(fimd0).dev, &s5p_device_fimd0.dev);
#endif
#ifdef CONFIG_S5P_DEV_FIMD1
	platform_set_sysmmu(&SYSMMU_PLATDEV(fimd1).dev, &s5p_device_fimd1.dev);
#endif
}
static void __init manta_camera_sysmmu_init(void)
{
	platform_set_sysmmu(&SYSMMU_PLATDEV(isp).dev,
					&exynos5_device_fimc_is.dev);

}