Skip to content

Commit 0c93431

Browse files
committed
Merge tag 'pwrseq-updates-for-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
Pull power sequencing updates from Bartosz Golaszewski: "We added support for another Qualcomm WCN model and a FIXME comment that explains why we still need to keep a GPIO workaround for now despite having merged a set of changes to the PCI code that seemingly fixed the underlying problem: - support a new model in the qcom-wcn pwrseq driver - explain the need to keep the WLAN_EN GPIO workaround for now with a FIXME comment" * tag 'pwrseq-updates-for-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: power: sequencing: qcom-wcn: explain why we need the WLAN_EN GPIO hack power: sequencing: qcom-wcn: add support for the WCN6750 PMU
2 parents 4abae5b + 29da3e8 commit 0c93431

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

drivers/power/sequencing/pwrseq-qcom-wcn.c

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,24 @@ static const struct pwrseq_qcom_wcn_pdata pwrseq_qca6390_of_data = {
272272
.targets = pwrseq_qcom_wcn_targets,
273273
};
274274

275+
static const char *const pwrseq_wcn6750_vregs[] = {
276+
"vddaon",
277+
"vddasd",
278+
"vddpmu",
279+
"vddrfa0p8",
280+
"vddrfa1p2",
281+
"vddrfa1p7",
282+
"vddrfa2p2",
283+
};
284+
285+
static const struct pwrseq_qcom_wcn_pdata pwrseq_wcn6750_of_data = {
286+
.vregs = pwrseq_wcn6750_vregs,
287+
.num_vregs = ARRAY_SIZE(pwrseq_wcn6750_vregs),
288+
.pwup_delay_ms = 50,
289+
.gpio_enable_delay_ms = 5,
290+
.targets = pwrseq_qcom_wcn_targets,
291+
};
292+
275293
static const char *const pwrseq_wcn6855_vregs[] = {
276294
"vddio",
277295
"vddaon",
@@ -378,6 +396,13 @@ static int pwrseq_qcom_wcn_probe(struct platform_device *pdev)
378396
return dev_err_probe(dev, PTR_ERR(ctx->bt_gpio),
379397
"Failed to get the Bluetooth enable GPIO\n");
380398

399+
/*
400+
* FIXME: This should actually be GPIOD_OUT_LOW, but doing so would
401+
* cause the WLAN power to be toggled, resulting in PCIe link down.
402+
* Since the PCIe controller driver is not handling link down currently,
403+
* the device becomes unusable. So we need to keep this workaround until
404+
* the link down handling is implemented in the controller driver.
405+
*/
381406
ctx->wlan_gpio = devm_gpiod_get_optional(dev, "wlan-enable",
382407
GPIOD_ASIS);
383408
if (IS_ERR(ctx->wlan_gpio))
@@ -431,6 +456,10 @@ static const struct of_device_id pwrseq_qcom_wcn_of_match[] = {
431456
.compatible = "qcom,wcn7850-pmu",
432457
.data = &pwrseq_wcn7850_of_data,
433458
},
459+
{
460+
.compatible = "qcom,wcn6750-pmu",
461+
.data = &pwrseq_wcn6750_of_data,
462+
},
434463
{ }
435464
};
436465
MODULE_DEVICE_TABLE(of, pwrseq_qcom_wcn_of_match);

0 commit comments

Comments
 (0)