|
20 | 20 | /* NOTE: Must be equal to the last clock ID increased by one */ |
21 | 21 | #define CLKS_NR_TOP (CLK_GOUT_CMU_TPU_UART + 1) |
22 | 22 | #define CLKS_NR_APM (CLK_APM_PLL_DIV16_APM + 1) |
| 23 | +#define CLKS_NR_DPU (CLK_GOUT_DPU_SYSREG_DPU_PCLK + 1) |
23 | 24 | #define CLKS_NR_HSI0 (CLK_GOUT_HSI0_XIU_P_HSI0_ACLK + 1) |
24 | 25 | #define CLKS_NR_HSI2 (CLK_GOUT_HSI2_XIU_P_HSI2_ACLK + 1) |
25 | 26 | #define CLKS_NR_MISC (CLK_GOUT_MISC_XIU_D_MISC_ACLK + 1) |
@@ -1932,6 +1933,285 @@ static const struct samsung_cmu_info apm_cmu_info __initconst = { |
1932 | 1933 | .memclk_offset = GS101_MEMCLK_OFFSET, |
1933 | 1934 | }; |
1934 | 1935 |
|
| 1936 | +/* ---- CMU_DPU ------------------------------------------------------------- */ |
| 1937 | + |
| 1938 | +/* Register Offset definitions for CMU_DPU (0x1c000000) */ |
| 1939 | +#define PLL_CON0_MUX_CLKCMU_DPU_BUS_USER 0x0600 |
| 1940 | +#define PLL_CON1_MUX_CLKCMU_DPU_BUS_USER 0x0604 |
| 1941 | +#define DPU_CMU_DPU_CONTROLLER_OPTION 0x0800 |
| 1942 | +#define CLKOUT_CON_BLK_DPU_CMU_DPU_CLKOUT0 0x0810 |
| 1943 | +#define CLK_CON_DIV_DIV_CLK_DPU_BUSP 0x1800 |
| 1944 | +#define CLK_CON_GAT_CLK_BLK_DPU_UID_DPU_CMU_DPU_IPCLKPORT_PCLK 0x2000 |
| 1945 | +#define CLK_CON_GAT_CLK_BLK_DPU_UID_RSTNSYNC_CLK_DPU_OSCCLK_IPCLKPORT_CLK 0x2004 |
| 1946 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_AD_APB_DPU_DMA_IPCLKPORT_PCLKM 0x2008 |
| 1947 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_DPUF_IPCLKPORT_ACLK_DMA 0x200c |
| 1948 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_DPUF_IPCLKPORT_ACLK_DPP 0x2010 |
| 1949 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_D_TZPC_DPU_IPCLKPORT_PCLK 0x2014 |
| 1950 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_GPC_DPU_IPCLKPORT_PCLK 0x2018 |
| 1951 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_LHM_AXI_P_DPU_IPCLKPORT_I_CLK 0x201c |
| 1952 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_LHS_AXI_D0_DPU_IPCLKPORT_I_CLK 0x2020 |
| 1953 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_LHS_AXI_D1_DPU_IPCLKPORT_I_CLK 0x2024 |
| 1954 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_LHS_AXI_D2_DPU_IPCLKPORT_I_CLK 0x2028 |
| 1955 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD0_IPCLKPORT_ACLK 0x202c |
| 1956 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD0_IPCLKPORT_PCLK 0x2030 |
| 1957 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD1_IPCLKPORT_ACLK 0x2034 |
| 1958 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD1_IPCLKPORT_PCLK 0x2038 |
| 1959 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD2_IPCLKPORT_ACLK 0x203c |
| 1960 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD2_IPCLKPORT_PCLK 0x2040 |
| 1961 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_RSTNSYNC_CLK_DPU_BUSD_IPCLKPORT_CLK 0x2044 |
| 1962 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_RSTNSYNC_CLK_DPU_BUSP_IPCLKPORT_CLK 0x2048 |
| 1963 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU0_IPCLKPORT_ACLK 0x204c |
| 1964 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU0_IPCLKPORT_PCLK 0x2050 |
| 1965 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU1_IPCLKPORT_ACLK 0x2054 |
| 1966 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU1_IPCLKPORT_PCLK 0x2058 |
| 1967 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU2_IPCLKPORT_ACLK 0x205c |
| 1968 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU2_IPCLKPORT_PCLK 0x2060 |
| 1969 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD0_IPCLKPORT_CLK_S1 0x2064 |
| 1970 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD0_IPCLKPORT_CLK_S2 0x2068 |
| 1971 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD1_IPCLKPORT_CLK_S1 0x206c |
| 1972 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD1_IPCLKPORT_CLK_S2 0x2070 |
| 1973 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD2_IPCLKPORT_CLK_S1 0x2074 |
| 1974 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD2_IPCLKPORT_CLK_S2 0x2078 |
| 1975 | +#define CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSREG_DPU_IPCLKPORT_PCLK 0x207c |
| 1976 | +#define PCH_CON_LHM_AXI_P_DPU_PCH 0x3000 |
| 1977 | +#define PCH_CON_LHS_AXI_D0_DPU_PCH 0x3004 |
| 1978 | +#define PCH_CON_LHS_AXI_D1_DPU_PCH 0x3008 |
| 1979 | +#define PCH_CON_LHS_AXI_D2_DPU_PCH 0x300c |
| 1980 | +#define QCH_CON_DPUF_QCH_DPU_DMA 0x3010 |
| 1981 | +#define QCH_CON_DPUF_QCH_DPU_DPP 0x3014 |
| 1982 | +#define QCH_CON_DPU_CMU_DPU_QCH 0x301c |
| 1983 | +#define QCH_CON_D_TZPC_DPU_QCH 0x3020 |
| 1984 | +#define QCH_CON_GPC_DPU_QCH 0x3024 |
| 1985 | +#define QCH_CON_LHM_AXI_P_DPU_QCH 0x3028 |
| 1986 | +#define QCH_CON_LHS_AXI_D0_DPU_QCH 0x302c |
| 1987 | +#define QCH_CON_LHS_AXI_D1_DPU_QCH 0x3030 |
| 1988 | +#define QCH_CON_LHS_AXI_D2_DPU_QCH 0x3034 |
| 1989 | +#define QCH_CON_PPMU_DPUD0_QCH 0x3038 |
| 1990 | +#define QCH_CON_PPMU_DPUD1_QCH 0x303c |
| 1991 | +#define QCH_CON_PPMU_DPUD2_QCH 0x3040 |
| 1992 | +#define QCH_CON_SSMT_DPU0_QCH 0x3044 |
| 1993 | +#define QCH_CON_SSMT_DPU1_QCH 0x3048 |
| 1994 | +#define QCH_CON_SSMT_DPU2_QCH 0x304c |
| 1995 | +#define QCH_CON_SYSMMU_DPUD0_QCH_S1 0x3050 |
| 1996 | +#define QCH_CON_SYSMMU_DPUD0_QCH_S2 0x3054 |
| 1997 | +#define QCH_CON_SYSMMU_DPUD1_QCH_S1 0x3058 |
| 1998 | +#define QCH_CON_SYSMMU_DPUD1_QCH_S2 0x305c |
| 1999 | +#define QCH_CON_SYSMMU_DPUD2_QCH_S1 0x3060 |
| 2000 | +#define QCH_CON_SYSMMU_DPUD2_QCH_S2 0x3064 |
| 2001 | +#define QCH_CON_SYSREG_DPU_QCH 0x3068 |
| 2002 | +#define QUEUE_CTRL_REG_BLK_DPU_CMU_DPU 0x3c00 |
| 2003 | + |
| 2004 | +static const unsigned long dpu_clk_regs[] __initconst = { |
| 2005 | + PLL_CON0_MUX_CLKCMU_DPU_BUS_USER, |
| 2006 | + PLL_CON1_MUX_CLKCMU_DPU_BUS_USER, |
| 2007 | + DPU_CMU_DPU_CONTROLLER_OPTION, |
| 2008 | + CLKOUT_CON_BLK_DPU_CMU_DPU_CLKOUT0, |
| 2009 | + CLK_CON_DIV_DIV_CLK_DPU_BUSP, |
| 2010 | + CLK_CON_GAT_CLK_BLK_DPU_UID_DPU_CMU_DPU_IPCLKPORT_PCLK, |
| 2011 | + CLK_CON_GAT_CLK_BLK_DPU_UID_RSTNSYNC_CLK_DPU_OSCCLK_IPCLKPORT_CLK, |
| 2012 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_AD_APB_DPU_DMA_IPCLKPORT_PCLKM, |
| 2013 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_DPUF_IPCLKPORT_ACLK_DMA, |
| 2014 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_DPUF_IPCLKPORT_ACLK_DPP, |
| 2015 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_D_TZPC_DPU_IPCLKPORT_PCLK, |
| 2016 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_GPC_DPU_IPCLKPORT_PCLK, |
| 2017 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_LHM_AXI_P_DPU_IPCLKPORT_I_CLK, |
| 2018 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_LHS_AXI_D0_DPU_IPCLKPORT_I_CLK, |
| 2019 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_LHS_AXI_D1_DPU_IPCLKPORT_I_CLK, |
| 2020 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_LHS_AXI_D2_DPU_IPCLKPORT_I_CLK, |
| 2021 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD0_IPCLKPORT_ACLK, |
| 2022 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD0_IPCLKPORT_PCLK, |
| 2023 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD1_IPCLKPORT_ACLK, |
| 2024 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD1_IPCLKPORT_PCLK, |
| 2025 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD2_IPCLKPORT_ACLK, |
| 2026 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD2_IPCLKPORT_PCLK, |
| 2027 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_RSTNSYNC_CLK_DPU_BUSD_IPCLKPORT_CLK, |
| 2028 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_RSTNSYNC_CLK_DPU_BUSP_IPCLKPORT_CLK, |
| 2029 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU0_IPCLKPORT_ACLK, |
| 2030 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU0_IPCLKPORT_PCLK, |
| 2031 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU1_IPCLKPORT_ACLK, |
| 2032 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU1_IPCLKPORT_PCLK, |
| 2033 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU2_IPCLKPORT_ACLK, |
| 2034 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU2_IPCLKPORT_PCLK, |
| 2035 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD0_IPCLKPORT_CLK_S1, |
| 2036 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD0_IPCLKPORT_CLK_S2, |
| 2037 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD1_IPCLKPORT_CLK_S1, |
| 2038 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD1_IPCLKPORT_CLK_S2, |
| 2039 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD2_IPCLKPORT_CLK_S1, |
| 2040 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD2_IPCLKPORT_CLK_S2, |
| 2041 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSREG_DPU_IPCLKPORT_PCLK, |
| 2042 | + PCH_CON_LHM_AXI_P_DPU_PCH, |
| 2043 | + PCH_CON_LHS_AXI_D0_DPU_PCH, |
| 2044 | + PCH_CON_LHS_AXI_D1_DPU_PCH, |
| 2045 | + PCH_CON_LHS_AXI_D2_DPU_PCH, |
| 2046 | + QCH_CON_DPUF_QCH_DPU_DMA, |
| 2047 | + QCH_CON_DPUF_QCH_DPU_DPP, |
| 2048 | + QCH_CON_DPU_CMU_DPU_QCH, |
| 2049 | + QCH_CON_D_TZPC_DPU_QCH, |
| 2050 | + QCH_CON_GPC_DPU_QCH, |
| 2051 | + QCH_CON_LHM_AXI_P_DPU_QCH, |
| 2052 | + QCH_CON_LHS_AXI_D0_DPU_QCH, |
| 2053 | + QCH_CON_LHS_AXI_D1_DPU_QCH, |
| 2054 | + QCH_CON_LHS_AXI_D2_DPU_QCH, |
| 2055 | + QCH_CON_PPMU_DPUD0_QCH, |
| 2056 | + QCH_CON_PPMU_DPUD1_QCH, |
| 2057 | + QCH_CON_PPMU_DPUD2_QCH, |
| 2058 | + QCH_CON_SSMT_DPU0_QCH, |
| 2059 | + QCH_CON_SSMT_DPU1_QCH, |
| 2060 | + QCH_CON_SSMT_DPU2_QCH, |
| 2061 | + QCH_CON_SYSMMU_DPUD0_QCH_S1, |
| 2062 | + QCH_CON_SYSMMU_DPUD0_QCH_S2, |
| 2063 | + QCH_CON_SYSMMU_DPUD1_QCH_S1, |
| 2064 | + QCH_CON_SYSMMU_DPUD1_QCH_S2, |
| 2065 | + QCH_CON_SYSMMU_DPUD2_QCH_S1, |
| 2066 | + QCH_CON_SYSMMU_DPUD2_QCH_S2, |
| 2067 | + QCH_CON_SYSREG_DPU_QCH, |
| 2068 | + QUEUE_CTRL_REG_BLK_DPU_CMU_DPU, |
| 2069 | +}; |
| 2070 | + |
| 2071 | +/* List of parent clocks for Muxes in CMU_DPU */ |
| 2072 | +PNAME(mout_dpu_bus_user_p) = { "oscclk", "dout_cmu_dpu_bus" }; |
| 2073 | + |
| 2074 | +static const struct samsung_mux_clock dpu_mux_clks[] __initconst = { |
| 2075 | + MUX(CLK_MOUT_DPU_BUS_USER, "mout_dpu_bus_user", |
| 2076 | + mout_dpu_bus_user_p, PLL_CON0_MUX_CLKCMU_DPU_BUS_USER, 4, 1), |
| 2077 | +}; |
| 2078 | + |
| 2079 | +static const struct samsung_div_clock dpu_div_clks[] __initconst = { |
| 2080 | + DIV(CLK_DOUT_DPU_BUSP, "dout_dpu_busp", "mout_dpu_bus_user", |
| 2081 | + CLK_CON_DIV_DIV_CLK_DPU_BUSP, 0, 3), |
| 2082 | +}; |
| 2083 | + |
| 2084 | +static const struct samsung_gate_clock dpu_gate_clks[] __initconst = { |
| 2085 | + GATE(CLK_GOUT_DPU_PCLK, "gout_dpu_dpu_pclk", |
| 2086 | + "dout_dpu_busp", |
| 2087 | + CLK_CON_GAT_CLK_BLK_DPU_UID_DPU_CMU_DPU_IPCLKPORT_PCLK, 21, 0, 0), |
| 2088 | + GATE(CLK_GOUT_DPU_CLK_DPU_OSCCLK_CLK, "gout_dpu_clk_dpu_oscclk_clk", |
| 2089 | + "oscclk", |
| 2090 | + CLK_CON_GAT_CLK_BLK_DPU_UID_RSTNSYNC_CLK_DPU_OSCCLK_IPCLKPORT_CLK, |
| 2091 | + 21, 0, 0), |
| 2092 | + GATE(CLK_GOUT_DPU_AD_APB_DPU_DMA_PCLKM, "gout_dpu_ad_apb_dpu_dma_pclkm", |
| 2093 | + "mout_dpu_bus_user", |
| 2094 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_AD_APB_DPU_DMA_IPCLKPORT_PCLKM, |
| 2095 | + 21, 0, 0), |
| 2096 | + GATE(CLK_GOUT_DPU_DPUF_ACLK_DMA, "gout_dpu_dpuf_aclk_dma", |
| 2097 | + "mout_dpu_bus_user", |
| 2098 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_DPUF_IPCLKPORT_ACLK_DMA, 21, 0, 0), |
| 2099 | + GATE(CLK_GOUT_DPU_DPUF_ACLK_DPP, "gout_dpu_dpuf_aclk_dpp", |
| 2100 | + "mout_dpu_bus_user", |
| 2101 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_DPUF_IPCLKPORT_ACLK_DPP, 21, 0, 0), |
| 2102 | + GATE(CLK_GOUT_DPU_D_TZPC_DPU_PCLK, "gout_dpu_d_tzpc_dpu_pclk", |
| 2103 | + "dout_dpu_busp", |
| 2104 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_D_TZPC_DPU_IPCLKPORT_PCLK, 21, 0, 0), |
| 2105 | + GATE(CLK_GOUT_DPU_GPC_DPU_PCLK, "gout_dpu_gpc_dpu_pclk", |
| 2106 | + "dout_dpu_busp", |
| 2107 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_GPC_DPU_IPCLKPORT_PCLK, 21, 0, 0), |
| 2108 | + GATE(CLK_GOUT_DPU_LHM_AXI_P_DPU_I_CLK, "gout_dpu_lhm_axi_p_dpu_i_clk", |
| 2109 | + "dout_dpu_busp", |
| 2110 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_LHM_AXI_P_DPU_IPCLKPORT_I_CLK, |
| 2111 | + 21, 0, 0), |
| 2112 | + GATE(CLK_GOUT_DPU_LHS_AXI_D0_DPU_I_CLK, "gout_dpu_lhs_axi_d0_dpu_i_clk", |
| 2113 | + "mout_dpu_bus_user", |
| 2114 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_LHS_AXI_D0_DPU_IPCLKPORT_I_CLK, |
| 2115 | + 21, 0, 0), |
| 2116 | + GATE(CLK_GOUT_DPU_LHS_AXI_D1_DPU_I_CLK, "gout_dpu_lhs_axi_d1_dpu_i_clk", |
| 2117 | + "mout_dpu_bus_user", |
| 2118 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_LHS_AXI_D1_DPU_IPCLKPORT_I_CLK, |
| 2119 | + 21, 0, 0), |
| 2120 | + GATE(CLK_GOUT_DPU_LHS_AXI_D2_DPU_I_CLK, "gout_dpu_lhs_axi_d2_dpu_i_clk", |
| 2121 | + "mout_dpu_bus_user", |
| 2122 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_LHS_AXI_D2_DPU_IPCLKPORT_I_CLK, |
| 2123 | + 21, 0, 0), |
| 2124 | + GATE(CLK_GOUT_DPU_PPMU_DPUD0_ACLK, "gout_dpu_ppmu_dpud0_aclk", |
| 2125 | + "mout_dpu_bus_user", |
| 2126 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD0_IPCLKPORT_ACLK, 21, 0, 0), |
| 2127 | + GATE(CLK_GOUT_DPU_PPMU_DPUD0_PCLK, "gout_dpu_ppmu_dpud0_pclk", |
| 2128 | + "dout_dpu_busp", |
| 2129 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD0_IPCLKPORT_PCLK, 21, 0, 0), |
| 2130 | + GATE(CLK_GOUT_DPU_PPMU_DPUD1_ACLK, "gout_dpu_ppmu_dpud1_aclk", |
| 2131 | + "mout_dpu_bus_user", |
| 2132 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD1_IPCLKPORT_ACLK, 21, 0, 0), |
| 2133 | + GATE(CLK_GOUT_DPU_PPMU_DPUD1_PCLK, "gout_dpu_ppmu_dpud1_pclk", |
| 2134 | + "dout_dpu_busp", |
| 2135 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD1_IPCLKPORT_PCLK, 21, 0, 0), |
| 2136 | + GATE(CLK_GOUT_DPU_PPMU_DPUD2_ACLK, "gout_dpu_ppmu_dpud2_aclk", |
| 2137 | + "mout_dpu_bus_user", |
| 2138 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD2_IPCLKPORT_ACLK, 21, 0, 0), |
| 2139 | + GATE(CLK_GOUT_DPU_PPMU_DPUD2_PCLK, "gout_dpu_ppmu_dpud2_pclk", |
| 2140 | + "dout_dpu_busp", |
| 2141 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_PPMU_DPUD2_IPCLKPORT_PCLK, 21, 0, 0), |
| 2142 | + GATE(CLK_GOUT_DPU_CLK_DPU_BUSD_CLK, "gout_dpu_clk_dpu_busd_clk", |
| 2143 | + "mout_dpu_bus_user", |
| 2144 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_RSTNSYNC_CLK_DPU_BUSD_IPCLKPORT_CLK, |
| 2145 | + 21, 0, 0), |
| 2146 | + GATE(CLK_GOUT_DPU_CLK_DPU_BUSP_CLK, "gout_dpu_clk_dpu_busp_clk", |
| 2147 | + "dout_dpu_busp", |
| 2148 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_RSTNSYNC_CLK_DPU_BUSP_IPCLKPORT_CLK, |
| 2149 | + 21, 0, 0), |
| 2150 | + GATE(CLK_GOUT_DPU_SSMT_DPU0_ACLK, "gout_dpu_ssmt_dpu0_aclk", |
| 2151 | + "mout_dpu_bus_user", |
| 2152 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU0_IPCLKPORT_ACLK, 21, 0, 0), |
| 2153 | + GATE(CLK_GOUT_DPU_SSMT_DPU0_PCLK, "gout_dpu_ssmt_dpu0_pclk", |
| 2154 | + "dout_dpu_busp", |
| 2155 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU0_IPCLKPORT_PCLK, 21, 0, 0), |
| 2156 | + GATE(CLK_GOUT_DPU_SSMT_DPU1_ACLK, "gout_dpu_ssmt_dpu1_aclk", |
| 2157 | + "mout_dpu_bus_user", |
| 2158 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU1_IPCLKPORT_ACLK, 21, 0, 0), |
| 2159 | + GATE(CLK_GOUT_DPU_SSMT_DPU1_PCLK, "gout_dpu_ssmt_dpu1_pclk", |
| 2160 | + "dout_dpu_busp", |
| 2161 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU1_IPCLKPORT_PCLK, 21, 0, 0), |
| 2162 | + GATE(CLK_GOUT_DPU_SSMT_DPU2_ACLK, "gout_dpu_ssmt_dpu2_aclk", |
| 2163 | + "mout_dpu_bus_user", |
| 2164 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU2_IPCLKPORT_ACLK, 21, 0, 0), |
| 2165 | + GATE(CLK_GOUT_DPU_SSMT_DPU2_PCLK, "gout_dpu_ssmt_dpu2_pclk", |
| 2166 | + "dout_dpu_busp", |
| 2167 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SSMT_DPU2_IPCLKPORT_PCLK, 21, 0, 0), |
| 2168 | + GATE(CLK_GOUT_DPU_SYSMMU_DPUD0_CLK_S1, "gout_dpu_sysmmu_dpud0_clk_s1", |
| 2169 | + "mout_dpu_bus_user", |
| 2170 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD0_IPCLKPORT_CLK_S1, |
| 2171 | + 21, 0, 0), |
| 2172 | + GATE(CLK_GOUT_DPU_SYSMMU_DPUD0_CLK_S2, "gout_dpu_sysmmu_dpud0_clk_s2", |
| 2173 | + "mout_dpu_bus_user", |
| 2174 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD0_IPCLKPORT_CLK_S2, |
| 2175 | + 21, 0, 0), |
| 2176 | + GATE(CLK_GOUT_DPU_SYSMMU_DPUD1_CLK_S1, "gout_dpu_sysmmu_dpud1_clk_s1", |
| 2177 | + "mout_dpu_bus_user", |
| 2178 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD1_IPCLKPORT_CLK_S1, |
| 2179 | + 21, 0, 0), |
| 2180 | + GATE(CLK_GOUT_DPU_SYSMMU_DPUD1_CLK_S2, "gout_dpu_sysmmu_dpud1_clk_s2", |
| 2181 | + "mout_dpu_bus_user", |
| 2182 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD1_IPCLKPORT_CLK_S2, |
| 2183 | + 21, 0, 0), |
| 2184 | + GATE(CLK_GOUT_DPU_SYSMMU_DPUD2_CLK_S1, "gout_dpu_sysmmu_dpud2_clk_s1", |
| 2185 | + "mout_dpu_bus_user", |
| 2186 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD2_IPCLKPORT_CLK_S1, |
| 2187 | + 21, 0, 0), |
| 2188 | + GATE(CLK_GOUT_DPU_SYSMMU_DPUD2_CLK_S2, "gout_dpu_sysmmu_dpud2_clk_s2", |
| 2189 | + "mout_dpu_bus_user", |
| 2190 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSMMU_DPUD2_IPCLKPORT_CLK_S2, 21, 0, 0), |
| 2191 | + GATE(CLK_GOUT_DPU_SYSREG_DPU_PCLK, "gout_dpu_sysreg_dpu_pclk", |
| 2192 | + "dout_dpu_busp", |
| 2193 | + CLK_CON_GAT_GOUT_BLK_DPU_UID_SYSREG_DPU_IPCLKPORT_PCLK, 21, 0, 0), |
| 2194 | +}; |
| 2195 | + |
| 2196 | +static const struct samsung_cmu_info dpu_cmu_info __initconst = { |
| 2197 | + .mux_clks = dpu_mux_clks, |
| 2198 | + .nr_mux_clks = ARRAY_SIZE(dpu_mux_clks), |
| 2199 | + .div_clks = dpu_div_clks, |
| 2200 | + .nr_div_clks = ARRAY_SIZE(dpu_div_clks), |
| 2201 | + .gate_clks = dpu_gate_clks, |
| 2202 | + .nr_gate_clks = ARRAY_SIZE(dpu_gate_clks), |
| 2203 | + .nr_clk_ids = CLKS_NR_DPU, |
| 2204 | + .clk_regs = dpu_clk_regs, |
| 2205 | + .nr_clk_regs = ARRAY_SIZE(dpu_clk_regs), |
| 2206 | + .sysreg_clk_regs = dcrg_memclk_sysreg, |
| 2207 | + .nr_sysreg_clk_regs = ARRAY_SIZE(dcrg_memclk_sysreg), |
| 2208 | + .clk_name = "bus", |
| 2209 | + .auto_clock_gate = true, |
| 2210 | + .gate_dbg_offset = GS101_GATE_DBG_OFFSET, |
| 2211 | + .option_offset = DPU_CMU_DPU_CONTROLLER_OPTION, |
| 2212 | + .drcg_offset = GS101_DRCG_EN_OFFSET, |
| 2213 | +}; |
| 2214 | + |
1935 | 2215 | /* ---- CMU_HSI0 ------------------------------------------------------------ */ |
1936 | 2216 |
|
1937 | 2217 | /* Register Offset definitions for CMU_HSI0 (0x11000000) */ |
@@ -4443,6 +4723,9 @@ static const struct of_device_id gs101_cmu_of_match[] = { |
4443 | 4723 | { |
4444 | 4724 | .compatible = "google,gs101-cmu-apm", |
4445 | 4725 | .data = &apm_cmu_info, |
| 4726 | + }, { |
| 4727 | + .compatible = "google,gs101-cmu-dpu", |
| 4728 | + .data = &dpu_cmu_info, |
4446 | 4729 | }, { |
4447 | 4730 | .compatible = "google,gs101-cmu-hsi0", |
4448 | 4731 | .data = &hsi0_cmu_info, |
|
0 commit comments