mmc_fdt_helpers: Parse the optional pwrseq element.
If a sd/emmc node have a pwrseq property parse it and get the corresponding driver. This can later be used to powerup/powerdown the SDIO card or eMMC. Sponsored by: Diablotin Systems Differential Revision: https://reviews.freebsd.org/D30289
This commit is contained in:
parent
5b2a81f58d
commit
b0387990a7
@ -100,6 +100,7 @@ mmc_fdt_parse(device_t dev, phandle_t node, struct mmc_fdt_helper *helper,
|
||||
struct mmc_host *host)
|
||||
{
|
||||
uint32_t bus_width;
|
||||
phandle_t pwrseq_xref;
|
||||
|
||||
if (node <= 0)
|
||||
node = ofw_bus_get_node(dev);
|
||||
@ -181,6 +182,13 @@ mmc_fdt_parse(device_t dev, phandle_t node, struct mmc_fdt_helper *helper,
|
||||
host->caps |= MMC_CAP_SIGNALING_330;
|
||||
#endif
|
||||
|
||||
if (OF_hasprop(node, "mmc-pwrseq")) {
|
||||
if (OF_getencprop(node, "mmc-pwrseq", &pwrseq_xref, sizeof(pwrseq_xref)) == -1) {
|
||||
device_printf(dev, "Cannot get the pwrseq_xref property\n");
|
||||
return (ENXIO);
|
||||
}
|
||||
helper->mmc_pwrseq = OF_device_from_xref(pwrseq_xref);
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
@ -63,6 +63,8 @@ struct mmc_fdt_helper {
|
||||
regulator_t vmmc_supply;
|
||||
regulator_t vqmmc_supply;
|
||||
#endif
|
||||
|
||||
device_t mmc_pwrseq;
|
||||
};
|
||||
|
||||
typedef void (*mmc_fdt_cd_handler)(device_t dev, bool present);
|
||||
|
Loading…
Reference in New Issue
Block a user