Re: [PATCH] dt-bindings: usb: Add binding for Microchip usb5744 hub controller

From: Michal Simek
Date: Thu May 04 2023 - 03:55:33 EST




On 5/4/23 09:31, Krzysztof Kozlowski wrote:
CAUTION: This message has originated from an External Source. Please use proper judgment and caution when opening attachments, clicking links, or responding to this email.


On 04/05/2023 09:25, Michal Simek wrote:


On 5/4/23 08:46, Krzysztof Kozlowski wrote:
On 03/05/2023 15:39, Michal Simek wrote:
The Microchip usb5744 is a SS/HS USB 3.0 hub controller with 4 ports.
The binding describes USB related aspects of the USB5744 hub, it as
well cover the option of connecting the controller as an i2c slave.
When i2c interface is connected hub needs to be initialized first.
Hub itself has fixed i2c address 0x2D but hardcoding address is not good
idea because address can be shifted by i2c address translator in the
middle.

Signed-off-by: Piyush Mehta <piyush.mehta@xxxxxxx>
Signed-off-by: Michal Simek <michal.simek@xxxxxxx>
---

It looks like that usb8041 has also an optional i2c interface which is not
covered. But it is mentioned at commit 40e58a8a7ca6 ("dt-bindings: usb:
Add binding for TI USB8041 hub controller").

i2c-bus name property was suggested by Rob at
https://lore.kernel.org/all/CAL_JsqJedhX6typpUKbnzV7CLK6UZVjq3CyG9iY_j5DLPqvVdw@xxxxxxxxxxxxxx/
and
https://lore.kernel.org/all/CAL_JsqJZBbu+UXqUNdZwg-uv0PAsNg55026PTwhKr5wQtxCjVQ@xxxxxxxxxxxxxx/

the question is if adding address like this is acceptable.
But it must be specified.

Why? phandle points it explicitly.

Ok it means just list usb hub on i2c with label and point to it. Works for me.

Right. I missed you want the address of the hub but phandle goes to the
bus. I think listing it on I2C bus (see
arch/arm/boot/dts/vf610-zii-scu4-aib.dts) should work. I think we can
have I2C devices without compatibles.

Device is definitely on i2c bus. But the problem with phande to bus is that there could more the same usb hubs and different i2c addresses of it. That's why I need to have exact match.
Marek has similar hub where i2c address can be strapped too.

The problem is that property should have only one definition/type and
i2c-bus is already used in other cases as just "phandle". If we go with
your phandle+address approach, then this should be phandle-array with
items and then we have two different types.

What to do with it then?

Thanks,
Michal