[PATCHv5 29/35] ARM: dts: am4372: add minimal l4 bus layout with control module support
Suman Anna
s-anna at ti.com
Tue Mar 24 13:10:55 PDT 2015
Hi Tero,
On 03/20/2015 01:44 PM, Kristo, Tero wrote:
> This patch creates an l4_wkup interconnect for AM43xx, 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 nodea as the clock provider.
>
> Signed-off-by: Tero Kristo <t-kristo at ti.com>
> ---
> Documentation/devicetree/bindings/arm/omap/l4.txt | 1 +
> .../devicetree/bindings/arm/omap/prcm.txt | 2 +-
> arch/arm/boot/dts/am4372.dtsi | 85 +++++++++++---------
> arch/arm/boot/dts/am43xx-clocks.dtsi | 2 +-
> arch/arm/mach-omap2/control.c | 2 +-
> 5 files changed, 53 insertions(+), 39 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/arm/omap/l4.txt b/Documentation/devicetree/bindings/arm/omap/l4.txt
> index d333f0a..941b914 100644
> --- a/Documentation/devicetree/bindings/arm/omap/l4.txt
> +++ b/Documentation/devicetree/bindings/arm/omap/l4.txt
> @@ -7,6 +7,7 @@ Required properties:
> 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
> + Should be "ti,am4-l4-wkup" for AM43xx 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 c8e2027..8af4f32 100644
> --- a/Documentation/devicetree/bindings/arm/omap/prcm.txt
> +++ b/Documentation/devicetree/bindings/arm/omap/prcm.txt
> @@ -12,7 +12,7 @@ Required properties:
> "ti,am3-prcm"
> "ti,am3-scm"
> "ti,am4-prcm"
> - "ti,am4-scrm"
> + "ti,am4-scm"
> "ti,omap2-prcm"
> "ti,omap2-scm"
> "ti,omap3-prm"
> diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi
> index 1943fc3..9ed58115 100644
> --- a/arch/arm/boot/dts/am4372.dtsi
> +++ b/arch/arm/boot/dts/am4372.dtsi
> @@ -57,22 +57,6 @@
> cache-level = <2>;
> };
>
> - am43xx_control_module: control_module at 4a002000 {
> - compatible = "syscon";
> - reg = <0x44e10000 0x7f4>;
> - };
> -
> - am43xx_pinmux: pinmux at 44e10800 {
> - compatible = "ti,am437-padconf", "pinctrl-single";
> - reg = <0x44e10800 0x31c>;
> - #address-cells = <1>;
> - #size-cells = <0>;
> - #interrupt-cells = <1>;
> - interrupt-controller;
> - pinctrl-single,register-width = <32>;
> - pinctrl-single,function-mask = <0xffffffff>;
> - };
> -
> ocp {
> compatible = "ti,am4372-l3-noc", "simple-bus";
> #address-cells = <1>;
> @@ -84,29 +68,58 @@
> interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
> <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
>
> - prcm: prcm at 44df0000 {
> - compatible = "ti,am4-prcm";
> - reg = <0x44df0000 0x11000>;
> -
> - prcm_clocks: clocks {
> - #address-cells = <1>;
> - #size-cells = <0>;
> - };
> + l4_wkup: l4_wkup at 44c00000 {
> + compatible = "ti,am4-l4-wkup", "simple-bus";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges = <0 0x44c00000 0x287000>;
>
> - prcm_clockdomains: clockdomains {
> - };
> - };
> + prcm: prcm at 1f0000 {
> + compatible = "ti,am4-prcm";
> + reg = <0x1f0000 0x11000>;
>
> - scrm: scrm at 44e10000 {
> - compatible = "ti,am4-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,am4-scm", "simple-bus";
> + reg = <0x210000 0x1000>;
Any reason for choosing a different size here compared to AM335x. Also,
the scrm node above has 0x2000 as size. I found that I needed to
increase the size to 0x2000 here to accomodate the wkup_m3_ipc node on
top of your series. The node uses IPC registers which are part of the
Control module, so on AM335x, I added it as a child node of scm, but
here to do the same I have to correct the size. Also, there are some
DISPPLL related registers at 0x3000 offset within the Control module,
not sure where they would fit.
regards
Suman
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges = <0 0x210000 0x1000>;
> +
> + am43xx_pinmux: pinmux at 800 {
> + compatible = "ti,am437-padconf",
> + "pinctrl-single";
> + reg = <0x800 0x31c>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + #interrupt-cells = <1>;
> + interrupt-controller;
> + pinctrl-single,register-width = <32>;
> + pinctrl-single,function-mask = <0xffffffff>;
> + };
> +
> + scm_conf: scm_conf at 0 {
> + compatible = "syscon";
> + reg = <0x0 0x7fc>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + scm_clocks: clocks {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + };
> + };
> +
> + scm_clockdomains: clockdomains {
> + };
> };
> };
>
[snip]
More information about the linux-arm-kernel
mailing list