162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2021 Rockchip Electronics Co. Ltd. 462306a36Sopenharmony_ci * Author: Elaine Zhang <zhangqing@rock-chips.com> 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include <linux/clk-provider.h> 862306a36Sopenharmony_ci#include <linux/module.h> 962306a36Sopenharmony_ci#include <linux/of.h> 1062306a36Sopenharmony_ci#include <linux/of_address.h> 1162306a36Sopenharmony_ci#include <linux/platform_device.h> 1262306a36Sopenharmony_ci#include <linux/syscore_ops.h> 1362306a36Sopenharmony_ci#include <dt-bindings/clock/rk3568-cru.h> 1462306a36Sopenharmony_ci#include "clk.h" 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#define RK3568_GRF_SOC_STATUS0 0x580 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_cienum rk3568_pmu_plls { 1962306a36Sopenharmony_ci ppll, hpll, 2062306a36Sopenharmony_ci}; 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_cienum rk3568_plls { 2362306a36Sopenharmony_ci apll, dpll, gpll, cpll, npll, vpll, 2462306a36Sopenharmony_ci}; 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_cistatic struct rockchip_pll_rate_table rk3568_pll_rates[] = { 2762306a36Sopenharmony_ci /* _mhz, _refdiv, _fbdiv, _postdiv1, _postdiv2, _dsmpd, _frac */ 2862306a36Sopenharmony_ci RK3036_PLL_RATE(2208000000, 1, 92, 1, 1, 1, 0), 2962306a36Sopenharmony_ci RK3036_PLL_RATE(2184000000, 1, 91, 1, 1, 1, 0), 3062306a36Sopenharmony_ci RK3036_PLL_RATE(2160000000, 1, 90, 1, 1, 1, 0), 3162306a36Sopenharmony_ci RK3036_PLL_RATE(2088000000, 1, 87, 1, 1, 1, 0), 3262306a36Sopenharmony_ci RK3036_PLL_RATE(2064000000, 1, 86, 1, 1, 1, 0), 3362306a36Sopenharmony_ci RK3036_PLL_RATE(2040000000, 1, 85, 1, 1, 1, 0), 3462306a36Sopenharmony_ci RK3036_PLL_RATE(2016000000, 1, 84, 1, 1, 1, 0), 3562306a36Sopenharmony_ci RK3036_PLL_RATE(1992000000, 1, 83, 1, 1, 1, 0), 3662306a36Sopenharmony_ci RK3036_PLL_RATE(1920000000, 1, 80, 1, 1, 1, 0), 3762306a36Sopenharmony_ci RK3036_PLL_RATE(1896000000, 1, 79, 1, 1, 1, 0), 3862306a36Sopenharmony_ci RK3036_PLL_RATE(1800000000, 1, 75, 1, 1, 1, 0), 3962306a36Sopenharmony_ci RK3036_PLL_RATE(1704000000, 1, 71, 1, 1, 1, 0), 4062306a36Sopenharmony_ci RK3036_PLL_RATE(1608000000, 1, 67, 1, 1, 1, 0), 4162306a36Sopenharmony_ci RK3036_PLL_RATE(1600000000, 3, 200, 1, 1, 1, 0), 4262306a36Sopenharmony_ci RK3036_PLL_RATE(1584000000, 1, 132, 2, 1, 1, 0), 4362306a36Sopenharmony_ci RK3036_PLL_RATE(1560000000, 1, 130, 2, 1, 1, 0), 4462306a36Sopenharmony_ci RK3036_PLL_RATE(1536000000, 1, 128, 2, 1, 1, 0), 4562306a36Sopenharmony_ci RK3036_PLL_RATE(1512000000, 1, 126, 2, 1, 1, 0), 4662306a36Sopenharmony_ci RK3036_PLL_RATE(1488000000, 1, 124, 2, 1, 1, 0), 4762306a36Sopenharmony_ci RK3036_PLL_RATE(1464000000, 1, 122, 2, 1, 1, 0), 4862306a36Sopenharmony_ci RK3036_PLL_RATE(1440000000, 1, 120, 2, 1, 1, 0), 4962306a36Sopenharmony_ci RK3036_PLL_RATE(1416000000, 1, 118, 2, 1, 1, 0), 5062306a36Sopenharmony_ci RK3036_PLL_RATE(1400000000, 3, 350, 2, 1, 1, 0), 5162306a36Sopenharmony_ci RK3036_PLL_RATE(1392000000, 1, 116, 2, 1, 1, 0), 5262306a36Sopenharmony_ci RK3036_PLL_RATE(1368000000, 1, 114, 2, 1, 1, 0), 5362306a36Sopenharmony_ci RK3036_PLL_RATE(1344000000, 1, 112, 2, 1, 1, 0), 5462306a36Sopenharmony_ci RK3036_PLL_RATE(1320000000, 1, 110, 2, 1, 1, 0), 5562306a36Sopenharmony_ci RK3036_PLL_RATE(1296000000, 1, 108, 2, 1, 1, 0), 5662306a36Sopenharmony_ci RK3036_PLL_RATE(1272000000, 1, 106, 2, 1, 1, 0), 5762306a36Sopenharmony_ci RK3036_PLL_RATE(1248000000, 1, 104, 2, 1, 1, 0), 5862306a36Sopenharmony_ci RK3036_PLL_RATE(1200000000, 1, 100, 2, 1, 1, 0), 5962306a36Sopenharmony_ci RK3036_PLL_RATE(1188000000, 1, 99, 2, 1, 1, 0), 6062306a36Sopenharmony_ci RK3036_PLL_RATE(1104000000, 1, 92, 2, 1, 1, 0), 6162306a36Sopenharmony_ci RK3036_PLL_RATE(1100000000, 3, 275, 2, 1, 1, 0), 6262306a36Sopenharmony_ci RK3036_PLL_RATE(1008000000, 1, 84, 2, 1, 1, 0), 6362306a36Sopenharmony_ci RK3036_PLL_RATE(1000000000, 3, 250, 2, 1, 1, 0), 6462306a36Sopenharmony_ci RK3036_PLL_RATE(912000000, 1, 76, 2, 1, 1, 0), 6562306a36Sopenharmony_ci RK3036_PLL_RATE(816000000, 1, 68, 2, 1, 1, 0), 6662306a36Sopenharmony_ci RK3036_PLL_RATE(800000000, 3, 200, 2, 1, 1, 0), 6762306a36Sopenharmony_ci RK3036_PLL_RATE(700000000, 3, 350, 4, 1, 1, 0), 6862306a36Sopenharmony_ci RK3036_PLL_RATE(696000000, 1, 116, 4, 1, 1, 0), 6962306a36Sopenharmony_ci RK3036_PLL_RATE(600000000, 1, 100, 4, 1, 1, 0), 7062306a36Sopenharmony_ci RK3036_PLL_RATE(594000000, 1, 99, 4, 1, 1, 0), 7162306a36Sopenharmony_ci RK3036_PLL_RATE(500000000, 1, 125, 6, 1, 1, 0), 7262306a36Sopenharmony_ci RK3036_PLL_RATE(408000000, 1, 68, 2, 2, 1, 0), 7362306a36Sopenharmony_ci RK3036_PLL_RATE(312000000, 1, 78, 6, 1, 1, 0), 7462306a36Sopenharmony_ci RK3036_PLL_RATE(297000000, 2, 99, 4, 1, 1, 0), 7562306a36Sopenharmony_ci RK3036_PLL_RATE(292500000, 1, 195, 4, 4, 1, 0), 7662306a36Sopenharmony_ci RK3036_PLL_RATE(241500000, 2, 161, 4, 2, 1, 0), 7762306a36Sopenharmony_ci RK3036_PLL_RATE(216000000, 1, 72, 4, 2, 1, 0), 7862306a36Sopenharmony_ci RK3036_PLL_RATE(200000000, 1, 100, 3, 4, 1, 0), 7962306a36Sopenharmony_ci RK3036_PLL_RATE(148500000, 1, 99, 4, 4, 1, 0), 8062306a36Sopenharmony_ci RK3036_PLL_RATE(135000000, 2, 45, 4, 1, 1, 0), 8162306a36Sopenharmony_ci RK3036_PLL_RATE(119000000, 3, 119, 4, 2, 1, 0), 8262306a36Sopenharmony_ci RK3036_PLL_RATE(108000000, 2, 45, 5, 1, 1, 0), 8362306a36Sopenharmony_ci RK3036_PLL_RATE(101000000, 1, 101, 6, 4, 1, 0), 8462306a36Sopenharmony_ci RK3036_PLL_RATE(100000000, 1, 150, 6, 6, 1, 0), 8562306a36Sopenharmony_ci RK3036_PLL_RATE(96000000, 1, 96, 6, 4, 1, 0), 8662306a36Sopenharmony_ci RK3036_PLL_RATE(78750000, 4, 315, 6, 4, 1, 0), 8762306a36Sopenharmony_ci RK3036_PLL_RATE(74250000, 2, 99, 4, 4, 1, 0), 8862306a36Sopenharmony_ci { /* sentinel */ }, 8962306a36Sopenharmony_ci}; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci#define RK3568_DIV_ATCLK_CORE_MASK 0x1f 9262306a36Sopenharmony_ci#define RK3568_DIV_ATCLK_CORE_SHIFT 0 9362306a36Sopenharmony_ci#define RK3568_DIV_GICCLK_CORE_MASK 0x1f 9462306a36Sopenharmony_ci#define RK3568_DIV_GICCLK_CORE_SHIFT 8 9562306a36Sopenharmony_ci#define RK3568_DIV_PCLK_CORE_MASK 0x1f 9662306a36Sopenharmony_ci#define RK3568_DIV_PCLK_CORE_SHIFT 0 9762306a36Sopenharmony_ci#define RK3568_DIV_PERIPHCLK_CORE_MASK 0x1f 9862306a36Sopenharmony_ci#define RK3568_DIV_PERIPHCLK_CORE_SHIFT 8 9962306a36Sopenharmony_ci#define RK3568_DIV_ACLK_CORE_MASK 0x1f 10062306a36Sopenharmony_ci#define RK3568_DIV_ACLK_CORE_SHIFT 8 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci#define RK3568_DIV_SCLK_CORE_MASK 0xf 10362306a36Sopenharmony_ci#define RK3568_DIV_SCLK_CORE_SHIFT 0 10462306a36Sopenharmony_ci#define RK3568_MUX_SCLK_CORE_MASK 0x3 10562306a36Sopenharmony_ci#define RK3568_MUX_SCLK_CORE_SHIFT 8 10662306a36Sopenharmony_ci#define RK3568_MUX_SCLK_CORE_NPLL_MASK 0x1 10762306a36Sopenharmony_ci#define RK3568_MUX_SCLK_CORE_NPLL_SHIFT 15 10862306a36Sopenharmony_ci#define RK3568_MUX_CLK_CORE_APLL_MASK 0x1 10962306a36Sopenharmony_ci#define RK3568_MUX_CLK_CORE_APLL_SHIFT 7 11062306a36Sopenharmony_ci#define RK3568_MUX_CLK_PVTPLL_MASK 0x1 11162306a36Sopenharmony_ci#define RK3568_MUX_CLK_PVTPLL_SHIFT 15 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci#define RK3568_CLKSEL1(_sclk_core) \ 11462306a36Sopenharmony_ci{ \ 11562306a36Sopenharmony_ci .reg = RK3568_CLKSEL_CON(2), \ 11662306a36Sopenharmony_ci .val = HIWORD_UPDATE(_sclk_core, RK3568_MUX_SCLK_CORE_NPLL_MASK, \ 11762306a36Sopenharmony_ci RK3568_MUX_SCLK_CORE_NPLL_SHIFT) | \ 11862306a36Sopenharmony_ci HIWORD_UPDATE(_sclk_core, RK3568_MUX_SCLK_CORE_MASK, \ 11962306a36Sopenharmony_ci RK3568_MUX_SCLK_CORE_SHIFT) | \ 12062306a36Sopenharmony_ci HIWORD_UPDATE(1, RK3568_DIV_SCLK_CORE_MASK, \ 12162306a36Sopenharmony_ci RK3568_DIV_SCLK_CORE_SHIFT), \ 12262306a36Sopenharmony_ci} 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci#define RK3568_CLKSEL2(_aclk_core) \ 12562306a36Sopenharmony_ci{ \ 12662306a36Sopenharmony_ci .reg = RK3568_CLKSEL_CON(5), \ 12762306a36Sopenharmony_ci .val = HIWORD_UPDATE(_aclk_core, RK3568_DIV_ACLK_CORE_MASK, \ 12862306a36Sopenharmony_ci RK3568_DIV_ACLK_CORE_SHIFT), \ 12962306a36Sopenharmony_ci} 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci#define RK3568_CLKSEL3(_atclk_core, _gic_core) \ 13262306a36Sopenharmony_ci{ \ 13362306a36Sopenharmony_ci .reg = RK3568_CLKSEL_CON(3), \ 13462306a36Sopenharmony_ci .val = HIWORD_UPDATE(_atclk_core, RK3568_DIV_ATCLK_CORE_MASK, \ 13562306a36Sopenharmony_ci RK3568_DIV_ATCLK_CORE_SHIFT) | \ 13662306a36Sopenharmony_ci HIWORD_UPDATE(_gic_core, RK3568_DIV_GICCLK_CORE_MASK, \ 13762306a36Sopenharmony_ci RK3568_DIV_GICCLK_CORE_SHIFT), \ 13862306a36Sopenharmony_ci} 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ci#define RK3568_CLKSEL4(_pclk_core, _periph_core) \ 14162306a36Sopenharmony_ci{ \ 14262306a36Sopenharmony_ci .reg = RK3568_CLKSEL_CON(4), \ 14362306a36Sopenharmony_ci .val = HIWORD_UPDATE(_pclk_core, RK3568_DIV_PCLK_CORE_MASK, \ 14462306a36Sopenharmony_ci RK3568_DIV_PCLK_CORE_SHIFT) | \ 14562306a36Sopenharmony_ci HIWORD_UPDATE(_periph_core, RK3568_DIV_PERIPHCLK_CORE_MASK, \ 14662306a36Sopenharmony_ci RK3568_DIV_PERIPHCLK_CORE_SHIFT), \ 14762306a36Sopenharmony_ci} 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci#define RK3568_CPUCLK_RATE(_prate, _sclk, _acore, _atcore, _gicclk, _pclk, _periph) \ 15062306a36Sopenharmony_ci{ \ 15162306a36Sopenharmony_ci .prate = _prate##U, \ 15262306a36Sopenharmony_ci .divs = { \ 15362306a36Sopenharmony_ci RK3568_CLKSEL1(_sclk), \ 15462306a36Sopenharmony_ci RK3568_CLKSEL2(_acore), \ 15562306a36Sopenharmony_ci RK3568_CLKSEL3(_atcore, _gicclk), \ 15662306a36Sopenharmony_ci RK3568_CLKSEL4(_pclk, _periph), \ 15762306a36Sopenharmony_ci }, \ 15862306a36Sopenharmony_ci} 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_cistatic struct rockchip_cpuclk_rate_table rk3568_cpuclk_rates[] __initdata = { 16162306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1800000000, 0, 1, 7, 7, 7, 7), 16262306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1704000000, 0, 1, 7, 7, 7, 7), 16362306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1608000000, 0, 1, 5, 5, 5, 5), 16462306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1584000000, 0, 1, 5, 5, 5, 5), 16562306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1560000000, 0, 1, 5, 5, 5, 5), 16662306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1536000000, 0, 1, 5, 5, 5, 5), 16762306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1512000000, 0, 1, 5, 5, 5, 5), 16862306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1488000000, 0, 1, 5, 5, 5, 5), 16962306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1464000000, 0, 1, 5, 5, 5, 5), 17062306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1440000000, 0, 1, 5, 5, 5, 5), 17162306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1416000000, 0, 1, 5, 5, 5, 5), 17262306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1392000000, 0, 1, 5, 5, 5, 5), 17362306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1368000000, 0, 1, 5, 5, 5, 5), 17462306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1344000000, 0, 1, 5, 5, 5, 5), 17562306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1320000000, 0, 1, 5, 5, 5, 5), 17662306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1296000000, 0, 1, 5, 5, 5, 5), 17762306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1272000000, 0, 1, 5, 5, 5, 5), 17862306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1248000000, 0, 1, 5, 5, 5, 5), 17962306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1224000000, 0, 1, 5, 5, 5, 5), 18062306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1200000000, 0, 1, 3, 3, 3, 3), 18162306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1104000000, 0, 1, 3, 3, 3, 3), 18262306a36Sopenharmony_ci RK3568_CPUCLK_RATE(1008000000, 0, 1, 3, 3, 3, 3), 18362306a36Sopenharmony_ci RK3568_CPUCLK_RATE(912000000, 0, 1, 3, 3, 3, 3), 18462306a36Sopenharmony_ci RK3568_CPUCLK_RATE(816000000, 0, 1, 3, 3, 3, 3), 18562306a36Sopenharmony_ci RK3568_CPUCLK_RATE(696000000, 0, 1, 3, 3, 3, 3), 18662306a36Sopenharmony_ci RK3568_CPUCLK_RATE(600000000, 0, 1, 3, 3, 3, 3), 18762306a36Sopenharmony_ci RK3568_CPUCLK_RATE(408000000, 0, 1, 3, 3, 3, 3), 18862306a36Sopenharmony_ci RK3568_CPUCLK_RATE(312000000, 0, 1, 3, 3, 3, 3), 18962306a36Sopenharmony_ci RK3568_CPUCLK_RATE(216000000, 0, 1, 3, 3, 3, 3), 19062306a36Sopenharmony_ci RK3568_CPUCLK_RATE(96000000, 0, 1, 3, 3, 3, 3), 19162306a36Sopenharmony_ci}; 19262306a36Sopenharmony_ci 19362306a36Sopenharmony_cistatic const struct rockchip_cpuclk_reg_data rk3568_cpuclk_data = { 19462306a36Sopenharmony_ci .core_reg[0] = RK3568_CLKSEL_CON(0), 19562306a36Sopenharmony_ci .div_core_shift[0] = 0, 19662306a36Sopenharmony_ci .div_core_mask[0] = 0x1f, 19762306a36Sopenharmony_ci .core_reg[1] = RK3568_CLKSEL_CON(0), 19862306a36Sopenharmony_ci .div_core_shift[1] = 8, 19962306a36Sopenharmony_ci .div_core_mask[1] = 0x1f, 20062306a36Sopenharmony_ci .core_reg[2] = RK3568_CLKSEL_CON(1), 20162306a36Sopenharmony_ci .div_core_shift[2] = 0, 20262306a36Sopenharmony_ci .div_core_mask[2] = 0x1f, 20362306a36Sopenharmony_ci .core_reg[3] = RK3568_CLKSEL_CON(1), 20462306a36Sopenharmony_ci .div_core_shift[3] = 8, 20562306a36Sopenharmony_ci .div_core_mask[3] = 0x1f, 20662306a36Sopenharmony_ci .num_cores = 4, 20762306a36Sopenharmony_ci .mux_core_alt = 1, 20862306a36Sopenharmony_ci .mux_core_main = 0, 20962306a36Sopenharmony_ci .mux_core_shift = 6, 21062306a36Sopenharmony_ci .mux_core_mask = 0x1, 21162306a36Sopenharmony_ci}; 21262306a36Sopenharmony_ci 21362306a36Sopenharmony_ciPNAME(mux_pll_p) = { "xin24m" }; 21462306a36Sopenharmony_ciPNAME(mux_usb480m_p) = { "xin24m", "usb480m_phy", "clk_rtc_32k" }; 21562306a36Sopenharmony_ciPNAME(mux_armclk_p) = { "apll", "gpll" }; 21662306a36Sopenharmony_ciPNAME(clk_i2s0_8ch_tx_p) = { "clk_i2s0_8ch_tx_src", "clk_i2s0_8ch_tx_frac", "i2s0_mclkin", "xin_osc0_half" }; 21762306a36Sopenharmony_ciPNAME(clk_i2s0_8ch_rx_p) = { "clk_i2s0_8ch_rx_src", "clk_i2s0_8ch_rx_frac", "i2s0_mclkin", "xin_osc0_half" }; 21862306a36Sopenharmony_ciPNAME(clk_i2s1_8ch_tx_p) = { "clk_i2s1_8ch_tx_src", "clk_i2s1_8ch_tx_frac", "i2s1_mclkin", "xin_osc0_half" }; 21962306a36Sopenharmony_ciPNAME(clk_i2s1_8ch_rx_p) = { "clk_i2s1_8ch_rx_src", "clk_i2s1_8ch_rx_frac", "i2s1_mclkin", "xin_osc0_half" }; 22062306a36Sopenharmony_ciPNAME(clk_i2s2_2ch_p) = { "clk_i2s2_2ch_src", "clk_i2s2_2ch_frac", "i2s2_mclkin", "xin_osc0_half "}; 22162306a36Sopenharmony_ciPNAME(clk_i2s3_2ch_tx_p) = { "clk_i2s3_2ch_tx_src", "clk_i2s3_2ch_tx_frac", "i2s3_mclkin", "xin_osc0_half" }; 22262306a36Sopenharmony_ciPNAME(clk_i2s3_2ch_rx_p) = { "clk_i2s3_2ch_rx_src", "clk_i2s3_2ch_rx_frac", "i2s3_mclkin", "xin_osc0_half" }; 22362306a36Sopenharmony_ciPNAME(mclk_spdif_8ch_p) = { "mclk_spdif_8ch_src", "mclk_spdif_8ch_frac" }; 22462306a36Sopenharmony_ciPNAME(sclk_audpwm_p) = { "sclk_audpwm_src", "sclk_audpwm_frac" }; 22562306a36Sopenharmony_ciPNAME(sclk_uart1_p) = { "clk_uart1_src", "clk_uart1_frac", "xin24m" }; 22662306a36Sopenharmony_ciPNAME(sclk_uart2_p) = { "clk_uart2_src", "clk_uart2_frac", "xin24m" }; 22762306a36Sopenharmony_ciPNAME(sclk_uart3_p) = { "clk_uart3_src", "clk_uart3_frac", "xin24m" }; 22862306a36Sopenharmony_ciPNAME(sclk_uart4_p) = { "clk_uart4_src", "clk_uart4_frac", "xin24m" }; 22962306a36Sopenharmony_ciPNAME(sclk_uart5_p) = { "clk_uart5_src", "clk_uart5_frac", "xin24m" }; 23062306a36Sopenharmony_ciPNAME(sclk_uart6_p) = { "clk_uart6_src", "clk_uart6_frac", "xin24m" }; 23162306a36Sopenharmony_ciPNAME(sclk_uart7_p) = { "clk_uart7_src", "clk_uart7_frac", "xin24m" }; 23262306a36Sopenharmony_ciPNAME(sclk_uart8_p) = { "clk_uart8_src", "clk_uart8_frac", "xin24m" }; 23362306a36Sopenharmony_ciPNAME(sclk_uart9_p) = { "clk_uart9_src", "clk_uart9_frac", "xin24m" }; 23462306a36Sopenharmony_ciPNAME(sclk_uart0_p) = { "sclk_uart0_div", "sclk_uart0_frac", "xin24m" }; 23562306a36Sopenharmony_ciPNAME(clk_rtc32k_pmu_p) = { "clk_32k_pvtm", "xin32k", "clk_rtc32k_frac" }; 23662306a36Sopenharmony_ciPNAME(mpll_gpll_cpll_npll_p) = { "mpll", "gpll", "cpll", "npll" }; 23762306a36Sopenharmony_ciPNAME(gpll_cpll_npll_p) = { "gpll", "cpll", "npll" }; 23862306a36Sopenharmony_ciPNAME(npll_gpll_p) = { "npll", "gpll" }; 23962306a36Sopenharmony_ciPNAME(cpll_gpll_p) = { "cpll", "gpll" }; 24062306a36Sopenharmony_ciPNAME(gpll_cpll_p) = { "gpll", "cpll" }; 24162306a36Sopenharmony_ciPNAME(gpll_cpll_npll_vpll_p) = { "gpll", "cpll", "npll", "vpll" }; 24262306a36Sopenharmony_ciPNAME(apll_gpll_npll_p) = { "apll", "gpll", "npll" }; 24362306a36Sopenharmony_ciPNAME(sclk_core_pre_p) = { "sclk_core_src", "npll" }; 24462306a36Sopenharmony_ciPNAME(gpll150_gpll100_gpll75_xin24m_p) = { "gpll_150m", "gpll_100m", "gpll_75m", "xin24m" }; 24562306a36Sopenharmony_ciPNAME(clk_gpu_pre_mux_p) = { "clk_gpu_src", "gpu_pvtpll_out" }; 24662306a36Sopenharmony_ciPNAME(clk_npu_pre_ndft_p) = { "clk_npu_src", "dummy"}; 24762306a36Sopenharmony_ciPNAME(clk_npu_p) = { "clk_npu_pre_ndft", "npu_pvtpll_out" }; 24862306a36Sopenharmony_ciPNAME(dpll_gpll_cpll_p) = { "dpll", "gpll", "cpll" }; 24962306a36Sopenharmony_ciPNAME(clk_ddr1x_p) = { "clk_ddrphy1x_src", "dpll" }; 25062306a36Sopenharmony_ciPNAME(gpll200_gpll150_gpll100_xin24m_p) = { "gpll_200m", "gpll_150m", "gpll_100m", "xin24m" }; 25162306a36Sopenharmony_ciPNAME(gpll100_gpll75_gpll50_p) = { "gpll_100m", "gpll_75m", "cpll_50m" }; 25262306a36Sopenharmony_ciPNAME(i2s0_mclkout_tx_p) = { "clk_i2s0_8ch_tx", "xin_osc0_half" }; 25362306a36Sopenharmony_ciPNAME(i2s0_mclkout_rx_p) = { "clk_i2s0_8ch_rx", "xin_osc0_half" }; 25462306a36Sopenharmony_ciPNAME(i2s1_mclkout_tx_p) = { "clk_i2s1_8ch_tx", "xin_osc0_half" }; 25562306a36Sopenharmony_ciPNAME(i2s1_mclkout_rx_p) = { "clk_i2s1_8ch_rx", "xin_osc0_half" }; 25662306a36Sopenharmony_ciPNAME(i2s2_mclkout_p) = { "clk_i2s2_2ch", "xin_osc0_half" }; 25762306a36Sopenharmony_ciPNAME(i2s3_mclkout_tx_p) = { "clk_i2s3_2ch_tx", "xin_osc0_half" }; 25862306a36Sopenharmony_ciPNAME(i2s3_mclkout_rx_p) = { "clk_i2s3_2ch_rx", "xin_osc0_half" }; 25962306a36Sopenharmony_ciPNAME(mclk_pdm_p) = { "gpll_300m", "cpll_250m", "gpll_200m", "gpll_100m" }; 26062306a36Sopenharmony_ciPNAME(clk_i2c_p) = { "gpll_200m", "gpll_100m", "xin24m", "cpll_100m" }; 26162306a36Sopenharmony_ciPNAME(gpll200_gpll150_gpll100_p) = { "gpll_200m", "gpll_150m", "gpll_100m" }; 26262306a36Sopenharmony_ciPNAME(gpll300_gpll200_gpll100_p) = { "gpll_300m", "gpll_200m", "gpll_100m" }; 26362306a36Sopenharmony_ciPNAME(clk_nandc_p) = { "gpll_200m", "gpll_150m", "cpll_100m", "xin24m" }; 26462306a36Sopenharmony_ciPNAME(sclk_sfc_p) = { "xin24m", "cpll_50m", "gpll_75m", "gpll_100m", "cpll_125m", "gpll_150m" }; 26562306a36Sopenharmony_ciPNAME(gpll200_gpll150_cpll125_p) = { "gpll_200m", "gpll_150m", "cpll_125m" }; 26662306a36Sopenharmony_ciPNAME(cclk_emmc_p) = { "xin24m", "gpll_200m", "gpll_150m", "cpll_100m", "cpll_50m", "clk_osc0_div_375k" }; 26762306a36Sopenharmony_ciPNAME(aclk_pipe_p) = { "gpll_400m", "gpll_300m", "gpll_200m", "xin24m" }; 26862306a36Sopenharmony_ciPNAME(gpll200_cpll125_p) = { "gpll_200m", "cpll_125m" }; 26962306a36Sopenharmony_ciPNAME(gpll300_gpll200_gpll100_xin24m_p) = { "gpll_300m", "gpll_200m", "gpll_100m", "xin24m" }; 27062306a36Sopenharmony_ciPNAME(clk_sdmmc_p) = { "xin24m", "gpll_400m", "gpll_300m", "cpll_100m", "cpll_50m", "clk_osc0_div_750k" }; 27162306a36Sopenharmony_ciPNAME(cpll125_cpll50_cpll25_xin24m_p) = { "cpll_125m", "cpll_50m", "cpll_25m", "xin24m" }; 27262306a36Sopenharmony_ciPNAME(clk_gmac_ptp_p) = { "cpll_62p5", "gpll_100m", "cpll_50m", "xin24m" }; 27362306a36Sopenharmony_ciPNAME(cpll333_gpll300_gpll200_p) = { "cpll_333m", "gpll_300m", "gpll_200m" }; 27462306a36Sopenharmony_ciPNAME(cpll_gpll_hpll_p) = { "cpll", "gpll", "hpll" }; 27562306a36Sopenharmony_ciPNAME(gpll_usb480m_xin24m_p) = { "gpll", "usb480m", "xin24m", "xin24m" }; 27662306a36Sopenharmony_ciPNAME(gpll300_cpll250_gpll100_xin24m_p) = { "gpll_300m", "cpll_250m", "gpll_100m", "xin24m" }; 27762306a36Sopenharmony_ciPNAME(cpll_gpll_hpll_vpll_p) = { "cpll", "gpll", "hpll", "vpll" }; 27862306a36Sopenharmony_ciPNAME(hpll_vpll_gpll_cpll_p) = { "hpll", "vpll", "gpll", "cpll" }; 27962306a36Sopenharmony_ciPNAME(gpll400_cpll333_gpll200_p) = { "gpll_400m", "cpll_333m", "gpll_200m" }; 28062306a36Sopenharmony_ciPNAME(gpll100_gpll75_cpll50_xin24m_p) = { "gpll_100m", "gpll_75m", "cpll_50m", "xin24m" }; 28162306a36Sopenharmony_ciPNAME(xin24m_gpll100_cpll100_p) = { "xin24m", "gpll_100m", "cpll_100m" }; 28262306a36Sopenharmony_ciPNAME(gpll_cpll_usb480m_p) = { "gpll", "cpll", "usb480m" }; 28362306a36Sopenharmony_ciPNAME(gpll100_xin24m_cpll100_p) = { "gpll_100m", "xin24m", "cpll_100m" }; 28462306a36Sopenharmony_ciPNAME(gpll200_xin24m_cpll100_p) = { "gpll_200m", "xin24m", "cpll_100m" }; 28562306a36Sopenharmony_ciPNAME(xin24m_32k_p) = { "xin24m", "clk_rtc_32k" }; 28662306a36Sopenharmony_ciPNAME(cpll500_gpll400_gpll300_xin24m_p) = { "cpll_500m", "gpll_400m", "gpll_300m", "xin24m" }; 28762306a36Sopenharmony_ciPNAME(gpll400_gpll300_gpll200_xin24m_p) = { "gpll_400m", "gpll_300m", "gpll_200m", "xin24m" }; 28862306a36Sopenharmony_ciPNAME(xin24m_cpll100_p) = { "xin24m", "cpll_100m" }; 28962306a36Sopenharmony_ciPNAME(ppll_usb480m_cpll_gpll_p) = { "ppll", "usb480m", "cpll", "gpll"}; 29062306a36Sopenharmony_ciPNAME(clk_usbphy0_ref_p) = { "clk_ref24m", "xin_osc0_usbphy0_g" }; 29162306a36Sopenharmony_ciPNAME(clk_usbphy1_ref_p) = { "clk_ref24m", "xin_osc0_usbphy1_g" }; 29262306a36Sopenharmony_ciPNAME(clk_mipidsiphy0_ref_p) = { "clk_ref24m", "xin_osc0_mipidsiphy0_g" }; 29362306a36Sopenharmony_ciPNAME(clk_mipidsiphy1_ref_p) = { "clk_ref24m", "xin_osc0_mipidsiphy1_g" }; 29462306a36Sopenharmony_ciPNAME(clk_wifi_p) = { "clk_wifi_osc0", "clk_wifi_div" }; 29562306a36Sopenharmony_ciPNAME(clk_pciephy0_ref_p) = { "clk_pciephy0_osc0", "clk_pciephy0_div" }; 29662306a36Sopenharmony_ciPNAME(clk_pciephy1_ref_p) = { "clk_pciephy1_osc0", "clk_pciephy1_div" }; 29762306a36Sopenharmony_ciPNAME(clk_pciephy2_ref_p) = { "clk_pciephy2_osc0", "clk_pciephy2_div" }; 29862306a36Sopenharmony_ciPNAME(mux_gmac0_p) = { "clk_mac0_2top", "gmac0_clkin" }; 29962306a36Sopenharmony_ciPNAME(mux_gmac0_rgmii_speed_p) = { "clk_gmac0", "clk_gmac0", "clk_gmac0_tx_div50", "clk_gmac0_tx_div5" }; 30062306a36Sopenharmony_ciPNAME(mux_gmac0_rmii_speed_p) = { "clk_gmac0_rx_div20", "clk_gmac0_rx_div2" }; 30162306a36Sopenharmony_ciPNAME(mux_gmac0_rx_tx_p) = { "clk_gmac0_rgmii_speed", "clk_gmac0_rmii_speed", "clk_gmac0_xpcs_mii" }; 30262306a36Sopenharmony_ciPNAME(mux_gmac1_p) = { "clk_mac1_2top", "gmac1_clkin" }; 30362306a36Sopenharmony_ciPNAME(mux_gmac1_rgmii_speed_p) = { "clk_gmac1", "clk_gmac1", "clk_gmac1_tx_div50", "clk_gmac1_tx_div5" }; 30462306a36Sopenharmony_ciPNAME(mux_gmac1_rmii_speed_p) = { "clk_gmac1_rx_div20", "clk_gmac1_rx_div2" }; 30562306a36Sopenharmony_ciPNAME(mux_gmac1_rx_tx_p) = { "clk_gmac1_rgmii_speed", "clk_gmac1_rmii_speed", "clk_gmac1_xpcs_mii" }; 30662306a36Sopenharmony_ciPNAME(clk_hdmi_ref_p) = { "hpll", "hpll_ph0" }; 30762306a36Sopenharmony_ciPNAME(clk_pdpmu_p) = { "ppll", "gpll" }; 30862306a36Sopenharmony_ciPNAME(clk_mac_2top_p) = { "cpll_125m", "cpll_50m", "cpll_25m", "ppll" }; 30962306a36Sopenharmony_ciPNAME(clk_pwm0_p) = { "xin24m", "clk_pdpmu" }; 31062306a36Sopenharmony_ciPNAME(aclk_rkvdec_pre_p) = { "gpll", "cpll" }; 31162306a36Sopenharmony_ciPNAME(clk_rkvdec_core_p) = { "gpll", "cpll", "dummy_npll", "dummy_vpll" }; 31262306a36Sopenharmony_ci 31362306a36Sopenharmony_cistatic struct rockchip_pll_clock rk3568_pmu_pll_clks[] __initdata = { 31462306a36Sopenharmony_ci [ppll] = PLL(pll_rk3328, PLL_PPLL, "ppll", mux_pll_p, 31562306a36Sopenharmony_ci 0, RK3568_PMU_PLL_CON(0), 31662306a36Sopenharmony_ci RK3568_PMU_MODE_CON0, 0, 4, 0, rk3568_pll_rates), 31762306a36Sopenharmony_ci [hpll] = PLL(pll_rk3328, PLL_HPLL, "hpll", mux_pll_p, 31862306a36Sopenharmony_ci 0, RK3568_PMU_PLL_CON(16), 31962306a36Sopenharmony_ci RK3568_PMU_MODE_CON0, 2, 7, 0, rk3568_pll_rates), 32062306a36Sopenharmony_ci}; 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_cistatic struct rockchip_pll_clock rk3568_pll_clks[] __initdata = { 32362306a36Sopenharmony_ci [apll] = PLL(pll_rk3328, PLL_APLL, "apll", mux_pll_p, 32462306a36Sopenharmony_ci 0, RK3568_PLL_CON(0), 32562306a36Sopenharmony_ci RK3568_MODE_CON0, 0, 0, 0, rk3568_pll_rates), 32662306a36Sopenharmony_ci [dpll] = PLL(pll_rk3328, PLL_DPLL, "dpll", mux_pll_p, 32762306a36Sopenharmony_ci 0, RK3568_PLL_CON(8), 32862306a36Sopenharmony_ci RK3568_MODE_CON0, 2, 1, 0, NULL), 32962306a36Sopenharmony_ci [cpll] = PLL(pll_rk3328, PLL_CPLL, "cpll", mux_pll_p, 33062306a36Sopenharmony_ci 0, RK3568_PLL_CON(24), 33162306a36Sopenharmony_ci RK3568_MODE_CON0, 4, 2, 0, rk3568_pll_rates), 33262306a36Sopenharmony_ci [gpll] = PLL(pll_rk3328, PLL_GPLL, "gpll", mux_pll_p, 33362306a36Sopenharmony_ci 0, RK3568_PLL_CON(16), 33462306a36Sopenharmony_ci RK3568_MODE_CON0, 6, 3, 0, rk3568_pll_rates), 33562306a36Sopenharmony_ci [npll] = PLL(pll_rk3328, PLL_NPLL, "npll", mux_pll_p, 33662306a36Sopenharmony_ci 0, RK3568_PLL_CON(32), 33762306a36Sopenharmony_ci RK3568_MODE_CON0, 10, 5, 0, rk3568_pll_rates), 33862306a36Sopenharmony_ci [vpll] = PLL(pll_rk3328, PLL_VPLL, "vpll", mux_pll_p, 33962306a36Sopenharmony_ci 0, RK3568_PLL_CON(40), 34062306a36Sopenharmony_ci RK3568_MODE_CON0, 12, 6, 0, rk3568_pll_rates), 34162306a36Sopenharmony_ci}; 34262306a36Sopenharmony_ci 34362306a36Sopenharmony_ci#define MFLAGS CLK_MUX_HIWORD_MASK 34462306a36Sopenharmony_ci#define DFLAGS CLK_DIVIDER_HIWORD_MASK 34562306a36Sopenharmony_ci#define GFLAGS (CLK_GATE_HIWORD_MASK | CLK_GATE_SET_TO_DISABLE) 34662306a36Sopenharmony_ci 34762306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_i2s0_8ch_tx_fracmux __initdata = 34862306a36Sopenharmony_ci MUX(CLK_I2S0_8CH_TX, "clk_i2s0_8ch_tx", clk_i2s0_8ch_tx_p, CLK_SET_RATE_PARENT, 34962306a36Sopenharmony_ci RK3568_CLKSEL_CON(11), 10, 2, MFLAGS); 35062306a36Sopenharmony_ci 35162306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_i2s0_8ch_rx_fracmux __initdata = 35262306a36Sopenharmony_ci MUX(CLK_I2S0_8CH_RX, "clk_i2s0_8ch_rx", clk_i2s0_8ch_rx_p, CLK_SET_RATE_PARENT, 35362306a36Sopenharmony_ci RK3568_CLKSEL_CON(13), 10, 2, MFLAGS); 35462306a36Sopenharmony_ci 35562306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_i2s1_8ch_tx_fracmux __initdata = 35662306a36Sopenharmony_ci MUX(CLK_I2S1_8CH_TX, "clk_i2s1_8ch_tx", clk_i2s1_8ch_tx_p, CLK_SET_RATE_PARENT, 35762306a36Sopenharmony_ci RK3568_CLKSEL_CON(15), 10, 2, MFLAGS); 35862306a36Sopenharmony_ci 35962306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_i2s1_8ch_rx_fracmux __initdata = 36062306a36Sopenharmony_ci MUX(CLK_I2S1_8CH_RX, "clk_i2s1_8ch_rx", clk_i2s1_8ch_rx_p, CLK_SET_RATE_PARENT, 36162306a36Sopenharmony_ci RK3568_CLKSEL_CON(17), 10, 2, MFLAGS); 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_i2s2_2ch_fracmux __initdata = 36462306a36Sopenharmony_ci MUX(CLK_I2S2_2CH, "clk_i2s2_2ch", clk_i2s2_2ch_p, CLK_SET_RATE_PARENT, 36562306a36Sopenharmony_ci RK3568_CLKSEL_CON(19), 10, 2, MFLAGS); 36662306a36Sopenharmony_ci 36762306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_i2s3_2ch_tx_fracmux __initdata = 36862306a36Sopenharmony_ci MUX(CLK_I2S3_2CH_TX, "clk_i2s3_2ch_tx", clk_i2s3_2ch_tx_p, CLK_SET_RATE_PARENT, 36962306a36Sopenharmony_ci RK3568_CLKSEL_CON(21), 10, 2, MFLAGS); 37062306a36Sopenharmony_ci 37162306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_i2s3_2ch_rx_fracmux __initdata = 37262306a36Sopenharmony_ci MUX(CLK_I2S3_2CH_RX, "clk_i2s3_2ch_rx", clk_i2s3_2ch_rx_p, CLK_SET_RATE_PARENT, 37362306a36Sopenharmony_ci RK3568_CLKSEL_CON(83), 10, 2, MFLAGS); 37462306a36Sopenharmony_ci 37562306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_spdif_8ch_fracmux __initdata = 37662306a36Sopenharmony_ci MUX(MCLK_SPDIF_8CH, "mclk_spdif_8ch", mclk_spdif_8ch_p, CLK_SET_RATE_PARENT, 37762306a36Sopenharmony_ci RK3568_CLKSEL_CON(23), 15, 1, MFLAGS); 37862306a36Sopenharmony_ci 37962306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_audpwm_fracmux __initdata = 38062306a36Sopenharmony_ci MUX(SCLK_AUDPWM, "sclk_audpwm", sclk_audpwm_p, CLK_SET_RATE_PARENT, 38162306a36Sopenharmony_ci RK3568_CLKSEL_CON(25), 15, 1, MFLAGS); 38262306a36Sopenharmony_ci 38362306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_uart1_fracmux __initdata = 38462306a36Sopenharmony_ci MUX(0, "sclk_uart1_mux", sclk_uart1_p, CLK_SET_RATE_PARENT, 38562306a36Sopenharmony_ci RK3568_CLKSEL_CON(52), 12, 2, MFLAGS); 38662306a36Sopenharmony_ci 38762306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_uart2_fracmux __initdata = 38862306a36Sopenharmony_ci MUX(0, "sclk_uart2_mux", sclk_uart2_p, CLK_SET_RATE_PARENT, 38962306a36Sopenharmony_ci RK3568_CLKSEL_CON(54), 12, 2, MFLAGS); 39062306a36Sopenharmony_ci 39162306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_uart3_fracmux __initdata = 39262306a36Sopenharmony_ci MUX(0, "sclk_uart3_mux", sclk_uart3_p, CLK_SET_RATE_PARENT, 39362306a36Sopenharmony_ci RK3568_CLKSEL_CON(56), 12, 2, MFLAGS); 39462306a36Sopenharmony_ci 39562306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_uart4_fracmux __initdata = 39662306a36Sopenharmony_ci MUX(0, "sclk_uart4_mux", sclk_uart4_p, CLK_SET_RATE_PARENT, 39762306a36Sopenharmony_ci RK3568_CLKSEL_CON(58), 12, 2, MFLAGS); 39862306a36Sopenharmony_ci 39962306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_uart5_fracmux __initdata = 40062306a36Sopenharmony_ci MUX(0, "sclk_uart5_mux", sclk_uart5_p, CLK_SET_RATE_PARENT, 40162306a36Sopenharmony_ci RK3568_CLKSEL_CON(60), 12, 2, MFLAGS); 40262306a36Sopenharmony_ci 40362306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_uart6_fracmux __initdata = 40462306a36Sopenharmony_ci MUX(0, "sclk_uart6_mux", sclk_uart6_p, CLK_SET_RATE_PARENT, 40562306a36Sopenharmony_ci RK3568_CLKSEL_CON(62), 12, 2, MFLAGS); 40662306a36Sopenharmony_ci 40762306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_uart7_fracmux __initdata = 40862306a36Sopenharmony_ci MUX(0, "sclk_uart7_mux", sclk_uart7_p, CLK_SET_RATE_PARENT, 40962306a36Sopenharmony_ci RK3568_CLKSEL_CON(64), 12, 2, MFLAGS); 41062306a36Sopenharmony_ci 41162306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_uart8_fracmux __initdata = 41262306a36Sopenharmony_ci MUX(0, "sclk_uart8_mux", sclk_uart8_p, CLK_SET_RATE_PARENT, 41362306a36Sopenharmony_ci RK3568_CLKSEL_CON(66), 12, 2, MFLAGS); 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_uart9_fracmux __initdata = 41662306a36Sopenharmony_ci MUX(0, "sclk_uart9_mux", sclk_uart9_p, CLK_SET_RATE_PARENT, 41762306a36Sopenharmony_ci RK3568_CLKSEL_CON(68), 12, 2, MFLAGS); 41862306a36Sopenharmony_ci 41962306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_uart0_fracmux __initdata = 42062306a36Sopenharmony_ci MUX(0, "sclk_uart0_mux", sclk_uart0_p, CLK_SET_RATE_PARENT, 42162306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(4), 10, 2, MFLAGS); 42262306a36Sopenharmony_ci 42362306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_rtc32k_pmu_fracmux __initdata = 42462306a36Sopenharmony_ci MUX(CLK_RTC_32K, "clk_rtc_32k", clk_rtc32k_pmu_p, CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT, 42562306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(0), 6, 2, MFLAGS); 42662306a36Sopenharmony_ci 42762306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_clk_branches[] __initdata = { 42862306a36Sopenharmony_ci /* 42962306a36Sopenharmony_ci * Clock-Architecture Diagram 1 43062306a36Sopenharmony_ci */ 43162306a36Sopenharmony_ci /* SRC_CLK */ 43262306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "gpll_400m", "gpll", CLK_IGNORE_UNUSED, 43362306a36Sopenharmony_ci RK3568_CLKSEL_CON(75), 0, 5, DFLAGS, 43462306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 0, GFLAGS), 43562306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "gpll_300m", "gpll", CLK_IGNORE_UNUSED, 43662306a36Sopenharmony_ci RK3568_CLKSEL_CON(75), 8, 5, DFLAGS, 43762306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 1, GFLAGS), 43862306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "gpll_200m", "gpll", CLK_IGNORE_UNUSED, 43962306a36Sopenharmony_ci RK3568_CLKSEL_CON(76), 0, 5, DFLAGS, 44062306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 2, GFLAGS), 44162306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "gpll_150m", "gpll", CLK_IGNORE_UNUSED, 44262306a36Sopenharmony_ci RK3568_CLKSEL_CON(76), 8, 5, DFLAGS, 44362306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 3, GFLAGS), 44462306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "gpll_100m", "gpll", CLK_IGNORE_UNUSED, 44562306a36Sopenharmony_ci RK3568_CLKSEL_CON(77), 0, 5, DFLAGS, 44662306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 4, GFLAGS), 44762306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "gpll_75m", "gpll", CLK_IGNORE_UNUSED, 44862306a36Sopenharmony_ci RK3568_CLKSEL_CON(77), 8, 5, DFLAGS, 44962306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 5, GFLAGS), 45062306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "gpll_20m", "gpll", CLK_IGNORE_UNUSED, 45162306a36Sopenharmony_ci RK3568_CLKSEL_CON(78), 0, 6, DFLAGS, 45262306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 6, GFLAGS), 45362306a36Sopenharmony_ci COMPOSITE_NOMUX(CPLL_500M, "cpll_500m", "cpll", CLK_IGNORE_UNUSED, 45462306a36Sopenharmony_ci RK3568_CLKSEL_CON(78), 8, 5, DFLAGS, 45562306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 7, GFLAGS), 45662306a36Sopenharmony_ci COMPOSITE_NOMUX(CPLL_333M, "cpll_333m", "cpll", CLK_IGNORE_UNUSED, 45762306a36Sopenharmony_ci RK3568_CLKSEL_CON(79), 0, 5, DFLAGS, 45862306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 8, GFLAGS), 45962306a36Sopenharmony_ci COMPOSITE_NOMUX(CPLL_250M, "cpll_250m", "cpll", CLK_IGNORE_UNUSED, 46062306a36Sopenharmony_ci RK3568_CLKSEL_CON(79), 8, 5, DFLAGS, 46162306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 9, GFLAGS), 46262306a36Sopenharmony_ci COMPOSITE_NOMUX(CPLL_125M, "cpll_125m", "cpll", CLK_IGNORE_UNUSED, 46362306a36Sopenharmony_ci RK3568_CLKSEL_CON(80), 0, 5, DFLAGS, 46462306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 10, GFLAGS), 46562306a36Sopenharmony_ci COMPOSITE_NOMUX(CPLL_100M, "cpll_100m", "cpll", CLK_IGNORE_UNUSED, 46662306a36Sopenharmony_ci RK3568_CLKSEL_CON(82), 0, 5, DFLAGS, 46762306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 11, GFLAGS), 46862306a36Sopenharmony_ci COMPOSITE_NOMUX(CPLL_62P5M, "cpll_62p5", "cpll", CLK_IGNORE_UNUSED, 46962306a36Sopenharmony_ci RK3568_CLKSEL_CON(80), 8, 5, DFLAGS, 47062306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 12, GFLAGS), 47162306a36Sopenharmony_ci COMPOSITE_NOMUX(CPLL_50M, "cpll_50m", "cpll", CLK_IGNORE_UNUSED, 47262306a36Sopenharmony_ci RK3568_CLKSEL_CON(81), 0, 5, DFLAGS, 47362306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 13, GFLAGS), 47462306a36Sopenharmony_ci COMPOSITE_NOMUX(CPLL_25M, "cpll_25m", "cpll", CLK_IGNORE_UNUSED, 47562306a36Sopenharmony_ci RK3568_CLKSEL_CON(81), 8, 6, DFLAGS, 47662306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 14, GFLAGS), 47762306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "clk_osc0_div_750k", "xin24m", CLK_IGNORE_UNUSED, 47862306a36Sopenharmony_ci RK3568_CLKSEL_CON(82), 8, 6, DFLAGS, 47962306a36Sopenharmony_ci RK3568_CLKGATE_CON(35), 15, GFLAGS), 48062306a36Sopenharmony_ci FACTOR(0, "clk_osc0_div_375k", "clk_osc0_div_750k", 0, 1, 2), 48162306a36Sopenharmony_ci FACTOR(0, "xin_osc0_half", "xin24m", 0, 1, 2), 48262306a36Sopenharmony_ci MUX(USB480M, "usb480m", mux_usb480m_p, CLK_SET_RATE_PARENT, 48362306a36Sopenharmony_ci RK3568_MODE_CON0, 14, 2, MFLAGS), 48462306a36Sopenharmony_ci 48562306a36Sopenharmony_ci /* PD_CORE */ 48662306a36Sopenharmony_ci COMPOSITE(0, "sclk_core_src", apll_gpll_npll_p, CLK_IGNORE_UNUSED, 48762306a36Sopenharmony_ci RK3568_CLKSEL_CON(2), 8, 2, MFLAGS, 0, 4, DFLAGS | CLK_DIVIDER_READ_ONLY, 48862306a36Sopenharmony_ci RK3568_CLKGATE_CON(0), 5, GFLAGS), 48962306a36Sopenharmony_ci COMPOSITE_NODIV(0, "sclk_core", sclk_core_pre_p, CLK_IGNORE_UNUSED, 49062306a36Sopenharmony_ci RK3568_CLKSEL_CON(2), 15, 1, MFLAGS, 49162306a36Sopenharmony_ci RK3568_CLKGATE_CON(0), 7, GFLAGS), 49262306a36Sopenharmony_ci 49362306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "atclk_core", "armclk", CLK_IGNORE_UNUSED, 49462306a36Sopenharmony_ci RK3568_CLKSEL_CON(3), 0, 5, DFLAGS | CLK_DIVIDER_READ_ONLY, 49562306a36Sopenharmony_ci RK3568_CLKGATE_CON(0), 8, GFLAGS), 49662306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "gicclk_core", "armclk", CLK_IGNORE_UNUSED, 49762306a36Sopenharmony_ci RK3568_CLKSEL_CON(3), 8, 5, DFLAGS | CLK_DIVIDER_READ_ONLY, 49862306a36Sopenharmony_ci RK3568_CLKGATE_CON(0), 9, GFLAGS), 49962306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "pclk_core_pre", "armclk", CLK_IGNORE_UNUSED, 50062306a36Sopenharmony_ci RK3568_CLKSEL_CON(4), 0, 5, DFLAGS | CLK_DIVIDER_READ_ONLY, 50162306a36Sopenharmony_ci RK3568_CLKGATE_CON(0), 10, GFLAGS), 50262306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "periphclk_core_pre", "armclk", CLK_IGNORE_UNUSED, 50362306a36Sopenharmony_ci RK3568_CLKSEL_CON(4), 8, 5, DFLAGS | CLK_DIVIDER_READ_ONLY, 50462306a36Sopenharmony_ci RK3568_CLKGATE_CON(0), 11, GFLAGS), 50562306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "tsclk_core", "periphclk_core_pre", CLK_IGNORE_UNUSED, 50662306a36Sopenharmony_ci RK3568_CLKSEL_CON(5), 0, 4, DFLAGS | CLK_DIVIDER_READ_ONLY, 50762306a36Sopenharmony_ci RK3568_CLKGATE_CON(0), 14, GFLAGS), 50862306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "cntclk_core", "periphclk_core_pre", CLK_IGNORE_UNUSED, 50962306a36Sopenharmony_ci RK3568_CLKSEL_CON(5), 4, 4, DFLAGS | CLK_DIVIDER_READ_ONLY, 51062306a36Sopenharmony_ci RK3568_CLKGATE_CON(0), 15, GFLAGS), 51162306a36Sopenharmony_ci COMPOSITE_NOMUX(0, "aclk_core", "sclk_core", CLK_IGNORE_UNUSED, 51262306a36Sopenharmony_ci RK3568_CLKSEL_CON(5), 8, 5, DFLAGS | CLK_DIVIDER_READ_ONLY, 51362306a36Sopenharmony_ci RK3568_CLKGATE_CON(1), 0, GFLAGS), 51462306a36Sopenharmony_ci 51562306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_CORE_NIU2BUS, "aclk_core_niu2bus", gpll150_gpll100_gpll75_xin24m_p, CLK_IGNORE_UNUSED, 51662306a36Sopenharmony_ci RK3568_CLKSEL_CON(5), 14, 2, MFLAGS, 51762306a36Sopenharmony_ci RK3568_CLKGATE_CON(1), 2, GFLAGS), 51862306a36Sopenharmony_ci 51962306a36Sopenharmony_ci GATE(CLK_CORE_PVTM, "clk_core_pvtm", "xin24m", 0, 52062306a36Sopenharmony_ci RK3568_CLKGATE_CON(1), 10, GFLAGS), 52162306a36Sopenharmony_ci GATE(CLK_CORE_PVTM_CORE, "clk_core_pvtm_core", "armclk", 0, 52262306a36Sopenharmony_ci RK3568_CLKGATE_CON(1), 11, GFLAGS), 52362306a36Sopenharmony_ci GATE(CLK_CORE_PVTPLL, "clk_core_pvtpll", "armclk", CLK_IGNORE_UNUSED, 52462306a36Sopenharmony_ci RK3568_CLKGATE_CON(1), 12, GFLAGS), 52562306a36Sopenharmony_ci GATE(PCLK_CORE_PVTM, "pclk_core_pvtm", "pclk_core_pre", 0, 52662306a36Sopenharmony_ci RK3568_CLKGATE_CON(1), 9, GFLAGS), 52762306a36Sopenharmony_ci 52862306a36Sopenharmony_ci /* PD_GPU */ 52962306a36Sopenharmony_ci COMPOSITE(CLK_GPU_SRC, "clk_gpu_src", mpll_gpll_cpll_npll_p, 0, 53062306a36Sopenharmony_ci RK3568_CLKSEL_CON(6), 6, 2, MFLAGS | CLK_MUX_READ_ONLY, 0, 4, DFLAGS | CLK_DIVIDER_READ_ONLY, 53162306a36Sopenharmony_ci RK3568_CLKGATE_CON(2), 0, GFLAGS), 53262306a36Sopenharmony_ci MUX(CLK_GPU_PRE_MUX, "clk_gpu_pre_mux", clk_gpu_pre_mux_p, CLK_SET_RATE_PARENT, 53362306a36Sopenharmony_ci RK3568_CLKSEL_CON(6), 11, 1, MFLAGS | CLK_MUX_READ_ONLY), 53462306a36Sopenharmony_ci DIV(ACLK_GPU_PRE, "aclk_gpu_pre", "clk_gpu_pre_mux", 0, 53562306a36Sopenharmony_ci RK3568_CLKSEL_CON(6), 8, 2, DFLAGS), 53662306a36Sopenharmony_ci DIV(PCLK_GPU_PRE, "pclk_gpu_pre", "clk_gpu_pre_mux", 0, 53762306a36Sopenharmony_ci RK3568_CLKSEL_CON(6), 12, 4, DFLAGS), 53862306a36Sopenharmony_ci GATE(CLK_GPU, "clk_gpu", "clk_gpu_pre_mux", 0, 53962306a36Sopenharmony_ci RK3568_CLKGATE_CON(2), 3, GFLAGS), 54062306a36Sopenharmony_ci 54162306a36Sopenharmony_ci GATE(PCLK_GPU_PVTM, "pclk_gpu_pvtm", "pclk_gpu_pre", 0, 54262306a36Sopenharmony_ci RK3568_CLKGATE_CON(2), 6, GFLAGS), 54362306a36Sopenharmony_ci GATE(CLK_GPU_PVTM, "clk_gpu_pvtm", "xin24m", 0, 54462306a36Sopenharmony_ci RK3568_CLKGATE_CON(2), 7, GFLAGS), 54562306a36Sopenharmony_ci GATE(CLK_GPU_PVTM_CORE, "clk_gpu_pvtm_core", "clk_gpu_src", 0, 54662306a36Sopenharmony_ci RK3568_CLKGATE_CON(2), 8, GFLAGS), 54762306a36Sopenharmony_ci GATE(CLK_GPU_PVTPLL, "clk_gpu_pvtpll", "clk_gpu_src", CLK_IGNORE_UNUSED, 54862306a36Sopenharmony_ci RK3568_CLKGATE_CON(2), 9, GFLAGS), 54962306a36Sopenharmony_ci 55062306a36Sopenharmony_ci /* PD_NPU */ 55162306a36Sopenharmony_ci COMPOSITE(CLK_NPU_SRC, "clk_npu_src", npll_gpll_p, 0, 55262306a36Sopenharmony_ci RK3568_CLKSEL_CON(7), 6, 1, MFLAGS, 0, 4, DFLAGS, 55362306a36Sopenharmony_ci RK3568_CLKGATE_CON(3), 0, GFLAGS), 55462306a36Sopenharmony_ci MUX(CLK_NPU_PRE_NDFT, "clk_npu_pre_ndft", clk_npu_pre_ndft_p, CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE, 55562306a36Sopenharmony_ci RK3568_CLKSEL_CON(7), 8, 1, MFLAGS), 55662306a36Sopenharmony_ci MUX(CLK_NPU, "clk_npu", clk_npu_p, CLK_SET_RATE_PARENT, 55762306a36Sopenharmony_ci RK3568_CLKSEL_CON(7), 15, 1, MFLAGS), 55862306a36Sopenharmony_ci COMPOSITE_NOMUX(HCLK_NPU_PRE, "hclk_npu_pre", "clk_npu", 0, 55962306a36Sopenharmony_ci RK3568_CLKSEL_CON(8), 0, 4, DFLAGS, 56062306a36Sopenharmony_ci RK3568_CLKGATE_CON(3), 2, GFLAGS), 56162306a36Sopenharmony_ci COMPOSITE_NOMUX(PCLK_NPU_PRE, "pclk_npu_pre", "clk_npu", 0, 56262306a36Sopenharmony_ci RK3568_CLKSEL_CON(8), 4, 4, DFLAGS, 56362306a36Sopenharmony_ci RK3568_CLKGATE_CON(3), 3, GFLAGS), 56462306a36Sopenharmony_ci GATE(ACLK_NPU_PRE, "aclk_npu_pre", "clk_npu", 0, 56562306a36Sopenharmony_ci RK3568_CLKGATE_CON(3), 4, GFLAGS), 56662306a36Sopenharmony_ci GATE(ACLK_NPU, "aclk_npu", "aclk_npu_pre", 0, 56762306a36Sopenharmony_ci RK3568_CLKGATE_CON(3), 7, GFLAGS), 56862306a36Sopenharmony_ci GATE(HCLK_NPU, "hclk_npu", "hclk_npu_pre", 0, 56962306a36Sopenharmony_ci RK3568_CLKGATE_CON(3), 8, GFLAGS), 57062306a36Sopenharmony_ci 57162306a36Sopenharmony_ci GATE(PCLK_NPU_PVTM, "pclk_npu_pvtm", "pclk_npu_pre", 0, 57262306a36Sopenharmony_ci RK3568_CLKGATE_CON(3), 9, GFLAGS), 57362306a36Sopenharmony_ci GATE(CLK_NPU_PVTM, "clk_npu_pvtm", "xin24m", 0, 57462306a36Sopenharmony_ci RK3568_CLKGATE_CON(3), 10, GFLAGS), 57562306a36Sopenharmony_ci GATE(CLK_NPU_PVTM_CORE, "clk_npu_pvtm_core", "clk_npu_pre_ndft", 0, 57662306a36Sopenharmony_ci RK3568_CLKGATE_CON(3), 11, GFLAGS), 57762306a36Sopenharmony_ci GATE(CLK_NPU_PVTPLL, "clk_npu_pvtpll", "clk_npu_pre_ndft", CLK_IGNORE_UNUSED, 57862306a36Sopenharmony_ci RK3568_CLKGATE_CON(3), 12, GFLAGS), 57962306a36Sopenharmony_ci 58062306a36Sopenharmony_ci /* PD_DDR */ 58162306a36Sopenharmony_ci COMPOSITE(CLK_DDRPHY1X_SRC, "clk_ddrphy1x_src", dpll_gpll_cpll_p, CLK_IGNORE_UNUSED, 58262306a36Sopenharmony_ci RK3568_CLKSEL_CON(9), 6, 2, MFLAGS, 0, 5, DFLAGS, 58362306a36Sopenharmony_ci RK3568_CLKGATE_CON(4), 0, GFLAGS), 58462306a36Sopenharmony_ci MUXGRF(CLK_DDR1X, "clk_ddr1x", clk_ddr1x_p, CLK_SET_RATE_PARENT, 58562306a36Sopenharmony_ci RK3568_CLKSEL_CON(9), 15, 1, MFLAGS), 58662306a36Sopenharmony_ci 58762306a36Sopenharmony_ci COMPOSITE_NOMUX(CLK_MSCH, "clk_msch", "clk_ddr1x", CLK_IGNORE_UNUSED, 58862306a36Sopenharmony_ci RK3568_CLKSEL_CON(10), 0, 2, DFLAGS, 58962306a36Sopenharmony_ci RK3568_CLKGATE_CON(4), 2, GFLAGS), 59062306a36Sopenharmony_ci GATE(CLK24_DDRMON, "clk24_ddrmon", "xin24m", CLK_IGNORE_UNUSED, 59162306a36Sopenharmony_ci RK3568_CLKGATE_CON(4), 15, GFLAGS), 59262306a36Sopenharmony_ci 59362306a36Sopenharmony_ci /* PD_GIC_AUDIO */ 59462306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_GIC_AUDIO, "aclk_gic_audio", gpll200_gpll150_gpll100_xin24m_p, CLK_IGNORE_UNUSED, 59562306a36Sopenharmony_ci RK3568_CLKSEL_CON(10), 8, 2, MFLAGS, 59662306a36Sopenharmony_ci RK3568_CLKGATE_CON(5), 0, GFLAGS), 59762306a36Sopenharmony_ci COMPOSITE_NODIV(HCLK_GIC_AUDIO, "hclk_gic_audio", gpll150_gpll100_gpll75_xin24m_p, CLK_IGNORE_UNUSED, 59862306a36Sopenharmony_ci RK3568_CLKSEL_CON(10), 10, 2, MFLAGS, 59962306a36Sopenharmony_ci RK3568_CLKGATE_CON(5), 1, GFLAGS), 60062306a36Sopenharmony_ci GATE(HCLK_SDMMC_BUFFER, "hclk_sdmmc_buffer", "hclk_gic_audio", 0, 60162306a36Sopenharmony_ci RK3568_CLKGATE_CON(5), 8, GFLAGS), 60262306a36Sopenharmony_ci COMPOSITE_NODIV(DCLK_SDMMC_BUFFER, "dclk_sdmmc_buffer", gpll100_gpll75_gpll50_p, 0, 60362306a36Sopenharmony_ci RK3568_CLKSEL_CON(10), 12, 2, MFLAGS, 60462306a36Sopenharmony_ci RK3568_CLKGATE_CON(5), 9, GFLAGS), 60562306a36Sopenharmony_ci GATE(ACLK_GIC600, "aclk_gic600", "aclk_gic_audio", CLK_IGNORE_UNUSED, 60662306a36Sopenharmony_ci RK3568_CLKGATE_CON(5), 4, GFLAGS), 60762306a36Sopenharmony_ci GATE(ACLK_SPINLOCK, "aclk_spinlock", "aclk_gic_audio", CLK_IGNORE_UNUSED, 60862306a36Sopenharmony_ci RK3568_CLKGATE_CON(5), 7, GFLAGS), 60962306a36Sopenharmony_ci GATE(HCLK_I2S0_8CH, "hclk_i2s0_8ch", "hclk_gic_audio", 0, 61062306a36Sopenharmony_ci RK3568_CLKGATE_CON(5), 10, GFLAGS), 61162306a36Sopenharmony_ci GATE(HCLK_I2S1_8CH, "hclk_i2s1_8ch", "hclk_gic_audio", 0, 61262306a36Sopenharmony_ci RK3568_CLKGATE_CON(5), 11, GFLAGS), 61362306a36Sopenharmony_ci GATE(HCLK_I2S2_2CH, "hclk_i2s2_2ch", "hclk_gic_audio", 0, 61462306a36Sopenharmony_ci RK3568_CLKGATE_CON(5), 12, GFLAGS), 61562306a36Sopenharmony_ci GATE(HCLK_I2S3_2CH, "hclk_i2s3_2ch", "hclk_gic_audio", 0, 61662306a36Sopenharmony_ci RK3568_CLKGATE_CON(5), 13, GFLAGS), 61762306a36Sopenharmony_ci 61862306a36Sopenharmony_ci COMPOSITE(CLK_I2S0_8CH_TX_SRC, "clk_i2s0_8ch_tx_src", gpll_cpll_npll_p, 0, 61962306a36Sopenharmony_ci RK3568_CLKSEL_CON(11), 8, 2, MFLAGS, 0, 7, DFLAGS, 62062306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 0, GFLAGS), 62162306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_I2S0_8CH_TX_FRAC, "clk_i2s0_8ch_tx_frac", "clk_i2s0_8ch_tx_src", CLK_SET_RATE_PARENT, 62262306a36Sopenharmony_ci RK3568_CLKSEL_CON(12), 0, 62362306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 1, GFLAGS, 62462306a36Sopenharmony_ci &rk3568_i2s0_8ch_tx_fracmux), 62562306a36Sopenharmony_ci GATE(MCLK_I2S0_8CH_TX, "mclk_i2s0_8ch_tx", "clk_i2s0_8ch_tx", 0, 62662306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 2, GFLAGS), 62762306a36Sopenharmony_ci COMPOSITE_NODIV(I2S0_MCLKOUT_TX, "i2s0_mclkout_tx", i2s0_mclkout_tx_p, CLK_SET_RATE_PARENT, 62862306a36Sopenharmony_ci RK3568_CLKSEL_CON(11), 15, 1, MFLAGS, 62962306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 3, GFLAGS), 63062306a36Sopenharmony_ci 63162306a36Sopenharmony_ci COMPOSITE(CLK_I2S0_8CH_RX_SRC, "clk_i2s0_8ch_rx_src", gpll_cpll_npll_p, 0, 63262306a36Sopenharmony_ci RK3568_CLKSEL_CON(13), 8, 2, MFLAGS, 0, 7, DFLAGS, 63362306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 4, GFLAGS), 63462306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_I2S0_8CH_RX_FRAC, "clk_i2s0_8ch_rx_frac", "clk_i2s0_8ch_rx_src", CLK_SET_RATE_PARENT, 63562306a36Sopenharmony_ci RK3568_CLKSEL_CON(14), 0, 63662306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 5, GFLAGS, 63762306a36Sopenharmony_ci &rk3568_i2s0_8ch_rx_fracmux), 63862306a36Sopenharmony_ci GATE(MCLK_I2S0_8CH_RX, "mclk_i2s0_8ch_rx", "clk_i2s0_8ch_rx", 0, 63962306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 6, GFLAGS), 64062306a36Sopenharmony_ci COMPOSITE_NODIV(I2S0_MCLKOUT_RX, "i2s0_mclkout_rx", i2s0_mclkout_rx_p, CLK_SET_RATE_PARENT, 64162306a36Sopenharmony_ci RK3568_CLKSEL_CON(13), 15, 1, MFLAGS, 64262306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 7, GFLAGS), 64362306a36Sopenharmony_ci 64462306a36Sopenharmony_ci COMPOSITE(CLK_I2S1_8CH_TX_SRC, "clk_i2s1_8ch_tx_src", gpll_cpll_npll_p, 0, 64562306a36Sopenharmony_ci RK3568_CLKSEL_CON(15), 8, 2, MFLAGS, 0, 7, DFLAGS, 64662306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 8, GFLAGS), 64762306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_I2S1_8CH_TX_FRAC, "clk_i2s1_8ch_tx_frac", "clk_i2s1_8ch_tx_src", CLK_SET_RATE_PARENT, 64862306a36Sopenharmony_ci RK3568_CLKSEL_CON(16), 0, 64962306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 9, GFLAGS, 65062306a36Sopenharmony_ci &rk3568_i2s1_8ch_tx_fracmux), 65162306a36Sopenharmony_ci GATE(MCLK_I2S1_8CH_TX, "mclk_i2s1_8ch_tx", "clk_i2s1_8ch_tx", 0, 65262306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 10, GFLAGS), 65362306a36Sopenharmony_ci COMPOSITE_NODIV(I2S1_MCLKOUT_TX, "i2s1_mclkout_tx", i2s1_mclkout_tx_p, CLK_SET_RATE_PARENT, 65462306a36Sopenharmony_ci RK3568_CLKSEL_CON(15), 15, 1, MFLAGS, 65562306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 11, GFLAGS), 65662306a36Sopenharmony_ci 65762306a36Sopenharmony_ci COMPOSITE(CLK_I2S1_8CH_RX_SRC, "clk_i2s1_8ch_rx_src", gpll_cpll_npll_p, 0, 65862306a36Sopenharmony_ci RK3568_CLKSEL_CON(17), 8, 2, MFLAGS, 0, 7, DFLAGS, 65962306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 12, GFLAGS), 66062306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_I2S1_8CH_RX_FRAC, "clk_i2s1_8ch_rx_frac", "clk_i2s1_8ch_rx_src", CLK_SET_RATE_PARENT, 66162306a36Sopenharmony_ci RK3568_CLKSEL_CON(18), 0, 66262306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 13, GFLAGS, 66362306a36Sopenharmony_ci &rk3568_i2s1_8ch_rx_fracmux), 66462306a36Sopenharmony_ci GATE(MCLK_I2S1_8CH_RX, "mclk_i2s1_8ch_rx", "clk_i2s1_8ch_rx", 0, 66562306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 14, GFLAGS), 66662306a36Sopenharmony_ci COMPOSITE_NODIV(I2S1_MCLKOUT_RX, "i2s1_mclkout_rx", i2s1_mclkout_rx_p, CLK_SET_RATE_PARENT, 66762306a36Sopenharmony_ci RK3568_CLKSEL_CON(17), 15, 1, MFLAGS, 66862306a36Sopenharmony_ci RK3568_CLKGATE_CON(6), 15, GFLAGS), 66962306a36Sopenharmony_ci 67062306a36Sopenharmony_ci COMPOSITE(CLK_I2S2_2CH_SRC, "clk_i2s2_2ch_src", gpll_cpll_npll_p, 0, 67162306a36Sopenharmony_ci RK3568_CLKSEL_CON(19), 8, 2, MFLAGS, 0, 7, DFLAGS, 67262306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 0, GFLAGS), 67362306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_I2S2_2CH_FRAC, "clk_i2s2_2ch_frac", "clk_i2s2_2ch_src", CLK_SET_RATE_PARENT, 67462306a36Sopenharmony_ci RK3568_CLKSEL_CON(20), 0, 67562306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 1, GFLAGS, 67662306a36Sopenharmony_ci &rk3568_i2s2_2ch_fracmux), 67762306a36Sopenharmony_ci GATE(MCLK_I2S2_2CH, "mclk_i2s2_2ch", "clk_i2s2_2ch", 0, 67862306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 2, GFLAGS), 67962306a36Sopenharmony_ci COMPOSITE_NODIV(I2S2_MCLKOUT, "i2s2_mclkout", i2s2_mclkout_p, CLK_SET_RATE_PARENT, 68062306a36Sopenharmony_ci RK3568_CLKSEL_CON(19), 15, 1, MFLAGS, 68162306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 3, GFLAGS), 68262306a36Sopenharmony_ci 68362306a36Sopenharmony_ci COMPOSITE(CLK_I2S3_2CH_TX_SRC, "clk_i2s3_2ch_tx_src", gpll_cpll_npll_p, 0, 68462306a36Sopenharmony_ci RK3568_CLKSEL_CON(21), 8, 2, MFLAGS, 0, 7, DFLAGS, 68562306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 4, GFLAGS), 68662306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_I2S3_2CH_TX_FRAC, "clk_i2s3_2ch_tx_frac", "clk_i2s3_2ch_tx_src", CLK_SET_RATE_PARENT, 68762306a36Sopenharmony_ci RK3568_CLKSEL_CON(22), 0, 68862306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 5, GFLAGS, 68962306a36Sopenharmony_ci &rk3568_i2s3_2ch_tx_fracmux), 69062306a36Sopenharmony_ci GATE(MCLK_I2S3_2CH_TX, "mclk_i2s3_2ch_tx", "clk_i2s3_2ch_tx", 0, 69162306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 6, GFLAGS), 69262306a36Sopenharmony_ci COMPOSITE_NODIV(I2S3_MCLKOUT_TX, "i2s3_mclkout_tx", i2s3_mclkout_tx_p, CLK_SET_RATE_PARENT, 69362306a36Sopenharmony_ci RK3568_CLKSEL_CON(21), 15, 1, MFLAGS, 69462306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 7, GFLAGS), 69562306a36Sopenharmony_ci 69662306a36Sopenharmony_ci COMPOSITE(CLK_I2S3_2CH_RX_SRC, "clk_i2s3_2ch_rx_src", gpll_cpll_npll_p, 0, 69762306a36Sopenharmony_ci RK3568_CLKSEL_CON(83), 8, 2, MFLAGS, 0, 7, DFLAGS, 69862306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 8, GFLAGS), 69962306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_I2S3_2CH_RX_FRAC, "clk_i2s3_2ch_rx_frac", "clk_i2s3_2ch_rx_src", CLK_SET_RATE_PARENT, 70062306a36Sopenharmony_ci RK3568_CLKSEL_CON(84), 0, 70162306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 9, GFLAGS, 70262306a36Sopenharmony_ci &rk3568_i2s3_2ch_rx_fracmux), 70362306a36Sopenharmony_ci GATE(MCLK_I2S3_2CH_RX, "mclk_i2s3_2ch_rx", "clk_i2s3_2ch_rx", 0, 70462306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 10, GFLAGS), 70562306a36Sopenharmony_ci COMPOSITE_NODIV(I2S3_MCLKOUT_RX, "i2s3_mclkout_rx", i2s3_mclkout_rx_p, CLK_SET_RATE_PARENT, 70662306a36Sopenharmony_ci RK3568_CLKSEL_CON(83), 15, 1, MFLAGS, 70762306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 11, GFLAGS), 70862306a36Sopenharmony_ci 70962306a36Sopenharmony_ci GATE(HCLK_PDM, "hclk_pdm", "hclk_gic_audio", 0, 71062306a36Sopenharmony_ci RK3568_CLKGATE_CON(5), 14, GFLAGS), 71162306a36Sopenharmony_ci COMPOSITE_NODIV(MCLK_PDM, "mclk_pdm", mclk_pdm_p, 0, 71262306a36Sopenharmony_ci RK3568_CLKSEL_CON(23), 8, 2, MFLAGS, 71362306a36Sopenharmony_ci RK3568_CLKGATE_CON(5), 15, GFLAGS), 71462306a36Sopenharmony_ci GATE(HCLK_VAD, "hclk_vad", "hclk_gic_audio", 0, 71562306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 12, GFLAGS), 71662306a36Sopenharmony_ci GATE(HCLK_SPDIF_8CH, "hclk_spdif_8ch", "hclk_gic_audio", 0, 71762306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 13, GFLAGS), 71862306a36Sopenharmony_ci 71962306a36Sopenharmony_ci COMPOSITE(MCLK_SPDIF_8CH_SRC, "mclk_spdif_8ch_src", cpll_gpll_p, 0, 72062306a36Sopenharmony_ci RK3568_CLKSEL_CON(23), 14, 1, MFLAGS, 0, 7, DFLAGS, 72162306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 14, GFLAGS), 72262306a36Sopenharmony_ci COMPOSITE_FRACMUX(MCLK_SPDIF_8CH_FRAC, "mclk_spdif_8ch_frac", "mclk_spdif_8ch_src", CLK_SET_RATE_PARENT, 72362306a36Sopenharmony_ci RK3568_CLKSEL_CON(24), 0, 72462306a36Sopenharmony_ci RK3568_CLKGATE_CON(7), 15, GFLAGS, 72562306a36Sopenharmony_ci &rk3568_spdif_8ch_fracmux), 72662306a36Sopenharmony_ci 72762306a36Sopenharmony_ci GATE(HCLK_AUDPWM, "hclk_audpwm", "hclk_gic_audio", 0, 72862306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 0, GFLAGS), 72962306a36Sopenharmony_ci COMPOSITE(SCLK_AUDPWM_SRC, "sclk_audpwm_src", gpll_cpll_p, 0, 73062306a36Sopenharmony_ci RK3568_CLKSEL_CON(25), 14, 1, MFLAGS, 0, 6, DFLAGS, 73162306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 1, GFLAGS), 73262306a36Sopenharmony_ci COMPOSITE_FRACMUX(SCLK_AUDPWM_FRAC, "sclk_audpwm_frac", "sclk_audpwm_src", CLK_SET_RATE_PARENT, 73362306a36Sopenharmony_ci RK3568_CLKSEL_CON(26), 0, 73462306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 2, GFLAGS, 73562306a36Sopenharmony_ci &rk3568_audpwm_fracmux), 73662306a36Sopenharmony_ci 73762306a36Sopenharmony_ci GATE(HCLK_ACDCDIG, "hclk_acdcdig", "hclk_gic_audio", 0, 73862306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 3, GFLAGS), 73962306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_ACDCDIG_I2C, "clk_acdcdig_i2c", clk_i2c_p, 0, 74062306a36Sopenharmony_ci RK3568_CLKSEL_CON(23), 10, 2, MFLAGS, 74162306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 4, GFLAGS), 74262306a36Sopenharmony_ci GATE(CLK_ACDCDIG_DAC, "clk_acdcdig_dac", "mclk_i2s3_2ch_tx", 0, 74362306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 5, GFLAGS), 74462306a36Sopenharmony_ci GATE(CLK_ACDCDIG_ADC, "clk_acdcdig_adc", "mclk_i2s3_2ch_rx", 0, 74562306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 6, GFLAGS), 74662306a36Sopenharmony_ci 74762306a36Sopenharmony_ci /* PD_SECURE_FLASH */ 74862306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_SECURE_FLASH, "aclk_secure_flash", gpll200_gpll150_gpll100_xin24m_p, 0, 74962306a36Sopenharmony_ci RK3568_CLKSEL_CON(27), 0, 2, MFLAGS, 75062306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 7, GFLAGS), 75162306a36Sopenharmony_ci COMPOSITE_NODIV(HCLK_SECURE_FLASH, "hclk_secure_flash", gpll150_gpll100_gpll75_xin24m_p, 0, 75262306a36Sopenharmony_ci RK3568_CLKSEL_CON(27), 2, 2, MFLAGS, 75362306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 8, GFLAGS), 75462306a36Sopenharmony_ci GATE(ACLK_CRYPTO_NS, "aclk_crypto_ns", "aclk_secure_flash", 0, 75562306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 11, GFLAGS), 75662306a36Sopenharmony_ci GATE(HCLK_CRYPTO_NS, "hclk_crypto_ns", "hclk_secure_flash", 0, 75762306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 12, GFLAGS), 75862306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_CRYPTO_NS_CORE, "clk_crypto_ns_core", gpll200_gpll150_gpll100_p, 0, 75962306a36Sopenharmony_ci RK3568_CLKSEL_CON(27), 4, 2, MFLAGS, 76062306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 13, GFLAGS), 76162306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_CRYPTO_NS_PKA, "clk_crypto_ns_pka", gpll300_gpll200_gpll100_p, 0, 76262306a36Sopenharmony_ci RK3568_CLKSEL_CON(27), 6, 2, MFLAGS, 76362306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 14, GFLAGS), 76462306a36Sopenharmony_ci GATE(CLK_CRYPTO_NS_RNG, "clk_crypto_ns_rng", "hclk_secure_flash", 0, 76562306a36Sopenharmony_ci RK3568_CLKGATE_CON(8), 15, GFLAGS), 76662306a36Sopenharmony_ci GATE(HCLK_TRNG_NS, "hclk_trng_ns", "hclk_secure_flash", CLK_IGNORE_UNUSED, 76762306a36Sopenharmony_ci RK3568_CLKGATE_CON(9), 10, GFLAGS), 76862306a36Sopenharmony_ci GATE(CLK_TRNG_NS, "clk_trng_ns", "hclk_secure_flash", CLK_IGNORE_UNUSED, 76962306a36Sopenharmony_ci RK3568_CLKGATE_CON(9), 11, GFLAGS), 77062306a36Sopenharmony_ci GATE(PCLK_OTPC_NS, "pclk_otpc_ns", "hclk_secure_flash", 0, 77162306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 9, GFLAGS), 77262306a36Sopenharmony_ci GATE(CLK_OTPC_NS_SBPI, "clk_otpc_ns_sbpi", "xin24m", 0, 77362306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 10, GFLAGS), 77462306a36Sopenharmony_ci GATE(CLK_OTPC_NS_USR, "clk_otpc_ns_usr", "xin_osc0_half", 0, 77562306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 11, GFLAGS), 77662306a36Sopenharmony_ci GATE(HCLK_NANDC, "hclk_nandc", "hclk_secure_flash", 0, 77762306a36Sopenharmony_ci RK3568_CLKGATE_CON(9), 0, GFLAGS), 77862306a36Sopenharmony_ci COMPOSITE_NODIV(NCLK_NANDC, "nclk_nandc", clk_nandc_p, 0, 77962306a36Sopenharmony_ci RK3568_CLKSEL_CON(28), 0, 2, MFLAGS, 78062306a36Sopenharmony_ci RK3568_CLKGATE_CON(9), 1, GFLAGS), 78162306a36Sopenharmony_ci GATE(HCLK_SFC, "hclk_sfc", "hclk_secure_flash", 0, 78262306a36Sopenharmony_ci RK3568_CLKGATE_CON(9), 2, GFLAGS), 78362306a36Sopenharmony_ci GATE(HCLK_SFC_XIP, "hclk_sfc_xip", "hclk_secure_flash", 0, 78462306a36Sopenharmony_ci RK3568_CLKGATE_CON(9), 3, GFLAGS), 78562306a36Sopenharmony_ci COMPOSITE_NODIV(SCLK_SFC, "sclk_sfc", sclk_sfc_p, 0, 78662306a36Sopenharmony_ci RK3568_CLKSEL_CON(28), 4, 3, MFLAGS, 78762306a36Sopenharmony_ci RK3568_CLKGATE_CON(9), 4, GFLAGS), 78862306a36Sopenharmony_ci GATE(ACLK_EMMC, "aclk_emmc", "aclk_secure_flash", 0, 78962306a36Sopenharmony_ci RK3568_CLKGATE_CON(9), 5, GFLAGS), 79062306a36Sopenharmony_ci GATE(HCLK_EMMC, "hclk_emmc", "hclk_secure_flash", 0, 79162306a36Sopenharmony_ci RK3568_CLKGATE_CON(9), 6, GFLAGS), 79262306a36Sopenharmony_ci COMPOSITE_NODIV(BCLK_EMMC, "bclk_emmc", gpll200_gpll150_cpll125_p, 0, 79362306a36Sopenharmony_ci RK3568_CLKSEL_CON(28), 8, 2, MFLAGS, 79462306a36Sopenharmony_ci RK3568_CLKGATE_CON(9), 7, GFLAGS), 79562306a36Sopenharmony_ci COMPOSITE_NODIV(CCLK_EMMC, "cclk_emmc", cclk_emmc_p, 0, 79662306a36Sopenharmony_ci RK3568_CLKSEL_CON(28), 12, 3, MFLAGS, 79762306a36Sopenharmony_ci RK3568_CLKGATE_CON(9), 8, GFLAGS), 79862306a36Sopenharmony_ci GATE(TCLK_EMMC, "tclk_emmc", "xin24m", 0, 79962306a36Sopenharmony_ci RK3568_CLKGATE_CON(9), 9, GFLAGS), 80062306a36Sopenharmony_ci MMC(SCLK_EMMC_DRV, "emmc_drv", "cclk_emmc", RK3568_EMMC_CON0, 1), 80162306a36Sopenharmony_ci MMC(SCLK_EMMC_SAMPLE, "emmc_sample", "cclk_emmc", RK3568_EMMC_CON1, 1), 80262306a36Sopenharmony_ci 80362306a36Sopenharmony_ci /* PD_PIPE */ 80462306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_PIPE, "aclk_pipe", aclk_pipe_p, 0, 80562306a36Sopenharmony_ci RK3568_CLKSEL_CON(29), 0, 2, MFLAGS, 80662306a36Sopenharmony_ci RK3568_CLKGATE_CON(10), 0, GFLAGS), 80762306a36Sopenharmony_ci COMPOSITE_NOMUX(PCLK_PIPE, "pclk_pipe", "aclk_pipe", 0, 80862306a36Sopenharmony_ci RK3568_CLKSEL_CON(29), 4, 4, DFLAGS, 80962306a36Sopenharmony_ci RK3568_CLKGATE_CON(10), 1, GFLAGS), 81062306a36Sopenharmony_ci GATE(ACLK_PCIE20_MST, "aclk_pcie20_mst", "aclk_pipe", 0, 81162306a36Sopenharmony_ci RK3568_CLKGATE_CON(12), 0, GFLAGS), 81262306a36Sopenharmony_ci GATE(ACLK_PCIE20_SLV, "aclk_pcie20_slv", "aclk_pipe", 0, 81362306a36Sopenharmony_ci RK3568_CLKGATE_CON(12), 1, GFLAGS), 81462306a36Sopenharmony_ci GATE(ACLK_PCIE20_DBI, "aclk_pcie20_dbi", "aclk_pipe", 0, 81562306a36Sopenharmony_ci RK3568_CLKGATE_CON(12), 2, GFLAGS), 81662306a36Sopenharmony_ci GATE(PCLK_PCIE20, "pclk_pcie20", "pclk_pipe", 0, 81762306a36Sopenharmony_ci RK3568_CLKGATE_CON(12), 3, GFLAGS), 81862306a36Sopenharmony_ci GATE(CLK_PCIE20_AUX_NDFT, "clk_pcie20_aux_ndft", "xin24m", 0, 81962306a36Sopenharmony_ci RK3568_CLKGATE_CON(12), 4, GFLAGS), 82062306a36Sopenharmony_ci GATE(ACLK_PCIE30X1_MST, "aclk_pcie30x1_mst", "aclk_pipe", 0, 82162306a36Sopenharmony_ci RK3568_CLKGATE_CON(12), 8, GFLAGS), 82262306a36Sopenharmony_ci GATE(ACLK_PCIE30X1_SLV, "aclk_pcie30x1_slv", "aclk_pipe", 0, 82362306a36Sopenharmony_ci RK3568_CLKGATE_CON(12), 9, GFLAGS), 82462306a36Sopenharmony_ci GATE(ACLK_PCIE30X1_DBI, "aclk_pcie30x1_dbi", "aclk_pipe", 0, 82562306a36Sopenharmony_ci RK3568_CLKGATE_CON(12), 10, GFLAGS), 82662306a36Sopenharmony_ci GATE(PCLK_PCIE30X1, "pclk_pcie30x1", "pclk_pipe", 0, 82762306a36Sopenharmony_ci RK3568_CLKGATE_CON(12), 11, GFLAGS), 82862306a36Sopenharmony_ci GATE(CLK_PCIE30X1_AUX_NDFT, "clk_pcie30x1_aux_ndft", "xin24m", 0, 82962306a36Sopenharmony_ci RK3568_CLKGATE_CON(12), 12, GFLAGS), 83062306a36Sopenharmony_ci GATE(ACLK_PCIE30X2_MST, "aclk_pcie30x2_mst", "aclk_pipe", 0, 83162306a36Sopenharmony_ci RK3568_CLKGATE_CON(13), 0, GFLAGS), 83262306a36Sopenharmony_ci GATE(ACLK_PCIE30X2_SLV, "aclk_pcie30x2_slv", "aclk_pipe", 0, 83362306a36Sopenharmony_ci RK3568_CLKGATE_CON(13), 1, GFLAGS), 83462306a36Sopenharmony_ci GATE(ACLK_PCIE30X2_DBI, "aclk_pcie30x2_dbi", "aclk_pipe", 0, 83562306a36Sopenharmony_ci RK3568_CLKGATE_CON(13), 2, GFLAGS), 83662306a36Sopenharmony_ci GATE(PCLK_PCIE30X2, "pclk_pcie30x2", "pclk_pipe", 0, 83762306a36Sopenharmony_ci RK3568_CLKGATE_CON(13), 3, GFLAGS), 83862306a36Sopenharmony_ci GATE(CLK_PCIE30X2_AUX_NDFT, "clk_pcie30x2_aux_ndft", "xin24m", 0, 83962306a36Sopenharmony_ci RK3568_CLKGATE_CON(13), 4, GFLAGS), 84062306a36Sopenharmony_ci GATE(ACLK_SATA0, "aclk_sata0", "aclk_pipe", 0, 84162306a36Sopenharmony_ci RK3568_CLKGATE_CON(11), 0, GFLAGS), 84262306a36Sopenharmony_ci GATE(CLK_SATA0_PMALIVE, "clk_sata0_pmalive", "gpll_20m", 0, 84362306a36Sopenharmony_ci RK3568_CLKGATE_CON(11), 1, GFLAGS), 84462306a36Sopenharmony_ci GATE(CLK_SATA0_RXOOB, "clk_sata0_rxoob", "cpll_50m", 0, 84562306a36Sopenharmony_ci RK3568_CLKGATE_CON(11), 2, GFLAGS), 84662306a36Sopenharmony_ci GATE(ACLK_SATA1, "aclk_sata1", "aclk_pipe", 0, 84762306a36Sopenharmony_ci RK3568_CLKGATE_CON(11), 4, GFLAGS), 84862306a36Sopenharmony_ci GATE(CLK_SATA1_PMALIVE, "clk_sata1_pmalive", "gpll_20m", 0, 84962306a36Sopenharmony_ci RK3568_CLKGATE_CON(11), 5, GFLAGS), 85062306a36Sopenharmony_ci GATE(CLK_SATA1_RXOOB, "clk_sata1_rxoob", "cpll_50m", 0, 85162306a36Sopenharmony_ci RK3568_CLKGATE_CON(11), 6, GFLAGS), 85262306a36Sopenharmony_ci GATE(ACLK_SATA2, "aclk_sata2", "aclk_pipe", 0, 85362306a36Sopenharmony_ci RK3568_CLKGATE_CON(11), 8, GFLAGS), 85462306a36Sopenharmony_ci GATE(CLK_SATA2_PMALIVE, "clk_sata2_pmalive", "gpll_20m", 0, 85562306a36Sopenharmony_ci RK3568_CLKGATE_CON(11), 9, GFLAGS), 85662306a36Sopenharmony_ci GATE(CLK_SATA2_RXOOB, "clk_sata2_rxoob", "cpll_50m", 0, 85762306a36Sopenharmony_ci RK3568_CLKGATE_CON(11), 10, GFLAGS), 85862306a36Sopenharmony_ci GATE(ACLK_USB3OTG0, "aclk_usb3otg0", "aclk_pipe", 0, 85962306a36Sopenharmony_ci RK3568_CLKGATE_CON(10), 8, GFLAGS), 86062306a36Sopenharmony_ci GATE(CLK_USB3OTG0_REF, "clk_usb3otg0_ref", "xin24m", 0, 86162306a36Sopenharmony_ci RK3568_CLKGATE_CON(10), 9, GFLAGS), 86262306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_USB3OTG0_SUSPEND, "clk_usb3otg0_suspend", xin24m_32k_p, 0, 86362306a36Sopenharmony_ci RK3568_CLKSEL_CON(29), 8, 1, MFLAGS, 86462306a36Sopenharmony_ci RK3568_CLKGATE_CON(10), 10, GFLAGS), 86562306a36Sopenharmony_ci GATE(ACLK_USB3OTG1, "aclk_usb3otg1", "aclk_pipe", 0, 86662306a36Sopenharmony_ci RK3568_CLKGATE_CON(10), 12, GFLAGS), 86762306a36Sopenharmony_ci GATE(CLK_USB3OTG1_REF, "clk_usb3otg1_ref", "xin24m", 0, 86862306a36Sopenharmony_ci RK3568_CLKGATE_CON(10), 13, GFLAGS), 86962306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_USB3OTG1_SUSPEND, "clk_usb3otg1_suspend", xin24m_32k_p, 0, 87062306a36Sopenharmony_ci RK3568_CLKSEL_CON(29), 9, 1, MFLAGS, 87162306a36Sopenharmony_ci RK3568_CLKGATE_CON(10), 14, GFLAGS), 87262306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_XPCS_EEE, "clk_xpcs_eee", gpll200_cpll125_p, 0, 87362306a36Sopenharmony_ci RK3568_CLKSEL_CON(29), 13, 1, MFLAGS, 87462306a36Sopenharmony_ci RK3568_CLKGATE_CON(10), 4, GFLAGS), 87562306a36Sopenharmony_ci GATE(PCLK_XPCS, "pclk_xpcs", "pclk_pipe", 0, 87662306a36Sopenharmony_ci RK3568_CLKGATE_CON(13), 6, GFLAGS), 87762306a36Sopenharmony_ci 87862306a36Sopenharmony_ci /* PD_PHP */ 87962306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_PHP, "aclk_php", gpll300_gpll200_gpll100_xin24m_p, 0, 88062306a36Sopenharmony_ci RK3568_CLKSEL_CON(30), 0, 2, MFLAGS, 88162306a36Sopenharmony_ci RK3568_CLKGATE_CON(14), 8, GFLAGS), 88262306a36Sopenharmony_ci COMPOSITE_NODIV(HCLK_PHP, "hclk_php", gpll150_gpll100_gpll75_xin24m_p, 0, 88362306a36Sopenharmony_ci RK3568_CLKSEL_CON(30), 2, 2, MFLAGS, 88462306a36Sopenharmony_ci RK3568_CLKGATE_CON(14), 9, GFLAGS), 88562306a36Sopenharmony_ci COMPOSITE_NOMUX(PCLK_PHP, "pclk_php", "aclk_php", 0, 88662306a36Sopenharmony_ci RK3568_CLKSEL_CON(30), 4, 4, DFLAGS, 88762306a36Sopenharmony_ci RK3568_CLKGATE_CON(14), 10, GFLAGS), 88862306a36Sopenharmony_ci GATE(HCLK_SDMMC0, "hclk_sdmmc0", "hclk_php", 0, 88962306a36Sopenharmony_ci RK3568_CLKGATE_CON(15), 0, GFLAGS), 89062306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_SDMMC0, "clk_sdmmc0", clk_sdmmc_p, 0, 89162306a36Sopenharmony_ci RK3568_CLKSEL_CON(30), 8, 3, MFLAGS, 89262306a36Sopenharmony_ci RK3568_CLKGATE_CON(15), 1, GFLAGS), 89362306a36Sopenharmony_ci MMC(SCLK_SDMMC0_DRV, "sdmmc0_drv", "clk_sdmmc0", RK3568_SDMMC0_CON0, 1), 89462306a36Sopenharmony_ci MMC(SCLK_SDMMC0_SAMPLE, "sdmmc0_sample", "clk_sdmmc0", RK3568_SDMMC0_CON1, 1), 89562306a36Sopenharmony_ci 89662306a36Sopenharmony_ci GATE(HCLK_SDMMC1, "hclk_sdmmc1", "hclk_php", 0, 89762306a36Sopenharmony_ci RK3568_CLKGATE_CON(15), 2, GFLAGS), 89862306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_SDMMC1, "clk_sdmmc1", clk_sdmmc_p, 0, 89962306a36Sopenharmony_ci RK3568_CLKSEL_CON(30), 12, 3, MFLAGS, 90062306a36Sopenharmony_ci RK3568_CLKGATE_CON(15), 3, GFLAGS), 90162306a36Sopenharmony_ci MMC(SCLK_SDMMC1_DRV, "sdmmc1_drv", "clk_sdmmc1", RK3568_SDMMC1_CON0, 1), 90262306a36Sopenharmony_ci MMC(SCLK_SDMMC1_SAMPLE, "sdmmc1_sample", "clk_sdmmc1", RK3568_SDMMC1_CON1, 1), 90362306a36Sopenharmony_ci 90462306a36Sopenharmony_ci GATE(ACLK_GMAC0, "aclk_gmac0", "aclk_php", 0, 90562306a36Sopenharmony_ci RK3568_CLKGATE_CON(15), 5, GFLAGS), 90662306a36Sopenharmony_ci GATE(PCLK_GMAC0, "pclk_gmac0", "pclk_php", 0, 90762306a36Sopenharmony_ci RK3568_CLKGATE_CON(15), 6, GFLAGS), 90862306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_MAC0_2TOP, "clk_mac0_2top", clk_mac_2top_p, 0, 90962306a36Sopenharmony_ci RK3568_CLKSEL_CON(31), 8, 2, MFLAGS, 91062306a36Sopenharmony_ci RK3568_CLKGATE_CON(15), 7, GFLAGS), 91162306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_MAC0_OUT, "clk_mac0_out", cpll125_cpll50_cpll25_xin24m_p, 0, 91262306a36Sopenharmony_ci RK3568_CLKSEL_CON(31), 14, 2, MFLAGS, 91362306a36Sopenharmony_ci RK3568_CLKGATE_CON(15), 8, GFLAGS), 91462306a36Sopenharmony_ci GATE(CLK_MAC0_REFOUT, "clk_mac0_refout", "clk_mac0_2top", 0, 91562306a36Sopenharmony_ci RK3568_CLKGATE_CON(15), 12, GFLAGS), 91662306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_GMAC0_PTP_REF, "clk_gmac0_ptp_ref", clk_gmac_ptp_p, 0, 91762306a36Sopenharmony_ci RK3568_CLKSEL_CON(31), 12, 2, MFLAGS, 91862306a36Sopenharmony_ci RK3568_CLKGATE_CON(15), 4, GFLAGS), 91962306a36Sopenharmony_ci MUX(SCLK_GMAC0, "clk_gmac0", mux_gmac0_p, CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT, 92062306a36Sopenharmony_ci RK3568_CLKSEL_CON(31), 2, 1, MFLAGS), 92162306a36Sopenharmony_ci FACTOR(0, "clk_gmac0_tx_div5", "clk_gmac0", 0, 1, 5), 92262306a36Sopenharmony_ci FACTOR(0, "clk_gmac0_tx_div50", "clk_gmac0", 0, 1, 50), 92362306a36Sopenharmony_ci FACTOR(0, "clk_gmac0_rx_div2", "clk_gmac0", 0, 1, 2), 92462306a36Sopenharmony_ci FACTOR(0, "clk_gmac0_rx_div20", "clk_gmac0", 0, 1, 20), 92562306a36Sopenharmony_ci MUX(SCLK_GMAC0_RGMII_SPEED, "clk_gmac0_rgmii_speed", mux_gmac0_rgmii_speed_p, 0, 92662306a36Sopenharmony_ci RK3568_CLKSEL_CON(31), 4, 2, MFLAGS), 92762306a36Sopenharmony_ci MUX(SCLK_GMAC0_RMII_SPEED, "clk_gmac0_rmii_speed", mux_gmac0_rmii_speed_p, 0, 92862306a36Sopenharmony_ci RK3568_CLKSEL_CON(31), 3, 1, MFLAGS), 92962306a36Sopenharmony_ci MUX(SCLK_GMAC0_RX_TX, "clk_gmac0_rx_tx", mux_gmac0_rx_tx_p, CLK_SET_RATE_PARENT, 93062306a36Sopenharmony_ci RK3568_CLKSEL_CON(31), 0, 2, MFLAGS), 93162306a36Sopenharmony_ci 93262306a36Sopenharmony_ci /* PD_USB */ 93362306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_USB, "aclk_usb", gpll300_gpll200_gpll100_xin24m_p, 0, 93462306a36Sopenharmony_ci RK3568_CLKSEL_CON(32), 0, 2, MFLAGS, 93562306a36Sopenharmony_ci RK3568_CLKGATE_CON(16), 0, GFLAGS), 93662306a36Sopenharmony_ci COMPOSITE_NODIV(HCLK_USB, "hclk_usb", gpll150_gpll100_gpll75_xin24m_p, 0, 93762306a36Sopenharmony_ci RK3568_CLKSEL_CON(32), 2, 2, MFLAGS, 93862306a36Sopenharmony_ci RK3568_CLKGATE_CON(16), 1, GFLAGS), 93962306a36Sopenharmony_ci COMPOSITE_NOMUX(PCLK_USB, "pclk_usb", "aclk_usb", 0, 94062306a36Sopenharmony_ci RK3568_CLKSEL_CON(32), 4, 4, DFLAGS, 94162306a36Sopenharmony_ci RK3568_CLKGATE_CON(16), 2, GFLAGS), 94262306a36Sopenharmony_ci GATE(HCLK_USB2HOST0, "hclk_usb2host0", "hclk_usb", 0, 94362306a36Sopenharmony_ci RK3568_CLKGATE_CON(16), 12, GFLAGS), 94462306a36Sopenharmony_ci GATE(HCLK_USB2HOST0_ARB, "hclk_usb2host0_arb", "hclk_usb", 0, 94562306a36Sopenharmony_ci RK3568_CLKGATE_CON(16), 13, GFLAGS), 94662306a36Sopenharmony_ci GATE(HCLK_USB2HOST1, "hclk_usb2host1", "hclk_usb", 0, 94762306a36Sopenharmony_ci RK3568_CLKGATE_CON(16), 14, GFLAGS), 94862306a36Sopenharmony_ci GATE(HCLK_USB2HOST1_ARB, "hclk_usb2host1_arb", "hclk_usb", 0, 94962306a36Sopenharmony_ci RK3568_CLKGATE_CON(16), 15, GFLAGS), 95062306a36Sopenharmony_ci GATE(HCLK_SDMMC2, "hclk_sdmmc2", "hclk_usb", 0, 95162306a36Sopenharmony_ci RK3568_CLKGATE_CON(17), 0, GFLAGS), 95262306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_SDMMC2, "clk_sdmmc2", clk_sdmmc_p, 0, 95362306a36Sopenharmony_ci RK3568_CLKSEL_CON(32), 8, 3, MFLAGS, 95462306a36Sopenharmony_ci RK3568_CLKGATE_CON(17), 1, GFLAGS), 95562306a36Sopenharmony_ci MMC(SCLK_SDMMC2_DRV, "sdmmc2_drv", "clk_sdmmc2", RK3568_SDMMC2_CON0, 1), 95662306a36Sopenharmony_ci MMC(SCLK_SDMMC2_SAMPLE, "sdmmc2_sample", "clk_sdmmc2", RK3568_SDMMC2_CON1, 1), 95762306a36Sopenharmony_ci 95862306a36Sopenharmony_ci GATE(ACLK_GMAC1, "aclk_gmac1", "aclk_usb", 0, 95962306a36Sopenharmony_ci RK3568_CLKGATE_CON(17), 3, GFLAGS), 96062306a36Sopenharmony_ci GATE(PCLK_GMAC1, "pclk_gmac1", "pclk_usb", 0, 96162306a36Sopenharmony_ci RK3568_CLKGATE_CON(17), 4, GFLAGS), 96262306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_MAC1_2TOP, "clk_mac1_2top", clk_mac_2top_p, 0, 96362306a36Sopenharmony_ci RK3568_CLKSEL_CON(33), 8, 2, MFLAGS, 96462306a36Sopenharmony_ci RK3568_CLKGATE_CON(17), 5, GFLAGS), 96562306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_MAC1_OUT, "clk_mac1_out", cpll125_cpll50_cpll25_xin24m_p, 0, 96662306a36Sopenharmony_ci RK3568_CLKSEL_CON(33), 14, 2, MFLAGS, 96762306a36Sopenharmony_ci RK3568_CLKGATE_CON(17), 6, GFLAGS), 96862306a36Sopenharmony_ci GATE(CLK_MAC1_REFOUT, "clk_mac1_refout", "clk_mac1_2top", 0, 96962306a36Sopenharmony_ci RK3568_CLKGATE_CON(17), 10, GFLAGS), 97062306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_GMAC1_PTP_REF, "clk_gmac1_ptp_ref", clk_gmac_ptp_p, 0, 97162306a36Sopenharmony_ci RK3568_CLKSEL_CON(33), 12, 2, MFLAGS, 97262306a36Sopenharmony_ci RK3568_CLKGATE_CON(17), 2, GFLAGS), 97362306a36Sopenharmony_ci MUX(SCLK_GMAC1, "clk_gmac1", mux_gmac1_p, CLK_SET_RATE_PARENT | CLK_SET_RATE_NO_REPARENT, 97462306a36Sopenharmony_ci RK3568_CLKSEL_CON(33), 2, 1, MFLAGS), 97562306a36Sopenharmony_ci FACTOR(0, "clk_gmac1_tx_div5", "clk_gmac1", 0, 1, 5), 97662306a36Sopenharmony_ci FACTOR(0, "clk_gmac1_tx_div50", "clk_gmac1", 0, 1, 50), 97762306a36Sopenharmony_ci FACTOR(0, "clk_gmac1_rx_div2", "clk_gmac1", 0, 1, 2), 97862306a36Sopenharmony_ci FACTOR(0, "clk_gmac1_rx_div20", "clk_gmac1", 0, 1, 20), 97962306a36Sopenharmony_ci MUX(SCLK_GMAC1_RGMII_SPEED, "clk_gmac1_rgmii_speed", mux_gmac1_rgmii_speed_p, 0, 98062306a36Sopenharmony_ci RK3568_CLKSEL_CON(33), 4, 2, MFLAGS), 98162306a36Sopenharmony_ci MUX(SCLK_GMAC1_RMII_SPEED, "clk_gmac1_rmii_speed", mux_gmac1_rmii_speed_p, 0, 98262306a36Sopenharmony_ci RK3568_CLKSEL_CON(33), 3, 1, MFLAGS), 98362306a36Sopenharmony_ci MUX(SCLK_GMAC1_RX_TX, "clk_gmac1_rx_tx", mux_gmac1_rx_tx_p, CLK_SET_RATE_PARENT, 98462306a36Sopenharmony_ci RK3568_CLKSEL_CON(33), 0, 2, MFLAGS), 98562306a36Sopenharmony_ci 98662306a36Sopenharmony_ci /* PD_PERI */ 98762306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_PERIMID, "aclk_perimid", gpll300_gpll200_gpll100_xin24m_p, CLK_IGNORE_UNUSED, 98862306a36Sopenharmony_ci RK3568_CLKSEL_CON(10), 4, 2, MFLAGS, 98962306a36Sopenharmony_ci RK3568_CLKGATE_CON(14), 0, GFLAGS), 99062306a36Sopenharmony_ci COMPOSITE_NODIV(HCLK_PERIMID, "hclk_perimid", gpll150_gpll100_gpll75_xin24m_p, CLK_IGNORE_UNUSED, 99162306a36Sopenharmony_ci RK3568_CLKSEL_CON(10), 6, 2, MFLAGS, 99262306a36Sopenharmony_ci RK3568_CLKGATE_CON(14), 1, GFLAGS), 99362306a36Sopenharmony_ci 99462306a36Sopenharmony_ci /* PD_VI */ 99562306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_VI, "aclk_vi", gpll400_gpll300_gpll200_xin24m_p, 0, 99662306a36Sopenharmony_ci RK3568_CLKSEL_CON(34), 0, 2, MFLAGS, 99762306a36Sopenharmony_ci RK3568_CLKGATE_CON(18), 0, GFLAGS), 99862306a36Sopenharmony_ci COMPOSITE_NOMUX(HCLK_VI, "hclk_vi", "aclk_vi", 0, 99962306a36Sopenharmony_ci RK3568_CLKSEL_CON(34), 4, 4, DFLAGS, 100062306a36Sopenharmony_ci RK3568_CLKGATE_CON(18), 1, GFLAGS), 100162306a36Sopenharmony_ci COMPOSITE_NOMUX(PCLK_VI, "pclk_vi", "aclk_vi", 0, 100262306a36Sopenharmony_ci RK3568_CLKSEL_CON(34), 8, 4, DFLAGS, 100362306a36Sopenharmony_ci RK3568_CLKGATE_CON(18), 2, GFLAGS), 100462306a36Sopenharmony_ci GATE(ACLK_VICAP, "aclk_vicap", "aclk_vi", 0, 100562306a36Sopenharmony_ci RK3568_CLKGATE_CON(18), 9, GFLAGS), 100662306a36Sopenharmony_ci GATE(HCLK_VICAP, "hclk_vicap", "hclk_vi", 0, 100762306a36Sopenharmony_ci RK3568_CLKGATE_CON(18), 10, GFLAGS), 100862306a36Sopenharmony_ci COMPOSITE_NODIV(DCLK_VICAP, "dclk_vicap", cpll333_gpll300_gpll200_p, 0, 100962306a36Sopenharmony_ci RK3568_CLKSEL_CON(34), 14, 2, MFLAGS, 101062306a36Sopenharmony_ci RK3568_CLKGATE_CON(18), 11, GFLAGS), 101162306a36Sopenharmony_ci GATE(ICLK_VICAP_G, "iclk_vicap_g", "iclk_vicap", 0, 101262306a36Sopenharmony_ci RK3568_CLKGATE_CON(18), 13, GFLAGS), 101362306a36Sopenharmony_ci GATE(ACLK_ISP, "aclk_isp", "aclk_vi", 0, 101462306a36Sopenharmony_ci RK3568_CLKGATE_CON(19), 0, GFLAGS), 101562306a36Sopenharmony_ci GATE(HCLK_ISP, "hclk_isp", "hclk_vi", 0, 101662306a36Sopenharmony_ci RK3568_CLKGATE_CON(19), 1, GFLAGS), 101762306a36Sopenharmony_ci COMPOSITE(CLK_ISP, "clk_isp", cpll_gpll_hpll_p, 0, 101862306a36Sopenharmony_ci RK3568_CLKSEL_CON(35), 6, 2, MFLAGS, 0, 5, DFLAGS, 101962306a36Sopenharmony_ci RK3568_CLKGATE_CON(19), 2, GFLAGS), 102062306a36Sopenharmony_ci GATE(PCLK_CSI2HOST1, "pclk_csi2host1", "pclk_vi", 0, 102162306a36Sopenharmony_ci RK3568_CLKGATE_CON(19), 4, GFLAGS), 102262306a36Sopenharmony_ci COMPOSITE(CLK_CIF_OUT, "clk_cif_out", gpll_usb480m_xin24m_p, 0, 102362306a36Sopenharmony_ci RK3568_CLKSEL_CON(35), 14, 2, MFLAGS, 8, 6, DFLAGS, 102462306a36Sopenharmony_ci RK3568_CLKGATE_CON(19), 8, GFLAGS), 102562306a36Sopenharmony_ci COMPOSITE(CLK_CAM0_OUT, "clk_cam0_out", gpll_usb480m_xin24m_p, 0, 102662306a36Sopenharmony_ci RK3568_CLKSEL_CON(36), 6, 2, MFLAGS, 0, 6, DFLAGS, 102762306a36Sopenharmony_ci RK3568_CLKGATE_CON(19), 9, GFLAGS), 102862306a36Sopenharmony_ci COMPOSITE(CLK_CAM1_OUT, "clk_cam1_out", gpll_usb480m_xin24m_p, 0, 102962306a36Sopenharmony_ci RK3568_CLKSEL_CON(36), 14, 2, MFLAGS, 8, 6, DFLAGS, 103062306a36Sopenharmony_ci RK3568_CLKGATE_CON(19), 10, GFLAGS), 103162306a36Sopenharmony_ci 103262306a36Sopenharmony_ci /* PD_VO */ 103362306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_VO, "aclk_vo", gpll300_cpll250_gpll100_xin24m_p, 0, 103462306a36Sopenharmony_ci RK3568_CLKSEL_CON(37), 0, 2, MFLAGS, 103562306a36Sopenharmony_ci RK3568_CLKGATE_CON(20), 0, GFLAGS), 103662306a36Sopenharmony_ci COMPOSITE_NOMUX(HCLK_VO, "hclk_vo", "aclk_vo", 0, 103762306a36Sopenharmony_ci RK3568_CLKSEL_CON(37), 8, 4, DFLAGS, 103862306a36Sopenharmony_ci RK3568_CLKGATE_CON(20), 1, GFLAGS), 103962306a36Sopenharmony_ci COMPOSITE_NOMUX(PCLK_VO, "pclk_vo", "aclk_vo", 0, 104062306a36Sopenharmony_ci RK3568_CLKSEL_CON(37), 12, 4, DFLAGS, 104162306a36Sopenharmony_ci RK3568_CLKGATE_CON(20), 2, GFLAGS), 104262306a36Sopenharmony_ci COMPOSITE(ACLK_VOP_PRE, "aclk_vop_pre", cpll_gpll_hpll_vpll_p, 0, 104362306a36Sopenharmony_ci RK3568_CLKSEL_CON(38), 6, 2, MFLAGS, 0, 5, DFLAGS, 104462306a36Sopenharmony_ci RK3568_CLKGATE_CON(20), 6, GFLAGS), 104562306a36Sopenharmony_ci GATE(ACLK_VOP, "aclk_vop", "aclk_vop_pre", 0, 104662306a36Sopenharmony_ci RK3568_CLKGATE_CON(20), 8, GFLAGS), 104762306a36Sopenharmony_ci GATE(HCLK_VOP, "hclk_vop", "hclk_vo", 0, 104862306a36Sopenharmony_ci RK3568_CLKGATE_CON(20), 9, GFLAGS), 104962306a36Sopenharmony_ci COMPOSITE(DCLK_VOP0, "dclk_vop0", hpll_vpll_gpll_cpll_p, CLK_SET_RATE_NO_REPARENT, 105062306a36Sopenharmony_ci RK3568_CLKSEL_CON(39), 10, 2, MFLAGS, 0, 8, DFLAGS, 105162306a36Sopenharmony_ci RK3568_CLKGATE_CON(20), 10, GFLAGS), 105262306a36Sopenharmony_ci COMPOSITE(DCLK_VOP1, "dclk_vop1", hpll_vpll_gpll_cpll_p, CLK_SET_RATE_NO_REPARENT, 105362306a36Sopenharmony_ci RK3568_CLKSEL_CON(40), 10, 2, MFLAGS, 0, 8, DFLAGS, 105462306a36Sopenharmony_ci RK3568_CLKGATE_CON(20), 11, GFLAGS), 105562306a36Sopenharmony_ci COMPOSITE(DCLK_VOP2, "dclk_vop2", hpll_vpll_gpll_cpll_p, CLK_SET_RATE_NO_REPARENT, 105662306a36Sopenharmony_ci RK3568_CLKSEL_CON(41), 10, 2, MFLAGS, 0, 8, DFLAGS, 105762306a36Sopenharmony_ci RK3568_CLKGATE_CON(20), 12, GFLAGS), 105862306a36Sopenharmony_ci GATE(CLK_VOP_PWM, "clk_vop_pwm", "xin24m", 0, 105962306a36Sopenharmony_ci RK3568_CLKGATE_CON(20), 13, GFLAGS), 106062306a36Sopenharmony_ci GATE(ACLK_HDCP, "aclk_hdcp", "aclk_vo", 0, 106162306a36Sopenharmony_ci RK3568_CLKGATE_CON(21), 0, GFLAGS), 106262306a36Sopenharmony_ci GATE(HCLK_HDCP, "hclk_hdcp", "hclk_vo", 0, 106362306a36Sopenharmony_ci RK3568_CLKGATE_CON(21), 1, GFLAGS), 106462306a36Sopenharmony_ci GATE(PCLK_HDCP, "pclk_hdcp", "pclk_vo", 0, 106562306a36Sopenharmony_ci RK3568_CLKGATE_CON(21), 2, GFLAGS), 106662306a36Sopenharmony_ci GATE(PCLK_HDMI_HOST, "pclk_hdmi_host", "pclk_vo", 0, 106762306a36Sopenharmony_ci RK3568_CLKGATE_CON(21), 3, GFLAGS), 106862306a36Sopenharmony_ci GATE(CLK_HDMI_SFR, "clk_hdmi_sfr", "xin24m", 0, 106962306a36Sopenharmony_ci RK3568_CLKGATE_CON(21), 4, GFLAGS), 107062306a36Sopenharmony_ci GATE(CLK_HDMI_CEC, "clk_hdmi_cec", "clk_rtc_32k", 0, 107162306a36Sopenharmony_ci RK3568_CLKGATE_CON(21), 5, GFLAGS), 107262306a36Sopenharmony_ci GATE(PCLK_DSITX_0, "pclk_dsitx_0", "pclk_vo", 0, 107362306a36Sopenharmony_ci RK3568_CLKGATE_CON(21), 6, GFLAGS), 107462306a36Sopenharmony_ci GATE(PCLK_DSITX_1, "pclk_dsitx_1", "pclk_vo", 0, 107562306a36Sopenharmony_ci RK3568_CLKGATE_CON(21), 7, GFLAGS), 107662306a36Sopenharmony_ci GATE(PCLK_EDP_CTRL, "pclk_edp_ctrl", "pclk_vo", 0, 107762306a36Sopenharmony_ci RK3568_CLKGATE_CON(21), 8, GFLAGS), 107862306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_EDP_200M, "clk_edp_200m", gpll200_gpll150_cpll125_p, 0, 107962306a36Sopenharmony_ci RK3568_CLKSEL_CON(38), 8, 2, MFLAGS, 108062306a36Sopenharmony_ci RK3568_CLKGATE_CON(21), 9, GFLAGS), 108162306a36Sopenharmony_ci 108262306a36Sopenharmony_ci /* PD_VPU */ 108362306a36Sopenharmony_ci COMPOSITE(ACLK_VPU_PRE, "aclk_vpu_pre", gpll_cpll_p, 0, 108462306a36Sopenharmony_ci RK3568_CLKSEL_CON(42), 7, 1, MFLAGS, 0, 5, DFLAGS, 108562306a36Sopenharmony_ci RK3568_CLKGATE_CON(22), 0, GFLAGS), 108662306a36Sopenharmony_ci COMPOSITE_NOMUX(HCLK_VPU_PRE, "hclk_vpu_pre", "aclk_vpu_pre", 0, 108762306a36Sopenharmony_ci RK3568_CLKSEL_CON(42), 8, 4, DFLAGS, 108862306a36Sopenharmony_ci RK3568_CLKGATE_CON(22), 1, GFLAGS), 108962306a36Sopenharmony_ci GATE(ACLK_VPU, "aclk_vpu", "aclk_vpu_pre", 0, 109062306a36Sopenharmony_ci RK3568_CLKGATE_CON(22), 4, GFLAGS), 109162306a36Sopenharmony_ci GATE(HCLK_VPU, "hclk_vpu", "hclk_vpu_pre", 0, 109262306a36Sopenharmony_ci RK3568_CLKGATE_CON(22), 5, GFLAGS), 109362306a36Sopenharmony_ci 109462306a36Sopenharmony_ci /* PD_RGA */ 109562306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_RGA_PRE, "aclk_rga_pre", gpll300_cpll250_gpll100_xin24m_p, 0, 109662306a36Sopenharmony_ci RK3568_CLKSEL_CON(43), 0, 2, MFLAGS, 109762306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 0, GFLAGS), 109862306a36Sopenharmony_ci COMPOSITE_NOMUX(HCLK_RGA_PRE, "hclk_rga_pre", "aclk_rga_pre", 0, 109962306a36Sopenharmony_ci RK3568_CLKSEL_CON(43), 8, 4, DFLAGS, 110062306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 1, GFLAGS), 110162306a36Sopenharmony_ci COMPOSITE_NOMUX(PCLK_RGA_PRE, "pclk_rga_pre", "aclk_rga_pre", 0, 110262306a36Sopenharmony_ci RK3568_CLKSEL_CON(43), 12, 4, DFLAGS, 110362306a36Sopenharmony_ci RK3568_CLKGATE_CON(22), 12, GFLAGS), 110462306a36Sopenharmony_ci GATE(ACLK_RGA, "aclk_rga", "aclk_rga_pre", 0, 110562306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 4, GFLAGS), 110662306a36Sopenharmony_ci GATE(HCLK_RGA, "hclk_rga", "hclk_rga_pre", 0, 110762306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 5, GFLAGS), 110862306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_RGA_CORE, "clk_rga_core", gpll300_gpll200_gpll100_p, 0, 110962306a36Sopenharmony_ci RK3568_CLKSEL_CON(43), 2, 2, MFLAGS, 111062306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 6, GFLAGS), 111162306a36Sopenharmony_ci GATE(ACLK_IEP, "aclk_iep", "aclk_rga_pre", 0, 111262306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 7, GFLAGS), 111362306a36Sopenharmony_ci GATE(HCLK_IEP, "hclk_iep", "hclk_rga_pre", 0, 111462306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 8, GFLAGS), 111562306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_IEP_CORE, "clk_iep_core", gpll300_gpll200_gpll100_p, 0, 111662306a36Sopenharmony_ci RK3568_CLKSEL_CON(43), 4, 2, MFLAGS, 111762306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 9, GFLAGS), 111862306a36Sopenharmony_ci GATE(HCLK_EBC, "hclk_ebc", "hclk_rga_pre", 0, RK3568_CLKGATE_CON(23), 10, GFLAGS), 111962306a36Sopenharmony_ci COMPOSITE_NODIV(DCLK_EBC, "dclk_ebc", gpll400_cpll333_gpll200_p, 0, 112062306a36Sopenharmony_ci RK3568_CLKSEL_CON(43), 6, 2, MFLAGS, 112162306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 11, GFLAGS), 112262306a36Sopenharmony_ci GATE(ACLK_JDEC, "aclk_jdec", "aclk_rga_pre", 0, 112362306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 12, GFLAGS), 112462306a36Sopenharmony_ci GATE(HCLK_JDEC, "hclk_jdec", "hclk_rga_pre", 0, 112562306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 13, GFLAGS), 112662306a36Sopenharmony_ci GATE(ACLK_JENC, "aclk_jenc", "aclk_rga_pre", 0, 112762306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 14, GFLAGS), 112862306a36Sopenharmony_ci GATE(HCLK_JENC, "hclk_jenc", "hclk_rga_pre", 0, 112962306a36Sopenharmony_ci RK3568_CLKGATE_CON(23), 15, GFLAGS), 113062306a36Sopenharmony_ci GATE(PCLK_EINK, "pclk_eink", "pclk_rga_pre", 0, 113162306a36Sopenharmony_ci RK3568_CLKGATE_CON(22), 14, GFLAGS), 113262306a36Sopenharmony_ci GATE(HCLK_EINK, "hclk_eink", "hclk_rga_pre", 0, 113362306a36Sopenharmony_ci RK3568_CLKGATE_CON(22), 15, GFLAGS), 113462306a36Sopenharmony_ci 113562306a36Sopenharmony_ci /* PD_RKVENC */ 113662306a36Sopenharmony_ci COMPOSITE(ACLK_RKVENC_PRE, "aclk_rkvenc_pre", gpll_cpll_npll_p, 0, 113762306a36Sopenharmony_ci RK3568_CLKSEL_CON(44), 6, 2, MFLAGS, 0, 5, DFLAGS, 113862306a36Sopenharmony_ci RK3568_CLKGATE_CON(24), 0, GFLAGS), 113962306a36Sopenharmony_ci COMPOSITE_NOMUX(HCLK_RKVENC_PRE, "hclk_rkvenc_pre", "aclk_rkvenc_pre", 0, 114062306a36Sopenharmony_ci RK3568_CLKSEL_CON(44), 8, 4, DFLAGS, 114162306a36Sopenharmony_ci RK3568_CLKGATE_CON(24), 1, GFLAGS), 114262306a36Sopenharmony_ci GATE(ACLK_RKVENC, "aclk_rkvenc", "aclk_rkvenc_pre", 0, 114362306a36Sopenharmony_ci RK3568_CLKGATE_CON(24), 6, GFLAGS), 114462306a36Sopenharmony_ci GATE(HCLK_RKVENC, "hclk_rkvenc", "hclk_rkvenc_pre", 0, 114562306a36Sopenharmony_ci RK3568_CLKGATE_CON(24), 7, GFLAGS), 114662306a36Sopenharmony_ci COMPOSITE(CLK_RKVENC_CORE, "clk_rkvenc_core", gpll_cpll_npll_vpll_p, 0, 114762306a36Sopenharmony_ci RK3568_CLKSEL_CON(45), 14, 2, MFLAGS, 0, 5, DFLAGS, 114862306a36Sopenharmony_ci RK3568_CLKGATE_CON(24), 8, GFLAGS), 114962306a36Sopenharmony_ci COMPOSITE(ACLK_RKVDEC_PRE, "aclk_rkvdec_pre", aclk_rkvdec_pre_p, CLK_SET_RATE_NO_REPARENT, 115062306a36Sopenharmony_ci RK3568_CLKSEL_CON(47), 7, 1, MFLAGS, 0, 5, DFLAGS, 115162306a36Sopenharmony_ci RK3568_CLKGATE_CON(25), 0, GFLAGS), 115262306a36Sopenharmony_ci COMPOSITE_NOMUX(HCLK_RKVDEC_PRE, "hclk_rkvdec_pre", "aclk_rkvdec_pre", 0, 115362306a36Sopenharmony_ci RK3568_CLKSEL_CON(47), 8, 4, DFLAGS, 115462306a36Sopenharmony_ci RK3568_CLKGATE_CON(25), 1, GFLAGS), 115562306a36Sopenharmony_ci GATE(ACLK_RKVDEC, "aclk_rkvdec", "aclk_rkvdec_pre", 0, 115662306a36Sopenharmony_ci RK3568_CLKGATE_CON(25), 4, GFLAGS), 115762306a36Sopenharmony_ci GATE(HCLK_RKVDEC, "hclk_rkvdec", "hclk_rkvdec_pre", 0, 115862306a36Sopenharmony_ci RK3568_CLKGATE_CON(25), 5, GFLAGS), 115962306a36Sopenharmony_ci COMPOSITE(CLK_RKVDEC_CA, "clk_rkvdec_ca", gpll_cpll_npll_vpll_p, 0, 116062306a36Sopenharmony_ci RK3568_CLKSEL_CON(48), 6, 2, MFLAGS, 0, 5, DFLAGS, 116162306a36Sopenharmony_ci RK3568_CLKGATE_CON(25), 6, GFLAGS), 116262306a36Sopenharmony_ci COMPOSITE(CLK_RKVDEC_CORE, "clk_rkvdec_core", clk_rkvdec_core_p, CLK_SET_RATE_NO_REPARENT, 116362306a36Sopenharmony_ci RK3568_CLKSEL_CON(49), 14, 2, MFLAGS, 8, 5, DFLAGS, 116462306a36Sopenharmony_ci RK3568_CLKGATE_CON(25), 7, GFLAGS), 116562306a36Sopenharmony_ci COMPOSITE(CLK_RKVDEC_HEVC_CA, "clk_rkvdec_hevc_ca", gpll_cpll_npll_vpll_p, 0, 116662306a36Sopenharmony_ci RK3568_CLKSEL_CON(49), 6, 2, MFLAGS, 0, 5, DFLAGS, 116762306a36Sopenharmony_ci RK3568_CLKGATE_CON(25), 8, GFLAGS), 116862306a36Sopenharmony_ci 116962306a36Sopenharmony_ci /* PD_BUS */ 117062306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_BUS, "aclk_bus", gpll200_gpll150_gpll100_xin24m_p, 0, 117162306a36Sopenharmony_ci RK3568_CLKSEL_CON(50), 0, 2, MFLAGS, 117262306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 0, GFLAGS), 117362306a36Sopenharmony_ci COMPOSITE_NODIV(PCLK_BUS, "pclk_bus", gpll100_gpll75_cpll50_xin24m_p, 0, 117462306a36Sopenharmony_ci RK3568_CLKSEL_CON(50), 4, 2, MFLAGS, 117562306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 1, GFLAGS), 117662306a36Sopenharmony_ci GATE(PCLK_TSADC, "pclk_tsadc", "pclk_bus", 0, 117762306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 4, GFLAGS), 117862306a36Sopenharmony_ci COMPOSITE(CLK_TSADC_TSEN, "clk_tsadc_tsen", xin24m_gpll100_cpll100_p, 0, 117962306a36Sopenharmony_ci RK3568_CLKSEL_CON(51), 4, 2, MFLAGS, 0, 3, DFLAGS, 118062306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 5, GFLAGS), 118162306a36Sopenharmony_ci COMPOSITE_NOMUX(CLK_TSADC, "clk_tsadc", "clk_tsadc_tsen", 0, 118262306a36Sopenharmony_ci RK3568_CLKSEL_CON(51), 8, 7, DFLAGS, 118362306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 6, GFLAGS), 118462306a36Sopenharmony_ci GATE(PCLK_SARADC, "pclk_saradc", "pclk_bus", 0, 118562306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 7, GFLAGS), 118662306a36Sopenharmony_ci GATE(CLK_SARADC, "clk_saradc", "xin24m", 0, 118762306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 8, GFLAGS), 118862306a36Sopenharmony_ci GATE(PCLK_SCR, "pclk_scr", "pclk_bus", CLK_IGNORE_UNUSED, 118962306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 12, GFLAGS), 119062306a36Sopenharmony_ci GATE(PCLK_WDT_NS, "pclk_wdt_ns", "pclk_bus", 0, 119162306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 13, GFLAGS), 119262306a36Sopenharmony_ci GATE(TCLK_WDT_NS, "tclk_wdt_ns", "xin24m", 0, 119362306a36Sopenharmony_ci RK3568_CLKGATE_CON(26), 14, GFLAGS), 119462306a36Sopenharmony_ci GATE(ACLK_MCU, "aclk_mcu", "aclk_bus", CLK_IGNORE_UNUSED, 119562306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 13, GFLAGS), 119662306a36Sopenharmony_ci GATE(PCLK_INTMUX, "pclk_intmux", "pclk_bus", CLK_IGNORE_UNUSED, 119762306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 14, GFLAGS), 119862306a36Sopenharmony_ci GATE(PCLK_MAILBOX, "pclk_mailbox", "pclk_bus", 0, 119962306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 15, GFLAGS), 120062306a36Sopenharmony_ci 120162306a36Sopenharmony_ci GATE(PCLK_UART1, "pclk_uart1", "pclk_bus", 0, 120262306a36Sopenharmony_ci RK3568_CLKGATE_CON(27), 12, GFLAGS), 120362306a36Sopenharmony_ci COMPOSITE(CLK_UART1_SRC, "clk_uart1_src", gpll_cpll_usb480m_p, 0, 120462306a36Sopenharmony_ci RK3568_CLKSEL_CON(52), 8, 2, MFLAGS, 0, 7, DFLAGS, 120562306a36Sopenharmony_ci RK3568_CLKGATE_CON(27), 13, GFLAGS), 120662306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_UART1_FRAC, "clk_uart1_frac", "clk_uart1_src", CLK_SET_RATE_PARENT, 120762306a36Sopenharmony_ci RK3568_CLKSEL_CON(53), 0, 120862306a36Sopenharmony_ci RK3568_CLKGATE_CON(27), 14, GFLAGS, 120962306a36Sopenharmony_ci &rk3568_uart1_fracmux), 121062306a36Sopenharmony_ci GATE(SCLK_UART1, "sclk_uart1", "sclk_uart1_mux", 0, 121162306a36Sopenharmony_ci RK3568_CLKGATE_CON(27), 15, GFLAGS), 121262306a36Sopenharmony_ci 121362306a36Sopenharmony_ci GATE(PCLK_UART2, "pclk_uart2", "pclk_bus", 0, 121462306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 0, GFLAGS), 121562306a36Sopenharmony_ci COMPOSITE(CLK_UART2_SRC, "clk_uart2_src", gpll_cpll_usb480m_p, 0, 121662306a36Sopenharmony_ci RK3568_CLKSEL_CON(54), 8, 2, MFLAGS, 0, 7, DFLAGS, 121762306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 1, GFLAGS), 121862306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_UART2_FRAC, "clk_uart2_frac", "clk_uart2_src", CLK_SET_RATE_PARENT, 121962306a36Sopenharmony_ci RK3568_CLKSEL_CON(55), 0, 122062306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 2, GFLAGS, 122162306a36Sopenharmony_ci &rk3568_uart2_fracmux), 122262306a36Sopenharmony_ci GATE(SCLK_UART2, "sclk_uart2", "sclk_uart2_mux", 0, 122362306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 3, GFLAGS), 122462306a36Sopenharmony_ci 122562306a36Sopenharmony_ci GATE(PCLK_UART3, "pclk_uart3", "pclk_bus", 0, 122662306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 4, GFLAGS), 122762306a36Sopenharmony_ci COMPOSITE(CLK_UART3_SRC, "clk_uart3_src", gpll_cpll_usb480m_p, 0, 122862306a36Sopenharmony_ci RK3568_CLKSEL_CON(56), 8, 2, MFLAGS, 0, 7, DFLAGS, 122962306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 5, GFLAGS), 123062306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_UART3_FRAC, "clk_uart3_frac", "clk_uart3_src", CLK_SET_RATE_PARENT, 123162306a36Sopenharmony_ci RK3568_CLKSEL_CON(57), 0, 123262306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 6, GFLAGS, 123362306a36Sopenharmony_ci &rk3568_uart3_fracmux), 123462306a36Sopenharmony_ci GATE(SCLK_UART3, "sclk_uart3", "sclk_uart3_mux", 0, 123562306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 7, GFLAGS), 123662306a36Sopenharmony_ci 123762306a36Sopenharmony_ci GATE(PCLK_UART4, "pclk_uart4", "pclk_bus", 0, 123862306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 8, GFLAGS), 123962306a36Sopenharmony_ci COMPOSITE(CLK_UART4_SRC, "clk_uart4_src", gpll_cpll_usb480m_p, 0, 124062306a36Sopenharmony_ci RK3568_CLKSEL_CON(58), 8, 2, MFLAGS, 0, 7, DFLAGS, 124162306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 9, GFLAGS), 124262306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_UART4_FRAC, "clk_uart4_frac", "clk_uart4_src", CLK_SET_RATE_PARENT, 124362306a36Sopenharmony_ci RK3568_CLKSEL_CON(59), 0, 124462306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 10, GFLAGS, 124562306a36Sopenharmony_ci &rk3568_uart4_fracmux), 124662306a36Sopenharmony_ci GATE(SCLK_UART4, "sclk_uart4", "sclk_uart4_mux", 0, 124762306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 11, GFLAGS), 124862306a36Sopenharmony_ci 124962306a36Sopenharmony_ci GATE(PCLK_UART5, "pclk_uart5", "pclk_bus", 0, 125062306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 12, GFLAGS), 125162306a36Sopenharmony_ci COMPOSITE(CLK_UART5_SRC, "clk_uart5_src", gpll_cpll_usb480m_p, 0, 125262306a36Sopenharmony_ci RK3568_CLKSEL_CON(60), 8, 2, MFLAGS, 0, 7, DFLAGS, 125362306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 13, GFLAGS), 125462306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_UART5_FRAC, "clk_uart5_frac", "clk_uart5_src", CLK_SET_RATE_PARENT, 125562306a36Sopenharmony_ci RK3568_CLKSEL_CON(61), 0, 125662306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 14, GFLAGS, 125762306a36Sopenharmony_ci &rk3568_uart5_fracmux), 125862306a36Sopenharmony_ci GATE(SCLK_UART5, "sclk_uart5", "sclk_uart5_mux", 0, 125962306a36Sopenharmony_ci RK3568_CLKGATE_CON(28), 15, GFLAGS), 126062306a36Sopenharmony_ci 126162306a36Sopenharmony_ci GATE(PCLK_UART6, "pclk_uart6", "pclk_bus", 0, 126262306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 0, GFLAGS), 126362306a36Sopenharmony_ci COMPOSITE(CLK_UART6_SRC, "clk_uart6_src", gpll_cpll_usb480m_p, 0, 126462306a36Sopenharmony_ci RK3568_CLKSEL_CON(62), 8, 2, MFLAGS, 0, 7, DFLAGS, 126562306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 1, GFLAGS), 126662306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_UART6_FRAC, "clk_uart6_frac", "clk_uart6_src", CLK_SET_RATE_PARENT, 126762306a36Sopenharmony_ci RK3568_CLKSEL_CON(63), 0, 126862306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 2, GFLAGS, 126962306a36Sopenharmony_ci &rk3568_uart6_fracmux), 127062306a36Sopenharmony_ci GATE(SCLK_UART6, "sclk_uart6", "sclk_uart6_mux", 0, 127162306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 3, GFLAGS), 127262306a36Sopenharmony_ci 127362306a36Sopenharmony_ci GATE(PCLK_UART7, "pclk_uart7", "pclk_bus", 0, 127462306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 4, GFLAGS), 127562306a36Sopenharmony_ci COMPOSITE(CLK_UART7_SRC, "clk_uart7_src", gpll_cpll_usb480m_p, 0, 127662306a36Sopenharmony_ci RK3568_CLKSEL_CON(64), 8, 2, MFLAGS, 0, 7, DFLAGS, 127762306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 5, GFLAGS), 127862306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_UART7_FRAC, "clk_uart7_frac", "clk_uart7_src", CLK_SET_RATE_PARENT, 127962306a36Sopenharmony_ci RK3568_CLKSEL_CON(65), 0, 128062306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 6, GFLAGS, 128162306a36Sopenharmony_ci &rk3568_uart7_fracmux), 128262306a36Sopenharmony_ci GATE(SCLK_UART7, "sclk_uart7", "sclk_uart7_mux", 0, 128362306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 7, GFLAGS), 128462306a36Sopenharmony_ci 128562306a36Sopenharmony_ci GATE(PCLK_UART8, "pclk_uart8", "pclk_bus", 0, 128662306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 8, GFLAGS), 128762306a36Sopenharmony_ci COMPOSITE(CLK_UART8_SRC, "clk_uart8_src", gpll_cpll_usb480m_p, 0, 128862306a36Sopenharmony_ci RK3568_CLKSEL_CON(66), 8, 2, MFLAGS, 0, 7, DFLAGS, 128962306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 9, GFLAGS), 129062306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_UART8_FRAC, "clk_uart8_frac", "clk_uart8_src", CLK_SET_RATE_PARENT, 129162306a36Sopenharmony_ci RK3568_CLKSEL_CON(67), 0, 129262306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 10, GFLAGS, 129362306a36Sopenharmony_ci &rk3568_uart8_fracmux), 129462306a36Sopenharmony_ci GATE(SCLK_UART8, "sclk_uart8", "sclk_uart8_mux", 0, 129562306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 11, GFLAGS), 129662306a36Sopenharmony_ci 129762306a36Sopenharmony_ci GATE(PCLK_UART9, "pclk_uart9", "pclk_bus", 0, 129862306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 12, GFLAGS), 129962306a36Sopenharmony_ci COMPOSITE(CLK_UART9_SRC, "clk_uart9_src", gpll_cpll_usb480m_p, 0, 130062306a36Sopenharmony_ci RK3568_CLKSEL_CON(68), 8, 2, MFLAGS, 0, 7, DFLAGS, 130162306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 13, GFLAGS), 130262306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_UART9_FRAC, "clk_uart9_frac", "clk_uart9_src", CLK_SET_RATE_PARENT, 130362306a36Sopenharmony_ci RK3568_CLKSEL_CON(69), 0, 130462306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 14, GFLAGS, 130562306a36Sopenharmony_ci &rk3568_uart9_fracmux), 130662306a36Sopenharmony_ci GATE(SCLK_UART9, "sclk_uart9", "sclk_uart9_mux", 0, 130762306a36Sopenharmony_ci RK3568_CLKGATE_CON(29), 15, GFLAGS), 130862306a36Sopenharmony_ci 130962306a36Sopenharmony_ci GATE(PCLK_CAN0, "pclk_can0", "pclk_bus", 0, 131062306a36Sopenharmony_ci RK3568_CLKGATE_CON(27), 5, GFLAGS), 131162306a36Sopenharmony_ci COMPOSITE(CLK_CAN0, "clk_can0", gpll_cpll_p, 0, 131262306a36Sopenharmony_ci RK3568_CLKSEL_CON(70), 7, 1, MFLAGS, 0, 5, DFLAGS, 131362306a36Sopenharmony_ci RK3568_CLKGATE_CON(27), 6, GFLAGS), 131462306a36Sopenharmony_ci GATE(PCLK_CAN1, "pclk_can1", "pclk_bus", 0, 131562306a36Sopenharmony_ci RK3568_CLKGATE_CON(27), 7, GFLAGS), 131662306a36Sopenharmony_ci COMPOSITE(CLK_CAN1, "clk_can1", gpll_cpll_p, 0, 131762306a36Sopenharmony_ci RK3568_CLKSEL_CON(70), 15, 1, MFLAGS, 8, 5, DFLAGS, 131862306a36Sopenharmony_ci RK3568_CLKGATE_CON(27), 8, GFLAGS), 131962306a36Sopenharmony_ci GATE(PCLK_CAN2, "pclk_can2", "pclk_bus", 0, 132062306a36Sopenharmony_ci RK3568_CLKGATE_CON(27), 9, GFLAGS), 132162306a36Sopenharmony_ci COMPOSITE(CLK_CAN2, "clk_can2", gpll_cpll_p, 0, 132262306a36Sopenharmony_ci RK3568_CLKSEL_CON(71), 7, 1, MFLAGS, 0, 5, DFLAGS, 132362306a36Sopenharmony_ci RK3568_CLKGATE_CON(27), 10, GFLAGS), 132462306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_I2C, "clk_i2c", clk_i2c_p, 0, 132562306a36Sopenharmony_ci RK3568_CLKSEL_CON(71), 8, 2, MFLAGS, 132662306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 10, GFLAGS), 132762306a36Sopenharmony_ci GATE(PCLK_I2C1, "pclk_i2c1", "pclk_bus", 0, 132862306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 0, GFLAGS), 132962306a36Sopenharmony_ci GATE(CLK_I2C1, "clk_i2c1", "clk_i2c", 0, 133062306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 1, GFLAGS), 133162306a36Sopenharmony_ci GATE(PCLK_I2C2, "pclk_i2c2", "pclk_bus", 0, 133262306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 2, GFLAGS), 133362306a36Sopenharmony_ci GATE(CLK_I2C2, "clk_i2c2", "clk_i2c", 0, 133462306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 3, GFLAGS), 133562306a36Sopenharmony_ci GATE(PCLK_I2C3, "pclk_i2c3", "pclk_bus", 0, 133662306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 4, GFLAGS), 133762306a36Sopenharmony_ci GATE(CLK_I2C3, "clk_i2c3", "clk_i2c", 0, 133862306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 5, GFLAGS), 133962306a36Sopenharmony_ci GATE(PCLK_I2C4, "pclk_i2c4", "pclk_bus", 0, 134062306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 6, GFLAGS), 134162306a36Sopenharmony_ci GATE(CLK_I2C4, "clk_i2c4", "clk_i2c", 0, 134262306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 7, GFLAGS), 134362306a36Sopenharmony_ci GATE(PCLK_I2C5, "pclk_i2c5", "pclk_bus", 0, 134462306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 8, GFLAGS), 134562306a36Sopenharmony_ci GATE(CLK_I2C5, "clk_i2c5", "clk_i2c", 0, 134662306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 9, GFLAGS), 134762306a36Sopenharmony_ci GATE(PCLK_SPI0, "pclk_spi0", "pclk_bus", 0, 134862306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 10, GFLAGS), 134962306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_SPI0, "clk_spi0", gpll200_xin24m_cpll100_p, 0, 135062306a36Sopenharmony_ci RK3568_CLKSEL_CON(72), 0, 1, MFLAGS, 135162306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 11, GFLAGS), 135262306a36Sopenharmony_ci GATE(PCLK_SPI1, "pclk_spi1", "pclk_bus", 0, 135362306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 12, GFLAGS), 135462306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_SPI1, "clk_spi1", gpll200_xin24m_cpll100_p, 0, 135562306a36Sopenharmony_ci RK3568_CLKSEL_CON(72), 2, 1, MFLAGS, 135662306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 13, GFLAGS), 135762306a36Sopenharmony_ci GATE(PCLK_SPI2, "pclk_spi2", "pclk_bus", 0, 135862306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 14, GFLAGS), 135962306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_SPI2, "clk_spi2", gpll200_xin24m_cpll100_p, 0, 136062306a36Sopenharmony_ci RK3568_CLKSEL_CON(72), 4, 1, MFLAGS, 136162306a36Sopenharmony_ci RK3568_CLKGATE_CON(30), 15, GFLAGS), 136262306a36Sopenharmony_ci GATE(PCLK_SPI3, "pclk_spi3", "pclk_bus", 0, 136362306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 0, GFLAGS), 136462306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_SPI3, "clk_spi3", gpll200_xin24m_cpll100_p, 0, 136562306a36Sopenharmony_ci RK3568_CLKSEL_CON(72), 6, 1, MFLAGS, RK3568_CLKGATE_CON(31), 1, GFLAGS), 136662306a36Sopenharmony_ci GATE(PCLK_PWM1, "pclk_pwm1", "pclk_bus", 0, RK3568_CLKGATE_CON(31), 10, GFLAGS), 136762306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_PWM1, "clk_pwm1", gpll100_xin24m_cpll100_p, 0, 136862306a36Sopenharmony_ci RK3568_CLKSEL_CON(72), 8, 1, MFLAGS, 136962306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 11, GFLAGS), 137062306a36Sopenharmony_ci GATE(CLK_PWM1_CAPTURE, "clk_pwm1_capture", "xin24m", 0, 137162306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 12, GFLAGS), 137262306a36Sopenharmony_ci GATE(PCLK_PWM2, "pclk_pwm2", "pclk_bus", 0, 137362306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 13, GFLAGS), 137462306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_PWM2, "clk_pwm2", gpll100_xin24m_cpll100_p, 0, 137562306a36Sopenharmony_ci RK3568_CLKSEL_CON(72), 10, 1, MFLAGS, 137662306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 14, GFLAGS), 137762306a36Sopenharmony_ci GATE(CLK_PWM2_CAPTURE, "clk_pwm2_capture", "xin24m", 0, 137862306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 15, GFLAGS), 137962306a36Sopenharmony_ci GATE(PCLK_PWM3, "pclk_pwm3", "pclk_bus", 0, 138062306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 0, GFLAGS), 138162306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_PWM3, "clk_pwm3", gpll100_xin24m_cpll100_p, 0, 138262306a36Sopenharmony_ci RK3568_CLKSEL_CON(72), 12, 1, MFLAGS, 138362306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 1, GFLAGS), 138462306a36Sopenharmony_ci GATE(CLK_PWM3_CAPTURE, "clk_pwm3_capture", "xin24m", 0, 138562306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 2, GFLAGS), 138662306a36Sopenharmony_ci COMPOSITE_NODIV(DBCLK_GPIO, "dbclk_gpio", xin24m_32k_p, 0, 138762306a36Sopenharmony_ci RK3568_CLKSEL_CON(72), 14, 1, MFLAGS, 138862306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 11, GFLAGS), 138962306a36Sopenharmony_ci GATE(PCLK_GPIO1, "pclk_gpio1", "pclk_bus", 0, 139062306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 2, GFLAGS), 139162306a36Sopenharmony_ci GATE(DBCLK_GPIO1, "dbclk_gpio1", "dbclk_gpio", 0, 139262306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 3, GFLAGS), 139362306a36Sopenharmony_ci GATE(PCLK_GPIO2, "pclk_gpio2", "pclk_bus", 0, 139462306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 4, GFLAGS), 139562306a36Sopenharmony_ci GATE(DBCLK_GPIO2, "dbclk_gpio2", "dbclk_gpio", 0, 139662306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 5, GFLAGS), 139762306a36Sopenharmony_ci GATE(PCLK_GPIO3, "pclk_gpio3", "pclk_bus", 0, 139862306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 6, GFLAGS), 139962306a36Sopenharmony_ci GATE(DBCLK_GPIO3, "dbclk_gpio3", "dbclk_gpio", 0, 140062306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 7, GFLAGS), 140162306a36Sopenharmony_ci GATE(PCLK_GPIO4, "pclk_gpio4", "pclk_bus", 0, 140262306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 8, GFLAGS), 140362306a36Sopenharmony_ci GATE(DBCLK_GPIO4, "dbclk_gpio4", "dbclk_gpio", 0, 140462306a36Sopenharmony_ci RK3568_CLKGATE_CON(31), 9, GFLAGS), 140562306a36Sopenharmony_ci GATE(PCLK_TIMER, "pclk_timer", "pclk_bus", 0, 140662306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 3, GFLAGS), 140762306a36Sopenharmony_ci GATE(CLK_TIMER0, "clk_timer0", "xin24m", 0, 140862306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 4, GFLAGS), 140962306a36Sopenharmony_ci GATE(CLK_TIMER1, "clk_timer1", "xin24m", 0, 141062306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 5, GFLAGS), 141162306a36Sopenharmony_ci GATE(CLK_TIMER2, "clk_timer2", "xin24m", 0, 141262306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 6, GFLAGS), 141362306a36Sopenharmony_ci GATE(CLK_TIMER3, "clk_timer3", "xin24m", 0, 141462306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 7, GFLAGS), 141562306a36Sopenharmony_ci GATE(CLK_TIMER4, "clk_timer4", "xin24m", 0, 141662306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 8, GFLAGS), 141762306a36Sopenharmony_ci GATE(CLK_TIMER5, "clk_timer5", "xin24m", 0, 141862306a36Sopenharmony_ci RK3568_CLKGATE_CON(32), 9, GFLAGS), 141962306a36Sopenharmony_ci 142062306a36Sopenharmony_ci /* PD_TOP */ 142162306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_TOP_HIGH, "aclk_top_high", cpll500_gpll400_gpll300_xin24m_p, 0, 142262306a36Sopenharmony_ci RK3568_CLKSEL_CON(73), 0, 2, MFLAGS, 142362306a36Sopenharmony_ci RK3568_CLKGATE_CON(33), 0, GFLAGS), 142462306a36Sopenharmony_ci COMPOSITE_NODIV(ACLK_TOP_LOW, "aclk_top_low", gpll400_gpll300_gpll200_xin24m_p, 0, 142562306a36Sopenharmony_ci RK3568_CLKSEL_CON(73), 4, 2, MFLAGS, 142662306a36Sopenharmony_ci RK3568_CLKGATE_CON(33), 1, GFLAGS), 142762306a36Sopenharmony_ci COMPOSITE_NODIV(HCLK_TOP, "hclk_top", gpll150_gpll100_gpll75_xin24m_p, 0, 142862306a36Sopenharmony_ci RK3568_CLKSEL_CON(73), 8, 2, MFLAGS, 142962306a36Sopenharmony_ci RK3568_CLKGATE_CON(33), 2, GFLAGS), 143062306a36Sopenharmony_ci COMPOSITE_NODIV(PCLK_TOP, "pclk_top", gpll100_gpll75_cpll50_xin24m_p, 0, 143162306a36Sopenharmony_ci RK3568_CLKSEL_CON(73), 12, 2, MFLAGS, 143262306a36Sopenharmony_ci RK3568_CLKGATE_CON(33), 3, GFLAGS), 143362306a36Sopenharmony_ci GATE(PCLK_PCIE30PHY, "pclk_pcie30phy", "pclk_top", 0, 143462306a36Sopenharmony_ci RK3568_CLKGATE_CON(33), 8, GFLAGS), 143562306a36Sopenharmony_ci COMPOSITE_NODIV(CLK_OPTC_ARB, "clk_optc_arb", xin24m_cpll100_p, 0, 143662306a36Sopenharmony_ci RK3568_CLKSEL_CON(73), 15, 1, MFLAGS, 143762306a36Sopenharmony_ci RK3568_CLKGATE_CON(33), 9, GFLAGS), 143862306a36Sopenharmony_ci GATE(PCLK_MIPICSIPHY, "pclk_mipicsiphy", "pclk_top", 0, 143962306a36Sopenharmony_ci RK3568_CLKGATE_CON(33), 13, GFLAGS), 144062306a36Sopenharmony_ci GATE(PCLK_MIPIDSIPHY0, "pclk_mipidsiphy0", "pclk_top", 0, 144162306a36Sopenharmony_ci RK3568_CLKGATE_CON(33), 14, GFLAGS), 144262306a36Sopenharmony_ci GATE(PCLK_MIPIDSIPHY1, "pclk_mipidsiphy1", "pclk_top", 0, 144362306a36Sopenharmony_ci RK3568_CLKGATE_CON(33), 15, GFLAGS), 144462306a36Sopenharmony_ci GATE(PCLK_PIPEPHY0, "pclk_pipephy0", "pclk_top", 0, 144562306a36Sopenharmony_ci RK3568_CLKGATE_CON(34), 4, GFLAGS), 144662306a36Sopenharmony_ci GATE(PCLK_PIPEPHY1, "pclk_pipephy1", "pclk_top", 0, 144762306a36Sopenharmony_ci RK3568_CLKGATE_CON(34), 5, GFLAGS), 144862306a36Sopenharmony_ci GATE(PCLK_PIPEPHY2, "pclk_pipephy2", "pclk_top", 0, 144962306a36Sopenharmony_ci RK3568_CLKGATE_CON(34), 6, GFLAGS), 145062306a36Sopenharmony_ci GATE(PCLK_CPU_BOOST, "pclk_cpu_boost", "pclk_top", 0, 145162306a36Sopenharmony_ci RK3568_CLKGATE_CON(34), 11, GFLAGS), 145262306a36Sopenharmony_ci GATE(CLK_CPU_BOOST, "clk_cpu_boost", "xin24m", 0, 145362306a36Sopenharmony_ci RK3568_CLKGATE_CON(34), 12, GFLAGS), 145462306a36Sopenharmony_ci GATE(PCLK_OTPPHY, "pclk_otpphy", "pclk_top", 0, 145562306a36Sopenharmony_ci RK3568_CLKGATE_CON(34), 13, GFLAGS), 145662306a36Sopenharmony_ci GATE(PCLK_EDPPHY_GRF, "pclk_edpphy_grf", "pclk_top", 0, 145762306a36Sopenharmony_ci RK3568_CLKGATE_CON(34), 14, GFLAGS), 145862306a36Sopenharmony_ci}; 145962306a36Sopenharmony_ci 146062306a36Sopenharmony_cistatic struct rockchip_clk_branch rk3568_clk_pmu_branches[] __initdata = { 146162306a36Sopenharmony_ci /* PD_PMU */ 146262306a36Sopenharmony_ci FACTOR(0, "ppll_ph0", "ppll", 0, 1, 2), 146362306a36Sopenharmony_ci FACTOR(0, "ppll_ph180", "ppll", 0, 1, 2), 146462306a36Sopenharmony_ci FACTOR(0, "hpll_ph0", "hpll", 0, 1, 2), 146562306a36Sopenharmony_ci 146662306a36Sopenharmony_ci MUX(CLK_PDPMU, "clk_pdpmu", clk_pdpmu_p, 0, 146762306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(2), 15, 1, MFLAGS), 146862306a36Sopenharmony_ci COMPOSITE_NOMUX(PCLK_PDPMU, "pclk_pdpmu", "clk_pdpmu", 0, 146962306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(2), 0, 5, DFLAGS, 147062306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(0), 2, GFLAGS), 147162306a36Sopenharmony_ci GATE(PCLK_PMU, "pclk_pmu", "pclk_pdpmu", 0, 147262306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(0), 6, GFLAGS), 147362306a36Sopenharmony_ci GATE(CLK_PMU, "clk_pmu", "xin24m", 0, 147462306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(0), 7, GFLAGS), 147562306a36Sopenharmony_ci GATE(PCLK_I2C0, "pclk_i2c0", "pclk_pdpmu", 0, 147662306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 0, GFLAGS), 147762306a36Sopenharmony_ci COMPOSITE_NOMUX(CLK_I2C0, "clk_i2c0", "clk_pdpmu", 0, 147862306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(3), 0, 7, DFLAGS, 147962306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 1, GFLAGS), 148062306a36Sopenharmony_ci GATE(PCLK_UART0, "pclk_uart0", "pclk_pdpmu", 0, 148162306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 2, GFLAGS), 148262306a36Sopenharmony_ci 148362306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_RTC32K_FRAC, "clk_rtc32k_frac", "xin24m", CLK_IGNORE_UNUSED, 148462306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(1), 0, 148562306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(0), 1, GFLAGS, 148662306a36Sopenharmony_ci &rk3568_rtc32k_pmu_fracmux), 148762306a36Sopenharmony_ci 148862306a36Sopenharmony_ci COMPOSITE_NOMUX(XIN_OSC0_DIV, "xin_osc0_div", "xin24m", CLK_IGNORE_UNUSED, 148962306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(0), 0, 5, DFLAGS, 149062306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(0), 0, GFLAGS), 149162306a36Sopenharmony_ci 149262306a36Sopenharmony_ci COMPOSITE(CLK_UART0_DIV, "sclk_uart0_div", ppll_usb480m_cpll_gpll_p, 0, 149362306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(4), 8, 2, MFLAGS, 0, 7, DFLAGS, 149462306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 3, GFLAGS), 149562306a36Sopenharmony_ci COMPOSITE_FRACMUX(CLK_UART0_FRAC, "sclk_uart0_frac", "sclk_uart0_div", CLK_SET_RATE_PARENT, 149662306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(5), 0, 149762306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 4, GFLAGS, 149862306a36Sopenharmony_ci &rk3568_uart0_fracmux), 149962306a36Sopenharmony_ci GATE(SCLK_UART0, "sclk_uart0", "sclk_uart0_mux", 0, 150062306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 5, GFLAGS), 150162306a36Sopenharmony_ci 150262306a36Sopenharmony_ci GATE(PCLK_GPIO0, "pclk_gpio0", "pclk_pdpmu", 0, 150362306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 9, GFLAGS), 150462306a36Sopenharmony_ci COMPOSITE_NODIV(DBCLK_GPIO0, "dbclk_gpio0", xin24m_32k_p, 0, 150562306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(6), 15, 1, MFLAGS, 150662306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 10, GFLAGS), 150762306a36Sopenharmony_ci GATE(PCLK_PWM0, "pclk_pwm0", "pclk_pdpmu", 0, 150862306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 6, GFLAGS), 150962306a36Sopenharmony_ci COMPOSITE(CLK_PWM0, "clk_pwm0", clk_pwm0_p, 0, 151062306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(6), 7, 1, MFLAGS, 0, 7, DFLAGS, 151162306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 7, GFLAGS), 151262306a36Sopenharmony_ci GATE(CLK_CAPTURE_PWM0_NDFT, "clk_capture_pwm0_ndft", "xin24m", 0, 151362306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 8, GFLAGS), 151462306a36Sopenharmony_ci GATE(PCLK_PMUPVTM, "pclk_pmupvtm", "pclk_pdpmu", 0, 151562306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 11, GFLAGS), 151662306a36Sopenharmony_ci GATE(CLK_PMUPVTM, "clk_pmupvtm", "xin24m", 0, 151762306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 12, GFLAGS), 151862306a36Sopenharmony_ci GATE(CLK_CORE_PMUPVTM, "clk_core_pmupvtm", "xin24m", 0, 151962306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(1), 13, GFLAGS), 152062306a36Sopenharmony_ci COMPOSITE_NOMUX(CLK_REF24M, "clk_ref24m", "clk_pdpmu", 0, 152162306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(7), 0, 6, DFLAGS, 152262306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 0, GFLAGS), 152362306a36Sopenharmony_ci GATE(XIN_OSC0_USBPHY0_G, "xin_osc0_usbphy0_g", "xin24m", 0, 152462306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 1, GFLAGS), 152562306a36Sopenharmony_ci MUX(CLK_USBPHY0_REF, "clk_usbphy0_ref", clk_usbphy0_ref_p, 0, 152662306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(8), 0, 1, MFLAGS), 152762306a36Sopenharmony_ci GATE(XIN_OSC0_USBPHY1_G, "xin_osc0_usbphy1_g", "xin24m", 0, 152862306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 2, GFLAGS), 152962306a36Sopenharmony_ci MUX(CLK_USBPHY1_REF, "clk_usbphy1_ref", clk_usbphy1_ref_p, 0, 153062306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(8), 1, 1, MFLAGS), 153162306a36Sopenharmony_ci GATE(XIN_OSC0_MIPIDSIPHY0_G, "xin_osc0_mipidsiphy0_g", "xin24m", 0, 153262306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 3, GFLAGS), 153362306a36Sopenharmony_ci MUX(CLK_MIPIDSIPHY0_REF, "clk_mipidsiphy0_ref", clk_mipidsiphy0_ref_p, 0, 153462306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(8), 2, 1, MFLAGS), 153562306a36Sopenharmony_ci GATE(XIN_OSC0_MIPIDSIPHY1_G, "xin_osc0_mipidsiphy1_g", "xin24m", 0, 153662306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 4, GFLAGS), 153762306a36Sopenharmony_ci MUX(CLK_MIPIDSIPHY1_REF, "clk_mipidsiphy1_ref", clk_mipidsiphy1_ref_p, 0, 153862306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(8), 3, 1, MFLAGS), 153962306a36Sopenharmony_ci COMPOSITE_NOMUX(CLK_WIFI_DIV, "clk_wifi_div", "clk_pdpmu", 0, 154062306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(8), 8, 6, DFLAGS, 154162306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 5, GFLAGS), 154262306a36Sopenharmony_ci GATE(CLK_WIFI_OSC0, "clk_wifi_osc0", "xin24m", 0, 154362306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 6, GFLAGS), 154462306a36Sopenharmony_ci MUX(CLK_WIFI, "clk_wifi", clk_wifi_p, CLK_SET_RATE_PARENT, 154562306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(8), 15, 1, MFLAGS), 154662306a36Sopenharmony_ci COMPOSITE_NOMUX(CLK_PCIEPHY0_DIV, "clk_pciephy0_div", "ppll_ph0", 0, 154762306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(9), 0, 3, DFLAGS, 154862306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 7, GFLAGS), 154962306a36Sopenharmony_ci GATE(CLK_PCIEPHY0_OSC0, "clk_pciephy0_osc0", "xin24m", 0, 155062306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 8, GFLAGS), 155162306a36Sopenharmony_ci MUX(CLK_PCIEPHY0_REF, "clk_pciephy0_ref", clk_pciephy0_ref_p, CLK_SET_RATE_PARENT, 155262306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(9), 3, 1, MFLAGS), 155362306a36Sopenharmony_ci COMPOSITE_NOMUX(CLK_PCIEPHY1_DIV, "clk_pciephy1_div", "ppll_ph0", 0, 155462306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(9), 4, 3, DFLAGS, 155562306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 9, GFLAGS), 155662306a36Sopenharmony_ci GATE(CLK_PCIEPHY1_OSC0, "clk_pciephy1_osc0", "xin24m", 0, 155762306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 10, GFLAGS), 155862306a36Sopenharmony_ci MUX(CLK_PCIEPHY1_REF, "clk_pciephy1_ref", clk_pciephy1_ref_p, CLK_SET_RATE_PARENT, 155962306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(9), 7, 1, MFLAGS), 156062306a36Sopenharmony_ci COMPOSITE_NOMUX(CLK_PCIEPHY2_DIV, "clk_pciephy2_div", "ppll_ph0", 0, 156162306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(9), 8, 3, DFLAGS, 156262306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 11, GFLAGS), 156362306a36Sopenharmony_ci GATE(CLK_PCIEPHY2_OSC0, "clk_pciephy2_osc0", "xin24m", 0, 156462306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 12, GFLAGS), 156562306a36Sopenharmony_ci MUX(CLK_PCIEPHY2_REF, "clk_pciephy2_ref", clk_pciephy2_ref_p, CLK_SET_RATE_PARENT, 156662306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(9), 11, 1, MFLAGS), 156762306a36Sopenharmony_ci GATE(CLK_PCIE30PHY_REF_M, "clk_pcie30phy_ref_m", "ppll_ph0", 0, 156862306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 13, GFLAGS), 156962306a36Sopenharmony_ci GATE(CLK_PCIE30PHY_REF_N, "clk_pcie30phy_ref_n", "ppll_ph180", 0, 157062306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 14, GFLAGS), 157162306a36Sopenharmony_ci GATE(XIN_OSC0_EDPPHY_G, "xin_osc0_edpphy_g", "xin24m", 0, 157262306a36Sopenharmony_ci RK3568_PMU_CLKGATE_CON(2), 15, GFLAGS), 157362306a36Sopenharmony_ci MUX(CLK_HDMI_REF, "clk_hdmi_ref", clk_hdmi_ref_p, CLK_SET_RATE_PARENT, 157462306a36Sopenharmony_ci RK3568_PMU_CLKSEL_CON(8), 7, 1, MFLAGS), 157562306a36Sopenharmony_ci}; 157662306a36Sopenharmony_ci 157762306a36Sopenharmony_cistatic const char *const rk3568_cru_critical_clocks[] __initconst = { 157862306a36Sopenharmony_ci "armclk", 157962306a36Sopenharmony_ci "pclk_core_pre", 158062306a36Sopenharmony_ci "aclk_bus", 158162306a36Sopenharmony_ci "pclk_bus", 158262306a36Sopenharmony_ci "aclk_top_high", 158362306a36Sopenharmony_ci "aclk_top_low", 158462306a36Sopenharmony_ci "hclk_top", 158562306a36Sopenharmony_ci "pclk_top", 158662306a36Sopenharmony_ci "aclk_perimid", 158762306a36Sopenharmony_ci "hclk_perimid", 158862306a36Sopenharmony_ci "aclk_secure_flash", 158962306a36Sopenharmony_ci "hclk_secure_flash", 159062306a36Sopenharmony_ci "aclk_core_niu2bus", 159162306a36Sopenharmony_ci "npll", 159262306a36Sopenharmony_ci "clk_optc_arb", 159362306a36Sopenharmony_ci "hclk_php", 159462306a36Sopenharmony_ci "pclk_php", 159562306a36Sopenharmony_ci "hclk_usb", 159662306a36Sopenharmony_ci "hclk_vo", 159762306a36Sopenharmony_ci}; 159862306a36Sopenharmony_ci 159962306a36Sopenharmony_cistatic const char *const rk3568_pmucru_critical_clocks[] __initconst = { 160062306a36Sopenharmony_ci "pclk_pdpmu", 160162306a36Sopenharmony_ci "pclk_pmu", 160262306a36Sopenharmony_ci "clk_pmu", 160362306a36Sopenharmony_ci}; 160462306a36Sopenharmony_ci 160562306a36Sopenharmony_cistatic void __init rk3568_pmu_clk_init(struct device_node *np) 160662306a36Sopenharmony_ci{ 160762306a36Sopenharmony_ci struct rockchip_clk_provider *ctx; 160862306a36Sopenharmony_ci void __iomem *reg_base; 160962306a36Sopenharmony_ci 161062306a36Sopenharmony_ci reg_base = of_iomap(np, 0); 161162306a36Sopenharmony_ci if (!reg_base) { 161262306a36Sopenharmony_ci pr_err("%s: could not map cru pmu region\n", __func__); 161362306a36Sopenharmony_ci return; 161462306a36Sopenharmony_ci } 161562306a36Sopenharmony_ci 161662306a36Sopenharmony_ci ctx = rockchip_clk_init(np, reg_base, CLKPMU_NR_CLKS); 161762306a36Sopenharmony_ci if (IS_ERR(ctx)) { 161862306a36Sopenharmony_ci pr_err("%s: rockchip pmu clk init failed\n", __func__); 161962306a36Sopenharmony_ci return; 162062306a36Sopenharmony_ci } 162162306a36Sopenharmony_ci 162262306a36Sopenharmony_ci rockchip_clk_register_plls(ctx, rk3568_pmu_pll_clks, 162362306a36Sopenharmony_ci ARRAY_SIZE(rk3568_pmu_pll_clks), 162462306a36Sopenharmony_ci RK3568_GRF_SOC_STATUS0); 162562306a36Sopenharmony_ci 162662306a36Sopenharmony_ci rockchip_clk_register_branches(ctx, rk3568_clk_pmu_branches, 162762306a36Sopenharmony_ci ARRAY_SIZE(rk3568_clk_pmu_branches)); 162862306a36Sopenharmony_ci 162962306a36Sopenharmony_ci rockchip_register_softrst(np, 1, reg_base + RK3568_PMU_SOFTRST_CON(0), 163062306a36Sopenharmony_ci ROCKCHIP_SOFTRST_HIWORD_MASK); 163162306a36Sopenharmony_ci 163262306a36Sopenharmony_ci rockchip_clk_protect_critical(rk3568_pmucru_critical_clocks, 163362306a36Sopenharmony_ci ARRAY_SIZE(rk3568_pmucru_critical_clocks)); 163462306a36Sopenharmony_ci 163562306a36Sopenharmony_ci rockchip_clk_of_add_provider(np, ctx); 163662306a36Sopenharmony_ci} 163762306a36Sopenharmony_ci 163862306a36Sopenharmony_ciCLK_OF_DECLARE(rk3568_cru_pmu, "rockchip,rk3568-pmucru", rk3568_pmu_clk_init); 163962306a36Sopenharmony_ci 164062306a36Sopenharmony_cistatic void __init rk3568_clk_init(struct device_node *np) 164162306a36Sopenharmony_ci{ 164262306a36Sopenharmony_ci struct rockchip_clk_provider *ctx; 164362306a36Sopenharmony_ci void __iomem *reg_base; 164462306a36Sopenharmony_ci 164562306a36Sopenharmony_ci reg_base = of_iomap(np, 0); 164662306a36Sopenharmony_ci if (!reg_base) { 164762306a36Sopenharmony_ci pr_err("%s: could not map cru region\n", __func__); 164862306a36Sopenharmony_ci return; 164962306a36Sopenharmony_ci } 165062306a36Sopenharmony_ci 165162306a36Sopenharmony_ci ctx = rockchip_clk_init(np, reg_base, CLK_NR_CLKS); 165262306a36Sopenharmony_ci if (IS_ERR(ctx)) { 165362306a36Sopenharmony_ci pr_err("%s: rockchip clk init failed\n", __func__); 165462306a36Sopenharmony_ci iounmap(reg_base); 165562306a36Sopenharmony_ci return; 165662306a36Sopenharmony_ci } 165762306a36Sopenharmony_ci 165862306a36Sopenharmony_ci rockchip_clk_register_plls(ctx, rk3568_pll_clks, 165962306a36Sopenharmony_ci ARRAY_SIZE(rk3568_pll_clks), 166062306a36Sopenharmony_ci RK3568_GRF_SOC_STATUS0); 166162306a36Sopenharmony_ci 166262306a36Sopenharmony_ci rockchip_clk_register_armclk(ctx, ARMCLK, "armclk", 166362306a36Sopenharmony_ci mux_armclk_p, ARRAY_SIZE(mux_armclk_p), 166462306a36Sopenharmony_ci &rk3568_cpuclk_data, rk3568_cpuclk_rates, 166562306a36Sopenharmony_ci ARRAY_SIZE(rk3568_cpuclk_rates)); 166662306a36Sopenharmony_ci 166762306a36Sopenharmony_ci rockchip_clk_register_branches(ctx, rk3568_clk_branches, 166862306a36Sopenharmony_ci ARRAY_SIZE(rk3568_clk_branches)); 166962306a36Sopenharmony_ci 167062306a36Sopenharmony_ci rockchip_register_softrst(np, 30, reg_base + RK3568_SOFTRST_CON(0), 167162306a36Sopenharmony_ci ROCKCHIP_SOFTRST_HIWORD_MASK); 167262306a36Sopenharmony_ci 167362306a36Sopenharmony_ci rockchip_register_restart_notifier(ctx, RK3568_GLB_SRST_FST, NULL); 167462306a36Sopenharmony_ci 167562306a36Sopenharmony_ci rockchip_clk_protect_critical(rk3568_cru_critical_clocks, 167662306a36Sopenharmony_ci ARRAY_SIZE(rk3568_cru_critical_clocks)); 167762306a36Sopenharmony_ci 167862306a36Sopenharmony_ci rockchip_clk_of_add_provider(np, ctx); 167962306a36Sopenharmony_ci} 168062306a36Sopenharmony_ci 168162306a36Sopenharmony_ciCLK_OF_DECLARE(rk3568_cru, "rockchip,rk3568-cru", rk3568_clk_init); 168262306a36Sopenharmony_ci 168362306a36Sopenharmony_cistruct clk_rk3568_inits { 168462306a36Sopenharmony_ci void (*inits)(struct device_node *np); 168562306a36Sopenharmony_ci}; 168662306a36Sopenharmony_ci 168762306a36Sopenharmony_cistatic const struct clk_rk3568_inits clk_rk3568_pmucru_init = { 168862306a36Sopenharmony_ci .inits = rk3568_pmu_clk_init, 168962306a36Sopenharmony_ci}; 169062306a36Sopenharmony_ci 169162306a36Sopenharmony_cistatic const struct clk_rk3568_inits clk_3568_cru_init = { 169262306a36Sopenharmony_ci .inits = rk3568_clk_init, 169362306a36Sopenharmony_ci}; 169462306a36Sopenharmony_ci 169562306a36Sopenharmony_cistatic const struct of_device_id clk_rk3568_match_table[] = { 169662306a36Sopenharmony_ci { 169762306a36Sopenharmony_ci .compatible = "rockchip,rk3568-cru", 169862306a36Sopenharmony_ci .data = &clk_3568_cru_init, 169962306a36Sopenharmony_ci }, { 170062306a36Sopenharmony_ci .compatible = "rockchip,rk3568-pmucru", 170162306a36Sopenharmony_ci .data = &clk_rk3568_pmucru_init, 170262306a36Sopenharmony_ci }, 170362306a36Sopenharmony_ci { } 170462306a36Sopenharmony_ci}; 170562306a36Sopenharmony_ci 170662306a36Sopenharmony_cistatic int __init clk_rk3568_probe(struct platform_device *pdev) 170762306a36Sopenharmony_ci{ 170862306a36Sopenharmony_ci struct device_node *np = pdev->dev.of_node; 170962306a36Sopenharmony_ci const struct clk_rk3568_inits *init_data; 171062306a36Sopenharmony_ci 171162306a36Sopenharmony_ci init_data = (struct clk_rk3568_inits *)of_device_get_match_data(&pdev->dev); 171262306a36Sopenharmony_ci if (!init_data) 171362306a36Sopenharmony_ci return -EINVAL; 171462306a36Sopenharmony_ci 171562306a36Sopenharmony_ci if (init_data->inits) 171662306a36Sopenharmony_ci init_data->inits(np); 171762306a36Sopenharmony_ci 171862306a36Sopenharmony_ci return 0; 171962306a36Sopenharmony_ci} 172062306a36Sopenharmony_ci 172162306a36Sopenharmony_cistatic struct platform_driver clk_rk3568_driver = { 172262306a36Sopenharmony_ci .driver = { 172362306a36Sopenharmony_ci .name = "clk-rk3568", 172462306a36Sopenharmony_ci .of_match_table = clk_rk3568_match_table, 172562306a36Sopenharmony_ci .suppress_bind_attrs = true, 172662306a36Sopenharmony_ci }, 172762306a36Sopenharmony_ci}; 172862306a36Sopenharmony_cibuiltin_platform_driver_probe(clk_rk3568_driver, clk_rk3568_probe); 1729