int __devinit msm_cpuidle_init(void) { unsigned int cpu = 0; int ret = 0; msm_cpuidle_set_states(); ret = cpuidle_register_driver(&msm_cpuidle_driver); if (ret) pr_err("%s: failed to register cpuidle driver: %d\n", __func__, ret); for_each_possible_cpu(cpu) { struct cpuidle_device *dev = &per_cpu(msm_cpuidle_devs, cpu); dev->cpu = cpu; msm_cpuidle_set_cpu_statedata(dev); ret = cpuidle_register_device(dev); if (ret) { pr_err("%s: failed to register cpuidle device for " "cpu %u: %d\n", __func__, cpu, ret); return ret; } } return 0; }
static void __init msm9615_common_init(void) { msm9615_device_init(); msm9615_init_gpiomux(); msm9615_i2c_init(); regulator_suppress_info_printing(); platform_device_register(&msm9615_device_rpm_regulator); msm_clock_init(&msm9615_clock_init_data); msm9615_init_buses(); msm9615_device_qup_spi_gsbi3.dev.platform_data = &msm9615_qup_spi_gsbi3_pdata; msm9615_device_ssbi_pmic1.dev.platform_data = &msm9615_ssbi_pm8018_pdata; pm8018_platform_data.num_regulators = msm_pm8018_regulator_pdata_len; msm_device_otg.dev.platform_data = &msm_otg_pdata; msm_otg_pdata.phy_init_seq = shelby_phy_init_seq; msm_device_usb_bam.dev.platform_data = &msm_usb_bam_pdata; platform_add_devices(common_devices, ARRAY_SIZE(common_devices)); acpuclk_init(&acpuclk_9615_soc_data); /* Ensure ar6000pm device is registered before MMC/SDC */ msm9615_init_ar6000pm(); msm9615_init_mmc(); msm_pm_set_platform_data(msm_pm_data, ARRAY_SIZE(msm_pm_data)); msm_pm_set_rpm_wakeup_irq(RPM_APCC_CPU0_WAKE_UP_IRQ); msm_cpuidle_set_states(msm_cstates, ARRAY_SIZE(msm_cstates), msm_pm_data); BUG_ON(msm_pm_boot_init(&msm_pm_boot_pdata)); }
void __init msm8960_pm_init(unsigned wakeup_irq) { msm_pm_set_platform_data(msm_pm_data, ARRAY_SIZE(msm_pm_data)); msm_pm_set_rpm_wakeup_irq(wakeup_irq); msm_cpuidle_set_states(msm_cstates, ARRAY_SIZE(msm_cstates), msm_pm_data); }
static void __init msm9615_common_init(void) { msm9615_device_init(); gpiomux_init(); msm9615_i2c_init(); regulator_suppress_info_printing(); msm9615_device_qup_spi_gsbi3.dev.platform_data = &msm9615_qup_spi_gsbi3_pdata; msm9615_device_ssbi_pmic1.dev.platform_data = &msm9615_ssbi_pm8018_pdata; pm8018_platform_data.num_regulators = msm_pm8018_regulator_pdata_len; msm_device_otg.dev.platform_data = &msm_otg_pdata; msm_device_gadget_peripheral.dev.parent = &msm_device_otg.dev; platform_add_devices(common_devices, ARRAY_SIZE(common_devices)); msm9615_init_mmc(); msm_pm_set_platform_data(msm_pm_data, ARRAY_SIZE(msm_pm_data)); msm_pm_set_rpm_wakeup_irq(RPM_APCC_CPU0_WAKE_UP_IRQ); msm_cpuidle_set_states(msm_cstates, ARRAY_SIZE(msm_cstates), msm_pm_data); }