[PATCH v2] ARM: imx: verdin-imx8mm: Set CAN oscillator frequency based on model
Francesco Dolcini
francesco at dolcini.it
Thu May 23 17:03:59 CEST 2024
On Wed, May 22, 2024 at 03:23:51PM +0200, Marek Vasut wrote:
> On 5/22/24 8:39 AM, Francesco Dolcini wrote:
> > > diff --git a/board/toradex/verdin-imx8mm/verdin-imx8mm.c b/board/toradex/verdin-imx8mm/verdin-imx8mm.c
> > > index 55c02653da6..ef632d95f0a 100644
> > > --- a/board/toradex/verdin-imx8mm/verdin-imx8mm.c
> > > +++ b/board/toradex/verdin-imx8mm/verdin-imx8mm.c
> > > @@ -125,6 +125,36 @@ 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 freq = 40000000; /* 40 MHz is used on most variants */
> > > + int canoscoff, ret;
> > > +
> > > + canoscoff = fdt_path_offset(blob, canoscpath);
> > > + if (canoscoff < 0) /* No CAN oscillator found. */
> > > + goto exit;
> > > +
> > > + /*
> > > + * The actual "prodid" (PID4 in Toradex naming) that have the CAN
> > > + * functionality are 0055 and 0059. Special case 20 MHz variant
> > > + * here:
> > > + * - 0055, V1.1A, V1.1B, V1.1C and V1.1D, use a 20MHz oscillator
> > > + * - 0059, V1.1A and V1.1B, use a 20MHz oscillator
> > > + */
> >
> > Any reason why you ignored my suggestion here? The variants you list
> > here are the only one with a 20MHz oscillator, and this is correct.
> >
> > What is not correct is that 0055/0059 are the only variant with CAN
> > functionality. We have other "prodid" with CAN functionality.
> >
> > With that said, the code is correct, thanks. I appreciate you taking care
> > of this.
>
> So ... what should I change for V3 ?
>
> Maybe just create me a diff I can squash into the patch before resend ? (I
> think I am a bit confused, I thought I addressed all the V1 feedback)
Sorry for the confusion, here the diff.
With that please add
Reviewed-by: Francesco Dolcini <francesco.dolcini at toradex.com>
diff --git a/board/toradex/verdin-imx8mm/verdin-imx8mm.c b/board/toradex/verdin-imx8mm/verdin-imx8mm.c
index ef632d95f0a5..59cc28f652f1 100644
--- a/board/toradex/verdin-imx8mm/verdin-imx8mm.c
+++ b/board/toradex/verdin-imx8mm/verdin-imx8mm.c
@@ -134,11 +134,10 @@ int ft_board_setup(void *blob, struct bd_info *bd)
goto exit;
/*
- * The actual "prodid" (PID4 in Toradex naming) that have the CAN
- * functionality are 0055 and 0059. Special case 20 MHz variant
- * here:
- * - 0055, V1.1A, V1.1B, V1.1C and V1.1D, use a 20MHz oscillator
- * - 0059, V1.1A and V1.1B, use a 20MHz oscillator
+ * The followings "prodid" (PID4 in Toradex naming) use
+ * a 20MHz CAN oscillator:
+ * - 0055, V1.1A, V1.1B, V1.1C and V1.1D
+ * - 0059, V1.1A and V1.1B
*/
if ((tdx_hw_tag.ver_major == 1 && tdx_hw_tag.ver_minor == 1) &&
((tdx_hw_tag.prodid == VERDIN_IMX8MMQ_IT &&
More information about the U-Boot
mailing list