summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorAnson Huang <Anson.Huang@nxp.com>2016-05-31 00:34:55 +0800
committerAnson Huang <Anson.Huang@nxp.com>2016-05-31 03:18:44 +0800
commit02a2e8d73bcb8d2b8362b4328976dfcdc502a19c (patch)
tree3545c8fc940172b66c50581ef0377429b9bbb877 /arch/arm
parent059449a9577793db6d513574f619ccbc683b4204 (diff)
MLK-12861-1 ARM: imx: support runtime clock management on i.mx7d when M4 is enabled
For i.MX7D, current runtime clock management code will skip all PLL/PFD/GATE enable/disable when M4 is enabled, this is NOT good for power number in low power idle and audio playback, as M4 only uses one high speed PFD which is from system PLL, it is never disabled runtimely, so we can just enable the hardware operation of PLL/PFD/GATE for A7. Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-imx/clk-gate2.c3
-rw-r--r--arch/arm/mach-imx/clk-pfd.c3
-rw-r--r--arch/arm/mach-imx/clk-pllv3.c2
3 files changed, 5 insertions, 3 deletions
diff --git a/arch/arm/mach-imx/clk-gate2.c b/arch/arm/mach-imx/clk-gate2.c
index 235a273e83bb..71624b14f4f7 100644
--- a/arch/arm/mach-imx/clk-gate2.c
+++ b/arch/arm/mach-imx/clk-gate2.c
@@ -19,6 +19,7 @@
#include <linux/string.h>
#include "clk.h"
#include "common.h"
+#include "hardware.h"
/**
* DOC: basic gatable clock which can gate and ungate it's ouput
@@ -58,7 +59,7 @@ static void clk_gate2_do_shared_clks(struct clk_hw *hw, bool enable)
{
struct clk_gate2 *gate = to_clk_gate2(hw);
- if (imx_src_is_m4_enabled()) {
+ if (imx_src_is_m4_enabled() && cpu_is_imx6sx()) {
#ifdef CONFIG_SOC_IMX6SX
if (!amp_power_mutex || !shared_mem) {
if (enable)
diff --git a/arch/arm/mach-imx/clk-pfd.c b/arch/arm/mach-imx/clk-pfd.c
index fbd56c68aa4c..5eeed8bc47c4 100644
--- a/arch/arm/mach-imx/clk-pfd.c
+++ b/arch/arm/mach-imx/clk-pfd.c
@@ -18,6 +18,7 @@
#include <linux/err.h>
#include "clk.h"
#include "common.h"
+#include "hardware.h"
/**
* struct clk_pfd - IMX PFD clock
@@ -53,7 +54,7 @@ static void clk_pfd_do_shared_clks(struct clk_hw *hw, bool enable)
{
struct clk_pfd *pfd = to_clk_pfd(hw);
- if (imx_src_is_m4_enabled()) {
+ if (imx_src_is_m4_enabled() && cpu_is_imx6sx()) {
#ifdef CONFIG_SOC_IMX6SX
if (!amp_power_mutex || !shared_mem) {
if (enable)
diff --git a/arch/arm/mach-imx/clk-pllv3.c b/arch/arm/mach-imx/clk-pllv3.c
index 63ee223389cb..f058bedfe214 100644
--- a/arch/arm/mach-imx/clk-pllv3.c
+++ b/arch/arm/mach-imx/clk-pllv3.c
@@ -108,7 +108,7 @@ static int clk_pllv3_do_hardware(struct clk_hw *hw, bool enable)
static void clk_pllv3_do_shared_clks(struct clk_hw *hw, bool enable)
{
- if (imx_src_is_m4_enabled()) {
+ if (imx_src_is_m4_enabled() && cpu_is_imx6sx()) {
#ifdef CONFIG_SOC_IMX6SX
if (!amp_power_mutex || !shared_mem) {
if (enable)