Subject: [PATCHv5 27/35] ARM: dts: am33xx: add minimal l4 bus layout with control module support

From: [email-masked] (Suman Anna)
Date: Fri, 20 Mar 2015 16:43:44 -0500

Hi Tero,

On 03/20/2015 01:44 PM, Kristo, Tero wrote:
> 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 <[email-masked]>
> ---
>  Documentation/devicetree/bindings/arm/omap/l4.txt  |    1 +
>  .../devicetree/bindings/arm/omap/prcm.txt          |    2 +-
>  arch/arm/boot/dts/am33xx-clocks.dtsi               |    2 +-
>  arch/arm/boot/dts/am33xx.dtsi                      |   87 +++++++++++---------
>  arch/arm/mach-omap2/control.c                      |    2 +-
>  5 files changed, 51 insertions(+), 43 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/arm/omap/l4.txt b/Documentation/devicetree/bindings/arm/omap/l4.txt
> index 6402022..d333f0a 100644
> --- a/Documentation/devicetree/bindings/arm/omap/l4.txt
> +++ b/Documentation/devicetree/bindings/arm/omap/l4.txt
> @@ -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:
> diff --git a/Documentation/devicetree/bindings/arm/omap/prcm.txt b/Documentation/devicetree/bindings/arm/omap/prcm.txt
> index ef5a74b..c8e2027 100644
> --- a/Documentation/devicetree/bindings/arm/omap/prcm.txt
> +++ b/Documentation/devicetree/bindings/arm/omap/prcm.txt
> @@ -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"
> diff --git a/arch/arm/boot/dts/am33xx-clocks.dtsi b/arch/arm/boot/dts/am33xx-clocks.dtsi
> index 712edce..236c78a 100644
> --- a/arch/arm/boot/dts/am33xx-clocks.dtsi
> +++ b/arch/arm/boot/dts/am33xx-clocks.dtsi
> @@ -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";
> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
> index acd3705..8d26261 100644
> --- a/arch/arm/boot/dts/am33xx.dtsi
> +++ b/arch/arm/boot/dts/am33xx.dtsi
> @@ -83,20 +83,6 @@
>  		};
>  	};
>  
> -	am33xx_control_module: control_module at 4a002000 {
> -		compatible = "syscon";
> -		reg = <0x44e10000 0x7fc>;
> -	};
> -
> -	am33xx_pinmux: pinmux at 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
> @@ -111,37 +97,58 @@
>  		ranges;
>  		ti,hwmods = "l3_main";
>  
> -		prcm: prcm at 44e00000 {
> -			compatible = "ti,am3-prcm";
> -			reg = <0x44e00000 0x4000>;
> -
> -			prcm_clocks: clocks {
> -				#address-cells = <1>;
> -				#size-cells = <0>;
> -			};
> +		l4_wkup: l4_wkup at 44c00000 {
> +			compatible = "ti,am3-l4-wkup", "simple-bus";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +			ranges = <0 0x44c00000 0x280000>;
>  
> -			prcm_clockdomains: clockdomains {
> -			};
> -		};
> +			prcm: prcm at 200000 {
> +				compatible = "ti,am3-prcm";
> +				reg = <0x200000 0x4000>;
>  
> -		scrm: scrm at 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 at 210000 {
> +				compatible = "ti,am3-scm", "simple-bus";
> +				reg = <0x210000 0x2000>;
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0 0x210000 0x2000>;
> +
> +				am33xx_pinmux: pinmux at 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 at 0 {
> +					compatible = "syscon";
> +					reg = <0x0 0x7fc>;

Hmm, you are consolidating the am33xx_control_module and cm nodes, so is
this supposed to be 0x800 or 0x7fc? I would think it should be 0x800.
Also, are we ordering the child nodes of scm by node names or addresses.
I have to add the wkup_m3 node, and prefer ordering by addresses.

> +					#address-cells = <1>;
> +					#size-cells = <1>;
> +
> +					scm_clocks: clocks {
> +						#address-cells = <1>;
> +						#size-cells = <0>;
> +					};
> +				};
> +
> +				scm_clockdomains: clockdomains {
> +				};
>  			};
>  		};
>  
> -		cm: syscon at 44e10000 {
> -			compatible = "ti,am33xx-controlmodule", "syscon";
> -			reg = <0x44e10000 0x800>;
> -		};
> -

regards
Suman