* Paul Cercueil paul@crapouillou.net [200503 14:19]:
You have a new SoC with a SGX, and you only need to enable one clock to get it to work. So you create a devicetree node which receives only one clock.
Turns out, that the bootloader was enabling the other 3 clocks, and since the last release, it doesn't anymore. You're left with having to support a broken devicetree.
That's the kind of problem that can be easily avoided by enforcing the number of clocks that have to be provided.
The number of clocks depends on how it's wired for the SoC.
On omaps, there's are no controls for additinoal SGX clocks. Sure some of the clocks may be routed to multple places internally by the wrapper module. But we have no control over that.
If we wanted to specify just the "fck" clock on omaps, then we can do it with something like this:
allOf: - if: properites: compatible: enum: - "ti,omap4-sgx544-112" - "ti,omap5-sgx544-116" - "ti,dra7-sgx544-116" then: properties: clocks: minItems: 1 maxItems: 1
clock-names: const: fck
required: - clocks - clock-names
There's no need for the SGX driver to toggle the "fck" here, it's all done by PM runtime alreaedy so we would be just tweaking the usage count for it. But hey, showing the clock rate might be nice. Or maybe we want to at some point scale it, so no problem specifying it.
For omap3, we should then specify "fck" and "ick". On omap4 and later, there's no separate control over the "ick".
Then for the other SoCs, you can specify whatever clocks you need there.
Regards,
Tony