[RFC] serial: mxc: get the clock frequency from the used clock for the device
heiko.thiery at gmail.com
Mon Mar 21 14:50:07 CET 2022
> > 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
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.
More information about the U-Boot