|
@@ -563,45 +563,17 @@ static int pwrap_init_sidly(struct pmic_wrapper *wrp)
|
|
|
|
|
|
static int pwrap_init_reg_clock(struct pmic_wrapper *wrp)
|
|
|
{
|
|
|
- unsigned long rate_spi;
|
|
|
- int ck_mhz;
|
|
|
-
|
|
|
- rate_spi = clk_get_rate(wrp->clk_spi);
|
|
|
-
|
|
|
- if (rate_spi > 26000000)
|
|
|
- ck_mhz = 26;
|
|
|
- else if (rate_spi > 18000000)
|
|
|
- ck_mhz = 18;
|
|
|
- else
|
|
|
- ck_mhz = 0;
|
|
|
-
|
|
|
- switch (ck_mhz) {
|
|
|
- case 18:
|
|
|
- if (pwrap_is_mt8135(wrp))
|
|
|
- pwrap_writel(wrp, 0xc, PWRAP_CSHEXT);
|
|
|
- pwrap_writel(wrp, 0x4, PWRAP_CSHEXT_WRITE);
|
|
|
- pwrap_writel(wrp, 0xc, PWRAP_CSHEXT_READ);
|
|
|
- pwrap_writel(wrp, 0x0, PWRAP_CSLEXT_START);
|
|
|
- pwrap_writel(wrp, 0x0, PWRAP_CSLEXT_END);
|
|
|
- break;
|
|
|
- case 26:
|
|
|
- if (pwrap_is_mt8135(wrp))
|
|
|
- pwrap_writel(wrp, 0x4, PWRAP_CSHEXT);
|
|
|
+ if (pwrap_is_mt8135(wrp)) {
|
|
|
+ pwrap_writel(wrp, 0x4, PWRAP_CSHEXT);
|
|
|
pwrap_writel(wrp, 0x0, PWRAP_CSHEXT_WRITE);
|
|
|
pwrap_writel(wrp, 0x4, PWRAP_CSHEXT_READ);
|
|
|
pwrap_writel(wrp, 0x0, PWRAP_CSLEXT_START);
|
|
|
pwrap_writel(wrp, 0x0, PWRAP_CSLEXT_END);
|
|
|
- break;
|
|
|
- case 0:
|
|
|
- if (pwrap_is_mt8135(wrp))
|
|
|
- pwrap_writel(wrp, 0xf, PWRAP_CSHEXT);
|
|
|
- pwrap_writel(wrp, 0xf, PWRAP_CSHEXT_WRITE);
|
|
|
- pwrap_writel(wrp, 0xf, PWRAP_CSHEXT_READ);
|
|
|
- pwrap_writel(wrp, 0xf, PWRAP_CSLEXT_START);
|
|
|
- pwrap_writel(wrp, 0xf, PWRAP_CSLEXT_END);
|
|
|
- break;
|
|
|
- default:
|
|
|
- return -EINVAL;
|
|
|
+ } else {
|
|
|
+ pwrap_writel(wrp, 0x0, PWRAP_CSHEXT_WRITE);
|
|
|
+ pwrap_writel(wrp, 0x4, PWRAP_CSHEXT_READ);
|
|
|
+ pwrap_writel(wrp, 0x2, PWRAP_CSLEXT_START);
|
|
|
+ pwrap_writel(wrp, 0x2, PWRAP_CSLEXT_END);
|
|
|
}
|
|
|
|
|
|
return 0;
|