1 /* SPDX-License-Identifier: GPL-2.0 */
3 * (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
6 #ifndef __ASM_ARCH_DDR_RK3368_H__
7 #define __ASM_ARCH_DDR_RK3368_H__
10 #include <linux/bitops.h>
14 * The RK3368 DDR PCTL differs from the incarnation in the RK3288 only
15 * in a few details. Most notably, it has an additional field to track
16 * tREFI in controller cycles (i.e. trefi_mem_ddr3).
18 struct rk3368_ddr_pctl {
127 u32 dfitrrdlvlgateen;
146 u32 dfitrwrlvldelay0;
147 u32 dfitrwrlvldelay1;
148 u32 dfitrwrlvldelay2;
149 u32 dfitrrdlvldelay0;
150 u32 dfitrrdlvldelay1;
151 u32 dfitrrdlvldelay2;
152 u32 dfitrrdlvlgatedelay0;
153 u32 dfitrrdlvlgatedelay1;
154 u32 dfitrrdlvlgatedelay2;
160 check_member(rk3368_ddr_pctl, iptr, 0x03fc);
162 struct rk3368_ddrphy {
165 check_member(rk3368_ddrphy, reg[0xff], 0x03fc);
178 check_member(rk3368_msch, devtodev, 0x003c);
182 NOC_RSP_ERR_STALL = BIT(9),
183 MOBILE_DDR_SEL = BIT(4),
184 DDR0_16BIT_EN = BIT(3),
185 MSCH0_MAINDDR3_DDR3 = BIT(2),
186 MSCH0_MAINPARTIALPOP = BIT(1),
187 UPCTL_C_ACTIVE = BIT(0),