dm: core: Add a comment about pinctrl_select_state()
The use of pinctrl in the core of driver model is useful but can provoke some strange behaviour. Add a comment to aid debugging. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
0dc2bf2b6e
commit
017d421828
1 changed files with 9 additions and 0 deletions
|
@ -462,6 +462,15 @@ int device_probe(struct udevice *dev)
|
||||||
* continue regardless of the result of pinctrl. Don't process pinctrl
|
* continue regardless of the result of pinctrl. Don't process pinctrl
|
||||||
* settings for pinctrl devices since the device may not yet be
|
* settings for pinctrl devices since the device may not yet be
|
||||||
* probed.
|
* probed.
|
||||||
|
*
|
||||||
|
* This call can produce some non-intuitive results. For example, on an
|
||||||
|
* x86 device where dev is the main PCI bus, the pinctrl device may be
|
||||||
|
* child or grandchild of that bus, meaning that the child will be
|
||||||
|
* probed here. If the child happens to be the P2SB and the pinctrl
|
||||||
|
* device is a child of that, then both the pinctrl and P2SB will be
|
||||||
|
* probed by this call. This works because the DM_FLAG_ACTIVATED flag
|
||||||
|
* is set just above. However, the PCI bus' probe() method and
|
||||||
|
* associated uclass methods have not yet been called.
|
||||||
*/
|
*/
|
||||||
if (dev->parent && device_get_uclass_id(dev) != UCLASS_PINCTRL)
|
if (dev->parent && device_get_uclass_id(dev) != UCLASS_PINCTRL)
|
||||||
pinctrl_select_state(dev, "default");
|
pinctrl_select_state(dev, "default");
|
||||||
|
|
Loading…
Reference in a new issue