Hi Prabhakar, On Mon, Nov 16, 2020 at 9:54 AM Lad, Prabhakar <prabhakar.csengg@xxxxxxxxx> wrote: > On Mon, Nov 16, 2020 at 8:34 AM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > On Tue, Nov 10, 2020 at 1:56 PM Lad Prabhakar > > <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> wrote: > > > Describe the RPCSRC internal clock and the RPC[D2] clocks derived from it, > > > as well as the RPC-IF module clock, in the RZ/G2E (R8A774C0) CPG/MSSR > > > driver. > > > > > > Add new clk type CLK_TYPE_GEN3E3_RPCSRC to register rpcsrc as a fixed > > > clock on R-Car Gen3 E3 (and also RZ/G2E which is identical to E3 SoC), > > > parent and the divider is set based on the register value CPG_RPCCKCR[4:3] > > > (parent is cross verified against MD[4:1] pins) which has been set prior > > > to booting the kernel. > > > > > > MD[4] MD[3] MD[2] MD[1] > > > 0 0 0 1 -> RPCSRC CLK source is PLL1 > > > 0 0 1 1 -> RPCSRC CLK source is PLL1 > > > 0 1 0 0 -> RPCSRC CLK source is PLL1 > > > 1 0 1 1 -> RPCSRC CLK source is PLL1 > > > x x x x -> For any other values RPCSRC CLK source is PLL0 > > > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > > > Reviewed-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> > > > + switch (value) { > > > + case 0: > > > + div = 5; > > > + break; > > > + case 1: > > > + div = 3; > > > + break; > > > + case 2: > > > + parent = clks[core->parent >> 16]; > > > + if (IS_ERR(parent)) > > > + return ERR_CAST(parent); > > > + div = 8; > > > > R-Car D3 is very similar, but uses div = 5 instead of 8. > > Perhaps this value can be retrieved from cpg_core_clk.div? > > Of course, we can do that later, when D3 support is added. > > > Agreed, should the below be OK ? > > #define DEF_FIXED_RPCSRC_E3(_name, _id, _parent0, _parent1, _div) Fine, but then I would drop the _E3 suffix ;-) Alternatively, you can just hide the fixed 8 inside the macro, and add a seperate macro for D3 later. Up to you. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds