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 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.