From what I've found, the "no children" error refers to a pruss entry in the device tree that looks like this:
fragment@1 {
target = <&pruss>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&your_pru_pins>;
};
};
This used to work just fine, but now it needs to have one or more entries below pinctrl-0 describing your pins, like this:
fragment@1 {
target = <&pruss>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&your_pru_pins>;
my_pins{
pin-names = "name1", "name2" ... ;
gpios = <&gpioX PN 0
&gpioY PN 0
... >;
};
# possibly more like above
};
};
depending on which gpio groups and PNs(pin numbers) you'd like the pruss to be associated with.
I am not sure how you specify that you don't want ANY pins though, unless you would then just not have the pinctrl entries above and only the status = "okay" line. That is probably it, since this is how the "enable-uio-pruss" device tree file I have seems to work and gets no "no children" errors. At any rate, this does
work on 4.9, and would likely work on 4.4 or maybe even 4.1. I believe the code that produces this "no children" error is looking for entries like this in the device tree if you say you want some kind of pinctrl. I did see the patch that needs to be commented out if you want your old device tree files to work, but I can't remember where it is. I'm sure someone can point right to it.