int __init mot_modem_init(void)
{
	char bp_ctrl_bus[40] = "UART";
	char bp_data_bus[20] = "only";

	if ((machine_is_olympus() &&
	     !(HWREV_TYPE_IS_MORTABLE(system_rev) &&
	       HWREV_REV(system_rev) <= HWREV_REV_1)) ||
	    (machine_is_etna() &&
	     ((HWREV_TYPE_IS_PORTABLE(system_rev) &&
	       HWREV_REV(system_rev) >= HWREV_REV_2C) ||
	      (HWREV_TYPE_IS_BRASSBOARD(system_rev) &&
	       HWREV_REV(system_rev) >= HWREV_REV_3))) ||
	    machine_is_tegra_daytona() ||
	    machine_is_sunfire()) {
		strcat(bp_ctrl_bus, " (with mdm_ctrl)");
		mot_mdm_ctrl_init();
		mot_mdm6600_agent_init();
	} else
		strcat(bp_ctrl_bus, " (NO mdm_ctrl)");

	if (machine_is_olympus() || machine_is_tegra_daytona() ||
		machine_is_sunfire()) {
		strcpy(bp_data_bus, "and SPI");
		mot_setup_mdm6600_spi_ipc();
		mot_setup_mdm6600_usb_ipc(0);
	} else if (machine_is_etna()) {
		strcpy(bp_data_bus, "and USB");
		mot_setup_mdm6600_usb_ipc(MDM6600_HOST_WAKE_GPIO);
	}

	/* All hardware at least has MDM6x00 at the moment. */
	printk(KERN_INFO "%s: MDM6x00 on %s %s\n", __func__,
				bp_ctrl_bus, bp_data_bus);

	if (machine_is_etna() &&
	    ((HWREV_TYPE_IS_PORTABLE(system_rev) &&
	      HWREV_REV(system_rev) >= HWREV_REV_2C) ||
	     (HWREV_TYPE_IS_BRASSBOARD(system_rev) &&
	      HWREV_REV(system_rev) >= HWREV_REV_3)))
		mot_setup_wrigley_host_wake();

	return 0;
}
int __init mot_modem_init(void)
{
	char bp_ctrl_bus[40] = "UART";
	char bp_data_bus[20] = "only";

	if ( !(HWREV_TYPE_IS_MORTABLE(system_rev) && HWREV_REV(system_rev) <= HWREV_REV_1) ) {
		strcat(bp_ctrl_bus, " (with mdm_ctrl)");
		mot_mdm_ctrl_init();
		mot_mdm6600_agent_init();
	} else
		strcat(bp_ctrl_bus, " (NO mdm_ctrl)");

	strcpy(bp_data_bus, "and SPI");
	mot_setup_mdm6600_spi_ipc();
	mot_setup_mdm6600_usb_ipc(0);

	/* All hardware at least has MDM6x00 at the moment. */
	printk(KERN_INFO "%s: MDM6x00 on %s %s\n", __func__,
				bp_ctrl_bus, bp_data_bus);

	return 0;
}