/* $NetBSD: sun20i_d1_ccu.h,v 1.1 2024/08/13 07:20:23 skrll Exp $ */
/*-
* Copyright (c) 2024 Rui-Xiang Guo
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#ifndef __CCU_D1_H__
#define __CCU_D1_H__
#define D1_CLK_PLL_CPU 0
#define D1_CLK_PLL_DDR 1
#define D1_CLK_PLL_PERIPH_4X 2
#define D1_CLK_PLL_PERIPH_2X 3
#define D1_CLK_PLL_PERIPH_800M 4
#define D1_CLK_PLL_PERIPH 5
#define D1_CLK_PLL_PERIPH_DIV3 6
#define D1_CLK_PLL_VIDEO0_4X 7
#define D1_CLK_PLL_VIDEO0_2X 8
#define D1_CLK_PLL_VIDEO0 9
#define D1_CLK_PLL_VIDEO1_4X 10
#define D1_CLK_PLL_VIDEO1_2X 11
#define D1_CLK_PLL_VIDEO1 12
#define D1_CLK_PLL_VE 13
#define D1_CLK_PLL_AUDIO0_4X 14
#define D1_CLK_PLL_AUDIO0_2X 15
#define D1_CLK_PLL_AUDIO0 16
#define D1_CLK_PLL_AUDIO1 17
#define D1_CLK_PLL_AUDIO1_DIV2 18
#define D1_CLK_PLL_AUDIO1_DIV5 19
#define D1_CLK_CPU 20
#define D1_CLK_CPU_AXI 21
#define D1_CLK_CPU_APB 22
#define D1_CLK_PSI 23
#define D1_CLK_APB0 24
#define D1_CLK_APB1 25
#define D1_CLK_MBUS 26
#define D1_CLK_DE 27
#define D1_CLK_BUS_DE 28
#define D1_CLK_DI 29
#define D1_CLK_BUS_DI 30
#define D1_CLK_G2D 31
#define D1_CLK_BUS_G2D 32
#define D1_CLK_CE 33
#define D1_CLK_BUS_CE 34
#define D1_CLK_VE 35
#define D1_CLK_BUS_VE 36
#define D1_CLK_BUS_DMA 37
#define D1_CLK_BUS_MSGBOX0 38
#define D1_CLK_BUS_MSGBOX1 39
#define D1_CLK_BUS_MSGBOX2 40
#define D1_CLK_BUS_SPINLOCK 41
#define D1_CLK_BUS_HSTIMER 42
#define D1_CLK_AVS 43
#define D1_CLK_BUS_DBGSYS 44
#define D1_CLK_BUS_PWM 45
#define D1_CLK_BUS_IOMMU 46
#define D1_CLK_DRAM 47
#define D1_CLK_MBUS_DMA 48
#define D1_CLK_MBUS_VE 49
#define D1_CLK_MBUS_CE 50
#define D1_CLK_MBUS_TVIN 51
#define D1_CLK_MBUS_CSI 52
#define D1_CLK_MBUS_G2D 53
#define D1_CLK_MBUS_RISCV 54
#define D1_CLK_BUS_DRAM 55
#define D1_CLK_MMC0 56
#define D1_CLK_MMC1 57
#define D1_CLK_MMC2 58
#define D1_CLK_BUS_MMC0 59
#define D1_CLK_BUS_MMC1 60
#define D1_CLK_BUS_MMC2 61
#define D1_CLK_BUS_UART0 62
#define D1_CLK_BUS_UART1 63
#define D1_CLK_BUS_UART2 64
#define D1_CLK_BUS_UART3 65
#define D1_CLK_BUS_UART4 66
#define D1_CLK_BUS_UART5 67
#define D1_CLK_BUS_I2C0 68
#define D1_CLK_BUS_I2C1 69
#define D1_CLK_BUS_I2C2 70
#define D1_CLK_BUS_I2C3 71
#define D1_CLK_SPI0 72
#define D1_CLK_SPI1 73
#define D1_CLK_BUS_SPI0 74
#define D1_CLK_BUS_SPI1 75
#define D1_CLK_EMAC_25M 76
#define D1_CLK_BUS_EMAC 77
#define D1_CLK_IRTX 78
#define D1_CLK_BUS_IRTX 79
#define D1_CLK_BUS_GPADC 80
#define D1_CLK_BUS_THS 81
#define D1_CLK_I2S0 82
#define D1_CLK_I2S1 83
#define D1_CLK_I2S2 84
#define D1_CLK_I2S2_ASRC 85
#define D1_CLK_BUS_I2S0 86
#define D1_CLK_BUS_I2S1 87
#define D1_CLK_BUS_I2S2 88
#define D1_CLK_SPDIF_TX 89
#define D1_CLK_SPDIF_RX 90
#define D1_CLK_BUS_SPDIF 91
#define D1_CLK_DMIC 92
#define D1_CLK_BUS_DMIC 93
#define D1_CLK_AUDIO_DAC 94
#define D1_CLK_AUDIO_ADC 95
#define D1_CLK_BUS_AUDIO 96
#define D1_CLK_USB_PHY0 97
#define D1_CLK_USB_PHY1 98
#define D1_CLK_BUS_OHCI0 99
#define D1_CLK_BUS_OHCI1 100
#define D1_CLK_BUS_EHCI0 101
#define D1_CLK_BUS_EHCI1 102
#define D1_CLK_BUS_OTG 103
#define D1_CLK_BUS_LRADC 104
#define D1_CLK_BUS_DPSS_TOP 105
#define D1_CLK_HDMI_24M 106
#define D1_CLK_HDMI_CEC_32K 107
#define D1_CLK_HDMI_CEC 108
#define D1_CLK_BUS_HDMI 109
#define D1_CLK_DSI 110
#define D1_CLK_BUS_DSI 111
#define D1_CLK_TCONLCD 112
#define D1_CLK_BUS_TCONLCD 113
#define D1_CLK_TCONTV 114
#define D1_CLK_BUS_TCONTV 115
#define D1_CLK_TVE 116
#define D1_CLK_BUS_TVE_TOP 117
#define D1_CLK_BUS_TVE 118
#define D1_CLK_TVD 119
#define D1_CLK_BUS_TVD_TOP 120
#define D1_CLK_BUS_TVD 121
#define D1_CLK_LEDC 122
#define D1_CLK_BUS_LEDC 123
#define D1_CLK_CSI_TOP 124
#define D1_CLK_CSI_MCLK 125
#define D1_CLK_BUS_CSI 126
#define D1_CLK_TPADC 127
#define D1_CLK_BUS_TPADC 128
#define D1_CLK_BUS_TZMA 129
#define D1_CLK_DSP 130
#define D1_CLK_BUS_DSP_CFG 131
#define D1_CLK_RISCV 132
#define D1_CLK_RISCV_AXI 133
#define D1_CLK_BUS_RISCV_CFG 134
#define D1_CLK_FANOUT_24M 135
#define D1_CLK_FANOUT_12M 136
#define D1_CLK_FANOUT_16M 137
#define D1_CLK_FANOUT_25M 138
#define D1_CLK_FANOUT_32K 139
#define D1_CLK_FANOUT_27M 140
#define D1_CLK_FANOUT_PCLK 141
#define D1_CLK_FANOUT0 142
#define D1_CLK_FANOUT1 143
#define D1_CLK_FANOUT2 144
#define D1_CLK_BUS_CAN0 145
#define D1_CLK_BUS_CAN1 146
#define D1_RST_MBUS 0
#define D1_RST_BUS_DE 1
#define D1_RST_BUS_DI 2
#define D1_RST_BUS_G2D 3
#define D1_RST_BUS_CE 4
#define D1_RST_BUS_VE 5
#define D1_RST_BUS_DMA 6
#define D1_RST_BUS_MSGBOX0 7
#define D1_RST_BUS_MSGBOX1 8
#define D1_RST_BUS_MSGBOX2 9
#define D1_RST_BUS_SPINLOCK 10
#define D1_RST_BUS_HSTIMER 11
#define D1_RST_BUS_DBGSYS 12
#define D1_RST_BUS_PWM 13
#define D1_RST_BUS_DRAM 14
#define D1_RST_BUS_MMC0 15
#define D1_RST_BUS_MMC1 16
#define D1_RST_BUS_MMC2 17
#define D1_RST_BUS_UART0 18
#define D1_RST_BUS_UART1 19
#define D1_RST_BUS_UART2 20
#define D1_RST_BUS_UART3 21
#define D1_RST_BUS_UART4 22
#define D1_RST_BUS_UART5 23
#define D1_RST_BUS_I2C0 24
#define D1_RST_BUS_I2C1 25
#define D1_RST_BUS_I2C2 26
#define D1_RST_BUS_I2C3 27
#define D1_RST_BUS_SPI0 28
#define D1_RST_BUS_SPI1 29
#define D1_RST_BUS_EMAC 30
#define D1_RST_BUS_IRTX 31
#define D1_RST_BUS_GPADC 32
#define D1_RST_BUS_THS 33
#define D1_RST_BUS_I2S0 34
#define D1_RST_BUS_I2S1 35
#define D1_RST_BUS_I2S2 36
#define D1_RST_BUS_SPDIF 37
#define D1_RST_BUS_DMIC 38
#define D1_RST_BUS_AUDIO 39
#define D1_RST_USB_PHY0 40
#define D1_RST_USB_PHY1 41
#define D1_RST_BUS_OHCI0 42
#define D1_RST_BUS_OHCI1 43
#define D1_RST_BUS_EHCI0 44
#define D1_RST_BUS_EHCI1 45
#define D1_RST_BUS_OTG 46
#define D1_RST_BUS_LRADC 47
#define D1_RST_BUS_DPSS_TOP 48
#define D1_RST_BUS_HDMI_SUB 49
#define D1_RST_BUS_HDMI_MAIN 50
#define D1_RST_BUS_DSI 51
#define D1_RST_BUS_TCONLCD 52
#define D1_RST_BUS_TCONTV 53
#define D1_RST_BUS_LVDS 54
#define D1_RST_BUS_TVE 55
#define D1_RST_BUS_TVE_TOP 56
#define D1_RST_BUS_TVD 57
#define D1_RST_BUS_TVD_TOP 58
#define D1_RST_BUS_LEDC 59
#define D1_RST_BUS_CSI 60
#define D1_RST_BUS_TPADC 61
#define D1_RST_BUS_DSP 62
#define D1_RST_BUS_DSP_CFG 63
#define D1_RST_BUS_DSP_DBG 64
#define D1_RST_BUS_RISCV_CFG 65
#define D1_RST_BUS_CAN0 66
#define D1_RST_BUS_CAN1 67
#endif /* __CCU_D1_H__ */