aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/imx6/patches-3.12/0004-ARM-imx6q-use-common-soc-revision-helpers.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/imx6/patches-3.12/0004-ARM-imx6q-use-common-soc-revision-helpers.patch')
-rw-r--r--target/linux/imx6/patches-3.12/0004-ARM-imx6q-use-common-soc-revision-helpers.patch93
1 files changed, 93 insertions, 0 deletions
diff --git a/target/linux/imx6/patches-3.12/0004-ARM-imx6q-use-common-soc-revision-helpers.patch b/target/linux/imx6/patches-3.12/0004-ARM-imx6q-use-common-soc-revision-helpers.patch
new file mode 100644
index 0000000000..1e12531546
--- /dev/null
+++ b/target/linux/imx6/patches-3.12/0004-ARM-imx6q-use-common-soc-revision-helpers.patch
@@ -0,0 +1,93 @@
+From 3f75978b3742157853618c5c6dd4a5f49aa950b1 Mon Sep 17 00:00:00 2001
+From: Shawn Guo <shawn.guo@linaro.org>
+Date: Tue, 13 Aug 2013 14:10:29 +0800
+Subject: [PATCH] ARM: imx6q: use common soc revision helpers
+
+It calls imx_set_soc_revision() to set up soc revision in
+imx6q_init_revision(), and replaces all the occurrences of
+imx6q_revision() with common helper imx_get_soc_revision().
+
+Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
+---
+ arch/arm/mach-imx/clk-imx6q.c | 5 +++--
+ arch/arm/mach-imx/common.h | 1 -
+ arch/arm/mach-imx/mach-imx6q.c | 13 ++++---------
+ 3 files changed, 7 insertions(+), 12 deletions(-)
+
+--- a/arch/arm/mach-imx/clk-imx6q.c
++++ b/arch/arm/mach-imx/clk-imx6q.c
+@@ -300,7 +300,7 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node)
+ WARN_ON(!base);
+
+ /* Audio/video PLL post dividers do not work on i.MX6q revision 1.0 */
+- if (cpu_is_imx6q() && imx6q_revision() == IMX_CHIP_REVISION_1_0) {
++ if (cpu_is_imx6q() && imx_get_soc_revision() == IMX_CHIP_REVISION_1_0) {
+ post_div_table[1].div = 1;
+ post_div_table[2].div = 1;
+ video_div_table[1].div = 1;
+@@ -574,7 +574,8 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node)
+ clk_register_clkdev(clk[pll4_post_div], "pll4_post_div", NULL);
+ clk_register_clkdev(clk[pll4_audio], "pll4_audio", NULL);
+
+- if ((imx6q_revision() != IMX_CHIP_REVISION_1_0) || cpu_is_imx6dl()) {
++ if ((imx_get_soc_revision() != IMX_CHIP_REVISION_1_0) ||
++ cpu_is_imx6dl()) {
+ clk_set_parent(clk[ldb_di0_sel], clk[pll5_video_div]);
+ clk_set_parent(clk[ldb_di1_sel], clk[pll5_video_div]);
+ }
+--- a/arch/arm/mach-imx/common.h
++++ b/arch/arm/mach-imx/common.h
+@@ -73,7 +73,6 @@ extern void mxc_restart(enum reboot_mode, const char *);
+ extern void mxc_arch_reset_init(void __iomem *);
+ extern void mxc_arch_reset_init_dt(void);
+ extern int mx53_revision(void);
+-extern int imx6q_revision(void);
+ extern int mx53_display_revision(void);
+ extern void imx_set_aips(void __iomem *);
+ extern int mxc_device_init(void);
+--- a/arch/arm/mach-imx/mach-imx6q.c
++++ b/arch/arm/mach-imx/mach-imx6q.c
+@@ -38,16 +38,10 @@
+ #include "cpuidle.h"
+ #include "hardware.h"
+
+-static u32 chip_revision;
+-
+-int imx6q_revision(void)
+-{
+- return chip_revision;
+-}
+-
+ static void __init imx6q_init_revision(void)
+ {
+ u32 rev = imx_anatop_get_digprog();
++ u32 chip_revision;
+
+ switch (rev & 0xff) {
+ case 0:
+@@ -64,6 +58,7 @@ static void __init imx6q_init_revision(void)
+ }
+
+ mxc_set_cpu_type(rev >> 16 & 0xff);
++ imx_set_soc_revision(chip_revision);
+ }
+
+ static void imx6q_restart(enum reboot_mode mode, const char *cmd)
+@@ -269,7 +264,7 @@
+ * WAIT mode is broken on TO 1.0 and 1.1, so there is no point
+ * to run cpuidle on them.
+ */
+- if (imx6q_revision() > IMX_CHIP_REVISION_1_1)
++ if (imx_get_soc_revision() > IMX_CHIP_REVISION_1_1)
+ imx6q_cpuidle_init();
+
+ if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ)) {
+@@ -298,7 +293,7 @@
+ of_clk_init(NULL);
+ clocksource_of_init();
+ imx_print_silicon_rev(cpu_is_imx6dl() ? "i.MX6DL" : "i.MX6Q",
+- imx6q_revision());
++ imx_get_soc_revision());
+ }
+
+ static const char *imx6q_dt_compat[] __initdata = {