Merge series "Enable VBUS current boost on pm8150b platforms" from Bryan O'Donoghue <bryan.odonoghue@linaro.org>:
V3: - Drop the SoC regulator constraints for regulator-min-microamp regulator-max-microamp These will be applied on a per-board basis - Mark Brown V2: The first version of this patch set the current limit to 3 amps as was done in downstream. Mark indicated a preference to set this on a per-system basis instead of blitzing it, as in downstream. Looking at what was upstream versus what was in my working tree I saw that in fact the VBUS boost driver had been upstreamed minus accompanying DTS in pm8150b. So there's no need for a fixes as this driver doesn't appear to be in use. A subsequent patchset will enable the VBUS boost for the two relevant upstream platforms. First thing though, is the driver + dts change. - Use regulator_set_current_limit_regmap/regulator_get_current_limit_regmap with a relevant current-to-bitmap lookup. - Add a parallel DTS entry to the pm8150b It looks like this was submitted upstream but not followed up on I've add regulator-min-microamp/regulator-max-microamp to Wesley's original work. I've made sure to test that its possible to set the current to anything in the range of 500 mA to 3 A and confirmed the output on a scope. Once these two patches are in, I'll send out board enablement for the sm8150-mtp and qrb5165-rb5. https://lore.kernel.org/linux-arm-msm/8687acdb-75e9-5fc5-dd3e-9a19615676b5@linaro.org/T/#t Bryan O'Donoghue (1): regulator: Add a routine to set the current limit for QCOM PMIC VBUS Wesley Cheng (1): arm64: boot: dts: qcom: pm8150b: Add DTS node for PMIC VBUS booster arch/arm64/boot/dts/qcom/pm8150b.dtsi | 6 ++++++ drivers/regulator/qcom_usb_vbus-regulator.c | 12 ++++++++++++ 2 files changed, 18 insertions(+) -- 2.30.1
This commit is contained in:
commit
8c94df1e6f
@ -16,13 +16,21 @@
|
||||
|
||||
#define CMD_OTG 0x40
|
||||
#define OTG_EN BIT(0)
|
||||
#define OTG_CURRENT_LIMIT_CFG 0x52
|
||||
#define OTG_CURRENT_LIMIT_MASK GENMASK(2, 0)
|
||||
#define OTG_CFG 0x53
|
||||
#define OTG_EN_SRC_CFG BIT(1)
|
||||
|
||||
static const unsigned int curr_table[] = {
|
||||
500000, 1000000, 1500000, 2000000, 2500000, 3000000,
|
||||
};
|
||||
|
||||
static const struct regulator_ops qcom_usb_vbus_reg_ops = {
|
||||
.enable = regulator_enable_regmap,
|
||||
.disable = regulator_disable_regmap,
|
||||
.is_enabled = regulator_is_enabled_regmap,
|
||||
.get_current_limit = regulator_get_current_limit_regmap,
|
||||
.set_current_limit = regulator_set_current_limit_regmap,
|
||||
};
|
||||
|
||||
static struct regulator_desc qcom_usb_vbus_rdesc = {
|
||||
@ -30,6 +38,8 @@ static struct regulator_desc qcom_usb_vbus_rdesc = {
|
||||
.ops = &qcom_usb_vbus_reg_ops,
|
||||
.owner = THIS_MODULE,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.curr_table = curr_table,
|
||||
.n_current_limits = ARRAY_SIZE(curr_table),
|
||||
};
|
||||
|
||||
static int qcom_usb_vbus_regulator_probe(struct platform_device *pdev)
|
||||
@ -61,6 +71,8 @@ static int qcom_usb_vbus_regulator_probe(struct platform_device *pdev)
|
||||
|
||||
qcom_usb_vbus_rdesc.enable_reg = base + CMD_OTG;
|
||||
qcom_usb_vbus_rdesc.enable_mask = OTG_EN;
|
||||
qcom_usb_vbus_rdesc.csel_reg = base + OTG_CURRENT_LIMIT_CFG;
|
||||
qcom_usb_vbus_rdesc.csel_mask = OTG_CURRENT_LIMIT_MASK;
|
||||
config.dev = dev;
|
||||
config.init_data = init_data;
|
||||
config.of_node = dev->of_node;
|
||||
|
Loading…
x
Reference in New Issue
Block a user