[PATCH v3 14/19] ARM: shmobile: r8a7779: Add TMU devices to DT
Simon Horman
horms at verge.net.au
Mon Jun 16 16:34:34 PDT 2014
On Mon, Jun 16, 2014 at 04:22:11PM +0200, Laurent Pinchart wrote:
> Hi Simon,
>
> On Monday 16 June 2014 17:47:07 Simon Horman wrote:
> > On Sat, Jun 14, 2014 at 06:23:36PM +0200, Laurent Pinchart wrote:
> > > Add the TMU0, TMU1 and TMU2 counters to the r8a7779 device tree and make
> > > them disabled by default.
> > >
> > > Signed-off-by: Laurent Pinchart
> > > <laurent.pinchart+renesas at ideasonboard.com>
> > > ---
> > >
> > > arch/arm/boot/dts/r8a7779.dtsi | 42 +++++++++++++++++++++++++++++++++++++
> > > 1 file changed, 42 insertions(+)
> > >
> > > diff --git a/arch/arm/boot/dts/r8a7779.dtsi
> > > b/arch/arm/boot/dts/r8a7779.dtsi index 94e2fc8..bf716ce 100644
> > > --- a/arch/arm/boot/dts/r8a7779.dtsi
> > > +++ b/arch/arm/boot/dts/r8a7779.dtsi
> > > @@ -266,6 +266,48 @@
> > > reg = <0xffc48000 0x38>;
> > > };
> > >
> > > + tmu0: timer at ffd80000 {
> > > + compatible = "renesas,tmu";
> > > + reg = <0xffd80000 0x30>;
> > > + interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>,
> > > + <0 41 IRQ_TYPE_LEVEL_HIGH>,
> > > + <0 42 IRQ_TYPE_LEVEL_HIGH>;
> > > + clocks = <&mstp0_clks R8A7779_CLK_TMU0>;
> > > + clock-names = "fck";
> > > +
> > > + #renesas,channels = <3>;
> > > +
> > > + status = "disabled";
> > > + };
> > > +
> > > + tmu1: timer at ffd81000 {
> > > + compatible = "renesas,tmu";
> > > + reg = <0xffd81000 0x30>;
> > > + interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>,
> > > + <0 45 IRQ_TYPE_LEVEL_HIGH>,
> > > + <0 46 IRQ_TYPE_LEVEL_HIGH>;
> > > + clocks = <&mstp0_clks R8A7779_CLK_TMU1>;
> > > + clock-names = "fck";
> > > +
> > > + #renesas,channels = <3>;
> > > +
> > > + status = "disabled";
> > > + };
> > > +
> > > + tmu2: timer at ffd82000 {
> > > + compatible = "renesas,tmu";
> > > + reg = <0xffd82000 0x30>;
> > > + interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>,
> > > + <0 49 IRQ_TYPE_LEVEL_HIGH>,
> > > + <0 50 IRQ_TYPE_LEVEL_HIGH>;
> > > + clocks = <&mstp0_clks R8A7779_CLK_TMU2>;
> > > + clock-names = "fck";
> > > +
> > > + #renesas,channels = <3>;
> > > +
> > > + status = "disabled";
> > > + };
> > > +
> > > sata: sata at fc600000 {
> > > compatible = "renesas,rcar-sata";
> > > reg = <0xfc600000 0x2000>;
> >
> > There are no interrupt-parents in in the nodes above nodes
> > although the documentation of the binding has one in the example.
> > Is it just an oversight in this patch?
>
> Not really.
>
> The interrupt-parent property is required but can be inherited. Furthermore,
> the interrupts-extended property can be used to replace the interrupts and
> interrupt-parent properties. This should all be documented in the DT bindings,
> but not by duplicating the full explanation in dozens of different flavours in
> all bindings. We need standard wordings for common properties such as
> interrupts, clocks or reg.
Thanks for the clarification, I'm fine with that.
> > I believe that the IRQ numbers are not correct.
> >
> > In setup-r8a7779.c I see gic_iid(0x40). But above I see 40.
> > I think the correct value is 0x40 - 32 = 32. Likewise
> > for the other IRQs of tmu0. And looking at the documentaiton
> > this seems true for tmu1 and tmu2 too.
> >
> > I have successfully booted a marzen board with the following incremental
> > patch to the DT nodes.
>
> You're right, sorry about that. I'll fix the interrupt numbers and resubmit.
> The interrupt-parent is specified at the top level so there's no need to add
> it to the TMU nodes.
>
> > diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi
> > index bf716ce..81714ce 100644
> > --- a/arch/arm/boot/dts/r8a7779.dtsi
> > +++ b/arch/arm/boot/dts/r8a7779.dtsi
> > @@ -269,9 +269,10 @@
> > tmu0: timer at ffd80000 {
> > compatible = "renesas,tmu";
> > reg = <0xffd80000 0x30>;
> > - interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>,
> > - <0 41 IRQ_TYPE_LEVEL_HIGH>,
> > - <0 42 IRQ_TYPE_LEVEL_HIGH>;
> > + interrupt-parent = <&gic>;
> > + interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>,
> > + <0 33 IRQ_TYPE_LEVEL_HIGH>,
> > + <0 34 IRQ_TYPE_LEVEL_HIGH>;
> > clocks = <&mstp0_clks R8A7779_CLK_TMU0>;
> > clock-names = "fck";
> >
> > @@ -283,9 +284,10 @@
> > tmu1: timer at ffd81000 {
> > compatible = "renesas,tmu";
> > reg = <0xffd81000 0x30>;
> > - interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>,
> > - <0 45 IRQ_TYPE_LEVEL_HIGH>,
> > - <0 46 IRQ_TYPE_LEVEL_HIGH>;
> > + interrupt-parent = <&gic>;
> > + interrupts = <0 35 IRQ_TYPE_LEVEL_HIGH>,
> > + <0 36 IRQ_TYPE_LEVEL_HIGH>,
> > + <0 37 IRQ_TYPE_LEVEL_HIGH>;
>
> If I'm not mistaken the interrupts should be 36, 37 and 38.
Yes, sorry about that.
> > clocks = <&mstp0_clks R8A7779_CLK_TMU1>;
> > clock-names = "fck";
> >
> > @@ -296,10 +298,11 @@
> >
> > tmu2: timer at ffd82000 {
> > compatible = "renesas,tmu";
> > + interrupt-parent = <&gic>;
> > reg = <0xffd82000 0x30>;
> > - interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>,
> > - <0 49 IRQ_TYPE_LEVEL_HIGH>,
> > - <0 50 IRQ_TYPE_LEVEL_HIGH>;
> > + interrupts = <0 38 IRQ_TYPE_LEVEL_HIGH>,
> > + <0 39 IRQ_TYPE_LEVEL_HIGH>,
> > + <0 40 IRQ_TYPE_LEVEL_HIGH>;
>
> And 40, 41 and 42 here.
Yes. I wonder how I managed to mess these up.
> > clocks = <&mstp0_clks R8A7779_CLK_TMU2>;
> > clock-names = "fck";
More information about the linux-arm-kernel
mailing list