void __init apq8064_init_cam(void) { msm_gpiomux_install(apq8064_cam_common_configs, ARRAY_SIZE(apq8064_cam_common_configs)); if (machine_is_apq8064_cdp()) { sensor_board_info_imx074.mount_angle = 0; sensor_board_info_mt9m114.mount_angle = 0; } else if (machine_is_apq8064_liquid()) sensor_board_info_imx074.mount_angle = 180; platform_device_register(&msm_camera_server); platform_device_register(&msm8960_device_i2c_mux_gsbi4); platform_device_register(&msm8960_device_csiphy0); platform_device_register(&msm8960_device_csiphy1); platform_device_register(&msm8960_device_csid0); platform_device_register(&msm8960_device_csid1); platform_device_register(&msm8960_device_ispif); platform_device_register(&msm8960_device_vfe); platform_device_register(&msm8960_device_vpe); }
void __init apq8064_init_cam(void) { printk(KERN_DEBUG "[JC] %s: In\n", __func__); msm_gpiomux_install(apq8064_cam_common_configs, ARRAY_SIZE(apq8064_cam_common_configs)); /*config gpio*/ /*pm gpio config for sleep state*/ pm8xxx_gpio_config(GPIO_VT_CAM_ID, &cam_init_in_cfg); pm8xxx_gpio_config(GPIO_13M_CAM_RESET, &cam_init_out_cfg); pm8xxx_gpio_config(GPIO_CAM_AF_EN, &cam_init_out_cfg); pm8xxx_gpio_config(GPIO_VT_CAM_STBY, &cam_init_out_cfg); pm8xxx_gpio_config(GPIO_CAM_ISP_INT, &cam_init_in_cfg); pm8xxx_gpio_config(GPIO_CAM_A_EN2, &cam_init_out_cfg); /* temp: need to set low because bootloader make high signal. */ pmic_gpio_ctrl(GPIO_CAM_VT_EN, 0); printk(KERN_DEBUG "[S5K6B2YX] %s: GPIO_CAM_VT_EN: 0\n", __func__); if (machine_is_apq8064_cdp()) { sensor_board_info_imx074.mount_angle = 0; sensor_board_info_mt9m114.mount_angle = 0; } else if (machine_is_apq8064_liquid()) sensor_board_info_imx074.mount_angle = 180; spi_register_board_info(jc_spi_info, ARRAY_SIZE(jc_spi_info)); platform_device_register(&msm_camera_server); #if !defined (CONFIG_CAMERA_USE_GSBI7) platform_device_register(&msm8960_device_i2c_mux_gsbi4); #endif platform_device_register(&msm8960_device_csiphy0); platform_device_register(&msm8960_device_csiphy1); platform_device_register(&msm8960_device_csid0); platform_device_register(&msm8960_device_csid1); platform_device_register(&msm8960_device_ispif); platform_device_register(&msm8960_device_vfe); platform_device_register(&msm8960_device_vpe); }
void __init apq8064_init_fb(void) { platform_device_register(&msm_fb_device); platform_device_register(&lvds_chimei_panel_device); #ifdef CONFIG_FB_MSM_WRITEBACK_MSM_PANEL platform_device_register(&wfd_panel_device); platform_device_register(&wfd_device); #endif if (machine_is_apq8064_liquid()) platform_device_register(&mipi_dsi2lvds_bridge_device); if (machine_is_apq8064_mtp()) platform_device_register(&mipi_dsi_toshiba_panel_device); if (machine_is_mpq8064_dtv()) platform_device_register(&lvds_frc_panel_device); msm_fb_register_device("mdp", &mdp_pdata); msm_fb_register_device("lvds", &lvds_pdata); msm_fb_register_device("mipi_dsi", &mipi_dsi_pdata); platform_device_register(&hdmi_msm_device); msm_fb_register_device("dtv", &dtv_pdata); }
void __init apq8064_init_gpiomux(void) { int rc; rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { #if !defined(CONFIG_MACH_LGE) msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #endif #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if !defined(CONFIG_MACH_LGE) #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); } #if defined(CONFIG_LGE_FELICA) || defined(CONFIG_LGE_NFC_SONY_CXD2235AGG) msm_gpiomux_install(apq8064_felica_uart_configs, ARRAY_SIZE(apq8064_felica_uart_configs)); #endif msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); #ifdef CONFIG_LGE_IRRC msm_gpiomux_install(apq8064_irrc_configs, ARRAY_SIZE(apq8064_irrc_configs)); pr_debug("[IRRC] gpiomux_install"); #endif msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); #if !defined(CONFIG_MACH_LGE) msm_gpiomux_install(apq8064_ext_regulator_configs, ARRAY_SIZE(apq8064_ext_regulator_configs)); #endif if (machine_is_apq8064_mtp()) msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); if (machine_is_apq8064_mtp()) msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif /* #ifndef CONFIG_LGE_FELICA_KDDI */ #if !defined(CONFIG_LGE_FELICA_KDDI) && !defined(CONFIG_LGE_FELICA_DCM) /* [email protected] [START] for NFC */ #if defined(CONFIG_LGE_NFC) msm_gpiomux_install(apq8064_nfc_configs, ARRAY_SIZE(apq8064_nfc_configs)); #endif #endif//endif of CONFIG_LGE_FELICA_KDDI, CONFIG_LGE_FELICA_DCM /* [email protected] [END] for NFC */ if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT msm_gpiomux_install(apq8064_sdc2_configs, ARRAY_SIZE(apq8064_sdc2_configs)); #endif #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT msm_gpiomux_install(apq8064_sdc4_configs, ARRAY_SIZE(apq8064_sdc4_configs)); #endif msm_gpiomux_install(apq8064_sdc3_configs, ARRAY_SIZE(apq8064_sdc3_configs)); }
void __init apq8064_init_gpiomux(void) { int rc; int platform_version = socinfo_get_platform_version(); rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT if (system_rev < BOARD_REV09) { msm_gpiomux_install(sdc4_interface, ARRAY_SIZE(sdc4_interface)); msm_gpiomux_install(sd_ls_en_60_config, ARRAY_SIZE(sd_ls_en_60_config)); } else { msm_gpiomux_install(sdc2_interface, ARRAY_SIZE(sdc2_interface)); msm_gpiomux_install(sd_ls_en_64_config, ARRAY_SIZE(sd_ls_en_64_config)); } #else msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); #endif if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); } msm_gpiomux_install(apq8064_nc_configs, ARRAY_SIZE(apq8064_nc_configs)); msm_gpiomux_install(sensorhub_configs, ARRAY_SIZE(sensorhub_configs)); if (system_rev > BOARD_REV11) msm_gpiomux_install(nfc_firmware_configs, ARRAY_SIZE(nfc_firmware_configs)); msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); msm_gpiomux_install(apq8064_auxpcm_configs, ARRAY_SIZE(apq8064_auxpcm_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); if (machine_is_apq8064_mtp()|| machine_is_JF()) { if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_DSDA2) { msm_gpiomux_install(amdm_configs, ARRAY_SIZE(amdm_configs)); msm_gpiomux_install(bmdm_configs, ARRAY_SIZE(bmdm_configs)); } else if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_SGLTE2) { msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); msm_gpiomux_install(sglte2_qsc_configs, ARRAY_SIZE(sglte2_qsc_configs)); /* GSBI4 UART GPIOs for Primary IPC */ msm_gpiomux_install(apq8064_uartdm_gsbi4_configs, ARRAY_SIZE(apq8064_uartdm_gsbi4_configs)); } else if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(mdm_i2s_configs, ARRAY_SIZE(mdm_i2s_configs)); } else { msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); } } if (machine_is_apq8064_mtp()|| machine_is_JF()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(cyts_gpio_alt_config, ARRAY_SIZE(cyts_gpio_alt_config)); } else { msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); } } #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()|| machine_is_JF()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); if (system_rev < BOARD_REV10) msm_gpiomux_install(msm8064_sd_det_config, ARRAY_SIZE(msm8064_sd_det_config)); #if defined(CONFIG_VIDEO_MHL_V2) msm_gpiomux_install(msm8960_mhl_configs, ARRAY_SIZE(msm8960_mhl_configs)); #endif #if defined(CONFIG_LEDS_AN30259A) msm_gpiomux_install(apq8064_leds_configs, ARRAY_SIZE(apq8064_leds_configs)); #endif #ifdef CONFIG_KEYBOARD_CYPRESS_TOUCH_236 printk(KERN_INFO"cypress gpio init in %s",__func__); if (system_rev > BOARD_REV10) msm_gpiomux_install(apq8064_tkey_config, ARRAY_SIZE(apq8064_tkey_config)); #endif #ifdef CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI if (system_rev >= BOARD_REV09) { printk(KERN_INFO "%s: config touch_irq config.\n",__func__); msm_gpiomux_install(apq8064_touch_irq_config, ARRAY_SIZE(apq8064_touch_irq_config)); } #endif #ifdef CONFIG_MFD_MAX77693 msm_gpiomux_install(apq8064_muic_config, ARRAY_SIZE(apq8064_muic_config)); #endif msm_gpiomux_install(apq8064_sec_jack_configs, ARRAY_SIZE(apq8064_sec_jack_configs)); if (machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_uartdm_configs, ARRAY_SIZE(mpq8064_uartdm_configs)); }
static int mipi_dsi_panel_power(int on) { static struct regulator *reg_lvs7, *reg_l2, *reg_l11, *reg_ext_3p3v; static int gpio36, gpio25, gpio26, mpp3; int rc; pr_debug("%s: on=%d\n", __func__, on); if (!dsi_power_on) { reg_lvs7 = regulator_get(&msm_mipi_dsi1_device.dev, "dsi1_vddio"); if (IS_ERR_OR_NULL(reg_lvs7)) { pr_err("could not get 8921_lvs7, rc = %ld\n", PTR_ERR(reg_lvs7)); return -ENODEV; } reg_l2 = regulator_get(&msm_mipi_dsi1_device.dev, "dsi1_pll_vdda"); if (IS_ERR_OR_NULL(reg_l2)) { pr_err("could not get 8921_l2, rc = %ld\n", PTR_ERR(reg_l2)); return -ENODEV; } rc = regulator_set_voltage(reg_l2, 1200000, 1200000); if (rc) { pr_err("set_voltage l2 failed, rc=%d\n", rc); return -EINVAL; } reg_l11 = regulator_get(&msm_mipi_dsi1_device.dev, "dsi1_avdd"); if (IS_ERR(reg_l11)) { pr_err("could not get 8921_l11, rc = %ld\n", PTR_ERR(reg_l11)); return -ENODEV; } rc = regulator_set_voltage(reg_l11, 3000000, 3000000); if (rc) { pr_err("set_voltage l11 failed, rc=%d\n", rc); return -EINVAL; } if (machine_is_apq8064_liquid()) { reg_ext_3p3v = regulator_get(&msm_mipi_dsi1_device.dev, "dsi1_vccs_3p3v"); if (IS_ERR_OR_NULL(reg_ext_3p3v)) { pr_err("could not get reg_ext_3p3v, rc = %ld\n", PTR_ERR(reg_ext_3p3v)); reg_ext_3p3v = NULL; return -ENODEV; } mpp3 = PM8921_MPP_PM_TO_SYS(3); rc = gpio_request(mpp3, "backlight_en"); if (rc) { pr_err("request mpp3 failed, rc=%d\n", rc); return -ENODEV; } } gpio25 = PM8921_GPIO_PM_TO_SYS(25); rc = gpio_request(gpio25, "disp_rst_n"); if (rc) { pr_err("request gpio 25 failed, rc=%d\n", rc); return -ENODEV; } gpio26 = PM8921_GPIO_PM_TO_SYS(26); rc = gpio_request(gpio26, "pwm_backlight_ctrl"); if (rc) { pr_err("request gpio 26 failed, rc=%d\n", rc); return -ENODEV; } gpio36 = PM8921_GPIO_PM_TO_SYS(36); /* lcd1_pwr_en_n */ rc = gpio_request(gpio36, "lcd1_pwr_en_n"); if (rc) { pr_err("request gpio 36 failed, rc=%d\n", rc); return -ENODEV; } dsi_power_on = true; } if (on) { rc = regulator_enable(reg_lvs7); if (rc) { pr_err("enable lvs7 failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_set_optimum_mode(reg_l11, 110000); if (rc < 0) { pr_err("set_optimum_mode l11 failed, rc=%d\n", rc); return -EINVAL; } rc = regulator_enable(reg_l11); if (rc) { pr_err("enable l11 failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_set_optimum_mode(reg_l2, 100000); if (rc < 0) { pr_err("set_optimum_mode l2 failed, rc=%d\n", rc); return -EINVAL; } rc = regulator_enable(reg_l2); if (rc) { pr_err("enable l2 failed, rc=%d\n", rc); return -ENODEV; } if (machine_is_apq8064_liquid()) { rc = regulator_enable(reg_ext_3p3v); if (rc) { pr_err("enable reg_ext_3p3v failed, rc=%d\n", rc); return -ENODEV; } gpio_set_value_cansleep(mpp3, 1); } gpio_set_value_cansleep(gpio36, 0); gpio_set_value_cansleep(gpio25, 1); } else { gpio_set_value_cansleep(gpio25, 0); gpio_set_value_cansleep(gpio36, 1); if (machine_is_apq8064_liquid()) { gpio_set_value_cansleep(mpp3, 0); rc = regulator_disable(reg_ext_3p3v); if (rc) { pr_err("disable reg_ext_3p3v failed, rc=%d\n", rc); return -ENODEV; } } rc = regulator_disable(reg_l11); if (rc) { pr_err("disable reg_l1 failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_disable(reg_lvs7); if (rc) { pr_err("disable reg_lvs7 failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_disable(reg_l2); if (rc) { pr_err("disable reg_l2 failed, rc=%d\n", rc); return -ENODEV; } } return 0; }
static int mipi_dsi_panel_power(int on) { static struct regulator *reg_lvs7, *reg_l2, *reg_l11, *reg_l22, *reg_ext_3p3v; static int gpio36, gpio25, gpio26, mpp3; int rc; pr_debug("%s: on=%d\n", __func__, on); if (!dsi_power_on) { reg_lvs7 = regulator_get(&msm_mipi_dsi1_device.dev, "dsi1_vddio"); if (IS_ERR_OR_NULL(reg_lvs7)) { pr_err("could not get 8921_lvs7, rc = %ld\n", PTR_ERR(reg_lvs7)); return -ENODEV; } reg_l2 = regulator_get(&msm_mipi_dsi1_device.dev, "dsi1_pll_vdda"); if (IS_ERR_OR_NULL(reg_l2)) { pr_err("could not get 8921_l2, rc = %ld\n", PTR_ERR(reg_l2)); return -ENODEV; } rc = regulator_set_voltage(reg_l2, 1200000, 1200000); if (rc) { pr_err("set_voltage l2 failed, rc=%d\n", rc); return -EINVAL; } reg_l11 = regulator_get(&msm_mipi_dsi1_device.dev, "dsi1_avdd"); if (IS_ERR(reg_l11)) { pr_err("could not get 8921_l11, rc = %ld\n", PTR_ERR(reg_l11)); return -ENODEV; } rc = regulator_set_voltage(reg_l11, 3100000, 3100000); if (rc) { pr_err("set_voltage l11 failed, rc=%d\n", rc); return -EINVAL; } reg_l22 = regulator_get(NULL, "8921_l22"); if (IS_ERR(reg_l22)) { pr_err("could not get 8921_l22, rc = %ld\n", PTR_ERR(reg_l22)); return -ENODEV; } if (get_pcb_version() >= PCB_VERSION_EVT) { rc = regulator_set_voltage(reg_l22, 1800000, 1800000); if (rc) { pr_err("set_voltage l22 failed, rc=%d\n", rc); return -EINVAL; } } else if (get_pcb_version() < PCB_VERSION_EVT) { rc = regulator_set_voltage(reg_l22, 2200000, 2200000); if (rc) { pr_err("set_voltage l22 failed, rc=%d\n", rc); return -EINVAL; } } if (machine_is_apq8064_liquid()) { reg_ext_3p3v = regulator_get(&msm_mipi_dsi1_device.dev, "dsi1_vccs_3p3v"); if (IS_ERR_OR_NULL(reg_ext_3p3v)) { pr_err("could not get reg_ext_3p3v, rc = %ld\n", PTR_ERR(reg_ext_3p3v)); reg_ext_3p3v = NULL; return -ENODEV; } mpp3 = PM8921_MPP_PM_TO_SYS(3); rc = gpio_request(mpp3, "backlight_en"); if (rc) { pr_err("request mpp3 failed, rc=%d\n", rc); return -ENODEV; } } gpio25 = PM8921_GPIO_PM_TO_SYS(25); rc = gpio_request(gpio25, "disp_rst_n"); if (rc) { pr_err("request gpio 25 failed, rc=%d\n", rc); return -ENODEV; } gpio26 = PM8921_GPIO_PM_TO_SYS(26); rc = gpio_request(gpio26, "pwm_backlight_ctrl"); if (rc) { pr_err("request gpio 26 failed, rc=%d\n", rc); return -ENODEV; } gpio36 = PM8921_GPIO_PM_TO_SYS(36); /* lcd1_pwr_en_n */ rc = gpio_request(gpio36, "lcd1_pwr_en_n"); if (rc) { pr_err("request gpio 36 failed, rc=%d\n", rc); return -ENODEV; } if (get_pcb_version() >= PCB_VERSION_DVT) { rc = gpio_request(LCD_5V_EN_DVT, "lcd_5v_en"); } else { rc = gpio_request(LCD_5V_EN, "lcd_5v_en"); } if (rc) { pr_err("request gpio 86 failed, rc=%d\n", rc); return -ENODEV; } dsi_power_on = true; } if (on) { rc = regulator_enable(reg_lvs7); if (rc) { pr_err("enable lvs7 failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_enable(reg_l22); if (rc) { pr_err("enable l22 failed, rc=%d\n", rc); return -ENODEV; } mdelay(10); if (get_pcb_version() >= PCB_VERSION_DVT) { rc = gpio_direction_output(LCD_5V_EN_DVT, 1); } else { rc = gpio_direction_output(LCD_5V_EN, 1); } if (rc) { pr_err("%s: unable to enable LCD_5V_EN!!!!!!!!!!!!\n", __func__); return -ENODEV; } gpio_set_value_cansleep(gpio36, 0); gpio_set_value_cansleep(gpio25, 1); rc = regulator_set_optimum_mode(reg_l11, 110000); if (rc < 0) { pr_err("set_optimum_mode l11 failed, rc=%d\n", rc); return -EINVAL; } rc = regulator_enable(reg_l11); if (rc) { pr_err("enable l11 failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_set_optimum_mode(reg_l2, 100000); if (rc < 0) { pr_err("set_optimum_mode l2 failed, rc=%d\n", rc); return -EINVAL; } rc = regulator_enable(reg_l2); if (rc) { pr_err("enable l2 failed, rc=%d\n", rc); return -ENODEV; } if (machine_is_apq8064_liquid()) { rc = regulator_enable(reg_ext_3p3v); if (rc) { pr_err("enable reg_ext_3p3v failed, rc=%d\n", rc); return -ENODEV; } gpio_set_value_cansleep(mpp3, 1); } if (socinfo_get_pmic_model() == PMIC_MODEL_PM8917) gpio_set_value_cansleep(gpio26, 1); } else { if (socinfo_get_pmic_model() == PMIC_MODEL_PM8917) gpio_set_value_cansleep(gpio26, 0); gpio_set_value_cansleep(gpio25, 0); gpio_set_value_cansleep(gpio36, 1); if (machine_is_apq8064_liquid()) { gpio_set_value_cansleep(mpp3, 0); rc = regulator_disable(reg_ext_3p3v); if (rc) { pr_err("disable reg_ext_3p3v failed, rc=%d\n", rc); return -ENODEV; } } if (get_pcb_version() >= PCB_VERSION_DVT) { rc = gpio_direction_output(LCD_5V_EN_DVT, 0); } else { rc = gpio_direction_output(LCD_5V_EN, 0); } if (rc) { pr_err("%s: unable to enable LCD_5V_EN!!!!!!!!!!!!\n", __func__); return -ENODEV; } mdelay(10); rc = regulator_disable(reg_l22); if (rc) { pr_err("disable reg_l22 failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_disable(reg_l11); if (rc) { pr_err("disable reg_l1 failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_disable(reg_lvs7); if (rc) { pr_err("disable reg_lvs7 failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_disable(reg_l2); if (rc) { pr_err("disable reg_l2 failed, rc=%d\n", rc); return -ENODEV; } } return 0; }
void __init apq8064_init_cam(void) { /* for SGLTE2 platform, do not configure i2c/gpiomux gsbi4 is used for * some other purpose */ /* OPPO 2013-07-24 liubin Modify for N1 not configure i2c start */ #if 0 if (socinfo_get_platform_subtype() != PLATFORM_SUBTYPE_SGLTE2) { msm_gpiomux_install(apq8064_cam_common_configs, ARRAY_SIZE(apq8064_cam_common_configs)); } #else if (socinfo_get_platform_subtype() != PLATFORM_SUBTYPE_SGLTE2) { if (get_pcb_version() >= PCB_VERSION_EVT_N1) { msm_gpiomux_install(apq8064_cam_common_configs_n1, ARRAY_SIZE(apq8064_cam_common_configs_n1)); } else { msm_gpiomux_install(apq8064_cam_common_configs, ARRAY_SIZE(apq8064_cam_common_configs)); } } #endif /* OPPO 2013-07-24 liubin Modify end */ if (machine_is_apq8064_cdp()) { sensor_board_info_imx074.mount_angle = 0; sensor_board_info_mt9m114.mount_angle = 0; } else if (machine_is_apq8064_liquid()) sensor_board_info_imx074.mount_angle = 180; platform_device_register(&msm_camera_server); /* OPPO 2013-07-24 liubin Modify for N1 not configure i2c start */ #if 0 if (socinfo_get_platform_subtype() != PLATFORM_SUBTYPE_SGLTE2) platform_device_register(&msm8960_device_i2c_mux_gsbi4); #else if (socinfo_get_platform_subtype() != PLATFORM_SUBTYPE_SGLTE2) { if (get_pcb_version() >= PCB_VERSION_EVT_N1) { platform_device_register(&msm8064_device_i2c_mux_gsbi7); } else { platform_device_register(&msm8960_device_i2c_mux_gsbi4); } } #endif /* OPPO 2013-07-24 liubin Modify end */ platform_device_register(&msm8960_device_csiphy0); platform_device_register(&msm8960_device_csiphy1); platform_device_register(&msm8960_device_csid0); platform_device_register(&msm8960_device_csid1); platform_device_register(&msm8960_device_ispif); platform_device_register(&msm8960_device_vfe); platform_device_register(&msm8960_device_vpe); }
void __init apq8064_init_gpiomux(void) { int rc; int platform_version = socinfo_get_platform_version(); #ifdef CONFIG_MACH_ASUSTEK hw_rev revision = HW_REV_INVALID; revision = asustek_get_hw_rev(); #endif rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } msm_gpiomux_install(msm8960_mdp_vsync_configs, ARRAY_SIZE(msm8960_mdp_vsync_configs)); msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); } #ifdef CONFIG_MACH_ASUSTEK if (machine_is_apq8064_flo() || machine_is_apq8064_deb()) { msm_gpiomux_install(asustek_pcbid_pins_configs, ARRAY_SIZE(asustek_pcbid_pins_configs)); if (revision == HW_REV_B) { msm_gpiomux_install(asustek_gpio_keys_configs, ARRAY_SIZE(asustek_gpio_keys_configs)); } msm_gpiomux_install(asustek_pwr_keys_configs, ARRAY_SIZE(asustek_pwr_keys_configs)); } #endif msm_gpiomux_install(gpio_bat_low_configs, ARRAY_SIZE(gpio_bat_low_configs)); msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); /* msm_gpiomux_install(apq8064_ext_regulator_configs, ARRAY_SIZE(apq8064_ext_regulator_configs)); */ if (machine_is_apq8064_flo() || machine_is_apq8064_deb()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) msm_gpiomux_install(mdm_i2s_configs, ARRAY_SIZE(mdm_i2s_configs)); else msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); } if (machine_is_apq8064_flo() || machine_is_apq8064_deb()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(cyts_gpio_alt_config, ARRAY_SIZE(cyts_gpio_alt_config)); } else { msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); } } #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_flo() || machine_is_apq8064_deb()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT msm_gpiomux_install(apq8064_sdc2_configs, ARRAY_SIZE(apq8064_sdc2_configs)); #endif #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT msm_gpiomux_install(apq8064_sdc4_configs, ARRAY_SIZE(apq8064_sdc4_configs)); #endif #ifdef CONFIG_MMC_MSM_SDC3_SUPPORT msm_gpiomux_install(apq8064_sdc3_configs, ARRAY_SIZE(apq8064_sdc3_configs)); #endif //add touch msm_gpiomux_install(msm8064_ts_gpio_config, ARRAY_SIZE(msm8064_ts_gpio_config)); msm_gpiomux_install(smb345_pin_configs, ARRAY_SIZE(smb345_pin_configs)); switch (revision) { case HW_REV_B: case HW_REV_C: case HW_REV_D: case HW_REV_E: msm_gpiomux_install(wpc_pok_configs, ARRAY_SIZE(wpc_pok_configs)); break; default: break; } if (machine_is_apq8064_flo() || machine_is_apq8064_deb()) msm_gpiomux_install(apq8064_bcm2079x_nfc_configs, ARRAY_SIZE(apq8064_bcm2079x_nfc_configs)); #ifdef CONFIG_SLIMPORT_ANX7808 msm_gpiomux_install(msm8064_sp_gpio_config, ARRAY_SIZE(msm8064_sp_gpio_config)); #endif msm_gpiomux_install(apq8064_headphone_configs, ARRAY_SIZE(apq8064_headphone_configs)); msm_gpiomux_install(asustek_gsbi4_configs, ARRAY_SIZE(asustek_gsbi4_configs)); #ifdef CONFIG_INPUT_LID if (machine_is_apq8064_flo() || machine_is_apq8064_deb()) { if ((revision == HW_REV_C) || (revision == HW_REV_D) || (revision == HW_REV_E)) { msm_gpiomux_install(asustek_hall_sensor_configs, ARRAY_SIZE(asustek_hall_sensor_configs)); } } #endif }
void __init apq8064_init_gpiomux(void) { int rc; int platform_version = socinfo_get_platform_version(); rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) /*added by congshan 20121008 start*/ #ifdef CONFIG_ZTEMT_MHL_8064 #else msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif /*added by congshan 20121008 end*/ #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); } msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); msm_gpiomux_install(apq8064_ext_regulator_configs, ARRAY_SIZE(apq8064_ext_regulator_configs)); if (machine_is_apq8064_mtp()) { if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_DSDA2) { msm_gpiomux_install(amdm_configs, ARRAY_SIZE(amdm_configs)); msm_gpiomux_install(bmdm_configs, ARRAY_SIZE(bmdm_configs)); } else if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_SGLTE2) { msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); msm_gpiomux_install(sglte2_qsc_configs, ARRAY_SIZE(sglte2_qsc_configs)); /* GSBI4 UART GPIOs for Primary IPC */ msm_gpiomux_install(apq8064_uartdm_gsbi4_configs, ARRAY_SIZE(apq8064_uartdm_gsbi4_configs)); } else if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(mdm_i2s_configs, ARRAY_SIZE(mdm_i2s_configs)); } else { msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); } } if (machine_is_apq8064_mtp()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(cyts_gpio_alt_config, ARRAY_SIZE(cyts_gpio_alt_config)); } else { msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); } } #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT msm_gpiomux_install(apq8064_sdc2_configs, ARRAY_SIZE(apq8064_sdc2_configs)); #endif #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT msm_gpiomux_install(apq8064_sdc4_configs, ARRAY_SIZE(apq8064_sdc4_configs)); #endif msm_gpiomux_install(apq8064_sdc3_configs, ARRAY_SIZE(apq8064_sdc3_configs)); /*added by congshan 20121008 start*/ #ifdef CONFIG_ZTEMT_MHL_8064 msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #endif /*added by congshan 20121008 end*/ /* ZTEMT Added by LiuYongfeng, 2012/10/10 */ #ifdef CONFIG_SERIAL_MSM_HSL msm_gpiomux_install(mpq8064_gsbi5_uart_configs, ARRAY_SIZE(mpq8064_gsbi5_uart_configs)); #endif /* ZTEMT END */ //# config the sensors' gpio #ifdef CONFIG_ZTEMT_SENSORS msm_gpiomux_install(sensors_gpio_configs, ARRAY_SIZE(sensors_gpio_configs)); #endif if (machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_uartdm_configs, ARRAY_SIZE(mpq8064_uartdm_configs)); }
void __init apq8064_init_gpiomux(void) { int rc; rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } #ifdef CONFIG_SWITCH_MAX1462X msm_gpiomux_install(apq8064_earjack_configs, ARRAY_SIZE(apq8064_earjack_configs)); #endif #ifndef CONFIG_MMC_MSM_SDC4_SUPPORT msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); #endif if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); } msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); #if defined(CONFIG_ANDROID_IRRC) msm_gpiomux_install(apq8064_irrc_tx_configs, ARRAY_SIZE(apq8064_irrc_tx_configs)); #endif #ifdef CONFIG_SND_SOC_TPA2028D_DUAL_SPEAKER msm_gpiomux_install(apq8064_gsbi7_i2c_8ma_configs, ARRAY_SIZE(apq8064_gsbi7_i2c_8ma_configs)); #endif msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); #if defined(CONFIG_MODEM_SUPPORT) if (machine_is_apq8064_mtp()) { if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_DSDA2) { msm_gpiomux_install(amdm_configs, ARRAY_SIZE(amdm_configs)); msm_gpiomux_install(bmdm_configs, ARRAY_SIZE(bmdm_configs)); } else if (SOCINFO_VERSION_MINOR(platform_version) == 1) msm_gpiomux_install(mdm_i2s_configs, ARRAY_SIZE(mdm_i2s_configs)); else msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); } #endif #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(cyts_gpio_alt_config, ARRAY_SIZE(cyts_gpio_alt_config)); } else { msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); } } if (machine_is_apq8064_mtp()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); #if defined (CONFIG_SLIMPORT_ANX7808) msm_gpiomux_install(apq8064_slimport_configs, ARRAY_SIZE(apq8064_slimport_configs)); pr_err("[Slimport] revision = %d gpiomux install complete!\n", lge_get_board_revno()); #endif #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT msm_gpiomux_install(apq8064_sdc2_configs, ARRAY_SIZE(apq8064_sdc2_configs)); #endif #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT msm_gpiomux_install(apq8064_sdc4_configs, ARRAY_SIZE(apq8064_sdc4_configs)); #endif msm_gpiomux_install(apq8064_sdc3_configs_chg, ARRAY_SIZE(apq8064_sdc3_configs_chg)); }
void __init apq8064_init_gpiomux(void) { int rc; int platform_version = socinfo_get_platform_version(); rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT if (system_rev < BOARD_REV08) msm_gpiomux_install(sdc4_interface, ARRAY_SIZE(sdc4_interface)); else msm_gpiomux_install(sdc2_interface, ARRAY_SIZE(sdc2_interface)); #else msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); #endif if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); } msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); /* if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } */ pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); if (machine_is_apq8064_mtp()|| machine_is_JF()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) msm_gpiomux_install(mdm_i2s_configs, ARRAY_SIZE(mdm_i2s_configs)); else msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); } if (machine_is_apq8064_mtp()|| machine_is_JF()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(cyts_gpio_alt_config, ARRAY_SIZE(cyts_gpio_alt_config)); } else { msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); } } #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()|| machine_is_JF()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); msm_gpiomux_install(msm8064_sd_det_config, ARRAY_SIZE(msm8064_sd_det_config)); #if defined(CONFIG_VIDEO_MHL_V2) msm_gpiomux_install(msm8960_mhl_configs, ARRAY_SIZE(msm8960_mhl_configs)); #endif #if defined(CONFIG_LEDS_AN30259A) msm_gpiomux_install(apq8064_leds_configs, ARRAY_SIZE(apq8064_leds_configs)); #endif #ifdef CONFIG_MFD_MAX77693 msm_gpiomux_install(apq8064_muic_config, ARRAY_SIZE(apq8064_muic_config)); #endif }
static int hdmi_core_power(int on, int show) { static struct regulator *reg_8921_lvs7, *reg_8921_s4, *reg_ext_3p3v; static int prev_on; int rc; int pmic_gpio14 = PM8921_GPIO_PM_TO_SYS(14); if (on == prev_on) return 0; /* TBD: PM8921 regulator instead of 8901 */ if (!reg_ext_3p3v) { reg_ext_3p3v = regulator_get(&hdmi_msm_device.dev, "hdmi_mux_vdd"); if (IS_ERR_OR_NULL(reg_ext_3p3v)) { pr_err("could not get reg_ext_3p3v, rc = %ld\n", PTR_ERR(reg_ext_3p3v)); reg_ext_3p3v = NULL; return -ENODEV; } } if (!reg_8921_lvs7) { reg_8921_lvs7 = regulator_get(&hdmi_msm_device.dev, "hdmi_vdda"); if (IS_ERR(reg_8921_lvs7)) { pr_err("could not get reg_8921_lvs7, rc = %ld\n", PTR_ERR(reg_8921_lvs7)); reg_8921_lvs7 = NULL; return -ENODEV; } } if (!reg_8921_s4) { reg_8921_s4 = regulator_get(&hdmi_msm_device.dev, "hdmi_lvl_tsl"); if (IS_ERR(reg_8921_s4)) { pr_err("could not get reg_8921_s4, rc = %ld\n", PTR_ERR(reg_8921_s4)); reg_8921_s4 = NULL; return -ENODEV; } rc = regulator_set_voltage(reg_8921_s4, 1800000, 1800000); if (rc) { pr_err("set_voltage failed for 8921_s4, rc=%d\n", rc); return -EINVAL; } } if (on) { /* * Configure 3P3V_BOOST_EN as GPIO, 8mA drive strength, * pull none, out-high */ rc = regulator_set_optimum_mode(reg_ext_3p3v, 290000); if (rc < 0) { pr_err("set_optimum_mode ext_3p3v failed, rc=%d\n", rc); return -EINVAL; } rc = regulator_enable(reg_ext_3p3v); if (rc) { pr_err("enable reg_ext_3p3v failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_enable(reg_8921_lvs7); if (rc) { pr_err("'%s' regulator enable failed, rc=%d\n", "hdmi_vdda", rc); return rc; } rc = regulator_enable(reg_8921_s4); if (rc) { pr_err("'%s' regulator enable failed, rc=%d\n", "hdmi_lvl_tsl", rc); return rc; } rc = gpio_request(HDMI_DDC_CLK_GPIO, "HDMI_DDC_CLK"); if (rc) { pr_err("'%s'(%d) gpio_request failed, rc=%d\n", "HDMI_DDC_CLK", HDMI_DDC_CLK_GPIO, rc); goto error1; } rc = gpio_request(HDMI_DDC_DATA_GPIO, "HDMI_DDC_DATA"); if (rc) { pr_err("'%s'(%d) gpio_request failed, rc=%d\n", "HDMI_DDC_DATA", HDMI_DDC_DATA_GPIO, rc); goto error2; } rc = gpio_request(HDMI_HPD_GPIO, "HDMI_HPD"); if (rc) { pr_err("'%s'(%d) gpio_request failed, rc=%d\n", "HDMI_HPD", HDMI_HPD_GPIO, rc); goto error3; } if (machine_is_apq8064_liquid()) { rc = gpio_request(pmic_gpio14, "PMIC_HDMI_MUX_SEL"); if (rc) { pr_err("'%s'(%d) gpio_request failed, rc=%d\n", "PMIC_HDMI_MUX_SEL", 14, rc); goto error4; } gpio_set_value_cansleep(pmic_gpio14, 0); } pr_debug("%s(on): success\n", __func__); } else { gpio_free(HDMI_DDC_CLK_GPIO); gpio_free(HDMI_DDC_DATA_GPIO); gpio_free(HDMI_HPD_GPIO); if (machine_is_apq8064_liquid()) { gpio_set_value_cansleep(pmic_gpio14, 1); gpio_free(pmic_gpio14); } rc = regulator_disable(reg_ext_3p3v); if (rc) { pr_err("disable reg_ext_3p3v failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_disable(reg_8921_lvs7); if (rc) { pr_err("disable reg_8921_l23 failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_disable(reg_8921_s4); if (rc) { pr_err("disable reg_8921_s4 failed, rc=%d\n", rc); return -ENODEV; } pr_debug("%s(off): success\n", __func__); } prev_on = on; return 0; error4: gpio_free(HDMI_HPD_GPIO); error3: gpio_free(HDMI_DDC_DATA_GPIO); error2: gpio_free(HDMI_DDC_CLK_GPIO); error1: regulator_disable(reg_8921_lvs7); regulator_disable(reg_8921_s4); return rc; }
void __init apq8064_init_gpiomux(void) { int rc; rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); } msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); msm_gpiomux_install(apq8064_ext_regulator_configs, ARRAY_SIZE(apq8064_ext_regulator_configs)); if (machine_is_apq8064_mtp()) msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); if (machine_is_apq8064_mtp()) msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); }
void __init apq8064_init_gpiomux(void) { int rc; rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { /* OPPO 2012-08-29 chenzj Delete begin for del unused code */ #if 0 msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #endif /* OPPO 2012-08-29 chenzj Delete end */ #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif //OPPO 2012-12-18 huyu del for lcd 5V_enable for dvt #ifndef CONFIG_VENDOR_EDIT msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); #endif //OPPO 2012-12-18 huyu del for lcd 5V_enable for dvt } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); /* OPPO 2012-12-14 yxq added begin for s5k6a3yx's I2C */ if (get_pcb_version() >= 30) { msm_gpiomux_install(apq8064_gsbi7_i2c_config, ARRAY_SIZE(apq8064_gsbi7_i2c_config)); } /* OPPO 2012-12-14 yxq added end */ } msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); msm_gpiomux_install(apq8064_ext_regulator_configs, ARRAY_SIZE(apq8064_ext_regulator_configs)); //OPPO 2012-11-2 huyu add for lcd backlight enabl #ifdef CONFIG_VENDOR_EDIT msm_gpiomux_install(apq8064_backlight_enable, ARRAY_SIZE(apq8064_backlight_enable)); #endif //OPPO 2012-11-2 huyu add for lcd backlight enabl if (machine_is_apq8064_mtp()) msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()) msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); if (machine_is_apq8064_mtp()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); /* OPPO 2012-11-14 DuYuanHua Add to config GPIO_72 as input pin for sim card detection */ #ifdef OPPO_FEATURE_UIM_CARD_HOTSWAP msm_gpiomux_install(apq8064_uim_card_detection_configs, ARRAY_SIZE(apq8064_uim_card_detection_configs)); #endif /* OPPO 2012-11-14 DuYuanHua Add End*/ if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT msm_gpiomux_install(apq8064_sdc2_configs, ARRAY_SIZE(apq8064_sdc2_configs)); #endif #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT msm_gpiomux_install(apq8064_sdc4_configs, ARRAY_SIZE(apq8064_sdc4_configs)); #endif msm_gpiomux_install(apq8064_sdc3_configs, ARRAY_SIZE(apq8064_sdc3_configs)); }
void __init apq8064_init_gpiomux(void) { int rc; int platform_version = socinfo_get_platform_version(); rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } if (!(machine_is_mpq8064_hrd())) msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); msm_gpiomux_install(mpq8064_gsbi5_uart_configs, ARRAY_SIZE(mpq8064_gsbi5_uart_configs)); #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif if (machine_is_fsm8064_ep()) msm_gpiomux_install(fsm8064_ep_gsbi_configs, ARRAY_SIZE(fsm8064_ep_gsbi_configs)); else msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); if (!(machine_is_apq8064_mtp() && (SOCINFO_VERSION_MINOR(platform_version) == 1))) msm_gpiomux_install(apq8064_non_mi2s_gsbi_configs, ARRAY_SIZE(apq8064_non_mi2s_gsbi_configs)); } if (machine_is_apq8064_mtp() && (SOCINFO_VERSION_MINOR(platform_version) == 1)) { msm_gpiomux_install(apq8064_mic_i2s_configs, ARRAY_SIZE(apq8064_mic_i2s_configs)); msm_gpiomux_install(apq8064_spkr_i2s_configs, ARRAY_SIZE(apq8064_spkr_i2s_configs)); msm_gpiomux_install(apq8064_mi2s_configs, ARRAY_SIZE(apq8064_mi2s_configs)); msm_gpiomux_install(apq8064_gsbi1_i2c_2ma_configs, ARRAY_SIZE(apq8064_gsbi1_i2c_2ma_configs)); } else { if (!machine_is_fsm8064_ep()) { msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); } } if (!(machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) && !machine_is_apq8064_mtp()) { msm_gpiomux_install(apq8064_gsbi1_i2c_8ma_configs, ARRAY_SIZE(apq8064_gsbi1_i2c_8ma_configs)); } msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_audio_auxpcm_configs, ARRAY_SIZE(mpq8064_audio_auxpcm_configs)); msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); if (!machine_is_mpq8064_hrd() && !machine_is_fsm8064_ep()) msm_gpiomux_install(apq8064_ext_regulator_configs, ARRAY_SIZE(apq8064_ext_regulator_configs)); if (machine_is_apq8064_mtp()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) msm_gpiomux_install(mdm_i2s_configs, ARRAY_SIZE(mdm_i2s_configs)); else msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); } if (machine_is_apq8064_mtp()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(cyts_gpio_alt_config, ARRAY_SIZE(cyts_gpio_alt_config)); } else { msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); } } #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); if (!machine_is_fsm8064_ep()) msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); if (apq8064_mhl_display_enabled()) msm_gpiomux_install(apq8064_mhl_configs, ARRAY_SIZE(apq8064_mhl_configs)); if (machine_is_mpq8064_cdp()) { msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); msm_gpiomux_install(mpq8064_gsbi6_spi_configs, ARRAY_SIZE(mpq8064_gsbi6_spi_configs)); } #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT msm_gpiomux_install(apq8064_sdc2_configs, ARRAY_SIZE(apq8064_sdc2_configs)); #endif #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT msm_gpiomux_install(apq8064_sdc4_configs, ARRAY_SIZE(apq8064_sdc4_configs)); #endif if (!(machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv())) { msm_gpiomux_install(apq8064_sdc3_configs, ARRAY_SIZE(apq8064_sdc3_configs)); } if (machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_uartdm_configs, ARRAY_SIZE(mpq8064_uartdm_configs)); if (machine_is_fsm8064_ep()) { msm_gpiomux_install(fsm8064_ep_boot_configs, ARRAY_SIZE(fsm8064_ep_boot_configs)); msm_gpiomux_install(fsm8064_ep_backup_configs, ARRAY_SIZE(fsm8064_ep_backup_configs)); msm_gpiomux_install(fsm8064_ep_uim_configs, ARRAY_SIZE(fsm8064_ep_uim_configs)); msm_gpiomux_install(fsm8064_ep_sync_configs, ARRAY_SIZE(fsm8064_ep_sync_configs)); msm_gpiomux_install(fsm8064_ep_led_configs, ARRAY_SIZE(fsm8064_ep_led_configs)); } }
void __init apq8064_init_gpiomux(void) { int rc; int platform_version = socinfo_get_platform_version(); #ifdef CONFIG_MACH_APQ8064_ALTEV hw_rev_type lge_bd_rev = HW_REV_EVB1;// #endif rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } #ifdef CONFIG_SWITCH_MAX1462X msm_gpiomux_install(apq8064_earjack_configs, ARRAY_SIZE(apq8064_earjack_configs)); #endif msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); #if !defined(CONFIG_MACH_LGE) if (!(machine_is_apq8064_mtp() && (SOCINFO_VERSION_MINOR(platform_version) == 1))) msm_gpiomux_install(apq8064_non_mi2s_gsbi_configs, ARRAY_SIZE(apq8064_non_mi2s_gsbi_configs)); #endif } if (machine_is_apq8064_mtp() && (SOCINFO_VERSION_MINOR(platform_version) == 1)) { msm_gpiomux_install(apq8064_mic_i2s_configs, ARRAY_SIZE(apq8064_mic_i2s_configs)); msm_gpiomux_install(apq8064_spkr_i2s_configs, ARRAY_SIZE(apq8064_spkr_i2s_configs)); msm_gpiomux_install(apq8064_mi2s_configs, ARRAY_SIZE(apq8064_mi2s_configs)); msm_gpiomux_install(apq8064_gsbi1_i2c_2ma_configs, ARRAY_SIZE(apq8064_gsbi1_i2c_2ma_configs)); } else { msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); msm_gpiomux_install(apq8064_gsbi1_i2c_8ma_configs, ARRAY_SIZE(apq8064_gsbi1_i2c_8ma_configs)); } #if defined(CONFIG_LGE_IRRC) msm_gpiomux_install(apq8064_irrc_configs, ARRAY_SIZE(apq8064_irrc_configs)); pr_debug("[IRRC] gpiomux_install"); #endif #if defined(CONFIG_ANDROID_SW_IRRC) msm_gpiomux_install(apq8064_irrc_tx_configs, ARRAY_SIZE(apq8064_irrc_tx_configs)); pr_debug("[SW IRRC] gpiomux_install"); #endif #if defined(CONFIG_SND_SOC_TPA2028D_DUAL_SPEAKER) msm_gpiomux_install(apq8064_gsbi7_i2c_8ma_configs, ARRAY_SIZE(apq8064_gsbi7_i2c_8ma_configs)); pr_debug("[DUAL AMP] gpiomux_install"); #endif msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); // kyle00.choi, 20130402, To feature out the modem. [START] #if defined(CONFIG_MODEM_SUPPORT) if (machine_is_apq8064_mtp()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) msm_gpiomux_install(mdm_i2s_configs, ARRAY_SIZE(mdm_i2s_configs)); } #endif // kyle00.choi, 20130402, To feature out the modem. [START] #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(cyts_gpio_alt_config, ARRAY_SIZE(cyts_gpio_alt_config)); } else { msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); } } if (machine_is_apq8064_mtp()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif /* */ #if defined(CONFIG_LGE_NFC) msm_gpiomux_install(apq8064_nfc_configs, ARRAY_SIZE(apq8064_nfc_configs)); #endif /* */ // // //ADD: 0019632: [F200][BT] Bluetooth board bring-up #ifdef CONFIG_LGE_BLUESLEEP msm_gpiomux_install(bt_pcm_configs, ARRAY_SIZE(bt_pcm_configs)); msm_gpiomux_install(mpq8064_uartdm_configs, ARRAY_SIZE(mpq8064_uartdm_configs)); /* msm_gpiomux_install(gsbi6_uart_configs, ARRAY_SIZE(gsbi6_uart_configs)); */ msm_gpiomux_install(msm8960_bt_host_wakeup_configs, ARRAY_SIZE(msm8960_bt_host_wakeup_configs)); msm_gpiomux_install(msm8960_bt_wakeup_configs, ARRAY_SIZE(msm8960_bt_wakeup_configs)); #endif // // if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); // // #if defined (CONFIG_SLIMPORT_ANX7808) msm_gpiomux_install(apq8064_slimport_configs, ARRAY_SIZE(apq8064_slimport_configs)); pr_err("[Slimport] revision = %d gpiomux install complete!\n", lge_get_board_revno()); #endif // // #if !defined (CONFIG_MACH_LGE) if (apq8064_mhl_display_enabled()) msm_gpiomux_install(apq8064_mhl_configs, ARRAY_SIZE(apq8064_mhl_configs)); #endif if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT msm_gpiomux_install(apq8064_sdc2_configs, ARRAY_SIZE(apq8064_sdc2_configs)); #else msm_gpiomux_install(apq8064_sdc2_not_configs, ARRAY_SIZE(apq8064_sdc2_not_configs)); #endif #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT msm_gpiomux_install(apq8064_sdc4_configs, ARRAY_SIZE(apq8064_sdc4_configs)); #endif msm_gpiomux_install(apq8064_sdc3_configs_chg, ARRAY_SIZE(apq8064_sdc3_configs_chg)); #if defined(CONFIG_BATTERY_MAX17043) || defined(CONFIG_BATTERY_MAX17047) || defined(CONFIG_BATTERY_MAX17048) msm_gpiomux_install(apq8064_fuel_gauge_configs, ARRAY_SIZE(apq8064_fuel_gauge_configs)); #endif #if defined(CONFIG_BQ24262_CHARGER) msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #endif // }
void __init apq8064_init_gpiomux(void) { int rc; int platform_version = socinfo_get_platform_version(); rc = msm_gpiomux_init(NR_GPIO_IRQS); if (rc) { pr_err(KERN_ERR "msm_gpiomux_init failed %d\n", rc); return; } msm_gpiomux_install(wcnss_5wire_interface, ARRAY_SIZE(wcnss_5wire_interface)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { #ifndef CONFIG_MACH_APQ8064_FIND5 msm_gpiomux_install(mpq8064_gsbi5_i2c_configs, ARRAY_SIZE(mpq8064_gsbi5_i2c_configs)); #endif #ifdef CONFIG_MSM_VCAP msm_gpiomux_install(vcap_configs, ARRAY_SIZE(vcap_configs)); #endif #ifndef CONFIG_MACH_APQ8064_FIND5 msm_gpiomux_install(sx150x_int_configs, ARRAY_SIZE(sx150x_int_configs)); #endif } else { #if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE) msm_gpiomux_install(apq8064_ethernet_configs, ARRAY_SIZE(apq8064_ethernet_configs)); #endif msm_gpiomux_install(apq8064_gsbi_configs, ARRAY_SIZE(apq8064_gsbi_configs)); #ifdef CONFIG_MACH_APQ8064_FIND5 if (get_pcb_version() >= PCB_VERSION_DVT) { msm_gpiomux_install(apq8064_gsbi7_i2c_config, ARRAY_SIZE(apq8064_gsbi7_i2c_config)); } #endif } msm_gpiomux_install(apq8064_slimbus_config, ARRAY_SIZE(apq8064_slimbus_config)); msm_gpiomux_install(apq8064_audio_codec_configs, ARRAY_SIZE(apq8064_audio_codec_configs)); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) { msm_gpiomux_install(mpq8064_spkr_i2s_config, ARRAY_SIZE(mpq8064_spkr_i2s_config)); } pr_debug("%s(): audio-auxpcm: Include GPIO configs" " as audio is not the primary user" " for these GPIO Pins\n", __func__); if (machine_is_mpq8064_cdp() || machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_mi2s_configs, ARRAY_SIZE(mpq8064_mi2s_configs)); msm_gpiomux_install(apq8064_ext_regulator_configs, ARRAY_SIZE(apq8064_ext_regulator_configs)); #ifdef CONFIG_MACH_APQ8064_FIND5 msm_gpiomux_install(apq8064_backlight_enable, ARRAY_SIZE(apq8064_backlight_enable)); #endif if (machine_is_apq8064_mtp()) { if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_DSDA2) { msm_gpiomux_install(amdm_configs, ARRAY_SIZE(amdm_configs)); msm_gpiomux_install(bmdm_configs, ARRAY_SIZE(bmdm_configs)); } else if (socinfo_get_platform_subtype() == PLATFORM_SUBTYPE_SGLTE2) { msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); msm_gpiomux_install(sglte2_qsc_configs, ARRAY_SIZE(sglte2_qsc_configs)); /* GSBI4 UART GPIOs for Primary IPC */ msm_gpiomux_install(apq8064_uartdm_gsbi4_configs, ARRAY_SIZE(apq8064_uartdm_gsbi4_configs)); } else if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(mdm_i2s_configs, ARRAY_SIZE(mdm_i2s_configs)); } else { msm_gpiomux_install(mdm_configs, ARRAY_SIZE(mdm_configs)); } } if (machine_is_apq8064_mtp()) { if (SOCINFO_VERSION_MINOR(platform_version) == 1) { msm_gpiomux_install(cyts_gpio_alt_config, ARRAY_SIZE(cyts_gpio_alt_config)); } else { msm_gpiomux_install(cyts_gpio_configs, ARRAY_SIZE(cyts_gpio_configs)); } } #ifdef CONFIG_USB_EHCI_MSM_HSIC if (machine_is_apq8064_mtp()) msm_gpiomux_install(apq8064_hsic_configs, ARRAY_SIZE(apq8064_hsic_configs)); #endif if (machine_is_apq8064_cdp() || machine_is_apq8064_liquid()) msm_gpiomux_install(apq8064_mxt_configs, ARRAY_SIZE(apq8064_mxt_configs)); msm_gpiomux_install(apq8064_hdmi_configs, ARRAY_SIZE(apq8064_hdmi_configs)); /* OPPO 2012-11-14 DuYuanHua Add to config GPIO_72 as input pin for sim card detection */ #ifdef OPPO_FEATURE_UIM_CARD_HOTSWAP msm_gpiomux_install(apq8064_uim_card_detection_configs, ARRAY_SIZE(apq8064_uim_card_detection_configs)); #endif /* OPPO 2012-11-14 DuYuanHua Add End*/ if (machine_is_mpq8064_cdp()) msm_gpiomux_install(mpq8064_ir_configs, ARRAY_SIZE(mpq8064_ir_configs)); #ifdef CONFIG_MMC_MSM_SDC2_SUPPORT msm_gpiomux_install(apq8064_sdc2_configs, ARRAY_SIZE(apq8064_sdc2_configs)); #endif #ifdef CONFIG_MMC_MSM_SDC4_SUPPORT msm_gpiomux_install(apq8064_sdc4_configs, ARRAY_SIZE(apq8064_sdc4_configs)); #endif msm_gpiomux_install(apq8064_sdc3_configs, ARRAY_SIZE(apq8064_sdc3_configs)); if (machine_is_mpq8064_hrd() || machine_is_mpq8064_dtv()) msm_gpiomux_install(mpq8064_uartdm_configs, ARRAY_SIZE(mpq8064_uartdm_configs)); }
static int hdmi_gpio_config(int on) { int rc = 0; static int prev_on; int pmic_gpio14 = PM8921_GPIO_PM_TO_SYS(14); if (on == prev_on) return 0; if (on) { rc = gpio_request(HDMI_DDC_CLK_GPIO, "HDMI_DDC_CLK"); if (rc) { pr_err("'%s'(%d) gpio_request failed, rc=%d\n", "HDMI_DDC_CLK", HDMI_DDC_CLK_GPIO, rc); goto error1; } rc = gpio_request(HDMI_DDC_DATA_GPIO, "HDMI_DDC_DATA"); if (rc) { pr_err("'%s'(%d) gpio_request failed, rc=%d\n", "HDMI_DDC_DATA", HDMI_DDC_DATA_GPIO, rc); goto error2; } rc = gpio_request(HDMI_HPD_GPIO, "HDMI_HPD"); if (rc) { pr_err("'%s'(%d) gpio_request failed, rc=%d\n", "HDMI_HPD", HDMI_HPD_GPIO, rc); goto error3; } if (machine_is_apq8064_liquid()) { rc = gpio_request(pmic_gpio14, "PMIC_HDMI_MUX_SEL"); if (rc) { pr_err("'%s'(%d) gpio_request failed, rc=%d\n", "PMIC_HDMI_MUX_SEL", 14, rc); goto error4; } gpio_set_value_cansleep(pmic_gpio14, 0); } pr_debug("%s(on): success\n", __func__); } else { gpio_free(HDMI_DDC_CLK_GPIO); gpio_free(HDMI_DDC_DATA_GPIO); gpio_free(HDMI_HPD_GPIO); if (machine_is_apq8064_liquid()) { gpio_set_value_cansleep(pmic_gpio14, 1); gpio_free(pmic_gpio14); } pr_debug("%s(off): success\n", __func__); } prev_on = on; return 0; error4: gpio_free(HDMI_HPD_GPIO); error3: gpio_free(HDMI_DDC_DATA_GPIO); error2: gpio_free(HDMI_DDC_CLK_GPIO); error1: return rc; }
/* OPPO 2013-07-4 Neal Modify begin for LCD */ int mipi_dsi_panel_power(int on) { /* OPPO 2012-08-31 zhengzk Modify begin for LCD */ static struct regulator *reg_lvs7, *reg_l2, *reg_l11, *reg_ext_3p3v; static int gpio36, gpio25, mpp3; #ifdef CONFIG_VENDOR_EDIT static struct regulator *reg_l22; #else static int gpio26; #endif /* OPPO 2013-07-4 Neal Modify end*/ int rc; pr_debug("%s: on=%d\n", __func__, on); if (!dsi_power_on) { reg_lvs7 = regulator_get(&msm_mipi_dsi1_device.dev, "dsi1_vddio"); if (IS_ERR_OR_NULL(reg_lvs7)) { pr_err("could not get 8921_lvs7, rc = %ld\n", PTR_ERR(reg_lvs7)); return -ENODEV; } reg_l2 = regulator_get(&msm_mipi_dsi1_device.dev, "dsi1_pll_vdda"); if (IS_ERR_OR_NULL(reg_l2)) { pr_err("could not get 8921_l2, rc = %ld\n", PTR_ERR(reg_l2)); return -ENODEV; } rc = regulator_set_voltage(reg_l2, 1200000, 1200000); if (rc) { pr_err("set_voltage l2 failed, rc=%d\n", rc); return -EINVAL; } reg_l11 = regulator_get(&msm_mipi_dsi1_device.dev, "dsi1_avdd"); if (IS_ERR(reg_l11)) { pr_err("could not get 8921_l11, rc = %ld\n", PTR_ERR(reg_l11)); return -ENODEV; } /* OPPO 2012-08-31 zhengzk Modify begin for LCD */ #ifndef CONFIG_VENDOR_EDIT rc = regulator_set_voltage(reg_l11, 3000000, 3000000); #else rc = regulator_set_voltage(reg_l11, 3100000, 3100000); #endif /* OPPO 2012-08-31 zhengzk Modify end */ if (rc) { pr_err("set_voltage l11 failed, rc=%d\n", rc); return -EINVAL; } /* OPPO 2012-08-31 zhengzk Add begin for LCD */ #ifdef CONFIG_VENDOR_EDIT reg_l22 = regulator_get(NULL, "8921_l22"); if (IS_ERR(reg_l22)) { pr_err("could not get 8921_l22, rc = %ld\n", PTR_ERR(reg_l22)); return -ENODEV; } rc = regulator_set_voltage(reg_l22, 1800000, 1800000); if (rc) { pr_err("set_voltage l22 failed, rc=%d\n", rc); return -EINVAL; } #endif /* OPPO 2012-08-31 zhengzk Modify end */ if (machine_is_apq8064_liquid()) { reg_ext_3p3v = regulator_get(&msm_mipi_dsi1_device.dev, "dsi1_vccs_3p3v"); if (IS_ERR_OR_NULL(reg_ext_3p3v)) { pr_err("could not get reg_ext_3p3v, rc = %ld\n", PTR_ERR(reg_ext_3p3v)); reg_ext_3p3v = NULL; return -ENODEV; } mpp3 = PM8921_MPP_PM_TO_SYS(3); rc = gpio_request(mpp3, "backlight_en"); if (rc) { pr_err("request mpp3 failed, rc=%d\n", rc); return -ENODEV; } } gpio25 = PM8921_GPIO_PM_TO_SYS(25); rc = gpio_request(gpio25, "disp_rst_n"); if (rc) { pr_err("request gpio 25 failed, rc=%d\n", rc); return -ENODEV; } #ifndef CONFIG_VENDOR_EDIT gpio26 = PM8921_GPIO_PM_TO_SYS(26); rc = gpio_request(gpio26, "pwm_backlight_ctrl"); if (rc) { pr_err("request gpio 26 failed, rc=%d\n", rc); return -ENODEV; } #endif gpio36 = PM8921_GPIO_PM_TO_SYS(36); /* lcd1_pwr_en_n */ rc = gpio_request(gpio36, "lcd1_pwr_en_n"); if (rc) { pr_err("request gpio 36 failed, rc=%d\n", rc); return -ENODEV; } #ifdef CONFIG_VENDOR_EDIT rc = gpio_request(LCD_5V_EN_DVT, "lcd_5v_en"); if (rc) { pr_err("request gpio 86 failed, rc=%d\n", rc); return -ENODEV; } #endif dsi_power_on = true; } if (on) { rc = regulator_enable(reg_lvs7); if (rc) { pr_err("enable lvs7 failed, rc=%d\n", rc); return -ENODEV; } /* OPPO 2012-08-31 zhengzk Add begin for LCD */ #ifdef CONFIG_VENDOR_EDIT rc = regulator_enable(reg_l22); //1.8v if (rc) { pr_err("enable l22 failed, rc=%d\n", rc); return -ENODEV; } mdelay(5); /* OPPO 2012-08-31 zhengzk Modify end */ rc = gpio_direction_output(LCD_5V_EN_DVT, 1);//5v if (rc) { pr_err("%s: unable to enable LCD_5V_EN!!!!!!!!!!!!\n", __func__); return -ENODEV; } mdelay(5); gpio_set_value_cansleep(gpio36, 0); gpio_set_value_cansleep(gpio25, 1); mdelay(10); #endif rc = regulator_set_optimum_mode(reg_l11, 110000); if (rc < 0) { pr_err("set_optimum_mode l11 failed, rc=%d\n", rc); return -EINVAL; } rc = regulator_enable(reg_l11); if (rc) { pr_err("enable l11 failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_set_optimum_mode(reg_l2, 100000); if (rc < 0) { pr_err("set_optimum_mode l2 failed, rc=%d\n", rc); return -EINVAL; } rc = regulator_enable(reg_l2); if (rc) { pr_err("enable l2 failed, rc=%d\n", rc); return -ENODEV; } if (machine_is_apq8064_liquid()) { rc = regulator_enable(reg_ext_3p3v); if (rc) { pr_err("enable reg_ext_3p3v failed, rc=%d\n", rc); return -ENODEV; } gpio_set_value_cansleep(mpp3, 1); } gpio_set_value_cansleep(gpio36, 0); gpio_set_value_cansleep(gpio25, 1); #ifndef CONFIG_VENDOR_EDIT if (socinfo_get_pmic_model() == PMIC_MODEL_PM8917) gpio_set_value_cansleep(gpio26, 1); #endif } else { #ifndef CONFIG_VENDOR_EDIT if (socinfo_get_pmic_model() == PMIC_MODEL_PM8917) gpio_set_value_cansleep(gpio26, 0); #endif gpio_set_value_cansleep(gpio25, 0); gpio_set_value_cansleep(gpio36, 1); if (machine_is_apq8064_liquid()) { gpio_set_value_cansleep(mpp3, 0); rc = regulator_disable(reg_ext_3p3v); if (rc) { pr_err("disable reg_ext_3p3v failed, rc=%d\n", rc); return -ENODEV; } } rc = regulator_disable(reg_l11); if (rc) { pr_err("disable reg_l1 failed, rc=%d\n", rc); return -ENODEV; } #ifdef CONFIG_VENDOR_EDIT rc = gpio_direction_output(LCD_5V_EN_DVT, 0); if (rc) { pr_err("%s: unable to enable LCD_5V_EN!!!!!!!!!!!!\n", __func__); return -ENODEV; } /* OPPO 2012-08-31 zhengzk Add begin for LCD */ mdelay(10); rc = regulator_disable(reg_l22); if (rc) { pr_err("disable reg_l22 failed, rc=%d\n", rc); return -ENODEV; } /* OPPO 2012-08-31 zhengzk Modify end */ #endif rc = regulator_disable(reg_lvs7); if (rc) { pr_err("disable reg_lvs7 failed, rc=%d\n", rc); return -ENODEV; } rc = regulator_disable(reg_l2); if (rc) { pr_err("disable reg_l2 failed, rc=%d\n", rc); return -ENODEV; } } return 0; }