void __init msm_8974_init_gpiomux(void) { int rc; rc = msm_gpiomux_init_dt(); if (rc) { pr_err("%s failed %d\n", __func__, rc); return; } #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(msm_eth_configs, ARRAY_SIZE(msm_eth_configs)); #endif msm_gpiomux_install(msm_blsp_configs, ARRAY_SIZE(msm_blsp_configs)); msm_gpiomux_install(msm_blsp2_uart7_configs, ARRAY_SIZE(msm_blsp2_uart7_configs)); msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); msm_gpiomux_install(msm8974_slimbus_config, ARRAY_SIZE(msm8974_slimbus_config)); msm_gpiomux_install(msm_touch_configs, ARRAY_SIZE(msm_touch_configs)); msm_gpiomux_install(hap_lvl_shft_config, ARRAY_SIZE(hap_lvl_shft_config)); msm_gpiomux_install(msm_sensor_configs, ARRAY_SIZE(msm_sensor_configs)); msm_gpiomux_install(&sd_card_det, 1); msm_gpiomux_sdc3_install(); msm_gpiomux_sdc4_install(); msm_gpiomux_install(msm_taiko_config, ARRAY_SIZE(msm_taiko_config)); msm_gpiomux_install(msm_hsic_configs, ARRAY_SIZE(msm_hsic_configs)); msm_gpiomux_install(msm_hsic_hub_configs, ARRAY_SIZE(msm_hsic_hub_configs)); msm_gpiomux_install(msm_hdmi_configs, ARRAY_SIZE(msm_hdmi_configs)); if (machine_is_msm8974_fluid()) msm_gpiomux_install(msm_mhl_configs, ARRAY_SIZE(msm_mhl_configs)); msm_gpiomux_install(msm8974_pri_auxpcm_configs, ARRAY_SIZE(msm8974_pri_auxpcm_configs)); if (machine_is_msm8974_rumi()) msm_gpiomux_install(msm_rumi_blsp_configs, ARRAY_SIZE(msm_rumi_blsp_configs)); }
int __cpuinit msm8974_boot_secondary(unsigned int cpu, struct task_struct *idle) { pr_debug("Starting secondary CPU %d\n", cpu); if (per_cpu(cold_boot_done, cpu) == false) { if (machine_is_msm8974_sim() || machine_is_mpq8092_sim()) release_secondary_sim(0xf9088000, cpu); else if (!machine_is_msm8974_rumi()) msm8974_release_secondary(0xf9088000, cpu); per_cpu(cold_boot_done, cpu) = true; } return release_from_pen(cpu); }
/* * 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 msm_8974_add_drivers(void) { msm_init_modem_notifier_list(); msm_smd_init(); msm_rpm_driver_init(); msm_lpmrs_module_init(); rpm_regulator_smd_driver_init(); msm_spm_device_init(); regulator_stub_init(); if (machine_is_msm8974_rumi()) msm_clock_init(&msm_dummy_clock_init_data); else msm_clock_init(&msm8974_clock_init_data); msm8974_init_buses(); }
/* * 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 msm8974_add_drivers(void) { msm_init_modem_notifier_list(); msm_smd_init(); msm_rpm_driver_init(); msm_lpmrs_module_init(); rpm_regulator_smd_driver_init(); msm_spm_device_init(); krait_power_init(); if (machine_is_msm8974_rumi()) msm_clock_init(&msm8974_rumi_clock_init_data); else msm_clock_init(&msm8974_clock_init_data); msm8974_init_buses(); msm_thermal_device_init(); mxt_init_vkeys_8974(); }