Hi, I'm stuck with dts problem. Whenever I try to find a clock for my device, the of_get_clk returns an error "Kernel panic - not syncing: Can't get timer clock" My DTS looks like this (reduced to relevant parts for easier reading): #include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/arm-gic.h> #include "skeleton.dtsi" / { [...] soc { #address-cells = <1>; #size-cells = <1>; compatible = "simple-bus"; ranges; gic: interrupt-controller@10212000 { compatible = "arm,cortex-a9-gic"; interrupt-controller; #interrupt-cells = <3>; reg = <0x10211000 0x1000>, <0x10212000 0x1000>; }; osc: oscillator { compatible = "fixed-clock"; #clock-cells = <1>; clock-frequency = <15000000>; clock-output-names = "osc"; }; timer: timer-mysoc { compatible = "mysoc,mysoc-timer"; reg = <0x10008000 0x30>; interrupts = <GIC_SPI 113 IRQ_TYPE_EDGE_RISING>; clocks = <&osc 0>; clock-names = "system15m"; }; }; }; my /drivers/clocksource/mysoc-timer.c looks like this (reduced to relevant parts for easier reading): [...] static void __init mysoc_timer_init(struct device_node *node) { unsigned long rate = 0; struct clk *clk; int ret, irq; u32 val; gpt_base = of_iomap(node, 0); if (!gpt_base) panic("Can't map registers"); irq = irq_of_parse_and_map(node, 0); if (irq <= 0) panic("Can't parse IRQ"); clk = of_clk_get(node, 0); if (IS_ERR(clk)) panic("Can't get timer clock"); clk_prepare_enable(clk); rate = clk_get_rate(clk); } CLOCKSOURCE_OF_DECLARE(mtk_mt6589, "mysoc,mysoc-timer", mysoc_timer_init); What I'm missing? I seems as if the clock "osc" is not found in the device tree. Any idea why. Building the DTB works without errors, but I suppose that doesn't mean too much anyway. Cheers, Matthias -- motzblog.wordpress.com _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies