• Peter Griffin's avatar
    clk: samsung: gs101: add support for cmu_hsi2 · 093c2900
    Peter Griffin authored
    CMU_HSI2 is the clock management unit used for the hsi2 block.
    HSI stands for High Speed Interface and as such it generates
    clocks for PCIe, UFS and MMC card.
    
    This patch adds support for the muxes, dividers, and gates in
    cmu_hsi2.
    
    The following clocks are marked CLK_IS_CRITICAL as disabling
    them results in an immediate system hang.
    CLK_GOUT_HSI2_HSI2_CMU_HSI2_PCLK
    CLK_GOUT_HSI2_LHM_AXI_P_HSI2_I_CLK
    
    The following clocks are marked CLK_IGNORE_UNUSED as they are
    needed for UFS to be functional.
    CLK_GOUT_HSI2_SSMT_HSI2_ACLK
    CLK_GOUT_HSI2_SSMT_HSI2_PCLK
    CLK_GOUT_HSI2_LHS_ACEL_D_HSI2_I_CLK
    CLK_GOUT_HSI2_SYSMMU_HSI2_CLK_S2
    CLK_GOUT_HSI2_XIU_D_HSI2_ACLK
    CLK_GOUT_HSI2_XIU_P_HSI2_ACLK
    
    CLK_GOUT_HSI2_GPIO_HSI2_PCLK is marked CLK_IGNORE_UNUSED until
    the exynos pinctrl clock patches land then it can be removed.
    
    Some clocks in this unit have very long names. To help with this
    the clock name mangling strategy was updated to include removing
    the following sub-strings.
    - G4X2_DWC_PCIE_CTL_
    - G4X1_DWC_PCIE_CTL_
    - PCIE_SUB_CTRL_
    - INST_0_
    - LN05LPE_
    - TM_WRAPPER_
    - SF_
    Signed-off-by: default avatarPeter Griffin <peter.griffin@linaro.org>
    [AD: resolve merge conflicts]
    Signed-off-by: default avatarAndré Draszik <andre.draszik@linaro.org>
    Reviewed-by: default avatarAndré Draszik <andre.draszik@linaro.org>
    Link: https://lore.kernel.org/r/20240429-hsi0-gs101-v3-3-f233be0a2455@linaro.orgSigned-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    093c2900
clk-gs101.c 210 KB