| #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 |