Re: [PATCH v3 10/17] pinctrl: eyeq5: add platform driver

From: Théo Lebrun
Date: Wed Jan 24 2024 - 12:40:38 EST


Hello,

On Wed Jan 24, 2024 at 4:19 PM CET, Rob Herring wrote:
> On Tue, Jan 23, 2024 at 07:46:55PM +0100, Théo Lebrun wrote:
> > Add the Mobileye EyeQ5 pin controller driver. It might grow to add later
> > support of other platforms from Mobileye. It belongs to a syscon region
> > called OLB.
> >
> > Existing pins and their function live statically in the driver code
> > rather than in the devicetree, see compatible match data.
> >
> > Signed-off-by: Théo Lebrun <theo.lebrun@xxxxxxxxxxx>
> > ---

[...]

> > diff --git a/drivers/pinctrl/pinctrl-eyeq5.c b/drivers/pinctrl/pinctrl-eyeq5.c

[...]

> > +static const struct eq5p_match eq5p_match_a = {
> > + .regs = {
> > + [EQ5P_PD] = 0x0C0,
> > + [EQ5P_PU] = 0x0C4,
> > + [EQ5P_DS_LOW] = 0x0D0,
> > + [EQ5P_DS_HIGH] = 0x0D4,
> > + [EQ5P_IOCR] = 0x0B0,
> > + },
> > + .pins = eq5p_pins_a,
> > + .npins = ARRAY_SIZE(eq5p_pins_a),
> > + .funcs = eq5p_functions_a,
> > + .nfuncs = ARRAY_SIZE(eq5p_functions_a),
> > +};
> > +
> > +static const struct eq5p_match eq5p_match_b = {
> > + .regs = {
> > + [EQ5P_PD] = 0x0C8,
> > + [EQ5P_PU] = 0x0CC,
> > + [EQ5P_DS_LOW] = 0x0D8,
> > + [EQ5P_DS_HIGH] = 0x0DC,
> > + [EQ5P_IOCR] = 0x0B4,
> > + },
>
> These are all the same relative offsets, so you really only need to
> store the base offset.

Indeed, and I don't think I had even noticed. Thanks.

> The use of 2 compatibles is a bit questionable as the programming model
> appears to be the same and only which pins differ. Surely there are
> some other pinctrl drivers handling mutiple instances.

I can confirm the programming model is the same across both banks. I've
addressed your comment in my answer to yours on [PATCH v3 04/17].


Thanks,

--
Théo Lebrun, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com