pinebuds/platform/hal/best2300p/reg_aoncmu_best2300p.h

533 lines
27 KiB
C

/***************************************************************************
*
* Copyright 2015-2019 BES.
* All rights reserved. All unpublished rights reserved.
*
* No part of this work may be used or reproduced in any form or by any
* means, or stored in a database or retrieval system, without prior written
* permission of BES.
*
* Use of this work is governed by a license granted by BES.
* This work contains confidential and proprietary information of
* BES. which is protected by copyright, trade secret,
* trademark and other intellectual property rights.
*
****************************************************************************/
#ifndef __REG_AONCMU_BEST2300P_H__
#define __REG_AONCMU_BEST2300P_H__
#include "plat_types.h"
struct AONCMU_T {
__I uint32_t CHIP_ID; // 0x00
__IO uint32_t TOP_CLK_ENABLE; // 0x04
__IO uint32_t TOP_CLK_DISABLE; // 0x08
__IO uint32_t RESET_PULSE; // 0x0C
__IO uint32_t RESET_SET; // 0x10
__IO uint32_t RESET_CLR; // 0x14
__IO uint32_t CLK_SELECT; // 0x18
__IO uint32_t CLK_OUT; // 0x1C
__IO uint32_t WRITE_UNLOCK; // 0x20
__IO uint32_t MEMSC[4]; // 0x24
__I uint32_t MEMSC_STATUS; // 0x34
__IO uint32_t BOOTMODE; // 0x38
__IO uint32_t RESERVED_03C; // 0x3C
__IO uint32_t MOD_CLK_ENABLE; // 0x40
__IO uint32_t MOD_CLK_DISABLE; // 0x44
__IO uint32_t MOD_CLK_MODE; // 0x48
__IO uint32_t CODEC_DIV; // 0x4C
__IO uint32_t TIMER_CLK; // 0x50
__IO uint32_t PWM01_CLK; // 0x54
__IO uint32_t PWM23_CLK; // 0x58
__IO uint32_t RAM_CFG; // 0x5C
__IO uint32_t RESERVED_060; // 0x60
__IO uint32_t PCM_I2S_CLK; // 0x64
__IO uint32_t SPDIF_CLK; // 0x68
__IO uint32_t SLEEP_TIMER_OSC; // 0x6C
__IO uint32_t SLEEP_TIMER_32K; // 0x70
__IO uint32_t STORE_GPIO_MASK; // 0x74
__IO uint32_t CODEC_IIR; // 0x78
__IO uint32_t SE_WLOCK; // 0x7C
__IO uint32_t SE_RLOCK; // 0x80
__IO uint32_t PD_STAB_TIMER; // 0x84
uint32_t RESERVED_088[0x1A]; // 0x88
__IO uint32_t WAKEUP_PC; // 0xF0
__IO uint32_t DEBUG_RES[2]; // 0xF4
__IO uint32_t CHIP_FEATURE; // 0xFC
};
// reg_00
#define AON_CMU_CHIP_ID(n) (((n) & 0xFFFF) << 0)
#define AON_CMU_CHIP_ID_MASK (0xFFFF << 0)
#define AON_CMU_CHIP_ID_SHIFT (0)
#define AON_CMU_REVISION_ID(n) (((n) & 0xFFFF) << 16)
#define AON_CMU_REVISION_ID_MASK (0xFFFF << 16)
#define AON_CMU_REVISION_ID_SHIFT (16)
// reg_04
#define AON_CMU_EN_CLK_TOP_PLLBB_ENABLE (1 << 0)
#define AON_CMU_EN_CLK_TOP_PLLAUD_ENABLE (1 << 1)
#define AON_CMU_EN_CLK_TOP_OSCX2_ENABLE (1 << 2)
#define AON_CMU_EN_CLK_TOP_OSC_ENABLE (1 << 3)
#define AON_CMU_EN_CLK_TOP_JTAG_ENABLE (1 << 4)
#define AON_CMU_EN_CLK_TOP_PLLBB2_ENABLE (1 << 5)
#define AON_CMU_EN_CLK_TOP_PLLUSB_ENABLE (1 << 6)
#define AON_CMU_EN_CLK_PLL_CODEC_ENABLE (1 << 7)
#define AON_CMU_EN_CLK_CODEC_HCLK_ENABLE (1 << 8)
#define AON_CMU_EN_CLK_CODEC_RS_ENABLE (1 << 9)
#define AON_CMU_EN_CLK_CODEC_ENABLE (1 << 10)
#define AON_CMU_EN_CLK_CODEC_IIR_ENABLE (1 << 11)
#define AON_CMU_EN_CLK_OSCX2_MCU_ENABLE (1 << 12)
#define AON_CMU_EN_CLK_OSC_MCU_ENABLE (1 << 13)
#define AON_CMU_EN_CLK_32K_MCU_ENABLE (1 << 14)
#define AON_CMU_EN_CLK_PLL_BT_ENABLE (1 << 15)
#define AON_CMU_EN_CLK_60M_BT_ENABLE (1 << 16)
#define AON_CMU_EN_CLK_OSCX2_BT_ENABLE (1 << 17)
#define AON_CMU_EN_CLK_OSC_BT_ENABLE (1 << 18)
#define AON_CMU_EN_CLK_32K_BT_ENABLE (1 << 19)
#define AON_CMU_EN_CLK_PLL_PER_ENABLE (1 << 20)
#define AON_CMU_EN_CLK_DCDC0_ENABLE (1 << 21)
#define AON_CMU_EN_CLK_DCDC1_ENABLE (1 << 22)
#define AON_CMU_EN_CLK_DCDC2_ENABLE (1 << 23)
#define AON_CMU_EN_X2_DIG_ENABLE (1 << 24)
#define AON_CMU_EN_X4_DIG_ENABLE (1 << 25)
#define AON_CMU_PU_PLLBB_ENABLE (1 << 26)
#define AON_CMU_PU_PLLUSB_ENABLE (1 << 27)
#define AON_CMU_PU_PLLAUD_ENABLE (1 << 28)
#define AON_CMU_PU_OSC_ENABLE (1 << 29)
#define AON_CMU_EN_X4_ANA_ENABLE (1 << 30)
#define AON_CMU_EN_CLK_32K_CODEC_ENABLE (1 << 31)
// reg_08
#define AON_CMU_EN_CLK_TOP_PLLBB_DISABLE (1 << 0)
#define AON_CMU_EN_CLK_TOP_PLLAUD_DISABLE (1 << 1)
#define AON_CMU_EN_CLK_TOP_OSCX2_DISABLE (1 << 2)
#define AON_CMU_EN_CLK_TOP_OSC_DISABLE (1 << 3)
#define AON_CMU_EN_CLK_TOP_JTAG_DISABLE (1 << 4)
#define AON_CMU_EN_CLK_TOP_PLLBB2_DISABLE (1 << 5)
#define AON_CMU_EN_CLK_TOP_PLLUSB_DISABLE (1 << 6)
#define AON_CMU_EN_CLK_PLL_CODEC_DISABLE (1 << 7)
#define AON_CMU_EN_CLK_CODEC_HCLK_DISABLE (1 << 8)
#define AON_CMU_EN_CLK_CODEC_RS_DISABLE (1 << 9)
#define AON_CMU_EN_CLK_CODEC_DISABLE (1 << 10)
#define AON_CMU_EN_CLK_CODEC_IIR_DISABLE (1 << 11)
#define AON_CMU_EN_CLK_OSCX2_MCU_DISABLE (1 << 12)
#define AON_CMU_EN_CLK_OSC_MCU_DISABLE (1 << 13)
#define AON_CMU_EN_CLK_32K_MCU_DISABLE (1 << 14)
#define AON_CMU_EN_CLK_PLL_BT_DISABLE (1 << 15)
#define AON_CMU_EN_CLK_60M_BT_DISABLE (1 << 16)
#define AON_CMU_EN_CLK_OSCX2_BT_DISABLE (1 << 17)
#define AON_CMU_EN_CLK_OSC_BT_DISABLE (1 << 18)
#define AON_CMU_EN_CLK_32K_BT_DISABLE (1 << 19)
#define AON_CMU_EN_CLK_PLL_PER_DISABLE (1 << 20)
#define AON_CMU_EN_CLK_DCDC0_DISABLE (1 << 21)
#define AON_CMU_EN_CLK_DCDC1_DISABLE (1 << 22)
#define AON_CMU_EN_CLK_DCDC2_DISABLE (1 << 23)
#define AON_CMU_EN_X2_DIG_DISABLE (1 << 24)
#define AON_CMU_EN_X4_DIG_DISABLE (1 << 25)
#define AON_CMU_PU_PLLBB_DISABLE (1 << 26)
#define AON_CMU_PU_PLLUSB_DISABLE (1 << 27)
#define AON_CMU_PU_PLLAUD_DISABLE (1 << 28)
#define AON_CMU_PU_OSC_DISABLE (1 << 29)
#define AON_CMU_EN_X4_ANA_DISABLE (1 << 30)
#define AON_CMU_EN_CLK_32K_CODEC_DISABLE (1 << 31)
#define AON_ARST_NUM 10
#define AON_ORST_NUM 10
#define AON_ACLK_NUM AON_ARST_NUM
#define AON_OCLK_NUM AON_ORST_NUM
// reg_0c
#define AON_CMU_ARESETN_PULSE(n) (((n) & 0xFFFFFFFF) << 0)
#define AON_CMU_ARESETN_PULSE_MASK (0xFFFFFFFF << 0)
#define AON_CMU_ARESETN_PULSE_SHIFT (0)
#define AON_CMU_ORESETN_PULSE(n) (((n) & 0xFFFFFFFF) << AON_ARST_NUM)
#define AON_CMU_ORESETN_PULSE_MASK (0xFFFFFFFF << AON_ARST_NUM)
#define AON_CMU_ORESETN_PULSE_SHIFT (AON_ARST_NUM)
#define AON_CMU_SOFT_RSTN_MCU_PULSE (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1-1))
#define AON_CMU_SOFT_RSTN_CODEC_PULSE (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1-1))
#define AON_CMU_SOFT_RSTN_WF_PULSE (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1-1))
#define AON_CMU_SOFT_RSTN_BT_PULSE (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1-1))
#define AON_CMU_SOFT_RSTN_MCUCPU_PULSE (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1+1-1))
#define AON_CMU_SOFT_RSTN_WFCPU_PULSE (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1+1+1-1))
#define AON_CMU_SOFT_RSTN_BTCPU_PULSE (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1+1+1+1-1))
#define AON_CMU_GLOBAL_RESETN_PULSE (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1+1+1+1+1-1))
// reg_10
#define AON_CMU_ARESETN_SET(n) (((n) & 0xFFFFFFFF) << 0)
#define AON_CMU_ARESETN_SET_MASK (0xFFFFFFFF << 0)
#define AON_CMU_ARESETN_SET_SHIFT (0)
#define AON_CMU_ORESETN_SET(n) (((n) & 0xFFFFFFFF) << AON_ARST_NUM)
#define AON_CMU_ORESETN_SET_MASK (0xFFFFFFFF << AON_ARST_NUM)
#define AON_CMU_ORESETN_SET_SHIFT (AON_ARST_NUM)
#define AON_CMU_SOFT_RSTN_MCU_SET (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1-1))
#define AON_CMU_SOFT_RSTN_CODEC_SET (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1-1))
#define AON_CMU_SOFT_RSTN_WF_SET (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1-1))
#define AON_CMU_SOFT_RSTN_BT_SET (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1-1))
#define AON_CMU_SOFT_RSTN_MCUCPU_SET (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1+1-1))
#define AON_CMU_SOFT_RSTN_WFCPU_SET (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1+1+1-1))
#define AON_CMU_SOFT_RSTN_BTCPU_SET (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1+1+1+1-1))
#define AON_CMU_GLOBAL_RESETN_SET (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1+1+1+1+1-1))
// reg_14
#define AON_CMU_ARESETN_CLR(n) (((n) & 0xFFFFFFFF) << 0)
#define AON_CMU_ARESETN_CLR_MASK (0xFFFFFFFF << 0)
#define AON_CMU_ARESETN_CLR_SHIFT (0)
#define AON_CMU_ORESETN_CLR(n) (((n) & 0xFFFFFFFF) << AON_ARST_NUM)
#define AON_CMU_ORESETN_CLR_MASK (0xFFFFFFFF << AON_ARST_NUM)
#define AON_CMU_ORESETN_CLR_SHIFT (AON_ARST_NUM)
#define AON_CMU_SOFT_RSTN_MCU_CLR (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1-1))
#define AON_CMU_SOFT_RSTN_CODEC_CLR (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1-1))
#define AON_CMU_SOFT_RSTN_WF_CLR (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1-1))
#define AON_CMU_SOFT_RSTN_BT_CLR (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1-1))
#define AON_CMU_SOFT_RSTN_MCUCPU_CLR (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1+1-1))
#define AON_CMU_SOFT_RSTN_WFCPU_CLR (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1+1+1-1))
#define AON_CMU_SOFT_RSTN_BTCPU_CLR (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1+1+1+1-1))
#define AON_CMU_GLOBAL_RESETN_CLR (1 << (AON_ARST_NUM+AON_ORST_NUM+32-8-AON_ARST_NUM-AON_ORST_NUM+1+1+1+1+1+1+1+1-1))
// reg_18
#define AON_CMU_BYPASS_DIV_BTSYS (1 << 0)
#define AON_CMU_CFG_DIV_BTSYS(n) (((n) & 0x3) << 1)
#define AON_CMU_CFG_DIV_BTSYS_MASK (0x3 << 1)
#define AON_CMU_CFG_DIV_BTSYS_SHIFT (1)
#define AON_CMU_CFG_DIV_BT60M(n) (((n) & 0x3) << 3)
#define AON_CMU_CFG_DIV_BT60M_MASK (0x3 << 3)
#define AON_CMU_CFG_DIV_BT60M_SHIFT (3)
#define AON_CMU_SEL_PLL_SYS(n) (((n) & 0x3) << 5)
#define AON_CMU_SEL_PLL_SYS_MASK (0x3 << 5)
#define AON_CMU_SEL_PLL_SYS_SHIFT (5)
#define AON_CMU_SEL_PLL_AUD(n) (((n) & 0x3) << 7)
#define AON_CMU_SEL_PLL_AUD_MASK (0x3 << 7)
#define AON_CMU_SEL_PLL_AUD_SHIFT (7)
#define AON_CMU_SEL_OSCX2_DIG (1 << 9)
#define AON_CMU_SEL_X2_PHASE(n) (((n) & 0x1F) << 10)
#define AON_CMU_SEL_X2_PHASE_MASK (0x1F << 10)
#define AON_CMU_SEL_X2_PHASE_SHIFT (10)
#define AON_CMU_SEL_X4_SYS (1 << 15)
#define AON_CMU_SEL_X4_AUD (1 << 16)
#define AON_CMU_SEL_X4_USB (1 << 17)
#define AON_CMU_SEL_X4_PHASE(n) (((n) & 0x1F) << 18)
#define AON_CMU_SEL_X4_PHASE_MASK (0x1F << 18)
#define AON_CMU_SEL_X4_PHASE_SHIFT (18)
#define AON_CMU_SEL_X4_DIG (1 << 23)
#define AON_CMU_CFG_DIV_PER(n) (((n) & 0x3) << 24)
#define AON_CMU_CFG_DIV_PER_MASK (0x3 << 24)
#define AON_CMU_CFG_DIV_PER_SHIFT (24)
#define AON_CMU_BYPASS_DIV_PER (1 << 26)
#define AON_CMU_SEL_32K_TIMER (1 << 27)
#define AON_CMU_SEL_32K_WDT (1 << 28)
#define AON_CMU_SEL_TIMER_FAST (1 << 29)
#define AON_CMU_LPU_AUTO_SWITCH26 (1 << 30)
#define AON_CMU_EN_MCU_WDG_RESET (1 << 31)
// reg_1c
#define AON_CMU_EN_CLK_OUT (1 << 0)
#define AON_CMU_SEL_CLK_OUT(n) (((n) & 0x3) << 1)
#define AON_CMU_SEL_CLK_OUT_MASK (0x3 << 1)
#define AON_CMU_SEL_CLK_OUT_SHIFT (1)
#define AON_CMU_CFG_CLK_OUT(n) (((n) & 0xF) << 3)
#define AON_CMU_CFG_CLK_OUT_MASK (0xF << 3)
#define AON_CMU_CFG_CLK_OUT_SHIFT (3)
#define AON_CMU_CFG_DIV_DCDC(n) (((n) & 0xF) << 7)
#define AON_CMU_CFG_DIV_DCDC_MASK (0xF << 7)
#define AON_CMU_CFG_DIV_DCDC_SHIFT (7)
#define AON_CMU_BYPASS_DIV_DCDC (1 << 11)
#define AON_CMU_SEL_DCDC_PLL (1 << 12)
#define AON_CMU_SEL_DCDC_OSCX2 (1 << 13)
#define AON_CMU_CLK_DCDC_DRV(n) (((n) & 0x3) << 14)
#define AON_CMU_CLK_DCDC_DRV_MASK (0x3 << 14)
#define AON_CMU_CLK_DCDC_DRV_SHIFT (14)
#define AON_CMU_EN_VOD_IIR (1 << 16)
#define AON_CMU_EN_VOD_RS (1 << 17)
#define AON_CMU_SEL_X4_FLS (1 << 18)
// reg_20
#define AON_CMU_WRITE_UNLOCK_H (1 << 0)
#define AON_CMU_WRITE_UNLOCK_STATUS (1 << 1)
// reg_24
#define AON_CMU_MEMSC0 (1 << 0)
// reg_28
#define AON_CMU_MEMSC1 (1 << 0)
// reg_2c
#define AON_CMU_MEMSC2 (1 << 0)
// reg_30
#define AON_CMU_MEMSC3 (1 << 0)
// reg_34
#define AON_CMU_MEMSC_STATUS0 (1 << 0)
#define AON_CMU_MEMSC_STATUS1 (1 << 1)
#define AON_CMU_MEMSC_STATUS2 (1 << 2)
#define AON_CMU_MEMSC_STATUS3 (1 << 3)
// reg_38
#define AON_CMU_WATCHDOG_RESET (1 << 0)
#define AON_CMU_SOFT_GLOBLE_RESET (1 << 1)
#define AON_CMU_RTC_INTR_H (1 << 2)
#define AON_CMU_CHG_INTR_H (1 << 3)
#define AON_CMU_SOFT_BOOT_MODE(n) (((n) & 0xFFFFFFF) << 4)
#define AON_CMU_SOFT_BOOT_MODE_MASK (0xFFFFFFF << 4)
#define AON_CMU_SOFT_BOOT_MODE_SHIFT (4)
// reg_3c
#define AON_CMU_RESERVED(n) (((n) & 0xFFFFFFFF) << 0)
#define AON_CMU_RESERVED_MASK (0xFFFFFFFF << 0)
#define AON_CMU_RESERVED_SHIFT (0)
#define AON_CMU_OSC_TO_DIG_X4 (1 << 1)
// reg_40
#define AON_CMU_MANUAL_ACLK_ENABLE(n) (((n) & 0xFFFFFFFF) << 0)
#define AON_CMU_MANUAL_ACLK_ENABLE_MASK (0xFFFFFFFF << 0)
#define AON_CMU_MANUAL_ACLK_ENABLE_SHIFT (0)
#define AON_CMU_MANUAL_OCLK_ENABLE(n) (((n) & 0xFFFFFFFF) << AON_ACLK_NUM)
#define AON_CMU_MANUAL_OCLK_ENABLE_MASK (0xFFFFFFFF << AON_ACLK_NUM)
#define AON_CMU_MANUAL_OCLK_ENABLE_SHIFT (AON_ACLK_NUM)
// reg_44
#define AON_CMU_MANUAL_ACLK_DISABLE(n) (((n) & 0xFFFFFFFF) << 0)
#define AON_CMU_MANUAL_ACLK_DISABLE_MASK (0xFFFFFFFF << 0)
#define AON_CMU_MANUAL_ACLK_DISABLE_SHIFT (0)
#define AON_CMU_MANUAL_OCLK_DISABLE(n) (((n) & 0xFFFFFFFF) << AON_ACLK_NUM)
#define AON_CMU_MANUAL_OCLK_DISABLE_MASK (0xFFFFFFFF << AON_ACLK_NUM)
#define AON_CMU_MANUAL_OCLK_DISABLE_SHIFT (AON_ACLK_NUM)
// reg_48
#define AON_CMU_MODE_ACLK(n) (((n) & 0xFFFFFFFF) << 0)
#define AON_CMU_MODE_ACLK_MASK (0xFFFFFFFF << 0)
#define AON_CMU_MODE_ACLK_SHIFT (0)
#define AON_CMU_MODE_OCLK(n) (((n) & 0xFFFFFFFF) << AON_ACLK_NUM)
#define AON_CMU_MODE_OCLK_MASK (0xFFFFFFFF << AON_ACLK_NUM)
#define AON_CMU_MODE_OCLK_SHIFT (AON_ACLK_NUM)
// reg_4c
#define AON_CMU_SEL_CLK_OSC (1 << 0)
#define AON_CMU_SEL_CLK_OSCX2 (1 << 1)
#define AON_CMU_CFG_DIV_CODEC(n) (((n) & 0x1F) << 2)
#define AON_CMU_CFG_DIV_CODEC_MASK (0x1F << 2)
#define AON_CMU_CFG_DIV_CODEC_SHIFT (2)
#define AON_CMU_SEL_OSC_CODEC (1 << 7)
#define AON_CMU_SEL_OSCX2_CODECHCLK (1 << 8)
#define AON_CMU_SEL_PLL_CODECHCLK (1 << 9)
#define AON_CMU_SEL_CODEC_HCLK_AON (1 << 10)
#define AON_CMU_BYPASS_LOCK_PLLUSB (1 << 11)
#define AON_CMU_BYPASS_LOCK_PLLBB (1 << 12)
#define AON_CMU_BYPASS_LOCK_PLLAUD (1 << 13)
#define AON_CMU_POL_SPI_CS(n) (((n) & 0x7) << 14)
#define AON_CMU_POL_SPI_CS_MASK (0x7 << 14)
#define AON_CMU_POL_SPI_CS_SHIFT (14)
#define AON_CMU_CFG_SPI_ARB(n) (((n) & 0x7) << 17)
#define AON_CMU_CFG_SPI_ARB_MASK (0x7 << 17)
#define AON_CMU_CFG_SPI_ARB_SHIFT (17)
#define AON_CMU_PU_FLASH_IO (1 << 20)
#define AON_CMU_POR_SLEEP_MODE (1 << 21)
#define AON_CMU_LOCK_PLLBB (1 << 22)
#define AON_CMU_LOCK_PLLUSB (1 << 23)
#define AON_CMU_LOCK_PLLAUD (1 << 24)
// reg_50
#define AON_CMU_CFG_DIV_TIMER0(n) (((n) & 0xFFFF) << 0)
#define AON_CMU_CFG_DIV_TIMER0_MASK (0xFFFF << 0)
#define AON_CMU_CFG_DIV_TIMER0_SHIFT (0)
#define AON_CMU_CFG_DIV_TIMER1(n) (((n) & 0xFFFF) << 16)
#define AON_CMU_CFG_DIV_TIMER1_MASK (0xFFFF << 16)
#define AON_CMU_CFG_DIV_TIMER1_SHIFT (16)
// reg_54
#define AON_CMU_CFG_DIV_PWM0(n) (((n) & 0xFFF) << 0)
#define AON_CMU_CFG_DIV_PWM0_MASK (0xFFF << 0)
#define AON_CMU_CFG_DIV_PWM0_SHIFT (0)
#define AON_CMU_SEL_OSC_PWM0 (1 << 12)
#define AON_CMU_EN_OSC_PWM0 (1 << 13)
#define AON_CMU_CFG_DIV_PWM1(n) (((n) & 0xFFF) << 16)
#define AON_CMU_CFG_DIV_PWM1_MASK (0xFFF << 16)
#define AON_CMU_CFG_DIV_PWM1_SHIFT (16)
#define AON_CMU_SEL_OSC_PWM1 (1 << 28)
#define AON_CMU_EN_OSC_PWM1 (1 << 29)
// reg_58
#define AON_CMU_CFG_DIV_PWM2(n) (((n) & 0xFFF) << 0)
#define AON_CMU_CFG_DIV_PWM2_MASK (0xFFF << 0)
#define AON_CMU_CFG_DIV_PWM2_SHIFT (0)
#define AON_CMU_SEL_OSC_PWM2 (1 << 12)
#define AON_CMU_EN_OSC_PWM2 (1 << 13)
#define AON_CMU_CFG_DIV_PWM3(n) (((n) & 0xFFF) << 16)
#define AON_CMU_CFG_DIV_PWM3_MASK (0xFFF << 16)
#define AON_CMU_CFG_DIV_PWM3_SHIFT (16)
#define AON_CMU_SEL_OSC_PWM3 (1 << 28)
#define AON_CMU_EN_OSC_PWM3 (1 << 29)
// reg_5c
#define AON_CMU_RAM_EMA(n) (((n) & 0x7) << 0)
#define AON_CMU_RAM_EMA_MASK (0x7 << 0)
#define AON_CMU_RAM_EMA_SHIFT (0)
#define AON_CMU_RAM_EMAW(n) (((n) & 0x3) << 3)
#define AON_CMU_RAM_EMAW_MASK (0x3 << 3)
#define AON_CMU_RAM_EMAW_SHIFT (3)
#define AON_CMU_RAM_WABL (1 << 5)
#define AON_CMU_RAM_WABLM(n) (((n) & 0x3) << 6)
#define AON_CMU_RAM_WABLM_MASK (0x3 << 6)
#define AON_CMU_RAM_WABLM_SHIFT (6)
#define AON_CMU_RAM_RET1N0(n) (((n) & 0x7) << 8)
#define AON_CMU_RAM_RET1N0_MASK (0x7 << 8)
#define AON_CMU_RAM_RET1N0_SHIFT (8)
#define AON_CMU_RAM_RET2N0(n) (((n) & 0x7) << 11)
#define AON_CMU_RAM_RET2N0_MASK (0x7 << 11)
#define AON_CMU_RAM_RET2N0_SHIFT (11)
#define AON_CMU_RAM_PGEN0(n) (((n) & 0x7) << 14)
#define AON_CMU_RAM_PGEN0_MASK (0x7 << 14)
#define AON_CMU_RAM_PGEN0_SHIFT (14)
#define AON_CMU_RAM_RET1N1(n) (((n) & 0x7) << 17)
#define AON_CMU_RAM_RET1N1_MASK (0x7 << 17)
#define AON_CMU_RAM_RET1N1_SHIFT (17)
#define AON_CMU_RAM_RET2N1(n) (((n) & 0x7) << 20)
#define AON_CMU_RAM_RET2N1_MASK (0x7 << 20)
#define AON_CMU_RAM_RET2N1_SHIFT (20)
#define AON_CMU_RAM_PGEN1(n) (((n) & 0x7) << 23)
#define AON_CMU_RAM_PGEN1_MASK (0x7 << 23)
#define AON_CMU_RAM_PGEN1_SHIFT (23)
#define AON_CMU_RAM_EMAS (1 << 26)
// reg_64
#define AON_CMU_CFG_DIV_PCM(n) (((n) & 0x1FFF) << 0)
#define AON_CMU_CFG_DIV_PCM_MASK (0x1FFF << 0)
#define AON_CMU_CFG_DIV_PCM_SHIFT (0)
#define AON_CMU_SEL_I2S_MCLK(n) (((n) & 0x7) << 13)
#define AON_CMU_SEL_I2S_MCLK_MASK (0x7 << 13)
#define AON_CMU_SEL_I2S_MCLK_SHIFT (13)
#define AON_CMU_CFG_DIV_I2S0(n) (((n) & 0x1FFF) << 16)
#define AON_CMU_CFG_DIV_I2S0_MASK (0x1FFF << 16)
#define AON_CMU_CFG_DIV_I2S0_SHIFT (16)
#define AON_CMU_EN_CLK_PLL_I2S0 (1 << 29)
#define AON_CMU_EN_CLK_PLL_PCM (1 << 30)
#define AON_CMU_EN_I2S_MCLK (1 << 31)
// reg_68
#define AON_CMU_CFG_DIV_SPDIF0(n) (((n) & 0x1FFF) << 0)
#define AON_CMU_CFG_DIV_SPDIF0_MASK (0x1FFF << 0)
#define AON_CMU_CFG_DIV_SPDIF0_SHIFT (0)
#define AON_CMU_EN_CLK_PLL_SPDIF0 (1 << 13)
#define AON_CMU_CFG_DIV_I2S1(n) (((n) & 0x1FFF) << 16)
#define AON_CMU_CFG_DIV_I2S1_MASK (0x1FFF << 16)
#define AON_CMU_CFG_DIV_I2S1_SHIFT (16)
#define AON_CMU_EN_CLK_PLL_I2S1 (1 << 29)
// reg_6c
#define AON_CMU_SLEEP_TIMER_OSC(n) (((n) & 0x7FF) << 0)
#define AON_CMU_SLEEP_TIMER_OSC_MASK (0x7FF << 0)
#define AON_CMU_SLEEP_TIMER_OSC_SHIFT (0)
#define AON_CMU_STORE_GPIO_EN (1 << 30)
#define AON_CMU_STORE_TIMER (1 << 31)
// reg_70
#define AON_CMU_SLEEP_TIMER_32K(n) (((n) & 0xFFFFFF) << 0)
#define AON_CMU_SLEEP_TIMER_32K_MASK (0xFFFFFF << 0)
#define AON_CMU_SLEEP_TIMER_32K_SHIFT (0)
// reg_74
#define AON_CMU_STORE_GPIO_MASK(n) (((n) & 0xFFFFFFFF) << 0)
#define AON_CMU_STORE_GPIO_MASK_MASK (0xFFFFFFFF << 0)
#define AON_CMU_STORE_GPIO_MASK_SHIFT (0)
// reg_78
#define AON_CMU_CFG_DIV_CODECIIR(n) (((n) & 0xF) << 0)
#define AON_CMU_CFG_DIV_CODECIIR_MASK (0xF << 0)
#define AON_CMU_CFG_DIV_CODECIIR_SHIFT (0)
#define AON_CMU_SEL_OSC_CODECIIR (1 << 4)
#define AON_CMU_SEL_OSCX2_CODECIIR (1 << 5)
#define AON_CMU_BYPASS_DIV_CODECIIR (1 << 6)
#define AON_CMU_CFG_DIV_CODECRS(n) (((n) & 0xF) << 8)
#define AON_CMU_CFG_DIV_CODECRS_MASK (0xF << 8)
#define AON_CMU_CFG_DIV_CODECRS_SHIFT (8)
#define AON_CMU_SEL_OSC_CODECRS (1 << 12)
#define AON_CMU_SEL_OSCX2_CODECRS (1 << 13)
#define AON_CMU_BYPASS_DIV_CODECRS (1 << 14)
// reg_7c
#define AON_CMU_OTP_WR_LOCK(n) (((n) & 0xFFFF) << 0)
#define AON_CMU_OTP_WR_LOCK_MASK (0xFFFF << 0)
#define AON_CMU_OTP_WR_LOCK_SHIFT (0)
#define AON_CMU_OTP_WR_UNLOCK (1 << 31)
// reg_80
#define AON_CMU_OTP_RD_LOCK(n) (((n) & 0xFFFF) << 0)
#define AON_CMU_OTP_RD_LOCK_MASK (0xFFFF << 0)
#define AON_CMU_OTP_RD_LOCK_SHIFT (0)
#define AON_CMU_OTP_RD_UNLOCK (1 << 31)
// reg_84
#define AON_CMU_CFG_PD_STAB_TIMER(n) (((n) & 0xF) << 0)
#define AON_CMU_CFG_PD_STAB_TIMER_MASK (0xF << 0)
#define AON_CMU_CFG_PD_STAB_TIMER_SHIFT (0)
// reg_f0
#define AON_CMU_DEBUG0(n) (((n) & 0xFFFFFFFF) << 0)
#define AON_CMU_DEBUG0_MASK (0xFFFFFFFF << 0)
#define AON_CMU_DEBUG0_SHIFT (0)
// reg_f4
#define AON_CMU_DEBUG1(n) (((n) & 0xFFFFFFFF) << 0)
#define AON_CMU_DEBUG1_MASK (0xFFFFFFFF << 0)
#define AON_CMU_DEBUG1_SHIFT (0)
// reg_f8
#define AON_CMU_DEBUG2(n) (((n) & 0xFFFFFFFF) << 0)
#define AON_CMU_DEBUG2_MASK (0xFFFFFFFF << 0)
#define AON_CMU_DEBUG2_SHIFT (0)
// reg_fc
#define AON_CMU_EFUSE(n) (((n) & 0xFFFF) << 0)
#define AON_CMU_EFUSE_MASK (0xFFFF << 0)
#define AON_CMU_EFUSE_SHIFT (0)
#define AON_CMU_EFUSE_LOCK (1 << 31)
// APB and AHB Clocks:
#define AON_ACLK_CMU (1 << 0)
#define AON_ARST_CMU (1 << 0)
#define AON_ACLK_GPIO (1 << 1)
#define AON_ARST_GPIO (1 << 1)
#define AON_ACLK_GPIO_INT (1 << 2)
#define AON_ARST_GPIO_INT (1 << 2)
#define AON_ACLK_WDT (1 << 3)
#define AON_ARST_WDT (1 << 3)
#define AON_ACLK_PWM (1 << 4)
#define AON_ARST_PWM (1 << 4)
#define AON_ACLK_TIMER (1 << 5)
#define AON_ARST_TIMER (1 << 5)
#define AON_ACLK_PSC (1 << 6)
#define AON_ARST_PSC (1 << 6)
#define AON_ACLK_IOMUX (1 << 7)
#define AON_ARST_IOMUX (1 << 7)
#define AON_ACLK_APBC (1 << 8)
#define AON_ARST_APBC (1 << 8)
#define AON_ACLK_H2H_MCU (1 << 9)
#define AON_ARST_H2H_MCU (1 << 9)
// AON other Clocks:
#define AON_OCLK_WDT (1 << 0)
#define AON_ORST_WDT (1 << 0)
#define AON_OCLK_TIMER (1 << 1)
#define AON_ORST_TIMER (1 << 1)
#define AON_OCLK_GPIO (1 << 2)
#define AON_ORST_GPIO (1 << 2)
#define AON_OCLK_PWM0 (1 << 3)
#define AON_ORST_PWM0 (1 << 3)
#define AON_OCLK_PWM1 (1 << 4)
#define AON_ORST_PWM1 (1 << 4)
#define AON_OCLK_PWM2 (1 << 5)
#define AON_ORST_PWM2 (1 << 5)
#define AON_OCLK_PWM3 (1 << 6)
#define AON_ORST_PWM3 (1 << 6)
#define AON_OCLK_IOMUX (1 << 7)
#define AON_ORST_IOMUX (1 << 7)
#define AON_OCLK_SLP32K (1 << 8)
#define AON_ORST_SLP32K (1 << 8)
#define AON_OCLK_SLP26M (1 << 9)
#define AON_ORST_SLP26M (1 << 9)
#endif