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

clk: qcom: smd: Add support for MSM8998 rpm clocks

Add rpm smd clocks, PMIC and bus clocks which are required on MSM8998
for clients to vote on.

Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>

authored by

Jeffrey Hugo and committed by
Stephen Boyd
6131dc81 5f2420ed

+74
+1
Documentation/devicetree/bindings/clock/qcom,rpmcc.txt
··· 16 16 "qcom,rpmcc-msm8974", "qcom,rpmcc" 17 17 "qcom,rpmcc-apq8064", "qcom,rpmcc" 18 18 "qcom,rpmcc-msm8996", "qcom,rpmcc" 19 + "qcom,rpmcc-msm8998", "qcom,rpmcc" 19 20 "qcom,rpmcc-qcs404", "qcom,rpmcc" 20 21 21 22 - #clock-cells : shall contain 1
+63
drivers/clk/qcom/clk-smd-rpm.c
··· 655 655 .num_clks = ARRAY_SIZE(qcs404_clks), 656 656 }; 657 657 658 + /* msm8998 */ 659 + DEFINE_CLK_SMD_RPM(msm8998, snoc_clk, snoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 1); 660 + DEFINE_CLK_SMD_RPM(msm8998, cnoc_clk, cnoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 2); 661 + DEFINE_CLK_SMD_RPM(msm8998, ce1_clk, ce1_a_clk, QCOM_SMD_RPM_CE_CLK, 0); 662 + DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, div_clk1, div_clk1_a, 0xb); 663 + DEFINE_CLK_SMD_RPM(msm8998, ipa_clk, ipa_a_clk, QCOM_SMD_RPM_IPA_CLK, 0); 664 + DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, ln_bb_clk1, ln_bb_clk1_a, 1); 665 + DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, ln_bb_clk2, ln_bb_clk2_a, 2); 666 + DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(msm8998, ln_bb_clk3_pin, ln_bb_clk3_a_pin, 667 + 3); 668 + DEFINE_CLK_SMD_RPM(msm8998, mmssnoc_axi_rpm_clk, mmssnoc_axi_rpm_a_clk, 669 + QCOM_SMD_RPM_MMAXI_CLK, 0); 670 + DEFINE_CLK_SMD_RPM(msm8998, aggre1_noc_clk, aggre1_noc_a_clk, 671 + QCOM_SMD_RPM_AGGR_CLK, 1); 672 + DEFINE_CLK_SMD_RPM(msm8998, aggre2_noc_clk, aggre2_noc_a_clk, 673 + QCOM_SMD_RPM_AGGR_CLK, 2); 674 + DEFINE_CLK_SMD_RPM_QDSS(msm8998, qdss_clk, qdss_a_clk, 675 + QCOM_SMD_RPM_MISC_CLK, 1); 676 + DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, rf_clk1, rf_clk1_a, 4); 677 + DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(msm8998, rf_clk2_pin, rf_clk2_a_pin, 5); 678 + DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, rf_clk3, rf_clk3_a, 6); 679 + DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(msm8998, rf_clk3_pin, rf_clk3_a_pin, 6); 680 + static struct clk_smd_rpm *msm8998_clks[] = { 681 + [RPM_SMD_SNOC_CLK] = &msm8998_snoc_clk, 682 + [RPM_SMD_SNOC_A_CLK] = &msm8998_snoc_a_clk, 683 + [RPM_SMD_CNOC_CLK] = &msm8998_cnoc_clk, 684 + [RPM_SMD_CNOC_A_CLK] = &msm8998_cnoc_a_clk, 685 + [RPM_SMD_CE1_CLK] = &msm8998_ce1_clk, 686 + [RPM_SMD_CE1_A_CLK] = &msm8998_ce1_a_clk, 687 + [RPM_SMD_DIV_CLK1] = &msm8998_div_clk1, 688 + [RPM_SMD_DIV_A_CLK1] = &msm8998_div_clk1_a, 689 + [RPM_SMD_IPA_CLK] = &msm8998_ipa_clk, 690 + [RPM_SMD_IPA_A_CLK] = &msm8998_ipa_a_clk, 691 + [RPM_SMD_LN_BB_CLK1] = &msm8998_ln_bb_clk1, 692 + [RPM_SMD_LN_BB_CLK1_A] = &msm8998_ln_bb_clk1_a, 693 + [RPM_SMD_LN_BB_CLK2] = &msm8998_ln_bb_clk2, 694 + [RPM_SMD_LN_BB_CLK2_A] = &msm8998_ln_bb_clk2_a, 695 + [RPM_SMD_LN_BB_CLK3_PIN] = &msm8998_ln_bb_clk3_pin, 696 + [RPM_SMD_LN_BB_CLK3_A_PIN] = &msm8998_ln_bb_clk3_a_pin, 697 + [RPM_SMD_MMAXI_CLK] = &msm8998_mmssnoc_axi_rpm_clk, 698 + [RPM_SMD_MMAXI_A_CLK] = &msm8998_mmssnoc_axi_rpm_a_clk, 699 + [RPM_SMD_AGGR1_NOC_CLK] = &msm8998_aggre1_noc_clk, 700 + [RPM_SMD_AGGR1_NOC_A_CLK] = &msm8998_aggre1_noc_a_clk, 701 + [RPM_SMD_AGGR2_NOC_CLK] = &msm8998_aggre2_noc_clk, 702 + [RPM_SMD_AGGR2_NOC_A_CLK] = &msm8998_aggre2_noc_a_clk, 703 + [RPM_SMD_QDSS_CLK] = &msm8998_qdss_clk, 704 + [RPM_SMD_QDSS_A_CLK] = &msm8998_qdss_a_clk, 705 + [RPM_SMD_RF_CLK1] = &msm8998_rf_clk1, 706 + [RPM_SMD_RF_CLK1_A] = &msm8998_rf_clk1_a, 707 + [RPM_SMD_RF_CLK2_PIN] = &msm8998_rf_clk2_pin, 708 + [RPM_SMD_RF_CLK2_A_PIN] = &msm8998_rf_clk2_a_pin, 709 + [RPM_SMD_RF_CLK3] = &msm8998_rf_clk3, 710 + [RPM_SMD_RF_CLK3_A] = &msm8998_rf_clk3_a, 711 + [RPM_SMD_RF_CLK3_PIN] = &msm8998_rf_clk3_pin, 712 + [RPM_SMD_RF_CLK3_A_PIN] = &msm8998_rf_clk3_a_pin, 713 + }; 714 + 715 + static const struct rpm_smd_clk_desc rpm_clk_msm8998 = { 716 + .clks = msm8998_clks, 717 + .num_clks = ARRAY_SIZE(msm8998_clks), 718 + }; 719 + 658 720 static const struct of_device_id rpm_smd_clk_match_table[] = { 659 721 { .compatible = "qcom,rpmcc-msm8916", .data = &rpm_clk_msm8916 }, 660 722 { .compatible = "qcom,rpmcc-msm8974", .data = &rpm_clk_msm8974 }, 661 723 { .compatible = "qcom,rpmcc-msm8996", .data = &rpm_clk_msm8996 }, 724 + { .compatible = "qcom,rpmcc-msm8998", .data = &rpm_clk_msm8998 }, 662 725 { .compatible = "qcom,rpmcc-qcs404", .data = &rpm_clk_qcs404 }, 663 726 { } 664 727 };
+10
include/dt-bindings/clock/qcom,rpmcc.h
··· 127 127 #define RPM_SMD_BIMC_GPU_A_CLK 77 128 128 #define RPM_SMD_QPIC_CLK 78 129 129 #define RPM_SMD_QPIC_CLK_A 79 130 + #define RPM_SMD_LN_BB_CLK1 80 131 + #define RPM_SMD_LN_BB_CLK1_A 81 132 + #define RPM_SMD_LN_BB_CLK2 82 133 + #define RPM_SMD_LN_BB_CLK2_A 83 134 + #define RPM_SMD_LN_BB_CLK3_PIN 84 135 + #define RPM_SMD_LN_BB_CLK3_A_PIN 85 136 + #define RPM_SMD_RF_CLK3 86 137 + #define RPM_SMD_RF_CLK3_A 87 138 + #define RPM_SMD_RF_CLK3_PIN 88 139 + #define RPM_SMD_RF_CLK3_A_PIN 89 130 140 131 141 #endif