On 22/05/15 08:03, Linus Walleij wrote: > On Thu, May 21, 2015 at 4:03 PM, Thierry Reding > <thierry.reding@xxxxxxxxx> wrote: > >>>> I don't see any conceptual reason why the driver that binds to that node >>>> can't register as both a pinctrl driver plus anything else it needs to. > (...) >>> Looking at it there should not be a problem here with regard to the >>> driver_data member of the device struct and so I don't see why the >>> tegra_dpaux_probe() could not call pinctrl_register() to register the >>> device. >> >> Yes, I think that'd be the best solution. > > I'm pretty much ready to go to any compromises to get DRM/GPU > drivers to use internal kernel subsystems. The tendency there > is to reimplement all kernel driver frameworks and hammer registers > they need to access. Thanks Linus, but after looking at this further I don't think this approach will work after all. In order to call pinctrl_register() from outside the pinctrl directory, also means exposing the pinctrl_dev and pinctrl_desc structures and so this will get messy. Or at least a bigger churn than I would have hoped for. Thierry, what if we add a drivers/pinctrl/pinctrl-tegra-dpaux.c and then simply call platform_device_register_data() from tegra_dpaux_probe() to register the device? I could still use the parent of_node to match the platform data for the dpaux pin controller. Cheers Jon -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html