1*036935a8SXiaoDong Huang /* SPDX-License-Identifier: BSD-3-Clause */ 2*036935a8SXiaoDong Huang /* 3*036935a8SXiaoDong Huang * Copyright (c) 2025, Rockchip Electronics Co., Ltd. 4*036935a8SXiaoDong Huang */ 5*036935a8SXiaoDong Huang 6*036935a8SXiaoDong Huang #ifndef __PLAT_ROCKCHIP_DMC_RK3576_H__ 7*036935a8SXiaoDong Huang #define __PLAT_ROCKCHIP_DMC_RK3576_H__ 8*036935a8SXiaoDong Huang 9*036935a8SXiaoDong Huang #define MAX_CH_NUM (2) 10*036935a8SXiaoDong Huang #define CTL_PORT_NUM (5) 11*036935a8SXiaoDong Huang 12*036935a8SXiaoDong Huang /* DDR_GRF Register */ 13*036935a8SXiaoDong Huang #define GRF_CH_CON(ch, n) ((((ch) % 2) * 0x100) + ((n) * 4)) 14*036935a8SXiaoDong Huang #define DDR_GRF_CH_STATUS16(ch) (0x220 + ((ch) * 0x100)) 15*036935a8SXiaoDong Huang #define GRF_DDRPHY_CON(n) (0x530 + ((n) * 4)) 16*036935a8SXiaoDong Huang #define GRF_DDRPHY_CON0(ch) (0x530 + (((ch) % 2) * 0x4)) 17*036935a8SXiaoDong Huang #define DDR_GRF_COMMON_CON(n) (0x540 + ((n) * 4)) 18*036935a8SXiaoDong Huang 19*036935a8SXiaoDong Huang /* PMUGRF Register */ 20*036935a8SXiaoDong Huang #define PMUGRF_OS_REG(n) (0x200 + ((n) * 4)) 21*036935a8SXiaoDong Huang 22*036935a8SXiaoDong Huang struct low_power_st { 23*036935a8SXiaoDong Huang uint32_t pwrctl; 24*036935a8SXiaoDong Huang uint32_t clkgatectl; 25*036935a8SXiaoDong Huang uint32_t dfi_lp_mode_apb; 26*036935a8SXiaoDong Huang uint32_t grf_ddr_con0; 27*036935a8SXiaoDong Huang uint32_t grf_ddr_con1; 28*036935a8SXiaoDong Huang uint32_t grf_ddr_con6; 29*036935a8SXiaoDong Huang uint32_t grf_ddr_con7; 30*036935a8SXiaoDong Huang uint32_t grf_ddr_con9; 31*036935a8SXiaoDong Huang uint32_t grf_ddrphy_con0; 32*036935a8SXiaoDong Huang uint32_t hwlp_0; 33*036935a8SXiaoDong Huang uint32_t hwlp_c; 34*036935a8SXiaoDong Huang uint32_t pcl_pd; 35*036935a8SXiaoDong Huang }; 36*036935a8SXiaoDong Huang 37*036935a8SXiaoDong Huang struct rk3576_dmc_config { 38*036935a8SXiaoDong Huang struct low_power_st low_power[MAX_CH_NUM]; 39*036935a8SXiaoDong Huang }; 40*036935a8SXiaoDong Huang 41*036935a8SXiaoDong Huang void dmc_save(void); 42*036935a8SXiaoDong Huang void dmc_restore(void); 43*036935a8SXiaoDong Huang 44*036935a8SXiaoDong Huang #endif /* __PLAT_ROCKCHIP_DMC_RK3576_H__ */ 45