57
57
#define APMU_USBHSIC0 0xf8
58
58
#define APMU_USBHSIC1 0xfc
59
59
60
- #define MPMU_FCCR 0x8
61
- #define MPMU_POSR 0x10
62
- #define MPMU_UART_PLL 0x14
63
- #define MPMU_PLL2_CR 0x34
60
+ #define MPMU_FCCR 0x8
61
+ #define MPMU_POSR 0x10
62
+ #define MPMU_UART_PLL 0x14
63
+ #define MPMU_PLL2_CR 0x34
64
+ /* MMP3 specific below */
65
+ #define MPMU_PLL3_CR 0x50
66
+ #define MPMU_PLL3_CTRL1 0x58
67
+ #define MPMU_PLL1_CTRL 0x5c
68
+ #define MPMU_PLL_DIFF_CTRL 0x68
69
+ #define MPMU_PLL2_CTRL1 0x414
64
70
65
71
enum mmp2_clk_model {
66
72
CLK_MODEL_MMP2 ,
@@ -86,6 +92,14 @@ static struct mmp_param_pll_clk pll_clks[] = {
86
92
{MMP2_CLK_PLL2 , "pll2" , 0 , MPMU_PLL2_CR , 0x0300 , MPMU_PLL2_CR , 10 },
87
93
};
88
94
95
+ static struct mmp_param_pll_clk mmp3_pll_clks [] = {
96
+ {MMP2_CLK_PLL2 , "pll1" , 797330000 , MPMU_FCCR , 0x4000 , MPMU_POSR , 0 , 26000000 , MPMU_PLL1_CTRL , 25 },
97
+ {MMP2_CLK_PLL2 , "pll2" , 0 , MPMU_PLL2_CR , 0x0300 , MPMU_PLL2_CR , 10 , 26000000 , MPMU_PLL2_CTRL1 , 25 },
98
+ {MMP3_CLK_PLL1_P , "pll1_p" , 0 , MPMU_PLL_DIFF_CTRL , 0x0010 , 0 , 0 , 797330000 , MPMU_PLL_DIFF_CTRL , 0 },
99
+ {MMP3_CLK_PLL2_P , "pll2_p" , 0 , MPMU_PLL_DIFF_CTRL , 0x0100 , MPMU_PLL2_CR , 10 , 26000000 , MPMU_PLL_DIFF_CTRL , 5 },
100
+ {MMP3_CLK_PLL3 , "pll3" , 0 , MPMU_PLL3_CR , 0x0300 , MPMU_PLL3_CR , 10 , 26000000 , MPMU_PLL3_CTRL1 , 25 },
101
+ };
102
+
89
103
static struct mmp_param_fixed_factor_clk fixed_factor_clks [] = {
90
104
{MMP2_CLK_PLL1_2 , "pll1_2" , "pll1" , 1 , 2 , 0 },
91
105
{MMP2_CLK_PLL1_4 , "pll1_4" , "pll1_2" , 1 , 2 , 0 },
@@ -127,9 +141,15 @@ static void mmp2_pll_init(struct mmp2_clk_unit *pxa_unit)
127
141
mmp_register_fixed_rate_clks (unit , fixed_rate_clks ,
128
142
ARRAY_SIZE (fixed_rate_clks ));
129
143
130
- mmp_register_pll_clks (unit , pll_clks ,
131
- pxa_unit -> mpmu_base ,
132
- ARRAY_SIZE (pll_clks ));
144
+ if (pxa_unit -> model == CLK_MODEL_MMP3 ) {
145
+ mmp_register_pll_clks (unit , mmp3_pll_clks ,
146
+ pxa_unit -> mpmu_base ,
147
+ ARRAY_SIZE (mmp3_pll_clks ));
148
+ } else {
149
+ mmp_register_pll_clks (unit , pll_clks ,
150
+ pxa_unit -> mpmu_base ,
151
+ ARRAY_SIZE (pll_clks ));
152
+ }
133
153
134
154
mmp_register_fixed_factor_clks (unit , fixed_factor_clks ,
135
155
ARRAY_SIZE (fixed_factor_clks ));
0 commit comments