All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peng Fan <peng.fan@oss.nxp.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Linus Walleij <linusw@kernel.org>,
	Bartosz Golaszewski <brgl@kernel.org>,
	Frank Li <Frank.Li@nxp.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	Shenwei Wang <shenwei.wang@nxp.com>,
	linux-gpio@vger.kernel.org, imx@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, Peng Fan <peng.fan@nxp.com>
Subject: Re: [PATCH v6 06/13] gpio: mxc: replace of_device_is_compatible() with hwdata flags
Date: Mon, 12 Oct 2026 17:59:12 +0800	[thread overview]
Message-ID: <asyvcJxbM5aD8pzE@shlinux89> (raw)
In-Reply-To: <CAHp75VcadkqzMxShq1PLzqgNZypB+vqr3a_m1utu-NOx39iK1g@mail.gmail.com>

On Mon, Oct 12, 2026 at 12:25:41PM +0300, Andy Shevchenko wrote:
>On Sun, Oct 11, 2026 at 2:54 PM Peng Fan (OSS) <peng.fan@oss.nxp.com> wrote:
>
>>
>> Replace the runtime of_device_is_compatible() check for "fsl,imx7d-gpio"
>> with a flags field in mxc_gpio_hwdata to move the power-off capability
>> from a per-instance bool populated at probe time to static per-compatible
>> data.
>>
>> Introduce MXC_GPIO_HAS_POWER_OFF and a dedicated imx7d_gpio_hwdata
>> instance that carries it, along with a mxc_gpio_has_power_off() helper
>> that replaces every former port->power_off test.
>>
>> While at it, factor the register offsets shared by imx35 and imx7d into
>> a MXC_GPIO_HW_DATA_COMMON macro to avoid duplicating twelve identical
>> initializers.
>
>...
>
>>  struct mxc_gpio_hwdata {
>>         unsigned dr_reg;
>
>>         unsigned high_level;
>>         unsigned rise_edge;
>>         unsigned fall_edge;
>> +       unsigned int flags;
>
>Obviously you need another precursor patch to move from 'unsigned' to
>'unsigned int' in the whole driver.

Could we keep as it is? I try to avoid adding more changes if not critical.

>
>>  };
>
>...
>
>> +#define MXC_GPIO_HW_DATA_COMMON        \
>> +       .dr_reg         = 0x00, \
>> +       .gdir_reg       = 0x04, \
>> +       .psr_reg        = 0x08, \
>> +       .icr1_reg       = 0x0c, \
>> +       .icr2_reg       = 0x10, \
>> +       .imr_reg        = 0x14, \
>> +       .isr_reg        = 0x18, \
>> +       .edge_sel_reg   = 0x1c, \
>> +       .low_level      = 0x00, \
>> +       .high_level     = 0x01, \
>> +       .rise_edge      = 0x02, \
>> +       .fall_edge      = 0x03
>
>Why?! Just to save a few lines? This makes it harder to follow the data part.

If I expand the macro the imx7d, imx8qm, imx8qxp hwdata, 24 lines will be
duplicated. I would keep as it is.

The current hwdata as below:
static struct mxc_gpio_hwdata imx7d_gpio_hwdata = {
        MXC_GPIO_HW_DATA_COMMON,
        .flags = MXC_GPIO_HAS_POWER_OFF,
};

static struct mxc_gpio_hwdata imx8qm_gpio_hwdata = {
        MXC_GPIO_HW_DATA_COMMON,
        .flags = MXC_GPIO_FALL_EDGE_WAKEUP_BROKEN | MXC_GPIO_HAS_PAD_WAKEUP,
};

static struct mxc_gpio_hwdata imx8qxp_gpio_hwdata = {
        MXC_GPIO_HW_DATA_COMMON,
        .flags = MXC_GPIO_HAS_PAD_WAKEUP,
};

