/linux-4.1.27/drivers/mmc/core/ |
H A D | pwrseq_simple.c | 20 #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 D | pwrseq_emmc.c | 20 #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 D | pwrseq.c | 18 #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 D | Makefile | 11 mmc_core-$(CONFIG_OF) += pwrseq.o pwrseq_simple.o pwrseq_emmc.o
|
H A D | host.c | 33 #include "pwrseq.h"
|
H A D | core.c | 43 #include "pwrseq.h"
|
/linux-4.1.27/drivers/net/wireless/rtlwifi/rtl8192ee/ |
H A D | Makefile | 7 pwrseq.o \
|
H A D | pwrseq.c | 26 #include "pwrseq.h"
|
H A D | hw.c | 41 #include "pwrseq.h"
|
/linux-4.1.27/drivers/net/wireless/rtlwifi/rtl8723ae/ |
H A D | Makefile | 9 pwrseq.o \
|
H A D | pwrseq.c | 27 #include "pwrseq.h"
|
H A D | hw.c | 44 #include "pwrseq.h"
|
/linux-4.1.27/drivers/net/wireless/rtlwifi/rtl8723be/ |
H A D | Makefile | 7 pwrseq.o \
|
H A D | pwrseq.c | 27 #include "pwrseq.h"
|
H A D | hw.c | 44 #include "pwrseq.h"
|
/linux-4.1.27/drivers/net/wireless/rtlwifi/rtl8821ae/ |
H A D | Makefile | 7 pwrseq.o \
|
H A D | pwrseq.c | 27 #include "pwrseq.h"
|
H A D | hw.c | 41 #include "pwrseq.h"
|
/linux-4.1.27/drivers/net/wireless/rtlwifi/rtl8188ee/ |
H A D | Makefile | 7 pwrseq.o \
|
H A D | pwrseq.c | 27 #include "pwrseq.h"
|
H A D | hw.c | 41 #include "pwrseq.h"
|
/linux-4.1.27/drivers/staging/rtl8188eu/ |
H A D | Makefile | 25 hal/pwrseq.o \
|
/linux-4.1.27/drivers/staging/rtl8188eu/hal/ |
H A D | pwrseq.c | 21 #include "pwrseq.h"
|
/linux-4.1.27/drivers/staging/rtl8188eu/include/ |
H A D | rtl8188e_hal.h | 32 #include "pwrseq.h"
|
/linux-4.1.27/include/linux/mmc/ |
H A D | host.h | 204 struct mmc_pwrseq *pwrseq; member in struct:mmc_host
|