[PATCHv10 21/41] ARM: dts: omap4 clock data

Paul Walmsley paul at pwsan.com
Tue Dec 17 04:44:05 EST 2013


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";

> +			#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...

> 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.


- Paul



More information about the linux-arm-kernel mailing list