18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (c) 2013, The Linux Foundation. All rights reserved. 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include <linux/kernel.h> 78c2ecf20Sopenharmony_ci#include <linux/bitops.h> 88c2ecf20Sopenharmony_ci#include <linux/err.h> 98c2ecf20Sopenharmony_ci#include <linux/platform_device.h> 108c2ecf20Sopenharmony_ci#include <linux/module.h> 118c2ecf20Sopenharmony_ci#include <linux/of.h> 128c2ecf20Sopenharmony_ci#include <linux/of_device.h> 138c2ecf20Sopenharmony_ci#include <linux/clk-provider.h> 148c2ecf20Sopenharmony_ci#include <linux/regmap.h> 158c2ecf20Sopenharmony_ci#include <linux/reset-controller.h> 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#include <dt-bindings/clock/qcom,gcc-msm8660.h> 188c2ecf20Sopenharmony_ci#include <dt-bindings/reset/qcom,gcc-msm8660.h> 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci#include "common.h" 218c2ecf20Sopenharmony_ci#include "clk-regmap.h" 228c2ecf20Sopenharmony_ci#include "clk-pll.h" 238c2ecf20Sopenharmony_ci#include "clk-rcg.h" 248c2ecf20Sopenharmony_ci#include "clk-branch.h" 258c2ecf20Sopenharmony_ci#include "reset.h" 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_cistatic struct clk_pll pll8 = { 288c2ecf20Sopenharmony_ci .l_reg = 0x3144, 298c2ecf20Sopenharmony_ci .m_reg = 0x3148, 308c2ecf20Sopenharmony_ci .n_reg = 0x314c, 318c2ecf20Sopenharmony_ci .config_reg = 0x3154, 328c2ecf20Sopenharmony_ci .mode_reg = 0x3140, 338c2ecf20Sopenharmony_ci .status_reg = 0x3158, 348c2ecf20Sopenharmony_ci .status_bit = 16, 358c2ecf20Sopenharmony_ci .clkr.hw.init = &(struct clk_init_data){ 368c2ecf20Sopenharmony_ci .name = "pll8", 378c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "pxo" }, 388c2ecf20Sopenharmony_ci .num_parents = 1, 398c2ecf20Sopenharmony_ci .ops = &clk_pll_ops, 408c2ecf20Sopenharmony_ci }, 418c2ecf20Sopenharmony_ci}; 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_cistatic struct clk_regmap pll8_vote = { 448c2ecf20Sopenharmony_ci .enable_reg = 0x34c0, 458c2ecf20Sopenharmony_ci .enable_mask = BIT(8), 468c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 478c2ecf20Sopenharmony_ci .name = "pll8_vote", 488c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "pll8" }, 498c2ecf20Sopenharmony_ci .num_parents = 1, 508c2ecf20Sopenharmony_ci .ops = &clk_pll_vote_ops, 518c2ecf20Sopenharmony_ci }, 528c2ecf20Sopenharmony_ci}; 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_cienum { 558c2ecf20Sopenharmony_ci P_PXO, 568c2ecf20Sopenharmony_ci P_PLL8, 578c2ecf20Sopenharmony_ci P_CXO, 588c2ecf20Sopenharmony_ci}; 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_cistatic const struct parent_map gcc_pxo_pll8_map[] = { 618c2ecf20Sopenharmony_ci { P_PXO, 0 }, 628c2ecf20Sopenharmony_ci { P_PLL8, 3 } 638c2ecf20Sopenharmony_ci}; 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_cistatic const char * const gcc_pxo_pll8[] = { 668c2ecf20Sopenharmony_ci "pxo", 678c2ecf20Sopenharmony_ci "pll8_vote", 688c2ecf20Sopenharmony_ci}; 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_cistatic const struct parent_map gcc_pxo_pll8_cxo_map[] = { 718c2ecf20Sopenharmony_ci { P_PXO, 0 }, 728c2ecf20Sopenharmony_ci { P_PLL8, 3 }, 738c2ecf20Sopenharmony_ci { P_CXO, 5 } 748c2ecf20Sopenharmony_ci}; 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_cistatic const char * const gcc_pxo_pll8_cxo[] = { 778c2ecf20Sopenharmony_ci "pxo", 788c2ecf20Sopenharmony_ci "pll8_vote", 798c2ecf20Sopenharmony_ci "cxo", 808c2ecf20Sopenharmony_ci}; 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_cistatic struct freq_tbl clk_tbl_gsbi_uart[] = { 838c2ecf20Sopenharmony_ci { 1843200, P_PLL8, 2, 6, 625 }, 848c2ecf20Sopenharmony_ci { 3686400, P_PLL8, 2, 12, 625 }, 858c2ecf20Sopenharmony_ci { 7372800, P_PLL8, 2, 24, 625 }, 868c2ecf20Sopenharmony_ci { 14745600, P_PLL8, 2, 48, 625 }, 878c2ecf20Sopenharmony_ci { 16000000, P_PLL8, 4, 1, 6 }, 888c2ecf20Sopenharmony_ci { 24000000, P_PLL8, 4, 1, 4 }, 898c2ecf20Sopenharmony_ci { 32000000, P_PLL8, 4, 1, 3 }, 908c2ecf20Sopenharmony_ci { 40000000, P_PLL8, 1, 5, 48 }, 918c2ecf20Sopenharmony_ci { 46400000, P_PLL8, 1, 29, 240 }, 928c2ecf20Sopenharmony_ci { 48000000, P_PLL8, 4, 1, 2 }, 938c2ecf20Sopenharmony_ci { 51200000, P_PLL8, 1, 2, 15 }, 948c2ecf20Sopenharmony_ci { 56000000, P_PLL8, 1, 7, 48 }, 958c2ecf20Sopenharmony_ci { 58982400, P_PLL8, 1, 96, 625 }, 968c2ecf20Sopenharmony_ci { 64000000, P_PLL8, 2, 1, 3 }, 978c2ecf20Sopenharmony_ci { } 988c2ecf20Sopenharmony_ci}; 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi1_uart_src = { 1018c2ecf20Sopenharmony_ci .ns_reg = 0x29d4, 1028c2ecf20Sopenharmony_ci .md_reg = 0x29d0, 1038c2ecf20Sopenharmony_ci .mn = { 1048c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 1058c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 1068c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 1078c2ecf20Sopenharmony_ci .n_val_shift = 16, 1088c2ecf20Sopenharmony_ci .m_val_shift = 16, 1098c2ecf20Sopenharmony_ci .width = 16, 1108c2ecf20Sopenharmony_ci }, 1118c2ecf20Sopenharmony_ci .p = { 1128c2ecf20Sopenharmony_ci .pre_div_shift = 3, 1138c2ecf20Sopenharmony_ci .pre_div_width = 2, 1148c2ecf20Sopenharmony_ci }, 1158c2ecf20Sopenharmony_ci .s = { 1168c2ecf20Sopenharmony_ci .src_sel_shift = 0, 1178c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 1188c2ecf20Sopenharmony_ci }, 1198c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_uart, 1208c2ecf20Sopenharmony_ci .clkr = { 1218c2ecf20Sopenharmony_ci .enable_reg = 0x29d4, 1228c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 1238c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 1248c2ecf20Sopenharmony_ci .name = "gsbi1_uart_src", 1258c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 1268c2ecf20Sopenharmony_ci .num_parents = 2, 1278c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 1288c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 1298c2ecf20Sopenharmony_ci }, 1308c2ecf20Sopenharmony_ci }, 1318c2ecf20Sopenharmony_ci}; 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_cistatic struct clk_branch gsbi1_uart_clk = { 1348c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 1358c2ecf20Sopenharmony_ci .halt_bit = 10, 1368c2ecf20Sopenharmony_ci .clkr = { 1378c2ecf20Sopenharmony_ci .enable_reg = 0x29d4, 1388c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 1398c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 1408c2ecf20Sopenharmony_ci .name = "gsbi1_uart_clk", 1418c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 1428c2ecf20Sopenharmony_ci "gsbi1_uart_src", 1438c2ecf20Sopenharmony_ci }, 1448c2ecf20Sopenharmony_ci .num_parents = 1, 1458c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 1468c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 1478c2ecf20Sopenharmony_ci }, 1488c2ecf20Sopenharmony_ci }, 1498c2ecf20Sopenharmony_ci}; 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi2_uart_src = { 1528c2ecf20Sopenharmony_ci .ns_reg = 0x29f4, 1538c2ecf20Sopenharmony_ci .md_reg = 0x29f0, 1548c2ecf20Sopenharmony_ci .mn = { 1558c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 1568c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 1578c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 1588c2ecf20Sopenharmony_ci .n_val_shift = 16, 1598c2ecf20Sopenharmony_ci .m_val_shift = 16, 1608c2ecf20Sopenharmony_ci .width = 16, 1618c2ecf20Sopenharmony_ci }, 1628c2ecf20Sopenharmony_ci .p = { 1638c2ecf20Sopenharmony_ci .pre_div_shift = 3, 1648c2ecf20Sopenharmony_ci .pre_div_width = 2, 1658c2ecf20Sopenharmony_ci }, 1668c2ecf20Sopenharmony_ci .s = { 1678c2ecf20Sopenharmony_ci .src_sel_shift = 0, 1688c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 1698c2ecf20Sopenharmony_ci }, 1708c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_uart, 1718c2ecf20Sopenharmony_ci .clkr = { 1728c2ecf20Sopenharmony_ci .enable_reg = 0x29f4, 1738c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 1748c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 1758c2ecf20Sopenharmony_ci .name = "gsbi2_uart_src", 1768c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 1778c2ecf20Sopenharmony_ci .num_parents = 2, 1788c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 1798c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 1808c2ecf20Sopenharmony_ci }, 1818c2ecf20Sopenharmony_ci }, 1828c2ecf20Sopenharmony_ci}; 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_cistatic struct clk_branch gsbi2_uart_clk = { 1858c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 1868c2ecf20Sopenharmony_ci .halt_bit = 6, 1878c2ecf20Sopenharmony_ci .clkr = { 1888c2ecf20Sopenharmony_ci .enable_reg = 0x29f4, 1898c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 1908c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 1918c2ecf20Sopenharmony_ci .name = "gsbi2_uart_clk", 1928c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 1938c2ecf20Sopenharmony_ci "gsbi2_uart_src", 1948c2ecf20Sopenharmony_ci }, 1958c2ecf20Sopenharmony_ci .num_parents = 1, 1968c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 1978c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 1988c2ecf20Sopenharmony_ci }, 1998c2ecf20Sopenharmony_ci }, 2008c2ecf20Sopenharmony_ci}; 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi3_uart_src = { 2038c2ecf20Sopenharmony_ci .ns_reg = 0x2a14, 2048c2ecf20Sopenharmony_ci .md_reg = 0x2a10, 2058c2ecf20Sopenharmony_ci .mn = { 2068c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 2078c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 2088c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 2098c2ecf20Sopenharmony_ci .n_val_shift = 16, 2108c2ecf20Sopenharmony_ci .m_val_shift = 16, 2118c2ecf20Sopenharmony_ci .width = 16, 2128c2ecf20Sopenharmony_ci }, 2138c2ecf20Sopenharmony_ci .p = { 2148c2ecf20Sopenharmony_ci .pre_div_shift = 3, 2158c2ecf20Sopenharmony_ci .pre_div_width = 2, 2168c2ecf20Sopenharmony_ci }, 2178c2ecf20Sopenharmony_ci .s = { 2188c2ecf20Sopenharmony_ci .src_sel_shift = 0, 2198c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 2208c2ecf20Sopenharmony_ci }, 2218c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_uart, 2228c2ecf20Sopenharmony_ci .clkr = { 2238c2ecf20Sopenharmony_ci .enable_reg = 0x2a14, 2248c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 2258c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 2268c2ecf20Sopenharmony_ci .name = "gsbi3_uart_src", 2278c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 2288c2ecf20Sopenharmony_ci .num_parents = 2, 2298c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 2308c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 2318c2ecf20Sopenharmony_ci }, 2328c2ecf20Sopenharmony_ci }, 2338c2ecf20Sopenharmony_ci}; 2348c2ecf20Sopenharmony_ci 2358c2ecf20Sopenharmony_cistatic struct clk_branch gsbi3_uart_clk = { 2368c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 2378c2ecf20Sopenharmony_ci .halt_bit = 2, 2388c2ecf20Sopenharmony_ci .clkr = { 2398c2ecf20Sopenharmony_ci .enable_reg = 0x2a14, 2408c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 2418c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 2428c2ecf20Sopenharmony_ci .name = "gsbi3_uart_clk", 2438c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 2448c2ecf20Sopenharmony_ci "gsbi3_uart_src", 2458c2ecf20Sopenharmony_ci }, 2468c2ecf20Sopenharmony_ci .num_parents = 1, 2478c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 2488c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 2498c2ecf20Sopenharmony_ci }, 2508c2ecf20Sopenharmony_ci }, 2518c2ecf20Sopenharmony_ci}; 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi4_uart_src = { 2548c2ecf20Sopenharmony_ci .ns_reg = 0x2a34, 2558c2ecf20Sopenharmony_ci .md_reg = 0x2a30, 2568c2ecf20Sopenharmony_ci .mn = { 2578c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 2588c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 2598c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 2608c2ecf20Sopenharmony_ci .n_val_shift = 16, 2618c2ecf20Sopenharmony_ci .m_val_shift = 16, 2628c2ecf20Sopenharmony_ci .width = 16, 2638c2ecf20Sopenharmony_ci }, 2648c2ecf20Sopenharmony_ci .p = { 2658c2ecf20Sopenharmony_ci .pre_div_shift = 3, 2668c2ecf20Sopenharmony_ci .pre_div_width = 2, 2678c2ecf20Sopenharmony_ci }, 2688c2ecf20Sopenharmony_ci .s = { 2698c2ecf20Sopenharmony_ci .src_sel_shift = 0, 2708c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 2718c2ecf20Sopenharmony_ci }, 2728c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_uart, 2738c2ecf20Sopenharmony_ci .clkr = { 2748c2ecf20Sopenharmony_ci .enable_reg = 0x2a34, 2758c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 2768c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 2778c2ecf20Sopenharmony_ci .name = "gsbi4_uart_src", 2788c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 2798c2ecf20Sopenharmony_ci .num_parents = 2, 2808c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 2818c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 2828c2ecf20Sopenharmony_ci }, 2838c2ecf20Sopenharmony_ci }, 2848c2ecf20Sopenharmony_ci}; 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_cistatic struct clk_branch gsbi4_uart_clk = { 2878c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 2888c2ecf20Sopenharmony_ci .halt_bit = 26, 2898c2ecf20Sopenharmony_ci .clkr = { 2908c2ecf20Sopenharmony_ci .enable_reg = 0x2a34, 2918c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 2928c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 2938c2ecf20Sopenharmony_ci .name = "gsbi4_uart_clk", 2948c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 2958c2ecf20Sopenharmony_ci "gsbi4_uart_src", 2968c2ecf20Sopenharmony_ci }, 2978c2ecf20Sopenharmony_ci .num_parents = 1, 2988c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 2998c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 3008c2ecf20Sopenharmony_ci }, 3018c2ecf20Sopenharmony_ci }, 3028c2ecf20Sopenharmony_ci}; 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi5_uart_src = { 3058c2ecf20Sopenharmony_ci .ns_reg = 0x2a54, 3068c2ecf20Sopenharmony_ci .md_reg = 0x2a50, 3078c2ecf20Sopenharmony_ci .mn = { 3088c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 3098c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 3108c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 3118c2ecf20Sopenharmony_ci .n_val_shift = 16, 3128c2ecf20Sopenharmony_ci .m_val_shift = 16, 3138c2ecf20Sopenharmony_ci .width = 16, 3148c2ecf20Sopenharmony_ci }, 3158c2ecf20Sopenharmony_ci .p = { 3168c2ecf20Sopenharmony_ci .pre_div_shift = 3, 3178c2ecf20Sopenharmony_ci .pre_div_width = 2, 3188c2ecf20Sopenharmony_ci }, 3198c2ecf20Sopenharmony_ci .s = { 3208c2ecf20Sopenharmony_ci .src_sel_shift = 0, 3218c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 3228c2ecf20Sopenharmony_ci }, 3238c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_uart, 3248c2ecf20Sopenharmony_ci .clkr = { 3258c2ecf20Sopenharmony_ci .enable_reg = 0x2a54, 3268c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 3278c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 3288c2ecf20Sopenharmony_ci .name = "gsbi5_uart_src", 3298c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 3308c2ecf20Sopenharmony_ci .num_parents = 2, 3318c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 3328c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 3338c2ecf20Sopenharmony_ci }, 3348c2ecf20Sopenharmony_ci }, 3358c2ecf20Sopenharmony_ci}; 3368c2ecf20Sopenharmony_ci 3378c2ecf20Sopenharmony_cistatic struct clk_branch gsbi5_uart_clk = { 3388c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 3398c2ecf20Sopenharmony_ci .halt_bit = 22, 3408c2ecf20Sopenharmony_ci .clkr = { 3418c2ecf20Sopenharmony_ci .enable_reg = 0x2a54, 3428c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 3438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 3448c2ecf20Sopenharmony_ci .name = "gsbi5_uart_clk", 3458c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 3468c2ecf20Sopenharmony_ci "gsbi5_uart_src", 3478c2ecf20Sopenharmony_ci }, 3488c2ecf20Sopenharmony_ci .num_parents = 1, 3498c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 3508c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 3518c2ecf20Sopenharmony_ci }, 3528c2ecf20Sopenharmony_ci }, 3538c2ecf20Sopenharmony_ci}; 3548c2ecf20Sopenharmony_ci 3558c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi6_uart_src = { 3568c2ecf20Sopenharmony_ci .ns_reg = 0x2a74, 3578c2ecf20Sopenharmony_ci .md_reg = 0x2a70, 3588c2ecf20Sopenharmony_ci .mn = { 3598c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 3608c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 3618c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 3628c2ecf20Sopenharmony_ci .n_val_shift = 16, 3638c2ecf20Sopenharmony_ci .m_val_shift = 16, 3648c2ecf20Sopenharmony_ci .width = 16, 3658c2ecf20Sopenharmony_ci }, 3668c2ecf20Sopenharmony_ci .p = { 3678c2ecf20Sopenharmony_ci .pre_div_shift = 3, 3688c2ecf20Sopenharmony_ci .pre_div_width = 2, 3698c2ecf20Sopenharmony_ci }, 3708c2ecf20Sopenharmony_ci .s = { 3718c2ecf20Sopenharmony_ci .src_sel_shift = 0, 3728c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 3738c2ecf20Sopenharmony_ci }, 3748c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_uart, 3758c2ecf20Sopenharmony_ci .clkr = { 3768c2ecf20Sopenharmony_ci .enable_reg = 0x2a74, 3778c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 3788c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 3798c2ecf20Sopenharmony_ci .name = "gsbi6_uart_src", 3808c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 3818c2ecf20Sopenharmony_ci .num_parents = 2, 3828c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 3838c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 3848c2ecf20Sopenharmony_ci }, 3858c2ecf20Sopenharmony_ci }, 3868c2ecf20Sopenharmony_ci}; 3878c2ecf20Sopenharmony_ci 3888c2ecf20Sopenharmony_cistatic struct clk_branch gsbi6_uart_clk = { 3898c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 3908c2ecf20Sopenharmony_ci .halt_bit = 18, 3918c2ecf20Sopenharmony_ci .clkr = { 3928c2ecf20Sopenharmony_ci .enable_reg = 0x2a74, 3938c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 3948c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 3958c2ecf20Sopenharmony_ci .name = "gsbi6_uart_clk", 3968c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 3978c2ecf20Sopenharmony_ci "gsbi6_uart_src", 3988c2ecf20Sopenharmony_ci }, 3998c2ecf20Sopenharmony_ci .num_parents = 1, 4008c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 4018c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 4028c2ecf20Sopenharmony_ci }, 4038c2ecf20Sopenharmony_ci }, 4048c2ecf20Sopenharmony_ci}; 4058c2ecf20Sopenharmony_ci 4068c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi7_uart_src = { 4078c2ecf20Sopenharmony_ci .ns_reg = 0x2a94, 4088c2ecf20Sopenharmony_ci .md_reg = 0x2a90, 4098c2ecf20Sopenharmony_ci .mn = { 4108c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 4118c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 4128c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 4138c2ecf20Sopenharmony_ci .n_val_shift = 16, 4148c2ecf20Sopenharmony_ci .m_val_shift = 16, 4158c2ecf20Sopenharmony_ci .width = 16, 4168c2ecf20Sopenharmony_ci }, 4178c2ecf20Sopenharmony_ci .p = { 4188c2ecf20Sopenharmony_ci .pre_div_shift = 3, 4198c2ecf20Sopenharmony_ci .pre_div_width = 2, 4208c2ecf20Sopenharmony_ci }, 4218c2ecf20Sopenharmony_ci .s = { 4228c2ecf20Sopenharmony_ci .src_sel_shift = 0, 4238c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 4248c2ecf20Sopenharmony_ci }, 4258c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_uart, 4268c2ecf20Sopenharmony_ci .clkr = { 4278c2ecf20Sopenharmony_ci .enable_reg = 0x2a94, 4288c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 4298c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 4308c2ecf20Sopenharmony_ci .name = "gsbi7_uart_src", 4318c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 4328c2ecf20Sopenharmony_ci .num_parents = 2, 4338c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 4348c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 4358c2ecf20Sopenharmony_ci }, 4368c2ecf20Sopenharmony_ci }, 4378c2ecf20Sopenharmony_ci}; 4388c2ecf20Sopenharmony_ci 4398c2ecf20Sopenharmony_cistatic struct clk_branch gsbi7_uart_clk = { 4408c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 4418c2ecf20Sopenharmony_ci .halt_bit = 14, 4428c2ecf20Sopenharmony_ci .clkr = { 4438c2ecf20Sopenharmony_ci .enable_reg = 0x2a94, 4448c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 4458c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 4468c2ecf20Sopenharmony_ci .name = "gsbi7_uart_clk", 4478c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ 4488c2ecf20Sopenharmony_ci "gsbi7_uart_src", 4498c2ecf20Sopenharmony_ci }, 4508c2ecf20Sopenharmony_ci .num_parents = 1, 4518c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 4528c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 4538c2ecf20Sopenharmony_ci }, 4548c2ecf20Sopenharmony_ci }, 4558c2ecf20Sopenharmony_ci}; 4568c2ecf20Sopenharmony_ci 4578c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi8_uart_src = { 4588c2ecf20Sopenharmony_ci .ns_reg = 0x2ab4, 4598c2ecf20Sopenharmony_ci .md_reg = 0x2ab0, 4608c2ecf20Sopenharmony_ci .mn = { 4618c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 4628c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 4638c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 4648c2ecf20Sopenharmony_ci .n_val_shift = 16, 4658c2ecf20Sopenharmony_ci .m_val_shift = 16, 4668c2ecf20Sopenharmony_ci .width = 16, 4678c2ecf20Sopenharmony_ci }, 4688c2ecf20Sopenharmony_ci .p = { 4698c2ecf20Sopenharmony_ci .pre_div_shift = 3, 4708c2ecf20Sopenharmony_ci .pre_div_width = 2, 4718c2ecf20Sopenharmony_ci }, 4728c2ecf20Sopenharmony_ci .s = { 4738c2ecf20Sopenharmony_ci .src_sel_shift = 0, 4748c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 4758c2ecf20Sopenharmony_ci }, 4768c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_uart, 4778c2ecf20Sopenharmony_ci .clkr = { 4788c2ecf20Sopenharmony_ci .enable_reg = 0x2ab4, 4798c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 4808c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 4818c2ecf20Sopenharmony_ci .name = "gsbi8_uart_src", 4828c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 4838c2ecf20Sopenharmony_ci .num_parents = 2, 4848c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 4858c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 4868c2ecf20Sopenharmony_ci }, 4878c2ecf20Sopenharmony_ci }, 4888c2ecf20Sopenharmony_ci}; 4898c2ecf20Sopenharmony_ci 4908c2ecf20Sopenharmony_cistatic struct clk_branch gsbi8_uart_clk = { 4918c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 4928c2ecf20Sopenharmony_ci .halt_bit = 10, 4938c2ecf20Sopenharmony_ci .clkr = { 4948c2ecf20Sopenharmony_ci .enable_reg = 0x2ab4, 4958c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 4968c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 4978c2ecf20Sopenharmony_ci .name = "gsbi8_uart_clk", 4988c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi8_uart_src" }, 4998c2ecf20Sopenharmony_ci .num_parents = 1, 5008c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 5018c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 5028c2ecf20Sopenharmony_ci }, 5038c2ecf20Sopenharmony_ci }, 5048c2ecf20Sopenharmony_ci}; 5058c2ecf20Sopenharmony_ci 5068c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi9_uart_src = { 5078c2ecf20Sopenharmony_ci .ns_reg = 0x2ad4, 5088c2ecf20Sopenharmony_ci .md_reg = 0x2ad0, 5098c2ecf20Sopenharmony_ci .mn = { 5108c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 5118c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 5128c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 5138c2ecf20Sopenharmony_ci .n_val_shift = 16, 5148c2ecf20Sopenharmony_ci .m_val_shift = 16, 5158c2ecf20Sopenharmony_ci .width = 16, 5168c2ecf20Sopenharmony_ci }, 5178c2ecf20Sopenharmony_ci .p = { 5188c2ecf20Sopenharmony_ci .pre_div_shift = 3, 5198c2ecf20Sopenharmony_ci .pre_div_width = 2, 5208c2ecf20Sopenharmony_ci }, 5218c2ecf20Sopenharmony_ci .s = { 5228c2ecf20Sopenharmony_ci .src_sel_shift = 0, 5238c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 5248c2ecf20Sopenharmony_ci }, 5258c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_uart, 5268c2ecf20Sopenharmony_ci .clkr = { 5278c2ecf20Sopenharmony_ci .enable_reg = 0x2ad4, 5288c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 5298c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 5308c2ecf20Sopenharmony_ci .name = "gsbi9_uart_src", 5318c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 5328c2ecf20Sopenharmony_ci .num_parents = 2, 5338c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 5348c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 5358c2ecf20Sopenharmony_ci }, 5368c2ecf20Sopenharmony_ci }, 5378c2ecf20Sopenharmony_ci}; 5388c2ecf20Sopenharmony_ci 5398c2ecf20Sopenharmony_cistatic struct clk_branch gsbi9_uart_clk = { 5408c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 5418c2ecf20Sopenharmony_ci .halt_bit = 6, 5428c2ecf20Sopenharmony_ci .clkr = { 5438c2ecf20Sopenharmony_ci .enable_reg = 0x2ad4, 5448c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 5458c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 5468c2ecf20Sopenharmony_ci .name = "gsbi9_uart_clk", 5478c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi9_uart_src" }, 5488c2ecf20Sopenharmony_ci .num_parents = 1, 5498c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 5508c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 5518c2ecf20Sopenharmony_ci }, 5528c2ecf20Sopenharmony_ci }, 5538c2ecf20Sopenharmony_ci}; 5548c2ecf20Sopenharmony_ci 5558c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi10_uart_src = { 5568c2ecf20Sopenharmony_ci .ns_reg = 0x2af4, 5578c2ecf20Sopenharmony_ci .md_reg = 0x2af0, 5588c2ecf20Sopenharmony_ci .mn = { 5598c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 5608c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 5618c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 5628c2ecf20Sopenharmony_ci .n_val_shift = 16, 5638c2ecf20Sopenharmony_ci .m_val_shift = 16, 5648c2ecf20Sopenharmony_ci .width = 16, 5658c2ecf20Sopenharmony_ci }, 5668c2ecf20Sopenharmony_ci .p = { 5678c2ecf20Sopenharmony_ci .pre_div_shift = 3, 5688c2ecf20Sopenharmony_ci .pre_div_width = 2, 5698c2ecf20Sopenharmony_ci }, 5708c2ecf20Sopenharmony_ci .s = { 5718c2ecf20Sopenharmony_ci .src_sel_shift = 0, 5728c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 5738c2ecf20Sopenharmony_ci }, 5748c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_uart, 5758c2ecf20Sopenharmony_ci .clkr = { 5768c2ecf20Sopenharmony_ci .enable_reg = 0x2af4, 5778c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 5788c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 5798c2ecf20Sopenharmony_ci .name = "gsbi10_uart_src", 5808c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 5818c2ecf20Sopenharmony_ci .num_parents = 2, 5828c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 5838c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 5848c2ecf20Sopenharmony_ci }, 5858c2ecf20Sopenharmony_ci }, 5868c2ecf20Sopenharmony_ci}; 5878c2ecf20Sopenharmony_ci 5888c2ecf20Sopenharmony_cistatic struct clk_branch gsbi10_uart_clk = { 5898c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 5908c2ecf20Sopenharmony_ci .halt_bit = 2, 5918c2ecf20Sopenharmony_ci .clkr = { 5928c2ecf20Sopenharmony_ci .enable_reg = 0x2af4, 5938c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 5948c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 5958c2ecf20Sopenharmony_ci .name = "gsbi10_uart_clk", 5968c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi10_uart_src" }, 5978c2ecf20Sopenharmony_ci .num_parents = 1, 5988c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 5998c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 6008c2ecf20Sopenharmony_ci }, 6018c2ecf20Sopenharmony_ci }, 6028c2ecf20Sopenharmony_ci}; 6038c2ecf20Sopenharmony_ci 6048c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi11_uart_src = { 6058c2ecf20Sopenharmony_ci .ns_reg = 0x2b14, 6068c2ecf20Sopenharmony_ci .md_reg = 0x2b10, 6078c2ecf20Sopenharmony_ci .mn = { 6088c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 6098c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 6108c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 6118c2ecf20Sopenharmony_ci .n_val_shift = 16, 6128c2ecf20Sopenharmony_ci .m_val_shift = 16, 6138c2ecf20Sopenharmony_ci .width = 16, 6148c2ecf20Sopenharmony_ci }, 6158c2ecf20Sopenharmony_ci .p = { 6168c2ecf20Sopenharmony_ci .pre_div_shift = 3, 6178c2ecf20Sopenharmony_ci .pre_div_width = 2, 6188c2ecf20Sopenharmony_ci }, 6198c2ecf20Sopenharmony_ci .s = { 6208c2ecf20Sopenharmony_ci .src_sel_shift = 0, 6218c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 6228c2ecf20Sopenharmony_ci }, 6238c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_uart, 6248c2ecf20Sopenharmony_ci .clkr = { 6258c2ecf20Sopenharmony_ci .enable_reg = 0x2b14, 6268c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 6278c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 6288c2ecf20Sopenharmony_ci .name = "gsbi11_uart_src", 6298c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 6308c2ecf20Sopenharmony_ci .num_parents = 2, 6318c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 6328c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 6338c2ecf20Sopenharmony_ci }, 6348c2ecf20Sopenharmony_ci }, 6358c2ecf20Sopenharmony_ci}; 6368c2ecf20Sopenharmony_ci 6378c2ecf20Sopenharmony_cistatic struct clk_branch gsbi11_uart_clk = { 6388c2ecf20Sopenharmony_ci .halt_reg = 0x2fd4, 6398c2ecf20Sopenharmony_ci .halt_bit = 17, 6408c2ecf20Sopenharmony_ci .clkr = { 6418c2ecf20Sopenharmony_ci .enable_reg = 0x2b14, 6428c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 6438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 6448c2ecf20Sopenharmony_ci .name = "gsbi11_uart_clk", 6458c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi11_uart_src" }, 6468c2ecf20Sopenharmony_ci .num_parents = 1, 6478c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 6488c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 6498c2ecf20Sopenharmony_ci }, 6508c2ecf20Sopenharmony_ci }, 6518c2ecf20Sopenharmony_ci}; 6528c2ecf20Sopenharmony_ci 6538c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi12_uart_src = { 6548c2ecf20Sopenharmony_ci .ns_reg = 0x2b34, 6558c2ecf20Sopenharmony_ci .md_reg = 0x2b30, 6568c2ecf20Sopenharmony_ci .mn = { 6578c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 6588c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 6598c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 6608c2ecf20Sopenharmony_ci .n_val_shift = 16, 6618c2ecf20Sopenharmony_ci .m_val_shift = 16, 6628c2ecf20Sopenharmony_ci .width = 16, 6638c2ecf20Sopenharmony_ci }, 6648c2ecf20Sopenharmony_ci .p = { 6658c2ecf20Sopenharmony_ci .pre_div_shift = 3, 6668c2ecf20Sopenharmony_ci .pre_div_width = 2, 6678c2ecf20Sopenharmony_ci }, 6688c2ecf20Sopenharmony_ci .s = { 6698c2ecf20Sopenharmony_ci .src_sel_shift = 0, 6708c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 6718c2ecf20Sopenharmony_ci }, 6728c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_uart, 6738c2ecf20Sopenharmony_ci .clkr = { 6748c2ecf20Sopenharmony_ci .enable_reg = 0x2b34, 6758c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 6768c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 6778c2ecf20Sopenharmony_ci .name = "gsbi12_uart_src", 6788c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 6798c2ecf20Sopenharmony_ci .num_parents = 2, 6808c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 6818c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 6828c2ecf20Sopenharmony_ci }, 6838c2ecf20Sopenharmony_ci }, 6848c2ecf20Sopenharmony_ci}; 6858c2ecf20Sopenharmony_ci 6868c2ecf20Sopenharmony_cistatic struct clk_branch gsbi12_uart_clk = { 6878c2ecf20Sopenharmony_ci .halt_reg = 0x2fd4, 6888c2ecf20Sopenharmony_ci .halt_bit = 13, 6898c2ecf20Sopenharmony_ci .clkr = { 6908c2ecf20Sopenharmony_ci .enable_reg = 0x2b34, 6918c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 6928c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 6938c2ecf20Sopenharmony_ci .name = "gsbi12_uart_clk", 6948c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi12_uart_src" }, 6958c2ecf20Sopenharmony_ci .num_parents = 1, 6968c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 6978c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 6988c2ecf20Sopenharmony_ci }, 6998c2ecf20Sopenharmony_ci }, 7008c2ecf20Sopenharmony_ci}; 7018c2ecf20Sopenharmony_ci 7028c2ecf20Sopenharmony_cistatic struct freq_tbl clk_tbl_gsbi_qup[] = { 7038c2ecf20Sopenharmony_ci { 1100000, P_PXO, 1, 2, 49 }, 7048c2ecf20Sopenharmony_ci { 5400000, P_PXO, 1, 1, 5 }, 7058c2ecf20Sopenharmony_ci { 10800000, P_PXO, 1, 2, 5 }, 7068c2ecf20Sopenharmony_ci { 15060000, P_PLL8, 1, 2, 51 }, 7078c2ecf20Sopenharmony_ci { 24000000, P_PLL8, 4, 1, 4 }, 7088c2ecf20Sopenharmony_ci { 25600000, P_PLL8, 1, 1, 15 }, 7098c2ecf20Sopenharmony_ci { 27000000, P_PXO, 1, 0, 0 }, 7108c2ecf20Sopenharmony_ci { 48000000, P_PLL8, 4, 1, 2 }, 7118c2ecf20Sopenharmony_ci { 51200000, P_PLL8, 1, 2, 15 }, 7128c2ecf20Sopenharmony_ci { } 7138c2ecf20Sopenharmony_ci}; 7148c2ecf20Sopenharmony_ci 7158c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi1_qup_src = { 7168c2ecf20Sopenharmony_ci .ns_reg = 0x29cc, 7178c2ecf20Sopenharmony_ci .md_reg = 0x29c8, 7188c2ecf20Sopenharmony_ci .mn = { 7198c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 7208c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 7218c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 7228c2ecf20Sopenharmony_ci .n_val_shift = 16, 7238c2ecf20Sopenharmony_ci .m_val_shift = 16, 7248c2ecf20Sopenharmony_ci .width = 8, 7258c2ecf20Sopenharmony_ci }, 7268c2ecf20Sopenharmony_ci .p = { 7278c2ecf20Sopenharmony_ci .pre_div_shift = 3, 7288c2ecf20Sopenharmony_ci .pre_div_width = 2, 7298c2ecf20Sopenharmony_ci }, 7308c2ecf20Sopenharmony_ci .s = { 7318c2ecf20Sopenharmony_ci .src_sel_shift = 0, 7328c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 7338c2ecf20Sopenharmony_ci }, 7348c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_qup, 7358c2ecf20Sopenharmony_ci .clkr = { 7368c2ecf20Sopenharmony_ci .enable_reg = 0x29cc, 7378c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 7388c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 7398c2ecf20Sopenharmony_ci .name = "gsbi1_qup_src", 7408c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 7418c2ecf20Sopenharmony_ci .num_parents = 2, 7428c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 7438c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 7448c2ecf20Sopenharmony_ci }, 7458c2ecf20Sopenharmony_ci }, 7468c2ecf20Sopenharmony_ci}; 7478c2ecf20Sopenharmony_ci 7488c2ecf20Sopenharmony_cistatic struct clk_branch gsbi1_qup_clk = { 7498c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 7508c2ecf20Sopenharmony_ci .halt_bit = 9, 7518c2ecf20Sopenharmony_ci .clkr = { 7528c2ecf20Sopenharmony_ci .enable_reg = 0x29cc, 7538c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 7548c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 7558c2ecf20Sopenharmony_ci .name = "gsbi1_qup_clk", 7568c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi1_qup_src" }, 7578c2ecf20Sopenharmony_ci .num_parents = 1, 7588c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 7598c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 7608c2ecf20Sopenharmony_ci }, 7618c2ecf20Sopenharmony_ci }, 7628c2ecf20Sopenharmony_ci}; 7638c2ecf20Sopenharmony_ci 7648c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi2_qup_src = { 7658c2ecf20Sopenharmony_ci .ns_reg = 0x29ec, 7668c2ecf20Sopenharmony_ci .md_reg = 0x29e8, 7678c2ecf20Sopenharmony_ci .mn = { 7688c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 7698c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 7708c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 7718c2ecf20Sopenharmony_ci .n_val_shift = 16, 7728c2ecf20Sopenharmony_ci .m_val_shift = 16, 7738c2ecf20Sopenharmony_ci .width = 8, 7748c2ecf20Sopenharmony_ci }, 7758c2ecf20Sopenharmony_ci .p = { 7768c2ecf20Sopenharmony_ci .pre_div_shift = 3, 7778c2ecf20Sopenharmony_ci .pre_div_width = 2, 7788c2ecf20Sopenharmony_ci }, 7798c2ecf20Sopenharmony_ci .s = { 7808c2ecf20Sopenharmony_ci .src_sel_shift = 0, 7818c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 7828c2ecf20Sopenharmony_ci }, 7838c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_qup, 7848c2ecf20Sopenharmony_ci .clkr = { 7858c2ecf20Sopenharmony_ci .enable_reg = 0x29ec, 7868c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 7878c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 7888c2ecf20Sopenharmony_ci .name = "gsbi2_qup_src", 7898c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 7908c2ecf20Sopenharmony_ci .num_parents = 2, 7918c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 7928c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 7938c2ecf20Sopenharmony_ci }, 7948c2ecf20Sopenharmony_ci }, 7958c2ecf20Sopenharmony_ci}; 7968c2ecf20Sopenharmony_ci 7978c2ecf20Sopenharmony_cistatic struct clk_branch gsbi2_qup_clk = { 7988c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 7998c2ecf20Sopenharmony_ci .halt_bit = 4, 8008c2ecf20Sopenharmony_ci .clkr = { 8018c2ecf20Sopenharmony_ci .enable_reg = 0x29ec, 8028c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 8038c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 8048c2ecf20Sopenharmony_ci .name = "gsbi2_qup_clk", 8058c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi2_qup_src" }, 8068c2ecf20Sopenharmony_ci .num_parents = 1, 8078c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 8088c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 8098c2ecf20Sopenharmony_ci }, 8108c2ecf20Sopenharmony_ci }, 8118c2ecf20Sopenharmony_ci}; 8128c2ecf20Sopenharmony_ci 8138c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi3_qup_src = { 8148c2ecf20Sopenharmony_ci .ns_reg = 0x2a0c, 8158c2ecf20Sopenharmony_ci .md_reg = 0x2a08, 8168c2ecf20Sopenharmony_ci .mn = { 8178c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 8188c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 8198c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 8208c2ecf20Sopenharmony_ci .n_val_shift = 16, 8218c2ecf20Sopenharmony_ci .m_val_shift = 16, 8228c2ecf20Sopenharmony_ci .width = 8, 8238c2ecf20Sopenharmony_ci }, 8248c2ecf20Sopenharmony_ci .p = { 8258c2ecf20Sopenharmony_ci .pre_div_shift = 3, 8268c2ecf20Sopenharmony_ci .pre_div_width = 2, 8278c2ecf20Sopenharmony_ci }, 8288c2ecf20Sopenharmony_ci .s = { 8298c2ecf20Sopenharmony_ci .src_sel_shift = 0, 8308c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 8318c2ecf20Sopenharmony_ci }, 8328c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_qup, 8338c2ecf20Sopenharmony_ci .clkr = { 8348c2ecf20Sopenharmony_ci .enable_reg = 0x2a0c, 8358c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 8368c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 8378c2ecf20Sopenharmony_ci .name = "gsbi3_qup_src", 8388c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 8398c2ecf20Sopenharmony_ci .num_parents = 2, 8408c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 8418c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 8428c2ecf20Sopenharmony_ci }, 8438c2ecf20Sopenharmony_ci }, 8448c2ecf20Sopenharmony_ci}; 8458c2ecf20Sopenharmony_ci 8468c2ecf20Sopenharmony_cistatic struct clk_branch gsbi3_qup_clk = { 8478c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 8488c2ecf20Sopenharmony_ci .halt_bit = 0, 8498c2ecf20Sopenharmony_ci .clkr = { 8508c2ecf20Sopenharmony_ci .enable_reg = 0x2a0c, 8518c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 8528c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 8538c2ecf20Sopenharmony_ci .name = "gsbi3_qup_clk", 8548c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi3_qup_src" }, 8558c2ecf20Sopenharmony_ci .num_parents = 1, 8568c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 8578c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 8588c2ecf20Sopenharmony_ci }, 8598c2ecf20Sopenharmony_ci }, 8608c2ecf20Sopenharmony_ci}; 8618c2ecf20Sopenharmony_ci 8628c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi4_qup_src = { 8638c2ecf20Sopenharmony_ci .ns_reg = 0x2a2c, 8648c2ecf20Sopenharmony_ci .md_reg = 0x2a28, 8658c2ecf20Sopenharmony_ci .mn = { 8668c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 8678c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 8688c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 8698c2ecf20Sopenharmony_ci .n_val_shift = 16, 8708c2ecf20Sopenharmony_ci .m_val_shift = 16, 8718c2ecf20Sopenharmony_ci .width = 8, 8728c2ecf20Sopenharmony_ci }, 8738c2ecf20Sopenharmony_ci .p = { 8748c2ecf20Sopenharmony_ci .pre_div_shift = 3, 8758c2ecf20Sopenharmony_ci .pre_div_width = 2, 8768c2ecf20Sopenharmony_ci }, 8778c2ecf20Sopenharmony_ci .s = { 8788c2ecf20Sopenharmony_ci .src_sel_shift = 0, 8798c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 8808c2ecf20Sopenharmony_ci }, 8818c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_qup, 8828c2ecf20Sopenharmony_ci .clkr = { 8838c2ecf20Sopenharmony_ci .enable_reg = 0x2a2c, 8848c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 8858c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 8868c2ecf20Sopenharmony_ci .name = "gsbi4_qup_src", 8878c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 8888c2ecf20Sopenharmony_ci .num_parents = 2, 8898c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 8908c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 8918c2ecf20Sopenharmony_ci }, 8928c2ecf20Sopenharmony_ci }, 8938c2ecf20Sopenharmony_ci}; 8948c2ecf20Sopenharmony_ci 8958c2ecf20Sopenharmony_cistatic struct clk_branch gsbi4_qup_clk = { 8968c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 8978c2ecf20Sopenharmony_ci .halt_bit = 24, 8988c2ecf20Sopenharmony_ci .clkr = { 8998c2ecf20Sopenharmony_ci .enable_reg = 0x2a2c, 9008c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 9018c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 9028c2ecf20Sopenharmony_ci .name = "gsbi4_qup_clk", 9038c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi4_qup_src" }, 9048c2ecf20Sopenharmony_ci .num_parents = 1, 9058c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 9068c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 9078c2ecf20Sopenharmony_ci }, 9088c2ecf20Sopenharmony_ci }, 9098c2ecf20Sopenharmony_ci}; 9108c2ecf20Sopenharmony_ci 9118c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi5_qup_src = { 9128c2ecf20Sopenharmony_ci .ns_reg = 0x2a4c, 9138c2ecf20Sopenharmony_ci .md_reg = 0x2a48, 9148c2ecf20Sopenharmony_ci .mn = { 9158c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 9168c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 9178c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 9188c2ecf20Sopenharmony_ci .n_val_shift = 16, 9198c2ecf20Sopenharmony_ci .m_val_shift = 16, 9208c2ecf20Sopenharmony_ci .width = 8, 9218c2ecf20Sopenharmony_ci }, 9228c2ecf20Sopenharmony_ci .p = { 9238c2ecf20Sopenharmony_ci .pre_div_shift = 3, 9248c2ecf20Sopenharmony_ci .pre_div_width = 2, 9258c2ecf20Sopenharmony_ci }, 9268c2ecf20Sopenharmony_ci .s = { 9278c2ecf20Sopenharmony_ci .src_sel_shift = 0, 9288c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 9298c2ecf20Sopenharmony_ci }, 9308c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_qup, 9318c2ecf20Sopenharmony_ci .clkr = { 9328c2ecf20Sopenharmony_ci .enable_reg = 0x2a4c, 9338c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 9348c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 9358c2ecf20Sopenharmony_ci .name = "gsbi5_qup_src", 9368c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 9378c2ecf20Sopenharmony_ci .num_parents = 2, 9388c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 9398c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 9408c2ecf20Sopenharmony_ci }, 9418c2ecf20Sopenharmony_ci }, 9428c2ecf20Sopenharmony_ci}; 9438c2ecf20Sopenharmony_ci 9448c2ecf20Sopenharmony_cistatic struct clk_branch gsbi5_qup_clk = { 9458c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 9468c2ecf20Sopenharmony_ci .halt_bit = 20, 9478c2ecf20Sopenharmony_ci .clkr = { 9488c2ecf20Sopenharmony_ci .enable_reg = 0x2a4c, 9498c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 9508c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 9518c2ecf20Sopenharmony_ci .name = "gsbi5_qup_clk", 9528c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi5_qup_src" }, 9538c2ecf20Sopenharmony_ci .num_parents = 1, 9548c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 9558c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 9568c2ecf20Sopenharmony_ci }, 9578c2ecf20Sopenharmony_ci }, 9588c2ecf20Sopenharmony_ci}; 9598c2ecf20Sopenharmony_ci 9608c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi6_qup_src = { 9618c2ecf20Sopenharmony_ci .ns_reg = 0x2a6c, 9628c2ecf20Sopenharmony_ci .md_reg = 0x2a68, 9638c2ecf20Sopenharmony_ci .mn = { 9648c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 9658c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 9668c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 9678c2ecf20Sopenharmony_ci .n_val_shift = 16, 9688c2ecf20Sopenharmony_ci .m_val_shift = 16, 9698c2ecf20Sopenharmony_ci .width = 8, 9708c2ecf20Sopenharmony_ci }, 9718c2ecf20Sopenharmony_ci .p = { 9728c2ecf20Sopenharmony_ci .pre_div_shift = 3, 9738c2ecf20Sopenharmony_ci .pre_div_width = 2, 9748c2ecf20Sopenharmony_ci }, 9758c2ecf20Sopenharmony_ci .s = { 9768c2ecf20Sopenharmony_ci .src_sel_shift = 0, 9778c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 9788c2ecf20Sopenharmony_ci }, 9798c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_qup, 9808c2ecf20Sopenharmony_ci .clkr = { 9818c2ecf20Sopenharmony_ci .enable_reg = 0x2a6c, 9828c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 9838c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 9848c2ecf20Sopenharmony_ci .name = "gsbi6_qup_src", 9858c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 9868c2ecf20Sopenharmony_ci .num_parents = 2, 9878c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 9888c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 9898c2ecf20Sopenharmony_ci }, 9908c2ecf20Sopenharmony_ci }, 9918c2ecf20Sopenharmony_ci}; 9928c2ecf20Sopenharmony_ci 9938c2ecf20Sopenharmony_cistatic struct clk_branch gsbi6_qup_clk = { 9948c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 9958c2ecf20Sopenharmony_ci .halt_bit = 16, 9968c2ecf20Sopenharmony_ci .clkr = { 9978c2ecf20Sopenharmony_ci .enable_reg = 0x2a6c, 9988c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 9998c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 10008c2ecf20Sopenharmony_ci .name = "gsbi6_qup_clk", 10018c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi6_qup_src" }, 10028c2ecf20Sopenharmony_ci .num_parents = 1, 10038c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 10048c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 10058c2ecf20Sopenharmony_ci }, 10068c2ecf20Sopenharmony_ci }, 10078c2ecf20Sopenharmony_ci}; 10088c2ecf20Sopenharmony_ci 10098c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi7_qup_src = { 10108c2ecf20Sopenharmony_ci .ns_reg = 0x2a8c, 10118c2ecf20Sopenharmony_ci .md_reg = 0x2a88, 10128c2ecf20Sopenharmony_ci .mn = { 10138c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 10148c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 10158c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 10168c2ecf20Sopenharmony_ci .n_val_shift = 16, 10178c2ecf20Sopenharmony_ci .m_val_shift = 16, 10188c2ecf20Sopenharmony_ci .width = 8, 10198c2ecf20Sopenharmony_ci }, 10208c2ecf20Sopenharmony_ci .p = { 10218c2ecf20Sopenharmony_ci .pre_div_shift = 3, 10228c2ecf20Sopenharmony_ci .pre_div_width = 2, 10238c2ecf20Sopenharmony_ci }, 10248c2ecf20Sopenharmony_ci .s = { 10258c2ecf20Sopenharmony_ci .src_sel_shift = 0, 10268c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 10278c2ecf20Sopenharmony_ci }, 10288c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_qup, 10298c2ecf20Sopenharmony_ci .clkr = { 10308c2ecf20Sopenharmony_ci .enable_reg = 0x2a8c, 10318c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 10328c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 10338c2ecf20Sopenharmony_ci .name = "gsbi7_qup_src", 10348c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 10358c2ecf20Sopenharmony_ci .num_parents = 2, 10368c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 10378c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 10388c2ecf20Sopenharmony_ci }, 10398c2ecf20Sopenharmony_ci }, 10408c2ecf20Sopenharmony_ci}; 10418c2ecf20Sopenharmony_ci 10428c2ecf20Sopenharmony_cistatic struct clk_branch gsbi7_qup_clk = { 10438c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 10448c2ecf20Sopenharmony_ci .halt_bit = 12, 10458c2ecf20Sopenharmony_ci .clkr = { 10468c2ecf20Sopenharmony_ci .enable_reg = 0x2a8c, 10478c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 10488c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 10498c2ecf20Sopenharmony_ci .name = "gsbi7_qup_clk", 10508c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi7_qup_src" }, 10518c2ecf20Sopenharmony_ci .num_parents = 1, 10528c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 10538c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 10548c2ecf20Sopenharmony_ci }, 10558c2ecf20Sopenharmony_ci }, 10568c2ecf20Sopenharmony_ci}; 10578c2ecf20Sopenharmony_ci 10588c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi8_qup_src = { 10598c2ecf20Sopenharmony_ci .ns_reg = 0x2aac, 10608c2ecf20Sopenharmony_ci .md_reg = 0x2aa8, 10618c2ecf20Sopenharmony_ci .mn = { 10628c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 10638c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 10648c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 10658c2ecf20Sopenharmony_ci .n_val_shift = 16, 10668c2ecf20Sopenharmony_ci .m_val_shift = 16, 10678c2ecf20Sopenharmony_ci .width = 8, 10688c2ecf20Sopenharmony_ci }, 10698c2ecf20Sopenharmony_ci .p = { 10708c2ecf20Sopenharmony_ci .pre_div_shift = 3, 10718c2ecf20Sopenharmony_ci .pre_div_width = 2, 10728c2ecf20Sopenharmony_ci }, 10738c2ecf20Sopenharmony_ci .s = { 10748c2ecf20Sopenharmony_ci .src_sel_shift = 0, 10758c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 10768c2ecf20Sopenharmony_ci }, 10778c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_qup, 10788c2ecf20Sopenharmony_ci .clkr = { 10798c2ecf20Sopenharmony_ci .enable_reg = 0x2aac, 10808c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 10818c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 10828c2ecf20Sopenharmony_ci .name = "gsbi8_qup_src", 10838c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 10848c2ecf20Sopenharmony_ci .num_parents = 2, 10858c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 10868c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 10878c2ecf20Sopenharmony_ci }, 10888c2ecf20Sopenharmony_ci }, 10898c2ecf20Sopenharmony_ci}; 10908c2ecf20Sopenharmony_ci 10918c2ecf20Sopenharmony_cistatic struct clk_branch gsbi8_qup_clk = { 10928c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 10938c2ecf20Sopenharmony_ci .halt_bit = 8, 10948c2ecf20Sopenharmony_ci .clkr = { 10958c2ecf20Sopenharmony_ci .enable_reg = 0x2aac, 10968c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 10978c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 10988c2ecf20Sopenharmony_ci .name = "gsbi8_qup_clk", 10998c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi8_qup_src" }, 11008c2ecf20Sopenharmony_ci .num_parents = 1, 11018c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 11028c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11038c2ecf20Sopenharmony_ci }, 11048c2ecf20Sopenharmony_ci }, 11058c2ecf20Sopenharmony_ci}; 11068c2ecf20Sopenharmony_ci 11078c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi9_qup_src = { 11088c2ecf20Sopenharmony_ci .ns_reg = 0x2acc, 11098c2ecf20Sopenharmony_ci .md_reg = 0x2ac8, 11108c2ecf20Sopenharmony_ci .mn = { 11118c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 11128c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 11138c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 11148c2ecf20Sopenharmony_ci .n_val_shift = 16, 11158c2ecf20Sopenharmony_ci .m_val_shift = 16, 11168c2ecf20Sopenharmony_ci .width = 8, 11178c2ecf20Sopenharmony_ci }, 11188c2ecf20Sopenharmony_ci .p = { 11198c2ecf20Sopenharmony_ci .pre_div_shift = 3, 11208c2ecf20Sopenharmony_ci .pre_div_width = 2, 11218c2ecf20Sopenharmony_ci }, 11228c2ecf20Sopenharmony_ci .s = { 11238c2ecf20Sopenharmony_ci .src_sel_shift = 0, 11248c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 11258c2ecf20Sopenharmony_ci }, 11268c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_qup, 11278c2ecf20Sopenharmony_ci .clkr = { 11288c2ecf20Sopenharmony_ci .enable_reg = 0x2acc, 11298c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 11308c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11318c2ecf20Sopenharmony_ci .name = "gsbi9_qup_src", 11328c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 11338c2ecf20Sopenharmony_ci .num_parents = 2, 11348c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 11358c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 11368c2ecf20Sopenharmony_ci }, 11378c2ecf20Sopenharmony_ci }, 11388c2ecf20Sopenharmony_ci}; 11398c2ecf20Sopenharmony_ci 11408c2ecf20Sopenharmony_cistatic struct clk_branch gsbi9_qup_clk = { 11418c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 11428c2ecf20Sopenharmony_ci .halt_bit = 4, 11438c2ecf20Sopenharmony_ci .clkr = { 11448c2ecf20Sopenharmony_ci .enable_reg = 0x2acc, 11458c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 11468c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11478c2ecf20Sopenharmony_ci .name = "gsbi9_qup_clk", 11488c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi9_qup_src" }, 11498c2ecf20Sopenharmony_ci .num_parents = 1, 11508c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 11518c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 11528c2ecf20Sopenharmony_ci }, 11538c2ecf20Sopenharmony_ci }, 11548c2ecf20Sopenharmony_ci}; 11558c2ecf20Sopenharmony_ci 11568c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi10_qup_src = { 11578c2ecf20Sopenharmony_ci .ns_reg = 0x2aec, 11588c2ecf20Sopenharmony_ci .md_reg = 0x2ae8, 11598c2ecf20Sopenharmony_ci .mn = { 11608c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 11618c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 11628c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 11638c2ecf20Sopenharmony_ci .n_val_shift = 16, 11648c2ecf20Sopenharmony_ci .m_val_shift = 16, 11658c2ecf20Sopenharmony_ci .width = 8, 11668c2ecf20Sopenharmony_ci }, 11678c2ecf20Sopenharmony_ci .p = { 11688c2ecf20Sopenharmony_ci .pre_div_shift = 3, 11698c2ecf20Sopenharmony_ci .pre_div_width = 2, 11708c2ecf20Sopenharmony_ci }, 11718c2ecf20Sopenharmony_ci .s = { 11728c2ecf20Sopenharmony_ci .src_sel_shift = 0, 11738c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 11748c2ecf20Sopenharmony_ci }, 11758c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_qup, 11768c2ecf20Sopenharmony_ci .clkr = { 11778c2ecf20Sopenharmony_ci .enable_reg = 0x2aec, 11788c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 11798c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11808c2ecf20Sopenharmony_ci .name = "gsbi10_qup_src", 11818c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 11828c2ecf20Sopenharmony_ci .num_parents = 2, 11838c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 11848c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 11858c2ecf20Sopenharmony_ci }, 11868c2ecf20Sopenharmony_ci }, 11878c2ecf20Sopenharmony_ci}; 11888c2ecf20Sopenharmony_ci 11898c2ecf20Sopenharmony_cistatic struct clk_branch gsbi10_qup_clk = { 11908c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 11918c2ecf20Sopenharmony_ci .halt_bit = 0, 11928c2ecf20Sopenharmony_ci .clkr = { 11938c2ecf20Sopenharmony_ci .enable_reg = 0x2aec, 11948c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 11958c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 11968c2ecf20Sopenharmony_ci .name = "gsbi10_qup_clk", 11978c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi10_qup_src" }, 11988c2ecf20Sopenharmony_ci .num_parents = 1, 11998c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 12008c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 12018c2ecf20Sopenharmony_ci }, 12028c2ecf20Sopenharmony_ci }, 12038c2ecf20Sopenharmony_ci}; 12048c2ecf20Sopenharmony_ci 12058c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi11_qup_src = { 12068c2ecf20Sopenharmony_ci .ns_reg = 0x2b0c, 12078c2ecf20Sopenharmony_ci .md_reg = 0x2b08, 12088c2ecf20Sopenharmony_ci .mn = { 12098c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 12108c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 12118c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 12128c2ecf20Sopenharmony_ci .n_val_shift = 16, 12138c2ecf20Sopenharmony_ci .m_val_shift = 16, 12148c2ecf20Sopenharmony_ci .width = 8, 12158c2ecf20Sopenharmony_ci }, 12168c2ecf20Sopenharmony_ci .p = { 12178c2ecf20Sopenharmony_ci .pre_div_shift = 3, 12188c2ecf20Sopenharmony_ci .pre_div_width = 2, 12198c2ecf20Sopenharmony_ci }, 12208c2ecf20Sopenharmony_ci .s = { 12218c2ecf20Sopenharmony_ci .src_sel_shift = 0, 12228c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 12238c2ecf20Sopenharmony_ci }, 12248c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_qup, 12258c2ecf20Sopenharmony_ci .clkr = { 12268c2ecf20Sopenharmony_ci .enable_reg = 0x2b0c, 12278c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 12288c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12298c2ecf20Sopenharmony_ci .name = "gsbi11_qup_src", 12308c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 12318c2ecf20Sopenharmony_ci .num_parents = 2, 12328c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 12338c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 12348c2ecf20Sopenharmony_ci }, 12358c2ecf20Sopenharmony_ci }, 12368c2ecf20Sopenharmony_ci}; 12378c2ecf20Sopenharmony_ci 12388c2ecf20Sopenharmony_cistatic struct clk_branch gsbi11_qup_clk = { 12398c2ecf20Sopenharmony_ci .halt_reg = 0x2fd4, 12408c2ecf20Sopenharmony_ci .halt_bit = 15, 12418c2ecf20Sopenharmony_ci .clkr = { 12428c2ecf20Sopenharmony_ci .enable_reg = 0x2b0c, 12438c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 12448c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12458c2ecf20Sopenharmony_ci .name = "gsbi11_qup_clk", 12468c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi11_qup_src" }, 12478c2ecf20Sopenharmony_ci .num_parents = 1, 12488c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 12498c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 12508c2ecf20Sopenharmony_ci }, 12518c2ecf20Sopenharmony_ci }, 12528c2ecf20Sopenharmony_ci}; 12538c2ecf20Sopenharmony_ci 12548c2ecf20Sopenharmony_cistatic struct clk_rcg gsbi12_qup_src = { 12558c2ecf20Sopenharmony_ci .ns_reg = 0x2b2c, 12568c2ecf20Sopenharmony_ci .md_reg = 0x2b28, 12578c2ecf20Sopenharmony_ci .mn = { 12588c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 12598c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 12608c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 12618c2ecf20Sopenharmony_ci .n_val_shift = 16, 12628c2ecf20Sopenharmony_ci .m_val_shift = 16, 12638c2ecf20Sopenharmony_ci .width = 8, 12648c2ecf20Sopenharmony_ci }, 12658c2ecf20Sopenharmony_ci .p = { 12668c2ecf20Sopenharmony_ci .pre_div_shift = 3, 12678c2ecf20Sopenharmony_ci .pre_div_width = 2, 12688c2ecf20Sopenharmony_ci }, 12698c2ecf20Sopenharmony_ci .s = { 12708c2ecf20Sopenharmony_ci .src_sel_shift = 0, 12718c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 12728c2ecf20Sopenharmony_ci }, 12738c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gsbi_qup, 12748c2ecf20Sopenharmony_ci .clkr = { 12758c2ecf20Sopenharmony_ci .enable_reg = 0x2b2c, 12768c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 12778c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12788c2ecf20Sopenharmony_ci .name = "gsbi12_qup_src", 12798c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 12808c2ecf20Sopenharmony_ci .num_parents = 2, 12818c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 12828c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 12838c2ecf20Sopenharmony_ci }, 12848c2ecf20Sopenharmony_ci }, 12858c2ecf20Sopenharmony_ci}; 12868c2ecf20Sopenharmony_ci 12878c2ecf20Sopenharmony_cistatic struct clk_branch gsbi12_qup_clk = { 12888c2ecf20Sopenharmony_ci .halt_reg = 0x2fd4, 12898c2ecf20Sopenharmony_ci .halt_bit = 11, 12908c2ecf20Sopenharmony_ci .clkr = { 12918c2ecf20Sopenharmony_ci .enable_reg = 0x2b2c, 12928c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 12938c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 12948c2ecf20Sopenharmony_ci .name = "gsbi12_qup_clk", 12958c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gsbi12_qup_src" }, 12968c2ecf20Sopenharmony_ci .num_parents = 1, 12978c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 12988c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 12998c2ecf20Sopenharmony_ci }, 13008c2ecf20Sopenharmony_ci }, 13018c2ecf20Sopenharmony_ci}; 13028c2ecf20Sopenharmony_ci 13038c2ecf20Sopenharmony_cistatic const struct freq_tbl clk_tbl_gp[] = { 13048c2ecf20Sopenharmony_ci { 9600000, P_CXO, 2, 0, 0 }, 13058c2ecf20Sopenharmony_ci { 13500000, P_PXO, 2, 0, 0 }, 13068c2ecf20Sopenharmony_ci { 19200000, P_CXO, 1, 0, 0 }, 13078c2ecf20Sopenharmony_ci { 27000000, P_PXO, 1, 0, 0 }, 13088c2ecf20Sopenharmony_ci { 64000000, P_PLL8, 2, 1, 3 }, 13098c2ecf20Sopenharmony_ci { 76800000, P_PLL8, 1, 1, 5 }, 13108c2ecf20Sopenharmony_ci { 96000000, P_PLL8, 4, 0, 0 }, 13118c2ecf20Sopenharmony_ci { 128000000, P_PLL8, 3, 0, 0 }, 13128c2ecf20Sopenharmony_ci { 192000000, P_PLL8, 2, 0, 0 }, 13138c2ecf20Sopenharmony_ci { } 13148c2ecf20Sopenharmony_ci}; 13158c2ecf20Sopenharmony_ci 13168c2ecf20Sopenharmony_cistatic struct clk_rcg gp0_src = { 13178c2ecf20Sopenharmony_ci .ns_reg = 0x2d24, 13188c2ecf20Sopenharmony_ci .md_reg = 0x2d00, 13198c2ecf20Sopenharmony_ci .mn = { 13208c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 13218c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 13228c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 13238c2ecf20Sopenharmony_ci .n_val_shift = 16, 13248c2ecf20Sopenharmony_ci .m_val_shift = 16, 13258c2ecf20Sopenharmony_ci .width = 8, 13268c2ecf20Sopenharmony_ci }, 13278c2ecf20Sopenharmony_ci .p = { 13288c2ecf20Sopenharmony_ci .pre_div_shift = 3, 13298c2ecf20Sopenharmony_ci .pre_div_width = 2, 13308c2ecf20Sopenharmony_ci }, 13318c2ecf20Sopenharmony_ci .s = { 13328c2ecf20Sopenharmony_ci .src_sel_shift = 0, 13338c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_cxo_map, 13348c2ecf20Sopenharmony_ci }, 13358c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gp, 13368c2ecf20Sopenharmony_ci .clkr = { 13378c2ecf20Sopenharmony_ci .enable_reg = 0x2d24, 13388c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 13398c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13408c2ecf20Sopenharmony_ci .name = "gp0_src", 13418c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8_cxo, 13428c2ecf20Sopenharmony_ci .num_parents = 3, 13438c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 13448c2ecf20Sopenharmony_ci .flags = CLK_SET_PARENT_GATE, 13458c2ecf20Sopenharmony_ci }, 13468c2ecf20Sopenharmony_ci } 13478c2ecf20Sopenharmony_ci}; 13488c2ecf20Sopenharmony_ci 13498c2ecf20Sopenharmony_cistatic struct clk_branch gp0_clk = { 13508c2ecf20Sopenharmony_ci .halt_reg = 0x2fd8, 13518c2ecf20Sopenharmony_ci .halt_bit = 7, 13528c2ecf20Sopenharmony_ci .clkr = { 13538c2ecf20Sopenharmony_ci .enable_reg = 0x2d24, 13548c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 13558c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13568c2ecf20Sopenharmony_ci .name = "gp0_clk", 13578c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gp0_src" }, 13588c2ecf20Sopenharmony_ci .num_parents = 1, 13598c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 13608c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 13618c2ecf20Sopenharmony_ci }, 13628c2ecf20Sopenharmony_ci }, 13638c2ecf20Sopenharmony_ci}; 13648c2ecf20Sopenharmony_ci 13658c2ecf20Sopenharmony_cistatic struct clk_rcg gp1_src = { 13668c2ecf20Sopenharmony_ci .ns_reg = 0x2d44, 13678c2ecf20Sopenharmony_ci .md_reg = 0x2d40, 13688c2ecf20Sopenharmony_ci .mn = { 13698c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 13708c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 13718c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 13728c2ecf20Sopenharmony_ci .n_val_shift = 16, 13738c2ecf20Sopenharmony_ci .m_val_shift = 16, 13748c2ecf20Sopenharmony_ci .width = 8, 13758c2ecf20Sopenharmony_ci }, 13768c2ecf20Sopenharmony_ci .p = { 13778c2ecf20Sopenharmony_ci .pre_div_shift = 3, 13788c2ecf20Sopenharmony_ci .pre_div_width = 2, 13798c2ecf20Sopenharmony_ci }, 13808c2ecf20Sopenharmony_ci .s = { 13818c2ecf20Sopenharmony_ci .src_sel_shift = 0, 13828c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_cxo_map, 13838c2ecf20Sopenharmony_ci }, 13848c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gp, 13858c2ecf20Sopenharmony_ci .clkr = { 13868c2ecf20Sopenharmony_ci .enable_reg = 0x2d44, 13878c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 13888c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 13898c2ecf20Sopenharmony_ci .name = "gp1_src", 13908c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8_cxo, 13918c2ecf20Sopenharmony_ci .num_parents = 3, 13928c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 13938c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_GATE, 13948c2ecf20Sopenharmony_ci }, 13958c2ecf20Sopenharmony_ci } 13968c2ecf20Sopenharmony_ci}; 13978c2ecf20Sopenharmony_ci 13988c2ecf20Sopenharmony_cistatic struct clk_branch gp1_clk = { 13998c2ecf20Sopenharmony_ci .halt_reg = 0x2fd8, 14008c2ecf20Sopenharmony_ci .halt_bit = 6, 14018c2ecf20Sopenharmony_ci .clkr = { 14028c2ecf20Sopenharmony_ci .enable_reg = 0x2d44, 14038c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 14048c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14058c2ecf20Sopenharmony_ci .name = "gp1_clk", 14068c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gp1_src" }, 14078c2ecf20Sopenharmony_ci .num_parents = 1, 14088c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 14098c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 14108c2ecf20Sopenharmony_ci }, 14118c2ecf20Sopenharmony_ci }, 14128c2ecf20Sopenharmony_ci}; 14138c2ecf20Sopenharmony_ci 14148c2ecf20Sopenharmony_cistatic struct clk_rcg gp2_src = { 14158c2ecf20Sopenharmony_ci .ns_reg = 0x2d64, 14168c2ecf20Sopenharmony_ci .md_reg = 0x2d60, 14178c2ecf20Sopenharmony_ci .mn = { 14188c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 14198c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 14208c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 14218c2ecf20Sopenharmony_ci .n_val_shift = 16, 14228c2ecf20Sopenharmony_ci .m_val_shift = 16, 14238c2ecf20Sopenharmony_ci .width = 8, 14248c2ecf20Sopenharmony_ci }, 14258c2ecf20Sopenharmony_ci .p = { 14268c2ecf20Sopenharmony_ci .pre_div_shift = 3, 14278c2ecf20Sopenharmony_ci .pre_div_width = 2, 14288c2ecf20Sopenharmony_ci }, 14298c2ecf20Sopenharmony_ci .s = { 14308c2ecf20Sopenharmony_ci .src_sel_shift = 0, 14318c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_cxo_map, 14328c2ecf20Sopenharmony_ci }, 14338c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_gp, 14348c2ecf20Sopenharmony_ci .clkr = { 14358c2ecf20Sopenharmony_ci .enable_reg = 0x2d64, 14368c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 14378c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14388c2ecf20Sopenharmony_ci .name = "gp2_src", 14398c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8_cxo, 14408c2ecf20Sopenharmony_ci .num_parents = 3, 14418c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 14428c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_GATE, 14438c2ecf20Sopenharmony_ci }, 14448c2ecf20Sopenharmony_ci } 14458c2ecf20Sopenharmony_ci}; 14468c2ecf20Sopenharmony_ci 14478c2ecf20Sopenharmony_cistatic struct clk_branch gp2_clk = { 14488c2ecf20Sopenharmony_ci .halt_reg = 0x2fd8, 14498c2ecf20Sopenharmony_ci .halt_bit = 5, 14508c2ecf20Sopenharmony_ci .clkr = { 14518c2ecf20Sopenharmony_ci .enable_reg = 0x2d64, 14528c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 14538c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14548c2ecf20Sopenharmony_ci .name = "gp2_clk", 14558c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "gp2_src" }, 14568c2ecf20Sopenharmony_ci .num_parents = 1, 14578c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 14588c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 14598c2ecf20Sopenharmony_ci }, 14608c2ecf20Sopenharmony_ci }, 14618c2ecf20Sopenharmony_ci}; 14628c2ecf20Sopenharmony_ci 14638c2ecf20Sopenharmony_cistatic struct clk_branch pmem_clk = { 14648c2ecf20Sopenharmony_ci .hwcg_reg = 0x25a0, 14658c2ecf20Sopenharmony_ci .hwcg_bit = 6, 14668c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 14678c2ecf20Sopenharmony_ci .halt_bit = 20, 14688c2ecf20Sopenharmony_ci .clkr = { 14698c2ecf20Sopenharmony_ci .enable_reg = 0x25a0, 14708c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 14718c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 14728c2ecf20Sopenharmony_ci .name = "pmem_clk", 14738c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 14748c2ecf20Sopenharmony_ci }, 14758c2ecf20Sopenharmony_ci }, 14768c2ecf20Sopenharmony_ci}; 14778c2ecf20Sopenharmony_ci 14788c2ecf20Sopenharmony_cistatic struct clk_rcg prng_src = { 14798c2ecf20Sopenharmony_ci .ns_reg = 0x2e80, 14808c2ecf20Sopenharmony_ci .p = { 14818c2ecf20Sopenharmony_ci .pre_div_shift = 3, 14828c2ecf20Sopenharmony_ci .pre_div_width = 4, 14838c2ecf20Sopenharmony_ci }, 14848c2ecf20Sopenharmony_ci .s = { 14858c2ecf20Sopenharmony_ci .src_sel_shift = 0, 14868c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 14878c2ecf20Sopenharmony_ci }, 14888c2ecf20Sopenharmony_ci .clkr.hw = { 14898c2ecf20Sopenharmony_ci .init = &(struct clk_init_data){ 14908c2ecf20Sopenharmony_ci .name = "prng_src", 14918c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 14928c2ecf20Sopenharmony_ci .num_parents = 2, 14938c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 14948c2ecf20Sopenharmony_ci }, 14958c2ecf20Sopenharmony_ci }, 14968c2ecf20Sopenharmony_ci}; 14978c2ecf20Sopenharmony_ci 14988c2ecf20Sopenharmony_cistatic struct clk_branch prng_clk = { 14998c2ecf20Sopenharmony_ci .halt_reg = 0x2fd8, 15008c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 15018c2ecf20Sopenharmony_ci .halt_bit = 10, 15028c2ecf20Sopenharmony_ci .clkr = { 15038c2ecf20Sopenharmony_ci .enable_reg = 0x3080, 15048c2ecf20Sopenharmony_ci .enable_mask = BIT(10), 15058c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15068c2ecf20Sopenharmony_ci .name = "prng_clk", 15078c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "prng_src" }, 15088c2ecf20Sopenharmony_ci .num_parents = 1, 15098c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 15108c2ecf20Sopenharmony_ci }, 15118c2ecf20Sopenharmony_ci }, 15128c2ecf20Sopenharmony_ci}; 15138c2ecf20Sopenharmony_ci 15148c2ecf20Sopenharmony_cistatic const struct freq_tbl clk_tbl_sdc[] = { 15158c2ecf20Sopenharmony_ci { 144000, P_PXO, 3, 2, 125 }, 15168c2ecf20Sopenharmony_ci { 400000, P_PLL8, 4, 1, 240 }, 15178c2ecf20Sopenharmony_ci { 16000000, P_PLL8, 4, 1, 6 }, 15188c2ecf20Sopenharmony_ci { 17070000, P_PLL8, 1, 2, 45 }, 15198c2ecf20Sopenharmony_ci { 20210000, P_PLL8, 1, 1, 19 }, 15208c2ecf20Sopenharmony_ci { 24000000, P_PLL8, 4, 1, 4 }, 15218c2ecf20Sopenharmony_ci { 48000000, P_PLL8, 4, 1, 2 }, 15228c2ecf20Sopenharmony_ci { } 15238c2ecf20Sopenharmony_ci}; 15248c2ecf20Sopenharmony_ci 15258c2ecf20Sopenharmony_cistatic struct clk_rcg sdc1_src = { 15268c2ecf20Sopenharmony_ci .ns_reg = 0x282c, 15278c2ecf20Sopenharmony_ci .md_reg = 0x2828, 15288c2ecf20Sopenharmony_ci .mn = { 15298c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 15308c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 15318c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 15328c2ecf20Sopenharmony_ci .n_val_shift = 16, 15338c2ecf20Sopenharmony_ci .m_val_shift = 16, 15348c2ecf20Sopenharmony_ci .width = 8, 15358c2ecf20Sopenharmony_ci }, 15368c2ecf20Sopenharmony_ci .p = { 15378c2ecf20Sopenharmony_ci .pre_div_shift = 3, 15388c2ecf20Sopenharmony_ci .pre_div_width = 2, 15398c2ecf20Sopenharmony_ci }, 15408c2ecf20Sopenharmony_ci .s = { 15418c2ecf20Sopenharmony_ci .src_sel_shift = 0, 15428c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 15438c2ecf20Sopenharmony_ci }, 15448c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_sdc, 15458c2ecf20Sopenharmony_ci .clkr = { 15468c2ecf20Sopenharmony_ci .enable_reg = 0x282c, 15478c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 15488c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15498c2ecf20Sopenharmony_ci .name = "sdc1_src", 15508c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 15518c2ecf20Sopenharmony_ci .num_parents = 2, 15528c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 15538c2ecf20Sopenharmony_ci }, 15548c2ecf20Sopenharmony_ci } 15558c2ecf20Sopenharmony_ci}; 15568c2ecf20Sopenharmony_ci 15578c2ecf20Sopenharmony_cistatic struct clk_branch sdc1_clk = { 15588c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 15598c2ecf20Sopenharmony_ci .halt_bit = 6, 15608c2ecf20Sopenharmony_ci .clkr = { 15618c2ecf20Sopenharmony_ci .enable_reg = 0x282c, 15628c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 15638c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15648c2ecf20Sopenharmony_ci .name = "sdc1_clk", 15658c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "sdc1_src" }, 15668c2ecf20Sopenharmony_ci .num_parents = 1, 15678c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 15688c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 15698c2ecf20Sopenharmony_ci }, 15708c2ecf20Sopenharmony_ci }, 15718c2ecf20Sopenharmony_ci}; 15728c2ecf20Sopenharmony_ci 15738c2ecf20Sopenharmony_cistatic struct clk_rcg sdc2_src = { 15748c2ecf20Sopenharmony_ci .ns_reg = 0x284c, 15758c2ecf20Sopenharmony_ci .md_reg = 0x2848, 15768c2ecf20Sopenharmony_ci .mn = { 15778c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 15788c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 15798c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 15808c2ecf20Sopenharmony_ci .n_val_shift = 16, 15818c2ecf20Sopenharmony_ci .m_val_shift = 16, 15828c2ecf20Sopenharmony_ci .width = 8, 15838c2ecf20Sopenharmony_ci }, 15848c2ecf20Sopenharmony_ci .p = { 15858c2ecf20Sopenharmony_ci .pre_div_shift = 3, 15868c2ecf20Sopenharmony_ci .pre_div_width = 2, 15878c2ecf20Sopenharmony_ci }, 15888c2ecf20Sopenharmony_ci .s = { 15898c2ecf20Sopenharmony_ci .src_sel_shift = 0, 15908c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 15918c2ecf20Sopenharmony_ci }, 15928c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_sdc, 15938c2ecf20Sopenharmony_ci .clkr = { 15948c2ecf20Sopenharmony_ci .enable_reg = 0x284c, 15958c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 15968c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 15978c2ecf20Sopenharmony_ci .name = "sdc2_src", 15988c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 15998c2ecf20Sopenharmony_ci .num_parents = 2, 16008c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 16018c2ecf20Sopenharmony_ci }, 16028c2ecf20Sopenharmony_ci } 16038c2ecf20Sopenharmony_ci}; 16048c2ecf20Sopenharmony_ci 16058c2ecf20Sopenharmony_cistatic struct clk_branch sdc2_clk = { 16068c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 16078c2ecf20Sopenharmony_ci .halt_bit = 5, 16088c2ecf20Sopenharmony_ci .clkr = { 16098c2ecf20Sopenharmony_ci .enable_reg = 0x284c, 16108c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 16118c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16128c2ecf20Sopenharmony_ci .name = "sdc2_clk", 16138c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "sdc2_src" }, 16148c2ecf20Sopenharmony_ci .num_parents = 1, 16158c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 16168c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16178c2ecf20Sopenharmony_ci }, 16188c2ecf20Sopenharmony_ci }, 16198c2ecf20Sopenharmony_ci}; 16208c2ecf20Sopenharmony_ci 16218c2ecf20Sopenharmony_cistatic struct clk_rcg sdc3_src = { 16228c2ecf20Sopenharmony_ci .ns_reg = 0x286c, 16238c2ecf20Sopenharmony_ci .md_reg = 0x2868, 16248c2ecf20Sopenharmony_ci .mn = { 16258c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 16268c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 16278c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 16288c2ecf20Sopenharmony_ci .n_val_shift = 16, 16298c2ecf20Sopenharmony_ci .m_val_shift = 16, 16308c2ecf20Sopenharmony_ci .width = 8, 16318c2ecf20Sopenharmony_ci }, 16328c2ecf20Sopenharmony_ci .p = { 16338c2ecf20Sopenharmony_ci .pre_div_shift = 3, 16348c2ecf20Sopenharmony_ci .pre_div_width = 2, 16358c2ecf20Sopenharmony_ci }, 16368c2ecf20Sopenharmony_ci .s = { 16378c2ecf20Sopenharmony_ci .src_sel_shift = 0, 16388c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 16398c2ecf20Sopenharmony_ci }, 16408c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_sdc, 16418c2ecf20Sopenharmony_ci .clkr = { 16428c2ecf20Sopenharmony_ci .enable_reg = 0x286c, 16438c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 16448c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16458c2ecf20Sopenharmony_ci .name = "sdc3_src", 16468c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 16478c2ecf20Sopenharmony_ci .num_parents = 2, 16488c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 16498c2ecf20Sopenharmony_ci }, 16508c2ecf20Sopenharmony_ci } 16518c2ecf20Sopenharmony_ci}; 16528c2ecf20Sopenharmony_ci 16538c2ecf20Sopenharmony_cistatic struct clk_branch sdc3_clk = { 16548c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 16558c2ecf20Sopenharmony_ci .halt_bit = 4, 16568c2ecf20Sopenharmony_ci .clkr = { 16578c2ecf20Sopenharmony_ci .enable_reg = 0x286c, 16588c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 16598c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16608c2ecf20Sopenharmony_ci .name = "sdc3_clk", 16618c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "sdc3_src" }, 16628c2ecf20Sopenharmony_ci .num_parents = 1, 16638c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 16648c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 16658c2ecf20Sopenharmony_ci }, 16668c2ecf20Sopenharmony_ci }, 16678c2ecf20Sopenharmony_ci}; 16688c2ecf20Sopenharmony_ci 16698c2ecf20Sopenharmony_cistatic struct clk_rcg sdc4_src = { 16708c2ecf20Sopenharmony_ci .ns_reg = 0x288c, 16718c2ecf20Sopenharmony_ci .md_reg = 0x2888, 16728c2ecf20Sopenharmony_ci .mn = { 16738c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 16748c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 16758c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 16768c2ecf20Sopenharmony_ci .n_val_shift = 16, 16778c2ecf20Sopenharmony_ci .m_val_shift = 16, 16788c2ecf20Sopenharmony_ci .width = 8, 16798c2ecf20Sopenharmony_ci }, 16808c2ecf20Sopenharmony_ci .p = { 16818c2ecf20Sopenharmony_ci .pre_div_shift = 3, 16828c2ecf20Sopenharmony_ci .pre_div_width = 2, 16838c2ecf20Sopenharmony_ci }, 16848c2ecf20Sopenharmony_ci .s = { 16858c2ecf20Sopenharmony_ci .src_sel_shift = 0, 16868c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 16878c2ecf20Sopenharmony_ci }, 16888c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_sdc, 16898c2ecf20Sopenharmony_ci .clkr = { 16908c2ecf20Sopenharmony_ci .enable_reg = 0x288c, 16918c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 16928c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 16938c2ecf20Sopenharmony_ci .name = "sdc4_src", 16948c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 16958c2ecf20Sopenharmony_ci .num_parents = 2, 16968c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 16978c2ecf20Sopenharmony_ci }, 16988c2ecf20Sopenharmony_ci } 16998c2ecf20Sopenharmony_ci}; 17008c2ecf20Sopenharmony_ci 17018c2ecf20Sopenharmony_cistatic struct clk_branch sdc4_clk = { 17028c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 17038c2ecf20Sopenharmony_ci .halt_bit = 3, 17048c2ecf20Sopenharmony_ci .clkr = { 17058c2ecf20Sopenharmony_ci .enable_reg = 0x288c, 17068c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 17078c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17088c2ecf20Sopenharmony_ci .name = "sdc4_clk", 17098c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "sdc4_src" }, 17108c2ecf20Sopenharmony_ci .num_parents = 1, 17118c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 17128c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17138c2ecf20Sopenharmony_ci }, 17148c2ecf20Sopenharmony_ci }, 17158c2ecf20Sopenharmony_ci}; 17168c2ecf20Sopenharmony_ci 17178c2ecf20Sopenharmony_cistatic struct clk_rcg sdc5_src = { 17188c2ecf20Sopenharmony_ci .ns_reg = 0x28ac, 17198c2ecf20Sopenharmony_ci .md_reg = 0x28a8, 17208c2ecf20Sopenharmony_ci .mn = { 17218c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 17228c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 17238c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 17248c2ecf20Sopenharmony_ci .n_val_shift = 16, 17258c2ecf20Sopenharmony_ci .m_val_shift = 16, 17268c2ecf20Sopenharmony_ci .width = 8, 17278c2ecf20Sopenharmony_ci }, 17288c2ecf20Sopenharmony_ci .p = { 17298c2ecf20Sopenharmony_ci .pre_div_shift = 3, 17308c2ecf20Sopenharmony_ci .pre_div_width = 2, 17318c2ecf20Sopenharmony_ci }, 17328c2ecf20Sopenharmony_ci .s = { 17338c2ecf20Sopenharmony_ci .src_sel_shift = 0, 17348c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 17358c2ecf20Sopenharmony_ci }, 17368c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_sdc, 17378c2ecf20Sopenharmony_ci .clkr = { 17388c2ecf20Sopenharmony_ci .enable_reg = 0x28ac, 17398c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 17408c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17418c2ecf20Sopenharmony_ci .name = "sdc5_src", 17428c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 17438c2ecf20Sopenharmony_ci .num_parents = 2, 17448c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 17458c2ecf20Sopenharmony_ci }, 17468c2ecf20Sopenharmony_ci } 17478c2ecf20Sopenharmony_ci}; 17488c2ecf20Sopenharmony_ci 17498c2ecf20Sopenharmony_cistatic struct clk_branch sdc5_clk = { 17508c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 17518c2ecf20Sopenharmony_ci .halt_bit = 2, 17528c2ecf20Sopenharmony_ci .clkr = { 17538c2ecf20Sopenharmony_ci .enable_reg = 0x28ac, 17548c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 17558c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17568c2ecf20Sopenharmony_ci .name = "sdc5_clk", 17578c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "sdc5_src" }, 17588c2ecf20Sopenharmony_ci .num_parents = 1, 17598c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 17608c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 17618c2ecf20Sopenharmony_ci }, 17628c2ecf20Sopenharmony_ci }, 17638c2ecf20Sopenharmony_ci}; 17648c2ecf20Sopenharmony_ci 17658c2ecf20Sopenharmony_cistatic const struct freq_tbl clk_tbl_tsif_ref[] = { 17668c2ecf20Sopenharmony_ci { 105000, P_PXO, 1, 1, 256 }, 17678c2ecf20Sopenharmony_ci { } 17688c2ecf20Sopenharmony_ci}; 17698c2ecf20Sopenharmony_ci 17708c2ecf20Sopenharmony_cistatic struct clk_rcg tsif_ref_src = { 17718c2ecf20Sopenharmony_ci .ns_reg = 0x2710, 17728c2ecf20Sopenharmony_ci .md_reg = 0x270c, 17738c2ecf20Sopenharmony_ci .mn = { 17748c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 17758c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 17768c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 17778c2ecf20Sopenharmony_ci .n_val_shift = 16, 17788c2ecf20Sopenharmony_ci .m_val_shift = 16, 17798c2ecf20Sopenharmony_ci .width = 16, 17808c2ecf20Sopenharmony_ci }, 17818c2ecf20Sopenharmony_ci .p = { 17828c2ecf20Sopenharmony_ci .pre_div_shift = 3, 17838c2ecf20Sopenharmony_ci .pre_div_width = 2, 17848c2ecf20Sopenharmony_ci }, 17858c2ecf20Sopenharmony_ci .s = { 17868c2ecf20Sopenharmony_ci .src_sel_shift = 0, 17878c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 17888c2ecf20Sopenharmony_ci }, 17898c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_tsif_ref, 17908c2ecf20Sopenharmony_ci .clkr = { 17918c2ecf20Sopenharmony_ci .enable_reg = 0x2710, 17928c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 17938c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 17948c2ecf20Sopenharmony_ci .name = "tsif_ref_src", 17958c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 17968c2ecf20Sopenharmony_ci .num_parents = 2, 17978c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 17988c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_GATE, 17998c2ecf20Sopenharmony_ci }, 18008c2ecf20Sopenharmony_ci } 18018c2ecf20Sopenharmony_ci}; 18028c2ecf20Sopenharmony_ci 18038c2ecf20Sopenharmony_cistatic struct clk_branch tsif_ref_clk = { 18048c2ecf20Sopenharmony_ci .halt_reg = 0x2fd4, 18058c2ecf20Sopenharmony_ci .halt_bit = 5, 18068c2ecf20Sopenharmony_ci .clkr = { 18078c2ecf20Sopenharmony_ci .enable_reg = 0x2710, 18088c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 18098c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18108c2ecf20Sopenharmony_ci .name = "tsif_ref_clk", 18118c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "tsif_ref_src" }, 18128c2ecf20Sopenharmony_ci .num_parents = 1, 18138c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 18148c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18158c2ecf20Sopenharmony_ci }, 18168c2ecf20Sopenharmony_ci }, 18178c2ecf20Sopenharmony_ci}; 18188c2ecf20Sopenharmony_ci 18198c2ecf20Sopenharmony_cistatic const struct freq_tbl clk_tbl_usb[] = { 18208c2ecf20Sopenharmony_ci { 60000000, P_PLL8, 1, 5, 32 }, 18218c2ecf20Sopenharmony_ci { } 18228c2ecf20Sopenharmony_ci}; 18238c2ecf20Sopenharmony_ci 18248c2ecf20Sopenharmony_cistatic struct clk_rcg usb_hs1_xcvr_src = { 18258c2ecf20Sopenharmony_ci .ns_reg = 0x290c, 18268c2ecf20Sopenharmony_ci .md_reg = 0x2908, 18278c2ecf20Sopenharmony_ci .mn = { 18288c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 18298c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 18308c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 18318c2ecf20Sopenharmony_ci .n_val_shift = 16, 18328c2ecf20Sopenharmony_ci .m_val_shift = 16, 18338c2ecf20Sopenharmony_ci .width = 8, 18348c2ecf20Sopenharmony_ci }, 18358c2ecf20Sopenharmony_ci .p = { 18368c2ecf20Sopenharmony_ci .pre_div_shift = 3, 18378c2ecf20Sopenharmony_ci .pre_div_width = 2, 18388c2ecf20Sopenharmony_ci }, 18398c2ecf20Sopenharmony_ci .s = { 18408c2ecf20Sopenharmony_ci .src_sel_shift = 0, 18418c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 18428c2ecf20Sopenharmony_ci }, 18438c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_usb, 18448c2ecf20Sopenharmony_ci .clkr = { 18458c2ecf20Sopenharmony_ci .enable_reg = 0x290c, 18468c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 18478c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18488c2ecf20Sopenharmony_ci .name = "usb_hs1_xcvr_src", 18498c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 18508c2ecf20Sopenharmony_ci .num_parents = 2, 18518c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 18528c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_GATE, 18538c2ecf20Sopenharmony_ci }, 18548c2ecf20Sopenharmony_ci } 18558c2ecf20Sopenharmony_ci}; 18568c2ecf20Sopenharmony_ci 18578c2ecf20Sopenharmony_cistatic struct clk_branch usb_hs1_xcvr_clk = { 18588c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 18598c2ecf20Sopenharmony_ci .halt_bit = 0, 18608c2ecf20Sopenharmony_ci .clkr = { 18618c2ecf20Sopenharmony_ci .enable_reg = 0x290c, 18628c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 18638c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18648c2ecf20Sopenharmony_ci .name = "usb_hs1_xcvr_clk", 18658c2ecf20Sopenharmony_ci .parent_names = (const char *[]){ "usb_hs1_xcvr_src" }, 18668c2ecf20Sopenharmony_ci .num_parents = 1, 18678c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 18688c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 18698c2ecf20Sopenharmony_ci }, 18708c2ecf20Sopenharmony_ci }, 18718c2ecf20Sopenharmony_ci}; 18728c2ecf20Sopenharmony_ci 18738c2ecf20Sopenharmony_cistatic struct clk_rcg usb_fs1_xcvr_fs_src = { 18748c2ecf20Sopenharmony_ci .ns_reg = 0x2968, 18758c2ecf20Sopenharmony_ci .md_reg = 0x2964, 18768c2ecf20Sopenharmony_ci .mn = { 18778c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 18788c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 18798c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 18808c2ecf20Sopenharmony_ci .n_val_shift = 16, 18818c2ecf20Sopenharmony_ci .m_val_shift = 16, 18828c2ecf20Sopenharmony_ci .width = 8, 18838c2ecf20Sopenharmony_ci }, 18848c2ecf20Sopenharmony_ci .p = { 18858c2ecf20Sopenharmony_ci .pre_div_shift = 3, 18868c2ecf20Sopenharmony_ci .pre_div_width = 2, 18878c2ecf20Sopenharmony_ci }, 18888c2ecf20Sopenharmony_ci .s = { 18898c2ecf20Sopenharmony_ci .src_sel_shift = 0, 18908c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 18918c2ecf20Sopenharmony_ci }, 18928c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_usb, 18938c2ecf20Sopenharmony_ci .clkr = { 18948c2ecf20Sopenharmony_ci .enable_reg = 0x2968, 18958c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 18968c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 18978c2ecf20Sopenharmony_ci .name = "usb_fs1_xcvr_fs_src", 18988c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 18998c2ecf20Sopenharmony_ci .num_parents = 2, 19008c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 19018c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_GATE, 19028c2ecf20Sopenharmony_ci }, 19038c2ecf20Sopenharmony_ci } 19048c2ecf20Sopenharmony_ci}; 19058c2ecf20Sopenharmony_ci 19068c2ecf20Sopenharmony_cistatic const char * const usb_fs1_xcvr_fs_src_p[] = { "usb_fs1_xcvr_fs_src" }; 19078c2ecf20Sopenharmony_ci 19088c2ecf20Sopenharmony_cistatic struct clk_branch usb_fs1_xcvr_fs_clk = { 19098c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 19108c2ecf20Sopenharmony_ci .halt_bit = 15, 19118c2ecf20Sopenharmony_ci .clkr = { 19128c2ecf20Sopenharmony_ci .enable_reg = 0x2968, 19138c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 19148c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19158c2ecf20Sopenharmony_ci .name = "usb_fs1_xcvr_fs_clk", 19168c2ecf20Sopenharmony_ci .parent_names = usb_fs1_xcvr_fs_src_p, 19178c2ecf20Sopenharmony_ci .num_parents = 1, 19188c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 19198c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19208c2ecf20Sopenharmony_ci }, 19218c2ecf20Sopenharmony_ci }, 19228c2ecf20Sopenharmony_ci}; 19238c2ecf20Sopenharmony_ci 19248c2ecf20Sopenharmony_cistatic struct clk_branch usb_fs1_system_clk = { 19258c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 19268c2ecf20Sopenharmony_ci .halt_bit = 16, 19278c2ecf20Sopenharmony_ci .clkr = { 19288c2ecf20Sopenharmony_ci .enable_reg = 0x296c, 19298c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 19308c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19318c2ecf20Sopenharmony_ci .parent_names = usb_fs1_xcvr_fs_src_p, 19328c2ecf20Sopenharmony_ci .num_parents = 1, 19338c2ecf20Sopenharmony_ci .name = "usb_fs1_system_clk", 19348c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 19358c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19368c2ecf20Sopenharmony_ci }, 19378c2ecf20Sopenharmony_ci }, 19388c2ecf20Sopenharmony_ci}; 19398c2ecf20Sopenharmony_ci 19408c2ecf20Sopenharmony_cistatic struct clk_rcg usb_fs2_xcvr_fs_src = { 19418c2ecf20Sopenharmony_ci .ns_reg = 0x2988, 19428c2ecf20Sopenharmony_ci .md_reg = 0x2984, 19438c2ecf20Sopenharmony_ci .mn = { 19448c2ecf20Sopenharmony_ci .mnctr_en_bit = 8, 19458c2ecf20Sopenharmony_ci .mnctr_reset_bit = 7, 19468c2ecf20Sopenharmony_ci .mnctr_mode_shift = 5, 19478c2ecf20Sopenharmony_ci .n_val_shift = 16, 19488c2ecf20Sopenharmony_ci .m_val_shift = 16, 19498c2ecf20Sopenharmony_ci .width = 8, 19508c2ecf20Sopenharmony_ci }, 19518c2ecf20Sopenharmony_ci .p = { 19528c2ecf20Sopenharmony_ci .pre_div_shift = 3, 19538c2ecf20Sopenharmony_ci .pre_div_width = 2, 19548c2ecf20Sopenharmony_ci }, 19558c2ecf20Sopenharmony_ci .s = { 19568c2ecf20Sopenharmony_ci .src_sel_shift = 0, 19578c2ecf20Sopenharmony_ci .parent_map = gcc_pxo_pll8_map, 19588c2ecf20Sopenharmony_ci }, 19598c2ecf20Sopenharmony_ci .freq_tbl = clk_tbl_usb, 19608c2ecf20Sopenharmony_ci .clkr = { 19618c2ecf20Sopenharmony_ci .enable_reg = 0x2988, 19628c2ecf20Sopenharmony_ci .enable_mask = BIT(11), 19638c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19648c2ecf20Sopenharmony_ci .name = "usb_fs2_xcvr_fs_src", 19658c2ecf20Sopenharmony_ci .parent_names = gcc_pxo_pll8, 19668c2ecf20Sopenharmony_ci .num_parents = 2, 19678c2ecf20Sopenharmony_ci .ops = &clk_rcg_ops, 19688c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_GATE, 19698c2ecf20Sopenharmony_ci }, 19708c2ecf20Sopenharmony_ci } 19718c2ecf20Sopenharmony_ci}; 19728c2ecf20Sopenharmony_ci 19738c2ecf20Sopenharmony_cistatic const char * const usb_fs2_xcvr_fs_src_p[] = { "usb_fs2_xcvr_fs_src" }; 19748c2ecf20Sopenharmony_ci 19758c2ecf20Sopenharmony_cistatic struct clk_branch usb_fs2_xcvr_fs_clk = { 19768c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 19778c2ecf20Sopenharmony_ci .halt_bit = 12, 19788c2ecf20Sopenharmony_ci .clkr = { 19798c2ecf20Sopenharmony_ci .enable_reg = 0x2988, 19808c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 19818c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19828c2ecf20Sopenharmony_ci .name = "usb_fs2_xcvr_fs_clk", 19838c2ecf20Sopenharmony_ci .parent_names = usb_fs2_xcvr_fs_src_p, 19848c2ecf20Sopenharmony_ci .num_parents = 1, 19858c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 19868c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 19878c2ecf20Sopenharmony_ci }, 19888c2ecf20Sopenharmony_ci }, 19898c2ecf20Sopenharmony_ci}; 19908c2ecf20Sopenharmony_ci 19918c2ecf20Sopenharmony_cistatic struct clk_branch usb_fs2_system_clk = { 19928c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 19938c2ecf20Sopenharmony_ci .halt_bit = 13, 19948c2ecf20Sopenharmony_ci .clkr = { 19958c2ecf20Sopenharmony_ci .enable_reg = 0x298c, 19968c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 19978c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 19988c2ecf20Sopenharmony_ci .name = "usb_fs2_system_clk", 19998c2ecf20Sopenharmony_ci .parent_names = usb_fs2_xcvr_fs_src_p, 20008c2ecf20Sopenharmony_ci .num_parents = 1, 20018c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 20028c2ecf20Sopenharmony_ci .flags = CLK_SET_RATE_PARENT, 20038c2ecf20Sopenharmony_ci }, 20048c2ecf20Sopenharmony_ci }, 20058c2ecf20Sopenharmony_ci}; 20068c2ecf20Sopenharmony_ci 20078c2ecf20Sopenharmony_cistatic struct clk_branch gsbi1_h_clk = { 20088c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 20098c2ecf20Sopenharmony_ci .halt_bit = 11, 20108c2ecf20Sopenharmony_ci .clkr = { 20118c2ecf20Sopenharmony_ci .enable_reg = 0x29c0, 20128c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 20138c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20148c2ecf20Sopenharmony_ci .name = "gsbi1_h_clk", 20158c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 20168c2ecf20Sopenharmony_ci }, 20178c2ecf20Sopenharmony_ci }, 20188c2ecf20Sopenharmony_ci}; 20198c2ecf20Sopenharmony_ci 20208c2ecf20Sopenharmony_cistatic struct clk_branch gsbi2_h_clk = { 20218c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 20228c2ecf20Sopenharmony_ci .halt_bit = 7, 20238c2ecf20Sopenharmony_ci .clkr = { 20248c2ecf20Sopenharmony_ci .enable_reg = 0x29e0, 20258c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 20268c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20278c2ecf20Sopenharmony_ci .name = "gsbi2_h_clk", 20288c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 20298c2ecf20Sopenharmony_ci }, 20308c2ecf20Sopenharmony_ci }, 20318c2ecf20Sopenharmony_ci}; 20328c2ecf20Sopenharmony_ci 20338c2ecf20Sopenharmony_cistatic struct clk_branch gsbi3_h_clk = { 20348c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 20358c2ecf20Sopenharmony_ci .halt_bit = 3, 20368c2ecf20Sopenharmony_ci .clkr = { 20378c2ecf20Sopenharmony_ci .enable_reg = 0x2a00, 20388c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 20398c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20408c2ecf20Sopenharmony_ci .name = "gsbi3_h_clk", 20418c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 20428c2ecf20Sopenharmony_ci }, 20438c2ecf20Sopenharmony_ci }, 20448c2ecf20Sopenharmony_ci}; 20458c2ecf20Sopenharmony_ci 20468c2ecf20Sopenharmony_cistatic struct clk_branch gsbi4_h_clk = { 20478c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 20488c2ecf20Sopenharmony_ci .halt_bit = 27, 20498c2ecf20Sopenharmony_ci .clkr = { 20508c2ecf20Sopenharmony_ci .enable_reg = 0x2a20, 20518c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 20528c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20538c2ecf20Sopenharmony_ci .name = "gsbi4_h_clk", 20548c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 20558c2ecf20Sopenharmony_ci }, 20568c2ecf20Sopenharmony_ci }, 20578c2ecf20Sopenharmony_ci}; 20588c2ecf20Sopenharmony_ci 20598c2ecf20Sopenharmony_cistatic struct clk_branch gsbi5_h_clk = { 20608c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 20618c2ecf20Sopenharmony_ci .halt_bit = 23, 20628c2ecf20Sopenharmony_ci .clkr = { 20638c2ecf20Sopenharmony_ci .enable_reg = 0x2a40, 20648c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 20658c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20668c2ecf20Sopenharmony_ci .name = "gsbi5_h_clk", 20678c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 20688c2ecf20Sopenharmony_ci }, 20698c2ecf20Sopenharmony_ci }, 20708c2ecf20Sopenharmony_ci}; 20718c2ecf20Sopenharmony_ci 20728c2ecf20Sopenharmony_cistatic struct clk_branch gsbi6_h_clk = { 20738c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 20748c2ecf20Sopenharmony_ci .halt_bit = 19, 20758c2ecf20Sopenharmony_ci .clkr = { 20768c2ecf20Sopenharmony_ci .enable_reg = 0x2a60, 20778c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 20788c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20798c2ecf20Sopenharmony_ci .name = "gsbi6_h_clk", 20808c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 20818c2ecf20Sopenharmony_ci }, 20828c2ecf20Sopenharmony_ci }, 20838c2ecf20Sopenharmony_ci}; 20848c2ecf20Sopenharmony_ci 20858c2ecf20Sopenharmony_cistatic struct clk_branch gsbi7_h_clk = { 20868c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 20878c2ecf20Sopenharmony_ci .halt_bit = 15, 20888c2ecf20Sopenharmony_ci .clkr = { 20898c2ecf20Sopenharmony_ci .enable_reg = 0x2a80, 20908c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 20918c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 20928c2ecf20Sopenharmony_ci .name = "gsbi7_h_clk", 20938c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 20948c2ecf20Sopenharmony_ci }, 20958c2ecf20Sopenharmony_ci }, 20968c2ecf20Sopenharmony_ci}; 20978c2ecf20Sopenharmony_ci 20988c2ecf20Sopenharmony_cistatic struct clk_branch gsbi8_h_clk = { 20998c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 21008c2ecf20Sopenharmony_ci .halt_bit = 11, 21018c2ecf20Sopenharmony_ci .clkr = { 21028c2ecf20Sopenharmony_ci .enable_reg = 0x2aa0, 21038c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 21048c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21058c2ecf20Sopenharmony_ci .name = "gsbi8_h_clk", 21068c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 21078c2ecf20Sopenharmony_ci }, 21088c2ecf20Sopenharmony_ci }, 21098c2ecf20Sopenharmony_ci}; 21108c2ecf20Sopenharmony_ci 21118c2ecf20Sopenharmony_cistatic struct clk_branch gsbi9_h_clk = { 21128c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 21138c2ecf20Sopenharmony_ci .halt_bit = 7, 21148c2ecf20Sopenharmony_ci .clkr = { 21158c2ecf20Sopenharmony_ci .enable_reg = 0x2ac0, 21168c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 21178c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21188c2ecf20Sopenharmony_ci .name = "gsbi9_h_clk", 21198c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 21208c2ecf20Sopenharmony_ci }, 21218c2ecf20Sopenharmony_ci }, 21228c2ecf20Sopenharmony_ci}; 21238c2ecf20Sopenharmony_ci 21248c2ecf20Sopenharmony_cistatic struct clk_branch gsbi10_h_clk = { 21258c2ecf20Sopenharmony_ci .halt_reg = 0x2fd0, 21268c2ecf20Sopenharmony_ci .halt_bit = 3, 21278c2ecf20Sopenharmony_ci .clkr = { 21288c2ecf20Sopenharmony_ci .enable_reg = 0x2ae0, 21298c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 21308c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21318c2ecf20Sopenharmony_ci .name = "gsbi10_h_clk", 21328c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 21338c2ecf20Sopenharmony_ci }, 21348c2ecf20Sopenharmony_ci }, 21358c2ecf20Sopenharmony_ci}; 21368c2ecf20Sopenharmony_ci 21378c2ecf20Sopenharmony_cistatic struct clk_branch gsbi11_h_clk = { 21388c2ecf20Sopenharmony_ci .halt_reg = 0x2fd4, 21398c2ecf20Sopenharmony_ci .halt_bit = 18, 21408c2ecf20Sopenharmony_ci .clkr = { 21418c2ecf20Sopenharmony_ci .enable_reg = 0x2b00, 21428c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 21438c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21448c2ecf20Sopenharmony_ci .name = "gsbi11_h_clk", 21458c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 21468c2ecf20Sopenharmony_ci }, 21478c2ecf20Sopenharmony_ci }, 21488c2ecf20Sopenharmony_ci}; 21498c2ecf20Sopenharmony_ci 21508c2ecf20Sopenharmony_cistatic struct clk_branch gsbi12_h_clk = { 21518c2ecf20Sopenharmony_ci .halt_reg = 0x2fd4, 21528c2ecf20Sopenharmony_ci .halt_bit = 14, 21538c2ecf20Sopenharmony_ci .clkr = { 21548c2ecf20Sopenharmony_ci .enable_reg = 0x2b20, 21558c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 21568c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21578c2ecf20Sopenharmony_ci .name = "gsbi12_h_clk", 21588c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 21598c2ecf20Sopenharmony_ci }, 21608c2ecf20Sopenharmony_ci }, 21618c2ecf20Sopenharmony_ci}; 21628c2ecf20Sopenharmony_ci 21638c2ecf20Sopenharmony_cistatic struct clk_branch tsif_h_clk = { 21648c2ecf20Sopenharmony_ci .halt_reg = 0x2fd4, 21658c2ecf20Sopenharmony_ci .halt_bit = 7, 21668c2ecf20Sopenharmony_ci .clkr = { 21678c2ecf20Sopenharmony_ci .enable_reg = 0x2700, 21688c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 21698c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21708c2ecf20Sopenharmony_ci .name = "tsif_h_clk", 21718c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 21728c2ecf20Sopenharmony_ci }, 21738c2ecf20Sopenharmony_ci }, 21748c2ecf20Sopenharmony_ci}; 21758c2ecf20Sopenharmony_ci 21768c2ecf20Sopenharmony_cistatic struct clk_branch usb_fs1_h_clk = { 21778c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 21788c2ecf20Sopenharmony_ci .halt_bit = 17, 21798c2ecf20Sopenharmony_ci .clkr = { 21808c2ecf20Sopenharmony_ci .enable_reg = 0x2960, 21818c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 21828c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21838c2ecf20Sopenharmony_ci .name = "usb_fs1_h_clk", 21848c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 21858c2ecf20Sopenharmony_ci }, 21868c2ecf20Sopenharmony_ci }, 21878c2ecf20Sopenharmony_ci}; 21888c2ecf20Sopenharmony_ci 21898c2ecf20Sopenharmony_cistatic struct clk_branch usb_fs2_h_clk = { 21908c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 21918c2ecf20Sopenharmony_ci .halt_bit = 14, 21928c2ecf20Sopenharmony_ci .clkr = { 21938c2ecf20Sopenharmony_ci .enable_reg = 0x2980, 21948c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 21958c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 21968c2ecf20Sopenharmony_ci .name = "usb_fs2_h_clk", 21978c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 21988c2ecf20Sopenharmony_ci }, 21998c2ecf20Sopenharmony_ci }, 22008c2ecf20Sopenharmony_ci}; 22018c2ecf20Sopenharmony_ci 22028c2ecf20Sopenharmony_cistatic struct clk_branch usb_hs1_h_clk = { 22038c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 22048c2ecf20Sopenharmony_ci .halt_bit = 1, 22058c2ecf20Sopenharmony_ci .clkr = { 22068c2ecf20Sopenharmony_ci .enable_reg = 0x2900, 22078c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 22088c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22098c2ecf20Sopenharmony_ci .name = "usb_hs1_h_clk", 22108c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 22118c2ecf20Sopenharmony_ci }, 22128c2ecf20Sopenharmony_ci }, 22138c2ecf20Sopenharmony_ci}; 22148c2ecf20Sopenharmony_ci 22158c2ecf20Sopenharmony_cistatic struct clk_branch sdc1_h_clk = { 22168c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 22178c2ecf20Sopenharmony_ci .halt_bit = 11, 22188c2ecf20Sopenharmony_ci .clkr = { 22198c2ecf20Sopenharmony_ci .enable_reg = 0x2820, 22208c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 22218c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22228c2ecf20Sopenharmony_ci .name = "sdc1_h_clk", 22238c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 22248c2ecf20Sopenharmony_ci }, 22258c2ecf20Sopenharmony_ci }, 22268c2ecf20Sopenharmony_ci}; 22278c2ecf20Sopenharmony_ci 22288c2ecf20Sopenharmony_cistatic struct clk_branch sdc2_h_clk = { 22298c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 22308c2ecf20Sopenharmony_ci .halt_bit = 10, 22318c2ecf20Sopenharmony_ci .clkr = { 22328c2ecf20Sopenharmony_ci .enable_reg = 0x2840, 22338c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 22348c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22358c2ecf20Sopenharmony_ci .name = "sdc2_h_clk", 22368c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 22378c2ecf20Sopenharmony_ci }, 22388c2ecf20Sopenharmony_ci }, 22398c2ecf20Sopenharmony_ci}; 22408c2ecf20Sopenharmony_ci 22418c2ecf20Sopenharmony_cistatic struct clk_branch sdc3_h_clk = { 22428c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 22438c2ecf20Sopenharmony_ci .halt_bit = 9, 22448c2ecf20Sopenharmony_ci .clkr = { 22458c2ecf20Sopenharmony_ci .enable_reg = 0x2860, 22468c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 22478c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22488c2ecf20Sopenharmony_ci .name = "sdc3_h_clk", 22498c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 22508c2ecf20Sopenharmony_ci }, 22518c2ecf20Sopenharmony_ci }, 22528c2ecf20Sopenharmony_ci}; 22538c2ecf20Sopenharmony_ci 22548c2ecf20Sopenharmony_cistatic struct clk_branch sdc4_h_clk = { 22558c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 22568c2ecf20Sopenharmony_ci .halt_bit = 8, 22578c2ecf20Sopenharmony_ci .clkr = { 22588c2ecf20Sopenharmony_ci .enable_reg = 0x2880, 22598c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 22608c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22618c2ecf20Sopenharmony_ci .name = "sdc4_h_clk", 22628c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 22638c2ecf20Sopenharmony_ci }, 22648c2ecf20Sopenharmony_ci }, 22658c2ecf20Sopenharmony_ci}; 22668c2ecf20Sopenharmony_ci 22678c2ecf20Sopenharmony_cistatic struct clk_branch sdc5_h_clk = { 22688c2ecf20Sopenharmony_ci .halt_reg = 0x2fc8, 22698c2ecf20Sopenharmony_ci .halt_bit = 7, 22708c2ecf20Sopenharmony_ci .clkr = { 22718c2ecf20Sopenharmony_ci .enable_reg = 0x28a0, 22728c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 22738c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22748c2ecf20Sopenharmony_ci .name = "sdc5_h_clk", 22758c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 22768c2ecf20Sopenharmony_ci }, 22778c2ecf20Sopenharmony_ci }, 22788c2ecf20Sopenharmony_ci}; 22798c2ecf20Sopenharmony_ci 22808c2ecf20Sopenharmony_cistatic struct clk_branch ebi2_2x_clk = { 22818c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 22828c2ecf20Sopenharmony_ci .halt_bit = 18, 22838c2ecf20Sopenharmony_ci .clkr = { 22848c2ecf20Sopenharmony_ci .enable_reg = 0x2660, 22858c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 22868c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 22878c2ecf20Sopenharmony_ci .name = "ebi2_2x_clk", 22888c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 22898c2ecf20Sopenharmony_ci }, 22908c2ecf20Sopenharmony_ci }, 22918c2ecf20Sopenharmony_ci}; 22928c2ecf20Sopenharmony_ci 22938c2ecf20Sopenharmony_cistatic struct clk_branch ebi2_clk = { 22948c2ecf20Sopenharmony_ci .halt_reg = 0x2fcc, 22958c2ecf20Sopenharmony_ci .halt_bit = 19, 22968c2ecf20Sopenharmony_ci .clkr = { 22978c2ecf20Sopenharmony_ci .enable_reg = 0x2664, 22988c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 22998c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23008c2ecf20Sopenharmony_ci .name = "ebi2_clk", 23018c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 23028c2ecf20Sopenharmony_ci }, 23038c2ecf20Sopenharmony_ci }, 23048c2ecf20Sopenharmony_ci}; 23058c2ecf20Sopenharmony_ci 23068c2ecf20Sopenharmony_cistatic struct clk_branch adm0_clk = { 23078c2ecf20Sopenharmony_ci .halt_reg = 0x2fdc, 23088c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23098c2ecf20Sopenharmony_ci .halt_bit = 14, 23108c2ecf20Sopenharmony_ci .clkr = { 23118c2ecf20Sopenharmony_ci .enable_reg = 0x3080, 23128c2ecf20Sopenharmony_ci .enable_mask = BIT(2), 23138c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23148c2ecf20Sopenharmony_ci .name = "adm0_clk", 23158c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 23168c2ecf20Sopenharmony_ci }, 23178c2ecf20Sopenharmony_ci }, 23188c2ecf20Sopenharmony_ci}; 23198c2ecf20Sopenharmony_ci 23208c2ecf20Sopenharmony_cistatic struct clk_branch adm0_pbus_clk = { 23218c2ecf20Sopenharmony_ci .halt_reg = 0x2fdc, 23228c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23238c2ecf20Sopenharmony_ci .halt_bit = 13, 23248c2ecf20Sopenharmony_ci .clkr = { 23258c2ecf20Sopenharmony_ci .enable_reg = 0x3080, 23268c2ecf20Sopenharmony_ci .enable_mask = BIT(3), 23278c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23288c2ecf20Sopenharmony_ci .name = "adm0_pbus_clk", 23298c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 23308c2ecf20Sopenharmony_ci }, 23318c2ecf20Sopenharmony_ci }, 23328c2ecf20Sopenharmony_ci}; 23338c2ecf20Sopenharmony_ci 23348c2ecf20Sopenharmony_cistatic struct clk_branch adm1_clk = { 23358c2ecf20Sopenharmony_ci .halt_reg = 0x2fdc, 23368c2ecf20Sopenharmony_ci .halt_bit = 12, 23378c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23388c2ecf20Sopenharmony_ci .clkr = { 23398c2ecf20Sopenharmony_ci .enable_reg = 0x3080, 23408c2ecf20Sopenharmony_ci .enable_mask = BIT(4), 23418c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23428c2ecf20Sopenharmony_ci .name = "adm1_clk", 23438c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 23448c2ecf20Sopenharmony_ci }, 23458c2ecf20Sopenharmony_ci }, 23468c2ecf20Sopenharmony_ci}; 23478c2ecf20Sopenharmony_ci 23488c2ecf20Sopenharmony_cistatic struct clk_branch adm1_pbus_clk = { 23498c2ecf20Sopenharmony_ci .halt_reg = 0x2fdc, 23508c2ecf20Sopenharmony_ci .halt_bit = 11, 23518c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23528c2ecf20Sopenharmony_ci .clkr = { 23538c2ecf20Sopenharmony_ci .enable_reg = 0x3080, 23548c2ecf20Sopenharmony_ci .enable_mask = BIT(5), 23558c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23568c2ecf20Sopenharmony_ci .name = "adm1_pbus_clk", 23578c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 23588c2ecf20Sopenharmony_ci }, 23598c2ecf20Sopenharmony_ci }, 23608c2ecf20Sopenharmony_ci}; 23618c2ecf20Sopenharmony_ci 23628c2ecf20Sopenharmony_cistatic struct clk_branch modem_ahb1_h_clk = { 23638c2ecf20Sopenharmony_ci .halt_reg = 0x2fdc, 23648c2ecf20Sopenharmony_ci .halt_bit = 8, 23658c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23668c2ecf20Sopenharmony_ci .clkr = { 23678c2ecf20Sopenharmony_ci .enable_reg = 0x3080, 23688c2ecf20Sopenharmony_ci .enable_mask = BIT(0), 23698c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23708c2ecf20Sopenharmony_ci .name = "modem_ahb1_h_clk", 23718c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 23728c2ecf20Sopenharmony_ci }, 23738c2ecf20Sopenharmony_ci }, 23748c2ecf20Sopenharmony_ci}; 23758c2ecf20Sopenharmony_ci 23768c2ecf20Sopenharmony_cistatic struct clk_branch modem_ahb2_h_clk = { 23778c2ecf20Sopenharmony_ci .halt_reg = 0x2fdc, 23788c2ecf20Sopenharmony_ci .halt_bit = 7, 23798c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23808c2ecf20Sopenharmony_ci .clkr = { 23818c2ecf20Sopenharmony_ci .enable_reg = 0x3080, 23828c2ecf20Sopenharmony_ci .enable_mask = BIT(1), 23838c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23848c2ecf20Sopenharmony_ci .name = "modem_ahb2_h_clk", 23858c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 23868c2ecf20Sopenharmony_ci }, 23878c2ecf20Sopenharmony_ci }, 23888c2ecf20Sopenharmony_ci}; 23898c2ecf20Sopenharmony_ci 23908c2ecf20Sopenharmony_cistatic struct clk_branch pmic_arb0_h_clk = { 23918c2ecf20Sopenharmony_ci .halt_reg = 0x2fd8, 23928c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 23938c2ecf20Sopenharmony_ci .halt_bit = 22, 23948c2ecf20Sopenharmony_ci .clkr = { 23958c2ecf20Sopenharmony_ci .enable_reg = 0x3080, 23968c2ecf20Sopenharmony_ci .enable_mask = BIT(8), 23978c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 23988c2ecf20Sopenharmony_ci .name = "pmic_arb0_h_clk", 23998c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 24008c2ecf20Sopenharmony_ci }, 24018c2ecf20Sopenharmony_ci }, 24028c2ecf20Sopenharmony_ci}; 24038c2ecf20Sopenharmony_ci 24048c2ecf20Sopenharmony_cistatic struct clk_branch pmic_arb1_h_clk = { 24058c2ecf20Sopenharmony_ci .halt_reg = 0x2fd8, 24068c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 24078c2ecf20Sopenharmony_ci .halt_bit = 21, 24088c2ecf20Sopenharmony_ci .clkr = { 24098c2ecf20Sopenharmony_ci .enable_reg = 0x3080, 24108c2ecf20Sopenharmony_ci .enable_mask = BIT(9), 24118c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24128c2ecf20Sopenharmony_ci .name = "pmic_arb1_h_clk", 24138c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 24148c2ecf20Sopenharmony_ci }, 24158c2ecf20Sopenharmony_ci }, 24168c2ecf20Sopenharmony_ci}; 24178c2ecf20Sopenharmony_ci 24188c2ecf20Sopenharmony_cistatic struct clk_branch pmic_ssbi2_clk = { 24198c2ecf20Sopenharmony_ci .halt_reg = 0x2fd8, 24208c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 24218c2ecf20Sopenharmony_ci .halt_bit = 23, 24228c2ecf20Sopenharmony_ci .clkr = { 24238c2ecf20Sopenharmony_ci .enable_reg = 0x3080, 24248c2ecf20Sopenharmony_ci .enable_mask = BIT(7), 24258c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24268c2ecf20Sopenharmony_ci .name = "pmic_ssbi2_clk", 24278c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 24288c2ecf20Sopenharmony_ci }, 24298c2ecf20Sopenharmony_ci }, 24308c2ecf20Sopenharmony_ci}; 24318c2ecf20Sopenharmony_ci 24328c2ecf20Sopenharmony_cistatic struct clk_branch rpm_msg_ram_h_clk = { 24338c2ecf20Sopenharmony_ci .hwcg_reg = 0x27e0, 24348c2ecf20Sopenharmony_ci .hwcg_bit = 6, 24358c2ecf20Sopenharmony_ci .halt_reg = 0x2fd8, 24368c2ecf20Sopenharmony_ci .halt_check = BRANCH_HALT_VOTED, 24378c2ecf20Sopenharmony_ci .halt_bit = 12, 24388c2ecf20Sopenharmony_ci .clkr = { 24398c2ecf20Sopenharmony_ci .enable_reg = 0x3080, 24408c2ecf20Sopenharmony_ci .enable_mask = BIT(6), 24418c2ecf20Sopenharmony_ci .hw.init = &(struct clk_init_data){ 24428c2ecf20Sopenharmony_ci .name = "rpm_msg_ram_h_clk", 24438c2ecf20Sopenharmony_ci .ops = &clk_branch_ops, 24448c2ecf20Sopenharmony_ci }, 24458c2ecf20Sopenharmony_ci }, 24468c2ecf20Sopenharmony_ci}; 24478c2ecf20Sopenharmony_ci 24488c2ecf20Sopenharmony_cistatic struct clk_regmap *gcc_msm8660_clks[] = { 24498c2ecf20Sopenharmony_ci [PLL8] = &pll8.clkr, 24508c2ecf20Sopenharmony_ci [PLL8_VOTE] = &pll8_vote, 24518c2ecf20Sopenharmony_ci [GSBI1_UART_SRC] = &gsbi1_uart_src.clkr, 24528c2ecf20Sopenharmony_ci [GSBI1_UART_CLK] = &gsbi1_uart_clk.clkr, 24538c2ecf20Sopenharmony_ci [GSBI2_UART_SRC] = &gsbi2_uart_src.clkr, 24548c2ecf20Sopenharmony_ci [GSBI2_UART_CLK] = &gsbi2_uart_clk.clkr, 24558c2ecf20Sopenharmony_ci [GSBI3_UART_SRC] = &gsbi3_uart_src.clkr, 24568c2ecf20Sopenharmony_ci [GSBI3_UART_CLK] = &gsbi3_uart_clk.clkr, 24578c2ecf20Sopenharmony_ci [GSBI4_UART_SRC] = &gsbi4_uart_src.clkr, 24588c2ecf20Sopenharmony_ci [GSBI4_UART_CLK] = &gsbi4_uart_clk.clkr, 24598c2ecf20Sopenharmony_ci [GSBI5_UART_SRC] = &gsbi5_uart_src.clkr, 24608c2ecf20Sopenharmony_ci [GSBI5_UART_CLK] = &gsbi5_uart_clk.clkr, 24618c2ecf20Sopenharmony_ci [GSBI6_UART_SRC] = &gsbi6_uart_src.clkr, 24628c2ecf20Sopenharmony_ci [GSBI6_UART_CLK] = &gsbi6_uart_clk.clkr, 24638c2ecf20Sopenharmony_ci [GSBI7_UART_SRC] = &gsbi7_uart_src.clkr, 24648c2ecf20Sopenharmony_ci [GSBI7_UART_CLK] = &gsbi7_uart_clk.clkr, 24658c2ecf20Sopenharmony_ci [GSBI8_UART_SRC] = &gsbi8_uart_src.clkr, 24668c2ecf20Sopenharmony_ci [GSBI8_UART_CLK] = &gsbi8_uart_clk.clkr, 24678c2ecf20Sopenharmony_ci [GSBI9_UART_SRC] = &gsbi9_uart_src.clkr, 24688c2ecf20Sopenharmony_ci [GSBI9_UART_CLK] = &gsbi9_uart_clk.clkr, 24698c2ecf20Sopenharmony_ci [GSBI10_UART_SRC] = &gsbi10_uart_src.clkr, 24708c2ecf20Sopenharmony_ci [GSBI10_UART_CLK] = &gsbi10_uart_clk.clkr, 24718c2ecf20Sopenharmony_ci [GSBI11_UART_SRC] = &gsbi11_uart_src.clkr, 24728c2ecf20Sopenharmony_ci [GSBI11_UART_CLK] = &gsbi11_uart_clk.clkr, 24738c2ecf20Sopenharmony_ci [GSBI12_UART_SRC] = &gsbi12_uart_src.clkr, 24748c2ecf20Sopenharmony_ci [GSBI12_UART_CLK] = &gsbi12_uart_clk.clkr, 24758c2ecf20Sopenharmony_ci [GSBI1_QUP_SRC] = &gsbi1_qup_src.clkr, 24768c2ecf20Sopenharmony_ci [GSBI1_QUP_CLK] = &gsbi1_qup_clk.clkr, 24778c2ecf20Sopenharmony_ci [GSBI2_QUP_SRC] = &gsbi2_qup_src.clkr, 24788c2ecf20Sopenharmony_ci [GSBI2_QUP_CLK] = &gsbi2_qup_clk.clkr, 24798c2ecf20Sopenharmony_ci [GSBI3_QUP_SRC] = &gsbi3_qup_src.clkr, 24808c2ecf20Sopenharmony_ci [GSBI3_QUP_CLK] = &gsbi3_qup_clk.clkr, 24818c2ecf20Sopenharmony_ci [GSBI4_QUP_SRC] = &gsbi4_qup_src.clkr, 24828c2ecf20Sopenharmony_ci [GSBI4_QUP_CLK] = &gsbi4_qup_clk.clkr, 24838c2ecf20Sopenharmony_ci [GSBI5_QUP_SRC] = &gsbi5_qup_src.clkr, 24848c2ecf20Sopenharmony_ci [GSBI5_QUP_CLK] = &gsbi5_qup_clk.clkr, 24858c2ecf20Sopenharmony_ci [GSBI6_QUP_SRC] = &gsbi6_qup_src.clkr, 24868c2ecf20Sopenharmony_ci [GSBI6_QUP_CLK] = &gsbi6_qup_clk.clkr, 24878c2ecf20Sopenharmony_ci [GSBI7_QUP_SRC] = &gsbi7_qup_src.clkr, 24888c2ecf20Sopenharmony_ci [GSBI7_QUP_CLK] = &gsbi7_qup_clk.clkr, 24898c2ecf20Sopenharmony_ci [GSBI8_QUP_SRC] = &gsbi8_qup_src.clkr, 24908c2ecf20Sopenharmony_ci [GSBI8_QUP_CLK] = &gsbi8_qup_clk.clkr, 24918c2ecf20Sopenharmony_ci [GSBI9_QUP_SRC] = &gsbi9_qup_src.clkr, 24928c2ecf20Sopenharmony_ci [GSBI9_QUP_CLK] = &gsbi9_qup_clk.clkr, 24938c2ecf20Sopenharmony_ci [GSBI10_QUP_SRC] = &gsbi10_qup_src.clkr, 24948c2ecf20Sopenharmony_ci [GSBI10_QUP_CLK] = &gsbi10_qup_clk.clkr, 24958c2ecf20Sopenharmony_ci [GSBI11_QUP_SRC] = &gsbi11_qup_src.clkr, 24968c2ecf20Sopenharmony_ci [GSBI11_QUP_CLK] = &gsbi11_qup_clk.clkr, 24978c2ecf20Sopenharmony_ci [GSBI12_QUP_SRC] = &gsbi12_qup_src.clkr, 24988c2ecf20Sopenharmony_ci [GSBI12_QUP_CLK] = &gsbi12_qup_clk.clkr, 24998c2ecf20Sopenharmony_ci [GP0_SRC] = &gp0_src.clkr, 25008c2ecf20Sopenharmony_ci [GP0_CLK] = &gp0_clk.clkr, 25018c2ecf20Sopenharmony_ci [GP1_SRC] = &gp1_src.clkr, 25028c2ecf20Sopenharmony_ci [GP1_CLK] = &gp1_clk.clkr, 25038c2ecf20Sopenharmony_ci [GP2_SRC] = &gp2_src.clkr, 25048c2ecf20Sopenharmony_ci [GP2_CLK] = &gp2_clk.clkr, 25058c2ecf20Sopenharmony_ci [PMEM_CLK] = &pmem_clk.clkr, 25068c2ecf20Sopenharmony_ci [PRNG_SRC] = &prng_src.clkr, 25078c2ecf20Sopenharmony_ci [PRNG_CLK] = &prng_clk.clkr, 25088c2ecf20Sopenharmony_ci [SDC1_SRC] = &sdc1_src.clkr, 25098c2ecf20Sopenharmony_ci [SDC1_CLK] = &sdc1_clk.clkr, 25108c2ecf20Sopenharmony_ci [SDC2_SRC] = &sdc2_src.clkr, 25118c2ecf20Sopenharmony_ci [SDC2_CLK] = &sdc2_clk.clkr, 25128c2ecf20Sopenharmony_ci [SDC3_SRC] = &sdc3_src.clkr, 25138c2ecf20Sopenharmony_ci [SDC3_CLK] = &sdc3_clk.clkr, 25148c2ecf20Sopenharmony_ci [SDC4_SRC] = &sdc4_src.clkr, 25158c2ecf20Sopenharmony_ci [SDC4_CLK] = &sdc4_clk.clkr, 25168c2ecf20Sopenharmony_ci [SDC5_SRC] = &sdc5_src.clkr, 25178c2ecf20Sopenharmony_ci [SDC5_CLK] = &sdc5_clk.clkr, 25188c2ecf20Sopenharmony_ci [TSIF_REF_SRC] = &tsif_ref_src.clkr, 25198c2ecf20Sopenharmony_ci [TSIF_REF_CLK] = &tsif_ref_clk.clkr, 25208c2ecf20Sopenharmony_ci [USB_HS1_XCVR_SRC] = &usb_hs1_xcvr_src.clkr, 25218c2ecf20Sopenharmony_ci [USB_HS1_XCVR_CLK] = &usb_hs1_xcvr_clk.clkr, 25228c2ecf20Sopenharmony_ci [USB_FS1_XCVR_FS_SRC] = &usb_fs1_xcvr_fs_src.clkr, 25238c2ecf20Sopenharmony_ci [USB_FS1_XCVR_FS_CLK] = &usb_fs1_xcvr_fs_clk.clkr, 25248c2ecf20Sopenharmony_ci [USB_FS1_SYSTEM_CLK] = &usb_fs1_system_clk.clkr, 25258c2ecf20Sopenharmony_ci [USB_FS2_XCVR_FS_SRC] = &usb_fs2_xcvr_fs_src.clkr, 25268c2ecf20Sopenharmony_ci [USB_FS2_XCVR_FS_CLK] = &usb_fs2_xcvr_fs_clk.clkr, 25278c2ecf20Sopenharmony_ci [USB_FS2_SYSTEM_CLK] = &usb_fs2_system_clk.clkr, 25288c2ecf20Sopenharmony_ci [GSBI1_H_CLK] = &gsbi1_h_clk.clkr, 25298c2ecf20Sopenharmony_ci [GSBI2_H_CLK] = &gsbi2_h_clk.clkr, 25308c2ecf20Sopenharmony_ci [GSBI3_H_CLK] = &gsbi3_h_clk.clkr, 25318c2ecf20Sopenharmony_ci [GSBI4_H_CLK] = &gsbi4_h_clk.clkr, 25328c2ecf20Sopenharmony_ci [GSBI5_H_CLK] = &gsbi5_h_clk.clkr, 25338c2ecf20Sopenharmony_ci [GSBI6_H_CLK] = &gsbi6_h_clk.clkr, 25348c2ecf20Sopenharmony_ci [GSBI7_H_CLK] = &gsbi7_h_clk.clkr, 25358c2ecf20Sopenharmony_ci [GSBI8_H_CLK] = &gsbi8_h_clk.clkr, 25368c2ecf20Sopenharmony_ci [GSBI9_H_CLK] = &gsbi9_h_clk.clkr, 25378c2ecf20Sopenharmony_ci [GSBI10_H_CLK] = &gsbi10_h_clk.clkr, 25388c2ecf20Sopenharmony_ci [GSBI11_H_CLK] = &gsbi11_h_clk.clkr, 25398c2ecf20Sopenharmony_ci [GSBI12_H_CLK] = &gsbi12_h_clk.clkr, 25408c2ecf20Sopenharmony_ci [TSIF_H_CLK] = &tsif_h_clk.clkr, 25418c2ecf20Sopenharmony_ci [USB_FS1_H_CLK] = &usb_fs1_h_clk.clkr, 25428c2ecf20Sopenharmony_ci [USB_FS2_H_CLK] = &usb_fs2_h_clk.clkr, 25438c2ecf20Sopenharmony_ci [USB_HS1_H_CLK] = &usb_hs1_h_clk.clkr, 25448c2ecf20Sopenharmony_ci [SDC1_H_CLK] = &sdc1_h_clk.clkr, 25458c2ecf20Sopenharmony_ci [SDC2_H_CLK] = &sdc2_h_clk.clkr, 25468c2ecf20Sopenharmony_ci [SDC3_H_CLK] = &sdc3_h_clk.clkr, 25478c2ecf20Sopenharmony_ci [SDC4_H_CLK] = &sdc4_h_clk.clkr, 25488c2ecf20Sopenharmony_ci [SDC5_H_CLK] = &sdc5_h_clk.clkr, 25498c2ecf20Sopenharmony_ci [EBI2_2X_CLK] = &ebi2_2x_clk.clkr, 25508c2ecf20Sopenharmony_ci [EBI2_CLK] = &ebi2_clk.clkr, 25518c2ecf20Sopenharmony_ci [ADM0_CLK] = &adm0_clk.clkr, 25528c2ecf20Sopenharmony_ci [ADM0_PBUS_CLK] = &adm0_pbus_clk.clkr, 25538c2ecf20Sopenharmony_ci [ADM1_CLK] = &adm1_clk.clkr, 25548c2ecf20Sopenharmony_ci [ADM1_PBUS_CLK] = &adm1_pbus_clk.clkr, 25558c2ecf20Sopenharmony_ci [MODEM_AHB1_H_CLK] = &modem_ahb1_h_clk.clkr, 25568c2ecf20Sopenharmony_ci [MODEM_AHB2_H_CLK] = &modem_ahb2_h_clk.clkr, 25578c2ecf20Sopenharmony_ci [PMIC_ARB0_H_CLK] = &pmic_arb0_h_clk.clkr, 25588c2ecf20Sopenharmony_ci [PMIC_ARB1_H_CLK] = &pmic_arb1_h_clk.clkr, 25598c2ecf20Sopenharmony_ci [PMIC_SSBI2_CLK] = &pmic_ssbi2_clk.clkr, 25608c2ecf20Sopenharmony_ci [RPM_MSG_RAM_H_CLK] = &rpm_msg_ram_h_clk.clkr, 25618c2ecf20Sopenharmony_ci}; 25628c2ecf20Sopenharmony_ci 25638c2ecf20Sopenharmony_cistatic const struct qcom_reset_map gcc_msm8660_resets[] = { 25648c2ecf20Sopenharmony_ci [AFAB_CORE_RESET] = { 0x2080, 7 }, 25658c2ecf20Sopenharmony_ci [SCSS_SYS_RESET] = { 0x20b4, 1 }, 25668c2ecf20Sopenharmony_ci [SCSS_SYS_POR_RESET] = { 0x20b4 }, 25678c2ecf20Sopenharmony_ci [AFAB_SMPSS_S_RESET] = { 0x20b8, 2 }, 25688c2ecf20Sopenharmony_ci [AFAB_SMPSS_M1_RESET] = { 0x20b8, 1 }, 25698c2ecf20Sopenharmony_ci [AFAB_SMPSS_M0_RESET] = { 0x20b8 }, 25708c2ecf20Sopenharmony_ci [AFAB_EBI1_S_RESET] = { 0x20c0, 7 }, 25718c2ecf20Sopenharmony_ci [SFAB_CORE_RESET] = { 0x2120, 7 }, 25728c2ecf20Sopenharmony_ci [SFAB_ADM0_M0_RESET] = { 0x21e0, 7 }, 25738c2ecf20Sopenharmony_ci [SFAB_ADM0_M1_RESET] = { 0x21e4, 7 }, 25748c2ecf20Sopenharmony_ci [SFAB_ADM0_M2_RESET] = { 0x21e4, 7 }, 25758c2ecf20Sopenharmony_ci [ADM0_C2_RESET] = { 0x220c, 4 }, 25768c2ecf20Sopenharmony_ci [ADM0_C1_RESET] = { 0x220c, 3 }, 25778c2ecf20Sopenharmony_ci [ADM0_C0_RESET] = { 0x220c, 2 }, 25788c2ecf20Sopenharmony_ci [ADM0_PBUS_RESET] = { 0x220c, 1 }, 25798c2ecf20Sopenharmony_ci [ADM0_RESET] = { 0x220c }, 25808c2ecf20Sopenharmony_ci [SFAB_ADM1_M0_RESET] = { 0x2220, 7 }, 25818c2ecf20Sopenharmony_ci [SFAB_ADM1_M1_RESET] = { 0x2224, 7 }, 25828c2ecf20Sopenharmony_ci [SFAB_ADM1_M2_RESET] = { 0x2228, 7 }, 25838c2ecf20Sopenharmony_ci [MMFAB_ADM1_M3_RESET] = { 0x2240, 7 }, 25848c2ecf20Sopenharmony_ci [ADM1_C3_RESET] = { 0x226c, 5 }, 25858c2ecf20Sopenharmony_ci [ADM1_C2_RESET] = { 0x226c, 4 }, 25868c2ecf20Sopenharmony_ci [ADM1_C1_RESET] = { 0x226c, 3 }, 25878c2ecf20Sopenharmony_ci [ADM1_C0_RESET] = { 0x226c, 2 }, 25888c2ecf20Sopenharmony_ci [ADM1_PBUS_RESET] = { 0x226c, 1 }, 25898c2ecf20Sopenharmony_ci [ADM1_RESET] = { 0x226c }, 25908c2ecf20Sopenharmony_ci [IMEM0_RESET] = { 0x2280, 7 }, 25918c2ecf20Sopenharmony_ci [SFAB_LPASS_Q6_RESET] = { 0x23a0, 7 }, 25928c2ecf20Sopenharmony_ci [SFAB_AFAB_M_RESET] = { 0x23e0, 7 }, 25938c2ecf20Sopenharmony_ci [AFAB_SFAB_M0_RESET] = { 0x2420, 7 }, 25948c2ecf20Sopenharmony_ci [AFAB_SFAB_M1_RESET] = { 0x2424, 7 }, 25958c2ecf20Sopenharmony_ci [DFAB_CORE_RESET] = { 0x24ac, 7 }, 25968c2ecf20Sopenharmony_ci [SFAB_DFAB_M_RESET] = { 0x2500, 7 }, 25978c2ecf20Sopenharmony_ci [DFAB_SFAB_M_RESET] = { 0x2520, 7 }, 25988c2ecf20Sopenharmony_ci [DFAB_SWAY0_RESET] = { 0x2540, 7 }, 25998c2ecf20Sopenharmony_ci [DFAB_SWAY1_RESET] = { 0x2544, 7 }, 26008c2ecf20Sopenharmony_ci [DFAB_ARB0_RESET] = { 0x2560, 7 }, 26018c2ecf20Sopenharmony_ci [DFAB_ARB1_RESET] = { 0x2564, 7 }, 26028c2ecf20Sopenharmony_ci [PPSS_PROC_RESET] = { 0x2594, 1 }, 26038c2ecf20Sopenharmony_ci [PPSS_RESET] = { 0x2594 }, 26048c2ecf20Sopenharmony_ci [PMEM_RESET] = { 0x25a0, 7 }, 26058c2ecf20Sopenharmony_ci [DMA_BAM_RESET] = { 0x25c0, 7 }, 26068c2ecf20Sopenharmony_ci [SIC_RESET] = { 0x25e0, 7 }, 26078c2ecf20Sopenharmony_ci [SPS_TIC_RESET] = { 0x2600, 7 }, 26088c2ecf20Sopenharmony_ci [CFBP0_RESET] = { 0x2650, 7 }, 26098c2ecf20Sopenharmony_ci [CFBP1_RESET] = { 0x2654, 7 }, 26108c2ecf20Sopenharmony_ci [CFBP2_RESET] = { 0x2658, 7 }, 26118c2ecf20Sopenharmony_ci [EBI2_RESET] = { 0x2664, 7 }, 26128c2ecf20Sopenharmony_ci [SFAB_CFPB_M_RESET] = { 0x2680, 7 }, 26138c2ecf20Sopenharmony_ci [CFPB_MASTER_RESET] = { 0x26a0, 7 }, 26148c2ecf20Sopenharmony_ci [SFAB_CFPB_S_RESET] = { 0x26c0, 7 }, 26158c2ecf20Sopenharmony_ci [CFPB_SPLITTER_RESET] = { 0x26e0, 7 }, 26168c2ecf20Sopenharmony_ci [TSIF_RESET] = { 0x2700, 7 }, 26178c2ecf20Sopenharmony_ci [CE1_RESET] = { 0x2720, 7 }, 26188c2ecf20Sopenharmony_ci [CE2_RESET] = { 0x2740, 7 }, 26198c2ecf20Sopenharmony_ci [SFAB_SFPB_M_RESET] = { 0x2780, 7 }, 26208c2ecf20Sopenharmony_ci [SFAB_SFPB_S_RESET] = { 0x27a0, 7 }, 26218c2ecf20Sopenharmony_ci [RPM_PROC_RESET] = { 0x27c0, 7 }, 26228c2ecf20Sopenharmony_ci [RPM_BUS_RESET] = { 0x27c4, 7 }, 26238c2ecf20Sopenharmony_ci [RPM_MSG_RAM_RESET] = { 0x27e0, 7 }, 26248c2ecf20Sopenharmony_ci [PMIC_ARB0_RESET] = { 0x2800, 7 }, 26258c2ecf20Sopenharmony_ci [PMIC_ARB1_RESET] = { 0x2804, 7 }, 26268c2ecf20Sopenharmony_ci [PMIC_SSBI2_RESET] = { 0x280c, 12 }, 26278c2ecf20Sopenharmony_ci [SDC1_RESET] = { 0x2830 }, 26288c2ecf20Sopenharmony_ci [SDC2_RESET] = { 0x2850 }, 26298c2ecf20Sopenharmony_ci [SDC3_RESET] = { 0x2870 }, 26308c2ecf20Sopenharmony_ci [SDC4_RESET] = { 0x2890 }, 26318c2ecf20Sopenharmony_ci [SDC5_RESET] = { 0x28b0 }, 26328c2ecf20Sopenharmony_ci [USB_HS1_RESET] = { 0x2910 }, 26338c2ecf20Sopenharmony_ci [USB_HS2_XCVR_RESET] = { 0x2934, 1 }, 26348c2ecf20Sopenharmony_ci [USB_HS2_RESET] = { 0x2934 }, 26358c2ecf20Sopenharmony_ci [USB_FS1_XCVR_RESET] = { 0x2974, 1 }, 26368c2ecf20Sopenharmony_ci [USB_FS1_RESET] = { 0x2974 }, 26378c2ecf20Sopenharmony_ci [USB_FS2_XCVR_RESET] = { 0x2994, 1 }, 26388c2ecf20Sopenharmony_ci [USB_FS2_RESET] = { 0x2994 }, 26398c2ecf20Sopenharmony_ci [GSBI1_RESET] = { 0x29dc }, 26408c2ecf20Sopenharmony_ci [GSBI2_RESET] = { 0x29fc }, 26418c2ecf20Sopenharmony_ci [GSBI3_RESET] = { 0x2a1c }, 26428c2ecf20Sopenharmony_ci [GSBI4_RESET] = { 0x2a3c }, 26438c2ecf20Sopenharmony_ci [GSBI5_RESET] = { 0x2a5c }, 26448c2ecf20Sopenharmony_ci [GSBI6_RESET] = { 0x2a7c }, 26458c2ecf20Sopenharmony_ci [GSBI7_RESET] = { 0x2a9c }, 26468c2ecf20Sopenharmony_ci [GSBI8_RESET] = { 0x2abc }, 26478c2ecf20Sopenharmony_ci [GSBI9_RESET] = { 0x2adc }, 26488c2ecf20Sopenharmony_ci [GSBI10_RESET] = { 0x2afc }, 26498c2ecf20Sopenharmony_ci [GSBI11_RESET] = { 0x2b1c }, 26508c2ecf20Sopenharmony_ci [GSBI12_RESET] = { 0x2b3c }, 26518c2ecf20Sopenharmony_ci [SPDM_RESET] = { 0x2b6c }, 26528c2ecf20Sopenharmony_ci [SEC_CTRL_RESET] = { 0x2b80, 7 }, 26538c2ecf20Sopenharmony_ci [TLMM_H_RESET] = { 0x2ba0, 7 }, 26548c2ecf20Sopenharmony_ci [TLMM_RESET] = { 0x2ba4, 7 }, 26558c2ecf20Sopenharmony_ci [MARRM_PWRON_RESET] = { 0x2bd4, 1 }, 26568c2ecf20Sopenharmony_ci [MARM_RESET] = { 0x2bd4 }, 26578c2ecf20Sopenharmony_ci [MAHB1_RESET] = { 0x2be4, 7 }, 26588c2ecf20Sopenharmony_ci [SFAB_MSS_S_RESET] = { 0x2c00, 7 }, 26598c2ecf20Sopenharmony_ci [MAHB2_RESET] = { 0x2c20, 7 }, 26608c2ecf20Sopenharmony_ci [MODEM_SW_AHB_RESET] = { 0x2c48, 1 }, 26618c2ecf20Sopenharmony_ci [MODEM_RESET] = { 0x2c48 }, 26628c2ecf20Sopenharmony_ci [SFAB_MSS_MDM1_RESET] = { 0x2c4c, 1 }, 26638c2ecf20Sopenharmony_ci [SFAB_MSS_MDM0_RESET] = { 0x2c4c }, 26648c2ecf20Sopenharmony_ci [MSS_SLP_RESET] = { 0x2c60, 7 }, 26658c2ecf20Sopenharmony_ci [MSS_MARM_SAW_RESET] = { 0x2c68, 1 }, 26668c2ecf20Sopenharmony_ci [MSS_WDOG_RESET] = { 0x2c68 }, 26678c2ecf20Sopenharmony_ci [TSSC_RESET] = { 0x2ca0, 7 }, 26688c2ecf20Sopenharmony_ci [PDM_RESET] = { 0x2cc0, 12 }, 26698c2ecf20Sopenharmony_ci [SCSS_CORE0_RESET] = { 0x2d60, 1 }, 26708c2ecf20Sopenharmony_ci [SCSS_CORE0_POR_RESET] = { 0x2d60 }, 26718c2ecf20Sopenharmony_ci [SCSS_CORE1_RESET] = { 0x2d80, 1 }, 26728c2ecf20Sopenharmony_ci [SCSS_CORE1_POR_RESET] = { 0x2d80 }, 26738c2ecf20Sopenharmony_ci [MPM_RESET] = { 0x2da4, 1 }, 26748c2ecf20Sopenharmony_ci [EBI1_1X_DIV_RESET] = { 0x2dec, 9 }, 26758c2ecf20Sopenharmony_ci [EBI1_RESET] = { 0x2dec, 7 }, 26768c2ecf20Sopenharmony_ci [SFAB_SMPSS_S_RESET] = { 0x2e00, 7 }, 26778c2ecf20Sopenharmony_ci [USB_PHY0_RESET] = { 0x2e20 }, 26788c2ecf20Sopenharmony_ci [USB_PHY1_RESET] = { 0x2e40 }, 26798c2ecf20Sopenharmony_ci [PRNG_RESET] = { 0x2e80, 12 }, 26808c2ecf20Sopenharmony_ci}; 26818c2ecf20Sopenharmony_ci 26828c2ecf20Sopenharmony_cistatic const struct regmap_config gcc_msm8660_regmap_config = { 26838c2ecf20Sopenharmony_ci .reg_bits = 32, 26848c2ecf20Sopenharmony_ci .reg_stride = 4, 26858c2ecf20Sopenharmony_ci .val_bits = 32, 26868c2ecf20Sopenharmony_ci .max_register = 0x363c, 26878c2ecf20Sopenharmony_ci .fast_io = true, 26888c2ecf20Sopenharmony_ci}; 26898c2ecf20Sopenharmony_ci 26908c2ecf20Sopenharmony_cistatic const struct qcom_cc_desc gcc_msm8660_desc = { 26918c2ecf20Sopenharmony_ci .config = &gcc_msm8660_regmap_config, 26928c2ecf20Sopenharmony_ci .clks = gcc_msm8660_clks, 26938c2ecf20Sopenharmony_ci .num_clks = ARRAY_SIZE(gcc_msm8660_clks), 26948c2ecf20Sopenharmony_ci .resets = gcc_msm8660_resets, 26958c2ecf20Sopenharmony_ci .num_resets = ARRAY_SIZE(gcc_msm8660_resets), 26968c2ecf20Sopenharmony_ci}; 26978c2ecf20Sopenharmony_ci 26988c2ecf20Sopenharmony_cistatic const struct of_device_id gcc_msm8660_match_table[] = { 26998c2ecf20Sopenharmony_ci { .compatible = "qcom,gcc-msm8660" }, 27008c2ecf20Sopenharmony_ci { } 27018c2ecf20Sopenharmony_ci}; 27028c2ecf20Sopenharmony_ciMODULE_DEVICE_TABLE(of, gcc_msm8660_match_table); 27038c2ecf20Sopenharmony_ci 27048c2ecf20Sopenharmony_cistatic int gcc_msm8660_probe(struct platform_device *pdev) 27058c2ecf20Sopenharmony_ci{ 27068c2ecf20Sopenharmony_ci int ret; 27078c2ecf20Sopenharmony_ci struct device *dev = &pdev->dev; 27088c2ecf20Sopenharmony_ci 27098c2ecf20Sopenharmony_ci ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 19200000); 27108c2ecf20Sopenharmony_ci if (ret) 27118c2ecf20Sopenharmony_ci return ret; 27128c2ecf20Sopenharmony_ci 27138c2ecf20Sopenharmony_ci ret = qcom_cc_register_board_clk(dev, "pxo_board", "pxo", 27000000); 27148c2ecf20Sopenharmony_ci if (ret) 27158c2ecf20Sopenharmony_ci return ret; 27168c2ecf20Sopenharmony_ci 27178c2ecf20Sopenharmony_ci return qcom_cc_probe(pdev, &gcc_msm8660_desc); 27188c2ecf20Sopenharmony_ci} 27198c2ecf20Sopenharmony_ci 27208c2ecf20Sopenharmony_cistatic struct platform_driver gcc_msm8660_driver = { 27218c2ecf20Sopenharmony_ci .probe = gcc_msm8660_probe, 27228c2ecf20Sopenharmony_ci .driver = { 27238c2ecf20Sopenharmony_ci .name = "gcc-msm8660", 27248c2ecf20Sopenharmony_ci .of_match_table = gcc_msm8660_match_table, 27258c2ecf20Sopenharmony_ci }, 27268c2ecf20Sopenharmony_ci}; 27278c2ecf20Sopenharmony_ci 27288c2ecf20Sopenharmony_cistatic int __init gcc_msm8660_init(void) 27298c2ecf20Sopenharmony_ci{ 27308c2ecf20Sopenharmony_ci return platform_driver_register(&gcc_msm8660_driver); 27318c2ecf20Sopenharmony_ci} 27328c2ecf20Sopenharmony_cicore_initcall(gcc_msm8660_init); 27338c2ecf20Sopenharmony_ci 27348c2ecf20Sopenharmony_cistatic void __exit gcc_msm8660_exit(void) 27358c2ecf20Sopenharmony_ci{ 27368c2ecf20Sopenharmony_ci platform_driver_unregister(&gcc_msm8660_driver); 27378c2ecf20Sopenharmony_ci} 27388c2ecf20Sopenharmony_cimodule_exit(gcc_msm8660_exit); 27398c2ecf20Sopenharmony_ci 27408c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("GCC MSM 8660 Driver"); 27418c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL v2"); 27428c2ecf20Sopenharmony_ciMODULE_ALIAS("platform:gcc-msm8660"); 2743