Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: am33xx: add minimal l4 bus layout with control module support

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>

+54 -46
+1
Documentation/devicetree/bindings/arm/omap/l4.txt
··· 6 6 - compatible : Should be "ti,omap2-l4" for OMAP2 family l4 core bus 7 7 Should be "ti,omap2-l4-wkup" for OMAP2 family l4 wkup bus 8 8 Should be "ti,omap3-l4-core" for OMAP3 family l4 core bus 9 + Should be "ti,am3-l4-wkup" for AM33xx family l4 wkup bus 9 10 - ranges : contains the IO map range for the bus 10 11 11 12 Examples:
+1 -1
Documentation/devicetree/bindings/arm/omap/prcm.txt
··· 10 10 Required properties: 11 11 - compatible: Must be one of: 12 12 "ti,am3-prcm" 13 - "ti,am3-scrm" 13 + "ti,am3-scm" 14 14 "ti,am4-prcm" 15 15 "ti,am4-scrm" 16 16 "ti,omap2-prcm"
+1 -1
arch/arm/boot/dts/am33xx-clocks.dtsi
··· 7 7 * it under the terms of the GNU General Public License version 2 as 8 8 * published by the Free Software Foundation. 9 9 */ 10 - &scrm_clocks { 10 + &scm_clocks { 11 11 sys_clkin_ck: sys_clkin_ck { 12 12 #clock-cells = <0>; 13 13 compatible = "ti,mux-clock";
+50 -43
arch/arm/boot/dts/am33xx.dtsi
··· 83 83 }; 84 84 }; 85 85 86 - am33xx_control_module: control_module@4a002000 { 87 - compatible = "syscon"; 88 - reg = <0x44e10000 0x7fc>; 89 - }; 90 - 91 - am33xx_pinmux: pinmux@44e10800 { 92 - compatible = "pinctrl-single"; 93 - reg = <0x44e10800 0x0238>; 94 - #address-cells = <1>; 95 - #size-cells = <0>; 96 - pinctrl-single,register-width = <32>; 97 - pinctrl-single,function-mask = <0x7f>; 98 - }; 99 - 100 86 /* 101 87 * XXX: Use a flat representation of the AM33XX interconnect. 102 88 * The real AM33XX interconnect network is quite complex. Since ··· 97 111 ranges; 98 112 ti,hwmods = "l3_main"; 99 113 100 - prcm: prcm@44e00000 { 101 - compatible = "ti,am3-prcm"; 102 - reg = <0x44e00000 0x4000>; 114 + l4_wkup: l4_wkup@44c00000 { 115 + compatible = "ti,am3-l4-wkup", "simple-bus"; 116 + #address-cells = <1>; 117 + #size-cells = <1>; 118 + ranges = <0 0x44c00000 0x280000>; 103 119 104 - prcm_clocks: clocks { 120 + prcm: prcm@200000 { 121 + compatible = "ti,am3-prcm"; 122 + reg = <0x200000 0x4000>; 123 + 124 + prcm_clocks: clocks { 125 + #address-cells = <1>; 126 + #size-cells = <0>; 127 + }; 128 + 129 + prcm_clockdomains: clockdomains { 130 + }; 131 + }; 132 + 133 + scm: scm@210000 { 134 + compatible = "ti,am3-scm", "simple-bus"; 135 + reg = <0x210000 0x2000>; 105 136 #address-cells = <1>; 106 - #size-cells = <0>; 137 + #size-cells = <1>; 138 + ranges = <0 0x210000 0x2000>; 139 + 140 + am33xx_pinmux: pinmux@800 { 141 + compatible = "pinctrl-single"; 142 + reg = <0x800 0x238>; 143 + #address-cells = <1>; 144 + #size-cells = <0>; 145 + pinctrl-single,register-width = <32>; 146 + pinctrl-single,function-mask = <0x7f>; 147 + }; 148 + 149 + scm_conf: scm_conf@0 { 150 + compatible = "syscon"; 151 + reg = <0x0 0x800>; 152 + #address-cells = <1>; 153 + #size-cells = <1>; 154 + 155 + scm_clocks: clocks { 156 + #address-cells = <1>; 157 + #size-cells = <0>; 158 + }; 159 + }; 160 + 161 + scm_clockdomains: clockdomains { 162 + }; 107 163 }; 108 - 109 - prcm_clockdomains: clockdomains { 110 - }; 111 - }; 112 - 113 - scrm: scrm@44e10000 { 114 - compatible = "ti,am3-scrm"; 115 - reg = <0x44e10000 0x2000>; 116 - 117 - scrm_clocks: clocks { 118 - #address-cells = <1>; 119 - #size-cells = <0>; 120 - }; 121 - 122 - scrm_clockdomains: clockdomains { 123 - }; 124 - }; 125 - 126 - cm: syscon@44e10000 { 127 - compatible = "ti,am33xx-controlmodule", "syscon"; 128 - reg = <0x44e10000 0x800>; 129 164 }; 130 165 131 166 intc: interrupt-controller@48200000 { ··· 357 350 reg = <0x481cc000 0x2000>; 358 351 clocks = <&dcan0_fck>; 359 352 clock-names = "fck"; 360 - syscon-raminit = <&am33xx_control_module 0x644 0>; 353 + syscon-raminit = <&scm_conf 0x644 0>; 361 354 interrupts = <52>; 362 355 status = "disabled"; 363 356 }; ··· 368 361 reg = <0x481d0000 0x2000>; 369 362 clocks = <&dcan1_fck>; 370 363 clock-names = "fck"; 371 - syscon-raminit = <&am33xx_control_module 0x644 1>; 364 + syscon-raminit = <&scm_conf 0x644 1>; 372 365 interrupts = <55>; 373 366 status = "disabled"; 374 367 }; ··· 727 720 */ 728 721 interrupts = <40 41 42 43>; 729 722 ranges; 730 - syscon = <&cm>; 723 + syscon = <&scm_conf>; 731 724 status = "disabled"; 732 725 733 726 davinci_mdio: mdio@4a101000 {
+1 -1
arch/arm/mach-omap2/control.c
··· 667 667 }; 668 668 669 669 static const struct of_device_id omap_scrm_dt_match_table[] = { 670 - { .compatible = "ti,am3-scrm", .data = &ctrl_data }, 670 + { .compatible = "ti,am3-scm", .data = &ctrl_data }, 671 671 { .compatible = "ti,am4-scrm", .data = &ctrl_data }, 672 672 { .compatible = "ti,omap2-scm", .data = &omap2_ctrl_data }, 673 673 { .compatible = "ti,omap3-scm", .data = &omap2_ctrl_data },