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