blob: bc23f47edccdd26e59ea03311075df58c807569c [file] [log] [blame]
#ifndef __DDR_H__
#define __DDR_H__
#include "comcerto-2000.h"
/* DDR Controller Registers */
#define DDRC_CTL_00_REG (COMCERTO_APB_DDR_BASE + 0x00)
#define DDRC_CTL_01_REG (COMCERTO_APB_DDR_BASE + 0x04)
#define DDRC_CTL_02_REG (COMCERTO_APB_DDR_BASE + 0x08)
#define DDRC_CTL_03_REG (COMCERTO_APB_DDR_BASE + 0x0c)
#define DDRC_CTL_04_REG (COMCERTO_APB_DDR_BASE + 0x10)
#define DDRC_CTL_05_REG (COMCERTO_APB_DDR_BASE + 0x14)
#define DDRC_CTL_06_REG (COMCERTO_APB_DDR_BASE + 0x18)
#define DDRC_CTL_07_REG (COMCERTO_APB_DDR_BASE + 0x1c)
#define DDRC_CTL_08_REG (COMCERTO_APB_DDR_BASE + 0x20)
#define DDRC_CTL_09_REG (COMCERTO_APB_DDR_BASE + 0x24)
#define DDRC_CTL_10_REG (COMCERTO_APB_DDR_BASE + 0x28)
#define DDRC_CTL_11_REG (COMCERTO_APB_DDR_BASE + 0x2c)
#define DDRC_CTL_12_REG (COMCERTO_APB_DDR_BASE + 0x30)
#define DDRC_CTL_13_REG (COMCERTO_APB_DDR_BASE + 0x34)
#define DDRC_CTL_14_REG (COMCERTO_APB_DDR_BASE + 0x38)
#define DDRC_CTL_15_REG (COMCERTO_APB_DDR_BASE + 0x3c)
#define DDRC_CTL_16_REG (COMCERTO_APB_DDR_BASE + 0x40)
#define DDRC_CTL_17_REG (COMCERTO_APB_DDR_BASE + 0x44)
#define DDRC_CTL_18_REG (COMCERTO_APB_DDR_BASE + 0x48)
#define DDRC_CTL_19_REG (COMCERTO_APB_DDR_BASE + 0x4c)
#define DDRC_CTL_20_REG (COMCERTO_APB_DDR_BASE + 0x50)
#define DDRC_CTL_21_REG (COMCERTO_APB_DDR_BASE + 0x54)
#define DDRC_CTL_22_REG (COMCERTO_APB_DDR_BASE + 0x58)
#define DDRC_CTL_23_REG (COMCERTO_APB_DDR_BASE + 0x5c)
#define DDRC_CTL_24_REG (COMCERTO_APB_DDR_BASE + 0x60)
#define DDRC_CTL_25_REG (COMCERTO_APB_DDR_BASE + 0x64)
#define DDRC_CTL_26_REG (COMCERTO_APB_DDR_BASE + 0x68)
#define DDRC_CTL_27_REG (COMCERTO_APB_DDR_BASE + 0x6c)
#define DDRC_CTL_28_REG (COMCERTO_APB_DDR_BASE + 0x70)
#define DDRC_CTL_29_REG (COMCERTO_APB_DDR_BASE + 0x74)
#define DDRC_CTL_30_REG (COMCERTO_APB_DDR_BASE + 0x78)
#define DDRC_CTL_31_REG (COMCERTO_APB_DDR_BASE + 0x7c)
#define DDRC_CTL_32_REG (COMCERTO_APB_DDR_BASE + 0x80)
#define DDRC_CTL_33_REG (COMCERTO_APB_DDR_BASE + 0x84)
#define DDRC_CTL_34_REG (COMCERTO_APB_DDR_BASE + 0x88)
#define DDRC_CTL_35_REG (COMCERTO_APB_DDR_BASE + 0x8c)
#define DDRC_CTL_36_REG (COMCERTO_APB_DDR_BASE + 0x90)
#define DDRC_CTL_37_REG (COMCERTO_APB_DDR_BASE + 0x94)
#define DDRC_CTL_38_REG (COMCERTO_APB_DDR_BASE + 0x98)
#define DDRC_CTL_39_REG (COMCERTO_APB_DDR_BASE + 0x9c)
#define DDRC_CTL_40_REG (COMCERTO_APB_DDR_BASE + 0xa0)
#define DDRC_CTL_41_REG (COMCERTO_APB_DDR_BASE + 0xa4)
#define DDRC_CTL_42_REG (COMCERTO_APB_DDR_BASE + 0xa8)
#define DDRC_CTL_43_REG (COMCERTO_APB_DDR_BASE + 0xac)
#define DDRC_CTL_44_REG (COMCERTO_APB_DDR_BASE + 0xb0)
#define DDRC_CTL_45_REG (COMCERTO_APB_DDR_BASE + 0xb4)
#define DDRC_CTL_46_REG (COMCERTO_APB_DDR_BASE + 0xb8)
#define DDRC_CTL_47_REG (COMCERTO_APB_DDR_BASE + 0xbc)
#define DDRC_CTL_48_REG (COMCERTO_APB_DDR_BASE + 0xc0)
#define DDRC_CTL_49_REG (COMCERTO_APB_DDR_BASE + 0xc4)
#define DDRC_CTL_50_REG (COMCERTO_APB_DDR_BASE + 0xc8)
#define DDRC_CTL_51_REG (COMCERTO_APB_DDR_BASE + 0xcc)
#define DDRC_CTL_52_REG (COMCERTO_APB_DDR_BASE + 0xd0)
#define DDRC_CTL_53_REG (COMCERTO_APB_DDR_BASE + 0xd4)
#define DDRC_CTL_54_REG (COMCERTO_APB_DDR_BASE + 0xd8)
#define DDRC_CTL_55_REG (COMCERTO_APB_DDR_BASE + 0xdc)
#define DDRC_CTL_56_REG (COMCERTO_APB_DDR_BASE + 0xe0)
#define DDRC_CTL_57_REG (COMCERTO_APB_DDR_BASE + 0xe4)
#define DDRC_CTL_58_REG (COMCERTO_APB_DDR_BASE + 0xe8)
#define DDRC_CTL_59_REG (COMCERTO_APB_DDR_BASE + 0xec)
#define DDRC_CTL_60_REG (COMCERTO_APB_DDR_BASE + 0xf0)
#define DDRC_CTL_61_REG (COMCERTO_APB_DDR_BASE + 0xf4)
#define DDRC_CTL_62_REG (COMCERTO_APB_DDR_BASE + 0xf8)
#define DDRC_CTL_63_REG (COMCERTO_APB_DDR_BASE + 0xfc)
#define DDRC_CTL_64_REG (COMCERTO_APB_DDR_BASE + 0x100)
#define DDRC_CTL_65_REG (COMCERTO_APB_DDR_BASE + 0x104)
#define DDRC_CTL_66_REG (COMCERTO_APB_DDR_BASE + 0x108)
#define DDRC_CTL_67_REG (COMCERTO_APB_DDR_BASE + 0x10c)
#define DDRC_CTL_68_REG (COMCERTO_APB_DDR_BASE + 0x110)
#define DDRC_CTL_69_REG (COMCERTO_APB_DDR_BASE + 0x114)
#define DDRC_CTL_70_REG (COMCERTO_APB_DDR_BASE + 0x118)
#define DDRC_CTL_71_REG (COMCERTO_APB_DDR_BASE + 0x11c)
#define DDRC_CTL_72_REG (COMCERTO_APB_DDR_BASE + 0x120)
#define DDRC_CTL_73_REG (COMCERTO_APB_DDR_BASE + 0x124)
#define DDRC_CTL_74_REG (COMCERTO_APB_DDR_BASE + 0x128)
#define DDRC_CTL_75_REG (COMCERTO_APB_DDR_BASE + 0x12c)
#define DDRC_CTL_76_REG (COMCERTO_APB_DDR_BASE + 0x130)
#define DDRC_CTL_77_REG (COMCERTO_APB_DDR_BASE + 0x134)
#define DDRC_CTL_78_REG (COMCERTO_APB_DDR_BASE + 0x138)
#define DDRC_CTL_79_REG (COMCERTO_APB_DDR_BASE + 0x13c)
#define DDRC_CTL_80_REG (COMCERTO_APB_DDR_BASE + 0x140)
#define DDRC_CTL_81_REG (COMCERTO_APB_DDR_BASE + 0x144)
#define DDRC_CTL_82_REG (COMCERTO_APB_DDR_BASE + 0x148)
#define DDRC_CTL_83_REG (COMCERTO_APB_DDR_BASE + 0x14c)
#define DDRC_CTL_84_REG (COMCERTO_APB_DDR_BASE + 0x150)
#define DDRC_CTL_85_REG (COMCERTO_APB_DDR_BASE + 0x154)
#define DDRC_CTL_86_REG (COMCERTO_APB_DDR_BASE + 0x158)
#define DDRC_CTL_87_REG (COMCERTO_APB_DDR_BASE + 0x15c)
#define DDRC_CTL_88_REG (COMCERTO_APB_DDR_BASE + 0x160)
#define DDRC_CTL_89_REG (COMCERTO_APB_DDR_BASE + 0x164)
#define DDRC_CTL_90_REG (COMCERTO_APB_DDR_BASE + 0x168)
#define DDRC_CTL_91_REG (COMCERTO_APB_DDR_BASE + 0x16c)
#define DDRC_CTL_92_REG (COMCERTO_APB_DDR_BASE + 0x170)
#define DDRC_CTL_93_REG (COMCERTO_APB_DDR_BASE + 0x174)
#define DDRC_CTL_94_REG (COMCERTO_APB_DDR_BASE + 0x178)
#define DDRC_CTL_95_REG (COMCERTO_APB_DDR_BASE + 0x17c)
#define DDRC_CTL_96_REG (COMCERTO_APB_DDR_BASE + 0x180)
#define DDRC_CTL_97_REG (COMCERTO_APB_DDR_BASE + 0x184)
#define DDRC_CTL_98_REG (COMCERTO_APB_DDR_BASE + 0x188)
#define DDRC_CTL_99_REG (COMCERTO_APB_DDR_BASE + 0x18c)
#define DDRC_CTL_100_REG (COMCERTO_APB_DDR_BASE + 0x190)
#define DDRC_CTL_101_REG (COMCERTO_APB_DDR_BASE + 0x194)
#define DDRC_CTL_102_REG (COMCERTO_APB_DDR_BASE + 0x198)
#define DDRC_CTL_103_REG (COMCERTO_APB_DDR_BASE + 0x19c)
#define DDRC_CTL_104_REG (COMCERTO_APB_DDR_BASE + 0x1a0)
#define DDRC_CTL_105_REG (COMCERTO_APB_DDR_BASE + 0x1a4)
#define DDRC_CTL_106_REG (COMCERTO_APB_DDR_BASE + 0x1a8)
#define DDRC_CTL_107_REG (COMCERTO_APB_DDR_BASE + 0x1ac)
#define DDRC_CTL_108_REG (COMCERTO_APB_DDR_BASE + 0x1b0)
#define DDRC_CTL_109_REG (COMCERTO_APB_DDR_BASE + 0x1b4)
#define DDRC_CTL_110_REG (COMCERTO_APB_DDR_BASE + 0x1b8)
#define DDRC_CTL_111_REG (COMCERTO_APB_DDR_BASE + 0x1bc)
#define DDRC_CTL_112_REG (COMCERTO_APB_DDR_BASE + 0x1c0)
#define DDRC_CTL_113_REG (COMCERTO_APB_DDR_BASE + 0x1c4)
#define DDRC_CTL_114_REG (COMCERTO_APB_DDR_BASE + 0x1c8)
#define DDRC_CTL_115_REG (COMCERTO_APB_DDR_BASE + 0x1cc)
#define DDRC_CTL_116_REG (COMCERTO_APB_DDR_BASE + 0x1d0)
#define DDRC_CTL_117_REG (COMCERTO_APB_DDR_BASE + 0x1d4)
#define DDRC_CTL_118_REG (COMCERTO_APB_DDR_BASE + 0x1d8)
#define DDRC_CTL_119_REG (COMCERTO_APB_DDR_BASE + 0x1dc)
#define DDRC_CTL_120_REG (COMCERTO_APB_DDR_BASE + 0x1e0)
#define DDRC_CTL_121_REG (COMCERTO_APB_DDR_BASE + 0x1e4)
#define DDRC_CTL_122_REG (COMCERTO_APB_DDR_BASE + 0x1e8)
#define DDRC_CTL_123_REG (COMCERTO_APB_DDR_BASE + 0x1ec)
#define DDRC_CTL_124_REG (COMCERTO_APB_DDR_BASE + 0x1f0)
#define DDRC_CTL_125_REG (COMCERTO_APB_DDR_BASE + 0x1f4)
#define DDRC_CTL_126_REG (COMCERTO_APB_DDR_BASE + 0x1f8)
/* DDR PHY Registers */
#define DDR_PHY_CTL_00_REG (COMCERTO_APB_DDR_PHY_BASE + 0x00)
#define DDR_PHY_CTL_01_REG (COMCERTO_APB_DDR_PHY_BASE + 0x04)
#define DDR_PHY_CTL_02_REG (COMCERTO_APB_DDR_PHY_BASE + 0x08)
#define DDR_PHY_CTL_03_REG (COMCERTO_APB_DDR_PHY_BASE + 0x0C)
#define DDR_PHY_CTL_04_REG (COMCERTO_APB_DDR_PHY_BASE + 0x10)
#define DDR_PHY_CTL_05_REG (COMCERTO_APB_DDR_PHY_BASE + 0x14)
#define DDR_PHY_CTL_06_REG (COMCERTO_APB_DDR_PHY_BASE + 0x18)
#define DDR_PHY_CTL_07_REG (COMCERTO_APB_DDR_PHY_BASE + 0x1C)
#define DDR_PHY_DLL_STAT_REG (COMCERTO_APB_DDR_PHY_BASE + 0x70)
#define DDR_PHY_ZQ_STAT_REG (COMCERTO_APB_DDR_PHY_BASE + 0x74)
struct ddr_reg_val {
u32 reg;
u32 val;
};
struct ddr_config {
struct ddr_reg_val *ddr_phy_cfg;
struct ddr_reg_val *ddrc_cfg;
resource_size_t size;
const char *description;
};
const char *get_ddr_config_description(void);
resource_size_t get_ddr_config_size(void);
struct ddr_config get_ddr_config(void);
#define MC_START 0x1
#define MC_INIT_STAT_MASK 0x200
#define CTRL_RESYNC_EN (1 << 20)
#define CTRL_RESYNC_PLS (1 << 21)
#define is_16bitDDR_config() ((readl(DDRC_CTL_49_REG)) & (0x01000000))
#endif