| .. | .. |
|---|
| 13 | 13 | CLK_ALPHA_PLL_TYPE_HUAYRA, |
|---|
| 14 | 14 | CLK_ALPHA_PLL_TYPE_BRAMMO, |
|---|
| 15 | 15 | CLK_ALPHA_PLL_TYPE_FABIA, |
|---|
| 16 | + CLK_ALPHA_PLL_TYPE_TRION, |
|---|
| 17 | + CLK_ALPHA_PLL_TYPE_LUCID = CLK_ALPHA_PLL_TYPE_TRION, |
|---|
| 16 | 18 | CLK_ALPHA_PLL_TYPE_MAX, |
|---|
| 17 | 19 | }; |
|---|
| 18 | 20 | |
|---|
| 19 | 21 | enum { |
|---|
| 20 | 22 | PLL_OFF_L_VAL, |
|---|
| 23 | + PLL_OFF_CAL_L_VAL, |
|---|
| 21 | 24 | PLL_OFF_ALPHA_VAL, |
|---|
| 22 | 25 | PLL_OFF_ALPHA_VAL_U, |
|---|
| 23 | 26 | PLL_OFF_USER_CTL, |
|---|
| 24 | 27 | PLL_OFF_USER_CTL_U, |
|---|
| 28 | + PLL_OFF_USER_CTL_U1, |
|---|
| 25 | 29 | PLL_OFF_CONFIG_CTL, |
|---|
| 26 | 30 | PLL_OFF_CONFIG_CTL_U, |
|---|
| 31 | + PLL_OFF_CONFIG_CTL_U1, |
|---|
| 27 | 32 | PLL_OFF_TEST_CTL, |
|---|
| 28 | 33 | PLL_OFF_TEST_CTL_U, |
|---|
| 34 | + PLL_OFF_TEST_CTL_U1, |
|---|
| 29 | 35 | PLL_OFF_STATUS, |
|---|
| 30 | 36 | PLL_OFF_OPMODE, |
|---|
| 31 | 37 | PLL_OFF_FRAC, |
|---|
| 38 | + PLL_OFF_CAL_VAL, |
|---|
| 32 | 39 | PLL_OFF_MAX_REGS |
|---|
| 33 | 40 | }; |
|---|
| 34 | 41 | |
|---|
| .. | .. |
|---|
| 39 | 46 | unsigned long max_freq; |
|---|
| 40 | 47 | u32 val; |
|---|
| 41 | 48 | }; |
|---|
| 49 | + |
|---|
| 50 | +#define VCO(a, b, c) { \ |
|---|
| 51 | + .val = a,\ |
|---|
| 52 | + .min_freq = b,\ |
|---|
| 53 | + .max_freq = c,\ |
|---|
| 54 | +} |
|---|
| 42 | 55 | |
|---|
| 43 | 56 | /** |
|---|
| 44 | 57 | * struct clk_alpha_pll - phase locked loop (PLL) |
|---|
| .. | .. |
|---|
| 89 | 102 | u32 alpha_hi; |
|---|
| 90 | 103 | u32 config_ctl_val; |
|---|
| 91 | 104 | u32 config_ctl_hi_val; |
|---|
| 105 | + u32 config_ctl_hi1_val; |
|---|
| 106 | + u32 user_ctl_val; |
|---|
| 107 | + u32 user_ctl_hi_val; |
|---|
| 108 | + u32 user_ctl_hi1_val; |
|---|
| 109 | + u32 test_ctl_val; |
|---|
| 110 | + u32 test_ctl_hi_val; |
|---|
| 111 | + u32 test_ctl_hi1_val; |
|---|
| 92 | 112 | u32 main_output_mask; |
|---|
| 93 | 113 | u32 aux_output_mask; |
|---|
| 94 | 114 | u32 aux2_output_mask; |
|---|
| .. | .. |
|---|
| 104 | 124 | }; |
|---|
| 105 | 125 | |
|---|
| 106 | 126 | extern const struct clk_ops clk_alpha_pll_ops; |
|---|
| 127 | +extern const struct clk_ops clk_alpha_pll_fixed_ops; |
|---|
| 107 | 128 | extern const struct clk_ops clk_alpha_pll_hwfsm_ops; |
|---|
| 108 | 129 | extern const struct clk_ops clk_alpha_pll_postdiv_ops; |
|---|
| 109 | 130 | extern const struct clk_ops clk_alpha_pll_huayra_ops; |
|---|
| .. | .. |
|---|
| 113 | 134 | extern const struct clk_ops clk_alpha_pll_fixed_fabia_ops; |
|---|
| 114 | 135 | extern const struct clk_ops clk_alpha_pll_postdiv_fabia_ops; |
|---|
| 115 | 136 | |
|---|
| 137 | +extern const struct clk_ops clk_alpha_pll_trion_ops; |
|---|
| 138 | +extern const struct clk_ops clk_alpha_pll_fixed_trion_ops; |
|---|
| 139 | +extern const struct clk_ops clk_alpha_pll_postdiv_trion_ops; |
|---|
| 140 | + |
|---|
| 141 | +extern const struct clk_ops clk_alpha_pll_lucid_ops; |
|---|
| 142 | +#define clk_alpha_pll_fixed_lucid_ops clk_alpha_pll_fixed_trion_ops |
|---|
| 143 | +extern const struct clk_ops clk_alpha_pll_postdiv_lucid_ops; |
|---|
| 144 | + |
|---|
| 116 | 145 | void clk_alpha_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap, |
|---|
| 117 | 146 | const struct alpha_pll_config *config); |
|---|
| 118 | 147 | void clk_fabia_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap, |
|---|
| 119 | 148 | const struct alpha_pll_config *config); |
|---|
| 149 | +void clk_trion_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap, |
|---|
| 150 | + const struct alpha_pll_config *config); |
|---|
| 151 | +#define clk_lucid_pll_configure(pll, regmap, config) \ |
|---|
| 152 | + clk_trion_pll_configure(pll, regmap, config) |
|---|
| 153 | + |
|---|
| 154 | + |
|---|
| 120 | 155 | |
|---|
| 121 | 156 | #endif |
|---|