2013-10-29 02:19:09 +00:00
|
|
|
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
|
2013-10-30 23:31:26 +00:00
|
|
|
@@ -300,7 +300,7 @@ static void __init imx6q_clocks_init(str
|
2013-10-29 02:19:09 +00:00
|
|
|
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;
|
2013-10-30 23:31:26 +00:00
|
|
|
@@ -574,7 +574,8 @@ static void __init imx6q_clocks_init(str
|
2013-10-29 02:19:09 +00:00
|
|
|
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
|
2013-10-30 23:31:26 +00:00
|
|
|
@@ -77,7 +77,6 @@ extern void mxc_restart(enum reboot_mode
|
2013-10-29 02:19:09 +00:00
|
|
|
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
|
2013-10-30 23:31:26 +00:00
|
|
|
@@ -40,16 +40,10 @@
|
2013-10-29 02:19:09 +00:00
|
|
|
#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:
|
2013-10-30 23:31:26 +00:00
|
|
|
@@ -66,6 +60,7 @@ static void __init imx6q_init_revision(v
|
2013-10-29 02:19:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
mxc_set_cpu_type(rev >> 16 & 0xff);
|
|
|
|
+ imx_set_soc_revision(chip_revision);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void imx6q_restart(enum reboot_mode mode, const char *cmd)
|
2013-10-30 23:31:26 +00:00
|
|
|
@@ -269,7 +264,7 @@ static void __init imx6q_init_late(void)
|
2013-10-29 02:19:09 +00:00
|
|
|
* 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)) {
|
2013-10-30 23:31:26 +00:00
|
|
|
@@ -298,7 +293,7 @@ static void __init imx6q_timer_init(void
|
2013-10-29 02:19:09 +00:00
|
|
|
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 = {
|