Hi Neil,
Am 15.04.2020 um 14:54 schrieb Neil Armstrong narmstrong@baylibre.com:
Hi,
On 15/04/2020 14:43, H. Nikolaus Schaller wrote:
Am 15.04.2020 um 12:12 schrieb Maxime Ripard maxime@cerno.tech:
Hi,
On Wed, Apr 15, 2020 at 10:35:08AM +0200, H. Nikolaus Schaller wrote:
The Imagination PVR/SGX GPU is part of several SoC from multiple vendors, e.g. TI OMAP, Ingenic JZ4780, Intel Poulsbo, Allwinner A83 and others.
With this binding, we describe how the SGX processor is interfaced to the SoC (registers, interrupt etc.).
In most cases, Clock, Reset and power management is handled by a parent node or elsewhere (e.g. code in the driver).
Wouldn't the "code in the driver" still require the clock / reset / power domain to be set in the DT?
Well, some SoC seem to use existing clocks and have no reset. Or, although not recommended, they may have the io-address range hard-coded.
The possible clocks and resets should be added, even if optional.
Please look at the arm utgard, midgard and bifrost bindings.
Interesting to compare to. Maybe we should also add the $nodename: pattern: '^gpu@[a-f0-9]+$'
But the sgx binding is difficult to grasp here. Some SoC like the omap series have their own ti,sysc based target modules and the gpu nodes is a child of it lacking any clock and reset references for purpose.
The jz4780 and some other need a clocks definition, but no reset. Having a reset seems to be an option for the SoC designer and not mandated by img. So is it part of the pvrsgx bindings or the SoC?
Well we could add clocks and resets as optional but that would allow to wrongly define omap.
Or delegate them to a parent "simple-pm-bus" node.
I have to study that material more to understand what you seem to expect.
BR and thanks, Nikolaus Schaller