From: Matthias Kaehlcke <mka@chromium.org>
To: Javier Carrasco <javier.carrasco@wolfvision.net>
Cc: Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>, Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Conor Dooley <conor+dt@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Helen Koike <helen.koike@collabora.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Russell King <linux@armlinux.org.uk>,
linux-sound@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
dri-devel@lists.freedesktop.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4 6/8] usb: misc: onboard_dev: use device supply names
Date: Wed, 21 Feb 2024 20:25:16 +0000 [thread overview]
Message-ID: <ZdZcLOlSc3FScjLK@google.com> (raw)
In-Reply-To: <20240220-onboard_xvf3500-v4-6-dc1617cc5dd4@wolfvision.net>
On Tue, Feb 20, 2024 at 03:05:50PM +0100, Javier Carrasco wrote:
> The current mechanism uses generic names for the power supplies, which
> conflicts with proper name definitions in the device bindings.
>
> Add a per-device property to include real supply names and keep generic
> names as a fallback mechanism for backward compatibility.
>
> Signed-off-by: Javier Carrasco <javier.carrasco@wolfvision.net>
> ---
> drivers/usb/misc/onboard_usb_dev.c | 54 ++++++++++++++++++++------------------
> drivers/usb/misc/onboard_usb_dev.h | 23 ++++++++++++++++
> 2 files changed, 52 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/usb/misc/onboard_usb_dev.c b/drivers/usb/misc/onboard_usb_dev.c
> index f43130a6786f..e66fcac93006 100644
> --- a/drivers/usb/misc/onboard_usb_dev.c
> +++ b/drivers/usb/misc/onboard_usb_dev.c
> @@ -29,18 +29,6 @@
>
> #include "onboard_usb_dev.h"
>
> -/*
> - * Use generic names, as the actual names might differ between devices. If a new
> - * device requires more than the currently supported supplies, add a new one
> - * here.
> - */
> -static const char * const supply_names[] = {
> - "vdd",
> - "vdd2",
> -};
> -
> -#define MAX_SUPPLIES ARRAY_SIZE(supply_names)
> -
> static void onboard_dev_attach_usb_driver(struct work_struct *work);
>
> static struct usb_device_driver onboard_dev_usbdev_driver;
> @@ -66,6 +54,33 @@ struct onboard_dev {
> struct clk *clk;
> };
>
> +static int onboard_dev_get_regulator_bulk(struct device *dev,
> + struct onboard_dev *onboard_dev)
> +{
> + unsigned int i;
> + int err;
> +
> + const char * const *supply_names = onboard_dev->pdata->supply_names;
> +
> + if (onboard_dev->pdata->num_supplies > MAX_SUPPLIES)
> + return dev_err_probe(dev, -EINVAL, "max %zu supplies supported!\n",
> + MAX_SUPPLIES);
> +
> + if (!supply_names[0])
> + supply_names = generic_supply_names;
Please change to 'if (!supply_names)' and omit the initialization of
.supply_names for devices that use the generic supply names.
> diff --git a/drivers/usb/misc/onboard_usb_dev.h b/drivers/usb/misc/onboard_usb_dev.h
> index ebe83e19d818..59dced6bd339 100644
> --- a/drivers/usb/misc/onboard_usb_dev.h
> +++ b/drivers/usb/misc/onboard_usb_dev.h
> @@ -6,63 +6,86 @@
> #ifndef _USB_MISC_ONBOARD_USB_DEV_H
> #define _USB_MISC_ONBOARD_USB_DEV_H
>
> +/*
> + * Fallback supply names for backwards compatibility. If the device requires
> + * more than the currently supported supplies, add a new one here, and if
> + * possible, the real name supplies to the device-specific data.
> + */
> +static const char * const generic_supply_names[] = {
> + "vdd",
> + "vdd2",
> +};
> +
> +#define MAX_SUPPLIES ARRAY_SIZE(generic_supply_names)
This will have to change when support for a device with more than 2 non-generic
supply names gets added. Please use a literal value for MAX_SUPPLIES instead of
ARRAY_SIZE. If the literal is 2 it would still need to change for future devices
with more supplies, but that change would be more straighforward.
> +
> struct onboard_dev_pdata {
> unsigned long reset_us; /* reset pulse width in us */
> unsigned int num_supplies; /* number of supplies */
> bool is_hub;
> + const char * const supply_names[MAX_SUPPLIES];
> +
> };
>
> static const struct onboard_dev_pdata microchip_usb424_data = {
> .reset_us = 1,
> .num_supplies = 1,
> + .supply_names = { NULL },
> .is_hub = true,
> };
>
> ...
next prev parent reply other threads:[~2024-02-21 20:25 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-20 14:05 [PATCH v4 0/8] usb: misc: onboard_hub: add support for XMOS XVF3500 Javier Carrasco
2024-02-20 14:05 ` [PATCH v4 1/8] usb: misc: onboard_hub: rename to onboard_dev Javier Carrasco
2024-02-21 19:14 ` Matthias Kaehlcke
2024-02-20 14:05 ` [PATCH v4 2/8] usb: misc: onboard_dev: add support for non-hub devices Javier Carrasco
2024-02-21 19:24 ` Matthias Kaehlcke
2024-02-22 14:42 ` Javier Carrasco
2024-02-27 17:55 ` Matthias Kaehlcke
2024-02-20 14:05 ` [PATCH v4 3/8] drm: ci: arm64.config: update ONBOARD_USB_HUB to ONBOARD_USB_DEV Javier Carrasco
2024-02-20 14:33 ` Helen Koike
2024-02-20 14:05 ` [PATCH v4 4/8] arm64: defconfig: " Javier Carrasco
2024-02-20 14:05 ` [PATCH v4 5/8] ARM: multi_v7_defconfig: update ONBOARD_USB_HUB name Javier Carrasco
2024-02-20 14:05 ` [PATCH v4 6/8] usb: misc: onboard_dev: use device supply names Javier Carrasco
2024-02-21 20:25 ` Matthias Kaehlcke [this message]
2024-02-21 20:40 ` Javier Carrasco
2024-02-21 21:18 ` Matthias Kaehlcke
2024-02-21 21:33 ` Javier Carrasco
2024-02-21 21:46 ` Matthias Kaehlcke
2024-02-27 18:12 ` Matthias Kaehlcke
2024-02-20 14:05 ` [PATCH v4 7/8] ASoC: dt-bindings: xmos,xvf3500: add XMOS XVF3500 voice processor Javier Carrasco
2024-02-22 15:02 ` Krzysztof Kozlowski
2024-02-20 14:05 ` [PATCH v4 8/8] usb: misc: onboard_hub: add support for XMOS XVF3500 Javier Carrasco
2024-02-20 14:34 ` [PATCH v4 0/8] " Alexander Stein
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=ZdZcLOlSc3FScjLK@google.com \
--to=mka@chromium.org \
--cc=airlied@gmail.com \
--cc=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=daniel@ffwll.ch \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=helen.koike@collabora.com \
--cc=javier.carrasco@wolfvision.net \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=robh+dt@kernel.org \
--cc=tzimmermann@suse.de \
--cc=will@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).