sun6i: dram: Do not try to initialize a second dram chan on A31s
authorHans de Goede <hdegoede@redhat.com>
Sat, 15 Nov 2014 22:18:18 +0000 (23:18 +0100)
committerHans de Goede <hdegoede@redhat.com>
Wed, 14 Jan 2015 13:56:36 +0000 (14:56 +0100)
The A31s only has one dram channel, so do not bother with trying to initialize
a second channel.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
arch/arm/cpu/armv7/sunxi/Makefile
arch/arm/cpu/armv7/sunxi/dram_sun6i.c

index 3b6ae47329a7631a948adc9ecf3f7aeff67ccdc3..1337b60ac56e09e71b9a195240e0bfc09e55f539 100644 (file)
@@ -10,6 +10,7 @@
 obj-y  += timer.o
 obj-y  += board.o
 obj-y  += clock.o
+obj-y  += cpu_info.o
 obj-y  += pinmux.o
 obj-$(CONFIG_MACH_SUN6I)       += prcm.o
 obj-$(CONFIG_MACH_SUN8I)       += prcm.o
@@ -21,7 +22,6 @@ obj-$(CONFIG_MACH_SUN7I)      += clock_sun4i.o
 obj-$(CONFIG_MACH_SUN8I)       += clock_sun6i.o
 
 ifndef CONFIG_SPL_BUILD
-obj-y  += cpu_info.o
 ifdef CONFIG_ARMV7_PSCI
 obj-y  += psci.o
 endif
index 8f567c6452f406a75dd188d00691a6247673da92..61bb8d4adf5675ea9a1575608b07bfe4f55bd5c0 100644 (file)
@@ -369,18 +369,26 @@ unsigned long sunxi_dram_init(void)
                .rows = 16,
        };
 
+       /* A31s only has one channel */
+       if (sunxi_get_ss_bonding_id() == SUNXI_SS_BOND_ID_A31S)
+               para.chan = 1;
+
        mctl_sys_init();
 
        mctl_dll_init(0, &para);
-       mctl_dll_init(1, &para);
+       setbits_le32(&mctl_com->ccr, MCTL_CCR_CH0_CLK_EN);
+
+       if (para.chan == 2) {
+               mctl_dll_init(1, &para);
+               setbits_le32(&mctl_com->ccr, MCTL_CCR_CH1_CLK_EN);
+       }
 
-       setbits_le32(&mctl_com->ccr,
-                    MCTL_CCR_MASTER_CLK_EN |
-                    MCTL_CCR_CH0_CLK_EN |
-                    MCTL_CCR_CH1_CLK_EN);
+       setbits_le32(&mctl_com->ccr, MCTL_CCR_MASTER_CLK_EN);
 
        mctl_channel_init(0, &para);
-       mctl_channel_init(1, &para);
+       if (para.chan == 2)
+               mctl_channel_init(1, &para);
+
        mctl_com_init(&para);
        mctl_port_cfg();