static void __init tegra_loki_late_init(void)
{
	struct board_info board_info;
	tegra_get_board_info(&board_info);
	pr_info("board_info: id:sku:fab:major:minor = 0x%04x:0x%04x:0x%02x:0x%02x:0x%02x\n",
		board_info.board_id, board_info.sku,
		board_info.fab, board_info.major_revision,
		board_info.minor_revision);
	loki_revision_init(&board_info);
	loki_pinmux_init();
	loki_usb_init();
	loki_modem_init();
	loki_xusb_init();
	loki_i2c_init();
	loki_uart_init();
	loki_audio_init();
	platform_add_devices(loki_devices, ARRAY_SIZE(loki_devices));
	tegra_io_dpd_init();
	loki_sdhci_init();
	loki_regulator_init();
	loki_suspend_init();
	loki_emc_init();
	loki_edp_init();
	isomgr_init();
	loki_touch_init();
	loki_panel_init();
	loki_kbc_init();
	loki_pmon_init();
#ifdef CONFIG_TEGRA_WDT_RECOVERY
	tegra_wdt_recovery_init();
#endif
	tegra_serial_debug_init(TEGRA_UARTD_BASE, INT_WDT_CPU, NULL, -1, -1);

	loki_sensors_init();
	loki_fan_init();
	loki_soctherm_init();
	loki_setup_bluedroid_pm();
	tegra_register_fuse();
	tegra_serial_debug_init(TEGRA_UARTD_BASE, INT_WDT_CPU, NULL, -1, -1);
#ifdef CONFIG_C2PORT_LOKI
	tegra_loki_mcu_debugger_init();
#endif
}
Ejemplo n.º 2
0
static void __init tegra_ardbeg_late_init(void)
{
	struct board_info board_info;
	tegra_get_board_info(&board_info);
	pr_info("board_info: id:sku:fab:major:minor = 0x%04x:0x%04x:0x%02x:0x%02x:0x%02x\n",
		board_info.board_id, board_info.sku,
		board_info.fab, board_info.major_revision,
		board_info.minor_revision);

	if (board_info.board_id == BOARD_E2548 ||
		board_info.board_id == BOARD_P2530)
		loki_pinmux_init();
	if (board_info.board_id == BOARD_P1761)
		ardbeg_pinmux_init();

#ifndef CONFIG_MACH_EXUMA
	ardbeg_display_init();
#endif
	ardbeg_uart_init();
	ardbeg_usb_init();
	ardbeg_modem_init();
#ifdef CONFIG_TEGRA_XUSB_PLATFORM
	ardbeg_xusb_init();
#endif
	ardbeg_i2c_init();
	ardbeg_audio_init();
	platform_add_devices(ardbeg_devices, ARRAY_SIZE(ardbeg_devices));
	if (board_info.board_id == BOARD_PM374)	/* Norrin ERS */
		platform_device_register(&norrin_audio_device_max98090);
	else if (board_info.board_id != BOARD_PM359)
		platform_device_register(&ardbeg_audio_device_rt5639);
	tegra_io_dpd_init();
	if (board_info.board_id == BOARD_E2548 ||
			board_info.board_id == BOARD_P2530)
		loki_sdhci_init();
	else
		ardbeg_sdhci_init();
	if (board_info.board_id == BOARD_E1782 ||
			board_info.board_id == BOARD_PM374)
		ardbeg_sata_init();
	else if (board_info.board_id != BOARD_PM358 &&
			board_info.board_id != BOARD_PM359)
		arbdeg_sata_clk_gate();
	if (board_info.board_id == BOARD_PM359 ||
			board_info.board_id == BOARD_PM358 ||
			board_info.board_id == BOARD_PM370 ||
			board_info.board_id == BOARD_PM363)
		laguna_regulator_init();
	else if (board_info.board_id == BOARD_PM374)
		norrin_regulator_init();
	else if (board_info.board_id == BOARD_E2548 ||
			board_info.board_id == BOARD_P2530)
		loki_regulator_init();
	else
		ardbeg_regulator_init();
	ardbeg_dtv_init();
	ardbeg_suspend_init();

	if (board_info.board_id == BOARD_PM374)
		norrin_emc_init();
	else if (board_info.board_id == BOARD_E2548 ||
			board_info.board_id == BOARD_P2530)
		loki_emc_init();
	else
		ardbeg_emc_init();

	edp_init();
	isomgr_init();
	ardbeg_touch_init();
	if (board_info.board_id == BOARD_E2548 ||
			board_info.board_id == BOARD_P2530)
		loki_panel_init();
	else
		ardbeg_panel_init();

		/* put PEX pads into DPD mode to save additional power */
		tegra_io_dpd_enable(&pexbias_io);
		tegra_io_dpd_enable(&pexclk1_io);
		tegra_io_dpd_enable(&pexclk2_io);

	if (board_info.board_id == BOARD_PM374)
		norrin_kbc_init();

	if (board_info.board_id == BOARD_PM374 ||
		board_info.board_id == BOARD_PM359 ||
		board_info.board_id == BOARD_PM358 ||
		board_info.board_id == BOARD_PM370 ||
		board_info.board_id == BOARD_PM363) {
		ardbeg_sensors_init();
		norrin_soctherm_init();
	}	else if (board_info.board_id == BOARD_E2548 ||
			board_info.board_id == BOARD_P2530) {
		loki_sensors_init();
		loki_fan_init();
		loki_soctherm_init();
	}	else {
		ardbeg_sensors_init();
		ardbeg_soctherm_init();
	}

	ardbeg_setup_bluedroid_pm();
	ardbeg_sysedp_dynamic_capping_init();
	ardbeg_sysedp_batmon_init();
}