Re: [PATCH v4 3/8] dt-bindings: clock: Add Marvell PXA1908 clock bindings

Duje Mihanović
2023-08-08T20:48:22Z

On Tuesday, August 8, 2023 9:49:49 AM CEST Conor Dooley wrote:
> On Mon, Aug 07, 2023 at 05:42:37PM +0200, Duje Mihanović wrote:
> > diff --git a/include/dt-bindings/clock/marvell,pxa1908.h
> > b/include/dt-bindings/clock/marvell,pxa1908.h new file mode 100644
> > index 000000000000..0c1f328bf534
> > --- /dev/null
> > +++ b/include/dt-bindings/clock/marvell,pxa1908.h
> > +#define PXA1908_CLK_PLL4VCODIV3 38
> > +#define PXA1908_MPMU_NR_CLKS 38
> >
> > +#define PXA1908_CLK_TWSI3 18
> > +#define PXA1908_APBC_NR_CLKS 50
> >
> > +#define PXA1908_CLK_AICER 3
> > +#define PXA1908_APBCP_NR_CLKS 50
> >
> > +#define PXA1908_CLK_DVC_DFC_DEBUG 16
> > +#define PXA1908_APMU_NR_CLKS 50
>
> How are these "NR_CLKS" things helpful to the binding?

They are used by the clock driver when calling mmp_clk_init which then uses
that as the size of a struct clk array it allocates. In retrospect, 50 for
each block may be too much as from what I can tell by reading the
mmp_register_* functions (number of clocks + 1) for each block should be
enough, anything less than that causes a null pointer dereference sometime
during clock initialization.

Regards,
Duje