Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> writes: > On Mon, Jan 27, 2020 at 04:56:15PM +0000, Måns Rullgård wrote: >> Rob Herring <robh@xxxxxxxxxx> writes: >> >> > On Fri, Jan 24, 2020 at 03:25:03PM +0000, Mans Rullgard wrote: >> >> Add a non-removable-ports property that lists the hardwired downstream >> >> ports of a hub. Although hubs can provide this information, they are >> >> not always configured correctly. An alternate means of indicating this >> >> for built-in USB devices is thus useful. >> >> >> >> Signed-off-by: Mans Rullgard <mans@xxxxxxxxx> >> > >> > I reviewed this already, but since you didn't add my reviewed-by, I'm >> > looking at it again and having 2nd thoughts. >> > >> >> --- >> >> Documentation/devicetree/bindings/usb/usb-device.txt | 4 ++++ >> >> 1 file changed, 4 insertions(+) >> >> >> >> diff --git a/Documentation/devicetree/bindings/usb/usb-device.txt b/Documentation/devicetree/bindings/usb/usb-device.txt >> >> index 036be172b1ae..92d863cc96b6 100644 >> >> --- a/Documentation/devicetree/bindings/usb/usb-device.txt >> >> +++ b/Documentation/devicetree/bindings/usb/usb-device.txt >> >> @@ -66,6 +66,10 @@ Required properties for host-controller nodes with device nodes: >> >> - #size-cells: shall be 0 >> >> >> >> >> >> +Optional properties for hub and host-controller nodes: >> >> +- non-removable-ports: list of hardwired downstream ports >> > >> > If you have a hardwired device and need to know that, doesn't that imply >> > there's some other stuff you need to describe beyond what a standard USB >> > device has. Such as a power supply that's not Vbus from the hub. >> >> I suppose there could be, but there isn't in my actual situation. >> >> > At a minimum, I think this should be a per port property. >> >> That's what I suggested first. Greg told me to do it like this instead. > > I said that? I do not remember discussing this at all, when did that > happen? https://lore.kernel.org/lkml/20190228155241.GC12050@xxxxxxxxx/ >> > Though really, I think this should just be implied by describing the >> > device in DT. I'm not sure if there's a case for hotpluggable devices >> > described in DT. Maybe with overlays. >> >> That's also an option. Greg, what do you think? > > I have no idea, sorry, I'm totally lost here... Background: I need to differentiate between on-board and external USB devices on a few boards. Although hubs can indicate the removable status of each port, the configuration options are often limited and may not be capable of describing the actual wiring. Also, if a device is hard-wired directly to a host port, there is no way of indicating this. While I could match the full device path using per-board lists, I'd prefer a generic solution. To this end, it is necessary to add the ability for DT to supply this information. Three variants have been discussed: 1. Add a "non-removable" property to the USB device node similar to how it's done for MMC. 2. Add a "non-removable-ports" property to the hub node. Apparently ACPI can supply the information in this manner. 3. Make any USB device with a DT node implicitly non-removable. Either one will work for me. -- Måns Rullgård