diff options
Diffstat (limited to 'drivers/clk/clk-stm32f4.c')
-rw-r--r-- | drivers/clk/clk-stm32f4.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/clk/clk-stm32f4.c b/drivers/clk/clk-stm32f4.c index da44f8dc1d29..294850bdc195 100644 --- a/drivers/clk/clk-stm32f4.c +++ b/drivers/clk/clk-stm32f4.c | |||
@@ -282,6 +282,7 @@ static const struct stm32f4_gate_data stm32f746_gates[] __initconst = { | |||
282 | 282 | ||
283 | { STM32F4_RCC_APB2ENR, 0, "tim1", "apb2_mul" }, | 283 | { STM32F4_RCC_APB2ENR, 0, "tim1", "apb2_mul" }, |
284 | { STM32F4_RCC_APB2ENR, 1, "tim8", "apb2_mul" }, | 284 | { STM32F4_RCC_APB2ENR, 1, "tim8", "apb2_mul" }, |
285 | { STM32F4_RCC_APB2ENR, 7, "sdmmc2", "sdmux" }, | ||
285 | { STM32F4_RCC_APB2ENR, 8, "adc1", "apb2_div" }, | 286 | { STM32F4_RCC_APB2ENR, 8, "adc1", "apb2_div" }, |
286 | { STM32F4_RCC_APB2ENR, 9, "adc2", "apb2_div" }, | 287 | { STM32F4_RCC_APB2ENR, 9, "adc2", "apb2_div" }, |
287 | { STM32F4_RCC_APB2ENR, 10, "adc3", "apb2_div" }, | 288 | { STM32F4_RCC_APB2ENR, 10, "adc3", "apb2_div" }, |
@@ -315,7 +316,7 @@ static const u64 stm32f46xx_gate_map[MAX_GATE_MAP] = { 0x000000f17ef417ffull, | |||
315 | 316 | ||
316 | static const u64 stm32f746_gate_map[MAX_GATE_MAP] = { 0x000000f17ef417ffull, | 317 | static const u64 stm32f746_gate_map[MAX_GATE_MAP] = { 0x000000f17ef417ffull, |
317 | 0x0000000000000003ull, | 318 | 0x0000000000000003ull, |
318 | 0x04f77f033e01c9ffull }; | 319 | 0x04f77f833e01c9ffull }; |
319 | 320 | ||
320 | static const u64 *stm32f4_gate_map; | 321 | static const u64 *stm32f4_gate_map; |
321 | 322 | ||
@@ -521,7 +522,7 @@ static const struct stm32f4_pll_data stm32f429_pll[MAX_PLL_DIV] = { | |||
521 | }; | 522 | }; |
522 | 523 | ||
523 | static const struct stm32f4_pll_data stm32f469_pll[MAX_PLL_DIV] = { | 524 | static const struct stm32f4_pll_data stm32f469_pll[MAX_PLL_DIV] = { |
524 | { PLL, 50, { "pll", "pll-q", NULL } }, | 525 | { PLL, 50, { "pll", "pll-q", "pll-r" } }, |
525 | { PLL_I2S, 50, { "plli2s-p", "plli2s-q", "plli2s-r" } }, | 526 | { PLL_I2S, 50, { "plli2s-p", "plli2s-q", "plli2s-r" } }, |
526 | { PLL_SAI, 50, { "pllsai-p", "pllsai-q", "pllsai-r" } }, | 527 | { PLL_SAI, 50, { "pllsai-p", "pllsai-q", "pllsai-r" } }, |
527 | }; | 528 | }; |
@@ -1047,6 +1048,8 @@ static const char *rtc_parents[4] = { | |||
1047 | "no-clock", "lse", "lsi", "hse-rtc" | 1048 | "no-clock", "lse", "lsi", "hse-rtc" |
1048 | }; | 1049 | }; |
1049 | 1050 | ||
1051 | static const char *dsi_parent[2] = { NULL, "pll-r" }; | ||
1052 | |||
1050 | static const char *lcd_parent[1] = { "pllsai-r-div" }; | 1053 | static const char *lcd_parent[1] = { "pllsai-r-div" }; |
1051 | 1054 | ||
1052 | static const char *i2s_parents[2] = { "plli2s-r", NULL }; | 1055 | static const char *i2s_parents[2] = { "plli2s-r", NULL }; |
@@ -1156,6 +1159,12 @@ static const struct stm32_aux_clk stm32f469_aux_clk[] = { | |||
1156 | NO_GATE, 0, | 1159 | NO_GATE, 0, |
1157 | 0 | 1160 | 0 |
1158 | }, | 1161 | }, |
1162 | { | ||
1163 | CLK_F469_DSI, "dsi", dsi_parent, ARRAY_SIZE(dsi_parent), | ||
1164 | STM32F4_RCC_DCKCFGR, 29, 1, | ||
1165 | STM32F4_RCC_APB2ENR, 27, | ||
1166 | CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT | ||
1167 | }, | ||
1159 | }; | 1168 | }; |
1160 | 1169 | ||
1161 | static const struct stm32_aux_clk stm32f746_aux_clk[] = { | 1170 | static const struct stm32_aux_clk stm32f746_aux_clk[] = { |
@@ -1450,6 +1459,7 @@ static void __init stm32f4_rcc_init(struct device_node *np) | |||
1450 | stm32f4_gate_map = data->gates_map; | 1459 | stm32f4_gate_map = data->gates_map; |
1451 | 1460 | ||
1452 | hse_clk = of_clk_get_parent_name(np, 0); | 1461 | hse_clk = of_clk_get_parent_name(np, 0); |
1462 | dsi_parent[0] = hse_clk; | ||
1453 | 1463 | ||
1454 | i2s_in_clk = of_clk_get_parent_name(np, 1); | 1464 | i2s_in_clk = of_clk_get_parent_name(np, 1); |
1455 | 1465 | ||