CHROMIUM: Remove "DP Hotplug" in mach-exynos.
[cascardo/linux.git] / arch / arm / mach-exynos / mach-exynos5-dt.c
index afb76e3..0d12546 100644 (file)
@@ -939,13 +939,16 @@ static struct platform_device *smdk5250_devices[] __initdata = {
 #ifdef CONFIG_DRM_EXYNOS_HDMI
        &exynos_drm_hdmi_device,
 #endif
+#ifdef CONFIG_BUSFREQ_OPP
+       &exynos5_busfreq,
+#endif
+};
+
+static struct platform_device *thermistor_devices[] __initdata = {
        &s3c_device_adc_ntc_thermistor0,
        &s3c_device_adc_ntc_thermistor1,
        &s3c_device_adc_ntc_thermistor2,
        &s3c_device_adc_ntc_thermistor3,
-#ifdef CONFIG_BUSFREQ_OPP
-       &exynos5_busfreq,
-#endif
 };
 
 static struct regulator_consumer_supply dummy_supplies[] = {
@@ -1047,18 +1050,26 @@ static void __init exynos5250_dt_machine_init(void)
        }
 
        /*
-        * Request lcd_bl_en GPIO for smdk5250_bl_notify().
-        * TODO: Fix this so we are not at risk of requesting the GPIO
-        * multiple times, this should be done with device tree, and
-        * likely integrated into the plat-samsung/dev-backlight.c init.
+        * Set the backlight on LCD_PWM pin only for boards not using the
+        * Parade eDP bridge which has an internal PWN for the backlight.
         */
-       gpio_request_one(EXYNOS5_GPX3(0), GPIOF_OUT_INIT_HIGH, "lcd_bl_en");
+       if (!of_find_compatible_node(NULL, NULL, "parade,ps8622")) {
+               if (of_machine_is_compatible("google,snow")) {
+                       smdk5250_bl_data.max_brightness = 2800;
+                       smdk5250_bl_data.dft_brightness = 2800;
+               }
 
-       if (of_machine_is_compatible("google,snow")) {
-               smdk5250_bl_data.max_brightness = 2800;
-               smdk5250_bl_data.dft_brightness = 2800;
+               /*
+                * Request lcd_bl_en GPIO for smdk5250_bl_notify().
+                * TODO: Fix this so we are not at risk of requesting the GPIO
+                * multiple times, this should be done with device tree, and
+                * likely integrated into the plat-samsung/dev-backlight.c init.
+                */
+               gpio_request_one(EXYNOS5_GPX3(0), GPIOF_OUT_INIT_HIGH,
+                                "lcd_bl_en");
+
+               samsung_bl_set(&smdk5250_bl_gpio_info, &smdk5250_bl_data);
        }
-       samsung_bl_set(&smdk5250_bl_gpio_info, &smdk5250_bl_data);
 
        /*
         * HACK ALERT! TODO: FIXME!
@@ -1160,21 +1171,26 @@ static void __init exynos5250_dt_machine_init(void)
                                exynos5250_auxdata_lookup, NULL);
 
 #ifdef CONFIG_DRM_EXYNOS_FIMD
-       if ((of_machine_is_compatible("google,snow")) ||
-           (of_machine_is_compatible("google,spring")))
+       if (of_machine_is_compatible("google,snow"))
                exynos_dp_gpio_setup_24bpp();
        else
                exynos_fimd_gpio_setup_24bpp();
 #endif
        s5p_tv_setup();
 
-       /* Enable power to ADC */
-       __raw_writel(0x1, S5P_ADC_PHY_CONTROL);
+       np = of_find_compatible_node(NULL, NULL, "samsung,exynos5-adc");
+       if (np && of_device_is_available(np)) {
+               /* Enable power to ADC */
+               __raw_writel(0x1, S5P_ADC_PHY_CONTROL);
+
+               s3c_adc_ntc_init(&s3c_device_adc_ntc_thermistor0);
+               s3c_adc_ntc_init(&s3c_device_adc_ntc_thermistor1);
+               s3c_adc_ntc_init(&s3c_device_adc_ntc_thermistor2);
+               s3c_adc_ntc_init(&s3c_device_adc_ntc_thermistor3);
 
-       s3c_adc_ntc_init(&s3c_device_adc_ntc_thermistor0);
-       s3c_adc_ntc_init(&s3c_device_adc_ntc_thermistor1);
-       s3c_adc_ntc_init(&s3c_device_adc_ntc_thermistor2);
-       s3c_adc_ntc_init(&s3c_device_adc_ntc_thermistor3);
+               platform_add_devices(thermistor_devices,
+                                    ARRAY_SIZE(thermistor_devices));
+       }
 
 #ifdef CONFIG_BUSFREQ_OPP
        dev_add(&busfreq, &exynos5_busfreq.dev);