Hi Sudeep, > -----Original Message----- > From: Sudeep Holla [mailto:sudeep.ho...@arm.com] > Sent: Tuesday, May 15, 2018 2:34 AM > To: Jolly Shah <jol...@xilinx.com>; ard.biesheu...@linaro.org; > mi...@kernel.org; gre...@linuxfoundation.org; m...@codeblueprint.co.uk; > hkallwe...@gmail.com; keesc...@chromium.org; > dmitry.torok...@gmail.com; mturque...@baylibre.com; > sb...@codeaurora.org; michal.si...@xilinx.com; robh...@kernel.org; > mark.rutl...@arm.com; linux-...@vger.kernel.org > Cc: Sudeep Holla <sudeep.ho...@arm.com>; Rajan Vaja <raj...@xilinx.com>; > linux-arm-ker...@lists.infradead.org; linux-kernel@vger.kernel.org; > devicet...@vger.kernel.org > Subject: Re: [PATCH v6 04/11] firmware: xilinx: Add query data API > > > > On 14/05/18 20:16, Jolly Shah wrote: > > HI Sudeep, > > > > [...] > > >> > >> Can you give more insight into this ? How will be this used ? How > >> this aligns with data we get from DT ? I am just trying to understand > >> how is this information split between this API and DT for example. > >> > > > > This API is used to get clock information from firmware and register > > clocks accordingly in driver. In our case, firmware maintains database > > of all clocks available on chip. DT will provide information for off > > chip reference clocks only. This is to avoid duplication of clocks > > data in DT and firmware both as firmware anyways need clock data to > > manage them. > > > > I wanted to understand the difference with example. What kind of information > you get from DT and what you get from firmware ? > > -- > Regards, > Sudeep
Below is an example showing PLL and Leaf clock derivation: Input ref clocks->Mux->Multiplier/Divider->PLL* Pll1/pll2/pll3/pll4->Mux->Divider->Gate->Leaf clock1 Here Off chip input ref clock information comes from DT. Rest information for Pll/leaf clocks come from firmware using query API. For clock driver, query API is used to get topology, flags, parents etc information per clock. Thanks, Jolly Shah