[PATCH v5 0/8] usb: misc: onboard_hub: add support for XMOS XVF3500
Javier Carrasco
javier.carrasco at wolfvision.net
Wed Feb 28 05:51:27 PST 2024
This series adds support for the XMOS XVF3500 VocalFusion Voice
Processor[1], a low-latency, 32-bit multicore controller for voice
processing.
The XVF3500 requires a specific power sequence, which consists of
enabling the regulators that control the 3V3 and 1V0 device supplies,
and a reset de-assertion after a delay of at least 100ns. Once in normal
operation, the XVF3500 registers itself as a regular USB device and no
device-specific management is required.
The power management provided by onboard_usb_hub is not specific for hubs
and any other USB device with the same power sequence could profit from
that driver, provided that the device does not have any specific
requirements beyond the power management. To account for non-hub devices,
the driver has been renamed and an extra flag has been added to identify
hubs and provide their specific functionality.
Support for device-specific power suply names has also been added, keeping
generic names for already supported devices to keep backwards
compatibility.
The references to onboard_usb_hub in the core and config files have been
updated as well.
The diff is way much bulkier than the actual code addition because of the
file renaming, so in order to ease reviews and catch hub-specific code
that might still affect non-hub devices, the complete renaming was moved
to a single commit.
This series has been tested with a Rockchip-based SoC and an XMOS
XVF3500-FB167-C.
[1] https://www.xmos.com/xvf3500/
To: Liam Girdwood <lgirdwood at gmail.com>
To: Mark Brown <broonie at kernel.org>
To: Rob Herring <robh+dt at kernel.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski+dt at linaro.org>
To: Conor Dooley <conor+dt at kernel.org>
To: Matthias Kaehlcke <mka at chromium.org>
To: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
To: Helen Koike <helen.koike at collabora.com>
To: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
To: Maxime Ripard <mripard at kernel.org>
To: Thomas Zimmermann <tzimmermann at suse.de>
To: David Airlie <airlied at gmail.com>
To: Daniel Vetter <daniel at ffwll.ch>
To: Catalin Marinas <catalin.marinas at arm.com>
To: Will Deacon <will at kernel.org>
To: Russell King <linux at armlinux.org.uk>
Cc: linux-sound at vger.kernel.org
Cc: devicetree at vger.kernel.org
Cc: linux-kernel at vger.kernel.org
Cc: linux-usb at vger.kernel.org
Cc: dri-devel at lists.freedesktop.org
Cc: linux-arm-kernel at lists.infradead.org
Signed-off-by: Javier Carrasco <javier.carrasco at wolfvision.net>
Changes in v5:
- onboard_usb_dev: move device suppy names handling to [1/8].
- onboard_usb_dev.c: make always_powered_in_suspend not visible for
non-hub devices.
- onboard_usb_dev.c: move is_hub check in suspend() to functio entry.
- onboard_usb_dev_pdevs.c: comment rephrasing to account for
hub-specific attribute.
- Link to v4: https://lore.kernel.org/r/20240220-onboard_xvf3500-v4-0-dc1617cc5dd4@wolfvision.net
Changes in v4:
- General: use device supply names and generics as fallback.
- onbord_usb_dev.c: fix suspend callback for non-hub devices.
- onboard_usb_dev.c: fix typos.
- Link to v3: https://lore.kernel.org/r/20240206-onboard_xvf3500-v3-0-f85b04116688@wolfvision.net
Changes in v3:
- onboard_usb_hub: rename to onboard_usb_dev to include non-hub devices.
- onboard_hub_dev: add flag to identify hubs and provide their extra
functionality.
- dt-bindings: add reference to usb-device.yaml and usb node in the
example.
- dt-bindings: generic node name.
- Link to v2: https://lore.kernel.org/r/20240130-onboard_xvf3500-v1-0-51b5398406cb@wolfvision.net
Changes in v2:
- general: add support in onboard_usb_hub instead of using a dedicated
driver.
- dt-bindings: use generic usb-device compatible ("usbVID,PID").
- Link to v1: https://lore.kernel.org/all/20240115-feature-xvf3500_driver-v1-0-ed9cfb48bb85@wolfvision.net/
---
Javier Carrasco (8):
usb: misc: onboard_hub: use device supply names
usb: misc: onboard_hub: rename to onboard_dev
drm: ci: arm64.config: update ONBOARD_USB_HUB to ONBOARD_USB_DEV
arm64: defconfig: update ONBOARD_USB_HUB to ONBOARD_USB_DEV
ARM: multi_v7_defconfig: update ONBOARD_USB_HUB to ONBOAD_USB_DEV
usb: misc: onboard_dev: add support for non-hub devices
ASoC: dt-bindings: xmos,xvf3500: add XMOS XVF3500 voice processor
usb: misc: onboard_hub: add support for XMOS XVF3500
...-usb-hub => sysfs-bus-platform-onboard-usb-dev} | 3 +-
.../devicetree/bindings/sound/xmos,xvf3500.yaml | 63 +++
MAINTAINERS | 4 +-
arch/arm/configs/multi_v7_defconfig | 2 +-
arch/arm64/configs/defconfig | 2 +-
drivers/gpu/drm/ci/arm64.config | 4 +-
drivers/usb/core/Makefile | 4 +-
drivers/usb/core/hub.c | 8 +-
drivers/usb/core/hub.h | 2 +-
drivers/usb/misc/Kconfig | 16 +-
drivers/usb/misc/Makefile | 2 +-
drivers/usb/misc/onboard_usb_dev.c | 542 +++++++++++++++++++++
.../misc/{onboard_usb_hub.h => onboard_usb_dev.h} | 58 ++-
...ard_usb_hub_pdevs.c => onboard_usb_dev_pdevs.c} | 47 +-
drivers/usb/misc/onboard_usb_hub.c | 49 +-
include/linux/usb/onboard_dev.h | 18 +
include/linux/usb/onboard_hub.h | 18 -
17 files changed, 741 insertions(+), 101 deletions(-)
---
base-commit: 41bccc98fb7931d63d03f326a746ac4d429c1dd3
change-id: 20240130-onboard_xvf3500-6c0e78d11a1b
Best regards,
--
Javier Carrasco <javier.carrasco at wolfvision.net>
More information about the linux-arm-kernel
mailing list