89 lines
2.7 KiB
C

/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Header providing constants for Rockchip suspend bindings.
*
* Copyright (C) 2022, Rockchip Electronics Co., Ltd.
* Author: XiaoDong.Huang
*/
#ifndef __DT_BINDINGS_RK3588_PM_H__
#define __DT_BINDINGS_RK3588_PM_H__
/******************************bits ops************************************/
#ifndef BIT
#define BIT(nr) (1 << (nr))
#endif
#define RKPM_SLP_ARMPD BIT(0)
#define RKPM_SLP_ARMOFF BIT(1)
#define RKPM_SLP_ARMOFF_DDRPD BIT(2)
#define RKPM_SLP_ARMOFF_LOGOFF BIT(3)
#define RKPM_SLP_ARMOFF_PMUOFF BIT(4)
/* all plls except ddr's pll*/
#define RKPM_SLP_PMU_HW_PLLS_PD BIT(8)
#define RKPM_SLP_PMU_PMUALIVE_32K BIT(9)
#define RKPM_SLP_PMU_DIS_OSC BIT(10)
#define RKPM_SLP_CLK_GT BIT(16)
#define RKPM_SLP_PMIC_LP BIT(17)
#define RKPM_SLP_32K_EXT BIT(24)
#define RKPM_SLP_TIME_OUT_WKUP BIT(25)
#define RKPM_SLP_PMU_DBG BIT(26)
#define RKPM_SLP_ARCH_TIMER_RESET BIT(27)
/* the wake up source */
#define RKPM_CPU0_WKUP_EN BIT(0)
#define RKPM_CPU1_WKUP_EN BIT(1)
#define RKPM_CPU2_WKUP_EN BIT(2)
#define RKPM_CPU3_WKUP_EN BIT(3)
#define RKPM_CPU4_WKUP_EN BIT(4)
#define RKPM_CPU5_WKUP_EN BIT(5)
#define RKPM_CPU6_WKUP_EN BIT(6)
#define RKPM_CPU7_WKUP_EN BIT(7)
#define RKPM_GPIO_WKUP_EN BIT(8)
#define RKPM_SDMMC_WKUP_EN BIT(9)
#define RKPM_SDIO_WKUP_EN BIT(10)
#define RKPM_USB_WKUP_EN BIT(11)
#define RKPM_UART0_WKUP_EN BIT(12)
#define RKPM_VAD_WKUP_EN BIT(13)
#define RKPM_TIMER_WKUP_EN BIT(14)
#define RKPM_SYSINT_WKUP_EN BIT(15)
#define RKPM_TIME_OUT_WKUP_EN BIT(16)
#define RKPM_PMUMCU_CEC_WKUP_EN BIT(20)
#define RKPM_PMUMCU_VAD_WKUP_EN BIT(21)
/* io retention config */
#define RKPM_EMMCIO_RET_EN BIT(0)
#define RKPM_VCCIO1_RET_EN BIT(1)
#define RKPM_VCCIO2_RET_EN BIT(2)
#define RKPM_VCCIO3_RET_EN BIT(3)
#define RKPM_VCCIO4_RET_EN BIT(4)
#define RKPM_VCCIO5_RET_EN BIT(5)
#define RKPM_VCCIO6_RET_EN BIT(6)
#define RKPM_PMUIO2_RET_EN BIT(7)
/* sleep pin */
#define RKPM_SLEEP_PIN0_ACT_LOW BIT(0) /* GPIO0_A2 */
#define RKPM_SLEEP_PIN1_ACT_LOW BIT(1) /* GPIO0_A3 */
#define RKPM_SLEEP_PIN_SRC_VD_NPU 0x1
#define RKPM_SLEEP_PIN_SRC_VD_GPU 0x2
#define RKPM_SLEEP_PIN_SRC_VD_BIGCORE0 0x3
#define RKPM_SLEEP_PIN_SRC_VD_BIGCORE1 0x4
#define RKPM_SLEEP_PIN_SRC_VD_DSU 0x5
#define RKPM_SLEEP_PIN_SRC_VD_VCODEC 0x6
#define RKPM_SLEEP_PIN_SRC_VD_DDR 0x7
#define RKPM_SLEEP_PIN_SRC_LP_DEEP_LP 0x8
#define RKPM_SLEEP_PIN_SRC_SFT_EN 0xf
#define RKPM_SLEEP_PIN0_SRC(n) (((n) & 0xf) << 0)
#define RKPM_SLEEP_PIN1_SRC(n) (((n) & 0xf) << 4)
#define RKPM_SLEEP_PIN2_SRC(n) (((n) & 0xf) << 8)
#define RKPM_SLEEP_PIN3_SRC(n) (((n) & 0xf) << 12)
#define RKPM_SLEEP_PIN4_SRC(n) (((n) & 0xf) << 16)
#define RKPM_SLEEP_PIN5_SRC(n) (((n) & 0xf) << 20)
#endif