From 69a7ad9a03e54863a58cc17a2cbf0e7379f012e5 Mon Sep 17 00:00:00 2001 From: Kavya Nunna Date: Fri, 19 Feb 2021 17:28:20 +0530 Subject: [PATCH] power: smb1351: Remove otg_vreg support for charger In the current deign, it is expected for the charger driver to detect OTG and enable it without the USB driver to explicitly enable it. As this support exists in the driver, remove the OTG regulator configuration. Change-Id: I165b144a2a8be88b493142de3a4a645e07f06253 Signed-off-by: Kavya Nunna --- drivers/power/supply/qcom/smb1351-charger.c | 104 +------------------- 1 file changed, 3 insertions(+), 101 deletions(-) diff --git a/drivers/power/supply/qcom/smb1351-charger.c b/drivers/power/supply/qcom/smb1351-charger.c index ff4aeec39d03..b986330c960c 100644 --- a/drivers/power/supply/qcom/smb1351-charger.c +++ b/drivers/power/supply/qcom/smb1351-charger.c @@ -408,11 +408,6 @@ static char *pm_batt_supplied_to[] = { "bms", }; -struct smb1351_regulator { - struct regulator_desc rdesc; - struct regulator_dev *rdev; -}; - enum chip_version { SMB_UNKNOWN = 0, SMB1350, @@ -480,7 +475,6 @@ struct smb1351_charger { struct power_supply_desc batt_psy_d; struct power_supply *batt_psy; - struct smb1351_regulator otg_vreg; struct mutex irq_complete; struct dentry *debug_root; @@ -828,87 +822,6 @@ static int smb1351_iterm_set(struct smb1351_charger *chip, int iterm_ma) return 0; } -static int smb1351_chg_otg_regulator_enable(struct regulator_dev *rdev) -{ - int rc = 0; - struct smb1351_charger *chip = rdev_get_drvdata(rdev); - - rc = smb1351_masked_write(chip, CMD_CHG_REG, CMD_OTG_EN_BIT, - CMD_OTG_EN_BIT); - if (rc) - pr_err("Couldn't enable OTG mode rc=%d\n", rc); - return rc; -} - -static int smb1351_chg_otg_regulator_disable(struct regulator_dev *rdev) -{ - int rc = 0; - struct smb1351_charger *chip = rdev_get_drvdata(rdev); - - rc = smb1351_masked_write(chip, CMD_CHG_REG, CMD_OTG_EN_BIT, 0); - if (rc) - pr_err("Couldn't disable OTG mode rc=%d\n", rc); - return rc; -} - -static int smb1351_chg_otg_regulator_is_enable(struct regulator_dev *rdev) -{ - int rc = 0; - u8 reg = 0; - struct smb1351_charger *chip = rdev_get_drvdata(rdev); - - rc = smb1351_read_reg(chip, CMD_CHG_REG, ®); - if (rc) { - pr_err("Couldn't read OTG enable bit rc=%d\n", rc); - return rc; - } - - return (reg & CMD_OTG_EN_BIT) ? 1 : 0; -} - -static struct regulator_ops smb1351_chg_otg_reg_ops = { - .enable = smb1351_chg_otg_regulator_enable, - .disable = smb1351_chg_otg_regulator_disable, - .is_enabled = smb1351_chg_otg_regulator_is_enable, -}; - -static int smb1351_regulator_init(struct smb1351_charger *chip) -{ - int rc = 0; - struct regulator_config cfg = {}; - struct regulator_init_data *init_data; - - chip->otg_vreg.rdesc.owner = THIS_MODULE; - chip->otg_vreg.rdesc.type = REGULATOR_VOLTAGE; - chip->otg_vreg.rdesc.ops = &smb1351_chg_otg_reg_ops; - chip->otg_vreg.rdesc.name = - chip->dev->of_node->name; - chip->otg_vreg.rdesc.of_match = - chip->dev->of_node->name; - - init_data = of_get_regulator_init_data(chip->dev, chip->dev->of_node, - &chip->otg_vreg.rdesc); - if (!init_data) { - pr_err("regulator init data is missing\n"); - return -EINVAL; - } - - cfg.dev = chip->dev; - cfg.driver_data = chip; - cfg.init_data = init_data; - cfg.of_node = chip->dev->of_node; - - chip->otg_vreg.rdev = regulator_register( - &chip->otg_vreg.rdesc, &cfg); - if (IS_ERR(chip->otg_vreg.rdev)) { - rc = PTR_ERR(chip->otg_vreg.rdev); - chip->otg_vreg.rdev = NULL; - if (rc != -EPROBE_DEFER) - pr_err("OTG reg failed, rc=%d\n", rc); - } - return rc; -} - static int smb_chip_get_version(struct smb1351_charger *chip) { u8 ver; @@ -2642,16 +2555,10 @@ static int smb1351_main_charger_probe(struct i2c_client *client, dump_regs(chip); - rc = smb1351_regulator_init(chip); - if (rc) { - pr_err("Couldn't initialize smb1351 ragulator rc=%d\n", rc); - goto fail_smb1351_regulator_init; - } - rc = smb1351_hw_init(chip); if (rc) { pr_err("Couldn't initialize hardware rc=%d\n", rc); - goto fail_smb1351_hw_init; + return rc; } rc = smb1351_init_otg(chip); @@ -2663,7 +2570,7 @@ static int smb1351_main_charger_probe(struct i2c_client *client, rc = smb1351_determine_initial_state(chip); if (rc) { pr_err("Couldn't determine initial state rc=%d\n", rc); - goto fail_smb1351_hw_init; + return rc; } /* STAT irq configuration */ @@ -2675,7 +2582,7 @@ static int smb1351_main_charger_probe(struct i2c_client *client, if (rc) { pr_err("Failed STAT irq=%d request rc = %d\n", client->irq, rc); - goto fail_smb1351_hw_init; + return rc; } enable_irq_wake(client->irq); } @@ -2705,11 +2612,6 @@ static int smb1351_main_charger_probe(struct i2c_client *client, smb1351_get_prop_batt_present(chip), smb1351_version_str[chip->version]); return 0; - -fail_smb1351_hw_init: - regulator_unregister(chip->otg_vreg.rdev); -fail_smb1351_regulator_init: - return rc; } static int smb1351_charger_probe(struct i2c_client *client,