Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
0002 /*
0003  * Copyright (c) 2016 AmLogic, Inc.
0004  * Author: Michael Turquette <mturquette@baylibre.com>
0005  *
0006  * Copyright (c) 2017 Amlogic, inc.
0007  * Author: Qiufang Dai <qiufang.dai@amlogic.com>
0008  *
0009  */
0010 #ifndef __AXG_H
0011 #define __AXG_H
0012 
0013 /*
0014  * Clock controller register offsets
0015  *
0016  * Register offsets from the data sheet must be multiplied by 4 before
0017  * adding them to the base address to get the right value.
0018  */
0019 #define HHI_GP0_PLL_CNTL        0x40
0020 #define HHI_GP0_PLL_CNTL2       0x44
0021 #define HHI_GP0_PLL_CNTL3       0x48
0022 #define HHI_GP0_PLL_CNTL4       0x4c
0023 #define HHI_GP0_PLL_CNTL5       0x50
0024 #define HHI_GP0_PLL_STS         0x54
0025 #define HHI_GP0_PLL_CNTL1       0x58
0026 #define HHI_HIFI_PLL_CNTL       0x80
0027 #define HHI_HIFI_PLL_CNTL2      0x84
0028 #define HHI_HIFI_PLL_CNTL3      0x88
0029 #define HHI_HIFI_PLL_CNTL4      0x8C
0030 #define HHI_HIFI_PLL_CNTL5      0x90
0031 #define HHI_HIFI_PLL_STS        0x94
0032 #define HHI_HIFI_PLL_CNTL1      0x98
0033 
0034 #define HHI_XTAL_DIVN_CNTL      0xbc
0035 #define HHI_GCLK2_MPEG0         0xc0
0036 #define HHI_GCLK2_MPEG1         0xc4
0037 #define HHI_GCLK2_MPEG2         0xc8
0038 #define HHI_GCLK2_OTHER         0xd0
0039 #define HHI_GCLK2_AO            0xd4
0040 #define HHI_PCIE_PLL_CNTL       0xd8
0041 #define HHI_PCIE_PLL_CNTL1      0xdC
0042 #define HHI_PCIE_PLL_CNTL2      0xe0
0043 #define HHI_PCIE_PLL_CNTL3      0xe4
0044 #define HHI_PCIE_PLL_CNTL4      0xe8
0045 #define HHI_PCIE_PLL_CNTL5      0xec
0046 #define HHI_PCIE_PLL_CNTL6      0xf0
0047 #define HHI_PCIE_PLL_STS        0xf4
0048 
0049 #define HHI_MEM_PD_REG0         0x100
0050 #define HHI_VPU_MEM_PD_REG0     0x104
0051 #define HHI_VIID_CLK_DIV        0x128
0052 #define HHI_VIID_CLK_CNTL       0x12c
0053 
0054 #define HHI_GCLK_MPEG0          0x140
0055 #define HHI_GCLK_MPEG1          0x144
0056 #define HHI_GCLK_MPEG2          0x148
0057 #define HHI_GCLK_OTHER          0x150
0058 #define HHI_GCLK_AO         0x154
0059 #define HHI_SYS_CPU_CLK_CNTL1       0x15c
0060 #define HHI_SYS_CPU_RESET_CNTL      0x160
0061 #define HHI_VID_CLK_DIV         0x164
0062 #define HHI_SPICC_HCLK_CNTL     0x168
0063 
0064 #define HHI_MPEG_CLK_CNTL       0x174
0065 #define HHI_VID_CLK_CNTL        0x17c
0066 #define HHI_TS_CLK_CNTL         0x190
0067 #define HHI_VID_CLK_CNTL2       0x194
0068 #define HHI_SYS_CPU_CLK_CNTL0       0x19c
0069 #define HHI_VID_PLL_CLK_DIV     0x1a0
0070 #define HHI_VPU_CLK_CNTL        0x1bC
0071 
0072 #define HHI_VAPBCLK_CNTL        0x1F4
0073 
0074 #define HHI_GEN_CLK_CNTL        0x228
0075 
0076 #define HHI_VDIN_MEAS_CLK_CNTL      0x250
0077 #define HHI_NAND_CLK_CNTL       0x25C
0078 #define HHI_SD_EMMC_CLK_CNTL        0x264
0079 
0080 #define HHI_MPLL_CNTL           0x280
0081 #define HHI_MPLL_CNTL2          0x284
0082 #define HHI_MPLL_CNTL3          0x288
0083 #define HHI_MPLL_CNTL4          0x28C
0084 #define HHI_MPLL_CNTL5          0x290
0085 #define HHI_MPLL_CNTL6          0x294
0086 #define HHI_MPLL_CNTL7          0x298
0087 #define HHI_MPLL_CNTL8          0x29C
0088 #define HHI_MPLL_CNTL9          0x2A0
0089 #define HHI_MPLL_CNTL10         0x2A4
0090 
0091 #define HHI_MPLL3_CNTL0         0x2E0
0092 #define HHI_MPLL3_CNTL1         0x2E4
0093 #define HHI_PLL_TOP_MISC        0x2E8
0094 
0095 #define HHI_SYS_PLL_CNTL1       0x2FC
0096 #define HHI_SYS_PLL_CNTL        0x300
0097 #define HHI_SYS_PLL_CNTL2       0x304
0098 #define HHI_SYS_PLL_CNTL3       0x308
0099 #define HHI_SYS_PLL_CNTL4       0x30c
0100 #define HHI_SYS_PLL_CNTL5       0x310
0101 #define HHI_SYS_PLL_STS         0x314
0102 #define HHI_DPLL_TOP_I          0x318
0103 #define HHI_DPLL_TOP2_I         0x31C
0104 
0105 /*
0106  * CLKID index values
0107  *
0108  * These indices are entirely contrived and do not map onto the hardware.
0109  * It has now been decided to expose everything by default in the DT header:
0110  * include/dt-bindings/clock/axg-clkc.h. Only the clocks ids we don't want
0111  * to expose, such as the internal muxes and dividers of composite clocks,
0112  * will remain defined here.
0113  */
0114 #define CLKID_MPEG_SEL              8
0115 #define CLKID_MPEG_DIV              9
0116 #define CLKID_SD_EMMC_B_CLK0_SEL        61
0117 #define CLKID_SD_EMMC_B_CLK0_DIV        62
0118 #define CLKID_SD_EMMC_C_CLK0_SEL        63
0119 #define CLKID_SD_EMMC_C_CLK0_DIV        64
0120 #define CLKID_MPLL0_DIV             65
0121 #define CLKID_MPLL1_DIV             66
0122 #define CLKID_MPLL2_DIV             67
0123 #define CLKID_MPLL3_DIV             68
0124 #define CLKID_MPLL_PREDIV           70
0125 #define CLKID_FCLK_DIV2_DIV         71
0126 #define CLKID_FCLK_DIV3_DIV         72
0127 #define CLKID_FCLK_DIV4_DIV         73
0128 #define CLKID_FCLK_DIV5_DIV         74
0129 #define CLKID_FCLK_DIV7_DIV         75
0130 #define CLKID_PCIE_PLL              76
0131 #define CLKID_PCIE_MUX              77
0132 #define CLKID_PCIE_REF              78
0133 #define CLKID_GEN_CLK_SEL           82
0134 #define CLKID_GEN_CLK_DIV           83
0135 #define CLKID_SYS_PLL_DCO           85
0136 #define CLKID_FIXED_PLL_DCO         86
0137 #define CLKID_GP0_PLL_DCO           87
0138 #define CLKID_HIFI_PLL_DCO          88
0139 #define CLKID_PCIE_PLL_DCO          89
0140 #define CLKID_PCIE_PLL_OD           90
0141 #define CLKID_VPU_0_DIV             91
0142 #define CLKID_VPU_1_DIV             94
0143 #define CLKID_VAPB_0_DIV            98
0144 #define CLKID_VAPB_1_DIV            101
0145 #define CLKID_VCLK_SEL              108
0146 #define CLKID_VCLK2_SEL             109
0147 #define CLKID_VCLK_INPUT            110
0148 #define CLKID_VCLK2_INPUT           111
0149 #define CLKID_VCLK_DIV              112
0150 #define CLKID_VCLK2_DIV             113
0151 #define CLKID_VCLK_DIV2_EN          114
0152 #define CLKID_VCLK_DIV4_EN          115
0153 #define CLKID_VCLK_DIV6_EN          116
0154 #define CLKID_VCLK_DIV12_EN         117
0155 #define CLKID_VCLK2_DIV2_EN         118
0156 #define CLKID_VCLK2_DIV4_EN         119
0157 #define CLKID_VCLK2_DIV6_EN         120
0158 #define CLKID_VCLK2_DIV12_EN            121
0159 #define CLKID_CTS_ENCL_SEL          132
0160 #define CLKID_VDIN_MEAS_SEL         134
0161 #define CLKID_VDIN_MEAS_DIV         135
0162 
0163 #define NR_CLKS                 137
0164 
0165 /* include the CLKIDs that have been made part of the DT binding */
0166 #include <dt-bindings/clock/axg-clkc.h>
0167 
0168 #endif /* __AXG_H */