xref: /rk3399_ARM-atf/plat/rockchip/rk3576/drivers/dmc/dmc_rk3576.h (revision 04b2fb42b171e3fbf2ef823558ac5b0119663dc7)
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