sunxi: use CONFIG_SYS_CLK_FREQ to set cpu clock
authorIain Paton <ipaton0@gmail.com>
Sat, 28 Mar 2015 10:26:38 +0000 (10:26 +0000)
committerHans de Goede <hdegoede@redhat.com>
Sun, 29 Mar 2015 11:36:03 +0000 (13:36 +0200)
make the CPU clock selectable via Kconfig

this removes the sunxi specific CONFIG_CLK_FULL_SPEED defined in each
soc header and replaces it's use in board/sunxi/board.c with
CONFIG_SYS_CLK_FREQ from Kconfig which allows us to configure board
specific frequency on boot

Signed-off-by: Iain Paton <ipaton0@gmail.com>
[hdegoede@redhat.com s/CONFIG_SYS_CLK_FREQ/CONFIG_TIMER_CLK_FREQ/ for the
 arch-timer clk speed on sun7i to fix mis-compile on sun7i]
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Kconfig
arch/arm/cpu/armv7/sunxi/psci.S
board/sunxi/Kconfig
board/sunxi/board.c
include/configs/sun4i.h
include/configs/sun5i.h
include/configs/sun6i.h
include/configs/sun7i.h
include/configs/sun8i.h

diff --git a/Kconfig b/Kconfig
index b5968d7..41d4784 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -184,7 +184,7 @@ config SYS_TEXT_BASE
          TODO: Move CONFIG_SYS_TEXT_BASE for all the architecture
 
 config SYS_CLK_FREQ
-       depends on ARC
+       depends on ARC || ARCH_SUNXI
        int "CPU clock frequency"
        help
          TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
index 5be497b..e0a524e 100644 (file)
@@ -37,7 +37,7 @@
 
        .arch_extension sec
 
-#define        ONE_MS                  (CONFIG_SYS_CLK_FREQ / 1000)
+#define        ONE_MS                  (CONFIG_TIMER_CLK_FREQ / 1000)
 #define        TEN_MS                  (10 * ONE_MS)
 #define        GICD_BASE               0x1c81000
 #define        GICC_BASE               0x1c82000
index 9d0eb91..2fcab60 100644 (file)
@@ -132,6 +132,10 @@ endchoice
 
 endif
 
+config SYS_CLK_FREQ
+       default 912000000 if MACH_SUN7I
+       default 1008000000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
+
 config SYS_CONFIG_NAME
        default "sun4i" if MACH_SUN4I
        default "sun5i" if MACH_SUN5I
index e1891d1..808bf82 100644 (file)
@@ -215,7 +215,7 @@ void sunxi_board_init(void)
         * assured it's being powered with suitable core voltage
         */
        if (!power_failed)
-               clock_set_pll1(CONFIG_CLK_FULL_SPEED);
+               clock_set_pll1(CONFIG_SYS_CLK_FREQ);
        else
                printf("Failed to set core voltage! Can't set CPU frequency\n");
 }
index 1537e53..7cd5c69 100644 (file)
@@ -11,7 +11,6 @@
 /*
  * A10 specific configuration
  */
-#define CONFIG_CLK_FULL_SPEED          1008000000
 
 #ifdef CONFIG_USB_EHCI
 #define CONFIG_USB_EHCI_SUNXI
index e755531..e0470d4 100644 (file)
@@ -11,7 +11,6 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_CLK_FULL_SPEED          1008000000
 
 #ifdef CONFIG_USB_EHCI
 #define CONFIG_USB_EHCI_SUNXI
index f5e11dd..617c1cd 100644 (file)
@@ -14,7 +14,6 @@
 /*
  * A31 specific configuration
  */
-#define CONFIG_CLK_FULL_SPEED          1008000000
 
 #ifdef CONFIG_USB_EHCI
 #define CONFIG_USB_EHCI_SUNXI
index f817f73..7fa7cec 100644 (file)
@@ -12,7 +12,6 @@
 /*
  * A20 specific configuration
  */
-#define CONFIG_CLK_FULL_SPEED          912000000
 
 #ifdef CONFIG_USB_EHCI
 #define CONFIG_USB_EHCI_SUNXI
@@ -21,8 +20,7 @@
 
 #define CONFIG_ARMV7_PSCI              1
 #define CONFIG_ARMV7_SECURE_BASE       SUNXI_SRAM_B_BASE
-#define CONFIG_SYS_CLK_FREQ            24000000
-#define CONFIG_TIMER_CLK_FREQ          CONFIG_SYS_CLK_FREQ
+#define CONFIG_TIMER_CLK_FREQ          24000000
 
 /*
  * Include common sunxi configuration where most the settings are
index 3bdedb3..79796d7 100644 (file)
@@ -12,7 +12,6 @@
 /*
  * A23 specific configuration
  */
-#define CONFIG_CLK_FULL_SPEED  1008000000
 
 #ifdef CONFIG_USB_EHCI
 #define CONFIG_USB_EHCI_SUNXI