Hi Marek

Thanks, seems like a decent idea. I guess we just did not do it as those 
previous revisions were just samples
but with this change can still be used much easier (e.g. without requiring 
manual intervention).

On Sat, 2024-01-13 at 19:33 +0100, Marek Vasut wrote:
> The older i.MX8M Mini Verdin SoMs before rev. 1.1C came with 20 MHz SPI CAN
> controller oscillator, the newer SoMs use 40 MHz oscillator. Handle both by
> overriding the oscillator frequency just before booting the kernel.
> 
> Signed-off-by: Marek Vasut <ma...@denx.de>
> ---
> Cc: "NXP i.MX U-Boot Team" <uboot-...@nxp.com>
> Cc: Fabio Estevam <feste...@gmail.com>
> Cc: Francesco Dolcini <francesco.dolc...@toradex.com>
> Cc: Marcel Ziswiler <marcel.ziswi...@toradex.com>
> Cc: Philippe Schenker <philippe.schen...@toradex.com>
> Cc: Stefano Babic <sba...@denx.de>

Acked-by: Marcel Ziswiler <marcel.ziswi...@toradex.com>

> ---
>  board/toradex/verdin-imx8mm/verdin-imx8mm.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/board/toradex/verdin-imx8mm/verdin-imx8mm.c 
> b/board/toradex/verdin-imx8mm/verdin-imx8mm.c
> index b2781b51d6a..8bc1a51eeb1 100644
> --- a/board/toradex/verdin-imx8mm/verdin-imx8mm.c
> +++ b/board/toradex/verdin-imx8mm/verdin-imx8mm.c
> @@ -142,6 +142,25 @@ int board_phys_sdram_size(phys_size_t *size)
>  #if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
>  int ft_board_setup(void *blob, struct bd_info *bd)
>  {
> +     const char *canoscpath = "/oscillator";
> +     int canoscoff, freq, ret;
> +
> +     canoscoff = fdt_path_offset(blob, canoscpath);
> +     if (canoscoff < 0)      /* No CAN oscillator found. */
> +             goto exit;
> +
> +     if (tdx_hw_tag.ver_assembly < 2)        /* rev. A or B */
> +             freq = 20000000;
> +     else                                    /* rev. C or newer */
> +             freq = 40000000;
> +
> +     ret = fdt_setprop_u32(blob, canoscoff, "clock-frequency", freq);
> +     if (ret < 0) {
> +             printf("Failed to set CAN oscillator clock-frequency, ret=%d\n",
> +                     ret);
> +     }
> +
> +exit:
>       return ft_common_board_setup(blob, bd);
>  }
>  #endif

Cheers

Marcel

Reply via email to