linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "H. Nikolaus Schaller" <hns@goldelico.com>
To: Tony Lindgren <tony@atomide.com>, Philipp Rossak <embed3d@gmail.com>
Cc: "Paul Cercueil" <paul@crapouillou.net>,
	"Maxime Ripard" <maxime@cerno.tech>,
	"Jonathan Bakker" <xc-racer2@live.ca>,
	"David Airlie" <airlied@linux.ie>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Mark Rutland" <mark.rutland@arm.com>,
	"Benoît Cousson" <bcousson@baylibre.com>,
	"Ralf Baechle" <ralf@linux-mips.org>,
	"Paul Burton" <paulburton@kernel.org>,
	"James Hogan" <jhogan@kernel.org>,
	"Kukjin Kim" <kgene@kernel.org>,
	"Krzysztof Kozlowski" <krzk@kernel.org>,
	"Chen-Yu Tsai" <wens@csie.org>,
	"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
	<devicetree@vger.kernel.org>,
	"OpenPVRSGX Linux Driver Group" <openpvrsgx-devgroup@letux.org>,
	linux-omap <linux-omap@vger.kernel.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v6 00/12] ARM/MIPS: DTS: add child nodes describing the PVRSGX GPU present in some OMAP SoC and JZ4780 (and many more)
Date: Wed, 22 Apr 2020 23:12:26 +0200	[thread overview]
Message-ID: <266D5048-8339-433F-B66D-CAAB1C2CB1A2@goldelico.com> (raw)
In-Reply-To: <20200422193328.GD37466@atomide.com>

Hi Tony and Philip,

> Am 22.04.2020 um 21:33 schrieb Tony Lindgren <tony@atomide.com>:
> 
> * Philipp Rossak <embed3d@gmail.com> [200422 19:05]:
>> A few years back, I did a big research on the PowerVR GPUs. Back then I
>> found an interesting TI datasheet. I forgot about this till I have seen the
>> right buzz words. Sorry that I remembered it that late.
>> 
>> Back then I came to the conclusion that all PowerVR GPU's have in general 3
>> Clocks.
>> 
>> A system clock, a memory clock and a core clock. [1].

Great!  This is an excerpt of the am335x TRM.
I may have seen this information in the past but also forgot about it.

Indeed, it seems to change a lot of our thinking.

> 
> Hmm I'm not sure if those names are sgx or SoC specific.

It depends. Here is some quick research:

the am335x lists:
  THALIAIRQ, SYSCLK & MEMCLK (connected in parallel), CORECLK

The omap3530 TRM has different information. It names them
  SGX_FCLK, SGX_ICLK, SGX_RST and SGX_IRQ
  but this is likely a TI nomenclature defined by the PRCM wrapper.

DM3730 and OMAP4 and TRM tells the same.

The OMAP5 TRM is interestingly different. It has:
  GPU_ICLK, GPU_FCLK1, GPU_FCLK2, GPU_RST and GPU_IRQ.
  Really surprising is that the PRCM outputs are called
    GPU_L3_GICLK, GPU_CORE_GCLK and GPU_HYS_GCLK.

  I.e. the same "HYD" as we have seen in the A31. It seems to
  be a feature of the sgx544 to have two functional clocks and
  one being called "HYD".

Now I know why it didn't play a role so far. Because the omap5
wrapper hides this detail from the sgx implementation.

Next I checked the AM572x TRM:
 it has also a hyd_clk, a core_clk, sys_clk, some reset and a gpu_irq

The DRA7xx TRM does the same as AM57xx.

So the "hyd" clock seems to be a second functional clock
with unknown function in some SGX variants. It seems to be
something different from the "memclock" of the am335x but may
be the same.

> 
> Anyways, the sgx clocks for omap variants are already handled
> by the ti-sysc module as "fck" and "ick" so nothing to do there.

Which brings back the question if this complexity and not well
defined clocks of the SGX core should really be part of the bindings
any why we have to care about...

What is the benefit of modeling at this level of pretend accuracy?

