mmc.c (6f730459d93985298f13087af24c5313e492146b) mmc.c (05cbeb7c3612da8d4bafa82be05092450a500052)
1/*
2 * Copyright 2008, Freescale Semiconductor, Inc
3 * Andy Fleming
4 *
5 * Based vaguely on the Linux code
6 *
7 * SPDX-License-Identifier: GPL-2.0+
8 */

--- 1594 unchanged lines hidden (view full) ---

1603 if ((cmd.response[0] & 0xff) != 0xaa)
1604 return -EOPNOTSUPP;
1605 else
1606 mmc->version = SD_VERSION_2;
1607
1608 return 0;
1609}
1610
1/*
2 * Copyright 2008, Freescale Semiconductor, Inc
3 * Andy Fleming
4 *
5 * Based vaguely on the Linux code
6 *
7 * SPDX-License-Identifier: GPL-2.0+
8 */

--- 1594 unchanged lines hidden (view full) ---

1603 if ((cmd.response[0] & 0xff) != 0xaa)
1604 return -EOPNOTSUPP;
1605 else
1606 mmc->version = SD_VERSION_2;
1607
1608 return 0;
1609}
1610
1611#ifndef CONFIG_DM_MMC
1611/* board-specific MMC power initializations. */
1612__weak void board_mmc_power_init(void)
1613{
1614}
1612/* board-specific MMC power initializations. */
1613__weak void board_mmc_power_init(void)
1614{
1615}
1616#endif
1615
1616static int mmc_power_init(struct mmc *mmc)
1617{
1617
1618static int mmc_power_init(struct mmc *mmc)
1619{
1618 board_mmc_power_init();
1619
1620#if defined(CONFIG_DM_MMC) && defined(CONFIG_DM_REGULATOR) && \
1621 !defined(CONFIG_SPL_BUILD)
1620#if defined(CONFIG_DM_MMC)
1621#if defined(CONFIG_DM_REGULATOR) && !defined(CONFIG_SPL_BUILD)
1622 struct udevice *vmmc_supply;
1623 int ret;
1624
1625 ret = device_get_supply_regulator(mmc->dev, "vmmc-supply",
1626 &vmmc_supply);
1627 if (ret) {
1628 debug("%s: No vmmc supply\n", mmc->dev->name);
1629 return 0;
1630 }
1631
1632 ret = regulator_set_enable(vmmc_supply, true);
1633 if (ret) {
1634 puts("Error enabling VMMC supply\n");
1635 return ret;
1636 }
1637#endif
1622 struct udevice *vmmc_supply;
1623 int ret;
1624
1625 ret = device_get_supply_regulator(mmc->dev, "vmmc-supply",
1626 &vmmc_supply);
1627 if (ret) {
1628 debug("%s: No vmmc supply\n", mmc->dev->name);
1629 return 0;
1630 }
1631
1632 ret = regulator_set_enable(vmmc_supply, true);
1633 if (ret) {
1634 puts("Error enabling VMMC supply\n");
1635 return ret;
1636 }
1637#endif
1638#else /* !CONFIG_DM_MMC */
1639 /*
1640 * Driver model should use a regulator, as above, rather than calling
1641 * out to board code.
1642 */
1643 board_mmc_power_init();
1644#endif
1638 return 0;
1639}
1640
1641int mmc_start_init(struct mmc *mmc)
1642{
1643 bool no_card;
1644 int err;
1645

--- 235 unchanged lines hidden ---
1645 return 0;
1646}
1647
1648int mmc_start_init(struct mmc *mmc)
1649{
1650 bool no_card;
1651 int err;
1652

--- 235 unchanged lines hidden ---