diff options
Diffstat (limited to 'firmware/target/mips/ingenic_x1000/clk-x1000.h')
-rw-r--r-- | firmware/target/mips/ingenic_x1000/clk-x1000.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/firmware/target/mips/ingenic_x1000/clk-x1000.h b/firmware/target/mips/ingenic_x1000/clk-x1000.h index 2ff602db9f..e19c56d0ba 100644 --- a/firmware/target/mips/ingenic_x1000/clk-x1000.h +++ b/firmware/target/mips/ingenic_x1000/clk-x1000.h | |||
@@ -31,6 +31,13 @@ | |||
31 | #define CLKMUX_AHB0(x) jz_orf(CPM_CCR, SEL_H0PLL_V(x)) | 31 | #define CLKMUX_AHB0(x) jz_orf(CPM_CCR, SEL_H0PLL_V(x)) |
32 | #define CLKMUX_AHB2(x) jz_orf(CPM_CCR, SEL_H2PLL_V(x)) | 32 | #define CLKMUX_AHB2(x) jz_orf(CPM_CCR, SEL_H2PLL_V(x)) |
33 | 33 | ||
34 | /* Arguments to clk_set_ccr_div() */ | ||
35 | #define CLKDIV_CPU(x) jz_orf(CPM_CCR, CDIV((x) - 1)) | ||
36 | #define CLKDIV_L2(x) jz_orf(CPM_CCR, L2DIV((x) - 1)) | ||
37 | #define CLKDIV_AHB0(x) jz_orf(CPM_CCR, H0DIV((x) - 1)) | ||
38 | #define CLKDIV_AHB2(x) jz_orf(CPM_CCR, H2DIV((x) - 1)) | ||
39 | #define CLKDIV_PCLK(x) jz_orf(CPM_CCR, PDIV((x) - 1)) | ||
40 | |||
34 | typedef enum x1000_clk_t { | 41 | typedef enum x1000_clk_t { |
35 | X1000_CLK_EXCLK, | 42 | X1000_CLK_EXCLK, |
36 | X1000_CLK_APLL, | 43 | X1000_CLK_APLL, |
@@ -59,11 +66,15 @@ extern uint32_t clk_get(x1000_clk_t clk); | |||
59 | /* Get the name of a clock for debug purposes */ | 66 | /* Get the name of a clock for debug purposes */ |
60 | extern const char* clk_get_name(x1000_clk_t clk); | 67 | extern const char* clk_get_name(x1000_clk_t clk); |
61 | 68 | ||
69 | /* Clock initialization */ | ||
70 | extern void clk_init_early(void); | ||
71 | extern void clk_init(void); | ||
72 | |||
62 | /* Sets system clock multiplexers */ | 73 | /* Sets system clock multiplexers */ |
63 | extern void clk_set_ccr_mux(uint32_t muxbits); | 74 | extern void clk_set_ccr_mux(uint32_t muxbits); |
64 | 75 | ||
65 | /* Sets system clock dividers */ | 76 | /* Sets system clock dividers */ |
66 | extern void clk_set_ccr_div(int cpu, int l2, int ahb0, int ahb2, int pclk); | 77 | extern void clk_set_ccr_div(uint32_t divbits); |
67 | 78 | ||
68 | /* Sets DDR clock source and divider */ | 79 | /* Sets DDR clock source and divider */ |
69 | extern void clk_set_ddr(x1000_clk_t src, uint32_t div); | 80 | extern void clk_set_ddr(x1000_clk_t src, uint32_t div); |