mmc_helper
if (sc->mmc_helper.vqmmc_supply == NULL)
err = regulator_set_voltage(sc->mmc_helper.vqmmc_supply, uvolt, uvolt);
if (sc->mmc_helper.vmmc_supply) {
rv = regulator_status(sc->mmc_helper.vmmc_supply, ®_status);
regulator_disable(sc->mmc_helper.vmmc_supply);
if (sc->mmc_helper.vqmmc_supply) {
rv = regulator_status(sc->mmc_helper.vqmmc_supply, ®_status);
regulator_disable(sc->mmc_helper.vqmmc_supply);
if (sc->mmc_helper.mmc_pwrseq)
MMC_PWRSEQ_SET_POWER(sc->mmc_helper.mmc_pwrseq, false);
if (sc->mmc_helper.vmmc_supply) {
rv = regulator_status(sc->mmc_helper.vmmc_supply, ®_status);
regulator_enable(sc->mmc_helper.vmmc_supply);
if (sc->mmc_helper.vqmmc_supply) {
rv = regulator_status(sc->mmc_helper.vqmmc_supply, ®_status);
regulator_enable(sc->mmc_helper.vqmmc_supply);
if (sc->mmc_helper.mmc_pwrseq)
MMC_PWRSEQ_SET_POWER(sc->mmc_helper.mmc_pwrseq, true);
return (mmc_fdt_gpio_get_readonly(&sc->mmc_helper));
struct mmc_helper mmc_helper;
mmc_fdt_parse(dev, 0, &sc->mmc_helper, &sc->aw_host);
mmc_fdt_gpio_setup(dev, 0, &sc->mmc_helper, aw_mmc_helper_cd_handler);
mmc_fdt_gpio_teardown(&sc->mmc_helper);
struct mmc_helper sc_mmc_helper;
(sc->mmc_helper.props & MMC_PROP_BROKEN_CD)) {
mmc_fdt_parse(sc->dev, node, &sc->mmc_helper, &sc->host);
mmc_fdt_set_power(&sc->mmc_helper, ios->power_mode);
struct mmc_helper mmc_helper;
struct mmc_helper *helper = arg;
struct mmc_helper *helper = arg;
cd_setup(struct mmc_helper *helper, phandle_t node)
wp_setup(struct mmc_helper *helper, phandle_t node)
mmc_fdt_gpio_setup(device_t dev, phandle_t node, struct mmc_helper *helper,
mmc_fdt_gpio_teardown(struct mmc_helper *helper)
mmc_fdt_gpio_get_present(struct mmc_helper *helper)
mmc_fdt_gpio_get_readonly(struct mmc_helper *helper)
mmc_fdt_set_power(struct mmc_helper *helper, enum mmc_power_mode power_mode)
mmc_fdt_parse(device_t dev, phandle_t node, struct mmc_helper *helper,
struct mmc_helper mmc_helper;
memset(&mmc_helper, 0, sizeof(mmc_helper));
mmc_parse(dev, &mmc_helper, host);
helper->props = mmc_helper.props;
#define mmc_fdt_helper mmc_helper /* For backwards compatibility */
int mmc_fdt_parse(device_t dev, phandle_t node, struct mmc_helper *helper, struct mmc_host *host);
int mmc_fdt_gpio_setup(device_t dev, phandle_t node, struct mmc_helper *helper, mmc_fdt_cd_handler handler);
void mmc_fdt_gpio_teardown(struct mmc_helper *helper);
bool mmc_fdt_gpio_get_present(struct mmc_helper *helper);
bool mmc_fdt_gpio_get_readonly(struct mmc_helper *helper);
void mmc_fdt_set_power(struct mmc_helper *helper, enum mmc_power_mode power_mode);
mmc_parse(device_t dev, struct mmc_helper *helper, struct mmc_host *host)
int mmc_parse(device_t dev, struct mmc_helper *helper,
struct mmc_helper fdt_helper;
if (mmc_helper.props & MMC_PROP_NON_REMOVABLE) {
sc->wp_inverted = mmc_helper.props & MMC_PROP_WP_INVERTED;
struct mmc_helper mmc_helper;
memset(&mmc_helper, 0, sizeof(mmc_helper));
if (mmc_parse(dev, &mmc_helper, &slot->host) != 0)
mmc_fdt_parse(dev, 0, &mmc_helper, &slot->host);
sc->vmmc_supply = mmc_helper.vmmc_supply;
sc->vqmmc_supply = mmc_helper.vqmmc_supply;
sc->wp_inverted = mmc_helper.props & MMC_PROP_WP_INVERTED;
if (mmc_helper.props & MMC_PROP_NON_REMOVABLE) {
struct mmc_helper mmc_helper;
memset(&mmc_helper, 0, sizeof(mmc_helper));