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

clk: stm32mp25: add security clocks

Add ck_icn_p_iwdg1, ck_icn_p_pka, ck_icn_p_rng, ck_icn_p_saes,
ck_icn_p_serc clocks.
They could be configured for non secured world.

Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com>
Link: https://lore.kernel.org/r/20240529131310.260954-3-gabriel.fernandez@foss.st.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>

authored by

Gabriel Fernandez and committed by
Stephen Boyd
a542e9d7 60f81bfc

+34
+34
drivers/clk/stm32/clk-stm32mp25.c
··· 888 888 }; 889 889 890 890 /* IWDG */ 891 + static struct clk_stm32_gate ck_icn_p_iwdg1 = { 892 + .gate_id = GATE_IWDG1, 893 + .hw.init = CLK_HW_INIT_INDEX("ck_icn_p_iwdg1", ICN_APB3, &clk_stm32_gate_ops, 0), 894 + }; 895 + 891 896 static struct clk_stm32_gate ck_icn_p_iwdg2 = { 892 897 .gate_id = GATE_IWDG2, 893 898 .hw.init = CLK_HW_INIT_INDEX("ck_icn_p_iwdg2", ICN_APB3, &clk_stm32_gate_ops, 0), ··· 1013 1008 .hw.init = CLK_HW_INIT_INDEX("ck_icn_p_pcie", ICN_LS_MCU, &clk_stm32_gate_ops, 0), 1014 1009 }; 1015 1010 1011 + /* PKA */ 1012 + static struct clk_stm32_gate ck_icn_p_pka = { 1013 + .gate_id = GATE_PKA, 1014 + .hw.init = CLK_HW_INIT_INDEX("ck_icn_p_pka", ICN_LS_MCU, &clk_stm32_gate_ops, 0), 1015 + }; 1016 + 1017 + /* RNG */ 1018 + static struct clk_stm32_gate ck_icn_p_rng = { 1019 + .gate_id = GATE_RNG, 1020 + .hw.init = CLK_HW_INIT_INDEX("ck_icn_p_rng", ICN_LS_MCU, &clk_stm32_gate_ops, 0), 1021 + }; 1022 + 1023 + /* SAES */ 1024 + static struct clk_stm32_gate ck_icn_p_saes = { 1025 + .gate_id = GATE_SAES, 1026 + .hw.init = CLK_HW_INIT_INDEX("ck_icn_p_saes", ICN_LS_MCU, &clk_stm32_gate_ops, 0), 1027 + }; 1028 + 1016 1029 /* SAI */ 1017 1030 static struct clk_stm32_gate ck_icn_p_sai1 = { 1018 1031 .gate_id = GATE_SAI1, ··· 1105 1082 static struct clk_stm32_gate ck_ker_sdmmc3 = { 1106 1083 .gate_id = GATE_SDMMC3, 1107 1084 .hw.init = CLK_HW_INIT_INDEX("ck_ker_sdmmc3", FLEXGEN_53, &clk_stm32_gate_ops, 0), 1085 + }; 1086 + 1087 + /* SERC */ 1088 + static struct clk_stm32_gate ck_icn_p_serc = { 1089 + .gate_id = GATE_SERC, 1090 + .hw.init = CLK_HW_INIT_INDEX("ck_icn_p_serc", ICN_APB3, &clk_stm32_gate_ops, 0), 1108 1091 }; 1109 1092 1110 1093 /* SPDIF */ ··· 1636 1607 STM32_GATE_CFG(CK_BUS_MDF1, ck_icn_p_mdf1, SEC_RIFSC(54)), 1637 1608 STM32_GATE_CFG(CK_BUS_OSPIIOM, ck_icn_p_ospiiom, SEC_RIFSC(111)), 1638 1609 STM32_GATE_CFG(CK_BUS_HASH, ck_icn_p_hash, SEC_RIFSC(95)), 1610 + STM32_GATE_CFG(CK_BUS_RNG, ck_icn_p_rng, SEC_RIFSC(92)), 1639 1611 STM32_GATE_CFG(CK_BUS_CRYP1, ck_icn_p_cryp1, SEC_RIFSC(96)), 1640 1612 STM32_GATE_CFG(CK_BUS_CRYP2, ck_icn_p_cryp2, SEC_RIFSC(97)), 1613 + STM32_GATE_CFG(CK_BUS_SAES, ck_icn_p_saes, SEC_RIFSC(94)), 1614 + STM32_GATE_CFG(CK_BUS_PKA, ck_icn_p_pka, SEC_RIFSC(93)), 1641 1615 STM32_GATE_CFG(CK_BUS_ADF1, ck_icn_p_adf1, SEC_RIFSC(55)), 1642 1616 STM32_GATE_CFG(CK_BUS_SPI8, ck_icn_p_spi8, SEC_RIFSC(29)), 1643 1617 STM32_GATE_CFG(CK_BUS_LPUART1, ck_icn_p_lpuart1, SEC_RIFSC(40)), ··· 1708 1676 STM32_GATE_CFG(CK_BUS_SPI5, ck_icn_p_spi5, SEC_RIFSC(26)), 1709 1677 STM32_GATE_CFG(CK_BUS_SPI6, ck_icn_p_spi6, SEC_RIFSC(27)), 1710 1678 STM32_GATE_CFG(CK_BUS_SPI7, ck_icn_p_spi7, SEC_RIFSC(28)), 1679 + STM32_GATE_CFG(CK_BUS_IWDG1, ck_icn_p_iwdg1, SEC_RIFSC(98)), 1711 1680 STM32_GATE_CFG(CK_BUS_IWDG2, ck_icn_p_iwdg2, SEC_RIFSC(99)), 1712 1681 STM32_GATE_CFG(CK_BUS_IWDG3, ck_icn_p_iwdg3, SEC_RIFSC(100)), 1713 1682 STM32_GATE_CFG(CK_BUS_IWDG4, ck_icn_p_iwdg4, SEC_RIFSC(101)), 1714 1683 STM32_GATE_CFG(CK_BUS_WWDG1, ck_icn_p_wwdg1, SEC_RIFSC(103)), 1715 1684 STM32_GATE_CFG(CK_BUS_VREF, ck_icn_p_vref, SEC_RIFSC(106)), 1685 + STM32_GATE_CFG(CK_BUS_SERC, ck_icn_p_serc, SEC_RIFSC(110)), 1716 1686 STM32_GATE_CFG(CK_BUS_HDP, ck_icn_p_hdp, SEC_RIFSC(57)), 1717 1687 STM32_GATE_CFG(CK_BUS_IS2M, ck_icn_p_is2m, MP25_RIF_RCC_IS2M), 1718 1688 STM32_GATE_CFG(CK_BUS_DSI, ck_icn_p_dsi, SEC_RIFSC(81)),