On 2022-02-24 19:30, Rob Herring wrote:
[...]
+required:
+ - compatible
+ - reg
+ - interrupts
+ - "#clock-cells"
Is this actually required (ditto elsewhere)? Technically it's only necessary
if there are any clock consumers targeting this node, so arguably it should
be the clock binding's responsibility to validate that.
It wouldn't make much sense for a dedicated clock controller to omit
#clock-cells such that it couldn't have any consumers, but given that these
things are primarily PMICs I think it's reasonable to allow a board not to
care about the clocks at all if it doesn't use them. I know that the
original binding claimed it was required, but if we're already relaxing that
for RK805 here then we may as well relax it entirely.
Fair enough. However, if the consumer could be in an overlay, then I
think we want it to be required and not make the overlay add the
property. Properties just appearing within nodes at runtime is likely
not well supported in OSs.
Ah yes, that's an angle I hadn't considered, and I reckon it clearly
answers my original question in the affirmative :)
Indeed these clock outputs are often hooked up to SDIO WiFi modules, and
I'm sure I *have* seen boards which put such modules on pluggable
daughterboards in a manner which could reasonably use overlays, so in
principle it does seem like a realistic concern. I'm happy with setting
a general principle that if a clock output is exposed on a physical pin,
then at the DTS level we can't know for sure that it *won't* be consumed
(even if the original board design didn't intend it), therefore the
device is always a potential clock controller and "#clock-cells" should
be required. In that case, the consistency argument would fall the other
way, to enforcing it for RK805 as well.
Cheers,
Robin.