sunxi: Add CONFIG_OLD_SUNXI_KERNEL_COMPAT Kconfig option
authorHans de Goede <hdegoede@redhat.com>
Wed, 22 Oct 2014 12:56:36 +0000 (14:56 +0200)
committerHans de Goede <hdegoede@redhat.com>
Fri, 24 Oct 2014 07:37:26 +0000 (09:37 +0200)
Add a Kconfig option which users can select when they want to boot older
kernels, e.g. the linux-sunxi 3.4 kernels. For now this just forces the pll5
"p" value to 1 (divide by 2) as that is what those kernels are hardcoded too,
in the future this may enable further workarounds.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Tom Rini <trini@ti.com>
--
Changes in v2:
-s/CONFIG_OLD_KERNEL_COMPAT/CONFIG_OLD_SUNXI_KERNEL_COMPAT.
-Move the code block setting P(1) for old kernels to where P gets cleared

arch/arm/cpu/armv7/sunxi/dram.c
board/sunxi/Kconfig

index 0cbcf5767c369f631834fbb4b2267869ecfd6672..3cf3cbf19adb25fce553a4f88a8d35ca6909999a 100644 (file)
@@ -262,6 +262,10 @@ static void mctl_setup_dram_clock(u32 clk, u32 mbus_clk)
        reg_val &= ~CCM_PLL5_CTRL_K_MASK;               /* set K to 0 (x1) */
        reg_val &= ~CCM_PLL5_CTRL_N_MASK;               /* set N to 0 (x0) */
        reg_val &= ~CCM_PLL5_CTRL_P_MASK;               /* set P to 0 (x1) */
+#ifdef CONFIG_OLD_SUNXI_KERNEL_COMPAT
+       /* Old kernels are hardcoded to P=1 (divide by 2) */
+       reg_val |= CCM_PLL5_CTRL_P(1);
+#endif
        if (clk >= 540 && clk < 552) {
                /* dram = 540MHz */
                reg_val |= CCM_PLL5_CTRL_M(CCM_PLL5_CTRL_M_X(2));
index 449c0460f996d639901fe859caeb1683764f1a4e..31a15037d07cf950059f9a23d80e7b8fe6259c6f 100644 (file)
@@ -20,6 +20,13 @@ config SYS_SOC
 config FDTFILE
        string "Default fdtfile env setting for this board"
 
+config OLD_SUNXI_KERNEL_COMPAT
+       boolean "Enable workarounds for booting old kernels"
+       default n
+       ---help---
+       Set this to enable various workarounds for old kernels, this results in
+       sub-optimal settings for newer kernels, only enable if needed.
+
 config MMC0_CD_PIN
        string "Card detect pin for mmc0"
        default ""