[U-Boot] placement for new clock drivers

Simon Glass sjg at chromium.org
Tue Mar 1 03:03:26 CET 2016


Hi,

On 29 February 2016 at 09:56, Dinh Nguyen
<dinguyen at opensource.altera.com> wrote:
> Hi,
>
> I have a few questions regarding the UCLASS_CLK driver. I need to
> implement a clock driver for a new-ish platform, an ARMv7 based SoCFPGA
> Arria10.
>
> I think going forward, it would make sense to place the driver to be of
> UCLASS_CLK and would go into drivers/clk/, instead of under
> arch/arm/mach-socfpga directory, Am I correct in assuming that?

Yes.

>
> My 2nd question is regarding the usage of uclass_get_device(UCLASS_CLK).
> If I have a DTS that is from:
> arch/arm/dts/socfpga.dtsi
>
> Fragment of the clock portion from the DTS here:
>
> clkmgr at ffd04000 {
>         compatible = "altr,clk-mgr";
>         reg = <0xffd04000 0x1000>;
>
>         clocks {
>                 #address-cells = <1>;
>                 #size-cells = <0>;
>
>                 osc1: osc1 {
>                         #clock-cells = <0>;
>                         compatible = "fixed-clock";
>                         clock-frequency = <25000000>;
>
>                 };
>
>                 osc2: osc2 {
>                         #clock-cells = <0>;
>                         compatible = "fixed-clock";
>                 };
>
>                 f2s_periph_ref_clk: f2s_periph_ref_clk {
>                         #clock-cells = <0>;
>                         compatible = "fixed-clock";
>                 };
>
>                 f2s_sdram_ref_clk: f2s_sdram_ref_clk {
>                         #clock-cells = <0>;
>                         compatible = "fixed-clock";
>                 };
> };
>
> I tried calling uclass_get_device(UCLASS_CLK, 0, dev), thinking that it
> would return the "fixed-clock" clocks, then I can get the frequencies
> and move forward with calculating the rest of the clocks. But
> uclass_get_device() is returning an error for me. I'm sure I might have
> missed understood how the clock framework is supposed to work somewhere.
> Can you please point me in the right direction?

Do you have a driver for altr,clk-mgr? If not you could add a driver,
or maybe "simple-bus" to the compatible string.

If you add a driver, see simple_bus_post_bind() for the function you
need to call to bind devices in sub-nodes.

Regards,
Simon


More information about the U-Boot mailing list