Lines Matching +full:vddrfa1p2 +full:- +full:supply
1 // SPDX-License-Identifier: GPL-2.0-only
45 if (!ctx->pdata->gpio_enable_delay_ms) in pwrseq_qcom_wcn_ensure_gpio_delay()
48 diff_jiffies = jiffies - ctx->last_gpio_enable_jf; in pwrseq_qcom_wcn_ensure_gpio_delay()
51 if (diff_msecs < ctx->pdata->gpio_enable_delay_ms) in pwrseq_qcom_wcn_ensure_gpio_delay()
52 msleep(ctx->pdata->gpio_enable_delay_ms - diff_msecs); in pwrseq_qcom_wcn_ensure_gpio_delay()
59 return regulator_bulk_enable(ctx->pdata->num_vregs, ctx->regs); in pwrseq_qcom_wcn_vregs_enable()
66 return regulator_bulk_disable(ctx->pdata->num_vregs, ctx->regs); in pwrseq_qcom_wcn_vregs_disable()
70 .name = "regulators-enable",
79 return clk_prepare_enable(ctx->clk); in pwrseq_qcom_wcn_clk_enable()
86 clk_disable_unprepare(ctx->clk); in pwrseq_qcom_wcn_clk_disable()
92 .name = "clock-enable",
107 if (!ctx->xo_clk_gpio) in pwrseq_qcom_wcn6855_clk_assert()
112 gpiod_set_value_cansleep(ctx->xo_clk_gpio, 1); in pwrseq_qcom_wcn6855_clk_assert()
119 .name = "xo-clk-assert",
135 gpiod_set_value_cansleep(ctx->bt_gpio, 1); in pwrseq_qcom_wcn_bt_enable()
136 ctx->last_gpio_enable_jf = jiffies; in pwrseq_qcom_wcn_bt_enable()
145 gpiod_set_value_cansleep(ctx->bt_gpio, 0); in pwrseq_qcom_wcn_bt_disable()
151 .name = "bluetooth-enable",
158 .name = "wlan-enable",
169 gpiod_set_value_cansleep(ctx->wlan_gpio, 1); in pwrseq_qcom_wcn_wlan_enable()
170 ctx->last_gpio_enable_jf = jiffies; in pwrseq_qcom_wcn_wlan_enable()
179 gpiod_set_value_cansleep(ctx->wlan_gpio, 0); in pwrseq_qcom_wcn_wlan_disable()
185 .name = "wlan-enable",
192 .name = "wlan-enable",
202 if (ctx->pdata->pwup_delay_ms) in pwrseq_qcom_wcn_pwup_delay()
203 msleep(ctx->pdata->pwup_delay_ms); in pwrseq_qcom_wcn_pwup_delay()
212 if (ctx->xo_clk_gpio) { in pwrseq_qcom_wcn6855_xo_clk_deassert()
214 gpiod_set_value_cansleep(ctx->xo_clk_gpio, 0); in pwrseq_qcom_wcn6855_xo_clk_deassert()
280 "vddrfa1p2",
320 "vddrfa1p2",
335 struct device_node *dev_node = dev->of_node; in pwrseq_qcom_wcn_match()
340 * 'vddaon-supply' property and whether it leads us to the right in pwrseq_qcom_wcn_match()
343 if (!of_property_present(dev_node, "vddaon-supply")) in pwrseq_qcom_wcn_match()
347 of_parse_phandle(dev_node, "vddaon-supply", 0); in pwrseq_qcom_wcn_match()
356 if (!reg_node->parent || !reg_node->parent->parent || in pwrseq_qcom_wcn_match()
357 reg_node->parent->parent != ctx->of_node) in pwrseq_qcom_wcn_match()
365 struct device *dev = &pdev->dev; in pwrseq_qcom_wcn_probe()
372 return -ENOMEM; in pwrseq_qcom_wcn_probe()
374 ctx->of_node = dev->of_node; in pwrseq_qcom_wcn_probe()
376 ctx->pdata = of_device_get_match_data(dev); in pwrseq_qcom_wcn_probe()
377 if (!ctx->pdata) in pwrseq_qcom_wcn_probe()
378 return dev_err_probe(dev, -ENODEV, in pwrseq_qcom_wcn_probe()
381 ctx->regs = devm_kcalloc(dev, ctx->pdata->num_vregs, in pwrseq_qcom_wcn_probe()
382 sizeof(*ctx->regs), GFP_KERNEL); in pwrseq_qcom_wcn_probe()
383 if (!ctx->regs) in pwrseq_qcom_wcn_probe()
384 return -ENOMEM; in pwrseq_qcom_wcn_probe()
386 for (i = 0; i < ctx->pdata->num_vregs; i++) in pwrseq_qcom_wcn_probe()
387 ctx->regs[i].supply = ctx->pdata->vregs[i]; in pwrseq_qcom_wcn_probe()
389 ret = devm_regulator_bulk_get(dev, ctx->pdata->num_vregs, ctx->regs); in pwrseq_qcom_wcn_probe()
394 ctx->bt_gpio = devm_gpiod_get_optional(dev, "bt-enable", GPIOD_OUT_LOW); in pwrseq_qcom_wcn_probe()
395 if (IS_ERR(ctx->bt_gpio)) in pwrseq_qcom_wcn_probe()
396 return dev_err_probe(dev, PTR_ERR(ctx->bt_gpio), in pwrseq_qcom_wcn_probe()
406 ctx->wlan_gpio = devm_gpiod_get_optional(dev, "wlan-enable", in pwrseq_qcom_wcn_probe()
408 if (IS_ERR(ctx->wlan_gpio)) in pwrseq_qcom_wcn_probe()
409 return dev_err_probe(dev, PTR_ERR(ctx->wlan_gpio), in pwrseq_qcom_wcn_probe()
412 ctx->xo_clk_gpio = devm_gpiod_get_optional(dev, "xo-clk", in pwrseq_qcom_wcn_probe()
414 if (IS_ERR(ctx->xo_clk_gpio)) in pwrseq_qcom_wcn_probe()
415 return dev_err_probe(dev, PTR_ERR(ctx->xo_clk_gpio), in pwrseq_qcom_wcn_probe()
422 gpiod_direction_output(ctx->wlan_gpio, in pwrseq_qcom_wcn_probe()
423 gpiod_get_value_cansleep(ctx->wlan_gpio)); in pwrseq_qcom_wcn_probe()
425 ctx->clk = devm_clk_get_optional(dev, NULL); in pwrseq_qcom_wcn_probe()
426 if (IS_ERR(ctx->clk)) in pwrseq_qcom_wcn_probe()
427 return dev_err_probe(dev, PTR_ERR(ctx->clk), in pwrseq_qcom_wcn_probe()
436 config.targets = ctx->pdata->targets; in pwrseq_qcom_wcn_probe()
438 ctx->pwrseq = devm_pwrseq_device_register(dev, &config); in pwrseq_qcom_wcn_probe()
439 if (IS_ERR(ctx->pwrseq)) in pwrseq_qcom_wcn_probe()
440 return dev_err_probe(dev, PTR_ERR(ctx->pwrseq), in pwrseq_qcom_wcn_probe()
448 .compatible = "qcom,qca6390-pmu",
452 .compatible = "qcom,wcn6855-pmu",
456 .compatible = "qcom,wcn7850-pmu",
460 .compatible = "qcom,wcn6750-pmu",
469 .name = "pwrseq-qcom_wcn",