[PATCHv10 21/41] ARM: dts: omap4 clock data
Paul Walmsley
paul at pwsan.com
Fri Dec 20 06:15:54 EST 2013
On Tue, 17 Dec 2013, Tero Kristo wrote:
> On 12/17/2013 11:44 AM, Paul Walmsley wrote:
> > On Tue, 26 Nov 2013, Tero Kristo wrote:
> >
> > > This patch creates a unique node for each clock in the OMAP4 power,
> > > reset and clock manager (PRCM). OMAP443x and OMAP446x have slightly
> > > different clock tree which is taken into account in the data.
> > >
> > > Signed-off-by: Tero Kristo <t-kristo at ti.com>
> >
> > ...
> >
> > > diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
> > > index a1e0585..c2e3993 100644
> > > --- a/arch/arm/boot/dts/omap4.dtsi
> > > +++ b/arch/arm/boot/dts/omap4.dtsi
> > > @@ -107,6 +107,34 @@
> > > interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
> > > <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
> > >
> > > + cm1: cm1 at 4a004000 {
> > > + compatible = "ti,clock-master";
> >
> > These devices are low-level IP blocks, and should have accurate compatible
> > strings like any other low-level IP block. At some point in the future,
> > these IP blocks will have device driver code that matches up with these DT
> > nodes, and is probed via these compatible strings. These should be
> > corrected now, so unnecessary DT data synchronization problems don't
> > appear with later kernels.
> >
> > So this should be something like:
> >
> > compatible = "ti,omap4-cm1";
> >
> > > + #address-cells = <1>;
> > > + #size-cells = <0>;
> > > + reg = <0x4a004000 0x2000>;
> > > + };
> > > +
> > > + prm: prm at 4a306000 {
> > > + compatible = "ti,clock-master";
> >
> > Similarly this should be
> >
> > compatible = "ti,omap4-prm";
>
> How about just adding dual compatible strings? Keep the current one and add
> the other as extra.
>
> compatible = "ti,clock-master", "ti,omap4-prm";
>
> Easier to handle it this way.
>
> >
> > > + #address-cells = <1>;
> > > + #size-cells = <0>;
> > > + reg = <0x4a306000 0x3000>;
> > > + };
> > > +
> > > + cm2: cm2 at 4a008000 {
> > > + compatible = "ti,clock-master";
> >
> > compatible = "ti,omap4-cm2";
> >
> > > + #address-cells = <1>;
> > > + #size-cells = <0>;
> > > + reg = <0x4a008000 0x3000>;
> > > + };
> > > +
> > > + scrm: scrm at 4a30a000 {
> > > + compatible = "ti,clock-master";
> >
> > compatible = "ti,omap4-scrm";
> >
> >
> > ...
> >
> > > diff --git a/arch/arm/boot/dts/omap443x-clocks.dtsi
> > > b/arch/arm/boot/dts/omap443x-clocks.dtsi
> > > new file mode 100644
> > > index 0000000..643755b
> > > --- /dev/null
> > > +++ b/arch/arm/boot/dts/omap443x-clocks.dtsi
> > > @@ -0,0 +1,18 @@
> > > +/*
> > > + * Device Tree Source for OMAP4 clock data
> > > + *
> > > + * Copyright (C) 2013 Texas Instruments, Inc.
> > > + *
> > > + * This program is free software; you can redistribute it and/or modify
> > > + * it under the terms of the GNU General Public License version 2 as
> > > + * published by the Free Software Foundation.
> > > + */
> > > +&prm {
> > > + bandgap_fclk: bandgap_fclk {
> > > + #clock-cells = <0>;
> > > + compatible = "ti,gate-clock";
> > > + clocks = <&sys_32k_ck>;
> > > + ti,bit-shift = <8>;
> > > + reg = <0x1888>;
> > > + };
> >
> > So we've already discussed that clocks should be moved underneath
> > separate "clocks {" node in the IP block data. And similarly...
>
> Yeah, I have actually wip v11 which has this done. I ended up creating this
> though:
>
> ...
> prm {
> prm_clocks: clocks {
>
> };
> };
>
> ... and references like:
>
> &prm_clocks {
>
> };
>
> It seems the references to existing clocks {} nodes is impossible otherwise as
> I need to add some extra clocks to these.
>
> >
> > > diff --git a/arch/arm/boot/dts/omap44xx-clocks.dtsi
> > > b/arch/arm/boot/dts/omap44xx-clocks.dtsi
> > > new file mode 100644
> > > index 0000000..2b59d54
> > > --- /dev/null
> > > +++ b/arch/arm/boot/dts/omap44xx-clocks.dtsi
> >
> > ...
> >
> > > + emu_sys_clkdm: emu_sys_clkdm {
> > > + compatible = "ti,clockdomain";
> > > + clocks = <&trace_clk_div_ck>;
> > > + };
> >
> > ... all of the clockdomains should be moved underneath "clockdomains {"
> > nodes in the IP block DT data.
>
> Ok that can be done.
Thanks for making these changes; the data looks better now.
- Paul
More information about the linux-arm-kernel
mailing list