blob: d8c231c95de8aaf46c7bf7f0863028a5d1d5f82c [file] [log] [blame]
/* SPDX-License-Identifier: BSD-3-Clause */
/*
* Copyright (c) 2025, Rockchip Electronics Co., Ltd.
*/
#ifndef __PLAT_ROCKCHIP_DMC_RK3576_H__
#define __PLAT_ROCKCHIP_DMC_RK3576_H__
#define MAX_CH_NUM (2)
#define CTL_PORT_NUM (5)
/* DDR_GRF Register */
#define GRF_CH_CON(ch, n) ((((ch) % 2) * 0x100) + ((n) * 4))
#define DDR_GRF_CH_STATUS16(ch) (0x220 + ((ch) * 0x100))
#define GRF_DDRPHY_CON(n) (0x530 + ((n) * 4))
#define GRF_DDRPHY_CON0(ch) (0x530 + (((ch) % 2) * 0x4))
#define DDR_GRF_COMMON_CON(n) (0x540 + ((n) * 4))
/* PMUGRF Register */
#define PMUGRF_OS_REG(n) (0x200 + ((n) * 4))
struct low_power_st {
uint32_t pwrctl;
uint32_t clkgatectl;
uint32_t dfi_lp_mode_apb;
uint32_t grf_ddr_con0;
uint32_t grf_ddr_con1;
uint32_t grf_ddr_con6;
uint32_t grf_ddr_con7;
uint32_t grf_ddr_con9;
uint32_t grf_ddrphy_con0;
uint32_t hwlp_0;
uint32_t hwlp_c;
uint32_t pcl_pd;
};
struct rk3576_dmc_config {
struct low_power_st low_power[MAX_CH_NUM];
};
void dmc_save(void);
void dmc_restore(void);
#endif /* __PLAT_ROCKCHIP_DMC_RK3576_H__ */