Thanks
Peng
>
>-- 
>With Best Regards,
>Andy Shevchenko
>

  reply	other threads:[~2026-10-12  9:54 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-11 11:51 [PATCH v6 00/13] gpio: mxc: bug fixes and probe cleanup Peng Fan (OSS)
2026-10-11 11:51 ` [PATCH v6 01/13] gpio: mxc: fix race between chained IRQ handler install and probe completion Peng Fan (OSS)
2026-10-11 12:05   ` sashiko-bot
2026-10-12  4:14     ` Peng Fan
2026-10-11 11:51 ` [PATCH v6 02/13] gpio: mxc: fix both_edges bit operations Peng Fan (OSS)
2026-10-12  9:18   ` Andy Shevchenko
2026-10-12  9:52     ` Peng Fan
2026-10-11 11:51 ` [PATCH v6 03/13] gpio: mxc: fix wakeup_pads " Peng Fan (OSS)
2026-10-12  9:15   ` Andy Shevchenko
2026-10-12  9:51     ` Peng Fan
2026-10-12 10:30       ` Andy Shevchenko
2026-10-12 11:41         ` Peng Fan
2026-10-12 18:25           ` Andy Shevchenko
2026-10-11 11:51 ` [PATCH v6 04/13] gpio: mxc: use irq_set_irq_wake() to simplify code Peng Fan (OSS)
2026-10-11 11:51 ` [PATCH v6 05/13] gpio: mxc: use for_each_set_bit() to iterate wakeup pads Peng Fan (OSS)
2026-10-12  9:19   ` Andy Shevchenko
2026-10-12  9:53     ` Peng Fan
2026-10-11 11:51 ` [PATCH v6 06/13] gpio: mxc: replace of_device_is_compatible() with hwdata flags Peng Fan (OSS)
2026-10-12  9:25   ` Andy Shevchenko
2026-10-12  9:59     ` Peng Fan [this message]
2026-10-12 10:32       ` Andy Shevchenko
2026-10-11 11:51 ` [PATCH v6 07/13] gpio: mxc: convert pad wakeup compatible checks to " Peng Fan (OSS)
2026-10-12  9:27   ` Andy Shevchenko
2026-10-12 10:01     ` Peng Fan
2026-10-12 14:31       ` Frank Li
2026-10-11 11:51 ` [PATCH v6 08/13] gpio: mxc: use local dev variable Peng Fan (OSS)
2026-10-12  9:30   ` Andy Shevchenko
2026-10-12 10:05     ` Peng Fan
2026-10-12 10:39       ` Andy Shevchenko
2026-10-12 11:52         ` Peng Fan
2026-10-11 11:51 ` [PATCH v6 09/13] gpio: mxc: use cleanup guard for pm_runtime_get_noresume() balance Peng Fan (OSS)
2026-10-12  9:38   ` Andy Shevchenko
2026-10-12 10:10     ` Peng Fan
2026-10-12 10:41       ` Andy Shevchenko
2026-10-11 11:51 ` [PATCH v6 10/13] gpio: mxc: use devres functions simplify probe code Peng Fan (OSS)
2026-10-11 12:05   ` sashiko-bot
2026-10-12  4:12     ` Peng Fan
2026-10-11 11:51 ` [PATCH v6 11/13] gpio: mxc: add dev_err_probe() for error paths to help diagnostics Peng Fan (OSS)
2026-10-11 12:04   ` sashiko-bot
2026-10-12  4:13     ` Peng Fan
2026-10-11 11:51 ` [PATCH v6 12/13] gpio: mxc: introduce MXC_ICR macros and use field_prep/field_get Peng Fan (OSS)
2026-10-11 11:51 ` [PATCH v6 13/13] gpio: mxc: use BIT() macro for single-bit operations Peng Fan (OSS)

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=asyvcJxbM5aD8pzE@shlinux89 \
    --to=peng.fan@oss.nxp.com \
    --cc=Frank.Li@nxp.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=brgl@kernel.org \
    --cc=festevam@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=kernel@pengutronix.de \
    --cc=linusw@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peng.fan@nxp.com \
    --cc=s.hauer@pengutronix.de \
    --cc=shenwei.wang@nxp.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.