[U-Boot] placement for new clock drivers

Dinh Nguyen dinguyen at opensource.altera.com
Mon Feb 29 17:56:48 CET 2016


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?

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?

Thanks,
Dinh


More information about the U-Boot mailing list