/*
 * Used to satisfy dependencies for devices that need to be
 * run early or in a particular order. Most likely your device doesn't fall
 * into this category, and thus the driver should not be added here. The
 * EPROBE_DEFER can satisfy most dependency problems.
 */
void __init htc_8974_add_drivers(void)
{
	msm_smem_init();
	msm_init_modem_notifier_list();
	msm_smd_init();
	msm_rpm_driver_init();
	msm_pm_sleep_status_init();
	rpm_regulator_smd_driver_init();
	msm_spm_device_init();
	krait_power_init();
	msm_clock_init(&msm8974_clock_init_data);
	tsens_tm_init_driver();
	msm_thermal_device_init();
#if defined(CONFIG_HTC_BATT_8960)
	htc_batt_cell_register();
	msm8974_add_batt_devices();
#endif /* CONFIG_HTC_BATT_8960 */
#if (defined(CONFIG_MACH_GLU_U) || defined(CONFIG_MACH_GLU_WLJ))
	syn_init_vkeys_8974();
#endif
	htc_8974_cable_detect_register();
	/* not load usb driver in mfgkernel:diag58 and gift mode */
	if (board_mfg_mode() != 6 && board_mfg_mode() != 7)
		htc_8974_add_usb_devices();
	else
		pr_info("[USB] %s: Don't load USB since board_mfg_mode=%d\n", __func__, board_mfg_mode());

	htc_8974_dsi_panel_power_register();
#if defined(CONFIG_FB_MSM_MDSS_HDMI_MHL_SII9234) && defined(CONFIG_HTC_MHL_DETECTION)
	htc_8974_mhl_ctrl_register();
#endif
#ifdef CONFIG_HTC_POWER_DEBUG
	htc_cpu_usage_register();
#endif
}
void __init htc_8974_add_drivers(void)
{
	msm_smem_init();
	msm_init_modem_notifier_list();
	msm_smd_init();
	msm_rpm_driver_init();
	msm_pm_sleep_status_init();
	rpm_regulator_smd_driver_init();
	msm_spm_device_init();
	krait_power_init();
	msm_clock_init(&msm8974_clock_init_data);
	tsens_tm_init_driver();
	msm_thermal_device_init();
#if defined(CONFIG_HTC_BATT_8960)
	htc_batt_cell_register();
	msm8974_add_batt_devices();
#endif 
	htc_8974_cable_detect_register();
	htc_8974_add_usb_devices();
	htc_8974_dsi_panel_power_register();
#if defined(CONFIG_FB_MSM_MDSS_HDMI_MHL_SII9234) && defined(CONFIG_HTC_MHL_DETECTION)
	htc_8974_mhl_ctrl_register();
#endif
#ifdef CONFIG_HTC_POWER_DEBUG
	htc_cpu_usage_register();
#endif
#ifdef CONFIG_LCD_KCAL
	add_lcd_kcal_devices();
#endif
}
void __init htc_8916_add_drivers(void)
{
	msm_smd_init();
	msm_rpm_driver_init();
	msm_spm_device_init();
	msm_pm_sleep_status_init();
	htc_8916_dsi_panel_power_register();
	msm8916_cable_detect_register();
	msm8916_add_usb_devices();
	platform_device_register(&ramoops_dev);
#ifdef CONFIG_HTC_POWER_DEBUG
        htc_cpu_usage_register();
#endif
#if defined(CONFIG_HTC_BATT_8960)
	htc_batt_cell_register();
	msm8x16_add_batt_devices();
#endif 
}