Loading arch/arm64/boot/dts/qcom/sxr1130-svr.dtsi +10 −0 Original line number Diff line number Diff line Loading @@ -518,3 +518,13 @@ &cdc_pdm_gpios { status = "disabled"; }; &lcdb_ldo_vreg { regulator-min-microvolt = <5700000>; regulator-max-microvolt = <5700000>; }; &lcdb_ncp_vreg { regulator-min-microvolt = <5700000>; regulator-max-microvolt = <5700000>; }; drivers/misc/qcom-xr-smrtvwr-misc.c +0 −16 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ static int qcom_xr_smrtvwr_probe(struct platform_device *pdev) struct regulator *reg1, *reg2, *reg3; int dp3p3_en_gpio = 142; int wcd_en_gpio = 93; int switch_gpio = 112; int rgb_tck_oe_en_gpio = 108; reg1 = devm_regulator_get(&pdev->dev, "pm660l_l6"); Loading Loading @@ -91,19 +90,6 @@ static int qcom_xr_smrtvwr_probe(struct platform_device *pdev) gpio_set_value(wcd_en_gpio, 1); msleep(20); rc = gpio_request(switch_gpio, "1p8_en_gpio"); if (rc) { pr_err("%s 1p8_switch_gpio request failed\n", __func__); goto gpio_switch_fail; } rc = gpio_direction_output(switch_gpio, 0); if (rc) { pr_err("%s 1p8_switch_gpio direction failed\n", __func__); goto gpio_switch_fail; } gpio_set_value(switch_gpio, 1); msleep(20); rc = gpio_request(rgb_tck_oe_en_gpio, "rgb_tck_oe_en_gpio"); if (rc) { pr_err("%s rgb_tck_oe_en_gpio request failed\n", __func__); Loading @@ -122,8 +108,6 @@ static int qcom_xr_smrtvwr_probe(struct platform_device *pdev) gpio_oe_en_fail: gpio_free(rgb_tck_oe_en_gpio); gpio_switch_fail: gpio_free(switch_gpio); gpiowcd_fail: gpio_free(wcd_en_gpio); gpio3p3_fail: Loading drivers/misc/vxr7200.c +33 −77 Original line number Diff line number Diff line Loading @@ -41,10 +41,8 @@ struct vxr7200 { u32 led_drive_en1; u32 led_drive_en2; u32 display_1v8_en; u32 mipi_sw_1v8_en; u32 mipi_switch_1v8_en; u32 display_res1; u32 selab_gpio; u32 oenab_gpio; bool gpioInit; struct i2c_client *i2c_client; Loading Loading @@ -104,6 +102,7 @@ static int turnGpio(struct vxr7200 *pdata, int gpio, char *name, bool on) goto error; } gpio_set_value(gpio, 1); msleep(20); pr_debug("%s vxr7200 gpio:%d set to high\n", __func__, gpio); } else { ret = gpio_direction_output(gpio, 1); Loading @@ -112,6 +111,7 @@ static int turnGpio(struct vxr7200 *pdata, int gpio, char *name, bool on) goto error; } gpio_set_value(gpio, 0); msleep(20); pr_debug("%s vxr7200 gpio:%d set to low\n", __func__, gpio); } return 0; Loading @@ -128,62 +128,54 @@ static void vxr7200_set_gpios(struct vxr7200 *pdata, bool turnOn) rc = turnGpio(pdata, pdata->vxr_3v3_en, "vxr_3v3_en", turnOn); if (rc) goto gpio1Fail; rc = turnGpio(pdata, pdata->led_5v_en, "led_5v_en", turnOn); rc = turnGpio(pdata, pdata->display_res1, "display_res1", turnOn); if (rc) goto gpio2Fail; rc = turnGpio(pdata, pdata->led_drive_en1, "led_drive_en1", turnOn); rc = turnGpio(pdata, pdata->display_1v8_en, "disp_1v8_en", turnOn); if (rc) goto gpio3Fail; rc = turnGpio(pdata, pdata->led_drive_en2, "led_drive_en2", turnOn); rc = turnGpio(pdata, pdata->mipi_switch_1v8_en, "mipi_switch_1v8_en", turnOn); if (rc) goto gpio4Fail; rc = turnGpio(pdata, pdata->display_1v8_en, "disp_1v8_en", turnOn); rc = turnGpio(pdata, pdata->led_5v_en, "led_5v_en", turnOn); if (rc) goto gpio5Fail; pdata->mipi_sw_1v8_en += 1100; rc = turnGpio(pdata, pdata->mipi_sw_1v8_en, "mipi_sw1v8_en", turnOn); rc = turnGpio(pdata, pdata->led_drive_en1, "led_drive_en1", turnOn); if (rc) goto gpio6Fail; rc = turnGpio(pdata, pdata->display_res1, "display_res1", turnOn); rc = turnGpio(pdata, pdata->led_drive_en2, "led_drive_en2", turnOn); if (rc) goto gpio7Fail; } return; gpio7Fail: gpio_free(pdata->display_res1); gpio_free(pdata->led_drive_en2); gpio6Fail: gpio_free(pdata->mipi_sw_1v8_en); gpio_free(pdata->led_drive_en1); gpio5Fail: gpio_free(pdata->display_1v8_en); gpio_free(pdata->led_5v_en); gpio4Fail: gpio_free(pdata->led_drive_en2); gpio_free(pdata->mipi_switch_1v8_en); gpio3Fail: gpio_free(pdata->led_drive_en1); gpio_free(pdata->display_1v8_en); gpio2Fail: gpio_free(pdata->led_5v_en); gpio_free(pdata->display_res1); gpio1Fail: gpio_free(pdata->vxr_3v3_en); } static void vxr7200_free_gpios(struct vxr7200 *pdata) { if (pdata) { gpio_free(pdata->vxr_3v3_en); gpio_free(pdata->led_5v_en); gpio_free(pdata->led_drive_en1); gpio_free(pdata->led_drive_en2); gpio_free(pdata->display_1v8_en); gpio_free(pdata->mipi_sw_1v8_en); gpio_free(pdata->display_res1); } } static int vxr7200_parse_dt(struct device *dev, struct vxr7200 *pdata) { Loading Loading @@ -225,10 +217,10 @@ static int vxr7200_parse_dt(struct device *dev, rc = -EINVAL; } pdata->mipi_sw_1v8_en = pdata->mipi_switch_1v8_en = of_get_named_gpio(np, "qcom,switch-power-gpio", 0); if (!gpio_is_valid(pdata->mipi_sw_1v8_en)) { pr_err("mipi_sw_1v8_en gpio not specified\n"); if (!gpio_is_valid(pdata->mipi_switch_1v8_en)) { pr_err("mipi_switch_1v8_en gpio not specified\n"); rc = -EINVAL; } Loading @@ -242,39 +234,15 @@ static int vxr7200_parse_dt(struct device *dev, if (!rc) vxr7200_set_gpios(pdata, true); pdata->selab_gpio = of_get_named_gpio(np, "qcom,selab-gpio", 0); if (!gpio_is_valid(pdata->selab_gpio)) { pr_err("selab_gpio gpio not specified\n"); rc = -EINVAL; goto gpio_selab_fail; } else turnGpio(pdata, pdata->selab_gpio, "selab_gpio", 0); pdata->oenab_gpio = of_get_named_gpio(np, "qcom,oenab-gpio", 0); if (!gpio_is_valid(pdata->oenab_gpio)) { pr_err("oenab_gpio gpio not specified\n"); rc = -EINVAL; goto gpio_oenab_fail; } else turnGpio(pdata, pdata->oenab_gpio, "oenab_gpio", 0); if (!pdata->gpioInit) pdata->gpioInit = true; return rc; gpio_oenab_fail: gpio_free(pdata->oenab_gpio); gpio_selab_fail: gpio_free(pdata->selab_gpio); vxr7200_free_gpios(pdata); return rc; } static void vxr7200_display_pwr_enable_vregs(struct vxr7200 *pdata) { int rc = 0; pdata->vddio = devm_regulator_get(pdata->dev, "pm660_l11"); rc = PTR_RET(pdata->vddio); if (rc) { Loading @@ -286,12 +254,8 @@ static void vxr7200_display_pwr_enable_vregs(struct vxr7200 *pdata) pr_err("Load setting failed for vddio %s\n", __func__); goto vddio_fail; } rc = regulator_set_voltage(pdata->vddio, 1800000, 1800000); if (rc) { pr_err("Set voltage(vddio) fail, rc=%d %s\n", rc, __func__); goto vddio_fail; } rc = regulator_enable(pdata->vddio); msleep(20); if (rc) { pr_err("enable failed for vddio, rc=%d %s\n", rc, __func__); goto vddio_fail; Loading @@ -308,16 +272,12 @@ static void vxr7200_display_pwr_enable_vregs(struct vxr7200 *pdata) pr_err("Load Setting failed for lab %s\n", __func__); goto lab_fail; } rc = regulator_set_voltage(pdata->lab, 4600000, 6000000); if (rc) { pr_err("Set voltage(lab) fail, rc=%d %s\n", rc, __func__); goto lab_fail; } rc = regulator_enable(pdata->lab); if (rc) { pr_err("enable failed for lab, rc=%d %s\n", rc, __func__); goto lab_fail; } msleep(20); pdata->ibb = devm_regulator_get(pdata->dev, "lcdb_ncp"); rc = PTR_RET(pdata->ibb); Loading @@ -330,16 +290,12 @@ static void vxr7200_display_pwr_enable_vregs(struct vxr7200 *pdata) pr_err("Load Setting failed for ibb %s\n", __func__); goto ibb_fail; } rc = regulator_set_voltage(pdata->ibb, 4600000, 6000000); if (rc) { pr_err("Set voltage(ibb) fail, rc=%d %s\n", rc, __func__); goto ibb_fail; } rc = regulator_enable(pdata->ibb); if (rc) { pr_err("enable failed for ibb, rc=%d %s\n", rc, __func__); goto ibb_fail; } msleep(20); return; Loading Loading
arch/arm64/boot/dts/qcom/sxr1130-svr.dtsi +10 −0 Original line number Diff line number Diff line Loading @@ -518,3 +518,13 @@ &cdc_pdm_gpios { status = "disabled"; }; &lcdb_ldo_vreg { regulator-min-microvolt = <5700000>; regulator-max-microvolt = <5700000>; }; &lcdb_ncp_vreg { regulator-min-microvolt = <5700000>; regulator-max-microvolt = <5700000>; };
drivers/misc/qcom-xr-smrtvwr-misc.c +0 −16 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ static int qcom_xr_smrtvwr_probe(struct platform_device *pdev) struct regulator *reg1, *reg2, *reg3; int dp3p3_en_gpio = 142; int wcd_en_gpio = 93; int switch_gpio = 112; int rgb_tck_oe_en_gpio = 108; reg1 = devm_regulator_get(&pdev->dev, "pm660l_l6"); Loading Loading @@ -91,19 +90,6 @@ static int qcom_xr_smrtvwr_probe(struct platform_device *pdev) gpio_set_value(wcd_en_gpio, 1); msleep(20); rc = gpio_request(switch_gpio, "1p8_en_gpio"); if (rc) { pr_err("%s 1p8_switch_gpio request failed\n", __func__); goto gpio_switch_fail; } rc = gpio_direction_output(switch_gpio, 0); if (rc) { pr_err("%s 1p8_switch_gpio direction failed\n", __func__); goto gpio_switch_fail; } gpio_set_value(switch_gpio, 1); msleep(20); rc = gpio_request(rgb_tck_oe_en_gpio, "rgb_tck_oe_en_gpio"); if (rc) { pr_err("%s rgb_tck_oe_en_gpio request failed\n", __func__); Loading @@ -122,8 +108,6 @@ static int qcom_xr_smrtvwr_probe(struct platform_device *pdev) gpio_oe_en_fail: gpio_free(rgb_tck_oe_en_gpio); gpio_switch_fail: gpio_free(switch_gpio); gpiowcd_fail: gpio_free(wcd_en_gpio); gpio3p3_fail: Loading
drivers/misc/vxr7200.c +33 −77 Original line number Diff line number Diff line Loading @@ -41,10 +41,8 @@ struct vxr7200 { u32 led_drive_en1; u32 led_drive_en2; u32 display_1v8_en; u32 mipi_sw_1v8_en; u32 mipi_switch_1v8_en; u32 display_res1; u32 selab_gpio; u32 oenab_gpio; bool gpioInit; struct i2c_client *i2c_client; Loading Loading @@ -104,6 +102,7 @@ static int turnGpio(struct vxr7200 *pdata, int gpio, char *name, bool on) goto error; } gpio_set_value(gpio, 1); msleep(20); pr_debug("%s vxr7200 gpio:%d set to high\n", __func__, gpio); } else { ret = gpio_direction_output(gpio, 1); Loading @@ -112,6 +111,7 @@ static int turnGpio(struct vxr7200 *pdata, int gpio, char *name, bool on) goto error; } gpio_set_value(gpio, 0); msleep(20); pr_debug("%s vxr7200 gpio:%d set to low\n", __func__, gpio); } return 0; Loading @@ -128,62 +128,54 @@ static void vxr7200_set_gpios(struct vxr7200 *pdata, bool turnOn) rc = turnGpio(pdata, pdata->vxr_3v3_en, "vxr_3v3_en", turnOn); if (rc) goto gpio1Fail; rc = turnGpio(pdata, pdata->led_5v_en, "led_5v_en", turnOn); rc = turnGpio(pdata, pdata->display_res1, "display_res1", turnOn); if (rc) goto gpio2Fail; rc = turnGpio(pdata, pdata->led_drive_en1, "led_drive_en1", turnOn); rc = turnGpio(pdata, pdata->display_1v8_en, "disp_1v8_en", turnOn); if (rc) goto gpio3Fail; rc = turnGpio(pdata, pdata->led_drive_en2, "led_drive_en2", turnOn); rc = turnGpio(pdata, pdata->mipi_switch_1v8_en, "mipi_switch_1v8_en", turnOn); if (rc) goto gpio4Fail; rc = turnGpio(pdata, pdata->display_1v8_en, "disp_1v8_en", turnOn); rc = turnGpio(pdata, pdata->led_5v_en, "led_5v_en", turnOn); if (rc) goto gpio5Fail; pdata->mipi_sw_1v8_en += 1100; rc = turnGpio(pdata, pdata->mipi_sw_1v8_en, "mipi_sw1v8_en", turnOn); rc = turnGpio(pdata, pdata->led_drive_en1, "led_drive_en1", turnOn); if (rc) goto gpio6Fail; rc = turnGpio(pdata, pdata->display_res1, "display_res1", turnOn); rc = turnGpio(pdata, pdata->led_drive_en2, "led_drive_en2", turnOn); if (rc) goto gpio7Fail; } return; gpio7Fail: gpio_free(pdata->display_res1); gpio_free(pdata->led_drive_en2); gpio6Fail: gpio_free(pdata->mipi_sw_1v8_en); gpio_free(pdata->led_drive_en1); gpio5Fail: gpio_free(pdata->display_1v8_en); gpio_free(pdata->led_5v_en); gpio4Fail: gpio_free(pdata->led_drive_en2); gpio_free(pdata->mipi_switch_1v8_en); gpio3Fail: gpio_free(pdata->led_drive_en1); gpio_free(pdata->display_1v8_en); gpio2Fail: gpio_free(pdata->led_5v_en); gpio_free(pdata->display_res1); gpio1Fail: gpio_free(pdata->vxr_3v3_en); } static void vxr7200_free_gpios(struct vxr7200 *pdata) { if (pdata) { gpio_free(pdata->vxr_3v3_en); gpio_free(pdata->led_5v_en); gpio_free(pdata->led_drive_en1); gpio_free(pdata->led_drive_en2); gpio_free(pdata->display_1v8_en); gpio_free(pdata->mipi_sw_1v8_en); gpio_free(pdata->display_res1); } } static int vxr7200_parse_dt(struct device *dev, struct vxr7200 *pdata) { Loading Loading @@ -225,10 +217,10 @@ static int vxr7200_parse_dt(struct device *dev, rc = -EINVAL; } pdata->mipi_sw_1v8_en = pdata->mipi_switch_1v8_en = of_get_named_gpio(np, "qcom,switch-power-gpio", 0); if (!gpio_is_valid(pdata->mipi_sw_1v8_en)) { pr_err("mipi_sw_1v8_en gpio not specified\n"); if (!gpio_is_valid(pdata->mipi_switch_1v8_en)) { pr_err("mipi_switch_1v8_en gpio not specified\n"); rc = -EINVAL; } Loading @@ -242,39 +234,15 @@ static int vxr7200_parse_dt(struct device *dev, if (!rc) vxr7200_set_gpios(pdata, true); pdata->selab_gpio = of_get_named_gpio(np, "qcom,selab-gpio", 0); if (!gpio_is_valid(pdata->selab_gpio)) { pr_err("selab_gpio gpio not specified\n"); rc = -EINVAL; goto gpio_selab_fail; } else turnGpio(pdata, pdata->selab_gpio, "selab_gpio", 0); pdata->oenab_gpio = of_get_named_gpio(np, "qcom,oenab-gpio", 0); if (!gpio_is_valid(pdata->oenab_gpio)) { pr_err("oenab_gpio gpio not specified\n"); rc = -EINVAL; goto gpio_oenab_fail; } else turnGpio(pdata, pdata->oenab_gpio, "oenab_gpio", 0); if (!pdata->gpioInit) pdata->gpioInit = true; return rc; gpio_oenab_fail: gpio_free(pdata->oenab_gpio); gpio_selab_fail: gpio_free(pdata->selab_gpio); vxr7200_free_gpios(pdata); return rc; } static void vxr7200_display_pwr_enable_vregs(struct vxr7200 *pdata) { int rc = 0; pdata->vddio = devm_regulator_get(pdata->dev, "pm660_l11"); rc = PTR_RET(pdata->vddio); if (rc) { Loading @@ -286,12 +254,8 @@ static void vxr7200_display_pwr_enable_vregs(struct vxr7200 *pdata) pr_err("Load setting failed for vddio %s\n", __func__); goto vddio_fail; } rc = regulator_set_voltage(pdata->vddio, 1800000, 1800000); if (rc) { pr_err("Set voltage(vddio) fail, rc=%d %s\n", rc, __func__); goto vddio_fail; } rc = regulator_enable(pdata->vddio); msleep(20); if (rc) { pr_err("enable failed for vddio, rc=%d %s\n", rc, __func__); goto vddio_fail; Loading @@ -308,16 +272,12 @@ static void vxr7200_display_pwr_enable_vregs(struct vxr7200 *pdata) pr_err("Load Setting failed for lab %s\n", __func__); goto lab_fail; } rc = regulator_set_voltage(pdata->lab, 4600000, 6000000); if (rc) { pr_err("Set voltage(lab) fail, rc=%d %s\n", rc, __func__); goto lab_fail; } rc = regulator_enable(pdata->lab); if (rc) { pr_err("enable failed for lab, rc=%d %s\n", rc, __func__); goto lab_fail; } msleep(20); pdata->ibb = devm_regulator_get(pdata->dev, "lcdb_ncp"); rc = PTR_RET(pdata->ibb); Loading @@ -330,16 +290,12 @@ static void vxr7200_display_pwr_enable_vregs(struct vxr7200 *pdata) pr_err("Load Setting failed for ibb %s\n", __func__); goto ibb_fail; } rc = regulator_set_voltage(pdata->ibb, 4600000, 6000000); if (rc) { pr_err("Set voltage(ibb) fail, rc=%d %s\n", rc, __func__); goto ibb_fail; } rc = regulator_enable(pdata->ibb); if (rc) { pr_err("enable failed for ibb, rc=%d %s\n", rc, __func__); goto ibb_fail; } msleep(20); return; Loading