diff options
author | Yann Gautier <yann.gautier@st.com> | 2019-01-17 19:16:03 +0100 |
---|---|---|
committer | Yann Gautier <yann.gautier@st.com> | 2019-01-18 15:45:08 +0100 |
commit | c948f77136c42a92d0bb660543a3600c36dcf7f1 (patch) | |
tree | cd775e73ea2664e820bcb30c02a795d3742ab174 /drivers | |
parent | 23684d0e819b497d2661759b315e43e267a3a74c (diff) | |
download | trusted-firmware-a-c948f77136c42a92d0bb660543a3600c36dcf7f1.tar.gz |
stm32mp1: update device tree files
The drivers are also updated to reflect the changes.
Set RCC as non-secure.
Change-Id: I568fa1f418355830ad1d4d1cdcdb910fb362231b
Signed-off-by: Yann Gautier <yann.gautier@st.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/st/ddr/stm32mp1_ddr.c | 2 | ||||
-rw-r--r-- | drivers/st/ddr/stm32mp1_ram.c | 33 | ||||
-rw-r--r-- | drivers/st/mmc/stm32_sdmmc2.c | 8 |
3 files changed, 24 insertions, 19 deletions
diff --git a/drivers/st/ddr/stm32mp1_ddr.c b/drivers/st/ddr/stm32mp1_ddr.c index e109e87d61..9a50546ac2 100644 --- a/drivers/st/ddr/stm32mp1_ddr.c +++ b/drivers/st/ddr/stm32mp1_ddr.c @@ -707,7 +707,7 @@ void stm32mp1_ddr_init(struct ddr_info *priv, } VERBOSE("name = %s\n", config->info.name); - VERBOSE("speed = %d MHz\n", config->info.speed); + VERBOSE("speed = %d kHz\n", config->info.speed); VERBOSE("size = 0x%x\n", config->info.size); /* DDR INIT SEQUENCE */ diff --git a/drivers/st/ddr/stm32mp1_ram.c b/drivers/st/ddr/stm32mp1_ram.c index 127b6c7c1c..ddfc4a7628 100644 --- a/drivers/st/ddr/stm32mp1_ram.c +++ b/drivers/st/ddr/stm32mp1_ram.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018, STMicroelectronics - All Rights Reserved + * Copyright (C) 2018-2019, STMicroelectronics - All Rights Reserved * * SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */ @@ -25,7 +25,7 @@ static struct ddr_info ddr_priv_data; -int stm32mp1_ddr_clk_enable(struct ddr_info *priv, uint16_t mem_speed) +int stm32mp1_ddr_clk_enable(struct ddr_info *priv, uint32_t mem_speed) { unsigned long ddrphy_clk, ddr_clk, mem_speed_hz; @@ -33,10 +33,10 @@ int stm32mp1_ddr_clk_enable(struct ddr_info *priv, uint16_t mem_speed) ddrphy_clk = stm32mp1_clk_get_rate(DDRPHYC); - VERBOSE("DDR: mem_speed (%d MHz), RCC %ld MHz\n", - mem_speed, ddrphy_clk / 1000U / 1000U); + VERBOSE("DDR: mem_speed (%d kHz), RCC %ld kHz\n", + mem_speed, ddrphy_clk / 1000U); - mem_speed_hz = (uint32_t)mem_speed * 1000U * 1000U; + mem_speed_hz = mem_speed * 1000U; /* Max 10% frequency delta */ if (ddrphy_clk > mem_speed_hz) { @@ -44,9 +44,9 @@ int stm32mp1_ddr_clk_enable(struct ddr_info *priv, uint16_t mem_speed) } else { ddr_clk = mem_speed_hz - ddrphy_clk; } - if (ddr_clk > mem_speed_hz) { - ERROR("DDR expected freq %d MHz, current is %ld MHz\n", - mem_speed, ddrphy_clk / 1000U / 1000U); + if (ddr_clk > (mem_speed_hz / 10)) { + ERROR("DDR expected freq %d kHz, current is %ld kHz\n", + mem_speed, ddrphy_clk / 1000U); return -1; } return 0; @@ -208,11 +208,16 @@ static int stm32mp1_ddr_setup(void) return -EINVAL; } - config.info.speed = - (uint16_t)fdt_read_uint32_default(node, "st,mem-speed", - STM32MP1_DDR_SPEED_DFLT); - config.info.size = fdt_read_uint32_default(node, "st,mem-size", - STM32MP1_DDR_SIZE_DFLT); + config.info.speed = fdt_read_uint32_default(node, "st,mem-speed", 0); + if (!config.info.speed) { + VERBOSE("%s: no st,mem-speed\n", __func__); + return -EINVAL; + } + config.info.size = fdt_read_uint32_default(node, "st,mem-size", 0); + if (!config.info.size) { + VERBOSE("%s: no st,mem-size\n", __func__); + return -EINVAL; + } config.info.name = fdt_getprop(fdt, node, "st,mem-name", &len); if (config.info.name == NULL) { VERBOSE("%s: no st,mem-name\n", __func__); @@ -222,7 +227,7 @@ static int stm32mp1_ddr_setup(void) for (idx = 0; idx < ARRAY_SIZE(param); idx++) { ret = fdt_read_uint32_array(node, param[idx].name, - (void *)((uint32_t)&config + + (void *)((uintptr_t)&config + param[idx].offset), param[idx].size); diff --git a/drivers/st/mmc/stm32_sdmmc2.c b/drivers/st/mmc/stm32_sdmmc2.c index 05f5ae17c9..7445d88788 100644 --- a/drivers/st/mmc/stm32_sdmmc2.c +++ b/drivers/st/mmc/stm32_sdmmc2.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, STMicroelectronics - All Rights Reserved + * Copyright (c) 2018-2019, STMicroelectronics - All Rights Reserved * * SPDX-License-Identifier: BSD-3-Clause */ @@ -667,15 +667,15 @@ static int stm32_sdmmc2_dt_get_config(void) cuint++; sdmmc2_params.reset_id = fdt32_to_cpu(*cuint); - if ((fdt_getprop(fdt, sdmmc_node, "st,pin-ckin", NULL)) != NULL) { + if ((fdt_getprop(fdt, sdmmc_node, "st,use-ckin", NULL)) != NULL) { sdmmc2_params.pin_ckin = SDMMC_CLKCR_SELCLKRX_0; } - if ((fdt_getprop(fdt, sdmmc_node, "st,dirpol", NULL)) != NULL) { + if ((fdt_getprop(fdt, sdmmc_node, "st,sig-dir", NULL)) != NULL) { sdmmc2_params.dirpol = SDMMC_POWER_DIRPOL; } - if ((fdt_getprop(fdt, sdmmc_node, "st,negedge", NULL)) != NULL) { + if ((fdt_getprop(fdt, sdmmc_node, "st,neg-edge", NULL)) != NULL) { sdmmc2_params.negedge = SDMMC_CLKCR_NEGEDGE; } |