2014-01-30 18:11:09

by Ivan Khoronzhuk

[permalink] [raw]
Subject: [PATCH v2] ARM: keystone: dts: drop "msmcsram" clock node

At late init all unused clocks are disabled. So clocks that were not
get before will be gated. In Keysone 2 SoC we have at least one
necessary clock that is not used by any driver - "msmcsram". This
clock is necessary, because it supplies the Multicore Shared Memory
Controller (MSMC). MSMC is the coherency interconnect and all the
coherent masters are connected to it including devices which are not
under Linux OS control. MSMC clock should not be touched even in low
power states.

So drop the clock node, otherwise 'clk_ignore_unused' parameter will
disable the clock leading to system stall.

Signed-off-by: Ivan Khoronzhuk <[email protected]>
---
Based on
git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
keystone/master

v1..v2:
- dropped "msmcsram" clock node, instead disabling
- updated comment message

arch/arm/boot/dts/keystone-clocks.dtsi | 10 ----------
1 file changed, 10 deletions(-)

diff --git a/arch/arm/boot/dts/keystone-clocks.dtsi b/arch/arm/boot/dts/keystone-clocks.dtsi
index 2363593..98ad488 100644
--- a/arch/arm/boot/dts/keystone-clocks.dtsi
+++ b/arch/arm/boot/dts/keystone-clocks.dtsi
@@ -327,16 +327,6 @@ clocks {
domain-id = <6>;
};

- clkmsmcsram: clkmsmcsram {
- #clock-cells = <0>;
- compatible = "ti,keystone,psc-clock";
- clocks = <&chipclk1>;
- clock-output-names = "msmcsram";
- reg = <0x02350038 0xb00>, <0x0235001c 0x400>;
- reg-names = "control", "domain";
- domain-id = <7>;
- };
-
clkgem0: clkgem0 {
#clock-cells = <0>;
compatible = "ti,keystone,psc-clock";
--
1.8.3.2


2014-01-31 14:45:54

by Santosh Shilimkar

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: keystone: dts: drop "msmcsram" clock node

On Thursday 30 January 2014 01:10 PM, Ivan Khoronzhuk wrote:
> At late init all unused clocks are disabled. So clocks that were not
> get before will be gated. In Keysone 2 SoC we have at least one
> necessary clock that is not used by any driver - "msmcsram". This
> clock is necessary, because it supplies the Multicore Shared Memory
> Controller (MSMC). MSMC is the coherency interconnect and all the
> coherent masters are connected to it including devices which are not
> under Linux OS control. MSMC clock should not be touched even in low
> power states.
>
> So drop the clock node, otherwise 'clk_ignore_unused' parameter will
> disable the clock leading to system stall.
>
> Signed-off-by: Ivan Khoronzhuk <[email protected]>
> ---
> Based on
> git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
> keystone/master
>
> v1..v2:
> - dropped "msmcsram" clock node, instead disabling
> - updated comment message
>
Thanks for the update. Would be good to get blessing from DT folks.
I want to send this one during the rc's since its a bug fix.

> arch/arm/boot/dts/keystone-clocks.dtsi | 10 ----------
> 1 file changed, 10 deletions(-)
>
> diff --git a/arch/arm/boot/dts/keystone-clocks.dtsi b/arch/arm/boot/dts/keystone-clocks.dtsi
> index 2363593..98ad488 100644
> --- a/arch/arm/boot/dts/keystone-clocks.dtsi
> +++ b/arch/arm/boot/dts/keystone-clocks.dtsi
> @@ -327,16 +327,6 @@ clocks {
> domain-id = <6>;
> };
>
> - clkmsmcsram: clkmsmcsram {
> - #clock-cells = <0>;
> - compatible = "ti,keystone,psc-clock";
> - clocks = <&chipclk1>;
> - clock-output-names = "msmcsram";
> - reg = <0x02350038 0xb00>, <0x0235001c 0x400>;
> - reg-names = "control", "domain";
> - domain-id = <7>;
> - };
> -
> clkgem0: clkgem0 {
> #clock-cells = <0>;
> compatible = "ti,keystone,psc-clock";
>