ARM: UniPhier: add SG_MEMCONF macros for DDR channel 2
authorMasahiro Yamada <yamada.m@jp.panasonic.com>
Wed, 21 Jan 2015 06:27:48 +0000 (15:27 +0900)
committerMasahiro Yamada <yamada.m@jp.panasonic.com>
Thu, 22 Jan 2015 15:52:16 +0000 (00:52 +0900)
PH1-sLD3, PH1-LD6b have DDR channel 2.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
arch/arm/include/asm/arch-uniphier/sg-regs.h

index 9b468d44fd38940de0f29375e6279ce9574359f0..4ae67c8adb652f4b7afad39d144a861c3b9a661c 100644 (file)
 #define SG_MEMCONF_CH1_NUM_1           (0x1 << 9)
 #define SG_MEMCONF_CH1_NUM_2           (0x0 << 9)
 
+#define SG_MEMCONF_CH2_SZ_64M          ((0x0 << 26) | (0x01 << 16))
+#define SG_MEMCONF_CH2_SZ_128M         ((0x0 << 26) | (0x02 << 16))
+#define SG_MEMCONF_CH2_SZ_256M         ((0x0 << 26) | (0x03 << 16))
+#define SG_MEMCONF_CH2_SZ_512M         ((0x1 << 26) | (0x00 << 16))
+#define SG_MEMCONF_CH2_NUM_1           (0x1 << 24)
+#define SG_MEMCONF_CH2_NUM_2           (0x0 << 24)
+
 #define SG_MEMCONF_SPARSEMEM           (0x1 << 4)
 
 /* Pin Control */
@@ -189,6 +196,43 @@ static inline u32 sg_memconf_val_ch1(unsigned long size, int num)
        }
        return ret;
 }
+
+static inline u32 sg_memconf_val_ch2(unsigned long size, int num)
+{
+       int size_mb = size / num;
+       u32 ret;
+
+       switch (size_mb) {
+       case SZ_64M:
+               ret = SG_MEMCONF_CH2_SZ_64M;
+               break;
+       case SZ_128M:
+               ret = SG_MEMCONF_CH2_SZ_128M;
+               break;
+       case SZ_256M:
+               ret = SG_MEMCONF_CH2_SZ_256M;
+               break;
+       case SZ_512M:
+               ret = SG_MEMCONF_CH2_SZ_512M;
+               break;
+       default:
+               BUG();
+               break;
+       }
+
+       switch (num) {
+       case 1:
+               ret |= SG_MEMCONF_CH2_NUM_1;
+               break;
+       case 2:
+               ret |= SG_MEMCONF_CH2_NUM_2;
+               break;
+       default:
+               BUG();
+               break;
+       }
+       return ret;
+}
 #endif /* __ASSEMBLY__ */
 
 #endif /* ARCH_SG_REGS_H */