[PATCH v2 11/16] board: stm32pm1: add stm32mp13 board support
Patrice CHOTARD
patrice.chotard at foss.st.com
Mon May 23 08:58:27 CEST 2022
Hi Patrick
On 5/20/22 18:24, Patrick Delaunay wrote:
> Add stm32mp15x prefix to all STM32MP15x board specific functions,
> this patch is a preliminary step for STM32MP13x support.
>
> This patch also adds the RCC probe to avoid circular access with
> usbphyc probe as clk provider.
>
> Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
> ---
>
> Changes in v2:
> - fix typo in commit message
>
> board/st/stm32mp1/stm32mp1.c | 27 ++++++++++++++++++---------
> 1 file changed, 18 insertions(+), 9 deletions(-)
>
> diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c
> index 07b1a63db7..6f5ff423fe 100644
> --- a/board/st/stm32mp1/stm32mp1.c
> +++ b/board/st/stm32mp1/stm32mp1.c
> @@ -554,8 +554,7 @@ static void sysconf_init(void)
> clrbits_le32(syscfg + SYSCFG_CMPCR, SYSCFG_CMPCR_SW_CTRL);
> }
>
> -/* Fix to make I2C1 usable on DK2 for touchscreen usage in kernel */
> -static int dk2_i2c1_fix(void)
> +static int board_stm32mp15x_dk2_init(void)
> {
> ofnode node;
> struct gpio_desc hdmi, audio;
> @@ -564,6 +563,7 @@ static int dk2_i2c1_fix(void)
> if (!IS_ENABLED(CONFIG_DM_REGULATOR))
> return -ENODEV;
>
> + /* Fix to make I2C1 usable on DK2 for touchscreen usage in kernel */
> node = ofnode_path("/soc/i2c at 40012000/hdmi-transmitter at 39");
> if (!ofnode_valid(node)) {
> log_debug("no hdmi-transmitter at 39 ?\n");
> @@ -611,7 +611,7 @@ error:
> return ret;
> }
>
> -static bool board_is_dk2(void)
> +static bool board_is_stm32mp15x_dk2(void)
> {
> if (CONFIG_IS_ENABLED(TARGET_ST_STM32MP15x) &&
> of_machine_is_compatible("st,stm32mp157c-dk2"))
> @@ -620,7 +620,7 @@ static bool board_is_dk2(void)
> return false;
> }
>
> -static bool board_is_ev1(void)
> +static bool board_is_stm32mp15x_ev1(void)
> {
> if (CONFIG_IS_ENABLED(TARGET_ST_STM32MP15x) &&
> (of_machine_is_compatible("st,stm32mp157a-ev1") ||
> @@ -644,7 +644,7 @@ U_BOOT_DRIVER(goodix) = {
> .of_match = goodix_ids,
> };
>
> -static void board_ev1_init(void)
> +static void board_stm32mp15x_ev1_init(void)
> {
> struct udevice *dev;
>
> @@ -655,13 +655,22 @@ static void board_ev1_init(void)
> /* board dependent setup after realloc */
> int board_init(void)
> {
> + struct udevice *dev;
> + int ret;
> +
> + /* probe RCC to avoid circular access with usbphyc probe as clk provider */
> + if (IS_ENABLED(CONFIG_CLK_STM32MP13)) {
> + ret = uclass_get_device_by_driver(UCLASS_CLK, DM_DRIVER_GET(stm32mp1_clock), &dev);
> + log_debug("Clock init failed: %d\n", ret);
> + }
> +
> board_key_check();
>
> - if (board_is_ev1())
> - board_ev1_init();
> + if (board_is_stm32mp15x_ev1())
> + board_stm32mp15x_ev1_init();
>
> - if (board_is_dk2())
> - dk2_i2c1_fix();
> + if (board_is_stm32mp15x_dk2())
> + board_stm32mp15x_dk2_init();
>
> if (IS_ENABLED(CONFIG_DM_REGULATOR))
> regulators_enable_boot_on(_DEBUG);
Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>
Thanks
Patrice
More information about the U-Boot
mailing list