Hi, Currently it is not possible to take full advantage of software fwnodes in the drivers because device_del() is calling device_remove_properties() (that removes the software node attached to the device) unconditionally which prevents the software nodes from being reused or shared, and because subsystems are dealing with device properties instead of software nodes which in many cases prevents the drivers from using software nodes at all. To fix the situation, the device_remove_properties() call in device_del() has to be removed, and later the subsystems need to be converted so that they deal with software nodes instead of just device properties. But before that can be done, the drivers must be prepared for those changes. These patches do that for the USB drivers. The first patch introduces device_create_managed_software_node() function that can be used as a drop-in replacement for device_add_properties(). The rest of the patches simply use that function, or convert the drivers in some other way to use software nodes instead of just the device properties in them. thanks, Heikki Krogerus (6): software node: Provide replacement for device_add_properties() usb: dwc2: pci: Drop the empty quirk function usb: dwc3: haps: Constify the software node usb: dwc3: qcom: Constify the software node usb: dwc3: host: Use software node API with the properties xhci: ext-caps: Use software node API with the properties drivers/base/swnode.c | 43 ++++++++++++++++++++++++++++++++ drivers/usb/dwc2/pci.c | 18 ------------- drivers/usb/dwc3/dwc3-haps.c | 8 +++++- drivers/usb/dwc3/dwc3-qcom.c | 12 ++++++--- drivers/usb/dwc3/host.c | 2 +- drivers/usb/host/xhci-ext-caps.c | 3 ++- include/linux/property.h | 4 +++ 7 files changed, 66 insertions(+), 24 deletions(-) -- 2.30.0