[U-Boot] New UCLASS_PINCTRL driver - probe is not called for all nodes

Konstantin Porotchkin kostap at gmail.com
Tue Nov 15 14:56:44 CET 2016


Hi, All,

I am currently porting the Marvell (mvebu) pin control driver for Armada-8K
family  to the current u-boot sources.
The Armada 8K SoC is a hybrid chip that contains several interconnected
dies in a single package.
Each such device (AP, CP0, CP1) has an independent pin controller with
different memory mapping.
The DTS for such configuration looks like the following:
/ {
ap806 {
config-space {
pinctl: pinctl at 6F4000 {
...
};
};
};
cp110-master {
config-space {
cpm_pinctl: pinctl at 44000 {
...
};
};
};
cp110-slave {
config-space {
cps_pinctl: pinctl at 44000 {
...
};
};
};
};

I expect that my driver "probe" method will be called 3 times - one for
every controller.
However, according to my test, only the first controller is probed
(pinctl at 6F4000).
Two others are listed in the DM tree, but are not active (not probed).

I can do a trick and sequentially call uclass_get_device() function for
the UCLASS_PINCTRL type, causing all 3 controller to be probed and
activated.
However I think this is not the way it should work.
Is my assumption wrong and such hybrid devices should use the above trick
for bringing up all controllers in the package?

Thank you beforehand for your help
Konstantin


More information about the U-Boot mailing list