Re: [PATCH 04/11] dt-bindings: usb: Add NVIDIA LSTP USB adapter
From: Krzysztof Kozlowski
Date: Tue Oct 13 2026 - 02:13:33 EST
On 12/10/2026 19:36, Adrian Ambrozewicz wrote:
> Add the binding for the NVIDIA LSTP USB adapter. The device multiplexes
> SPI, I2C, GPIO, IPMI and UART channels over the bulk endpoints of one
> interface and reports its channels itself, so it needs no device tree
> to work. A node describes what the device cannot report: peripherals on
> its buses, GPIO line names and hogs, and LEDs.
>
> Channel nodes go under the device node or under the interface node, as
> usb-device.yaml lays out for the device's descriptors. The GPIO, I2C
> and SPI channels reference their own schemas. The IPMI and UART channel
> nodes are defined here and carry only compatible, reg and status; they
> exist for status = "disabled", which keeps a channel the firmware
> reports from being used.
>
> Signed-off-by: Adrian Ambrozewicz <aambrozewicz@xxxxxxxxxx>
> ---
> .../devicetree/bindings/usb/nvidia,lstp.yaml | 280 ++++++++++++++++++
> MAINTAINERS | 1 +
> 2 files changed, 281 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/usb/nvidia,lstp.yaml
>
> diff --git a/Documentation/devicetree/bindings/usb/nvidia,lstp.yaml b/Documentation/devicetree/bindings/usb/nvidia,lstp.yaml
> new file mode 100644
> index 000000000000..62b21051ab20
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/nvidia,lstp.yaml
> @@ -0,0 +1,280 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/nvidia,lstp.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NVIDIA LSTP USB Multi-Function Device
> +
> +maintainers:
> + - Adrian Ambrozewicz <aambrozewicz@xxxxxxxxxx>
> + - Donald Shannon <donalds@xxxxxxxxxx>
> +
> +description: |
> + The NVIDIA LSTP (Low-Speed Transport Protocol) device is a USB device
> + that exposes function channels (SPI, I2C, GPIO, IPMI, UART) over one USB
> + interface. Channel traffic is multiplexed over the bulk endpoints of
> + that interface.
> +
> + The device reports its channels, their types and their IDs itself, so
> + it needs no device tree to work. A node adds only what the device
> + cannot report: peripherals on its SPI and I2C buses, GPIO line names
> + and hogs, and LEDs. As for any USB device, a node is matched to the
> + device by position alone, each level by the port number in reg, so a
> + node suits only an LSTP device hard-wired on the board.
> +
> + Each channel node is matched to a firmware-reported channel by reg (the
> + channel ID) and compatible (the channel type). A channel without a node
> + is still usable. A channel whose node has status = "disabled" is not
> + used at all.
> +
> + Where the channel nodes go follows the rules for USB device and
> + interface nodes in usb-device.yaml, which depend on the device's
> + descriptors and not on its compatible:
You again explain bindings. Description explains hardware, not repeats
schema.
Best regards,
Krzysztof