15ff093abSSimon Glass /* 25ff093abSSimon Glass * (C) Copyright 2015 Google, Inc 35ff093abSSimon Glass * 45ff093abSSimon Glass * SPDX-License-Identifier: GPL-2.0 55ff093abSSimon Glass */ 65ff093abSSimon Glass 75ff093abSSimon Glass #ifndef _ASM_ARCH_DDR_RK3288_H 85ff093abSSimon Glass #define _ASM_ARCH_DDR_RK3288_H 95ff093abSSimon Glass 105ff093abSSimon Glass struct rk3288_ddr_pctl { 115ff093abSSimon Glass u32 scfg; 125ff093abSSimon Glass u32 sctl; 135ff093abSSimon Glass u32 stat; 145ff093abSSimon Glass u32 intrstat; 155ff093abSSimon Glass u32 reserved0[12]; 165ff093abSSimon Glass u32 mcmd; 175ff093abSSimon Glass u32 powctl; 185ff093abSSimon Glass u32 powstat; 195ff093abSSimon Glass u32 cmdtstat; 205ff093abSSimon Glass u32 tstaten; 215ff093abSSimon Glass u32 reserved1[3]; 225ff093abSSimon Glass u32 mrrcfg0; 235ff093abSSimon Glass u32 mrrstat0; 245ff093abSSimon Glass u32 mrrstat1; 255ff093abSSimon Glass u32 reserved2[4]; 265ff093abSSimon Glass u32 mcfg1; 275ff093abSSimon Glass u32 mcfg; 285ff093abSSimon Glass u32 ppcfg; 295ff093abSSimon Glass u32 mstat; 305ff093abSSimon Glass u32 lpddr2zqcfg; 315ff093abSSimon Glass u32 reserved3; 325ff093abSSimon Glass u32 dtupdes; 335ff093abSSimon Glass u32 dtuna; 345ff093abSSimon Glass u32 dtune; 355ff093abSSimon Glass u32 dtuprd0; 365ff093abSSimon Glass u32 dtuprd1; 375ff093abSSimon Glass u32 dtuprd2; 385ff093abSSimon Glass u32 dtuprd3; 395ff093abSSimon Glass u32 dtuawdt; 405ff093abSSimon Glass u32 reserved4[3]; 415ff093abSSimon Glass u32 togcnt1u; 425ff093abSSimon Glass u32 tinit; 435ff093abSSimon Glass u32 trsth; 445ff093abSSimon Glass u32 togcnt100n; 455ff093abSSimon Glass u32 trefi; 465ff093abSSimon Glass u32 tmrd; 475ff093abSSimon Glass u32 trfc; 485ff093abSSimon Glass u32 trp; 495ff093abSSimon Glass u32 trtw; 505ff093abSSimon Glass u32 tal; 515ff093abSSimon Glass u32 tcl; 525ff093abSSimon Glass u32 tcwl; 535ff093abSSimon Glass u32 tras; 545ff093abSSimon Glass u32 trc; 555ff093abSSimon Glass u32 trcd; 565ff093abSSimon Glass u32 trrd; 575ff093abSSimon Glass u32 trtp; 585ff093abSSimon Glass u32 twr; 595ff093abSSimon Glass u32 twtr; 605ff093abSSimon Glass u32 texsr; 615ff093abSSimon Glass u32 txp; 625ff093abSSimon Glass u32 txpdll; 635ff093abSSimon Glass u32 tzqcs; 645ff093abSSimon Glass u32 tzqcsi; 655ff093abSSimon Glass u32 tdqs; 665ff093abSSimon Glass u32 tcksre; 675ff093abSSimon Glass u32 tcksrx; 685ff093abSSimon Glass u32 tcke; 695ff093abSSimon Glass u32 tmod; 705ff093abSSimon Glass u32 trstl; 715ff093abSSimon Glass u32 tzqcl; 725ff093abSSimon Glass u32 tmrr; 735ff093abSSimon Glass u32 tckesr; 745ff093abSSimon Glass u32 tdpd; 755ff093abSSimon Glass u32 reserved5[14]; 765ff093abSSimon Glass u32 ecccfg; 775ff093abSSimon Glass u32 ecctst; 785ff093abSSimon Glass u32 eccclr; 795ff093abSSimon Glass u32 ecclog; 805ff093abSSimon Glass u32 reserved6[28]; 815ff093abSSimon Glass u32 dtuwactl; 825ff093abSSimon Glass u32 dturactl; 835ff093abSSimon Glass u32 dtucfg; 845ff093abSSimon Glass u32 dtuectl; 855ff093abSSimon Glass u32 dtuwd0; 865ff093abSSimon Glass u32 dtuwd1; 875ff093abSSimon Glass u32 dtuwd2; 885ff093abSSimon Glass u32 dtuwd3; 895ff093abSSimon Glass u32 dtuwdm; 905ff093abSSimon Glass u32 dturd0; 915ff093abSSimon Glass u32 dturd1; 925ff093abSSimon Glass u32 dturd2; 935ff093abSSimon Glass u32 dturd3; 945ff093abSSimon Glass u32 dtulfsrwd; 955ff093abSSimon Glass u32 dtulfsrrd; 965ff093abSSimon Glass u32 dtueaf; 975ff093abSSimon Glass u32 dfitctrldelay; 985ff093abSSimon Glass u32 dfiodtcfg; 995ff093abSSimon Glass u32 dfiodtcfg1; 1005ff093abSSimon Glass u32 dfiodtrankmap; 1015ff093abSSimon Glass u32 dfitphywrdata; 1025ff093abSSimon Glass u32 dfitphywrlat; 1035ff093abSSimon Glass u32 reserved7[2]; 1045ff093abSSimon Glass u32 dfitrddataen; 1055ff093abSSimon Glass u32 dfitphyrdlat; 1065ff093abSSimon Glass u32 reserved8[2]; 1075ff093abSSimon Glass u32 dfitphyupdtype0; 1085ff093abSSimon Glass u32 dfitphyupdtype1; 1095ff093abSSimon Glass u32 dfitphyupdtype2; 1105ff093abSSimon Glass u32 dfitphyupdtype3; 1115ff093abSSimon Glass u32 dfitctrlupdmin; 1125ff093abSSimon Glass u32 dfitctrlupdmax; 1135ff093abSSimon Glass u32 dfitctrlupddly; 1145ff093abSSimon Glass u32 reserved9; 1155ff093abSSimon Glass u32 dfiupdcfg; 1165ff093abSSimon Glass u32 dfitrefmski; 1175ff093abSSimon Glass u32 dfitctrlupdi; 1185ff093abSSimon Glass u32 reserved10[4]; 1195ff093abSSimon Glass u32 dfitrcfg0; 1205ff093abSSimon Glass u32 dfitrstat0; 1215ff093abSSimon Glass u32 dfitrwrlvlen; 1225ff093abSSimon Glass u32 dfitrrdlvlen; 1235ff093abSSimon Glass u32 dfitrrdlvlgateen; 1245ff093abSSimon Glass u32 dfiststat0; 1255ff093abSSimon Glass u32 dfistcfg0; 1265ff093abSSimon Glass u32 dfistcfg1; 1275ff093abSSimon Glass u32 reserved11; 1285ff093abSSimon Glass u32 dfitdramclken; 1295ff093abSSimon Glass u32 dfitdramclkdis; 1305ff093abSSimon Glass u32 dfistcfg2; 1315ff093abSSimon Glass u32 dfistparclr; 1325ff093abSSimon Glass u32 dfistparlog; 1335ff093abSSimon Glass u32 reserved12[3]; 1345ff093abSSimon Glass u32 dfilpcfg0; 1355ff093abSSimon Glass u32 reserved13[3]; 1365ff093abSSimon Glass u32 dfitrwrlvlresp0; 1375ff093abSSimon Glass u32 dfitrwrlvlresp1; 1385ff093abSSimon Glass u32 dfitrwrlvlresp2; 1395ff093abSSimon Glass u32 dfitrrdlvlresp0; 1405ff093abSSimon Glass u32 dfitrrdlvlresp1; 1415ff093abSSimon Glass u32 dfitrrdlvlresp2; 1425ff093abSSimon Glass u32 dfitrwrlvldelay0; 1435ff093abSSimon Glass u32 dfitrwrlvldelay1; 1445ff093abSSimon Glass u32 dfitrwrlvldelay2; 1455ff093abSSimon Glass u32 dfitrrdlvldelay0; 1465ff093abSSimon Glass u32 dfitrrdlvldelay1; 1475ff093abSSimon Glass u32 dfitrrdlvldelay2; 1485ff093abSSimon Glass u32 dfitrrdlvlgatedelay0; 1495ff093abSSimon Glass u32 dfitrrdlvlgatedelay1; 1505ff093abSSimon Glass u32 dfitrrdlvlgatedelay2; 1515ff093abSSimon Glass u32 dfitrcmd; 1525ff093abSSimon Glass u32 reserved14[46]; 1535ff093abSSimon Glass u32 ipvr; 1545ff093abSSimon Glass u32 iptr; 1555ff093abSSimon Glass }; 1565ff093abSSimon Glass check_member(rk3288_ddr_pctl, iptr, 0x03fc); 1575ff093abSSimon Glass 1585ff093abSSimon Glass struct rk3288_ddr_publ_datx { 1595ff093abSSimon Glass u32 dxgcr; 1605ff093abSSimon Glass u32 dxgsr[2]; 1615ff093abSSimon Glass u32 dxdllcr; 1625ff093abSSimon Glass u32 dxdqtr; 1635ff093abSSimon Glass u32 dxdqstr; 1645ff093abSSimon Glass u32 reserved[10]; 1655ff093abSSimon Glass }; 1665ff093abSSimon Glass 1675ff093abSSimon Glass struct rk3288_ddr_publ { 1685ff093abSSimon Glass u32 ridr; 1695ff093abSSimon Glass u32 pir; 1705ff093abSSimon Glass u32 pgcr; 1715ff093abSSimon Glass u32 pgsr; 1725ff093abSSimon Glass u32 dllgcr; 1735ff093abSSimon Glass u32 acdllcr; 1745ff093abSSimon Glass u32 ptr[3]; 1755ff093abSSimon Glass u32 aciocr; 1765ff093abSSimon Glass u32 dxccr; 1775ff093abSSimon Glass u32 dsgcr; 1785ff093abSSimon Glass u32 dcr; 1795ff093abSSimon Glass u32 dtpr[3]; 1805ff093abSSimon Glass u32 mr[4]; 1815ff093abSSimon Glass u32 odtcr; 1825ff093abSSimon Glass u32 dtar; 1835ff093abSSimon Glass u32 dtdr[2]; 1845ff093abSSimon Glass u32 reserved1[24]; 1855ff093abSSimon Glass u32 dcuar; 1865ff093abSSimon Glass u32 dcudr; 1875ff093abSSimon Glass u32 dcurr; 1885ff093abSSimon Glass u32 dculr; 1895ff093abSSimon Glass u32 dcugcr; 1905ff093abSSimon Glass u32 dcutpr; 1915ff093abSSimon Glass u32 dcusr[2]; 1925ff093abSSimon Glass u32 reserved2[8]; 1935ff093abSSimon Glass u32 bist[17]; 1945ff093abSSimon Glass u32 reserved3[15]; 1955ff093abSSimon Glass u32 zq0cr[2]; 1965ff093abSSimon Glass u32 zq0sr[2]; 1975ff093abSSimon Glass u32 zq1cr[2]; 1985ff093abSSimon Glass u32 zq1sr[2]; 1995ff093abSSimon Glass u32 zq2cr[2]; 2005ff093abSSimon Glass u32 zq2sr[2]; 2015ff093abSSimon Glass u32 zq3cr[2]; 2025ff093abSSimon Glass u32 zq3sr[2]; 2035ff093abSSimon Glass struct rk3288_ddr_publ_datx datx8[4]; 2045ff093abSSimon Glass }; 2055ff093abSSimon Glass check_member(rk3288_ddr_publ, datx8[3].dxdqstr, 0x0294); 2065ff093abSSimon Glass 2075ff093abSSimon Glass struct rk3288_msch { 2085ff093abSSimon Glass u32 coreid; 2095ff093abSSimon Glass u32 revisionid; 2105ff093abSSimon Glass u32 ddrconf; 2115ff093abSSimon Glass u32 ddrtiming; 2125ff093abSSimon Glass u32 ddrmode; 2135ff093abSSimon Glass u32 readlatency; 2145ff093abSSimon Glass u32 reserved1[8]; 2155ff093abSSimon Glass u32 activate; 2165ff093abSSimon Glass u32 devtodev; 2175ff093abSSimon Glass }; 2185ff093abSSimon Glass check_member(rk3288_msch, devtodev, 0x003c); 2195ff093abSSimon Glass 2205ff093abSSimon Glass /* PCT_DFISTCFG0 */ 2215ff093abSSimon Glass #define DFI_INIT_START (1 << 0) 2225ff093abSSimon Glass 2235ff093abSSimon Glass /* PCT_DFISTCFG1 */ 2245ff093abSSimon Glass #define DFI_DRAM_CLK_SR_EN (1 << 0) 2255ff093abSSimon Glass #define DFI_DRAM_CLK_DPD_EN (1 << 1) 2265ff093abSSimon Glass 2275ff093abSSimon Glass /* PCT_DFISTCFG2 */ 2285ff093abSSimon Glass #define DFI_PARITY_INTR_EN (1 << 0) 2295ff093abSSimon Glass #define DFI_PARITY_EN (1 << 1) 2305ff093abSSimon Glass 2315ff093abSSimon Glass /* PCT_DFILPCFG0 */ 2325ff093abSSimon Glass #define TLP_RESP_TIME_SHIFT 16 2335ff093abSSimon Glass #define LP_SR_EN (1 << 8) 2345ff093abSSimon Glass #define LP_PD_EN (1 << 0) 2355ff093abSSimon Glass 2365ff093abSSimon Glass /* PCT_DFITCTRLDELAY */ 2375ff093abSSimon Glass #define TCTRL_DELAY_TIME_SHIFT 0 2385ff093abSSimon Glass 2395ff093abSSimon Glass /* PCT_DFITPHYWRDATA */ 2405ff093abSSimon Glass #define TPHY_WRDATA_TIME_SHIFT 0 2415ff093abSSimon Glass 2425ff093abSSimon Glass /* PCT_DFITPHYRDLAT */ 2435ff093abSSimon Glass #define TPHY_RDLAT_TIME_SHIFT 0 2445ff093abSSimon Glass 2455ff093abSSimon Glass /* PCT_DFITDRAMCLKDIS */ 2465ff093abSSimon Glass #define TDRAM_CLK_DIS_TIME_SHIFT 0 2475ff093abSSimon Glass 2485ff093abSSimon Glass /* PCT_DFITDRAMCLKEN */ 2495ff093abSSimon Glass #define TDRAM_CLK_EN_TIME_SHIFT 0 2505ff093abSSimon Glass 2515ff093abSSimon Glass /* PCTL_DFIODTCFG */ 2525ff093abSSimon Glass #define RANK0_ODT_WRITE_SEL (1 << 3) 2535ff093abSSimon Glass #define RANK1_ODT_WRITE_SEL (1 << 11) 2545ff093abSSimon Glass 2555ff093abSSimon Glass /* PCTL_DFIODTCFG1 */ 2565ff093abSSimon Glass #define ODT_LEN_BL8_W_SHIFT 16 2575ff093abSSimon Glass 2585ff093abSSimon Glass /* PUBL_ACDLLCR */ 2595ff093abSSimon Glass #define ACDLLCR_DLLDIS (1 << 31) 2605ff093abSSimon Glass #define ACDLLCR_DLLSRST (1 << 30) 2615ff093abSSimon Glass 2625ff093abSSimon Glass /* PUBL_DXDLLCR */ 2635ff093abSSimon Glass #define DXDLLCR_DLLDIS (1 << 31) 2645ff093abSSimon Glass #define DXDLLCR_DLLSRST (1 << 30) 2655ff093abSSimon Glass 2665ff093abSSimon Glass /* PUBL_DLLGCR */ 2675ff093abSSimon Glass #define DLLGCR_SBIAS (1 << 30) 2685ff093abSSimon Glass 2695ff093abSSimon Glass /* PUBL_DXGCR */ 2705ff093abSSimon Glass #define DQSRTT (1 << 9) 2715ff093abSSimon Glass #define DQRTT (1 << 10) 2725ff093abSSimon Glass 2735ff093abSSimon Glass /* PIR */ 2745ff093abSSimon Glass #define PIR_INIT (1 << 0) 2755ff093abSSimon Glass #define PIR_DLLSRST (1 << 1) 2765ff093abSSimon Glass #define PIR_DLLLOCK (1 << 2) 2775ff093abSSimon Glass #define PIR_ZCAL (1 << 3) 2785ff093abSSimon Glass #define PIR_ITMSRST (1 << 4) 2795ff093abSSimon Glass #define PIR_DRAMRST (1 << 5) 2805ff093abSSimon Glass #define PIR_DRAMINIT (1 << 6) 2815ff093abSSimon Glass #define PIR_QSTRN (1 << 7) 2825ff093abSSimon Glass #define PIR_RVTRN (1 << 8) 2835ff093abSSimon Glass #define PIR_ICPC (1 << 16) 2845ff093abSSimon Glass #define PIR_DLLBYP (1 << 17) 2855ff093abSSimon Glass #define PIR_CTLDINIT (1 << 18) 2865ff093abSSimon Glass #define PIR_CLRSR (1 << 28) 2875ff093abSSimon Glass #define PIR_LOCKBYP (1 << 29) 2885ff093abSSimon Glass #define PIR_ZCALBYP (1 << 30) 2895ff093abSSimon Glass #define PIR_INITBYP (1u << 31) 2905ff093abSSimon Glass 2915ff093abSSimon Glass /* PGCR */ 2925ff093abSSimon Glass #define PGCR_DFTLMT_SHIFT 3 2935ff093abSSimon Glass #define PGCR_DFTCMP_SHIFT 2 2945ff093abSSimon Glass #define PGCR_DQSCFG_SHIFT 1 2955ff093abSSimon Glass #define PGCR_ITMDMD_SHIFT 0 2965ff093abSSimon Glass 2975ff093abSSimon Glass /* PGSR */ 2985ff093abSSimon Glass #define PGSR_IDONE (1 << 0) 2995ff093abSSimon Glass #define PGSR_DLDONE (1 << 1) 3005ff093abSSimon Glass #define PGSR_ZCDONE (1 << 2) 3015ff093abSSimon Glass #define PGSR_DIDONE (1 << 3) 3025ff093abSSimon Glass #define PGSR_DTDONE (1 << 4) 3035ff093abSSimon Glass #define PGSR_DTERR (1 << 5) 3045ff093abSSimon Glass #define PGSR_DTIERR (1 << 6) 3055ff093abSSimon Glass #define PGSR_DFTERR (1 << 7) 3065ff093abSSimon Glass #define PGSR_RVERR (1 << 8) 3075ff093abSSimon Glass #define PGSR_RVEIRR (1 << 9) 3085ff093abSSimon Glass 3095ff093abSSimon Glass /* PTR0 */ 3105ff093abSSimon Glass #define PRT_ITMSRST_SHIFT 18 3115ff093abSSimon Glass #define PRT_DLLLOCK_SHIFT 6 3125ff093abSSimon Glass #define PRT_DLLSRST_SHIFT 0 3135ff093abSSimon Glass 3145ff093abSSimon Glass /* PTR1 */ 3155ff093abSSimon Glass #define PRT_DINIT0_SHIFT 0 3165ff093abSSimon Glass #define PRT_DINIT1_SHIFT 19 3175ff093abSSimon Glass 3185ff093abSSimon Glass /* PTR2 */ 3195ff093abSSimon Glass #define PRT_DINIT2_SHIFT 0 3205ff093abSSimon Glass #define PRT_DINIT3_SHIFT 17 3215ff093abSSimon Glass 3225ff093abSSimon Glass /* DCR */ 3235ff093abSSimon Glass #define DDRMD_LPDDR 0 3245ff093abSSimon Glass #define DDRMD_DDR 1 3255ff093abSSimon Glass #define DDRMD_DDR2 2 3265ff093abSSimon Glass #define DDRMD_DDR3 3 3275ff093abSSimon Glass #define DDRMD_LPDDR2_LPDDR3 4 3285ff093abSSimon Glass #define DDRMD_MASK 7 3295ff093abSSimon Glass #define DDRMD_SHIFT 0 3305ff093abSSimon Glass #define PDQ_MASK 7 3315ff093abSSimon Glass #define PDQ_SHIFT 4 3325ff093abSSimon Glass 3335ff093abSSimon Glass /* DXCCR */ 3345ff093abSSimon Glass #define DQSNRES_MASK 0xf 3355ff093abSSimon Glass #define DQSNRES_SHIFT 8 3365ff093abSSimon Glass #define DQSRES_MASK 0xf 3375ff093abSSimon Glass #define DQSRES_SHIFT 4 3385ff093abSSimon Glass 3395ff093abSSimon Glass /* DTPR */ 3405ff093abSSimon Glass #define TDQSCKMAX_SHIFT 27 3415ff093abSSimon Glass #define TDQSCKMAX_MASK 7 3425ff093abSSimon Glass #define TDQSCK_SHIFT 24 3435ff093abSSimon Glass #define TDQSCK_MASK 7 3445ff093abSSimon Glass 3455ff093abSSimon Glass /* DSGCR */ 3465ff093abSSimon Glass #define DQSGX_SHIFT 5 3475ff093abSSimon Glass #define DQSGX_MASK 7 3485ff093abSSimon Glass #define DQSGE_SHIFT 8 3495ff093abSSimon Glass #define DQSGE_MASK 7 3505ff093abSSimon Glass 3515ff093abSSimon Glass /* SCTL */ 3525ff093abSSimon Glass #define INIT_STATE 0 3535ff093abSSimon Glass #define CFG_STATE 1 3545ff093abSSimon Glass #define GO_STATE 2 3555ff093abSSimon Glass #define SLEEP_STATE 3 3565ff093abSSimon Glass #define WAKEUP_STATE 4 3575ff093abSSimon Glass 3585ff093abSSimon Glass /* STAT */ 3595ff093abSSimon Glass #define LP_TRIG_SHIFT 4 3605ff093abSSimon Glass #define LP_TRIG_MASK 7 3615ff093abSSimon Glass #define PCTL_STAT_MSK 7 3625ff093abSSimon Glass #define INIT_MEM 0 3635ff093abSSimon Glass #define CONFIG 1 3645ff093abSSimon Glass #define CONFIG_REQ 2 3655ff093abSSimon Glass #define ACCESS 3 3665ff093abSSimon Glass #define ACCESS_REQ 4 3675ff093abSSimon Glass #define LOW_POWER 5 3685ff093abSSimon Glass #define LOW_POWER_ENTRY_REQ 6 3695ff093abSSimon Glass #define LOW_POWER_EXIT_REQ 7 3705ff093abSSimon Glass 3715ff093abSSimon Glass /* ZQCR*/ 3725ff093abSSimon Glass #define PD_OUTPUT_SHIFT 0 3735ff093abSSimon Glass #define PU_OUTPUT_SHIFT 5 3745ff093abSSimon Glass #define PD_ONDIE_SHIFT 10 3755ff093abSSimon Glass #define PU_ONDIE_SHIFT 15 3765ff093abSSimon Glass #define ZDEN_SHIFT 28 3775ff093abSSimon Glass 3785ff093abSSimon Glass /* DDLGCR */ 3795ff093abSSimon Glass #define SBIAS_BYPASS (1 << 23) 3805ff093abSSimon Glass 3815ff093abSSimon Glass /* MCFG */ 3825ff093abSSimon Glass #define MDDR_LPDDR2_CLK_STOP_IDLE_SHIFT 24 3835ff093abSSimon Glass #define PD_IDLE_SHIFT 8 3845ff093abSSimon Glass #define MDDR_EN (2 << 22) 3855ff093abSSimon Glass #define LPDDR2_EN (3 << 22) 3865ff093abSSimon Glass #define DDR2_EN (0 << 5) 3875ff093abSSimon Glass #define DDR3_EN (1 << 5) 3885ff093abSSimon Glass #define LPDDR2_S2 (0 << 6) 3895ff093abSSimon Glass #define LPDDR2_S4 (1 << 6) 3905ff093abSSimon Glass #define MDDR_LPDDR2_BL_2 (0 << 20) 3915ff093abSSimon Glass #define MDDR_LPDDR2_BL_4 (1 << 20) 3925ff093abSSimon Glass #define MDDR_LPDDR2_BL_8 (2 << 20) 3935ff093abSSimon Glass #define MDDR_LPDDR2_BL_16 (3 << 20) 3945ff093abSSimon Glass #define DDR2_DDR3_BL_4 0 3955ff093abSSimon Glass #define DDR2_DDR3_BL_8 1 3965ff093abSSimon Glass #define TFAW_SHIFT 18 3975ff093abSSimon Glass #define PD_EXIT_SLOW (0 << 17) 3985ff093abSSimon Glass #define PD_EXIT_FAST (1 << 17) 3995ff093abSSimon Glass #define PD_TYPE_SHIFT 16 4005ff093abSSimon Glass #define BURSTLENGTH_SHIFT 20 4015ff093abSSimon Glass 4025ff093abSSimon Glass /* POWCTL */ 4035ff093abSSimon Glass #define POWER_UP_START (1 << 0) 4045ff093abSSimon Glass 4055ff093abSSimon Glass /* POWSTAT */ 4065ff093abSSimon Glass #define POWER_UP_DONE (1 << 0) 4075ff093abSSimon Glass 4085ff093abSSimon Glass /* MCMD */ 4095ff093abSSimon Glass enum { 4105ff093abSSimon Glass DESELECT_CMD = 0, 4115ff093abSSimon Glass PREA_CMD, 4125ff093abSSimon Glass REF_CMD, 4135ff093abSSimon Glass MRS_CMD, 4145ff093abSSimon Glass ZQCS_CMD, 4155ff093abSSimon Glass ZQCL_CMD, 4165ff093abSSimon Glass RSTL_CMD, 4175ff093abSSimon Glass MRR_CMD = 8, 4185ff093abSSimon Glass DPDE_CMD, 4195ff093abSSimon Glass }; 4205ff093abSSimon Glass 4215ff093abSSimon Glass #define LPDDR2_MA_SHIFT 4 4225ff093abSSimon Glass #define LPDDR2_MA_MASK 0xff 4235ff093abSSimon Glass #define LPDDR2_OP_SHIFT 12 4245ff093abSSimon Glass #define LPDDR2_OP_MASK 0xff 4255ff093abSSimon Glass 4265ff093abSSimon Glass #define START_CMD (1u << 31) 4275ff093abSSimon Glass 428*bd7e6086SHeiko Stübner /* 429*bd7e6086SHeiko Stübner * DDRCONF 430*bd7e6086SHeiko Stübner * [5:4] row(13+n) 431*bd7e6086SHeiko Stübner * [1:0] col(9+n), assume bw=2 432*bd7e6086SHeiko Stübner */ 433*bd7e6086SHeiko Stübner #define DDRCONF_ROW_SHIFT 4 434*bd7e6086SHeiko Stübner #define DDRCONF_COL_SHIFT 0 435*bd7e6086SHeiko Stübner 4365ff093abSSimon Glass /* DEVTODEV */ 4375ff093abSSimon Glass #define BUSWRTORD_SHIFT 4 4385ff093abSSimon Glass #define BUSRDTOWR_SHIFT 2 4395ff093abSSimon Glass #define BUSRDTORD_SHIFT 0 4405ff093abSSimon Glass 4415ff093abSSimon Glass /* mr1 for ddr3 */ 4425ff093abSSimon Glass #define DDR3_DLL_DISABLE 1 4435ff093abSSimon Glass 4445ff093abSSimon Glass #endif 445