Add node for system control module, and move all the existing system
control IO space users under this new node as its children. A new node
for scm_conf area is also added. DT documentation is also updated by
this patch to reflect the existence of system control module nodes,
separately of PRCM module.

Signed-off-by: Tero Kristo <[email protected]>
---
 .../devicetree/bindings/arm/omap/ctrl.txt          |   75 +++++++++++++++++++
 .../devicetree/bindings/arm/omap/prcm.txt          |    6 --
 arch/arm/boot/dts/omap4.dtsi                       |   76 +++++++++++++-------
 3 files changed, 125 insertions(+), 32 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/omap/ctrl.txt

diff --git a/Documentation/devicetree/bindings/arm/omap/ctrl.txt 
b/Documentation/devicetree/bindings/arm/omap/ctrl.txt
new file mode 100644
index 0000000..88b12b5
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/omap/ctrl.txt
@@ -0,0 +1,75 @@
+OMAP Control Module bindings
+
+Control Module contains miscellaneous features under it based on SoC type.
+Pincontrol is one common feature, and it has a specialized support
+described in [1]. Typically some clock nodes are also under control module.
+Syscon is used to share register level access to drivers external to
+control module driver itself.
+
+See [2] for documentation about clock/clockdomain nodes.
+
+[1] Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
+[2] Documentation/devicetree/bindings/clock/ti/*
+
+Required properties:
+- compatible:  Must be one of:
+               "ti,am3-scrm"
+               "ti,am4-scrm"
+               "ti,dm814-scrm"
+               "ti,dm816-scrm"
+               "ti,omap2-scrm"
+               "ti,omap3-scrm"
+               "ti,omap4-ctrl"
+- reg:         Contains Control Module register address range
+               (base address and length)
+
+Optional properties:
+- clocks:      clocks for this module
+- clockdomains:        clockdomains for this module
+
+Examples:
+
+scrm: scrm@48002000 {
+       compatible = "ti,omap3-scrm", "simple-bus";
+       reg = <0x48002000 0x2000>;
+       #address-cells = <1>;
+       #size-cells = <1>;
+       ranges = <0 0x48002000 0x2000>;
+
+       omap3_pmx_core: pinmux@30 {
+               compatible = "ti,omap3-padconf",
+                            "pinctrl-single";
+               reg = <0x30 0x230>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               #interrupt-cells = <1>;
+               interrupt-controller;
+               pinctrl-single,register-width = <16>;
+               pinctrl-single,function-mask = <0xff1f>;
+       };
+
+       scm_conf: tisyscon@270 {
+               compatible = "syscon";
+               reg = <0x270 0x330>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               scrm_clocks: clocks {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+
+       scrm_clockdomains: clockdomains {
+       };
+}
+
+&scrm_clocks {
+       mcbsp5_mux_fck: mcbsp5_mux_fck {
+               #clock-cells = <0>;
+               compatible = "ti,composite-mux-clock";
+               clocks = <&core_96m_fck>, <&mcbsp_clks>;
+               ti,bit-shift = <4>;
+               reg = <0x02d8>;
+       };
+};
diff --git a/Documentation/devicetree/bindings/arm/omap/prcm.txt 
b/Documentation/devicetree/bindings/arm/omap/prcm.txt
index 68f96f8..3eb6d7a 100644
--- a/Documentation/devicetree/bindings/arm/omap/prcm.txt
+++ b/Documentation/devicetree/bindings/arm/omap/prcm.txt
@@ -10,14 +10,10 @@ documentation about the individual clock/clockdomain nodes.
 Required properties:
 - compatible:  Must be one of:
                "ti,am3-prcm"
-               "ti,am3-scrm"
                "ti,am4-prcm"
-               "ti,am4-scrm"
                "ti,omap2-prcm"
-               "ti,omap2-scrm"
                "ti,omap3-prm"
                "ti,omap3-cm"
-               "ti,omap3-scrm"
                "ti,omap4-cm1"
                "ti,omap4-prm"
                "ti,omap4-cm2"
@@ -30,9 +26,7 @@ Required properties:
                "ti,dra7-cm-core-aon"
                "ti,dra7-cm-core"
                "ti,dm814-prcm"
-               "ti,dm814-scrm"
                "ti,dm816-prcm"
-               "ti,dm816-scrm"
 - reg:         Contains PRCM module register address range
                (base address and length)
 - clocks:      clocks for this module
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 074147c..0bab7ce 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -167,38 +167,62 @@
                        };
                };
 
+               scm: scm@4a002000 {
+                       compatible = "ti,omap4-ctrl", "simple-bus";
+                       reg = <0x4a002000 0x1000>,
+                             <0x4a30a000 0x1000>,
+                             <0x4a100000 0x1000>,
+                             <0x4a31e000 0x1000>;
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0x4a002000 0x1000>,
+                                <1 0 0x4a30a000 0x1000>,
+                                <2 0 0x4a100000 0x1000>,
+                                <3 0 0x4a31e000 0x1000>;
+
+                       scm_conf: tisyscon@0,0 {
+                               compatible = "syscon";
+                               reg = <0 0x0 0x800>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                       };
+
+                       omap4_pmx_core: pinmux@2,40 {
+                               compatible = "ti,omap4-padconf",
+                                            "pinctrl-single";
+                               reg = <2 0x40 0x0196>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               #interrupt-cells = <1>;
+                               interrupt-controller;
+                               pinctrl-single,register-width = <16>;
+                               pinctrl-single,function-mask = <0x7fff>;
+                       };
+
+                       omap4_pmx_wkup: pinmux@3,40 {
+                               compatible = "ti,omap4-padconf",
+                                            "pinctrl-single";
+                               reg = <3 0x40 0x0038>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               #interrupt-cells = <1>;
+                               interrupt-controller;
+                               pinctrl-single,register-width = <16>;
+                               pinctrl-single,function-mask = <0x7fff>;
+                       };
+
+                       omap4_padconf_global: omap4_padconf_global@2,5a0 {
+                               compatible = "syscon";
+                               reg = <2 0x5a0 0x170>;
+                       };
+               };
+
                counter32k: counter@4a304000 {
                        compatible = "ti,omap-counter32k";
                        reg = <0x4a304000 0x20>;
                        ti,hwmods = "counter_32k";
                };
 
-               omap4_pmx_core: pinmux@4a100040 {
-                       compatible = "ti,omap4-padconf", "pinctrl-single";
-                       reg = <0x4a100040 0x0196>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       #interrupt-cells = <1>;
-                       interrupt-controller;
-                       pinctrl-single,register-width = <16>;
-                       pinctrl-single,function-mask = <0x7fff>;
-               };
-               omap4_pmx_wkup: pinmux@4a31e040 {
-                       compatible = "ti,omap4-padconf", "pinctrl-single";
-                       reg = <0x4a31e040 0x0038>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       #interrupt-cells = <1>;
-                       interrupt-controller;
-                       pinctrl-single,register-width = <16>;
-                       pinctrl-single,function-mask = <0x7fff>;
-               };
-
-               omap4_padconf_global: tisyscon@4a1005a0 {
-                       compatible = "syscon";
-                       reg = <0x4a1005a0 0x170>;
-               };
-
                pbias_regulator: pbias_regulator {
                        compatible = "ti,pbias-omap";
                        reg = <0x60 0x4>;
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to