On Wed, Feb 20, 2019 at 05:55:21PM +0200, Andy Shevchenko wrote: > On Tue, Feb 19, 2019 at 2:00 PM Heikki Krogerus > <heikki.krogerus@xxxxxxxxxxxxxxx> wrote: > > > > In ACPI, and now also in DT, the USB connectors usually have > > their own device nodes. In case of USB Type-C, those > > connector (port) nodes are child nodes of the controller or > > PHY device, in our case the fusb302. The software fwnodes > > allow us to create a similar child node for fusb302 that > > represents the connector also on Intel CHT. > > > > This makes it possible replace the fusb302 specific device > > properties which were deprecated with the common USB > > connector properties that tcpm.c is able to use directly. > > > + /* Node for the FUSB302 controller */ > > + data->fusb302_node = fwnode_create_software_node(fusb302_props, NULL); > > + if (IS_ERR(data->fusb302_node)) > > + return PTR_ERR(data->fusb302_node); > > + > > + /* Node for the connector (FUSB302 is the parent) */ > > + data->port_node = fwnode_create_software_node(usb_connector_props, > > + data->fusb302_node); > > + if (IS_ERR(data->port_node)) { > > > + fwnode_remove_software_node(data->fusb302_node); > > Sounds like a candidate for > devm_fwnode_create_software_node() If you don't mind, let's think about that later. I'm not comfortable at all with the idea of introducing devm_fwnode_create_software_node(). I would like to talk about that separately. It's not going to be a problem to change this driver later even if we decide to add the function. thanks, -- heikki