static int grouper_camera_init(void)
{
	pmic_id = grouper_query_pmic_id();
	printk("%s: pmic_id= 0x%X", __FUNCTION__, pmic_id);
#if 0
	int ret;

	tegra_gpio_enable(CAM2_POWER_DWN_GPIO);
	ret = gpio_request(CAM2_POWER_DWN_GPIO, "cam2_power_en");
	if (ret < 0) {
		pr_err("%s: gpio_request failed for gpio %s\n",
			__func__, "CAM2_POWER_DWN_GPIO");
	}

	gpio_direction_output(CAM2_POWER_DWN_GPIO, 1);
	mdelay(10);

	tegra_gpio_enable(CAM2_RST_GPIO);
	ret = gpio_request(CAM2_RST_GPIO, "cam2_reset");
	if (ret < 0) {
		pr_err("%s: gpio_request failed for gpio %s\n",
			__func__, "CAM2_RST_GPIO");
	}

	gpio_direction_output(CAM2_RST_GPIO, 0);
	mdelay(5);
#endif
	return 0;
}
static void __init tegra_grouper_init(void)
{
	grouper_misc_init();
	tegra_thermal_init(&thermal_data);
	tegra_clk_init_from_table(grouper_clk_init_table);
	grouper_pinmux_init();
	grouper_misc_reset();
	grouper_booting_info();
	grouper_i2c_init();
	grouper_spi_init();
	grouper_usb_init();
#ifdef CONFIG_CPU_FREQ_GOV_ONDEMAND_2_PHASE
        set_two_phase_freq(1000000);
#endif
#ifdef CONFIG_TEGRA_EDP_LIMITS
	if (grouper_query_pmic_id())
		grouper_ti_edp_init();
	else
		grouper_edp_init();
#endif
	grouper_uart_init();
	grouper_audio_init();
	platform_add_devices(grouper_devices, ARRAY_SIZE(grouper_devices));
	tegra_ram_console_debug_init();
	grouper_sdhci_init();
	if (grouper_query_pmic_id()) {
		grouper_ti_regulator_init();
		grouper_ti_suspend_init();
	} else {
		grouper_regulator_init();
		grouper_suspend_init();
	}
	grouper_touch_init();
	grouper_gps_init();
	grouper_modem_init();
	grouper_keys_init();
	grouper_panel_init();
	grouper_nfc_init();
	grouper_sensors_init();
	grouper_setup_bluesleep();
	grouper_pins_state_init();
	grouper_emc_init();
//	tegra_release_bootloader_fb();
#ifdef CONFIG_TEGRA_WDT_RECOVERY
	tegra_wdt_recovery_init();
#endif
}