forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.6 KiB
58 lines
1.6 KiB
/* SPDX-License-Identifier: GPL-2.0-only */ |
|
/* |
|
* Copyright (C) 2014 Linaro Ltd |
|
* |
|
* Author: Ulf Hansson <[email protected]> |
|
*/ |
|
#ifndef _MMC_CORE_PWRSEQ_H |
|
#define _MMC_CORE_PWRSEQ_H |
|
|
|
#include <linux/types.h> |
|
|
|
struct mmc_host; |
|
struct device; |
|
struct module; |
|
|
|
struct mmc_pwrseq_ops { |
|
void (*pre_power_on)(struct mmc_host *host); |
|
void (*post_power_on)(struct mmc_host *host); |
|
void (*power_off)(struct mmc_host *host); |
|
void (*reset)(struct mmc_host *host); |
|
}; |
|
|
|
struct mmc_pwrseq { |
|
const struct mmc_pwrseq_ops *ops; |
|
struct device *dev; |
|
struct list_head pwrseq_node; |
|
struct module *owner; |
|
}; |
|
|
|
#ifdef CONFIG_OF |
|
|
|
int mmc_pwrseq_register(struct mmc_pwrseq *pwrseq); |
|
void mmc_pwrseq_unregister(struct mmc_pwrseq *pwrseq); |
|
|
|
int mmc_pwrseq_alloc(struct mmc_host *host); |
|
void mmc_pwrseq_pre_power_on(struct mmc_host *host); |
|
void mmc_pwrseq_post_power_on(struct mmc_host *host); |
|
void mmc_pwrseq_power_off(struct mmc_host *host); |
|
void mmc_pwrseq_reset(struct mmc_host *host); |
|
void mmc_pwrseq_free(struct mmc_host *host); |
|
|
|
#else |
|
|
|
static inline int mmc_pwrseq_register(struct mmc_pwrseq *pwrseq) |
|
{ |
|
return -ENOSYS; |
|
} |
|
static inline void mmc_pwrseq_unregister(struct mmc_pwrseq *pwrseq) {} |
|
static inline int mmc_pwrseq_alloc(struct mmc_host *host) { return 0; } |
|
static inline void mmc_pwrseq_pre_power_on(struct mmc_host *host) {} |
|
static inline void mmc_pwrseq_post_power_on(struct mmc_host *host) {} |
|
static inline void mmc_pwrseq_power_off(struct mmc_host *host) {} |
|
static inline void mmc_pwrseq_reset(struct mmc_host *host) {} |
|
static inline void mmc_pwrseq_free(struct mmc_host *host) {} |
|
|
|
#endif |
|
|
|
#endif
|
|
|