diff --git a/libubb/mmcclk.c b/libubb/mmcclk.c index 42202d7..80c4ca1 100644 --- a/libubb/mmcclk.c +++ b/libubb/mmcclk.c @@ -60,6 +60,10 @@ void mmcclk_start(struct mmcclk *dsc) { MSCCDR = dsc->clkdiv; /* set controller clock */ CLKGR &= ~(1 << 7); /* enable MSC clock */ + + MSC_STRPCL = 1 << 3; /* reset the MSC */ + while (MSC_STAT & (1 << 15)); /* wait until reset finishes */ + MSC_CLKRT = dsc->clkrt; /* set bus clock */ MSC_STRPCL = 2; /* start MMC bus clock output */ }