| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (c) 2016, Linaro Limited |
|---|
| 3 | 4 | * Copyright (c) 2014, The Linux Foundation. All rights reserved. |
|---|
| 4 | | - * |
|---|
| 5 | | - * This software is licensed under the terms of the GNU General Public |
|---|
| 6 | | - * License version 2, as published by the Free Software Foundation, and |
|---|
| 7 | | - * may be copied, distributed, and modified under those terms. |
|---|
| 8 | | - * |
|---|
| 9 | | - * This program is distributed in the hope that it will be useful, |
|---|
| 10 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 11 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 12 | | - * GNU General Public License for more details. |
|---|
| 13 | 5 | */ |
|---|
| 14 | 6 | |
|---|
| 15 | 7 | #include <linux/clk-provider.h> |
|---|
| .. | .. |
|---|
| 551 | 543 | .num_clks = ARRAY_SIZE(apq8064_clks), |
|---|
| 552 | 544 | }; |
|---|
| 553 | 545 | |
|---|
| 546 | +/* ipq806x */ |
|---|
| 547 | +DEFINE_CLK_RPM(ipq806x, afab_clk, afab_a_clk, QCOM_RPM_APPS_FABRIC_CLK); |
|---|
| 548 | +DEFINE_CLK_RPM(ipq806x, cfpb_clk, cfpb_a_clk, QCOM_RPM_CFPB_CLK); |
|---|
| 549 | +DEFINE_CLK_RPM(ipq806x, daytona_clk, daytona_a_clk, QCOM_RPM_DAYTONA_FABRIC_CLK); |
|---|
| 550 | +DEFINE_CLK_RPM(ipq806x, ebi1_clk, ebi1_a_clk, QCOM_RPM_EBI1_CLK); |
|---|
| 551 | +DEFINE_CLK_RPM(ipq806x, sfab_clk, sfab_a_clk, QCOM_RPM_SYS_FABRIC_CLK); |
|---|
| 552 | +DEFINE_CLK_RPM(ipq806x, sfpb_clk, sfpb_a_clk, QCOM_RPM_SFPB_CLK); |
|---|
| 553 | +DEFINE_CLK_RPM(ipq806x, nss_fabric_0_clk, nss_fabric_0_a_clk, QCOM_RPM_NSS_FABRIC_0_CLK); |
|---|
| 554 | +DEFINE_CLK_RPM(ipq806x, nss_fabric_1_clk, nss_fabric_1_a_clk, QCOM_RPM_NSS_FABRIC_1_CLK); |
|---|
| 555 | + |
|---|
| 556 | +static struct clk_rpm *ipq806x_clks[] = { |
|---|
| 557 | + [RPM_APPS_FABRIC_CLK] = &ipq806x_afab_clk, |
|---|
| 558 | + [RPM_APPS_FABRIC_A_CLK] = &ipq806x_afab_a_clk, |
|---|
| 559 | + [RPM_CFPB_CLK] = &ipq806x_cfpb_clk, |
|---|
| 560 | + [RPM_CFPB_A_CLK] = &ipq806x_cfpb_a_clk, |
|---|
| 561 | + [RPM_DAYTONA_FABRIC_CLK] = &ipq806x_daytona_clk, |
|---|
| 562 | + [RPM_DAYTONA_FABRIC_A_CLK] = &ipq806x_daytona_a_clk, |
|---|
| 563 | + [RPM_EBI1_CLK] = &ipq806x_ebi1_clk, |
|---|
| 564 | + [RPM_EBI1_A_CLK] = &ipq806x_ebi1_a_clk, |
|---|
| 565 | + [RPM_SYS_FABRIC_CLK] = &ipq806x_sfab_clk, |
|---|
| 566 | + [RPM_SYS_FABRIC_A_CLK] = &ipq806x_sfab_a_clk, |
|---|
| 567 | + [RPM_SFPB_CLK] = &ipq806x_sfpb_clk, |
|---|
| 568 | + [RPM_SFPB_A_CLK] = &ipq806x_sfpb_a_clk, |
|---|
| 569 | + [RPM_NSS_FABRIC_0_CLK] = &ipq806x_nss_fabric_0_clk, |
|---|
| 570 | + [RPM_NSS_FABRIC_0_A_CLK] = &ipq806x_nss_fabric_0_a_clk, |
|---|
| 571 | + [RPM_NSS_FABRIC_1_CLK] = &ipq806x_nss_fabric_1_clk, |
|---|
| 572 | + [RPM_NSS_FABRIC_1_A_CLK] = &ipq806x_nss_fabric_1_a_clk, |
|---|
| 573 | +}; |
|---|
| 574 | + |
|---|
| 575 | +static const struct rpm_clk_desc rpm_clk_ipq806x = { |
|---|
| 576 | + .clks = ipq806x_clks, |
|---|
| 577 | + .num_clks = ARRAY_SIZE(ipq806x_clks), |
|---|
| 578 | +}; |
|---|
| 579 | + |
|---|
| 554 | 580 | static const struct of_device_id rpm_clk_match_table[] = { |
|---|
| 555 | 581 | { .compatible = "qcom,rpmcc-msm8660", .data = &rpm_clk_msm8660 }, |
|---|
| 556 | 582 | { .compatible = "qcom,rpmcc-apq8060", .data = &rpm_clk_msm8660 }, |
|---|
| 557 | 583 | { .compatible = "qcom,rpmcc-apq8064", .data = &rpm_clk_apq8064 }, |
|---|
| 584 | + { .compatible = "qcom,rpmcc-ipq806x", .data = &rpm_clk_ipq806x }, |
|---|
| 558 | 585 | { } |
|---|
| 559 | 586 | }; |
|---|
| 560 | 587 | MODULE_DEVICE_TABLE(of, rpm_clk_match_table); |
|---|