diff --git a/Documentation/devicetree/bindings/arm/msm/qcom,osm.txt b/Documentation/devicetree/bindings/arm/msm/qcom,osm.txt index be8f27d87738..7cf6871894dc 100644 --- a/Documentation/devicetree/bindings/arm/msm/qcom,osm.txt +++ b/Documentation/devicetree/bindings/arm/msm/qcom,osm.txt @@ -10,8 +10,9 @@ Properties: Usage: required Value type: Definition: must be "qcom,cpu-clock-osm-msm8998-v1", - "qcom,cpu-clock-osm-msm8998-v2" or - "qcom,clk-cpu-osm". + "qcom,cpu-clock-osm-msm8998-v2", + "qcom,clk-cpu-osm" or + "qcom,clk-cpu-osm-sdm630". - reg Usage: required diff --git a/drivers/clk/qcom/clk-cpu-osm.c b/drivers/clk/qcom/clk-cpu-osm.c index 6d13adf7a6ee..e88d70f07a1c 100644 --- a/drivers/clk/qcom/clk-cpu-osm.c +++ b/drivers/clk/qcom/clk-cpu-osm.c @@ -3034,6 +3034,7 @@ static int clk_cpu_osm_driver_probe(struct platform_device *pdev) { int rc = 0, cpu, i; int speedbin = 0, pvs_ver = 0; + bool is_sdm630 = 0; u32 pte_efuse; int num_clks = ARRAY_SIZE(osm_qcom_clk_hws); struct clk *clk; @@ -3306,6 +3307,13 @@ static int clk_cpu_osm_driver_probe(struct platform_device *pdev) "Failed to enable clock for cpu %d\n", cpu); } + is_sdm630 = of_device_is_compatible(pdev->dev.of_node, + "qcom,clk-cpu-osm-sdm630"); + if (is_sdm630) { + pwrcl_boot_rate = 1382400000; + perfcl_boot_rate = 1670400000; + } + /* Set final boot rate */ rc = clk_set_rate(pwrcl_clk.hw.clk, pwrcl_boot_rate); if (rc) { @@ -3348,6 +3356,7 @@ exit: static const struct of_device_id match_table[] = { { .compatible = "qcom,clk-cpu-osm" }, + { .compatible = "qcom,clk-cpu-osm-sdm630" }, {} };