diag_printf("========================================\n");
diag_printf("%-16d%-16d%-16d\n\n", pll_clock(PLL1), pll_clock(PLL2),
pll_clock(PLL3));
- diag_printf("CPU\t\tAHB\t\tIPG\t\tEMI_CLK\n");
+ diag_printf("AXI_A\t\tAXI_B\t\tEMI_SLOW_CLK\n");
+ diag_printf("========================================================\n");
+ diag_printf("%-16d%-16d%-16d\n\n",
+ get_main_clock(AXI_A_CLK),
+ get_main_clock(AXI_B_CLK),
+ get_main_clock(EMI_SLOW_CLK));
+ diag_printf("CPU\t\tAHB\t\tIPG\t\tDDR_CLK\n");
diag_printf("========================================================\n");
diag_printf("%-16d%-16d%-16d%-16d\n\n",
get_main_clock(CPU_CLK),
pll = pll_clock(PLL1);
ret_val = pll / (pdf + 1);
break;
+
case AHB_CLK:
max_pdf = (cbcdr >> 10) & 0x7;
pll = get_periph_clk();
ret_val = pll / (max_pdf + 1);
break;
+
+ case AXI_A_CLK:
+ pdf = (cbcdr >> 16) & 0x7;
+ pll = get_periph_clk();
+ ret_val = pll / (pdf + 1);
+ break;
+
+ case AXI_B_CLK:
+ pdf = (cbcdr >> 19) & 0x7;
+ pll = get_periph_clk();
+ ret_val = pll / (pdf + 1);
+ break;
+
+ case EMI_SLOW_CLK:
+ pll = get_emi_core_clk();
+ pdf = (cbcdr >> 22) & 0x7;
+ ret_val = pll / (pdf + 1);
+ break;
+
case IPG_CLK:
max_pdf = (cbcdr >> 10) & 0x7;
ipg_pdf = (cbcdr >> 8) & 0x3;
pll = get_periph_clk();
ret_val = pll / ((max_pdf + 1) * (ipg_pdf + 1));
break;
+
case IPG_PER_CLK:
clk_sel = cbcmr & 1;
if (clk_sel == 0) {
ret_val = pll / ((max_pdf + 1) * (ipg_pdf + 1));
}
break;
+
case DDR_CLK:
if (cbcdr & (1 << 30)) {
pll = pll_clock(PLL1);
ret_val = pll / (pdf + 1);
break;
+
case NFC_CLK:
pdf = (cbcdr >> 22) & 0x7;
nfc_pdf = (cbcdr >> 13) & 0x7;
pll = get_emi_core_clk();
ret_val = pll / ((pdf + 1) * (nfc_pdf + 1));
break;
+
case USB_CLK:
clk_sel = (cscmr1 >> 22) & 3;
if (clk_sel == 0) {
max_pdf = (cscdr1 >> 6) & 0x3;
ret_val = pll / ((pdf + 1) * (max_pdf + 1));
break;
+
default:
diag_printf("Unknown clock: %d\n", clk);
return ERR_WRONG_CLK;