Hi Saravana, please help me to look at this device link stuff in the pinctrl subsystem! I started at one point to add device links for pin control and GPIO based on something that was done inside a pin control driver, resulting in these patches: Enforcing links in some select drivers: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git/log/?h=consumer-links Enforcing it over all drivers: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git/commit/?h=consumer-link-enforce I am under the impression that your generic dependency work now made these patches obsolete, so I can drop these branches and forget about it, is that correct? What about these two drivers we already have: $ git grep link_consumers drivers/pinctrl/ drivers/pinctrl/core.c: if (pctldev->desc->link_consumers) drivers/pinctrl/pinctrl-stmfx.c: pctl->pctl_desc.link_consumers = true; drivers/pinctrl/stm32/pinctrl-stm32.c: pctl->pctl_desc.link_consumers = true; The effect will be to enforce links for each handle from a consumer of a pinctrl handle: static void pinctrl_link_add(struct pinctrl_dev *pctldev, struct device *consumer) { if (pctldev->desc->link_consumers) device_link_add(consumer, pctldev->dev, DL_FLAG_PM_RUNTIME | DL_FLAG_AUTOREMOVE_CONSUMER); } Is this also in effect superceded with core dependency tracking so this code should simply be deleted? Thanks! Linus Walleij