Thread (65 messages) 65 messages, 6 authors, 2013-12-20

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

From: Paul Walmsley <paul@pwsan.com>
Date: 2013-12-17 09:44:05
Also in: linux-arm-kernel, linux-omap

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 <redacted>
...
quoted hunk ↗ jump to hunk
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@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@4a306000 {
+			compatible = "ti,clock-master";
Similarly this should be 

compatible = "ti,omap4-prm";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0x4a306000 0x3000>;
+		};
+
+		cm2: cm2@4a008000 {
+			compatible = "ti,clock-master";
compatible = "ti,omap4-cm2";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0x4a008000 0x3000>;
+		};
+
+		scrm: scrm@4a30a000 {
+			compatible = "ti,clock-master";
compatible = "ti,omap4-scrm";


...
quoted hunk ↗ jump to hunk
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...
quoted hunk ↗ jump to hunk
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help