mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Théo Lebrun" <theo.lebrun@bootlin.com>
To: "Linus Walleij" <linus.walleij@linaro.org>
Cc: "Gregory CLEMENT" <gregory.clement@bootlin.com>,
	"Michael Turquette" <mturquette@baylibre.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
	"Rafał Miłecki" <rafal@milecki.pl>,
	"Philipp Zabel" <p.zabel@pengutronix.de>,
	"Vladimir Kondratiev" <vladimir.kondratiev@mobileye.com>,
	linux-mips@vger.kernel.org, linux-clk@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
	"Tawfik Bayouk" <tawfik.bayouk@mobileye.com>,
	linux-gpio@vger.kernel.org
Subject: Re: [PATCH v4 10/18] pinctrl: eyeq5: add platform driver
Date: Thu, 01 Feb 2024 11:23:59 +0100	[thread overview]
Message-ID: <CYTO3C0G7083.1TVFK6PN35G1B@bootlin.com> (raw)
In-Reply-To: <CACRpkdZvj2E1zfSU1RGY2+_6sCCYxu=pbQ0yv+-bmTLGzEyFwg@mail.gmail.com>

Hi Linus,

On Wed Jan 31, 2024 at 9:55 PM CET, Linus Walleij wrote:
> Hi Theo,
>
> thanks for your patch!
>
> On Wed, Jan 31, 2024 at 5:27 PM Théo Lebrun <theo.lebrun@bootlin.com> 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@bootlin.com>
>
> The driver looks very nice and is using all standard features, I'm pretty sure
> we can merge this soon.

It is useful to get some feedback that tells me your state of mind as
one involved maintainer. Thanks.

>
> > +static void eq5p_update_bits(const struct eq5p_pinctrl *pctrl,
> > +                            enum eq5p_bank bank, enum eq5p_regs reg,
> > +                            u32 mask, u32 val)
> > +{
> > +       void __iomem *ptr = pctrl->base + eq5p_regs[bank][reg];
> > +
> > +       writel((readl(ptr) & ~mask) | (val & mask), ptr);
> > +}
>
> This is in practice a reimplementation of regmap MMIO.
>
> Can't you just use regmap MMIO to access the banks then...?
>
> Maybe it doesn't add much here. I'm not sure.

Indeed, I went the minimalist route. You tell me if you'd prefer an MMIO
regmap.

I've not seen any helper to get a regmap based on a resource, targeting
by name. Is the expected procedure to acquire the resource then create
a regmap config then call devm_regmap_init_mmio()?

>
> > +static bool eq5p_readl_bit(const struct eq5p_pinctrl *pctrl,
>
> eq5p_test_bit() maybe? that describes better what the
> function does.

Good idea, thanks.

>
> > +                          enum eq5p_bank bank, enum eq5p_regs reg, int bit)
> > +{
> > +       u32 val = readl(pctrl->base + eq5p_regs[bank][reg]);
> > +
> > +       return (val & BIT(bit)) != 0;
> > +}
>
> Maybe add a check for bit > 31?

Will do. I like that sort of defensive programming. What behavior would
you expect?
 - WARN_ON(bit > 31) and return false?
 - Just return false?
 - Something else?

Actually looking at uses of eq5p_readl_bit() I'm thinking about a bug
that might be occuring wrt the second bank and that offset. I'll make
sure to fix it for next revision.

> > +static int eq5p_pinctrl_get_group_pins(struct pinctrl_dev *pctldev,
> > +                                      unsigned int selector,
> > +                                      const unsigned int **pins,
> > +                                      unsigned int *num_pins)
> > +{
> > +       *pins = &pctldev->desc->pins[selector].number;
> > +       *num_pins = 1;
> > +       return 0;
> > +}
>
> One pin per group, also known as the "qualcomm trick".
>
> (It's fine.)

:-)

Thanks!

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

  reply	other threads:[~2024-02-01 10:24 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-31 16:26 [PATCH v4 00/18] Add support for Mobileye EyeQ5 system controller Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 01/18] clk: fixed-factor: add optional accuracy support Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 02/18] clk: fixed-factor: add fwname-based constructor functions Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 03/18] dt-bindings: pinctrl: allow pin controller device without unit address Théo Lebrun
2024-02-02 19:52   ` Rob Herring
2024-01-31 16:26 ` [PATCH v4 04/18] dt-bindings: clock: mobileye,eyeq5-clk: add bindings Théo Lebrun
2024-02-01  8:58   ` Krzysztof Kozlowski
2024-02-01 10:38     ` Théo Lebrun
2024-02-01 11:00       ` Krzysztof Kozlowski
2024-02-06 10:13         ` Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 05/18] dt-bindings: reset: mobileye,eyeq5-reset: " Théo Lebrun
2024-02-01  9:00   ` Krzysztof Kozlowski
2024-01-31 16:26 ` [PATCH v4 06/18] dt-bindings: pinctrl: mobileye,eyeq5-pinctrl: " Théo Lebrun
2024-02-05 17:19   ` Rob Herring
2024-01-31 16:26 ` [PATCH v4 07/18] dt-bindings: soc: mobileye: add EyeQ5 OLB system controller Théo Lebrun
2024-02-01  9:36   ` Krzysztof Kozlowski
2024-02-01 10:45     ` Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 08/18] clk: eyeq5: add platform driver, and init routine at of_clk_init() Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 09/18] reset: eyeq5: add platform driver Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 10/18] pinctrl: " Théo Lebrun
2024-01-31 20:55   ` Linus Walleij
2024-02-01 10:23     ` Théo Lebrun [this message]
2024-02-01 16:47       ` Linus Walleij
2024-01-31 16:26 ` [PATCH v4 11/18] MIPS: mobileye: eyeq5: rename olb@e00000 to system-controller@e00000 Théo Lebrun
2024-02-01  9:10   ` Krzysztof Kozlowski
2024-02-01  9:12     ` Krzysztof Kozlowski
2024-01-31 16:26 ` [PATCH v4 12/18] MIPS: mobileye: eyeq5: remove reg-io-width property from OLB syscon Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 13/18] MIPS: mobileye: eyeq5: add memory translation inside " Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 14/18] MIPS: mobileye: eyeq5: use OLB clocks controller Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 15/18] MIPS: mobileye: eyeq5: add OLB reset controller node Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 16/18] MIPS: mobileye: eyeq5: add reset properties to UARTs Théo Lebrun
2024-02-01  9:13   ` Krzysztof Kozlowski
2024-02-01 10:32     ` Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 17/18] MIPS: mobileye: eyeq5: add pinctrl nodes & pinmux function nodes Théo Lebrun
2024-01-31 16:26 ` [PATCH v4 18/18] MIPS: mobileye: eyeq5: add pinctrl properties to UART nodes Théo Lebrun
2024-01-31 20:44 ` [PATCH v4 00/18] Add support for Mobileye EyeQ5 system controller Linus Walleij
2024-02-01 10:30   ` Théo Lebrun

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CYTO3C0G7083.1TVFK6PN35G1B@bootlin.com \
    --to=theo.lebrun@bootlin.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregory.clement@bootlin.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=p.zabel@pengutronix.de \
    --cc=rafal@milecki.pl \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=tawfik.bayouk@mobileye.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=tsbogend@alpha.franken.de \
    --cc=vladimir.kondratiev@mobileye.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®