Hi, Daniel > On 27/06/2019 02:43, Anson Huang wrote: > > Hi, Daniel > > > >> On 26/06/2019 03:42, Anson Huang wrote: > >>> Hi, Daniel > >>> > >>>> On 23/06/2019 14:38, Anson.Huang@xxxxxxx wrote: > >>>>> From: Anson Huang <Anson.Huang@xxxxxxx> > >>>>> > >>>>> Systems which use platform driver model for clock driver require > >>>>> the clock frequency to be supplied via device tree when system > >>>>> counter driver is enabled. > >>>>> > >>>>> This is necessary as in the platform driver model the of_clk > >>>>> operations do not work correctly because system counter driver is > >>>>> initialized in early phase of system boot up, and clock driver > >>>>> using platform driver model is NOT ready at that time, it will > >>>>> cause system counter driver initialization failed. > >>>>> > >>>>> Add the optinal clock-frequency to the device tree bindings of the > >>>>> NXP system counter, so the frequency can be handed in and the > >>>>> of_clk operations can be skipped. > >>>> > >>>> Isn't it possible to create a fixed-clock and refer to it? So no > >>>> need to create a specific action before calling timer_of_init() ? > >>>> > >>> > >>> As the clock must be ready before the TIMER_OF_DECLARE, so adding a > >>> CLK_OF_DECLARE_DRIVER in clock driver to ONLY register a fixed-clock? > >>> The system counter's frequency are different on different platforms, > >>> so adding fixed clock in system counter driver is NOT a good idea, > >>> ONLY the DT node or the clock driver can create this fixed clock > >>> according to > >> platforms, can you advise where to create this fixed clock is better? > >> > >> Can you point me to a DT with the "nxp,sysctr-timer" ? > > > > The DT node of system counter is new added in 3/3 of this patch > > series, also can be found from below link: > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatc > > > hwork.kernel.org%2Fpatch%2F11011703%2F&data=02%7C01%7Canson. > huang% > > > 40nxp.com%7C8b9519ecceb346712be808d6fad675e4%7C686ea1d3bc2b4c6f > a92cd99 > > > c5c301635%7C0%7C0%7C636972196338405582&sdata=sOQQzDFxoCqe > VuHFuYPHh > > F8Bdj2Zu9WS7Go%2FV9lrWa8%3D&reserved=0 > > Sorry, I was unclear. I meant a patch with the timer defined using a clock as > defined currently in the binding (no clock-frequency). OK, for i.MX8MM, we use clocks, check below patch series: https://patchwork.kernel.org/patch/11008519/ code piece as below: + system_counter: timer@306a0000 { + compatible = "nxp,sysctr-timer"; + reg = <0x306a0000 0x30000>; + interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clk IMX8MM_CLK_SYS_CTR>; + clock-names = "per"; + }; Thanks, Anson.