[RFC] serial: mxc: get the clock frequency from the used clock for the device
Heiko Thiery
heiko.thiery at gmail.com
Mon Mar 21 14:50:07 CET 2022
Hi Angus,
[snip]
> > So I'm not sure if the ipg clock is the right one for the boards that
> > has different clock for ipg and per.
>
> So I only looked at imx6qdl.dtsi where the clocks are different
>
> clocks = <&clks IMX6QDL_CLK_UART_IPG>,
> <&clks IMX6QDL_CLK_UART_SERIAL>;
> clock-names = "ipg", "per";
>
> And from that file it looks like the per clock would be the correct one.
Yes, 'per' seems to be the right one.
> Should the clock be looked up by id instead of by name and then have a
> different code path for each imx board type ?
But how to get the right clk id? The id's for all the implementations
are different. Or not?
>
> >
> >> > + }
> >> > +
> >> > + /* as fallback we try to get the clk rate that way */
> >> > + if (rate == 0)
> >> > + rate = imx_get_uartclk();
> >>
> >> Would it be better to re-write imx_get_uartclk so that both the
> >> getting
> >> and setting of clocks was correct ?
> >
> > I do not understand what you mean with that.
> >
>
> There are other places in the code that imx_get_uartclk gets called. If
> an index was added to imx_get_uartclk(int index) then you wouldn't need
> the code above in the mxc_serial_setbrg function. That would also make
> all of the places where imx_get_uartclk gets called return the correct
> value.
By index do you mean the clk id?
>
> It might make sense to create a new function imx7_get_uartclk that gets
> called on newer SOCs so that the imx6 and earlier code doesn't need to
> get changed.
At what point should this be called instead of the imx_get_uartclk() function?
>
> >> With DM clocks enabled I don't even think it makes sense to call those
> >> older functions.
> >
> > You mean when DM clocks are available the "new" method should be used
> > and no fallback to the old mechanism?
> >
>
> For older boards it makes sense to fallback to the single clock. On
> newer boards if it returned an error instead it would have been easier
> for you to figure out where the serial console failed.
--
Heiko
More information about the U-Boot
mailing list