summaryrefslogtreecommitdiff
path: root/include/soc
diff options
context:
space:
mode:
authorAnson Huang <b20788@freescale.com>2014-12-04 12:22:20 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:23:05 +0800
commit2b79fa63b21ab53f394b8acddd308d8090ac6949 (patch)
tree7f65484d3fbb64b1be3499673b1564a2244485cc /include/soc
parentd208a308feb17ae40e982ce2124ae5cfe26bec49 (diff)
MLK-11488-9 arm: imx: add A9-M4 clk shared management
As A9 and M4 share many resources on i.MX6SX, especially for clk and power related resource, so we need to handle the hardware conflict between these two cores, there are two cases that we need to consider currently: clk management: for every clk node, only when both A9 and M4 do NOT need it, then we can disable it from hardware; Here we use MU and hardware SEMA4 to achieve our goal, MU is for communiation between A9 and M4, SEMA4 is to protect the shared memory. For clk management, we use shared memory to maintain the clk status for both A9 and M4 side, and this shared memory is protected by hardware SEMA4, A9 and M4 will maintain their own clk tree info in their SW environment, and get other CORE's clk tree info from shared memory to decide whether to perform a hardware setting change when they plan to. Signed-off-by: Anson Huang <b20788@freescale.com> Also made SOC_IMX6SX select IMX_SEMA4 as part of this commit to fix build failures. Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Diffstat (limited to 'include/soc')
-rw-r--r--include/soc/imx/gpc.h7
-rw-r--r--include/soc/imx/src.h6
2 files changed, 13 insertions, 0 deletions
diff --git a/include/soc/imx/gpc.h b/include/soc/imx/gpc.h
new file mode 100644
index 000000000000..6a976e6aa3fe
--- /dev/null
+++ b/include/soc/imx/gpc.h
@@ -0,0 +1,7 @@
+#ifndef __SOC_IMX_GPC_H
+#define __SOC_IMX_GPC_H
+
+void imx_gpc_hold_m4_in_sleep(void);
+void imx_gpc_release_m4_in_sleep(void);
+
+#endif /* __SOC_IMX_GPC_H */
diff --git a/include/soc/imx/src.h b/include/soc/imx/src.h
new file mode 100644
index 000000000000..c55c34cd2366
--- /dev/null
+++ b/include/soc/imx/src.h
@@ -0,0 +1,6 @@
+#ifndef __SOC_IMX_SRC_H
+#define __SOC_IMX_SRC_H
+
+bool imx_src_is_m4_enabled(void);
+
+#endif /* __SOC_IMX_SRC_H */