Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branches 'clk-match-string', 'clk-ingenic', 'clk-si544-round-fix' and 'clk-bcm-stingray' into clk-next

* clk-match-string:
clk: use match_string() helper
clk: bcm2835: use match_string() helper

* clk-ingenic:
clk: ingenic: jz4770: Add 150us delay after enabling VPU clock
clk: ingenic: jz4770: Enable power of AHB1 bus after ungating VPU clock
clk: ingenic: jz4770: Modify C1CLK clock to disable CPU clock stop on idle
clk: ingenic: jz4770: Change OTG from custom to standard gated clock
clk: ingenic: Support specifying "wait for clock stable" delay
clk: ingenic: Add support for clocks whose gate bit is inverted

* clk-si544-round-fix:
clk-si544: Properly round requested frequency to nearest match

* clk-bcm-stingray:
clk: bcm: Update and add Stingray clock entries
dt-bindings: clk: Update Stingray binding doc

+179 -89
+14 -12
Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
··· 276 276 clk_ts_500_ref genpll2 2 BCM_SR_GENPLL2_TS_500_REF_CLK 277 277 clk_125_nitro genpll2 3 BCM_SR_GENPLL2_125_NITRO_CLK 278 278 clk_chimp genpll2 4 BCM_SR_GENPLL2_CHIMP_CLK 279 - clk_nic_flash genpll2 5 BCM_SR_GENPLL2_NIC_FLASH 279 + clk_nic_flash genpll2 5 BCM_SR_GENPLL2_NIC_FLASH_CLK 280 + clk_fs genpll2 6 BCM_SR_GENPLL2_FS_CLK 280 281 281 282 genpll3 crystal 0 BCM_SR_GENPLL3 282 283 clk_hsls genpll3 1 BCM_SR_GENPLL3_HSLS_CLK 283 284 clk_sdio genpll3 2 BCM_SR_GENPLL3_SDIO_CLK 284 285 285 286 genpll4 crystal 0 BCM_SR_GENPLL4 286 - ccn genpll4 1 BCM_SR_GENPLL4_CCN_CLK 287 + clk_ccn genpll4 1 BCM_SR_GENPLL4_CCN_CLK 287 288 clk_tpiu_pll genpll4 2 BCM_SR_GENPLL4_TPIU_PLL_CLK 288 - noc_clk genpll4 3 BCM_SR_GENPLL4_NOC_CLK 289 + clk_noc genpll4 3 BCM_SR_GENPLL4_NOC_CLK 289 290 clk_chclk_fs4 genpll4 4 BCM_SR_GENPLL4_CHCLK_FS4_CLK 290 291 clk_bridge_fscpu genpll4 5 BCM_SR_GENPLL4_BRIDGE_FSCPU_CLK 291 292 292 - 293 293 genpll5 crystal 0 BCM_SR_GENPLL5 294 - fs4_hf_clk genpll5 1 BCM_SR_GENPLL5_FS4_HF_CLK 295 - crypto_ae_clk genpll5 2 BCM_SR_GENPLL5_CRYPTO_AE_CLK 296 - raid_ae_clk genpll5 3 BCM_SR_GENPLL5_RAID_AE_CLK 294 + clk_fs4_hf genpll5 1 BCM_SR_GENPLL5_FS4_HF_CLK 295 + clk_crypto_ae genpll5 2 BCM_SR_GENPLL5_CRYPTO_AE_CLK 296 + clk_raid_ae genpll5 3 BCM_SR_GENPLL5_RAID_AE_CLK 297 297 298 298 genpll6 crystal 0 BCM_SR_GENPLL6 299 - 48_usb genpll6 1 BCM_SR_GENPLL6_48_USB_CLK 299 + clk_48_usb genpll6 1 BCM_SR_GENPLL6_48_USB_CLK 300 300 301 301 lcpll0 crystal 0 BCM_SR_LCPLL0 302 302 clk_sata_refp lcpll0 1 BCM_SR_LCPLL0_SATA_REFP_CLK 303 303 clk_sata_refn lcpll0 2 BCM_SR_LCPLL0_SATA_REFN_CLK 304 - clk_usb_ref lcpll0 3 BCM_SR_LCPLL0_USB_REF_CLK 305 - sata_refpn lcpll0 3 BCM_SR_LCPLL0_SATA_REFPN_CLK 304 + clk_sata_350 lcpll0 3 BCM_SR_LCPLL0_SATA_350_CLK 305 + clk_sata_500 lcpll0 4 BCM_SR_LCPLL0_SATA_500_CLK 306 306 307 307 lcpll1 crystal 0 BCM_SR_LCPLL1 308 - wan lcpll1 1 BCM_SR_LCPLL0_WAN_CLK 308 + clk_wan lcpll1 1 BCM_SR_LCPLL1_WAN_CLK 309 + clk_usb_ref lcpll1 2 BCM_SR_LCPLL1_USB_REF_CLK 310 + clk_crmu_ts lcpll1 3 BCM_SR_LCPLL1_CRMU_TS_CLK 309 311 310 312 lcpll_pcie crystal 0 BCM_SR_LCPLL_PCIE 311 - pcie_phy_ref lcpll1 1 BCM_SR_LCPLL_PCIE_PHY_REF_CLK 313 + clk_pcie_phy_ref lcpll1 1 BCM_SR_LCPLL_PCIE_PHY_REF_CLK
+6 -7
drivers/clk/bcm/clk-bcm2835.c
··· 1390 1390 struct bcm2835_clock *clock; 1391 1391 struct clk_init_data init; 1392 1392 const char *parents[1 << CM_SRC_BITS]; 1393 - size_t i, j; 1393 + size_t i; 1394 1394 int ret; 1395 1395 1396 1396 /* ··· 1400 1400 for (i = 0; i < data->num_mux_parents; i++) { 1401 1401 parents[i] = data->parents[i]; 1402 1402 1403 - for (j = 0; j < ARRAY_SIZE(cprman_parent_names); j++) { 1404 - if (strcmp(parents[i], cprman_parent_names[j]) == 0) { 1405 - parents[i] = cprman->real_parent_names[j]; 1406 - break; 1407 - } 1408 - } 1403 + ret = match_string(cprman_parent_names, 1404 + ARRAY_SIZE(cprman_parent_names), 1405 + parents[i]); 1406 + if (ret >= 0) 1407 + parents[i] = cprman->real_parent_names[ret]; 1409 1408 } 1410 1409 1411 1410 memset(&init, 0, sizeof(init));
+120 -15
drivers/clk/bcm/clk-sr.c
··· 56 56 }; 57 57 58 58 static const struct iproc_clk_ctrl sr_genpll0_clk[] = { 59 - [BCM_SR_GENPLL0_SATA_CLK] = { 60 - .channel = BCM_SR_GENPLL0_SATA_CLK, 59 + [BCM_SR_GENPLL0_125M_CLK] = { 60 + .channel = BCM_SR_GENPLL0_125M_CLK, 61 61 .flags = IPROC_CLK_AON, 62 62 .enable = ENABLE_VAL(0x4, 6, 0, 12), 63 63 .mdiv = REG_VAL(0x18, 0, 9), ··· 99 99 iproc_pll_clk_setup(pdev->dev.of_node, 100 100 &sr_genpll0, NULL, 0, sr_genpll0_clk, 101 101 ARRAY_SIZE(sr_genpll0_clk)); 102 + return 0; 103 + } 104 + 105 + static const struct iproc_pll_ctrl sr_genpll2 = { 106 + .flags = IPROC_CLK_AON | IPROC_CLK_PLL_HAS_NDIV_FRAC | 107 + IPROC_CLK_PLL_NEEDS_SW_CFG, 108 + .aon = AON_VAL(0x0, 1, 13, 12), 109 + .reset = RESET_VAL(0x0, 12, 11), 110 + .dig_filter = DF_VAL(0x0, 4, 3, 0, 4, 7, 3), 111 + .sw_ctrl = SW_CTRL_VAL(0x10, 31), 112 + .ndiv_int = REG_VAL(0x10, 20, 10), 113 + .ndiv_frac = REG_VAL(0x10, 0, 20), 114 + .pdiv = REG_VAL(0x14, 0, 4), 115 + .status = REG_VAL(0x30, 12, 1), 116 + }; 117 + 118 + static const struct iproc_clk_ctrl sr_genpll2_clk[] = { 119 + [BCM_SR_GENPLL2_NIC_CLK] = { 120 + .channel = BCM_SR_GENPLL2_NIC_CLK, 121 + .flags = IPROC_CLK_AON, 122 + .enable = ENABLE_VAL(0x4, 6, 0, 12), 123 + .mdiv = REG_VAL(0x18, 0, 9), 124 + }, 125 + [BCM_SR_GENPLL2_TS_500_CLK] = { 126 + .channel = BCM_SR_GENPLL2_TS_500_CLK, 127 + .flags = IPROC_CLK_AON, 128 + .enable = ENABLE_VAL(0x4, 7, 1, 13), 129 + .mdiv = REG_VAL(0x18, 10, 9), 130 + }, 131 + [BCM_SR_GENPLL2_125_NITRO_CLK] = { 132 + .channel = BCM_SR_GENPLL2_125_NITRO_CLK, 133 + .flags = IPROC_CLK_AON, 134 + .enable = ENABLE_VAL(0x4, 8, 2, 14), 135 + .mdiv = REG_VAL(0x18, 20, 9), 136 + }, 137 + [BCM_SR_GENPLL2_CHIMP_CLK] = { 138 + .channel = BCM_SR_GENPLL2_CHIMP_CLK, 139 + .flags = IPROC_CLK_AON, 140 + .enable = ENABLE_VAL(0x4, 9, 3, 15), 141 + .mdiv = REG_VAL(0x1c, 0, 9), 142 + }, 143 + [BCM_SR_GENPLL2_NIC_FLASH_CLK] = { 144 + .channel = BCM_SR_GENPLL2_NIC_FLASH_CLK, 145 + .flags = IPROC_CLK_AON, 146 + .enable = ENABLE_VAL(0x4, 10, 4, 16), 147 + .mdiv = REG_VAL(0x1c, 10, 9), 148 + }, 149 + [BCM_SR_GENPLL2_FS4_CLK] = { 150 + .channel = BCM_SR_GENPLL2_FS4_CLK, 151 + .enable = ENABLE_VAL(0x4, 11, 5, 17), 152 + .mdiv = REG_VAL(0x1c, 20, 9), 153 + }, 154 + }; 155 + 156 + static int sr_genpll2_clk_init(struct platform_device *pdev) 157 + { 158 + iproc_pll_clk_setup(pdev->dev.of_node, 159 + &sr_genpll2, NULL, 0, sr_genpll2_clk, 160 + ARRAY_SIZE(sr_genpll2_clk)); 102 161 return 0; 103 162 } 104 163 ··· 216 157 .enable = ENABLE_VAL(0x4, 6, 0, 12), 217 158 .mdiv = REG_VAL(0x18, 0, 9), 218 159 }, 160 + [BCM_SR_GENPLL4_TPIU_PLL_CLK] = { 161 + .channel = BCM_SR_GENPLL4_TPIU_PLL_CLK, 162 + .flags = IPROC_CLK_AON, 163 + .enable = ENABLE_VAL(0x4, 7, 1, 13), 164 + .mdiv = REG_VAL(0x18, 10, 9), 165 + }, 166 + [BCM_SR_GENPLL4_NOC_CLK] = { 167 + .channel = BCM_SR_GENPLL4_NOC_CLK, 168 + .flags = IPROC_CLK_AON, 169 + .enable = ENABLE_VAL(0x4, 8, 2, 14), 170 + .mdiv = REG_VAL(0x18, 20, 9), 171 + }, 172 + [BCM_SR_GENPLL4_CHCLK_FS4_CLK] = { 173 + .channel = BCM_SR_GENPLL4_CHCLK_FS4_CLK, 174 + .flags = IPROC_CLK_AON, 175 + .enable = ENABLE_VAL(0x4, 9, 3, 15), 176 + .mdiv = REG_VAL(0x1c, 0, 9), 177 + }, 178 + [BCM_SR_GENPLL4_BRIDGE_FSCPU_CLK] = { 179 + .channel = BCM_SR_GENPLL4_BRIDGE_FSCPU_CLK, 180 + .flags = IPROC_CLK_AON, 181 + .enable = ENABLE_VAL(0x4, 10, 4, 16), 182 + .mdiv = REG_VAL(0x1c, 10, 9), 183 + }, 219 184 }; 220 185 221 186 static int sr_genpll4_clk_init(struct platform_device *pdev) ··· 264 181 }; 265 182 266 183 static const struct iproc_clk_ctrl sr_genpll5_clk[] = { 267 - [BCM_SR_GENPLL5_FS_CLK] = { 268 - .channel = BCM_SR_GENPLL5_FS_CLK, 269 - .flags = IPROC_CLK_AON, 184 + [BCM_SR_GENPLL5_FS4_HF_CLK] = { 185 + .channel = BCM_SR_GENPLL5_FS4_HF_CLK, 270 186 .enable = ENABLE_VAL(0x4, 6, 0, 12), 271 187 .mdiv = REG_VAL(0x18, 0, 9), 272 188 }, 273 - [BCM_SR_GENPLL5_SPU_CLK] = { 274 - .channel = BCM_SR_GENPLL5_SPU_CLK, 275 - .flags = IPROC_CLK_AON, 276 - .enable = ENABLE_VAL(0x4, 6, 0, 12), 189 + [BCM_SR_GENPLL5_CRYPTO_AE_CLK] = { 190 + .channel = BCM_SR_GENPLL5_CRYPTO_AE_CLK, 191 + .enable = ENABLE_VAL(0x4, 7, 1, 12), 277 192 .mdiv = REG_VAL(0x18, 10, 9), 193 + }, 194 + [BCM_SR_GENPLL5_RAID_AE_CLK] = { 195 + .channel = BCM_SR_GENPLL5_RAID_AE_CLK, 196 + .enable = ENABLE_VAL(0x4, 8, 2, 14), 197 + .mdiv = REG_VAL(0x18, 20, 9), 278 198 }, 279 199 }; 280 200 ··· 300 214 }; 301 215 302 216 static const struct iproc_clk_ctrl sr_lcpll0_clk[] = { 303 - [BCM_SR_LCPLL0_SATA_REF_CLK] = { 304 - .channel = BCM_SR_LCPLL0_SATA_REF_CLK, 217 + [BCM_SR_LCPLL0_SATA_REFP_CLK] = { 218 + .channel = BCM_SR_LCPLL0_SATA_REFP_CLK, 305 219 .flags = IPROC_CLK_AON, 306 220 .enable = ENABLE_VAL(0x0, 7, 1, 13), 307 221 .mdiv = REG_VAL(0x14, 0, 9), 308 222 }, 309 - [BCM_SR_LCPLL0_USB_REF_CLK] = { 310 - .channel = BCM_SR_LCPLL0_USB_REF_CLK, 223 + [BCM_SR_LCPLL0_SATA_REFN_CLK] = { 224 + .channel = BCM_SR_LCPLL0_SATA_REFN_CLK, 311 225 .flags = IPROC_CLK_AON, 312 226 .enable = ENABLE_VAL(0x0, 8, 2, 14), 313 227 .mdiv = REG_VAL(0x14, 10, 9), 314 228 }, 315 - [BCM_SR_LCPLL0_SATA_REFPN_CLK] = { 316 - .channel = BCM_SR_LCPLL0_SATA_REFPN_CLK, 229 + [BCM_SR_LCPLL0_SATA_350_CLK] = { 230 + .channel = BCM_SR_LCPLL0_SATA_350_CLK, 317 231 .flags = IPROC_CLK_AON, 318 232 .enable = ENABLE_VAL(0x0, 9, 3, 15), 319 233 .mdiv = REG_VAL(0x14, 20, 9), 234 + }, 235 + [BCM_SR_LCPLL0_SATA_500_CLK] = { 236 + .channel = BCM_SR_LCPLL0_SATA_500_CLK, 237 + .flags = IPROC_CLK_AON, 238 + .enable = ENABLE_VAL(0x0, 10, 4, 16), 239 + .mdiv = REG_VAL(0x18, 0, 9), 320 240 }, 321 241 }; 322 242 ··· 350 258 .flags = IPROC_CLK_AON, 351 259 .enable = ENABLE_VAL(0x0, 7, 1, 13), 352 260 .mdiv = REG_VAL(0x14, 0, 9), 261 + }, 262 + [BCM_SR_LCPLL1_USB_REF_CLK] = { 263 + .channel = BCM_SR_LCPLL1_USB_REF_CLK, 264 + .flags = IPROC_CLK_AON, 265 + .enable = ENABLE_VAL(0x0, 8, 2, 14), 266 + .mdiv = REG_VAL(0x14, 10, 9), 267 + }, 268 + [BCM_SR_LCPLL1_CRMU_TS_CLK] = { 269 + .channel = BCM_SR_LCPLL1_CRMU_TS_CLK, 270 + .flags = IPROC_CLK_AON, 271 + .enable = ENABLE_VAL(0x0, 9, 3, 15), 272 + .mdiv = REG_VAL(0x14, 20, 9), 353 273 }, 354 274 }; 355 275 ··· 402 298 403 299 static const struct of_device_id sr_clk_dt_ids[] = { 404 300 { .compatible = "brcm,sr-genpll0", .data = sr_genpll0_clk_init }, 301 + { .compatible = "brcm,sr-genpll2", .data = sr_genpll2_clk_init }, 405 302 { .compatible = "brcm,sr-genpll4", .data = sr_genpll4_clk_init }, 406 303 { .compatible = "brcm,sr-genpll5", .data = sr_genpll5_clk_init }, 407 304 { .compatible = "brcm,sr-lcpll0", .data = sr_lcpll0_clk_init },
+1
drivers/clk/clk-si544.c
··· 207 207 208 208 /* And the fractional bits using the remainder */ 209 209 vco = (u64)tmp << 32; 210 + vco += FXO / 2; /* Round to nearest multiple */ 210 211 do_div(vco, FXO); 211 212 settings->fb_div_frac = vco; 212 213
+2 -6
drivers/clk/clk.c
··· 2175 2175 bool clk_has_parent(struct clk *clk, struct clk *parent) 2176 2176 { 2177 2177 struct clk_core *core, *parent_core; 2178 - unsigned int i; 2179 2178 2180 2179 /* NULL clocks should be nops, so return success if either is NULL. */ 2181 2180 if (!clk || !parent) ··· 2187 2188 if (core->parent == parent_core) 2188 2189 return true; 2189 2190 2190 - for (i = 0; i < core->num_parents; i++) 2191 - if (strcmp(core->parent_names[i], parent_core->name) == 0) 2192 - return true; 2193 - 2194 - return false; 2191 + return match_string(core->parent_names, core->num_parents, 2192 + parent_core->name) >= 0; 2195 2193 } 2196 2194 EXPORT_SYMBOL_GPL(clk_has_parent); 2197 2195
+6 -2
drivers/clk/ingenic/cgu.c
··· 43 43 ingenic_cgu_gate_get(struct ingenic_cgu *cgu, 44 44 const struct ingenic_cgu_gate_info *info) 45 45 { 46 - return readl(cgu->base + info->reg) & BIT(info->bit); 46 + return !!(readl(cgu->base + info->reg) & BIT(info->bit)) 47 + ^ info->clear_to_gate; 47 48 } 48 49 49 50 /** ··· 63 62 { 64 63 u32 clkgr = readl(cgu->base + info->reg); 65 64 66 - if (val) 65 + if (val ^ info->clear_to_gate) 67 66 clkgr |= BIT(info->bit); 68 67 else 69 68 clkgr &= ~BIT(info->bit); ··· 512 511 spin_lock_irqsave(&cgu->lock, flags); 513 512 ingenic_cgu_gate_set(cgu, &clk_info->gate, false); 514 513 spin_unlock_irqrestore(&cgu->lock, flags); 514 + 515 + if (clk_info->gate.delay_us) 516 + udelay(clk_info->gate.delay_us); 515 517 } 516 518 517 519 return 0;
+4
drivers/clk/ingenic/cgu.h
··· 111 111 * struct ingenic_cgu_gate_info - information about a clock gate 112 112 * @reg: offset of the gate control register within the CGU 113 113 * @bit: offset of the bit in the register that controls the gate 114 + * @clear_to_gate: if set, the clock is gated when the bit is cleared 115 + * @delay_us: delay in microseconds after which the clock is considered stable 114 116 */ 115 117 struct ingenic_cgu_gate_info { 116 118 unsigned reg; 117 119 u8 bit; 120 + bool clear_to_gate; 121 + u16 delay_us; 118 122 }; 119 123 120 124 /**
+9 -40
drivers/clk/ingenic/jz4770-cgu.c
··· 42 42 43 43 /* bits within the OPCR register */ 44 44 #define OPCR_SPENDH BIT(5) /* UHC PHY suspend */ 45 - #define OPCR_SPENDN BIT(7) /* OTG PHY suspend */ 46 45 47 46 /* bits within the USBPCR1 register */ 48 47 #define USBPCR1_UHC_POWER BIT(5) /* UHC PHY power down */ ··· 80 81 .enable = jz4770_uhc_phy_enable, 81 82 .disable = jz4770_uhc_phy_disable, 82 83 .is_enabled = jz4770_uhc_phy_is_enabled, 83 - }; 84 - 85 - static int jz4770_otg_phy_enable(struct clk_hw *hw) 86 - { 87 - void __iomem *reg_opcr = cgu->base + CGU_REG_OPCR; 88 - 89 - writel(readl(reg_opcr) | OPCR_SPENDN, reg_opcr); 90 - 91 - /* Wait for the clock to be stable */ 92 - udelay(50); 93 - return 0; 94 - } 95 - 96 - static void jz4770_otg_phy_disable(struct clk_hw *hw) 97 - { 98 - void __iomem *reg_opcr = cgu->base + CGU_REG_OPCR; 99 - 100 - writel(readl(reg_opcr) & ~OPCR_SPENDN, reg_opcr); 101 - } 102 - 103 - static int jz4770_otg_phy_is_enabled(struct clk_hw *hw) 104 - { 105 - void __iomem *reg_opcr = cgu->base + CGU_REG_OPCR; 106 - 107 - return !!(readl(reg_opcr) & OPCR_SPENDN); 108 - } 109 - 110 - static const struct clk_ops jz4770_otg_phy_ops = { 111 - .enable = jz4770_otg_phy_enable, 112 - .disable = jz4770_otg_phy_disable, 113 - .is_enabled = jz4770_otg_phy_is_enabled, 114 84 }; 115 85 116 86 static const s8 pll_od_encoding[8] = { ··· 154 186 "h1clk", CGU_CLK_DIV | CGU_CLK_GATE, 155 187 .parents = { JZ4770_CLK_PLL0, }, 156 188 .div = { CGU_REG_CPCCR, 24, 1, 4, 22, -1, -1 }, 157 - .gate = { CGU_REG_LCR, 30 }, 189 + .gate = { CGU_REG_CLKGR1, 7 }, 158 190 }, 159 191 [JZ4770_CLK_H2CLK] = { 160 192 "h2clk", CGU_CLK_DIV, ··· 162 194 .div = { CGU_REG_CPCCR, 16, 1, 4, 22, -1, -1 }, 163 195 }, 164 196 [JZ4770_CLK_C1CLK] = { 165 - "c1clk", CGU_CLK_DIV, 197 + "c1clk", CGU_CLK_DIV | CGU_CLK_GATE, 166 198 .parents = { JZ4770_CLK_PLL0, }, 167 199 .div = { CGU_REG_CPCCR, 12, 1, 4, 22, -1, -1 }, 200 + .gate = { CGU_REG_OPCR, 31, true }, // disable CCLK stop on idle 168 201 }, 169 202 [JZ4770_CLK_PCLK] = { 170 203 "pclk", CGU_CLK_DIV, ··· 362 393 [JZ4770_CLK_VPU] = { 363 394 "vpu", CGU_CLK_GATE, 364 395 .parents = { JZ4770_CLK_H1CLK, }, 365 - .gate = { CGU_REG_CLKGR1, 7 }, 396 + .gate = { CGU_REG_LCR, 30, false, 150 }, 366 397 }, 367 398 [JZ4770_CLK_MMC0] = { 368 399 "mmc0", CGU_CLK_GATE, ··· 379 410 .parents = { JZ4770_CLK_MMC2_MUX, }, 380 411 .gate = { CGU_REG_CLKGR0, 12 }, 381 412 }, 413 + [JZ4770_CLK_OTG_PHY] = { 414 + "usb_phy", CGU_CLK_GATE, 415 + .parents = { JZ4770_CLK_OTG }, 416 + .gate = { CGU_REG_OPCR, 7, true, 50 }, 417 + }, 382 418 383 419 /* Custom clocks */ 384 420 ··· 391 417 "uhc_phy", CGU_CLK_CUSTOM, 392 418 .parents = { JZ4770_CLK_UHC, -1, -1, -1 }, 393 419 .custom = { &jz4770_uhc_phy_ops }, 394 - }, 395 - [JZ4770_CLK_OTG_PHY] = { 396 - "usb_phy", CGU_CLK_CUSTOM, 397 - .parents = { JZ4770_CLK_OTG, -1, -1, -1 }, 398 - .custom = { &jz4770_otg_phy_ops }, 399 420 }, 400 421 401 422 [JZ4770_CLK_EXT512] = {
+17 -7
include/dt-bindings/clock/bcm-sr.h
··· 35 35 36 36 /* GENPLL 0 clock channel ID SCR HSLS FS PCIE */ 37 37 #define BCM_SR_GENPLL0 0 38 - #define BCM_SR_GENPLL0_SATA_CLK 1 38 + #define BCM_SR_GENPLL0_125M_CLK 1 39 39 #define BCM_SR_GENPLL0_SCR_CLK 2 40 40 #define BCM_SR_GENPLL0_250M_CLK 3 41 41 #define BCM_SR_GENPLL0_PCIE_AXI_CLK 4 ··· 50 50 /* GENPLL 2 clock channel ID NITRO MHB*/ 51 51 #define BCM_SR_GENPLL2 0 52 52 #define BCM_SR_GENPLL2_NIC_CLK 1 53 - #define BCM_SR_GENPLL2_250_NITRO_CLK 2 53 + #define BCM_SR_GENPLL2_TS_500_CLK 2 54 54 #define BCM_SR_GENPLL2_125_NITRO_CLK 3 55 55 #define BCM_SR_GENPLL2_CHIMP_CLK 4 56 + #define BCM_SR_GENPLL2_NIC_FLASH_CLK 5 57 + #define BCM_SR_GENPLL2_FS4_CLK 6 56 58 57 59 /* GENPLL 3 HSLS clock channel ID */ 58 60 #define BCM_SR_GENPLL3 0 ··· 64 62 /* GENPLL 4 SCR clock channel ID */ 65 63 #define BCM_SR_GENPLL4 0 66 64 #define BCM_SR_GENPLL4_CCN_CLK 1 65 + #define BCM_SR_GENPLL4_TPIU_PLL_CLK 2 66 + #define BCM_SR_GENPLL4_NOC_CLK 3 67 + #define BCM_SR_GENPLL4_CHCLK_FS4_CLK 4 68 + #define BCM_SR_GENPLL4_BRIDGE_FSCPU_CLK 5 67 69 68 70 /* GENPLL 5 FS4 clock channel ID */ 69 71 #define BCM_SR_GENPLL5 0 70 - #define BCM_SR_GENPLL5_FS_CLK 1 71 - #define BCM_SR_GENPLL5_SPU_CLK 2 72 + #define BCM_SR_GENPLL5_FS4_HF_CLK 1 73 + #define BCM_SR_GENPLL5_CRYPTO_AE_CLK 2 74 + #define BCM_SR_GENPLL5_RAID_AE_CLK 3 72 75 73 76 /* GENPLL 6 NITRO clock channel ID */ 74 77 #define BCM_SR_GENPLL6 0 ··· 81 74 82 75 /* LCPLL0 clock channel ID */ 83 76 #define BCM_SR_LCPLL0 0 84 - #define BCM_SR_LCPLL0_SATA_REF_CLK 1 85 - #define BCM_SR_LCPLL0_USB_REF_CLK 2 86 - #define BCM_SR_LCPLL0_SATA_REFPN_CLK 3 77 + #define BCM_SR_LCPLL0_SATA_REFP_CLK 1 78 + #define BCM_SR_LCPLL0_SATA_REFN_CLK 2 79 + #define BCM_SR_LCPLL0_SATA_350_CLK 3 80 + #define BCM_SR_LCPLL0_SATA_500_CLK 4 87 81 88 82 /* LCPLL1 clock channel ID */ 89 83 #define BCM_SR_LCPLL1 0 90 84 #define BCM_SR_LCPLL1_WAN_CLK 1 85 + #define BCM_SR_LCPLL1_USB_REF_CLK 2 86 + #define BCM_SR_LCPLL1_CRMU_TS_CLK 3 91 87 92 88 /* LCPLL PCIE clock channel ID */ 93 89 #define BCM_SR_LCPLL_PCIE 0