void __init apq8064_init_mmc(void) { if ((machine_is_apq8064_rumi3()) || machine_is_apq8064_sim()) { if (apq8064_sdc1_pdata) { if (machine_is_apq8064_sim()) apq8064_sdc1_pdata->disable_bam = true; apq8064_sdc1_pdata->disable_runtime_pm = true; apq8064_sdc1_pdata->disable_cmd23 = true; } if (apq8064_sdc3_pdata) { if (machine_is_apq8064_sim()) apq8064_sdc3_pdata->disable_bam = true; apq8064_sdc3_pdata->disable_runtime_pm = true; apq8064_sdc3_pdata->disable_cmd23 = true; } } if (apq8064_sdc1_pdata) apq8064_add_sdcc(1, apq8064_sdc1_pdata); if (apq8064_sdc3_pdata) { if (!machine_is_apq8064_cdp()) { apq8064_sdc3_pdata->wpswitch_gpio = 0; apq8064_sdc3_pdata->wpswitch_polarity = 0; } if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { apq8064_sdc3_pdata->status_gpio = PM8921_GPIO_PM_TO_SYS(31); apq8064_sdc3_pdata->status_irq = PM8921_GPIO_IRQ(PM8921_IRQ_BASE, 31); } apq8064_add_sdcc(3, apq8064_sdc3_pdata); } }
static void __init apq8064_clock_init(void) { if (machine_is_apq8064_sim()) msm_clock_init(&apq8064_clock_init_data); else msm_clock_init(&apq8064_dummy_clock_init_data); }
static void __init apq8064_init_mmc(void) { if ((machine_is_apq8064_rumi3()) || machine_is_apq8064_sim()) { if (apq8064_sdc1_pdata) { if (machine_is_apq8064_sim()) apq8064_sdc1_pdata->disable_bam = true; apq8064_sdc1_pdata->disable_runtime_pm = true; apq8064_sdc1_pdata->disable_cmd23 = true; } if (apq8064_sdc3_pdata) { if (machine_is_apq8064_sim()) apq8064_sdc3_pdata->disable_bam = true; apq8064_sdc3_pdata->disable_runtime_pm = true; apq8064_sdc3_pdata->disable_cmd23 = true; } } apq8064_add_sdcc(1, apq8064_sdc1_pdata); apq8064_add_sdcc(3, apq8064_sdc3_pdata); }
static int __cpuinit release_secondary(unsigned int cpu) { BUG_ON(cpu >= get_core_count()); if (cpu_is_msm8x60()) return scorpion_release_secondary(); if (machine_is_msm8960_sim() || machine_is_msm8960_rumi3() || machine_is_apq8064_sim()) return krait_release_secondary_sim(cpu); if (cpu_is_msm8960() || cpu_is_msm8930() || cpu_is_apq8064()) return krait_release_secondary(cpu); WARN(1, "unknown CPU case in release_secondary\n"); return -EINVAL; }
static int __cpuinit krait_release_secondary_sim(unsigned long base, int cpu) { void *base_ptr = ioremap_nocache(base + (cpu * 0x10000), SZ_4K); if (!base_ptr) return -ENODEV; if (machine_is_msm8960_sim() || machine_is_msm8960_rumi3()) { writel_relaxed(0x10, base_ptr+0x04); writel_relaxed(0x80, base_ptr+0x04); } if (machine_is_apq8064_sim()) writel_relaxed(0xf0000, base_ptr+0x04); mb(); iounmap(base_ptr); return 0; }
void __init apq8064_init_mmc(void) { if ((machine_is_apq8064_rumi3()) || machine_is_apq8064_sim()) { if (apq8064_sdc1_pdata) { if (machine_is_apq8064_sim()) apq8064_sdc1_pdata->disable_bam = true; apq8064_sdc1_pdata->disable_runtime_pm = true; apq8064_sdc1_pdata->disable_cmd23 = true; } if (apq8064_sdc3_pdata) { if (machine_is_apq8064_sim()) apq8064_sdc3_pdata->disable_bam = true; apq8064_sdc3_pdata->disable_runtime_pm = true; apq8064_sdc3_pdata->disable_cmd23 = true; } } if (apq8064_sdc1_pdata) apq8064_add_sdcc(1, apq8064_sdc1_pdata); if (apq8064_sdc2_pdata) apq8064_add_sdcc(2, apq8064_sdc2_pdata); if (apq8064_sdc3_pdata) { if (!machine_is_apq8064_cdp()) { apq8064_sdc3_pdata->wpswitch_gpio = 0; apq8064_sdc3_pdata->is_wpswitch_active_low = false; } if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { int rc; struct pm_gpio sd_card_det_init_cfg = { .direction = PM_GPIO_DIR_IN, .output_buffer = PM_GPIO_OUT_BUF_CMOS, .pull = PM_GPIO_PULL_UP_30, .vin_sel = PM_GPIO_VIN_S4, .out_strength = PM_GPIO_STRENGTH_NO, .function = PM_GPIO_FUNC_NORMAL, }; apq8064_sdc3_pdata->status_gpio = PM8921_GPIO_PM_TO_SYS(31); apq8064_sdc3_pdata->status_irq = PM8921_GPIO_IRQ(PM8921_IRQ_BASE, 31); rc = pm8xxx_gpio_config(apq8064_sdc3_pdata->status_gpio, &sd_card_det_init_cfg); if (rc) { pr_info("%s: SD_CARD_DET GPIO%d config " "failed(%d)\n", __func__, apq8064_sdc3_pdata->status_gpio, rc); apq8064_sdc3_pdata->status_gpio = 0; apq8064_sdc3_pdata->status_irq = 0; } } if (machine_is_apq8064_cdp()) { int i; for (i = 0; i < apq8064_sdc3_pdata->pin_data->pad_data->\ drv->size; i++) apq8064_sdc3_pdata->pin_data->pad_data->\ drv->on[i].val = GPIO_CFG_10MA; } apq8064_add_sdcc(3, apq8064_sdc3_pdata); }