/* rpc connect for charging */ int msm_chg_rpc_connect(void) { uint32_t chg_vers; if (machine_is_msm7201a_surf() || machine_is_msm7x27_surf() || machine_is_qsd8x50_surf() || machine_is_msm7x25_surf() || machine_is_qsd8x50a_surf()) return -ENOTSUPP; if (chg_ep && !IS_ERR(chg_ep)) { printk(KERN_INFO "%s: chg_ep already connected\n", __func__); return 0; } chg_vers = 0x00020001; if (!msm_chg_init_rpc(chg_vers)) goto chg_found; chg_vers = 0x00010001; if (!msm_chg_init_rpc(chg_vers)) goto chg_found; printk(KERN_ERR "%s: connect compatible failed \n", __func__); return -EAGAIN; chg_found: printk(KERN_INFO "%s: connected to rpc vers = %x\n", __func__, chg_vers); return 0; }
static void __init msm7x27_init_mmc(void) { if (machine_is_msm7x27_ffa()) { mpp_mmc = mpp_get(NULL, "mpp3"); if (!mpp_mmc) { printk(KERN_ERR "%s: mpp get failed (%ld)\n", __func__, PTR_ERR(vreg_mmc)); return; } } else { vreg_mmc = vreg_get(NULL, "mmc"); if (IS_ERR(vreg_mmc)) { printk(KERN_ERR "%s: vreg get failed (%ld)\n", __func__, PTR_ERR(vreg_mmc)); return; } } sdcc_gpio_init(); #ifdef CONFIG_MMC_MSM_SDC1_SUPPORT msm_add_sdcc(1, &msm7x27_sdcc_data, 0, 0); #endif if (machine_is_msm7x27_surf()) { #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT msm_add_sdcc(2, &msm7x27_sdcc_data, 0, 0); #endif #ifdef CONFIG_MMC_MSM_SDC3_SUPPORT msm_add_sdcc(3, &msm7x27_sdcc_data, 0, 0); #endif #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT msm_add_sdcc(4, &msm7x27_sdcc_data, 0, 0); #endif } }
/* rpc connect for charging */ int msm_chg_rpc_connect(void) { uint32_t chg_vers; #ifndef CONFIG_HUAWEI_APPS if (machine_is_msm7201a_surf() || machine_is_msm7x27_surf() || machine_is_qsd8x50_surf() || machine_is_msm7x25_surf() || machine_is_qsd8x50a_surf()) #else if (machine_is_msm7201a_surf() || machine_is_msm7x27_surf() || machine_is_qsd8x50_surf() || machine_is_qsd8x50a_surf() ) #endif return -ENOTSUPP; if (chg_ep && !IS_ERR(chg_ep)) { pr_debug("%s: chg_ep already connected\n", __func__); return 0; } chg_vers = 0x00020001; if (!msm_chg_init_rpc(chg_vers)) goto chg_found; chg_vers = 0x00010001; if (!msm_chg_init_rpc(chg_vers)) goto chg_found; pr_err("%s: connect compatible failed \n", __func__); return -EAGAIN; chg_found: pr_debug("%s: connected to rpc vers = %x\n", __func__, chg_vers); return 0; }
static void __init msm7x27_map_io(void) { msm_map_common_io(); /* Technically dependent on the SoC but using machine_is * macros since socinfo is not available this early and there * are plans to restructure the code which will eliminate the * need for socinfo. */ if (machine_is_msm7x27_surf() || machine_is_msm7x27_ffa()) msm_clock_init(msm_clocks_7x27, msm_num_clocks_7x27); else msm_clock_init(msm_clocks_7x27, msm_num_clocks_7x27); msm_msm7x27_allocate_memory_regions(); #ifdef CONFIG_CACHE_L2X0 if (machine_is_msm7x27_surf() || machine_is_msm7x27_ffa()) { /* 7x27 has 256KB L2 cache: 64Kb/Way and 4-Way Associativity; R/W latency: 3 cycles; evmon/parity/share disabled. */ l2x0_init(MSM_L2CC_BASE, 0x00068012, 0xfe000000); } #endif }
static int __devinit hs_rpc_init(void) { int rc; if (machine_is_msm7x27_surf() || machine_is_msm7x27_ffa() || machine_is_qsd8x50_surf() || machine_is_qsd8x50_ffa() || machine_is_msm7x30_surf() || machine_is_msm7x30_ffa()) { rc = hs_rpc_cb_init(); if (rc) pr_err("%s: failed to initialize\n", __func__); } rc = msm_rpc_create_server(&hs_rpc_server); if (rc < 0) pr_err("%s: failed to create rpc server\n", __func__); return 0; }
void __init msm_add_usb_devices(void) { usb_mpp_init(); #ifdef CONFIG_USB_FUNCTION msm_hsusb_pdata.swfi_latency = msm7x27_pm_data [MSM_PM_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT].latency; msm_device_hsusb_peripheral.dev.platform_data = &msm_hsusb_pdata; #endif #ifdef CONFIG_USB_MSM_OTG_72K msm_device_otg.dev.platform_data = &msm_otg_pdata; if (machine_is_msm7x25_surf() || machine_is_msm7x25_ffa()) { msm_otg_pdata.pemp_level = PRE_EMPHASIS_WITH_20_PERCENT; msm_otg_pdata.drv_ampl = HS_DRV_AMPLITUDE_5_PERCENT; msm_otg_pdata.cdr_autoreset = CDR_AUTO_RESET_ENABLE; msm_otg_pdata.phy_reset = msm_otg_rpc_phy_reset; } if (machine_is_msm7x27_surf() || machine_is_msm7x27_ffa()) { msm_otg_pdata.pemp_level = PRE_EMPHASIS_WITH_10_PERCENT; msm_otg_pdata.drv_ampl = HS_DRV_AMPLITUDE_5_PERCENT; msm_otg_pdata.cdr_autoreset = CDR_AUTO_RESET_DISABLE; msm_otg_pdata.phy_reset_sig_inverted = 1; } #ifdef CONFIG_USB_GADGET msm_otg_pdata.swfi_latency = msm7x27_pm_data [MSM_PM_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT].latency; msm_device_gadget_peripheral.dev.platform_data = &msm_gadget_pdata; msm_gadget_pdata.is_phy_status_timer_on = 1; #endif #endif platform_add_devices(usb_devices, ARRAY_SIZE(usb_devices)); #ifdef CONFIG_USB_EHCI_MSM msm7x2x_init_host(); #endif }