> 
>> The hyd_clk at sunxi devices seems to be the system clock.
>> 
>> With those additional information it should be very easy to get a proper
>> binding.
> 
> It would be best to find the clock(s) name used in the sgx docs
> to avoid using SoC specific naming :)

If there were specific SGX docs describing the VHDL signal names :)

> 
> But yeah "sysclk" "memclk" and "coreclk" seem just fine for
> me for the optional clocks if that works for other SoCs.

Well, if the other SoC would follow the PRCM/sysc approach
the omap uses, all these clocks would be part of the wrapper
and can be named and numbered as it best fits to the SoC
data sheet and clock control registers.

> 
> Regards,
> 
> Tony
> 
>> [1]: https://github.com/embed-3d/PVRSGX_hwdoc/blob/master/sources/pdfs/Spruh73c_chapter_SGX_Graphics_Accelerator.pdf

So a compromise could be to

* define

  clock-names:
    items:
      - const: core
      - const: mem
      - const: sys
      - const: hyd

* make clocks optional (for omap or others wanting to use a wrapper driver)
* DTs can request the same clock providers for core and hyd or mem if that fits best
* the driver must enable all 4 clocks if they exists

BR and thanks,
Nikolaus


  reply	other threads:[~2020-04-22 21:12 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-15  8:35 [PATCH v6 00/12] ARM/MIPS: DTS: add child nodes describing the PVRSGX GPU present in some OMAP SoC and JZ4780 (and many more) H. Nikolaus Schaller
2020-04-15  8:35 ` [PATCH v6 01/12] dt-bindings: add img,pvrsgx.yaml for Imagination GPUs H. Nikolaus Schaller
2020-04-15 10:12   ` Maxime Ripard
2020-04-15 12:43     ` H. Nikolaus Schaller
2020-04-15 12:54       ` [PATCH v6 01/12] dt-bindings: add img, pvrsgx.yaml " Neil Armstrong
2020-04-15 13:17         ` H. Nikolaus Schaller
2020-04-15 14:21           ` Maxime Ripard
2020-04-15 15:09             ` H. Nikolaus Schaller
2020-04-15 16:21               ` Maxime Ripard
2020-04-15 16:42                 ` H. Nikolaus Schaller
2020-04-15 17:13                   ` Tony Lindgren
2020-04-17 10:25                   ` Maxime Ripard
2020-04-17 12:15                     ` H. Nikolaus Schaller
2020-04-18 23:02                       ` Philipp Rossak
2020-04-20  8:04                       ` Maxime Ripard
2020-04-16 20:41   ` [PATCH v6 01/12] dt-bindings: add img,pvrsgx.yaml " Rob Herring
     [not found]     ` <C7C58E41-99CB-49F6-934E-68FA458CB8B1@goldelico.com>
2020-04-21 19:02       ` [PATCH v6 01/12] dt-bindings: add img, pvrsgx.yaml " Rob Herring
2020-04-15  8:35 ` [PATCH v6 02/12] ARM: DTS: am33xx: add sgx gpu child node H. Nikolaus Schaller
2020-04-15  8:35 ` [PATCH v6 03/12] ARM: DTS: am3517: " H. Nikolaus Schaller
2020-04-15  8:35 ` [PATCH v6 04/12] ARM: DTS: omap34xx: " H. Nikolaus Schaller
2020-04-15  8:35 ` [PATCH v6 05/12] ARM: DTS: omap36xx: " H. Nikolaus Schaller
2020-04-15  8:35 ` [PATCH v6 06/12] ARM: DTS: omap4: " H. Nikolaus Schaller
2020-04-15  8:35 ` [PATCH v6 07/12] ARM: DTS: omap5: " H. Nikolaus Schaller
2020-04-15 11:38   ` Krzysztof Kozlowski
2020-04-15 11:46     ` H. Nikolaus Schaller
2020-04-15 13:47       ` Krzysztof Kozlowski
2020-04-15 14:07         ` H. Nikolaus Schaller
2020-04-15  8:35 ` [PATCH v6 08/12] arm: dts: s5pv210: Add G3D node H. Nikolaus Schaller
2020-04-15  9:15   ` Sergei Shtylyov
2020-04-15  9:26     ` H. Nikolaus Schaller
2020-04-15 11:49   ` Krzysztof Kozlowski
2020-04-15 12:50     ` H. Nikolaus Schaller
2020-04-15 13:44       ` Krzysztof Kozlowski
2020-04-15 18:17       ` Jonathan Bakker
2020-04-16  8:50         ` Krzysztof Kozlowski
2020-04-17 12:15         ` H. Nikolaus Schaller
2020-04-22  5:56   ` kbuild test robot
2020-04-15  8:35 ` [PATCH v6 09/12] ARM: dts: sun6i: a31: add sgx gpu child node H. Nikolaus Schaller
2020-04-15  8:35 ` [PATCH v6 10/12] ARM: dts: sun6i: a31s: " H. Nikolaus Schaller
2020-04-15  8:35 ` [PATCH v6 11/12] ARM: dts: sun8i: a83t: " H. Nikolaus Schaller
2020-04-15  8:35 ` [PATCH v6 12/12] MIPS: DTS: jz4780: add sgx gpu node H. Nikolaus Schaller
2020-04-15 10:10 ` [PATCH v6 00/12] ARM/MIPS: DTS: add child nodes describing the PVRSGX GPU present in some OMAP SoC and JZ4780 (and many more) Maxime Ripard
2020-04-15 12:41   ` H. Nikolaus Schaller
2020-04-15 12:46     ` Daniel Vetter
2020-04-15 13:02     ` Maxime Ripard
2020-04-15 13:04       ` H. Nikolaus Schaller
2020-04-17 12:09         ` Philipp Rossak
2020-04-20  7:38           ` Maxime Ripard
2020-04-21  9:57             ` Philipp Rossak
2020-04-21 11:21               ` Maxime Ripard
2020-04-21 14:15                 ` Tony Lindgren
2020-04-21 17:29                   ` H. Nikolaus Schaller
2020-04-21 17:39                     ` Tony Lindgren
2020-04-21 17:46                       ` Tony Lindgren
2020-04-22  6:58                     ` Maxime Ripard
2020-04-22  7:10                       ` H. Nikolaus Schaller
2020-04-22 15:13                         ` Maxime Ripard
2020-04-22 16:09                           ` H. Nikolaus Schaller
     [not found]                             ` <MC879Q.XY9S0U9R35681@crapouillou.net>
2020-04-22 17:23                               ` H. Nikolaus Schaller
2020-04-22 19:00                                 ` Philipp Rossak
2020-04-22 19:33                                   ` Tony Lindgren
2020-04-22 21:12                                     ` H. Nikolaus Schaller [this message]
2020-04-23 15:00                             ` Neil Armstrong
2020-04-23 15:45                               ` H. Nikolaus Schaller
2020-04-23 20:36                                 ` Maxime Ripard
2020-04-24  9:51                                   ` H. Nikolaus Schaller
2020-04-21 16:42                 ` Philipp Rossak
2020-04-23 20:37                   ` Maxime Ripard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=266D5048-8339-433F-B66D-CAAB1C2CB1A2@goldelico.com \
    --to=hns@goldelico.com \
    --cc=airlied@linux.ie \
    --cc=bcousson@baylibre.com \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=embed3d@gmail.com \
    --cc=jhogan@kernel.org \
    --cc=kgene@kernel.org \
    --cc=krzk@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=maxime@cerno.tech \
    --cc=openpvrsgx-devgroup@letux.org \
    --cc=paul@crapouillou.net \
    --cc=paulburton@kernel.org \
    --cc=ralf@linux-mips.org \
    --cc=robh+dt@kernel.org \
    --cc=tony@atomide.com \
    --cc=tsbogend@alpha.franken.de \
    --cc=wens@csie.org \
    --cc=xc-racer2@live.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).