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

Merge branches 'clk-stm32mp1', 'clk-samsung', 'clk-uniphier-mpeg', 'clk-stratix10' and 'clk-aspeed' into clk-next

* clk-stm32mp1:
clk: stm32mp1: Fix a memory leak in 'clk_stm32_register_gate_ops()'
clk: stm32mp1: Add CLK_IGNORE_UNUSED to ck_sys_dbg clock
clk: stm32mp1: remove ck_apb_dbg clock
clk: stm32mp1: set stgen_k clock as critical
clk: stm32mp1: add missing tzc2 clock
clk: stm32mp1: fix SAI3 & SAI4 clocks
clk: stm32mp1: remove unused dfsdm_src[] const
clk: stm32mp1: add missing static

* clk-samsung:
clk: samsung: simplify getting .drvdata

* clk-uniphier-mpeg:
clk: uniphier: add LD11/LD20 stream demux system clock

* clk-stratix10:
clk: socfpga: stratix10: suppress unbinding platform's clock driver
clk: socfpga: stratix10: use platform driver APIs

* clk-aspeed:
clk:aspeed: Fix reset bits for PCI/VGA and PECI
clk: aspeed: Support second reset register

+93 -79
+38 -10
drivers/clk/clk-aspeed.c
··· 16 16 17 17 #define ASPEED_NUM_CLKS 35 18 18 19 + #define ASPEED_RESET2_OFFSET 32 20 + 19 21 #define ASPEED_RESET_CTRL 0x04 20 22 #define ASPEED_CLK_SELECTION 0x08 21 23 #define ASPEED_CLK_STOP_CTRL 0x0c ··· 32 30 #define CLKIN_25MHZ_EN BIT(23) 33 31 #define AST2400_CLK_SOURCE_SEL BIT(18) 34 32 #define ASPEED_CLK_SELECTION_2 0xd8 33 + #define ASPEED_RESET_CTRL2 0xd4 35 34 36 35 /* Globally visible clocks */ 37 36 static DEFINE_SPINLOCK(aspeed_clk_lock); ··· 91 88 [ASPEED_CLK_GATE_GCLK] = { 1, 7, "gclk-gate", NULL, 0 }, /* 2D engine */ 92 89 [ASPEED_CLK_GATE_MCLK] = { 2, -1, "mclk-gate", "mpll", CLK_IS_CRITICAL }, /* SDRAM */ 93 90 [ASPEED_CLK_GATE_VCLK] = { 3, 6, "vclk-gate", NULL, 0 }, /* Video Capture */ 94 - [ASPEED_CLK_GATE_BCLK] = { 4, 10, "bclk-gate", "bclk", 0 }, /* PCIe/PCI */ 91 + [ASPEED_CLK_GATE_BCLK] = { 4, 8, "bclk-gate", "bclk", 0 }, /* PCIe/PCI */ 95 92 [ASPEED_CLK_GATE_DCLK] = { 5, -1, "dclk-gate", NULL, 0 }, /* DAC */ 96 93 [ASPEED_CLK_GATE_REFCLK] = { 6, -1, "refclk-gate", "clkin", CLK_IS_CRITICAL }, 97 94 [ASPEED_CLK_GATE_USBPORT2CLK] = { 7, 3, "usb-port2-gate", NULL, 0 }, /* USB2.0 Host port 2 */ ··· 294 291 #define to_aspeed_reset(p) container_of((p), struct aspeed_reset, rcdev) 295 292 296 293 static const u8 aspeed_resets[] = { 294 + /* SCU04 resets */ 297 295 [ASPEED_RESET_XDMA] = 25, 298 296 [ASPEED_RESET_MCTP] = 24, 299 297 [ASPEED_RESET_ADC] = 23, 300 298 [ASPEED_RESET_JTAG_MASTER] = 22, 301 299 [ASPEED_RESET_MIC] = 18, 302 300 [ASPEED_RESET_PWM] = 9, 303 - [ASPEED_RESET_PCIVGA] = 8, 301 + [ASPEED_RESET_PECI] = 10, 304 302 [ASPEED_RESET_I2C] = 2, 305 303 [ASPEED_RESET_AHB] = 1, 304 + 305 + /* 306 + * SCUD4 resets start at an offset to separate them from 307 + * the SCU04 resets. 308 + */ 309 + [ASPEED_RESET_CRT1] = ASPEED_RESET2_OFFSET + 5, 306 310 }; 307 311 308 312 static int aspeed_reset_deassert(struct reset_controller_dev *rcdev, 309 313 unsigned long id) 310 314 { 311 315 struct aspeed_reset *ar = to_aspeed_reset(rcdev); 312 - u32 rst = BIT(aspeed_resets[id]); 316 + u32 reg = ASPEED_RESET_CTRL; 317 + u32 bit = aspeed_resets[id]; 313 318 314 - return regmap_update_bits(ar->map, ASPEED_RESET_CTRL, rst, 0); 319 + if (bit >= ASPEED_RESET2_OFFSET) { 320 + bit -= ASPEED_RESET2_OFFSET; 321 + reg = ASPEED_RESET_CTRL2; 322 + } 323 + 324 + return regmap_update_bits(ar->map, reg, BIT(bit), 0); 315 325 } 316 326 317 327 static int aspeed_reset_assert(struct reset_controller_dev *rcdev, 318 328 unsigned long id) 319 329 { 320 330 struct aspeed_reset *ar = to_aspeed_reset(rcdev); 321 - u32 rst = BIT(aspeed_resets[id]); 331 + u32 reg = ASPEED_RESET_CTRL; 332 + u32 bit = aspeed_resets[id]; 322 333 323 - return regmap_update_bits(ar->map, ASPEED_RESET_CTRL, rst, rst); 334 + if (bit >= ASPEED_RESET2_OFFSET) { 335 + bit -= ASPEED_RESET2_OFFSET; 336 + reg = ASPEED_RESET_CTRL2; 337 + } 338 + 339 + return regmap_update_bits(ar->map, reg, BIT(bit), BIT(bit)); 324 340 } 325 341 326 342 static int aspeed_reset_status(struct reset_controller_dev *rcdev, 327 343 unsigned long id) 328 344 { 329 345 struct aspeed_reset *ar = to_aspeed_reset(rcdev); 330 - u32 val, rst = BIT(aspeed_resets[id]); 331 - int ret; 346 + u32 reg = ASPEED_RESET_CTRL; 347 + u32 bit = aspeed_resets[id]; 348 + int ret, val; 332 349 333 - ret = regmap_read(ar->map, ASPEED_RESET_CTRL, &val); 350 + if (bit >= ASPEED_RESET2_OFFSET) { 351 + bit -= ASPEED_RESET2_OFFSET; 352 + reg = ASPEED_RESET_CTRL2; 353 + } 354 + 355 + ret = regmap_read(ar->map, reg, &val); 334 356 if (ret) 335 357 return ret; 336 358 337 - return !!(val & rst); 359 + return !!(val & BIT(bit)); 338 360 } 339 361 340 362 static const struct reset_control_ops aspeed_reset_ops = {
+26 -40
drivers/clk/clk-stm32mp1.c
··· 216 216 "pclk5", "pll3_q", "ck_hsi", "ck_csi", "pll4_q", "ck_hse" 217 217 }; 218 218 219 - const char * const usart234578_src[] = { 219 + static const char * const usart234578_src[] = { 220 220 "pclk1", "pll4_q", "ck_hsi", "ck_csi", "ck_hse" 221 221 }; 222 222 223 223 static const char * const usart6_src[] = { 224 224 "pclk2", "pll4_q", "ck_hsi", "ck_csi", "ck_hse" 225 - }; 226 - 227 - static const char * const dfsdm_src[] = { 228 - "pclk2", "ck_mcu" 229 225 }; 230 226 231 227 static const char * const fdcan_src[] = { ··· 312 316 struct clock_config { 313 317 u32 id; 314 318 const char *name; 315 - union { 316 - const char *parent_name; 317 - const char * const *parent_names; 318 - }; 319 + const char *parent_name; 320 + const char * const *parent_names; 319 321 int num_parents; 320 322 unsigned long flags; 321 323 void *cfg; ··· 463 469 } 464 470 } 465 471 466 - const struct clk_ops mp1_gate_clk_ops = { 472 + static const struct clk_ops mp1_gate_clk_ops = { 467 473 .enable = mp1_gate_clk_enable, 468 474 .disable = mp1_gate_clk_disable, 469 475 .is_enabled = clk_gate_is_enabled, ··· 579 585 spinlock_t *lock) 580 586 { 581 587 struct clk_init_data init = { NULL }; 582 - struct clk_gate *gate; 583 588 struct clk_hw *hw; 584 589 int ret; 585 - 586 - gate = kzalloc(sizeof(*gate), GFP_KERNEL); 587 - if (!gate) 588 - return ERR_PTR(-ENOMEM); 589 590 590 591 init.name = name; 591 592 init.parent_names = &parent_name; ··· 599 610 hw->init = &init; 600 611 601 612 ret = clk_hw_register(dev, hw); 602 - if (ret) { 603 - kfree(gate); 613 + if (ret) 604 614 hw = ERR_PTR(ret); 605 - } 606 615 607 616 return hw; 608 617 } ··· 685 698 mp1_gate_clk_disable(hw); 686 699 } 687 700 688 - const struct clk_ops mp1_mgate_clk_ops = { 701 + static const struct clk_ops mp1_mgate_clk_ops = { 689 702 .enable = mp1_mgate_clk_enable, 690 703 .disable = mp1_mgate_clk_disable, 691 704 .is_enabled = clk_gate_is_enabled, ··· 719 732 return 0; 720 733 } 721 734 722 - const struct clk_ops clk_mmux_ops = { 735 + static const struct clk_ops clk_mmux_ops = { 723 736 .get_parent = clk_mmux_get_parent, 724 737 .set_parent = clk_mmux_set_parent, 725 738 .determine_rate = __clk_mux_determine_rate, ··· 1035 1048 u32 offset; 1036 1049 }; 1037 1050 1038 - struct clk_hw *_clk_register_pll(struct device *dev, 1039 - struct clk_hw_onecell_data *clk_data, 1040 - void __iomem *base, spinlock_t *lock, 1041 - const struct clock_config *cfg) 1051 + static struct clk_hw *_clk_register_pll(struct device *dev, 1052 + struct clk_hw_onecell_data *clk_data, 1053 + void __iomem *base, spinlock_t *lock, 1054 + const struct clock_config *cfg) 1042 1055 { 1043 1056 struct stm32_pll_cfg *stm_pll_cfg = cfg->cfg; 1044 1057 ··· 1392 1405 G_USBH, 1393 1406 G_ETHSTP, 1394 1407 G_RTCAPB, 1395 - G_TZC, 1408 + G_TZC1, 1409 + G_TZC2, 1396 1410 G_TZPC, 1397 1411 G_IWDG1, 1398 1412 G_BSEC, ··· 1405 1417 G_LAST 1406 1418 }; 1407 1419 1408 - struct stm32_mgate mp1_mgate[G_LAST]; 1420 + static struct stm32_mgate mp1_mgate[G_LAST]; 1409 1421 1410 1422 #define _K_GATE(_id, _gate_offset, _gate_bit_idx, _gate_flags,\ 1411 1423 _mgate, _ops)\ ··· 1428 1440 &mp1_mgate[_id], &mp1_mgate_clk_ops) 1429 1441 1430 1442 /* Peripheral gates */ 1431 - struct stm32_gate_cfg per_gate_cfg[G_LAST] = { 1443 + static struct stm32_gate_cfg per_gate_cfg[G_LAST] = { 1432 1444 /* Multi gates */ 1433 1445 K_GATE(G_MDIO, RCC_APB1ENSETR, 31, 0), 1434 1446 K_MGATE(G_DAC12, RCC_APB1ENSETR, 29, 0), ··· 1494 1506 K_GATE(G_BSEC, RCC_APB5ENSETR, 16, 0), 1495 1507 K_GATE(G_IWDG1, RCC_APB5ENSETR, 15, 0), 1496 1508 K_GATE(G_TZPC, RCC_APB5ENSETR, 13, 0), 1497 - K_GATE(G_TZC, RCC_APB5ENSETR, 12, 0), 1509 + K_GATE(G_TZC2, RCC_APB5ENSETR, 12, 0), 1510 + K_GATE(G_TZC1, RCC_APB5ENSETR, 11, 0), 1498 1511 K_GATE(G_RTCAPB, RCC_APB5ENSETR, 8, 0), 1499 1512 K_MGATE(G_USART1, RCC_APB5ENSETR, 4, 0), 1500 1513 K_MGATE(G_I2C6, RCC_APB5ENSETR, 3, 0), ··· 1589 1600 M_LAST 1590 1601 }; 1591 1602 1592 - struct stm32_mmux ker_mux[M_LAST]; 1603 + static struct stm32_mmux ker_mux[M_LAST]; 1593 1604 1594 1605 #define _K_MUX(_id, _offset, _shift, _width, _mux_flags, _mmux, _ops)\ 1595 1606 [_id] = {\ ··· 1612 1623 _K_MUX(_id, _offset, _shift, _width, _mux_flags,\ 1613 1624 &ker_mux[_id], &clk_mmux_ops) 1614 1625 1615 - const struct stm32_mux_cfg ker_mux_cfg[M_LAST] = { 1626 + static const struct stm32_mux_cfg ker_mux_cfg[M_LAST] = { 1616 1627 /* Kernel multi mux */ 1617 1628 K_MMUX(M_SDMMC12, RCC_SDMMC12CKSELR, 0, 3, 0), 1618 1629 K_MMUX(M_SPI23, RCC_SPI2S23CKSELR, 0, 3, 0), ··· 1849 1860 PCLK(USART1, "usart1", "pclk5", 0, G_USART1), 1850 1861 PCLK(RTCAPB, "rtcapb", "pclk5", CLK_IGNORE_UNUSED | 1851 1862 CLK_IS_CRITICAL, G_RTCAPB), 1852 - PCLK(TZC, "tzc", "pclk5", CLK_IGNORE_UNUSED, G_TZC), 1863 + PCLK(TZC1, "tzc1", "ck_axi", CLK_IGNORE_UNUSED, G_TZC1), 1864 + PCLK(TZC2, "tzc2", "ck_axi", CLK_IGNORE_UNUSED, G_TZC2), 1853 1865 PCLK(TZPC, "tzpc", "pclk5", CLK_IGNORE_UNUSED, G_TZPC), 1854 1866 PCLK(IWDG1, "iwdg1", "pclk5", 0, G_IWDG1), 1855 1867 PCLK(BSEC, "bsec", "pclk5", CLK_IGNORE_UNUSED, G_BSEC), ··· 1906 1916 KCLK(RNG1_K, "rng1_k", rng_src, 0, G_RNG1, M_RNG1), 1907 1917 KCLK(RNG2_K, "rng2_k", rng_src, 0, G_RNG2, M_RNG2), 1908 1918 KCLK(USBPHY_K, "usbphy_k", usbphy_src, 0, G_USBPHY, M_USBPHY), 1909 - KCLK(STGEN_K, "stgen_k", stgen_src, CLK_IGNORE_UNUSED, 1910 - G_STGEN, M_STGEN), 1919 + KCLK(STGEN_K, "stgen_k", stgen_src, CLK_IS_CRITICAL, G_STGEN, M_STGEN), 1911 1920 KCLK(SPDIF_K, "spdif_k", spdif_src, 0, G_SPDIF, M_SPDIF), 1912 1921 KCLK(SPI1_K, "spi1_k", spi123_src, 0, G_SPI1, M_SPI1), 1913 1922 KCLK(SPI2_K, "spi2_k", spi123_src, 0, G_SPI2, M_SPI23), ··· 1937 1948 KCLK(FDCAN_K, "fdcan_k", fdcan_src, 0, G_FDCAN, M_FDCAN), 1938 1949 KCLK(SAI1_K, "sai1_k", sai_src, 0, G_SAI1, M_SAI1), 1939 1950 KCLK(SAI2_K, "sai2_k", sai2_src, 0, G_SAI2, M_SAI2), 1940 - KCLK(SAI3_K, "sai3_k", sai_src, 0, G_SAI2, M_SAI3), 1941 - KCLK(SAI4_K, "sai4_k", sai_src, 0, G_SAI2, M_SAI4), 1951 + KCLK(SAI3_K, "sai3_k", sai_src, 0, G_SAI3, M_SAI3), 1952 + KCLK(SAI4_K, "sai4_k", sai_src, 0, G_SAI4, M_SAI4), 1942 1953 KCLK(ADC12_K, "adc12_k", adc12_src, 0, G_ADC12, M_ADC12), 1943 1954 KCLK(DSI_K, "dsi_k", dsi_src, 0, G_DSI, M_DSI), 1944 1955 KCLK(ADFSDM_K, "adfsdm_k", sai_src, 0, G_ADFSDM, M_SAI1), ··· 1981 1992 _DIV(RCC_MCO2CFGR, 4, 4, 0, NULL)), 1982 1993 1983 1994 /* Debug clocks */ 1984 - FIXED_FACTOR(NO_ID, "ck_axi_div2", "ck_axi", 0, 1, 2), 1985 - 1986 - GATE(DBG, "ck_apb_dbg", "ck_axi_div2", 0, RCC_DBGCFGR, 8, 0), 1987 - 1988 - GATE(CK_DBG, "ck_sys_dbg", "ck_axi", 0, RCC_DBGCFGR, 8, 0), 1995 + GATE(CK_DBG, "ck_sys_dbg", "ck_axi", CLK_IGNORE_UNUSED, 1996 + RCC_DBGCFGR, 8, 0), 1989 1997 1990 1998 COMPOSITE(CK_TRACE, "ck_trace", ck_trace_src, CLK_OPS_PARENT_ENABLE, 1991 1999 _GATE(RCC_DBGCFGR, 9, 0),
+2 -4
drivers/clk/samsung/clk-s3c2410-dclk.c
··· 219 219 #ifdef CONFIG_PM_SLEEP 220 220 static int s3c24xx_dclk_suspend(struct device *dev) 221 221 { 222 - struct platform_device *pdev = to_platform_device(dev); 223 - struct s3c24xx_dclk *s3c24xx_dclk = platform_get_drvdata(pdev); 222 + struct s3c24xx_dclk *s3c24xx_dclk = dev_get_drvdata(dev); 224 223 225 224 s3c24xx_dclk->reg_save = readl_relaxed(s3c24xx_dclk->base); 226 225 return 0; ··· 227 228 228 229 static int s3c24xx_dclk_resume(struct device *dev) 229 230 { 230 - struct platform_device *pdev = to_platform_device(dev); 231 - struct s3c24xx_dclk *s3c24xx_dclk = platform_get_drvdata(pdev); 231 + struct s3c24xx_dclk *s3c24xx_dclk = dev_get_drvdata(dev); 232 232 233 233 writel_relaxed(s3c24xx_dclk->reg_save, s3c24xx_dclk->base); 234 234 return 0;
+18 -22
drivers/clk/socfpga/clk-s10.c
··· 260 260 return 0; 261 261 } 262 262 263 - static struct stratix10_clock_data *__socfpga_s10_clk_init(struct device_node *np, 263 + static struct stratix10_clock_data *__socfpga_s10_clk_init(struct platform_device *pdev, 264 264 int nr_clks) 265 265 { 266 + struct device_node *np = pdev->dev.of_node; 267 + struct device *dev = &pdev->dev; 266 268 struct stratix10_clock_data *clk_data; 267 269 struct clk **clk_table; 270 + struct resource *res; 268 271 void __iomem *base; 269 272 270 - base = of_iomap(np, 0); 271 - if (!base) { 273 + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 274 + base = devm_ioremap_resource(dev, res); 275 + if (IS_ERR(base)) { 272 276 pr_err("%s: failed to map clock registers\n", __func__); 273 - goto err; 277 + return ERR_CAST(base); 274 278 } 275 279 276 - clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL); 280 + clk_data = devm_kzalloc(dev, sizeof(*clk_data), GFP_KERNEL); 277 281 if (!clk_data) 278 - goto err; 282 + return ERR_PTR(-ENOMEM); 279 283 280 284 clk_data->base = base; 281 - clk_table = kcalloc(nr_clks, sizeof(*clk_table), GFP_KERNEL); 285 + clk_table = devm_kcalloc(dev, nr_clks, sizeof(*clk_table), GFP_KERNEL); 282 286 if (!clk_table) 283 - goto err_data; 287 + return ERR_PTR(-ENOMEM); 284 288 285 289 clk_data->clk_data.clks = clk_table; 286 290 clk_data->clk_data.clk_num = nr_clks; 287 291 of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data->clk_data); 288 292 return clk_data; 289 - 290 - err_data: 291 - kfree(clk_data); 292 - err: 293 - return NULL; 294 293 } 295 294 296 - static int s10_clkmgr_init(struct device_node *np) 295 + static int s10_clkmgr_init(struct platform_device *pdev) 297 296 { 298 297 struct stratix10_clock_data *clk_data; 299 298 300 - clk_data = __socfpga_s10_clk_init(np, STRATIX10_NUM_CLKS); 301 - if (!clk_data) 302 - return -ENOMEM; 299 + clk_data = __socfpga_s10_clk_init(pdev, STRATIX10_NUM_CLKS); 300 + if (IS_ERR(clk_data)) 301 + return PTR_ERR(clk_data); 303 302 304 303 s10_clk_register_pll(s10_pll_clks, ARRAY_SIZE(s10_pll_clks), clk_data); 305 304 ··· 316 317 317 318 static int s10_clkmgr_probe(struct platform_device *pdev) 318 319 { 319 - struct device_node *np = pdev->dev.of_node; 320 - 321 - s10_clkmgr_init(np); 322 - 323 - return 0; 320 + return s10_clkmgr_init(pdev); 324 321 } 325 322 326 323 static const struct of_device_id stratix10_clkmgr_match_table[] = { ··· 329 334 .probe = s10_clkmgr_probe, 330 335 .driver = { 331 336 .name = "stratix10-clkmgr", 337 + .suppress_bind_attrs = true, 332 338 .of_match_table = stratix10_clkmgr_match_table, 333 339 }, 334 340 };
+5
drivers/clk/uniphier/clk-uniphier-sys.c
··· 51 51 #define UNIPHIER_LD11_SYS_CLK_STDMAC(idx) \ 52 52 UNIPHIER_CLK_GATE("stdmac", (idx), NULL, 0x210c, 8) 53 53 54 + #define UNIPHIER_LD11_SYS_CLK_HSC(idx) \ 55 + UNIPHIER_CLK_GATE("hsc", (idx), NULL, 0x210c, 9) 56 + 54 57 #define UNIPHIER_PRO4_SYS_CLK_GIO(idx) \ 55 58 UNIPHIER_CLK_GATE("gio", (idx), NULL, 0x2104, 6) 56 59 ··· 185 182 /* Index 5 reserved for eMMC PHY */ 186 183 UNIPHIER_LD11_SYS_CLK_ETHER(6), 187 184 UNIPHIER_LD11_SYS_CLK_STDMAC(8), /* HSC, MIO */ 185 + UNIPHIER_LD11_SYS_CLK_HSC(9), 188 186 UNIPHIER_CLK_FACTOR("usb2", -1, "ref", 24, 25), 189 187 UNIPHIER_LD11_SYS_CLK_AIO(40), 190 188 UNIPHIER_LD11_SYS_CLK_EVEA(41), ··· 219 215 UNIPHIER_LD20_SYS_CLK_SD, 220 216 UNIPHIER_LD11_SYS_CLK_ETHER(6), 221 217 UNIPHIER_LD11_SYS_CLK_STDMAC(8), /* HSC */ 218 + UNIPHIER_LD11_SYS_CLK_HSC(9), 222 219 /* GIO is always clock-enabled: no function for 0x210c bit5 */ 223 220 /* 224 221 * clock for USB Link is enabled by the logic "OR" of bit 14 and bit 15.
+2 -1
include/dt-bindings/clock/aspeed-clock.h
··· 45 45 #define ASPEED_RESET_JTAG_MASTER 3 46 46 #define ASPEED_RESET_MIC 4 47 47 #define ASPEED_RESET_PWM 5 48 - #define ASPEED_RESET_PCIVGA 6 48 + #define ASPEED_RESET_PECI 6 49 49 #define ASPEED_RESET_I2C 7 50 50 #define ASPEED_RESET_AHB 8 51 + #define ASPEED_RESET_CRT1 9 51 52 52 53 #endif
+2 -2
include/dt-bindings/clock/stm32mp1-clks.h
··· 76 76 #define I2C6 63 77 77 #define USART1 64 78 78 #define RTCAPB 65 79 - #define TZC 66 79 + #define TZC1 66 80 80 #define TZPC 67 81 81 #define IWDG1 68 82 82 #define BSEC 69 ··· 123 123 #define CRC1 110 124 124 #define USBH 111 125 125 #define ETHSTP 112 126 + #define TZC2 113 126 127 127 128 /* Kernel clocks */ 128 129 #define SDMMC1_K 118 ··· 229 228 #define CK_MCO2 212 230 229 231 230 /* TRACE & DEBUG clocks */ 232 - #define DBG 213 233 231 #define CK_DBG 214 234 232 #define CK_TRACE 215 235 233