Searched refs:pwrseq (Results 1 - 25 of 25) sorted by relevance

/linux-4.1.27/drivers/mmc/core/
H A Dpwrseq_simple.c20 #include "pwrseq.h"
23 struct mmc_pwrseq pwrseq; member in struct:mmc_pwrseq_simple
30 static void mmc_pwrseq_simple_set_gpios_value(struct mmc_pwrseq_simple *pwrseq, mmc_pwrseq_simple_set_gpios_value() argument
35 for (i = 0; i < pwrseq->nr_gpios; i++) mmc_pwrseq_simple_set_gpios_value()
36 if (!IS_ERR(pwrseq->reset_gpios[i])) mmc_pwrseq_simple_set_gpios_value()
37 gpiod_set_value_cansleep(pwrseq->reset_gpios[i], value); mmc_pwrseq_simple_set_gpios_value()
42 struct mmc_pwrseq_simple *pwrseq = container_of(host->pwrseq, mmc_pwrseq_simple_pre_power_on() local
43 struct mmc_pwrseq_simple, pwrseq); mmc_pwrseq_simple_pre_power_on()
45 if (!IS_ERR(pwrseq->ext_clk) && !pwrseq->clk_enabled) { mmc_pwrseq_simple_pre_power_on()
46 clk_prepare_enable(pwrseq->ext_clk); mmc_pwrseq_simple_pre_power_on()
47 pwrseq->clk_enabled = true; mmc_pwrseq_simple_pre_power_on()
50 mmc_pwrseq_simple_set_gpios_value(pwrseq, 1); mmc_pwrseq_simple_pre_power_on()
55 struct mmc_pwrseq_simple *pwrseq = container_of(host->pwrseq, mmc_pwrseq_simple_post_power_on() local
56 struct mmc_pwrseq_simple, pwrseq); mmc_pwrseq_simple_post_power_on()
58 mmc_pwrseq_simple_set_gpios_value(pwrseq, 0); mmc_pwrseq_simple_post_power_on()
63 struct mmc_pwrseq_simple *pwrseq = container_of(host->pwrseq, mmc_pwrseq_simple_power_off() local
64 struct mmc_pwrseq_simple, pwrseq); mmc_pwrseq_simple_power_off()
66 mmc_pwrseq_simple_set_gpios_value(pwrseq, 1); mmc_pwrseq_simple_power_off()
68 if (!IS_ERR(pwrseq->ext_clk) && pwrseq->clk_enabled) { mmc_pwrseq_simple_power_off()
69 clk_disable_unprepare(pwrseq->ext_clk); mmc_pwrseq_simple_power_off()
70 pwrseq->clk_enabled = false; mmc_pwrseq_simple_power_off()
76 struct mmc_pwrseq_simple *pwrseq = container_of(host->pwrseq, mmc_pwrseq_simple_free() local
77 struct mmc_pwrseq_simple, pwrseq); mmc_pwrseq_simple_free()
80 for (i = 0; i < pwrseq->nr_gpios; i++) mmc_pwrseq_simple_free()
81 if (!IS_ERR(pwrseq->reset_gpios[i])) mmc_pwrseq_simple_free()
82 gpiod_put(pwrseq->reset_gpios[i]); mmc_pwrseq_simple_free()
84 if (!IS_ERR(pwrseq->ext_clk)) mmc_pwrseq_simple_free()
85 clk_put(pwrseq->ext_clk); mmc_pwrseq_simple_free()
87 kfree(pwrseq); mmc_pwrseq_simple_free()
100 struct mmc_pwrseq_simple *pwrseq; mmc_pwrseq_simple_alloc() local
107 pwrseq = kzalloc(sizeof(struct mmc_pwrseq_simple) + nr_gpios * mmc_pwrseq_simple_alloc()
109 if (!pwrseq) mmc_pwrseq_simple_alloc()
112 pwrseq->ext_clk = clk_get(dev, "ext_clock"); mmc_pwrseq_simple_alloc()
113 if (IS_ERR(pwrseq->ext_clk) && mmc_pwrseq_simple_alloc()
114 PTR_ERR(pwrseq->ext_clk) != -ENOENT) { mmc_pwrseq_simple_alloc()
115 ret = PTR_ERR(pwrseq->ext_clk); mmc_pwrseq_simple_alloc()
120 pwrseq->reset_gpios[i] = gpiod_get_index(dev, "reset", i, mmc_pwrseq_simple_alloc()
122 if (IS_ERR(pwrseq->reset_gpios[i]) && mmc_pwrseq_simple_alloc()
123 PTR_ERR(pwrseq->reset_gpios[i]) != -ENOENT && mmc_pwrseq_simple_alloc()
124 PTR_ERR(pwrseq->reset_gpios[i]) != -ENOSYS) { mmc_pwrseq_simple_alloc()
125 ret = PTR_ERR(pwrseq->reset_gpios[i]); mmc_pwrseq_simple_alloc()
128 gpiod_put(pwrseq->reset_gpios[i]); mmc_pwrseq_simple_alloc()
134 pwrseq->nr_gpios = nr_gpios; mmc_pwrseq_simple_alloc()
135 pwrseq->pwrseq.ops = &mmc_pwrseq_simple_ops; mmc_pwrseq_simple_alloc()
137 return &pwrseq->pwrseq; mmc_pwrseq_simple_alloc()
139 if (!IS_ERR(pwrseq->ext_clk)) mmc_pwrseq_simple_alloc()
140 clk_put(pwrseq->ext_clk); mmc_pwrseq_simple_alloc()
142 kfree(pwrseq); mmc_pwrseq_simple_alloc()
H A Dpwrseq_emmc.c20 #include "pwrseq.h"
23 struct mmc_pwrseq pwrseq; member in struct:mmc_pwrseq_emmc
28 static void __mmc_pwrseq_emmc_reset(struct mmc_pwrseq_emmc *pwrseq) __mmc_pwrseq_emmc_reset() argument
30 gpiod_set_value(pwrseq->reset_gpio, 1); __mmc_pwrseq_emmc_reset()
32 gpiod_set_value(pwrseq->reset_gpio, 0); __mmc_pwrseq_emmc_reset()
38 struct mmc_pwrseq_emmc *pwrseq = container_of(host->pwrseq, mmc_pwrseq_emmc_reset() local
39 struct mmc_pwrseq_emmc, pwrseq); mmc_pwrseq_emmc_reset()
41 __mmc_pwrseq_emmc_reset(pwrseq); mmc_pwrseq_emmc_reset()
46 struct mmc_pwrseq_emmc *pwrseq = container_of(host->pwrseq, mmc_pwrseq_emmc_free() local
47 struct mmc_pwrseq_emmc, pwrseq); mmc_pwrseq_emmc_free()
49 unregister_restart_handler(&pwrseq->reset_nb); mmc_pwrseq_emmc_free()
50 gpiod_put(pwrseq->reset_gpio); mmc_pwrseq_emmc_free()
51 kfree(pwrseq); mmc_pwrseq_emmc_free()
62 struct mmc_pwrseq_emmc *pwrseq = container_of(this, mmc_pwrseq_emmc_reset_nb() local
65 __mmc_pwrseq_emmc_reset(pwrseq); mmc_pwrseq_emmc_reset_nb()
72 struct mmc_pwrseq_emmc *pwrseq; mmc_pwrseq_emmc_alloc() local
75 pwrseq = kzalloc(sizeof(struct mmc_pwrseq_emmc), GFP_KERNEL); mmc_pwrseq_emmc_alloc()
76 if (!pwrseq) mmc_pwrseq_emmc_alloc()
79 pwrseq->reset_gpio = gpiod_get_index(dev, "reset", 0, GPIOD_OUT_LOW); mmc_pwrseq_emmc_alloc()
80 if (IS_ERR(pwrseq->reset_gpio)) { mmc_pwrseq_emmc_alloc()
81 ret = PTR_ERR(pwrseq->reset_gpio); mmc_pwrseq_emmc_alloc()
90 pwrseq->reset_nb.notifier_call = mmc_pwrseq_emmc_reset_nb; mmc_pwrseq_emmc_alloc()
91 pwrseq->reset_nb.priority = 129; mmc_pwrseq_emmc_alloc()
92 register_restart_handler(&pwrseq->reset_nb); mmc_pwrseq_emmc_alloc()
94 pwrseq->pwrseq.ops = &mmc_pwrseq_emmc_ops; mmc_pwrseq_emmc_alloc()
96 return &pwrseq->pwrseq; mmc_pwrseq_emmc_alloc()
98 kfree(pwrseq); mmc_pwrseq_emmc_alloc()
H A Dpwrseq.c18 #include "pwrseq.h"
27 .compatible = "mmc-pwrseq-simple",
30 .compatible = "mmc-pwrseq-emmc",
55 struct mmc_pwrseq *pwrseq; mmc_pwrseq_alloc() local
58 np = of_parse_phandle(host->parent->of_node, "mmc-pwrseq", 0); mmc_pwrseq_alloc()
74 pwrseq = match->alloc(host, &pdev->dev); mmc_pwrseq_alloc()
75 if (IS_ERR(pwrseq)) { mmc_pwrseq_alloc()
76 ret = PTR_ERR(pwrseq); mmc_pwrseq_alloc()
80 host->pwrseq = pwrseq; mmc_pwrseq_alloc()
81 dev_info(host->parent, "allocated mmc-pwrseq\n"); mmc_pwrseq_alloc()
90 struct mmc_pwrseq *pwrseq = host->pwrseq; mmc_pwrseq_pre_power_on() local
92 if (pwrseq && pwrseq->ops && pwrseq->ops->pre_power_on) mmc_pwrseq_pre_power_on()
93 pwrseq->ops->pre_power_on(host); mmc_pwrseq_pre_power_on()
98 struct mmc_pwrseq *pwrseq = host->pwrseq; mmc_pwrseq_post_power_on() local
100 if (pwrseq && pwrseq->ops && pwrseq->ops->post_power_on) mmc_pwrseq_post_power_on()
101 pwrseq->ops->post_power_on(host); mmc_pwrseq_post_power_on()
106 struct mmc_pwrseq *pwrseq = host->pwrseq; mmc_pwrseq_power_off() local
108 if (pwrseq && pwrseq->ops && pwrseq->ops->power_off) mmc_pwrseq_power_off()
109 pwrseq->ops->power_off(host); mmc_pwrseq_power_off()
114 struct mmc_pwrseq *pwrseq = host->pwrseq; mmc_pwrseq_free() local
116 if (pwrseq && pwrseq->ops && pwrseq->ops->free) mmc_pwrseq_free()
117 pwrseq->ops->free(host); mmc_pwrseq_free()
119 host->pwrseq = NULL; mmc_pwrseq_free()
H A DMakefile11 mmc_core-$(CONFIG_OF) += pwrseq.o pwrseq_simple.o pwrseq_emmc.o
H A Dhost.c33 #include "pwrseq.h"
H A Dcore.c43 #include "pwrseq.h"
/linux-4.1.27/drivers/net/wireless/rtlwifi/rtl8192ee/
H A DMakefile7 pwrseq.o \
H A Dpwrseq.c26 #include "pwrseq.h"
H A Dhw.c41 #include "pwrseq.h"
/linux-4.1.27/drivers/net/wireless/rtlwifi/rtl8723ae/
H A DMakefile9 pwrseq.o \
H A Dpwrseq.c27 #include "pwrseq.h"
H A Dhw.c44 #include "pwrseq.h"
/linux-4.1.27/drivers/net/wireless/rtlwifi/rtl8723be/
H A DMakefile7 pwrseq.o \
H A Dpwrseq.c27 #include "pwrseq.h"
H A Dhw.c44 #include "pwrseq.h"
/linux-4.1.27/drivers/net/wireless/rtlwifi/rtl8821ae/
H A DMakefile7 pwrseq.o \
H A Dpwrseq.c27 #include "pwrseq.h"
H A Dhw.c41 #include "pwrseq.h"
/linux-4.1.27/drivers/net/wireless/rtlwifi/rtl8188ee/
H A DMakefile7 pwrseq.o \
H A Dpwrseq.c27 #include "pwrseq.h"
H A Dhw.c41 #include "pwrseq.h"
/linux-4.1.27/drivers/staging/rtl8188eu/
H A DMakefile25 hal/pwrseq.o \
/linux-4.1.27/drivers/staging/rtl8188eu/hal/
H A Dpwrseq.c21 #include "pwrseq.h"
/linux-4.1.27/drivers/staging/rtl8188eu/include/
H A Drtl8188e_hal.h32 #include "pwrseq.h"
/linux-4.1.27/include/linux/mmc/
H A Dhost.h204 struct mmc_pwrseq *pwrseq; member in struct:mmc_host

Completed in 423 milliseconds