aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clk/clk-stm32f4.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/clk/clk-stm32f4.c')
-rw-r--r--drivers/clk/clk-stm32f4.c14
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
316static const u64 stm32f746_gate_map[MAX_GATE_MAP] = { 0x000000f17ef417ffull, 317static const u64 stm32f746_gate_map[MAX_GATE_MAP] = { 0x000000f17ef417ffull,
317 0x0000000000000003ull, 318 0x0000000000000003ull,
318 0x04f77f033e01c9ffull }; 319 0x04f77f833e01c9ffull };
319 320
320static const u64 *stm32f4_gate_map; 321static 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
523static const struct stm32f4_pll_data stm32f469_pll[MAX_PLL_DIV] = { 524static 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
1051static const char *dsi_parent[2] = { NULL, "pll-r" };
1052
1050static const char *lcd_parent[1] = { "pllsai-r-div" }; 1053static const char *lcd_parent[1] = { "pllsai-r-div" };
1051 1054
1052static const char *i2s_parents[2] = { "plli2s-r", NULL }; 1055static 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
1161static const struct stm32_aux_clk stm32f746_aux_clk[] = { 1170static 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