From: Quentin Schulz <quentin.schulz@cherry.de>
To: Conor Dooley <conor@kernel.org>
Cc: "Łukasz Czechowski" <lukasz.czechowski@thaumatec.com>,
"Matthias Kaehlcke" <mka@chromium.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Benjamin Bara" <benjamin.bara@skidata.com>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Heiko Stuebner" <heiko@sntech.de>,
"Klaus Goger" <klaus.goger@theobroma-systems.com>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org
Subject: Re: [PATCH 2/5] dt-bindings: usb: cypress,hx3: Add support for all variants
Date: Thu, 10 Apr 2025 11:37:02 +0200 [thread overview]
Message-ID: <4784ca8c-b6b1-4337-b2af-e8992150ec7c@cherry.de> (raw)
In-Reply-To: <20250409-glorified-crouch-837870b4d443@spud>
Hi Conor, Krzysztof, Rob,
On 4/9/25 11:27 PM, Conor Dooley wrote:
> On Wed, Apr 09, 2025 at 06:26:43PM +0200, Quentin Schulz wrote:
>> Hi Conor,
>>
>> On 4/9/25 6:18 PM, Conor Dooley wrote:
>>> On Tue, Apr 08, 2025 at 06:36:04PM +0200, Łukasz Czechowski wrote:
>>>> Hello,
>>>>
>>>> śr., 26 mar 2025 o 18:58 Conor Dooley <conor@kernel.org> napisał(a):
>>>>>
>>>>> On Wed, Mar 26, 2025 at 05:22:57PM +0100, Lukasz Czechowski wrote:
>>>>>> The Cypress HX3 hubs use different default PID value depending
>>>>>> on the variant. Update compatibles list.
>>>>>>
>>>>>> Fixes: 1eca51f58a10 ("dt-bindings: usb: Add binding for Cypress HX3 USB 3.0 family")
>>>>>> Cc: stable@vger.kernel.org # 6.6
>>>>>> Cc: stable@vger.kernel.org # Backport of the patch in this series fixing product ID in onboard_dev_id_table and onboard_dev_match in drivers/usb/misc/onboard_usb_dev.{c,h} driver
>>>>>> Signed-off-by: Lukasz Czechowski <lukasz.czechowski@thaumatec.com>
>>>>>> ---
>>>>>> Documentation/devicetree/bindings/usb/cypress,hx3.yaml | 6 ++++++
>>>>>> 1 file changed, 6 insertions(+)
>>>>>>
>>>>>> diff --git a/Documentation/devicetree/bindings/usb/cypress,hx3.yaml b/Documentation/devicetree/bindings/usb/cypress,hx3.yaml
>>>>>> index 1033b7a4b8f9..f0b93002bd02 100644
>>>>>> --- a/Documentation/devicetree/bindings/usb/cypress,hx3.yaml
>>>>>> +++ b/Documentation/devicetree/bindings/usb/cypress,hx3.yaml
>>>>>> @@ -15,8 +15,14 @@ allOf:
>>>>>> properties:
>>>>>> compatible:
>>>>>> enum:
>>>>>> + - usb4b4,6500
>>>>>> + - usb4b4,6502
>>>>>> + - usb4b4,6503
>>>>>> - usb4b4,6504
>>>>>> - usb4b4,6506
>>>>>> + - usb4b4,6507
>>>>>> + - usb4b4,6508
>>>>>> + - usb4b4,650a
>>>>>
>>>>> All these devices seem to have the same match data, why is a fallback
>>>>> not suitable?
>>>>>
>>>>
>>>> Thank you for the suggestion. Indeed the fallback compatible appears
>>>> to work fine in this case,
>>>> and I am able to avoid additional entries in onboard_dev_match table
>>>> as added in the first patch in this series.
>>>>
>>>> However, after I've updated the cypress,hx3.yaml schema file and
>>>> rk3399-puma.dtsi file,
>>>> I get the following warnings, when running "make dtbs_check":
>>>>
>>>> linux/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dtb: hub@1:
>>>> compatible: ['usb4b4,6502', 'usb4b4,6506'] is too long
>>>> from schema $id: http://devicetree.org/schemas/usb/cypress,hx3.yaml#
>>>> linux/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dtb: hub@2:
>>>> compatible: ['usb4b4,6500', 'usb4b4,6504'] is too long
>>>> from schema $id: http://devicetree.org/schemas/usb/cypress,hx3.yaml#
>>>>
>>>> Below is the diff of my changes:
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/usb/cypress,hx3.yaml
>>>> b/Documentation/devicetree/bindings/usb/cypress,hx3.yaml
>>>> index f0b93002bd02..d6eac1213228 100644
>>>> --- a/Documentation/devicetree/bindings/usb/cypress,hx3.yaml
>>>> +++ b/Documentation/devicetree/bindings/usb/cypress,hx3.yaml
>>>> @@ -14,15 +14,22 @@ allOf:
>>>>
>>>> properties:
>>>> compatible:
>>>> - enum:
>>>> - - usb4b4,6500
>>>> - - usb4b4,6502
>>>> - - usb4b4,6503
>>>> - - usb4b4,6504
>>>> - - usb4b4,6506
>>>> - - usb4b4,6507
>>>> - - usb4b4,6508
>>>> - - usb4b4,650a
>>>> + oneOf:
>>>> + - enum:
>>>> + - usb4b4,6504
>>>> + - usb4b4,6506
>>>> + - items:
>>>> + - enum:
>>>> + - usb4b4,6500
>>>> + - usb4b4,6508
>>>> + - const: usb4b4,6504
>>>> + - items:
>>>> + - enum:
>>>> + - usb4b4,6502
>>>> + - usb4b4,6503
>>>> + - usb4b4,6507
>>>> + - usb4b4,650a
>>>> + - const: usb4b4,6506
>>>>
>>>> reg: true
>>>>
>>>> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
>>>> b/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
>>>> index d0d867374b3f..7fac61f95fc6 100644
>>>> --- a/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
>>>> +++ b/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
>>>> @@ -594,14 +594,14 @@ &usbdrd_dwc3_1 {
>>>> #size-cells = <0>;
>>>>
>>>> hub_2_0: hub@1 {
>>>> - compatible = "usb4b4,6502";
>>>> + compatible = "usb4b4,6502", "usb4b4,6506";
>>>> reg = <1>;
>>>> peer-hub = <&hub_3_0>;
>>>> reset-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
>>>> };
>>>>
>>>> hub_3_0: hub@2 {
>>>> - compatible = "usb4b4,6500";
>>>> + compatible = "usb4b4,6500", "usb4b4,6504";
>>>> reg = <2>;
>>>> peer-hub = <&hub_2_0>;
>>>> reset-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
>>>>
>>>>
>>>> Do you have any suggestions on how I can properly update the schema
>>>> files to avoid the above warnings?
>>>
>>> The diffs you have here look okay, not really sure what you're asking
>>> for.
>>
>> It fails dtbs_check:
>>
>> linux/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dtb: hub@1:
>> compatible: ['usb4b4,6502', 'usb4b4,6506'] is too long
>> from schema $id: http://devicetree.org/schemas/usb/cypress,hx3.yaml#
>> linux/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dtb: hub@2:
>> compatible: ['usb4b4,6500', 'usb4b4,6504'] is too long
>> from schema $id: http://devicetree.org/schemas/usb/cypress,hx3.yaml#
>>
>> I'm not sure we're allowed to add new errors with dtbs_check (and would like
>> to avoid it in any case).
>
> Ah, the restriction I think comes from the usb-device binding. Maybe
> just leave it as you had it?
Thanks to some previous debugging done by Lukasz, I believe there's
something we can do to make everybody happy.
The issue is that the usb-device binding enforces a single pattern
string in the compatible property[1] but that isn't what usually is
expected by the dt-core[2].
I would suggest to patch the usb-device binding so that it can accept a
list of strings matching the given pattern.
This is the diff I'm suggesting:
"""
diff --git a/Documentation/devicetree/bindings/usb/usb-device.yaml
b/Documentation/devicetree/bindings/usb/usb-device.yaml
index c676956810331..42c2e8d6dc06d 100644
--- a/Documentation/devicetree/bindings/usb/usb-device.yaml
+++ b/Documentation/devicetree/bindings/usb/usb-device.yaml
@@ -28,7 +28,9 @@ description: |
properties:
compatible:
- pattern: "^usb[0-9a-f]{1,4},[0-9a-f]{1,4}$"
+ items:
+ pattern: "^usb[0-9a-f]{1,4},[0-9a-f]{1,4}$"
+
description: Device nodes or combined nodes.
"usbVID,PID", where VID is the vendor id and PID the product id.
The textual representation of VID and PID shall be in lower case
"""
I believe this should be a reasonable change except if we really are
only expecting the real VID PID in the compatible.
What do you think?
Cheers,
Quentin
[1]
https://elixir.bootlin.com/linux/v6.13.7/source/Documentation/devicetree/bindings/usb/usb-device.yaml#L31
[2]
https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/dt-core.yaml#L21-L25
next prev parent reply other threads:[~2025-04-10 9:37 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-26 16:22 [PATCH 0/5] Fix onboard USB hub instability on RK3399 Puma SoM Lukasz Czechowski
2025-03-26 16:22 ` [PATCH 1/5] usb: misc: onboard_usb_dev: fix support for Cypress HX3 hubs Lukasz Czechowski
2025-03-28 8:19 ` Krzysztof Kozlowski
2025-03-26 16:22 ` [PATCH 2/5] dt-bindings: usb: cypress,hx3: Add support for all variants Lukasz Czechowski
2025-03-26 17:58 ` Conor Dooley
2025-04-08 16:36 ` Łukasz Czechowski
2025-04-09 16:18 ` Conor Dooley
2025-04-09 16:26 ` Quentin Schulz
2025-04-09 21:27 ` Conor Dooley
2025-04-10 9:37 ` Quentin Schulz [this message]
2025-04-09 14:14 ` Rob Herring (Arm)
2025-03-26 16:22 ` [PATCH 3/5] arm64: dts: rockchip: fix internal USB hub instability on RK3399 Puma Lukasz Czechowski
2025-03-26 16:22 ` [PATCH 4/5] arm64: dts: rockchip: disable unrouted USB controllers and PHY " Lukasz Czechowski
2025-03-26 16:23 ` [PATCH 5/5] arm64: dts: rockchip: disable unrouted USB controllers and PHY on RK3399 Puma with Haikou Lukasz Czechowski
2025-03-26 19:11 ` [PATCH 0/5] Fix onboard USB hub instability on RK3399 Puma SoM Rob Herring (Arm)
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=4784ca8c-b6b1-4337-b2af-e8992150ec7c@cherry.de \
--to=quentin.schulz@cherry.de \
--cc=benjamin.bara@skidata.com \
--cc=conor+dt@kernel.org \
--cc=conor@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=heiko@sntech.de \
--cc=klaus.goger@theobroma-systems.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-usb@vger.kernel.org \
--cc=lukasz.czechowski@thaumatec.com \
--cc=mka@chromium.org \
--cc=robh@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
all inboxes | Powered by JetHome®