Home
last modified time | relevance | path

Searched full:pwrseq (Results 1 – 25 of 326) sorted by relevance

12345678910>>...14

/linux-6.12.1/drivers/mmc/core/
Dpwrseq_simple.c23 #include "pwrseq.h"
26 struct mmc_pwrseq pwrseq; member
34 #define to_pwrseq_simple(p) container_of(p, struct mmc_pwrseq_simple, pwrseq)
36 static void mmc_pwrseq_simple_set_gpios_value(struct mmc_pwrseq_simple *pwrseq, in mmc_pwrseq_simple_set_gpios_value() argument
39 struct gpio_descs *reset_gpios = pwrseq->reset_gpios; in mmc_pwrseq_simple_set_gpios_value()
63 struct mmc_pwrseq_simple *pwrseq = to_pwrseq_simple(host->pwrseq); in mmc_pwrseq_simple_pre_power_on() local
65 if (!IS_ERR(pwrseq->ext_clk) && !pwrseq->clk_enabled) { in mmc_pwrseq_simple_pre_power_on()
66 clk_prepare_enable(pwrseq->ext_clk); in mmc_pwrseq_simple_pre_power_on()
67 pwrseq->clk_enabled = true; in mmc_pwrseq_simple_pre_power_on()
70 mmc_pwrseq_simple_set_gpios_value(pwrseq, 1); in mmc_pwrseq_simple_pre_power_on()
[all …]
Dpwrseq.c16 #include "pwrseq.h"
26 np = of_parse_phandle(host->parent->of_node, "mmc-pwrseq", 0); in mmc_pwrseq_alloc()
37 host->pwrseq = p; in mmc_pwrseq_alloc()
46 if (!host->pwrseq) in mmc_pwrseq_alloc()
49 dev_info(host->parent, "allocated mmc-pwrseq\n"); in mmc_pwrseq_alloc()
56 struct mmc_pwrseq *pwrseq = host->pwrseq; in mmc_pwrseq_pre_power_on() local
58 if (pwrseq && pwrseq->ops->pre_power_on) in mmc_pwrseq_pre_power_on()
59 pwrseq->ops->pre_power_on(host); in mmc_pwrseq_pre_power_on()
64 struct mmc_pwrseq *pwrseq = host->pwrseq; in mmc_pwrseq_post_power_on() local
66 if (pwrseq && pwrseq->ops->post_power_on) in mmc_pwrseq_post_power_on()
[all …]
Dpwrseq_sd8787.c25 #include "pwrseq.h"
28 struct mmc_pwrseq pwrseq; member
33 #define to_pwrseq_sd8787(p) container_of(p, struct mmc_pwrseq_sd8787, pwrseq)
37 struct mmc_pwrseq_sd8787 *pwrseq = to_pwrseq_sd8787(host->pwrseq); in mmc_pwrseq_sd8787_pre_power_on() local
39 gpiod_set_value_cansleep(pwrseq->reset_gpio, 1); in mmc_pwrseq_sd8787_pre_power_on()
42 gpiod_set_value_cansleep(pwrseq->pwrdn_gpio, 1); in mmc_pwrseq_sd8787_pre_power_on()
47 struct mmc_pwrseq_sd8787 *pwrseq = to_pwrseq_sd8787(host->pwrseq); in mmc_pwrseq_sd8787_power_off() local
49 gpiod_set_value_cansleep(pwrseq->pwrdn_gpio, 0); in mmc_pwrseq_sd8787_power_off()
50 gpiod_set_value_cansleep(pwrseq->reset_gpio, 0); in mmc_pwrseq_sd8787_power_off()
55 struct mmc_pwrseq_sd8787 *pwrseq = to_pwrseq_sd8787(host->pwrseq); in mmc_pwrseq_wilc1000_pre_power_on() local
[all …]
Dpwrseq_emmc.c22 #include "pwrseq.h"
25 struct mmc_pwrseq pwrseq; member
30 #define to_pwrseq_emmc(p) container_of(p, struct mmc_pwrseq_emmc, pwrseq)
34 struct mmc_pwrseq_emmc *pwrseq = to_pwrseq_emmc(host->pwrseq); in mmc_pwrseq_emmc_reset() local
36 gpiod_set_value_cansleep(pwrseq->reset_gpio, 1); in mmc_pwrseq_emmc_reset()
38 gpiod_set_value_cansleep(pwrseq->reset_gpio, 0); in mmc_pwrseq_emmc_reset()
45 struct mmc_pwrseq_emmc *pwrseq = container_of(this, in mmc_pwrseq_emmc_reset_nb() local
47 gpiod_set_value(pwrseq->reset_gpio, 1); in mmc_pwrseq_emmc_reset_nb()
49 gpiod_set_value(pwrseq->reset_gpio, 0); in mmc_pwrseq_emmc_reset_nb()
61 struct mmc_pwrseq_emmc *pwrseq; in mmc_pwrseq_emmc_probe() local
[all …]
Dpwrseq.h32 int mmc_pwrseq_register(struct mmc_pwrseq *pwrseq);
33 void mmc_pwrseq_unregister(struct mmc_pwrseq *pwrseq);
44 static inline int mmc_pwrseq_register(struct mmc_pwrseq *pwrseq) in mmc_pwrseq_register() argument
48 static inline void mmc_pwrseq_unregister(struct mmc_pwrseq *pwrseq) {} in mmc_pwrseq_unregister() argument
/linux-6.12.1/drivers/power/sequencing/
Dcore.c20 #include <linux/pwrseq/consumer.h>
21 #include <linux/pwrseq/provider.h>
45 * Descriptor - a handle passed by the pwrseq core to every consumer that
59 * Protects the device list on the pwrseq bus from concurrent modifications
249 static struct pwrseq_device *pwrseq_device_get(struct pwrseq_device *pwrseq) in pwrseq_device_get() argument
251 get_device(&pwrseq->dev); in pwrseq_device_get()
253 return pwrseq; in pwrseq_device_get()
256 static void pwrseq_device_put(struct pwrseq_device *pwrseq) in pwrseq_device_put() argument
258 put_device(&pwrseq->dev); in pwrseq_device_put()
264 * @pwrseq: Reference to the power sequencing device.
[all …]
Dpwrseq-qcom-wcn.c16 #include <linux/pwrseq/provider.h>
28 struct pwrseq_device *pwrseq; member
53 static int pwrseq_qcom_wcn_vregs_enable(struct pwrseq_device *pwrseq) in pwrseq_qcom_wcn_vregs_enable() argument
55 struct pwrseq_qcom_wcn_ctx *ctx = pwrseq_device_get_drvdata(pwrseq); in pwrseq_qcom_wcn_vregs_enable()
60 static int pwrseq_qcom_wcn_vregs_disable(struct pwrseq_device *pwrseq) in pwrseq_qcom_wcn_vregs_disable() argument
62 struct pwrseq_qcom_wcn_ctx *ctx = pwrseq_device_get_drvdata(pwrseq); in pwrseq_qcom_wcn_vregs_disable()
73 static int pwrseq_qcom_wcn_clk_enable(struct pwrseq_device *pwrseq) in pwrseq_qcom_wcn_clk_enable() argument
75 struct pwrseq_qcom_wcn_ctx *ctx = pwrseq_device_get_drvdata(pwrseq); in pwrseq_qcom_wcn_clk_enable()
80 static int pwrseq_qcom_wcn_clk_disable(struct pwrseq_device *pwrseq) in pwrseq_qcom_wcn_clk_disable() argument
82 struct pwrseq_qcom_wcn_ctx *ctx = pwrseq_device_get_drvdata(pwrseq); in pwrseq_qcom_wcn_clk_disable()
[all …]
DMakefile3 obj-$(CONFIG_POWER_SEQUENCING) += pwrseq-core.o
4 pwrseq-core-y := core.o
6 obj-$(CONFIG_POWER_SEQUENCING_QCOM_WCN) += pwrseq-qcom-wcn.o
/linux-6.12.1/drivers/pci/pwrctl/
Dpci-pwrctl-pwrseq.c12 #include <linux/pwrseq/consumer.h>
18 struct pwrseq_desc *pwrseq; member
57 struct pwrseq_desc *pwrseq = data; in devm_pci_pwrctl_pwrseq_power_off() local
59 pwrseq_power_off(pwrseq); in devm_pci_pwrctl_pwrseq_power_off()
83 data->pwrseq = devm_pwrseq_get(dev, pdata->target); in pci_pwrctl_pwrseq_probe()
84 if (IS_ERR(data->pwrseq)) in pci_pwrctl_pwrseq_probe()
85 return dev_err_probe(dev, PTR_ERR(data->pwrseq), in pci_pwrctl_pwrseq_probe()
88 ret = pwrseq_power_on(data->pwrseq); in pci_pwrctl_pwrseq_probe()
94 data->pwrseq); in pci_pwrctl_pwrseq_probe()
130 .name = "pci-pwrctl-pwrseq",
/linux-6.12.1/Documentation/devicetree/bindings/mmc/
Dmmc-pwrseq-sd8787.yaml4 $id: http://devicetree.org/schemas/mmc/mmc-pwrseq-sd8787.yaml#
15 - mmc-pwrseq-sd8787
16 - mmc-pwrseq-wilc1000
38 pwrseq {
39 compatible = "mmc-pwrseq-sd8787";
Dmmc-pwrseq-emmc.yaml4 $id: http://devicetree.org/schemas/mmc/mmc-pwrseq-emmc.yaml#
25 const: mmc-pwrseq-emmc
44 pwrseq {
45 compatible = "mmc-pwrseq-emmc";
Dmmc-pwrseq-simple.yaml4 $id: http://devicetree.org/schemas/mmc/mmc-pwrseq-simple.yaml#
19 const: mmc-pwrseq-simple
58 pwrseq {
59 compatible = "mmc-pwrseq-simple";
/linux-6.12.1/Documentation/devicetree/bindings/net/wireless/
Dsilabs,wfx.yaml25 It is recommended to declare a mmc-pwrseq on SDIO host above WFx. Without
26 it, you may encounter issues during reboot. The mmc-pwrseq should be
27 compatible with mmc-pwrseq-simple. Please consult
28 Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.yaml for more
60 For SDIO, the reset gpio should declared using a mmc-pwrseq.
113 compatible = "mmc-pwrseq-simple";
120 mmc-pwrseq = <&wfx_pwrseq>;
/linux-6.12.1/arch/arm64/boot/dts/amlogic/
Dmeson-gxl-s805x-p241.dts46 emmc_pwrseq: emmc-pwrseq {
47 compatible = "mmc-pwrseq-emmc";
103 emmc_pwrseq: emmc-pwrseq {
104 compatible = "mmc-pwrseq-emmc";
115 sdio_pwrseq: sdio-pwrseq {
116 compatible = "mmc-pwrseq-simple";
253 mmc-pwrseq = <&sdio_pwrseq>;
274 mmc-pwrseq = <&emmc_pwrseq>;
Dmeson-gxl-s905x-nexbox-a95x.dts66 emmc_pwrseq: emmc-pwrseq {
67 compatible = "mmc-pwrseq-emmc";
78 sdio_pwrseq: sdio-pwrseq {
79 compatible = "mmc-pwrseq-simple";
171 mmc-pwrseq = <&sdio_pwrseq>;
210 mmc-pwrseq = <&emmc_pwrseq>;
Dmeson-gxl-s905x-p212.dtsi70 emmc_pwrseq: emmc-pwrseq {
71 compatible = "mmc-pwrseq-emmc";
82 sdio_pwrseq: sdio-pwrseq {
83 compatible = "mmc-pwrseq-simple";
132 mmc-pwrseq = <&sdio_pwrseq>;
176 mmc-pwrseq = <&emmc_pwrseq>;
Dmeson-gxl-s905x-hwacom-amazetv.dts66 emmc_pwrseq: emmc-pwrseq {
67 compatible = "mmc-pwrseq-emmc";
78 sdio_pwrseq: sdio-pwrseq {
79 compatible = "mmc-pwrseq-simple";
155 mmc-pwrseq = <&emmc_pwrseq>;
Dmeson-gxbb-p20x.dtsi77 emmc_pwrseq: emmc-pwrseq {
78 compatible = "mmc-pwrseq-emmc";
89 sdio_pwrseq: sdio-pwrseq {
90 compatible = "mmc-pwrseq-simple";
176 mmc-pwrseq = <&sdio_pwrseq>;
223 mmc-pwrseq = <&emmc_pwrseq>;
Dmeson-gxl-s905w-jethome-jethub-j80.dts68 emmc_pwrseq: emmc-pwrseq {
69 compatible = "mmc-pwrseq-emmc";
80 sdio_pwrseq: sdio-pwrseq {
81 compatible = "mmc-pwrseq-simple";
147 mmc-pwrseq = <&sdio_pwrseq>;
186 mmc-pwrseq = <&emmc_pwrseq>;
Dmeson-gxm-rbox-pro.dts82 emmc_pwrseq: emmc-pwrseq {
83 compatible = "mmc-pwrseq-emmc";
94 sdio_pwrseq: sdio-pwrseq {
95 compatible = "mmc-pwrseq-simple";
217 mmc-pwrseq = <&sdio_pwrseq>;
259 mmc-pwrseq = <&emmc_pwrseq>;
/linux-6.12.1/Documentation/driver-api/
Dpwrseq.rst43 A handle passed by the pwrseq core to every consumer that serves as the
70 register with the pwrseq subsystem by calling pwrseq_device_register().
75 The main difference between pwrseq and other linux kernel providers is the
77 provider driver must implement the `match()` callback and pass it to the pwrseq
91 .. kernel-doc:: include/linux/pwrseq/provider.h
/linux-6.12.1/arch/arm/boot/dts/allwinner/
Dsun7i-a20-olinuxino-lime-emmc.dts13 mmc2_pwrseq: pwrseq {
14 compatible = "mmc-pwrseq-emmc";
24 mmc-pwrseq = <&mmc2_pwrseq>;
Dsun7i-a20-olimex-som-evb-emmc.dts17 mmc2_pwrseq: pwrseq {
18 compatible = "mmc-pwrseq-emmc";
25 mmc-pwrseq = <&mmc2_pwrseq>;
Dsun7i-a20-olimex-som204-evb-emmc.dts16 mmc2_pwrseq: pwrseq-1 {
17 compatible = "mmc-pwrseq-emmc";
24 mmc-pwrseq = <&mmc2_pwrseq>;
/linux-6.12.1/arch/arm/boot/dts/broadcom/
Dbcm283x-rpi-wifi-bt.dtsi4 wifi_pwrseq: wifi-pwrseq {
5 compatible = "mmc-pwrseq-simple";
17 mmc-pwrseq = <&wifi_pwrseq>;

12345678910>>...14