xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-rockchip/sdram_msch.h (revision 3c13acb0a2c4a2726c6468cff4e98661ee2fad2b)
15e6e8f2dSYouMin Chen /* SPDX-License-Identifier:     GPL-2.0+ */
25e6e8f2dSYouMin Chen /*
35e6e8f2dSYouMin Chen  * Copyright (C) 2019 Rockchip Electronics Co., Ltd
45e6e8f2dSYouMin Chen  */
55e6e8f2dSYouMin Chen 
65e6e8f2dSYouMin Chen #ifndef _ASM_ARCH_SDRAM_MSCH_H
75e6e8f2dSYouMin Chen #define _ASM_ARCH_SDRAM_MSCH_H
85e6e8f2dSYouMin Chen 
95e6e8f2dSYouMin Chen union noc_ddrtiminga0 {
105e6e8f2dSYouMin Chen 	u32 d32;
115e6e8f2dSYouMin Chen 	struct {
125e6e8f2dSYouMin Chen 		unsigned acttoact : 6;
135e6e8f2dSYouMin Chen 		unsigned reserved0 : 2;
145e6e8f2dSYouMin Chen 		unsigned rdtomiss : 6;
155e6e8f2dSYouMin Chen 		unsigned reserved1 : 2;
165e6e8f2dSYouMin Chen 		unsigned wrtomiss : 6;
175e6e8f2dSYouMin Chen 		unsigned reserved2 : 2;
185e6e8f2dSYouMin Chen 		unsigned readlatency : 8;
195e6e8f2dSYouMin Chen 	} b;
205e6e8f2dSYouMin Chen };
215e6e8f2dSYouMin Chen 
225e6e8f2dSYouMin Chen union noc_ddrtimingb0 {
235e6e8f2dSYouMin Chen 	u32 d32;
245e6e8f2dSYouMin Chen 	struct {
255e6e8f2dSYouMin Chen 		unsigned rdtowr : 5;
265e6e8f2dSYouMin Chen 		unsigned reserved0 : 3;
275e6e8f2dSYouMin Chen 		unsigned wrtord : 5;
285e6e8f2dSYouMin Chen 		unsigned reserved1 : 3;
295e6e8f2dSYouMin Chen 		unsigned rrd : 4;
305e6e8f2dSYouMin Chen 		unsigned reserved2 : 4;
315e6e8f2dSYouMin Chen 		unsigned faw : 6;
325e6e8f2dSYouMin Chen 		unsigned reserved3 : 2;
335e6e8f2dSYouMin Chen 	} b;
345e6e8f2dSYouMin Chen };
355e6e8f2dSYouMin Chen 
365e6e8f2dSYouMin Chen union noc_ddrtimingc0 {
375e6e8f2dSYouMin Chen 	u32 d32;
385e6e8f2dSYouMin Chen 	struct {
395e6e8f2dSYouMin Chen 		unsigned burstpenalty : 4;
405e6e8f2dSYouMin Chen 		unsigned reserved0 : 4;
415e6e8f2dSYouMin Chen 		unsigned wrtomwr : 6;
425e6e8f2dSYouMin Chen 		unsigned reserved1 : 18;
435e6e8f2dSYouMin Chen 	} b;
445e6e8f2dSYouMin Chen };
455e6e8f2dSYouMin Chen 
46*3c13acb0SYouMin Chen union noc_ddrtimingl {
47*3c13acb0SYouMin Chen 	u32 d32;
48*3c13acb0SYouMin Chen 	struct {
49*3c13acb0SYouMin Chen 		unsigned ccdl : 3;
50*3c13acb0SYouMin Chen 		unsigned wrtordl : 5;
51*3c13acb0SYouMin Chen 		unsigned rrdl : 4;
52*3c13acb0SYouMin Chen 		unsigned reserved : 20;
53*3c13acb0SYouMin Chen 	} b;
54*3c13acb0SYouMin Chen };
55*3c13acb0SYouMin Chen 
565e6e8f2dSYouMin Chen union noc_devtodev0 {
575e6e8f2dSYouMin Chen 	u32 d32;
585e6e8f2dSYouMin Chen 	struct {
595e6e8f2dSYouMin Chen 		unsigned busrdtord : 3;
605e6e8f2dSYouMin Chen 		unsigned reserved0 : 1;
615e6e8f2dSYouMin Chen 		unsigned busrdtowr : 3;
625e6e8f2dSYouMin Chen 		unsigned reserved1 : 1;
635e6e8f2dSYouMin Chen 		unsigned buswrtord : 3;
645e6e8f2dSYouMin Chen 		unsigned reserved2 : 1;
655e6e8f2dSYouMin Chen 		unsigned buswrtowr : 3;
665e6e8f2dSYouMin Chen 		unsigned reserved3 : 17;
675e6e8f2dSYouMin Chen 	} b;
685e6e8f2dSYouMin Chen };
695e6e8f2dSYouMin Chen 
70*3c13acb0SYouMin Chen union noc_devtodev_rv1126 {
71*3c13acb0SYouMin Chen 	u32 d32;
72*3c13acb0SYouMin Chen 	struct {
73*3c13acb0SYouMin Chen 		unsigned busrdtord : 3;
74*3c13acb0SYouMin Chen 		unsigned reserved0 : 1;
75*3c13acb0SYouMin Chen 		unsigned busrdtowr : 4;
76*3c13acb0SYouMin Chen 		unsigned buswrtord : 4;
77*3c13acb0SYouMin Chen 		unsigned buswrtowr : 3;
78*3c13acb0SYouMin Chen 		unsigned reserved2 : 17;
79*3c13acb0SYouMin Chen 	} b;
80*3c13acb0SYouMin Chen };
81*3c13acb0SYouMin Chen 
825e6e8f2dSYouMin Chen union noc_ddrmode {
835e6e8f2dSYouMin Chen 	u32 d32;
845e6e8f2dSYouMin Chen 	struct {
855e6e8f2dSYouMin Chen 		unsigned autoprecharge : 1;
865e6e8f2dSYouMin Chen 		unsigned bypassfiltering : 1;
875e6e8f2dSYouMin Chen 		unsigned fawbank : 1;
885e6e8f2dSYouMin Chen 		unsigned burstsize : 2;
895e6e8f2dSYouMin Chen 		unsigned mwrsize : 2;
905e6e8f2dSYouMin Chen 		unsigned reserved2 : 1;
915e6e8f2dSYouMin Chen 		unsigned forceorder : 8;
925e6e8f2dSYouMin Chen 		unsigned forceorderstate : 8;
935e6e8f2dSYouMin Chen 		unsigned reserved3 : 8;
945e6e8f2dSYouMin Chen 	} b;
955e6e8f2dSYouMin Chen };
965e6e8f2dSYouMin Chen 
975e6e8f2dSYouMin Chen union noc_ddr4timing {
985e6e8f2dSYouMin Chen 	u32 d32;
995e6e8f2dSYouMin Chen 	struct {
1005e6e8f2dSYouMin Chen 		unsigned ccdl : 3;
1015e6e8f2dSYouMin Chen 		unsigned wrtordl : 5;
1025e6e8f2dSYouMin Chen 		unsigned rrdl : 4;
1035e6e8f2dSYouMin Chen 		unsigned reserved1 : 20;
1045e6e8f2dSYouMin Chen 	} b;
1055e6e8f2dSYouMin Chen };
1065e6e8f2dSYouMin Chen 
1075e6e8f2dSYouMin Chen #endif
108