Message ID | 1480025536-6837-1-git-send-email-al.kochet@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Nov 25, 2016 at 01:12:16AM +0300, Alexander Kochetkov wrote: > The patch describes how to setup rockchip timers in device tree > so they can be used as clocksource. > > I'm going to implement this feature. > > Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com> > --- > .../bindings/timer/rockchip,rk-timer.txt | 35 +++++++++++++++++++- > 1 file changed, 34 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/timer/rockchip,rk-timer.txt b/Documentation/devicetree/bindings/timer/rockchip,rk-timer.txt > index 7bc9691..15f8fed 100644 > --- a/Documentation/devicetree/bindings/timer/rockchip,rk-timer.txt > +++ b/Documentation/devicetree/bindings/timer/rockchip,rk-timer.txt > @@ -16,7 +16,18 @@ Required properties: > - clock-names : must include the following entries: > "timer", "pclk" > > -Example: > +Note: > +If device tree contain only one timer, than the timer will be intialized > +as clockevent provider. If device tree contain two timers, than first timer > +will be initialized as clockevent provider and second one as clocksource. 1st and 2nd are ambiguous. Plus this is an OS implementation detail that doesn't belong in the binding. > +If you want to bind specific timer as clockevent (i.e. one from alive subsystem) > +and specific timer as clocksource, you can number the timers in "aliases" node. No. Use and/or describe what are the features of a timer to make the decision. There has to be some reason you care which one. One has an interrupt and the other doesn't. One is always on. Etc. Rob
> 1 дек. 2016 г., в 0:30, Rob Herring <robh@kernel.org> написал(а): > > 1st and 2nd are ambiguous. Plus this is an OS implementation detail that > doesn't belong in the binding. > >> +If you want to bind specific timer as clockevent (i.e. one from alive subsystem) >> +and specific timer as clocksource, you can number the timers in "aliases" node. > > No. > > Use and/or describe what are the features of a timer to make the > decision. There has to be some reason you care which one. One has an > interrupt and the other doesn't. One is always on. Etc. Thank you, Rob. Eventually I abandoned this decision. I left only one patch, which you confirmed recently. And sorry for making noise with duplicate patches. Alexander.
diff --git a/Documentation/devicetree/bindings/timer/rockchip,rk-timer.txt b/Documentation/devicetree/bindings/timer/rockchip,rk-timer.txt index 7bc9691..15f8fed 100644 --- a/Documentation/devicetree/bindings/timer/rockchip,rk-timer.txt +++ b/Documentation/devicetree/bindings/timer/rockchip,rk-timer.txt @@ -16,7 +16,18 @@ Required properties: - clock-names : must include the following entries: "timer", "pclk" -Example: +Note: +If device tree contain only one timer, than the timer will be intialized +as clockevent provider. If device tree contain two timers, than first timer +will be initialized as clockevent provider and second one as clocksource. + +If you want to bind specific timer as clockevent (i.e. one from alive subsystem) +and specific timer as clocksource, you can number the timers in "aliases" node. + +If device tree contain only one timer and the timer is named as timer1 in +"aliases" node, then the timer will be initialized as clocksource. + +Example (clockevent only): timer: timer@ff810000 { compatible = "rockchip,rk3288-timer"; reg = <0xff810000 0x20>; @@ -24,3 +35,25 @@ Example: clocks = <&xin24m>, <&cru PCLK_TIMER>; clock-names = "timer", "pclk"; }; + +Example (clockevent and clocksource with explicit numbering): + aliases { + timer0 = &timer6; + timer1 = &timer5; + }; + + timer5: timer@20038080 { + compatible = "rockchip,rk3188-timer", "rockchip,rk3288-timer"; + reg = <0x20038080 0x20>; + interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cru SCLK_TIMER5>, <&cru PCLK_TIMER0>; + clock-names = "timer", "pclk"; + }; + + timer6: timer@200380A0 { + compatible = ""rockchip,rk3188-timer", rockchip,rk3288-timer"; + reg = <0x200380A0 0x20>; + interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cru SCLK_TIMER6>, <&cru PCLK_TIMER0>; + clock-names = "timer", "pclk"; + };
The patch describes how to setup rockchip timers in device tree so they can be used as clocksource. I'm going to implement this feature. Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com> --- .../bindings/timer/rockchip,rk-timer.txt | 35 +++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-)