diff options
| -rw-r--r-- | drivers/clk/imx/clk-imx7d.c | 84 |
1 files changed, 44 insertions, 40 deletions
diff --git a/drivers/clk/imx/clk-imx7d.c b/drivers/clk/imx/clk-imx7d.c index 80dc211eb74b..992938b8696f 100644 --- a/drivers/clk/imx/clk-imx7d.c +++ b/drivers/clk/imx/clk-imx7d.c | |||
| @@ -51,20 +51,20 @@ static const char *arm_a7_sel[] = { "osc", "pll_arm_main_clk", | |||
| 51 | 51 | ||
| 52 | static const char *arm_m4_sel[] = { "osc", "pll_sys_main_240m_clk", | 52 | static const char *arm_m4_sel[] = { "osc", "pll_sys_main_240m_clk", |
| 53 | "pll_enet_250m_clk", "pll_sys_pfd2_270m_clk", | 53 | "pll_enet_250m_clk", "pll_sys_pfd2_270m_clk", |
| 54 | "pll_dram_533m_clk", "pll_audio_post_div", "pll_video_main_clk", | 54 | "pll_dram_533m_clk", "pll_audio_post_div", "pll_video_post_div", |
| 55 | "pll_usb_main_clk", }; | 55 | "pll_usb_main_clk", }; |
| 56 | 56 | ||
| 57 | static const char *axi_sel[] = { "osc", "pll_sys_pfd1_332m_clk", | 57 | static const char *axi_sel[] = { "osc", "pll_sys_pfd1_332m_clk", |
| 58 | "pll_dram_533m_clk", "pll_enet_250m_clk", "pll_sys_pfd5_clk", | 58 | "pll_dram_533m_clk", "pll_enet_250m_clk", "pll_sys_pfd5_clk", |
| 59 | "pll_audio_post_div", "pll_video_main_clk", "pll_sys_pfd7_clk", }; | 59 | "pll_audio_post_div", "pll_video_post_div", "pll_sys_pfd7_clk", }; |
| 60 | 60 | ||
| 61 | static const char *disp_axi_sel[] = { "osc", "pll_sys_pfd1_332m_clk", | 61 | static const char *disp_axi_sel[] = { "osc", "pll_sys_pfd1_332m_clk", |
| 62 | "pll_dram_533m_clk", "pll_enet_250m_clk", "pll_sys_pfd6_clk", | 62 | "pll_dram_533m_clk", "pll_enet_250m_clk", "pll_sys_pfd6_clk", |
| 63 | "pll_sys_pfd7_clk", "pll_audio_post_div", "pll_video_main_clk", }; | 63 | "pll_sys_pfd7_clk", "pll_audio_post_div", "pll_video_post_div", }; |
| 64 | 64 | ||
| 65 | static const char *enet_axi_sel[] = { "osc", "pll_sys_pfd2_270m_clk", | 65 | static const char *enet_axi_sel[] = { "osc", "pll_sys_pfd2_270m_clk", |
| 66 | "pll_dram_533m_clk", "pll_enet_250m_clk", | 66 | "pll_dram_533m_clk", "pll_enet_250m_clk", |
| 67 | "pll_sys_main_240m_clk", "pll_audio_post_div", "pll_video_main_clk", | 67 | "pll_sys_main_240m_clk", "pll_audio_post_div", "pll_video_post_div", |
| 68 | "pll_sys_pfd4_clk", }; | 68 | "pll_sys_pfd4_clk", }; |
| 69 | 69 | ||
| 70 | static const char *nand_usdhc_bus_sel[] = { "osc", "pll_sys_pfd2_270m_clk", | 70 | static const char *nand_usdhc_bus_sel[] = { "osc", "pll_sys_pfd2_270m_clk", |
| @@ -75,7 +75,7 @@ static const char *nand_usdhc_bus_sel[] = { "osc", "pll_sys_pfd2_270m_clk", | |||
| 75 | static const char *ahb_channel_sel[] = { "osc", "pll_sys_pfd2_270m_clk", | 75 | static const char *ahb_channel_sel[] = { "osc", "pll_sys_pfd2_270m_clk", |
| 76 | "pll_dram_533m_clk", "pll_sys_pfd0_392m_clk", | 76 | "pll_dram_533m_clk", "pll_sys_pfd0_392m_clk", |
| 77 | "pll_enet_125m_clk", "pll_usb_main_clk", "pll_audio_post_div", | 77 | "pll_enet_125m_clk", "pll_usb_main_clk", "pll_audio_post_div", |
| 78 | "pll_video_main_clk", }; | 78 | "pll_video_post_div", }; |
| 79 | 79 | ||
| 80 | static const char *dram_phym_sel[] = { "pll_dram_main_clk", | 80 | static const char *dram_phym_sel[] = { "pll_dram_main_clk", |
| 81 | "dram_phym_alt_clk", }; | 81 | "dram_phym_alt_clk", }; |
| @@ -86,7 +86,7 @@ static const char *dram_sel[] = { "pll_dram_main_clk", | |||
| 86 | static const char *dram_phym_alt_sel[] = { "osc", "pll_dram_533m_clk", | 86 | static const char *dram_phym_alt_sel[] = { "osc", "pll_dram_533m_clk", |
| 87 | "pll_sys_main_clk", "pll_enet_500m_clk", | 87 | "pll_sys_main_clk", "pll_enet_500m_clk", |
| 88 | "pll_usb_main_clk", "pll_sys_pfd7_clk", "pll_audio_post_div", | 88 | "pll_usb_main_clk", "pll_sys_pfd7_clk", "pll_audio_post_div", |
| 89 | "pll_video_main_clk", }; | 89 | "pll_video_post_div", }; |
| 90 | 90 | ||
| 91 | static const char *dram_alt_sel[] = { "osc", "pll_dram_533m_clk", | 91 | static const char *dram_alt_sel[] = { "osc", "pll_dram_533m_clk", |
| 92 | "pll_sys_main_clk", "pll_enet_500m_clk", | 92 | "pll_sys_main_clk", "pll_enet_500m_clk", |
| @@ -108,62 +108,62 @@ static const char *pcie_phy_sel[] = { "osc", "pll_enet_100m_clk", | |||
| 108 | 108 | ||
| 109 | static const char *epdc_pixel_sel[] = { "osc", "pll_sys_pfd1_332m_clk", | 109 | static const char *epdc_pixel_sel[] = { "osc", "pll_sys_pfd1_332m_clk", |
| 110 | "pll_dram_533m_clk", "pll_sys_main_clk", "pll_sys_pfd5_clk", | 110 | "pll_dram_533m_clk", "pll_sys_main_clk", "pll_sys_pfd5_clk", |
| 111 | "pll_sys_pfd6_clk", "pll_sys_pfd7_clk", "pll_video_main_clk", }; | 111 | "pll_sys_pfd6_clk", "pll_sys_pfd7_clk", "pll_video_post_div", }; |
| 112 | 112 | ||
| 113 | static const char *lcdif_pixel_sel[] = { "osc", "pll_sys_pfd5_clk", | 113 | static const char *lcdif_pixel_sel[] = { "osc", "pll_sys_pfd5_clk", |
| 114 | "pll_dram_533m_clk", "ext_clk_3", "pll_sys_pfd4_clk", | 114 | "pll_dram_533m_clk", "ext_clk_3", "pll_sys_pfd4_clk", |
| 115 | "pll_sys_pfd2_270m_clk", "pll_video_main_clk", | 115 | "pll_sys_pfd2_270m_clk", "pll_video_post_div", |
| 116 | "pll_usb_main_clk", }; | 116 | "pll_usb_main_clk", }; |
| 117 | 117 | ||
| 118 | static const char *mipi_dsi_sel[] = { "osc", "pll_sys_pfd5_clk", | 118 | static const char *mipi_dsi_sel[] = { "osc", "pll_sys_pfd5_clk", |
| 119 | "pll_sys_pfd3_clk", "pll_sys_main_clk", "pll_sys_pfd0_196m_clk", | 119 | "pll_sys_pfd3_clk", "pll_sys_main_clk", "pll_sys_pfd0_196m_clk", |
| 120 | "pll_dram_533m_clk", "pll_video_main_clk", "pll_audio_post_div", }; | 120 | "pll_dram_533m_clk", "pll_video_post_div", "pll_audio_post_div", }; |
| 121 | 121 | ||
| 122 | static const char *mipi_csi_sel[] = { "osc", "pll_sys_pfd4_clk", | 122 | static const char *mipi_csi_sel[] = { "osc", "pll_sys_pfd4_clk", |
| 123 | "pll_sys_pfd3_clk", "pll_sys_main_clk", "pll_sys_pfd0_196m_clk", | 123 | "pll_sys_pfd3_clk", "pll_sys_main_clk", "pll_sys_pfd0_196m_clk", |
| 124 | "pll_dram_533m_clk", "pll_video_main_clk", "pll_audio_post_div", }; | 124 | "pll_dram_533m_clk", "pll_video_post_div", "pll_audio_post_div", }; |
| 125 | 125 | ||
| 126 | static const char *mipi_dphy_sel[] = { "osc", "pll_sys_main_120m_clk", | 126 | static const char *mipi_dphy_sel[] = { "osc", "pll_sys_main_120m_clk", |
| 127 | "pll_dram_533m_clk", "pll_sys_pfd5_clk", "ref_1m_clk", "ext_clk_2", | 127 | "pll_dram_533m_clk", "pll_sys_pfd5_clk", "ref_1m_clk", "ext_clk_2", |
| 128 | "pll_video_main_clk", "ext_clk_3", }; | 128 | "pll_video_post_div", "ext_clk_3", }; |
| 129 | 129 | ||
| 130 | static const char *sai1_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | 130 | static const char *sai1_sel[] = { "osc", "pll_sys_pfd2_135m_clk", |
| 131 | "pll_audio_post_div", "pll_dram_533m_clk", "pll_video_main_clk", | 131 | "pll_audio_post_div", "pll_dram_533m_clk", "pll_video_post_div", |
| 132 | "pll_sys_pfd4_clk", "pll_enet_125m_clk", "ext_clk_2", }; | 132 | "pll_sys_pfd4_clk", "pll_enet_125m_clk", "ext_clk_2", }; |
| 133 | 133 | ||
| 134 | static const char *sai2_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | 134 | static const char *sai2_sel[] = { "osc", "pll_sys_pfd2_135m_clk", |
| 135 | "pll_audio_post_div", "pll_dram_533m_clk", "pll_video_main_clk", | 135 | "pll_audio_post_div", "pll_dram_533m_clk", "pll_video_post_div", |
| 136 | "pll_sys_pfd4_clk", "pll_enet_125m_clk", "ext_clk_2", }; | 136 | "pll_sys_pfd4_clk", "pll_enet_125m_clk", "ext_clk_2", }; |
| 137 | 137 | ||
| 138 | static const char *sai3_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | 138 | static const char *sai3_sel[] = { "osc", "pll_sys_pfd2_135m_clk", |
| 139 | "pll_audio_post_div", "pll_dram_533m_clk", "pll_video_main_clk", | 139 | "pll_audio_post_div", "pll_dram_533m_clk", "pll_video_post_div", |
| 140 | "pll_sys_pfd4_clk", "pll_enet_125m_clk", "ext_clk_3", }; | 140 | "pll_sys_pfd4_clk", "pll_enet_125m_clk", "ext_clk_3", }; |
| 141 | 141 | ||
| 142 | static const char *spdif_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | 142 | static const char *spdif_sel[] = { "osc", "pll_sys_pfd2_135m_clk", |
| 143 | "pll_audio_post_div", "pll_dram_533m_clk", "pll_video_main_clk", | 143 | "pll_audio_post_div", "pll_dram_533m_clk", "pll_video_post_div", |
| 144 | "pll_sys_pfd4_clk", "pll_enet_125m_clk", "ext_3_clk", }; | 144 | "pll_sys_pfd4_clk", "pll_enet_125m_clk", "ext_3_clk", }; |
| 145 | 145 | ||
| 146 | static const char *enet1_ref_sel[] = { "osc", "pll_enet_125m_clk", | 146 | static const char *enet1_ref_sel[] = { "osc", "pll_enet_125m_clk", |
| 147 | "pll_enet_50m_clk", "pll_enet_25m_clk", | 147 | "pll_enet_50m_clk", "pll_enet_25m_clk", |
| 148 | "pll_sys_main_120m_clk", "pll_audio_post_div", "pll_video_main_clk", | 148 | "pll_sys_main_120m_clk", "pll_audio_post_div", "pll_video_post_div", |
| 149 | "ext_clk_4", }; | 149 | "ext_clk_4", }; |
| 150 | 150 | ||
| 151 | static const char *enet1_time_sel[] = { "osc", "pll_enet_100m_clk", | 151 | static const char *enet1_time_sel[] = { "osc", "pll_enet_100m_clk", |
| 152 | "pll_audio_post_div", "ext_clk_1", "ext_clk_2", "ext_clk_3", | 152 | "pll_audio_post_div", "ext_clk_1", "ext_clk_2", "ext_clk_3", |
| 153 | "ext_clk_4", "pll_video_main_clk", }; | 153 | "ext_clk_4", "pll_video_post_div", }; |
| 154 | 154 | ||
| 155 | static const char *enet2_ref_sel[] = { "osc", "pll_enet_125m_clk", | 155 | static const char *enet2_ref_sel[] = { "osc", "pll_enet_125m_clk", |
| 156 | "pll_enet_50m_clk", "pll_enet_25m_clk", | 156 | "pll_enet_50m_clk", "pll_enet_25m_clk", |
| 157 | "pll_sys_main_120m_clk", "pll_audio_post_div", "pll_video_main_clk", | 157 | "pll_sys_main_120m_clk", "pll_audio_post_div", "pll_video_post_div", |
| 158 | "ext_clk_4", }; | 158 | "ext_clk_4", }; |
| 159 | 159 | ||
| 160 | static const char *enet2_time_sel[] = { "osc", "pll_enet_100m_clk", | 160 | static const char *enet2_time_sel[] = { "osc", "pll_enet_100m_clk", |
| 161 | "pll_audio_post_div", "ext_clk_1", "ext_clk_2", "ext_clk_3", | 161 | "pll_audio_post_div", "ext_clk_1", "ext_clk_2", "ext_clk_3", |
| 162 | "ext_clk_4", "pll_video_main_clk", }; | 162 | "ext_clk_4", "pll_video_post_div", }; |
| 163 | 163 | ||
| 164 | static const char *enet_phy_ref_sel[] = { "osc", "pll_enet_25m_clk", | 164 | static const char *enet_phy_ref_sel[] = { "osc", "pll_enet_25m_clk", |
| 165 | "pll_enet_50m_clk", "pll_enet_125m_clk", | 165 | "pll_enet_50m_clk", "pll_enet_125m_clk", |
| 166 | "pll_dram_533m_clk", "pll_audio_post_div", "pll_video_main_clk", | 166 | "pll_dram_533m_clk", "pll_audio_post_div", "pll_video_post_div", |
| 167 | "pll_sys_pfd3_clk", }; | 167 | "pll_sys_pfd3_clk", }; |
| 168 | 168 | ||
| 169 | static const char *eim_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | 169 | static const char *eim_sel[] = { "osc", "pll_sys_pfd2_135m_clk", |
| @@ -174,7 +174,7 @@ static const char *eim_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | |||
| 174 | static const char *nand_sel[] = { "osc", "pll_sys_main_clk", | 174 | static const char *nand_sel[] = { "osc", "pll_sys_main_clk", |
| 175 | "pll_dram_533m_clk", "pll_sys_pfd0_392m_clk", "pll_sys_pfd3_clk", | 175 | "pll_dram_533m_clk", "pll_sys_pfd0_392m_clk", "pll_sys_pfd3_clk", |
| 176 | "pll_enet_500m_clk", "pll_enet_250m_clk", | 176 | "pll_enet_500m_clk", "pll_enet_250m_clk", |
| 177 | "pll_video_main_clk", }; | 177 | "pll_video_post_div", }; |
| 178 | 178 | ||
| 179 | static const char *qspi_sel[] = { "osc", "pll_sys_pfd4_clk", | 179 | static const char *qspi_sel[] = { "osc", "pll_sys_pfd4_clk", |
| 180 | "pll_dram_533m_clk", "pll_enet_500m_clk", "pll_sys_pfd3_clk", | 180 | "pll_dram_533m_clk", "pll_enet_500m_clk", "pll_sys_pfd3_clk", |
| @@ -204,22 +204,22 @@ static const char *can2_sel[] = { "osc", "pll_sys_main_120m_clk", | |||
| 204 | 204 | ||
| 205 | static const char *i2c1_sel[] = { "osc", "pll_sys_main_120m_clk", | 205 | static const char *i2c1_sel[] = { "osc", "pll_sys_main_120m_clk", |
| 206 | "pll_enet_50m_clk", "pll_dram_533m_clk", | 206 | "pll_enet_50m_clk", "pll_dram_533m_clk", |
| 207 | "pll_audio_post_div", "pll_video_main_clk", "pll_usb_main_clk", | 207 | "pll_audio_post_div", "pll_video_post_div", "pll_usb_main_clk", |
| 208 | "pll_sys_pfd2_135m_clk", }; | 208 | "pll_sys_pfd2_135m_clk", }; |
| 209 | 209 | ||
| 210 | static const char *i2c2_sel[] = { "osc", "pll_sys_main_120m_clk", | 210 | static const char *i2c2_sel[] = { "osc", "pll_sys_main_120m_clk", |
| 211 | "pll_enet_50m_clk", "pll_dram_533m_clk", | 211 | "pll_enet_50m_clk", "pll_dram_533m_clk", |
| 212 | "pll_audio_post_div", "pll_video_main_clk", "pll_usb_main_clk", | 212 | "pll_audio_post_div", "pll_video_post_div", "pll_usb_main_clk", |
| 213 | "pll_sys_pfd2_135m_clk", }; | 213 | "pll_sys_pfd2_135m_clk", }; |
| 214 | 214 | ||
| 215 | static const char *i2c3_sel[] = { "osc", "pll_sys_main_120m_clk", | 215 | static const char *i2c3_sel[] = { "osc", "pll_sys_main_120m_clk", |
| 216 | "pll_enet_50m_clk", "pll_dram_533m_clk", | 216 | "pll_enet_50m_clk", "pll_dram_533m_clk", |
| 217 | "pll_audio_post_div", "pll_video_main_clk", "pll_usb_main_clk", | 217 | "pll_audio_post_div", "pll_video_post_div", "pll_usb_main_clk", |
| 218 | "pll_sys_pfd2_135m_clk", }; | 218 | "pll_sys_pfd2_135m_clk", }; |
| 219 | 219 | ||
| 220 | static const char *i2c4_sel[] = { "osc", "pll_sys_main_120m_clk", | 220 | static const char *i2c4_sel[] = { "osc", "pll_sys_main_120m_clk", |
| 221 | "pll_enet_50m_clk", "pll_dram_533m_clk", | 221 | "pll_enet_50m_clk", "pll_dram_533m_clk", |
| 222 | "pll_audio_post_div", "pll_video_main_clk", "pll_usb_main_clk", | 222 | "pll_audio_post_div", "pll_video_post_div", "pll_usb_main_clk", |
| 223 | "pll_sys_pfd2_135m_clk", }; | 223 | "pll_sys_pfd2_135m_clk", }; |
| 224 | 224 | ||
| 225 | static const char *uart1_sel[] = { "osc", "pll_sys_main_240m_clk", | 225 | static const char *uart1_sel[] = { "osc", "pll_sys_main_240m_clk", |
| @@ -279,27 +279,27 @@ static const char *ecspi4_sel[] = { "osc", "pll_sys_main_240m_clk", | |||
| 279 | 279 | ||
| 280 | static const char *pwm1_sel[] = { "osc", "pll_enet_100m_clk", | 280 | static const char *pwm1_sel[] = { "osc", "pll_enet_100m_clk", |
| 281 | "pll_sys_main_120m_clk", "pll_enet_40m_clk", "pll_audio_post_div", | 281 | "pll_sys_main_120m_clk", "pll_enet_40m_clk", "pll_audio_post_div", |
| 282 | "ext_clk_1", "ref_1m_clk", "pll_video_main_clk", }; | 282 | "ext_clk_1", "ref_1m_clk", "pll_video_post_div", }; |
| 283 | 283 | ||
| 284 | static const char *pwm2_sel[] = { "osc", "pll_enet_100m_clk", | 284 | static const char *pwm2_sel[] = { "osc", "pll_enet_100m_clk", |
| 285 | "pll_sys_main_120m_clk", "pll_enet_40m_clk", "pll_audio_post_div", | 285 | "pll_sys_main_120m_clk", "pll_enet_40m_clk", "pll_audio_post_div", |
| 286 | "ext_clk_1", "ref_1m_clk", "pll_video_main_clk", }; | 286 | "ext_clk_1", "ref_1m_clk", "pll_video_post_div", }; |
| 287 | 287 | ||
| 288 | static const char *pwm3_sel[] = { "osc", "pll_enet_100m_clk", | 288 | static const char *pwm3_sel[] = { "osc", "pll_enet_100m_clk", |
| 289 | "pll_sys_main_120m_clk", "pll_enet_40m_clk", "pll_audio_post_div", | 289 | "pll_sys_main_120m_clk", "pll_enet_40m_clk", "pll_audio_post_div", |
| 290 | "ext_clk_2", "ref_1m_clk", "pll_video_main_clk", }; | 290 | "ext_clk_2", "ref_1m_clk", "pll_video_post_div", }; |
| 291 | 291 | ||
| 292 | static const char *pwm4_sel[] = { "osc", "pll_enet_100m_clk", | 292 | static const char *pwm4_sel[] = { "osc", "pll_enet_100m_clk", |
| 293 | "pll_sys_main_120m_clk", "pll_enet_40m_clk", "pll_audio_post_div", | 293 | "pll_sys_main_120m_clk", "pll_enet_40m_clk", "pll_audio_post_div", |
| 294 | "ext_clk_2", "ref_1m_clk", "pll_video_main_clk", }; | 294 | "ext_clk_2", "ref_1m_clk", "pll_video_post_div", }; |
| 295 | 295 | ||
| 296 | static const char *flextimer1_sel[] = { "osc", "pll_enet_100m_clk", | 296 | static const char *flextimer1_sel[] = { "osc", "pll_enet_100m_clk", |
| 297 | "pll_sys_main_120m_clk", "pll_enet_40m_clk", "pll_audio_post_div", | 297 | "pll_sys_main_120m_clk", "pll_enet_40m_clk", "pll_audio_post_div", |
| 298 | "ext_clk_3", "ref_1m_clk", "pll_video_main_clk", }; | 298 | "ext_clk_3", "ref_1m_clk", "pll_video_post_div", }; |
| 299 | 299 | ||
| 300 | static const char *flextimer2_sel[] = { "osc", "pll_enet_100m_clk", | 300 | static const char *flextimer2_sel[] = { "osc", "pll_enet_100m_clk", |
| 301 | "pll_sys_main_120m_clk", "pll_enet_40m_clk", "pll_audio_post_div", | 301 | "pll_sys_main_120m_clk", "pll_enet_40m_clk", "pll_audio_post_div", |
| 302 | "ext_clk_3", "ref_1m_clk", "pll_video_main_clk", }; | 302 | "ext_clk_3", "ref_1m_clk", "pll_video_post_div", }; |
| 303 | 303 | ||
| 304 | static const char *sim1_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | 304 | static const char *sim1_sel[] = { "osc", "pll_sys_pfd2_135m_clk", |
| 305 | "pll_sys_main_120m_clk", "pll_dram_533m_clk", | 305 | "pll_sys_main_120m_clk", "pll_dram_533m_clk", |
| @@ -308,23 +308,23 @@ static const char *sim1_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | |||
| 308 | 308 | ||
| 309 | static const char *sim2_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | 309 | static const char *sim2_sel[] = { "osc", "pll_sys_pfd2_135m_clk", |
| 310 | "pll_sys_main_120m_clk", "pll_dram_533m_clk", | 310 | "pll_sys_main_120m_clk", "pll_dram_533m_clk", |
| 311 | "pll_usb_main_clk", "pll_video_main_clk", "pll_enet_125m_clk", | 311 | "pll_usb_main_clk", "pll_video_post_div", "pll_enet_125m_clk", |
| 312 | "pll_sys_pfd7_clk", }; | 312 | "pll_sys_pfd7_clk", }; |
| 313 | 313 | ||
| 314 | static const char *gpt1_sel[] = { "osc", "pll_enet_100m_clk", | 314 | static const char *gpt1_sel[] = { "osc", "pll_enet_100m_clk", |
| 315 | "pll_sys_pfd0_392m_clk", "pll_enet_40m_clk", "pll_video_main_clk", | 315 | "pll_sys_pfd0_392m_clk", "pll_enet_40m_clk", "pll_video_post_div", |
| 316 | "ref_1m_clk", "pll_audio_post_div", "ext_clk_1", }; | 316 | "ref_1m_clk", "pll_audio_post_div", "ext_clk_1", }; |
| 317 | 317 | ||
| 318 | static const char *gpt2_sel[] = { "osc", "pll_enet_100m_clk", | 318 | static const char *gpt2_sel[] = { "osc", "pll_enet_100m_clk", |
| 319 | "pll_sys_pfd0_392m_clk", "pll_enet_40m_clk", "pll_video_main_clk", | 319 | "pll_sys_pfd0_392m_clk", "pll_enet_40m_clk", "pll_video_post_div", |
| 320 | "ref_1m_clk", "pll_audio_post_div", "ext_clk_2", }; | 320 | "ref_1m_clk", "pll_audio_post_div", "ext_clk_2", }; |
| 321 | 321 | ||
| 322 | static const char *gpt3_sel[] = { "osc", "pll_enet_100m_clk", | 322 | static const char *gpt3_sel[] = { "osc", "pll_enet_100m_clk", |
| 323 | "pll_sys_pfd0_392m_clk", "pll_enet_40m_clk", "pll_video_main_clk", | 323 | "pll_sys_pfd0_392m_clk", "pll_enet_40m_clk", "pll_video_post_div", |
| 324 | "ref_1m_clk", "pll_audio_post_div", "ext_clk_3", }; | 324 | "ref_1m_clk", "pll_audio_post_div", "ext_clk_3", }; |
| 325 | 325 | ||
| 326 | static const char *gpt4_sel[] = { "osc", "pll_enet_100m_clk", | 326 | static const char *gpt4_sel[] = { "osc", "pll_enet_100m_clk", |
| 327 | "pll_sys_pfd0_392m_clk", "pll_enet_40m_clk", "pll_video_main_clk", | 327 | "pll_sys_pfd0_392m_clk", "pll_enet_40m_clk", "pll_video_post_div", |
| 328 | "ref_1m_clk", "pll_audio_post_div", "ext_clk_4", }; | 328 | "ref_1m_clk", "pll_audio_post_div", "ext_clk_4", }; |
| 329 | 329 | ||
| 330 | static const char *trace_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | 330 | static const char *trace_sel[] = { "osc", "pll_sys_pfd2_135m_clk", |
| @@ -339,12 +339,12 @@ static const char *wdog_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | |||
| 339 | 339 | ||
| 340 | static const char *csi_mclk_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | 340 | static const char *csi_mclk_sel[] = { "osc", "pll_sys_pfd2_135m_clk", |
| 341 | "pll_sys_main_120m_clk", "pll_dram_533m_clk", | 341 | "pll_sys_main_120m_clk", "pll_dram_533m_clk", |
| 342 | "pll_enet_125m_clk", "pll_audio_post_div", "pll_video_main_clk", | 342 | "pll_enet_125m_clk", "pll_audio_post_div", "pll_video_post_div", |
| 343 | "pll_usb_main_clk", }; | 343 | "pll_usb_main_clk", }; |
| 344 | 344 | ||
| 345 | static const char *audio_mclk_sel[] = { "osc", "pll_sys_pfd2_135m_clk", | 345 | static const char *audio_mclk_sel[] = { "osc", "pll_sys_pfd2_135m_clk", |
| 346 | "pll_sys_main_120m_clk", "pll_dram_533m_clk", | 346 | "pll_sys_main_120m_clk", "pll_dram_533m_clk", |
| 347 | "pll_enet_125m_clk", "pll_audio_post_div", "pll_video_main_clk", | 347 | "pll_enet_125m_clk", "pll_audio_post_div", "pll_video_post_div", |
| 348 | "pll_usb_main_clk", }; | 348 | "pll_usb_main_clk", }; |
| 349 | 349 | ||
| 350 | static const char *wrclk_sel[] = { "osc", "pll_enet_40m_clk", | 350 | static const char *wrclk_sel[] = { "osc", "pll_enet_40m_clk", |
| @@ -358,13 +358,13 @@ static const char *clko1_sel[] = { "osc", "pll_sys_main_clk", | |||
| 358 | 358 | ||
| 359 | static const char *clko2_sel[] = { "osc", "pll_sys_main_240m_clk", | 359 | static const char *clko2_sel[] = { "osc", "pll_sys_main_240m_clk", |
| 360 | "pll_sys_pfd0_392m_clk", "pll_sys_pfd1_166m_clk", "pll_sys_pfd4_clk", | 360 | "pll_sys_pfd0_392m_clk", "pll_sys_pfd1_166m_clk", "pll_sys_pfd4_clk", |
| 361 | "pll_audio_post_div", "pll_video_main_clk", "ckil", }; | 361 | "pll_audio_post_div", "pll_video_post_div", "ckil", }; |
| 362 | 362 | ||
| 363 | static const char *lvds1_sel[] = { "pll_arm_main_clk", | 363 | static const char *lvds1_sel[] = { "pll_arm_main_clk", |
| 364 | "pll_sys_main_clk", "pll_sys_pfd0_392m_clk", "pll_sys_pfd1_332m_clk", | 364 | "pll_sys_main_clk", "pll_sys_pfd0_392m_clk", "pll_sys_pfd1_332m_clk", |
| 365 | "pll_sys_pfd2_270m_clk", "pll_sys_pfd3_clk", "pll_sys_pfd4_clk", | 365 | "pll_sys_pfd2_270m_clk", "pll_sys_pfd3_clk", "pll_sys_pfd4_clk", |
| 366 | "pll_sys_pfd5_clk", "pll_sys_pfd6_clk", "pll_sys_pfd7_clk", | 366 | "pll_sys_pfd5_clk", "pll_sys_pfd6_clk", "pll_sys_pfd7_clk", |
| 367 | "pll_audio_post_div", "pll_video_main_clk", "pll_enet_500m_clk", | 367 | "pll_audio_post_div", "pll_video_post_div", "pll_enet_500m_clk", |
| 368 | "pll_enet_250m_clk", "pll_enet_125m_clk", "pll_enet_100m_clk", | 368 | "pll_enet_250m_clk", "pll_enet_125m_clk", "pll_enet_100m_clk", |
| 369 | "pll_enet_50m_clk", "pll_enet_40m_clk", "pll_enet_25m_clk", | 369 | "pll_enet_50m_clk", "pll_enet_40m_clk", "pll_enet_25m_clk", |
| 370 | "pll_dram_main_clk", }; | 370 | "pll_dram_main_clk", }; |
| @@ -450,6 +450,10 @@ static void __init imx7d_clocks_init(struct device_node *ccm_node) | |||
| 450 | CLK_SET_RATE_PARENT | CLK_SET_RATE_GATE, base + 0xf0, 19, 2, 0, test_div_table, &imx_ccm_lock); | 450 | CLK_SET_RATE_PARENT | CLK_SET_RATE_GATE, base + 0xf0, 19, 2, 0, test_div_table, &imx_ccm_lock); |
| 451 | clks[IMX7D_PLL_AUDIO_POST_DIV] = clk_register_divider_table(NULL, "pll_audio_post_div", "pll_audio_test_div", | 451 | clks[IMX7D_PLL_AUDIO_POST_DIV] = clk_register_divider_table(NULL, "pll_audio_post_div", "pll_audio_test_div", |
| 452 | CLK_SET_RATE_PARENT | CLK_SET_RATE_GATE, base + 0xf0, 22, 2, 0, post_div_table, &imx_ccm_lock); | 452 | CLK_SET_RATE_PARENT | CLK_SET_RATE_GATE, base + 0xf0, 22, 2, 0, post_div_table, &imx_ccm_lock); |
| 453 | clks[IMX7D_PLL_VIDEO_TEST_DIV] = clk_register_divider_table(NULL, "pll_video_test_div", "pll_video_main_clk", | ||
| 454 | CLK_SET_RATE_PARENT | CLK_SET_RATE_GATE, base + 0x130, 19, 2, 0, test_div_table, &imx_ccm_lock); | ||
| 455 | clks[IMX7D_PLL_VIDEO_POST_DIV] = clk_register_divider_table(NULL, "pll_video_post_div", "pll_video_test_div", | ||
| 456 | CLK_SET_RATE_PARENT | CLK_SET_RATE_GATE, base + 0x130, 22, 2, 0, post_div_table, &imx_ccm_lock); | ||
| 453 | 457 | ||
| 454 | clks[IMX7D_PLL_SYS_PFD0_392M_CLK] = imx_clk_pfd("pll_sys_pfd0_392m_clk", "pll_sys_main_clk", base + 0xc0, 0); | 458 | clks[IMX7D_PLL_SYS_PFD0_392M_CLK] = imx_clk_pfd("pll_sys_pfd0_392m_clk", "pll_sys_main_clk", base + 0xc0, 0); |
| 455 | clks[IMX7D_PLL_SYS_PFD1_332M_CLK] = imx_clk_pfd("pll_sys_pfd1_332m_clk", "pll_sys_main_clk", base + 0xc0, 1); | 459 | clks[IMX7D_PLL_SYS_PFD1_332M_CLK] = imx_clk_pfd("pll_sys_pfd1_332m_clk", "pll_sys_main_clk", base + 0xc0, 1); |
