ARM: dts: am33xx: add minimal l4 bus layout with control module support
authorTero Kristo <t-kristo@ti.com>
Fri, 20 Mar 2015 11:08:29 +0000 (13:08 +0200)
committerTero Kristo <t-kristo@ti.com>
Tue, 31 Mar 2015 18:26:56 +0000 (21:26 +0300)
This patch creates an l4_wkup interconnect for AM33xx, and moves some of
the generic peripherals under it. System control module nodes are moved
under this new interconnect also, and the SCM clock layout is changed
to use the renamed SCM node as the clock provider.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Documentation/devicetree/bindings/arm/omap/l4.txt
Documentation/devicetree/bindings/arm/omap/prcm.txt
arch/arm/boot/dts/am33xx-clocks.dtsi
arch/arm/boot/dts/am33xx.dtsi
arch/arm/mach-omap2/control.c

index 64020220024d01defe67ac161a844015983de309..d333f0a9044ee6927845561e88d4aaad081eec88 100644 (file)
@@ -6,6 +6,7 @@ Required properties:
 - compatible : Should be "ti,omap2-l4" for OMAP2 family l4 core bus
               Should be "ti,omap2-l4-wkup" for OMAP2 family l4 wkup bus
               Should be "ti,omap3-l4-core" for OMAP3 family l4 core bus
+              Should be "ti,am3-l4-wkup" for AM33xx family l4 wkup bus
 - ranges : contains the IO map range for the bus
 
 Examples:
index ef5a74be6148661063a6b9f7ff9a2f1a24079ffe..c8e202763be88dca9d28dfc171823ec151fdb967 100644 (file)
@@ -10,7 +10,7 @@ documentation about the individual clock/clockdomain nodes.
 Required properties:
 - compatible:  Must be one of:
                "ti,am3-prcm"
-               "ti,am3-scrm"
+               "ti,am3-scm"
                "ti,am4-prcm"
                "ti,am4-scrm"
                "ti,omap2-prcm"
index 712edce7d6fb12904f7063d38e57e36ab051346a..236c78a3c6cadb88a23a5b754091f049912044c4 100644 (file)
@@ -7,7 +7,7 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-&scrm_clocks {
+&scm_clocks {
        sys_clkin_ck: sys_clkin_ck {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
index acd37057bca94377e5f092a754ee9cece5dede8a..21fcc440fc1a9d886d408701a705ad4daabd2325 100644 (file)
                };
        };
 
-       am33xx_control_module: control_module@4a002000 {
-               compatible = "syscon";
-               reg = <0x44e10000 0x7fc>;
-       };
-
-       am33xx_pinmux: pinmux@44e10800 {
-               compatible = "pinctrl-single";
-               reg = <0x44e10800 0x0238>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               pinctrl-single,register-width = <32>;
-               pinctrl-single,function-mask = <0x7f>;
-       };
-
        /*
         * XXX: Use a flat representation of the AM33XX interconnect.
         * The real AM33XX interconnect network is quite complex. Since
                ranges;
                ti,hwmods = "l3_main";
 
-               prcm: prcm@44e00000 {
-                       compatible = "ti,am3-prcm";
-                       reg = <0x44e00000 0x4000>;
-
-                       prcm_clocks: clocks {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                       };
+               l4_wkup: l4_wkup@44c00000 {
+                       compatible = "ti,am3-l4-wkup", "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x44c00000 0x280000>;
 
-                       prcm_clockdomains: clockdomains {
-                       };
-               };
+                       prcm: prcm@200000 {
+                               compatible = "ti,am3-prcm";
+                               reg = <0x200000 0x4000>;
 
-               scrm: scrm@44e10000 {
-                       compatible = "ti,am3-scrm";
-                       reg = <0x44e10000 0x2000>;
+                               prcm_clocks: clocks {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                               };
 
-                       scrm_clocks: clocks {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
+                               prcm_clockdomains: clockdomains {
+                               };
                        };
 
-                       scrm_clockdomains: clockdomains {
+                       scm: scm@210000 {
+                               compatible = "ti,am3-scm", "simple-bus";
+                               reg = <0x210000 0x2000>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0 0x210000 0x2000>;
+
+                               am33xx_pinmux: pinmux@800 {
+                                       compatible = "pinctrl-single";
+                                       reg = <0x800 0x238>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       pinctrl-single,register-width = <32>;
+                                       pinctrl-single,function-mask = <0x7f>;
+                               };
+
+                               scm_conf: scm_conf@0 {
+                                       compatible = "syscon";
+                                       reg = <0x0 0x800>;
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       scm_clocks: clocks {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+                                       };
+                               };
+
+                               scm_clockdomains: clockdomains {
+                               };
                        };
                };
 
-               cm: syscon@44e10000 {
-                       compatible = "ti,am33xx-controlmodule", "syscon";
-                       reg = <0x44e10000 0x800>;
-               };
-
                intc: interrupt-controller@48200000 {
                        compatible = "ti,am33xx-intc";
                        interrupt-controller;
                        reg = <0x481cc000 0x2000>;
                        clocks = <&dcan0_fck>;
                        clock-names = "fck";
-                       syscon-raminit = <&am33xx_control_module 0x644 0>;
+                       syscon-raminit = <&scm_conf 0x644 0>;
                        interrupts = <52>;
                        status = "disabled";
                };
                        reg = <0x481d0000 0x2000>;
                        clocks = <&dcan1_fck>;
                        clock-names = "fck";
-                       syscon-raminit = <&am33xx_control_module 0x644 1>;
+                       syscon-raminit = <&scm_conf 0x644 1>;
                        interrupts = <55>;
                        status = "disabled";
                };
                         */
                        interrupts = <40 41 42 43>;
                        ranges;
-                       syscon = <&cm>;
+                       syscon = <&scm_conf>;
                        status = "disabled";
 
                        davinci_mdio: mdio@4a101000 {
index 30f5aff7645fc5b32090042c7c4f5f1a8401cdfc..477e2c8f26a61e8dd20644de2a71379d8ee7db9d 100644 (file)
@@ -667,7 +667,7 @@ static const struct control_init_data omap2_ctrl_data = {
 };
 
 static const struct of_device_id omap_scrm_dt_match_table[] = {
-       { .compatible = "ti,am3-scrm", .data = &ctrl_data },
+       { .compatible = "ti,am3-scm", .data = &ctrl_data },
        { .compatible = "ti,am4-scrm", .data = &ctrl_data },
        { .compatible = "ti,omap2-scm", .data = &omap2_ctrl_data },
        { .compatible = "ti,omap3-scm", .data = &omap2_ctrl_data },