From: Chen-Yu Tsai <wenst@chromium.org>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Rob Herring <robh@kernel.org>,
Saravana Kannan <saravanak@google.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Wolfram Sang <wsa@kernel.org>, Benson Leung <bleung@chromium.org>,
Tzung-Bi Shih <tzungbi@kernel.org>,
chrome-platform@lists.linux.dev, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org,
Douglas Anderson <dianders@chromium.org>,
Johan Hovold <johan@kernel.org>, Jiri Kosina <jikos@kernel.org>,
linux-i2c@vger.kernel.org
Subject: Re: [PATCH v8 7/8] platform/chrome: Introduce device tree hardware prober
Date: Tue, 15 Oct 2024 15:51:21 +0800 [thread overview]
Message-ID: <20241015075121.GA292890@google.com> (raw)
In-Reply-To: <Zwz_p3o1PJF6sl2Y@smile.fi.intel.com>
On Mon, Oct 14, 2024 at 02:25:27PM +0300, Andy Shevchenko wrote:
> On Mon, Oct 14, 2024 at 03:04:44PM +0800, Chen-Yu Tsai wrote:
> > On Thu, Oct 10, 2024 at 11:29 PM Andy Shevchenko
> > <andriy.shevchenko@linux.intel.com> wrote:
> > > On Tue, Oct 08, 2024 at 03:34:26PM +0800, Chen-Yu Tsai wrote:
>
> ...
>
> > > > +static const struct chromeos_i2c_probe_data chromeos_i2c_probe_hana_trackpad = {
> > > > + .cfg = &chromeos_i2c_probe_simple_trackpad_cfg,
> > >
> > > .cfg = DEFINE_I2C_OF_PROBE_CFG(trackpad, i2c_of_probe_simple_ops),
> > >
> > > Or even
> > >
> > > #define DEFINE_I2C_OF_PROBE_CFG_SIMPLE(_type_) \
> > > DEFINE_I2C_OF_PROBE_CFG(type, &i2c_of_probe_simple_ops)
> > >
> > > > + .opts = &(const struct i2c_of_probe_simple_opts) {
> > >
> > > Perhaps also DEFINE_xxx for this compound literal?
> >
> > I think it's better to leave this one as is.
>
> Using a compound literal like this questions the entire approach.
I don't follow. It's a valid use.
> Why you can't you drop it and use the static initializers?
Did you mean split that part out as a separate variable:
static const struct i2c_of_probe_simple_opts
chromeos_i2c_probe_voltorb_tch_opts = {
.res_node_compatible = "elan,ekth6915",
.supply_name = "vcc33",
.gpio_name = "reset",
.post_power_on_delay_ms = 1,
.post_gpio_config_delay_ms = 300,
.gpio_assert_to_enable = true,
};
static const struct chromeos_i2c_probe_data
chromeos_i2c_probe_voltorb_touchscreen = {
.cfg = &chromeos_i2c_probe_simple_touchscreen_cfg,
.opts = &chromeos_i2c_probe_voltorb_tch_opts,
};
Instead of the following, which is slightly shorter, and gets rid of one
explicit symbol name:
static const struct chromeos_i2c_probe_data
chromeos_i2c_probe_voltorb_touchscreen = {
.cfg = &chromeos_i2c_probe_simple_touchscreen_cfg,
.opts = &(const struct i2c_of_probe_simple_opts) {
.res_node_compatible = "elan,ekth6915",
.supply_name = "vcc33",
.gpio_name = "reset",
.post_power_on_delay_ms = 1,
.post_gpio_config_delay_ms = 300,
.gpio_assert_to_enable = true,
},
};
ChenYu
> > Not every entry will
> > use the same combination of parameters. And having the entry spelled
> > out like this makes it easier to read which value is for what
> > parameter, instead of having to go up to the macro definition.
> >
> > For comparison, this entry uses just two of the parameters, while for
> > another platform I'm working on the full set of parameters is needed.
> >
> > > > + .res_node_compatible = "elan,ekth3000",
> > > > + .supply_name = "vcc",
> > > > + /*
> > > > + * ELAN trackpad needs 2 ms for H/W init and 100 ms for F/W init.
> > > > + * Synaptics trackpad needs 100 ms.
> > > > + * However, the regulator is set to "always-on", presumably to
> > > > + * avoid this delay. The ELAN driver is also missing delays.
> > > > + */
> > > > + .post_power_on_delay_ms = 0,
> > > > + }
> > > > +};
>
> --
> With Best Regards,
> Andy Shevchenko
>
>
next prev parent reply other threads:[~2024-10-15 7:51 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-08 7:34 [PATCH v8 0/8] platform/chrome: Introduce DT hardware prober Chen-Yu Tsai
2024-10-08 7:34 ` [PATCH v8 1/8] of: dynamic: Add of_changeset_update_prop_string Chen-Yu Tsai
2024-10-08 7:34 ` [PATCH v8 2/8] of: base: Add for_each_child_of_node_with_prefix() Chen-Yu Tsai
2024-10-08 7:34 ` [PATCH v8 3/8] i2c: core: Remove extra space in Makefile Chen-Yu Tsai
2024-10-08 8:34 ` Wolfram Sang
2024-10-08 7:34 ` [PATCH v8 4/8] i2c: Introduce OF component probe function Chen-Yu Tsai
2024-10-10 15:16 ` Andy Shevchenko
2024-10-14 3:53 ` Chen-Yu Tsai
2024-10-14 11:16 ` Andy Shevchenko
2024-10-15 5:22 ` Chen-Yu Tsai
2024-10-15 17:58 ` Doug Anderson
2024-10-15 18:03 ` Andy Shevchenko
2024-10-16 7:01 ` Chen-Yu Tsai
2024-10-16 9:28 ` Chen-Yu Tsai
2024-10-16 10:29 ` Andy Shevchenko
2024-10-08 7:34 ` [PATCH v8 5/8] i2c: of-prober: Add simple helpers for regulator support Chen-Yu Tsai
2024-10-15 17:58 ` Doug Anderson
2024-10-15 18:04 ` Andy Shevchenko
2024-10-16 7:39 ` Chen-Yu Tsai
2024-10-08 7:34 ` [PATCH v8 6/8] i2c: of-prober: Add GPIO support to simple helpers Chen-Yu Tsai
2024-10-10 15:20 ` Andy Shevchenko
2024-10-14 4:06 ` Chen-Yu Tsai
2024-10-14 11:20 ` Andy Shevchenko
2024-10-15 5:31 ` Chen-Yu Tsai
2024-10-15 11:19 ` Andy Shevchenko
2024-10-15 12:05 ` Chen-Yu Tsai
2024-10-15 5:34 ` Chen-Yu Tsai
2024-10-15 11:21 ` Andy Shevchenko
2024-10-15 17:58 ` Doug Anderson
2024-10-16 7:49 ` Chen-Yu Tsai
2024-10-16 15:34 ` Doug Anderson
2024-10-08 7:34 ` [PATCH v8 7/8] platform/chrome: Introduce device tree hardware prober Chen-Yu Tsai
2024-10-10 15:29 ` Andy Shevchenko
2024-10-10 15:32 ` Andy Shevchenko
2024-10-14 4:56 ` Chen-Yu Tsai
2024-10-14 11:23 ` Andy Shevchenko
2024-10-15 6:32 ` Chen-Yu Tsai
2024-10-15 11:23 ` Andy Shevchenko
2024-10-15 12:18 ` Chen-Yu Tsai
2024-10-15 12:54 ` Andy Shevchenko
2024-10-14 7:04 ` Chen-Yu Tsai
2024-10-14 11:25 ` Andy Shevchenko
2024-10-15 7:51 ` Chen-Yu Tsai [this message]
2024-10-15 17:59 ` Doug Anderson
2024-10-08 7:34 ` [PATCH v8 8/8] arm64: dts: mediatek: mt8173-elm-hana: Mark touchscreens and trackpads as fail Chen-Yu Tsai
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=20241015075121.GA292890@google.com \
--to=wenst@chromium.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bleung@chromium.org \
--cc=chrome-platform@lists.linux.dev \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=jikos@kernel.org \
--cc=johan@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=robh@kernel.org \
--cc=saravanak@google.com \
--cc=tzungbi@kernel.org \
--cc=wsa@kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).