
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@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