diff --git a/libubb/include/ubb/mmcclk.h b/libubb/include/ubb/mmcclk.h index 289a887..8762e90 100644 --- a/libubb/include/ubb/mmcclk.h +++ b/libubb/include/ubb/mmcclk.h @@ -16,7 +16,7 @@ #include -#define BEN_SYS_CLK_HZ 336000000 +#define BEN_PLL_CLK_HZ 336000000 struct mmcclk { diff --git a/libubb/mmcclk.c b/libubb/mmcclk.c index b84fe59..42202d7 100644 --- a/libubb/mmcclk.c +++ b/libubb/mmcclk.c @@ -30,7 +30,11 @@ static int calculate_clock(struct mmcclk *dsc) void mmcclk_first(struct mmcclk *dsc, int sys_clk_hz) { - dsc->sys_clk_hz = sys_clk_hz ? sys_clk_hz : BEN_SYS_CLK_HZ; + if (sys_clk_hz) + dsc->sys_clk_hz = sys_clk_hz; + else + dsc->sys_clk_hz = + (CPCCR >> 21) & 1 ? BEN_PLL_CLK_HZ : BEN_PLL_CLK_HZ/2; dsc->clkdiv = dsc->clkrt = 0; if (calculate_clock(dsc)) return;