static int msm_fb_detect_panel(const char *name) { int ret = -EPERM; if (machine_is_qsd8x50_ffa() || machine_is_qsd8x50a_ffa()) { if (!strncmp(name, "mddi_toshiba_wvga_pt", 20)) ret = 0; else ret = -ENODEV; } else if ((machine_is_qsd8x50_surf() || machine_is_qsd8x50a_surf()) && !strcmp(name, "lcdc_external")) ret = 0; else if (0 /*machine_is_qsd8x50_grapefruit() */) { if (!strcmp(name, "lcdc_grapefruit_vga")) ret = 0; else ret = -ENODEV; } else if (machine_is_qsd8x50_st1()) { if (!strcmp(name, "lcdc_st1_wxga")) ret = 0; else ret = -ENODEV; } else if (machine_is_qsd8x50a_st1_5()) { if (!strcmp(name, "lcdc_st15") || !strcmp(name, "hdmi_sii9022")) ret = 0; else ret = -ENODEV; } return ret; }
static void __init qsd8x50_init(void) { if (socinfo_init() < 0) printk(KERN_ERR "%s: socinfo_init() failed!\n", __func__); qsd8x50_cfg_smc91x(); msm_acpu_clock_init(&qsd8x50_clock_data); msm_device_hsusb_peripheral.dev.platform_data = &msm_hsusb_pdata; msm_device_hsusb_host.dev.platform_data = &msm_hsusb_pdata; platform_add_devices(devices, ARRAY_SIZE(devices)); msm_fb_add_devices(); msm_camera_add_device(); qsd8x50_init_mmc(); bt_power_init(); audio_gpio_init(); msm_device_i2c_init(); i2c_register_board_info(0, msm_i2c_board_info, ARRAY_SIZE(msm_i2c_board_info)); spi_register_board_info(msm_spi_board_info, ARRAY_SIZE(msm_spi_board_info)); msm_pm_set_platform_data(msm_pm_data); #ifdef CONFIG_SURF_FFA_GPIO_KEYPAD if (machine_is_qsd8x50_ffa()) platform_device_register(&keypad_device_8k_ffa); else platform_device_register(&keypad_device_surf); #endif }
static void __init qsd8x50_cfg_smc91x(void) { int rc = 0; if (machine_is_qsd8x50_surf()) { smc91x_resources[0].start = 0x70000300; smc91x_resources[0].end = 0x70000400; smc91x_resources[1].start = MSM_GPIO_TO_INT(156); smc91x_resources[1].end = MSM_GPIO_TO_INT(156); } else if (machine_is_qsd8x50_ffa()) { smc91x_resources[0].start = 0x84000300; smc91x_resources[0].end = 0x84000400; smc91x_resources[1].start = MSM_GPIO_TO_INT(87); smc91x_resources[1].end = MSM_GPIO_TO_INT(87); rc = gpio_tlmm_config(GPIO_CFG(87, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), GPIO_ENABLE); if (rc) { printk(KERN_ERR "%s: gpio_tlmm_config=%d\n", __func__, rc); } } else printk(KERN_ERR "%s: running on invalid machine type\n", __func__); }
static void __init qsd8x50_init_mmc(void) { if (machine_is_qsd8x50_ffa()) vreg_mmc = vreg_get(NULL, "gp6"); else vreg_mmc = vreg_get(NULL, "gp5"); 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, &qsd8x50_sdcc_data); #endif if (machine_is_qsd8x50_surf()) { #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT msm_add_sdcc(2, &qsd8x50_sdcc_data); #endif #ifdef CONFIG_MMC_MSM_SDC3_SUPPORT msm_add_sdcc(3, &qsd8x50_sdcc_data); #endif #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT msm_add_sdcc(4, &qsd8x50_sdcc_data); #endif } }
static void msm_fb_mddi_power_save(int on) { int flag_on = !!on; if (!flag_on && machine_is_qsd8x50_ffa()) { gpio_set_value(MDDI_RST_OUT_GPIO, 0); mdelay(1); } msm_fb_vreg_config("gp5", flag_on); msm_fb_vreg_config("msme2", !flag_on); msm_fb_vreg_config("boost", flag_on); if (flag_on && machine_is_qsd8x50_ffa()) { gpio_set_value(MDDI_RST_OUT_GPIO, 0); mdelay(1); gpio_set_value(MDDI_RST_OUT_GPIO, 1); gpio_set_value(MDDI_RST_OUT_GPIO, 1); mdelay(1); } }
int msm_pm_app_rpc_init(void) { #if 1 /* allow qsd8650 */ #else if (!machine_is_qsd8x50_ffa() && !machine_is_msm7x27_ffa()) return -ENOTSUPP; #endif boost_vreg = vreg_get(NULL, "boost"); if (IS_ERR(boost_vreg)) { pr_err("%s: boost vreg get failed\n", __func__); return PTR_ERR(boost_vreg); } usb_vreg = vreg_get(NULL, "usb"); if (IS_ERR(usb_vreg)) { pr_err("%s: usb vreg get failed\n", __func__); vreg_put(usb_vreg); return PTR_ERR(usb_vreg); } client = msm_rpc_register_client("pmapp_usb", PM_APP_USB_PROG, PM_APP_USB_VERS_2_1, 1, pm_app_usb_cb_func); if (!IS_ERR(client)) { rpc_pmapp_init_rpc_ids(PM_APP_USB_VERS_2_1); goto done; } client = msm_rpc_register_client("pmapp_usb", PM_APP_USB_PROG, PM_APP_USB_VERS_1_2, 1, pm_app_usb_cb_func); if (!IS_ERR(client)) { rpc_pmapp_init_rpc_ids(PM_APP_USB_VERS_1_2); goto done; } client = msm_rpc_register_client("pmapp_usb", PM_APP_USB_PROG, PM_APP_USB_VERS_1_1, 1, pm_app_usb_cb_func); if (!IS_ERR(client)) rpc_pmapp_init_rpc_ids(PM_APP_USB_VERS_1_1); else return PTR_ERR(client); done: return 0; }
static int msm_fb_detect_panel(const char *name) { int ret = -EPERM; if (machine_is_qsd8x50_ffa()) { if (!strncmp(name, "mddi_toshiba_wvga_pt", 20)) ret = 0; else ret = -ENODEV; } return ret; }
static int mddi_toshiba_pmic_bl(int level) { int ret = -EPERM; if (machine_is_qsd8x50_ffa()) { ret = set_led_intensity(LED_LCD, level); if (ret) printk(KERN_WARNING "%s: can't set lcd backlight!\n", __func__); } return ret; }
static void __init qsd8x50_init_mmc(void) { if (machine_is_qsd8x50_ffa() || machine_is_qsd8x50a_ffa()) vreg_mmc = vreg_get(NULL, "gp6"); else vreg_mmc = vreg_get(NULL, "gp5"); if (IS_ERR(vreg_mmc)) { pr_err("vreg get for vreg_mmc failed (%ld)\n", PTR_ERR(vreg_mmc)); return; } msm_add_sdcc(1, &qsd8x50_sdc1_data, 0, 0); }
int msm_pm_app_rpc_init(void (*callback)(int online)) { uint32_t cb_id, rc; if (!machine_is_qsd8x50_ffa() && !machine_is_qsd8x50a_ffa() && !machine_is_msm7x27_ffa()) return -ENOTSUPP; client = msm_rpc_register_client("pmapp_usb", PMAPP_RPC_PROG, PMAPP_RPC_VER_2_1, 1, pm_app_usb_cb_func); if (!IS_ERR(client)) { rpc_pmapp_init_rpc_ids(PMAPP_RPC_VER_2_1); goto done; } client = msm_rpc_register_client("pmapp_usb", PMAPP_RPC_PROG, PMAPP_RPC_VER_1_2, 1, pm_app_usb_cb_func); if (!IS_ERR(client)) { rpc_pmapp_init_rpc_ids(PMAPP_RPC_VER_1_2); goto done; } client = msm_rpc_register_client("pmapp_usb", PMAPP_RPC_PROG, PMAPP_RPC_VER_1_1, 1, pm_app_usb_cb_func); if (!IS_ERR(client)) rpc_pmapp_init_rpc_ids(PMAPP_RPC_VER_1_1); else return PTR_ERR(client); done: cb_id = msm_rpc_add_cb_func(client, (void *)callback); /* In case of NULL callback funtion, cb_id would be -1 */ if ((int) cb_id < -1) return cb_id; rc = msm_rpc_client_req(client, rpc_ids.reg_for_vbus_valid, vbus_sess_valid_arg_cb, &cb_id, NULL, NULL, -1); return rc; }
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; }
static void sdcc_gpio_init(void) { /* SDC1 GPIOs */ #ifdef CONFIG_MMC_MSM_SDC1_SUPPORT if (gpio_request(51, "sdc1_data_3")) pr_err("failed to request gpio sdc1_data_3\n"); if (gpio_request(52, "sdc1_data_2")) pr_err("failed to request gpio sdc1_data_2\n"); if (gpio_request(53, "sdc1_data_1")) pr_err("failed to request gpio sdc1_data_1\n"); if (gpio_request(54, "sdc1_data_0")) pr_err("failed to request gpio sdc1_data_0\n"); if (gpio_request(55, "sdc1_cmd")) pr_err("failed to request gpio sdc1_cmd\n"); if (gpio_request(56, "sdc1_clk")) pr_err("failed to request gpio sdc1_clk\n"); #endif if (machine_is_qsd8x50_ffa()) return; /* SDC2 GPIOs */ #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT if (gpio_request(62, "sdc2_clk")) pr_err("failed to request gpio sdc2_clk\n"); if (gpio_request(63, "sdc2_cmd")) pr_err("failed to request gpio sdc2_cmd\n"); if (gpio_request(64, "sdc2_data_3")) pr_err("failed to request gpio sdc2_data_3\n"); if (gpio_request(65, "sdc2_data_2")) pr_err("failed to request gpio sdc2_data_2\n"); if (gpio_request(66, "sdc2_data_1")) pr_err("failed to request gpio sdc2_data_1\n"); if (gpio_request(67, "sdc2_data_0")) pr_err("failed to request gpio sdc2_data_0\n"); #endif /* SDC3 GPIOs */ #ifdef CONFIG_MMC_MSM_SDC3_SUPPORT if (gpio_request(88, "sdc3_clk")) pr_err("failed to request gpio sdc3_clk\n"); if (gpio_request(89, "sdc3_cmd")) pr_err("failed to request gpio sdc3_cmd\n"); if (gpio_request(90, "sdc3_data_3")) pr_err("failed to request gpio sdc3_data_3\n"); if (gpio_request(91, "sdc3_data_2")) pr_err("failed to request gpio sdc3_data_2\n"); if (gpio_request(92, "sdc3_data_1")) pr_err("failed to request gpio sdc3_data_1\n"); if (gpio_request(93, "sdc3_data_0")) pr_err("failed to request gpio sdc3_data_0\n"); #endif /* SDC4 GPIOs */ #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT if (gpio_request(142, "sdc4_clk")) pr_err("failed to request gpio sdc4_clk\n"); if (gpio_request(143, "sdc4_cmd")) pr_err("failed to request gpio sdc4_cmd\n"); if (gpio_request(144, "sdc4_data_0")) pr_err("failed to request gpio sdc4_data_0\n"); if (gpio_request(145, "sdc4_data_1")) pr_err("failed to request gpio sdc4_data_1\n"); if (gpio_request(146, "sdc4_data_2")) pr_err("failed to request gpio sdc4_data_2\n"); if (gpio_request(147, "sdc4_data_3")) pr_err("failed to request gpio sdc4_data_3\n"); #endif }