Skip to content

Commit c3ad321

Browse files
committed
Merge branches 'clk-cleanup', 'clk-renesas', 'clk-socfpga', 'clk-allwinner' and 'clk-qcom' into clk-next
- Use clk_hw pointers in socfpga driver - Cleanup parent data in qcom clk drivers * clk-cleanup: clk: Drop double "if" in clk_core_determine_round_nolock() comment clk: at91: Trivial typo fixes in the file sama7g5.c clk: use clk_core_enable_lock() a bit more * clk-renesas: clk: renesas: Zero init clk_init_data clk: renesas: Couple of spelling fixes clk: renesas: r8a779a0: Add CMT clocks clk: renesas: r8a7795: Add TMU clocks clk: renesas: r8a779a0: Add TSC clock clk: renesas: r8a779a0: Add TMU clocks clk: renesas: r8a77965: Add DAB clock clk: renesas: r8a77990: Add DAB clock * clk-socfpga: clk: socfpga: remove redundant initialization of variable div clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return clk: socfpga: Fix code formatting clk: socfpga: Convert to s10/agilex/n5x to use clk_hw clk: socfpga: arria10: convert to use clk_hw clk: socfpga: use clk_hw_register for a5/c5 * clk-allwinner: clk: sunxi: Demote non-conformant kernel-doc headers clk: sunxi-ng: v3s: use sigma-delta modulation for audio-pll * clk-qcom: (45 commits) clk: qcom: rpmh: add support for SDX55 rpmh IPA clock clk: qcom: gcc-sdm845: get rid of the test clock clk: qcom: convert SDM845 Global Clock Controller to parent_data dt-bindings: clock: separate SDM845 GCC clock bindings clk: qcom: apss-ipq-pll: Add missing MODULE_DEVICE_TABLE clk: qcom: a53-pll: Add missing MODULE_DEVICE_TABLE clk: qcom: a7-pll: Add missing MODULE_DEVICE_TABLE clk: qcom: gcc-sm8350: use ARRAY_SIZE instead of specifying num_parents clk: qcom: gcc-sm8250: use ARRAY_SIZE instead of specifying num_parents clk: qcom: gcc-sm8150: use ARRAY_SIZE instead of specifying num_parents clk: qcom: gcc-sc8180x: use ARRAY_SIZE instead of specifying num_parents clk: qcom: gcc-sc7180: use ARRAY_SIZE instead of specifying num_parents clk: qcom: videocc-sm8250: use parent_hws where possible clk: qcom: videocc-sm8150: use parent_hws where possible clk: qcom: gpucc-sm8250: use parent_hws where possible clk: qcom: gpucc-sm8150: use parent_hws where possible clk: qcom: gcc-sm8350: use parent_hws where possible clk: qcom: gcc-sm8250: use parent_hws where possible clk: qcom: gcc-sm8150: use parent_hws where possible clk: qcom: gcc-sdx55: use parent_hws where possible ...
5 parents e27453a + 3338fe5 + 52d1a8d + 7c09e60 + b2150ca commit c3ad321

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1705
-1614
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# SPDX-License-Identifier: GPL-2.0-only
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/qcom,gcc-sdm845.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Global Clock & Reset Controller Binding
8+
9+
maintainers:
10+
- Stephen Boyd <[email protected]>
11+
- Taniya Das <[email protected]>
12+
13+
description: |
14+
Qualcomm global clock control module which supports the clocks, resets and
15+
power domains on SDM845
16+
17+
See also:
18+
- dt-bindings/clock/qcom,gcc-sdm845.h
19+
20+
properties:
21+
compatible:
22+
const: qcom,gcc-sdm845
23+
24+
clocks:
25+
items:
26+
- description: Board XO source
27+
- description: Board active XO source
28+
- description: Sleep clock source
29+
- description: PCIE 0 Pipe clock source
30+
- description: PCIE 1 Pipe clock source
31+
32+
clock-names:
33+
items:
34+
- const: bi_tcxo
35+
- const: bi_tcxo_ao
36+
- const: sleep_clk
37+
- const: pcie_0_pipe_clk
38+
- const: pcie_1_pipe_clk
39+
40+
'#clock-cells':
41+
const: 1
42+
43+
'#reset-cells':
44+
const: 1
45+
46+
'#power-domain-cells':
47+
const: 1
48+
49+
reg:
50+
maxItems: 1
51+
52+
protected-clocks:
53+
description:
54+
Protected clock specifier list as per common clock binding.
55+
56+
required:
57+
- compatible
58+
- reg
59+
- '#clock-cells'
60+
- '#reset-cells'
61+
- '#power-domain-cells'
62+
63+
additionalProperties: false
64+
65+
examples:
66+
# Example for GCC for SDM845:
67+
- |
68+
#include <dt-bindings/clock/qcom,rpmh.h>
69+
clock-controller@100000 {
70+
compatible = "qcom,gcc-sdm845";
71+
reg = <0x100000 0x1f0000>;
72+
clocks = <&rpmhcc RPMH_CXO_CLK>,
73+
<&rpmhcc RPMH_CXO_CLK_A>,
74+
<&sleep_clk>,
75+
<&pcie0_lane>,
76+
<&pcie1_lane>;
77+
clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk", "pcie_0_pipe_clk", "pcie_1_pipe_clk";
78+
#clock-cells = <1>;
79+
#reset-cells = <1>;
80+
#power-domain-cells = <1>;
81+
};
82+
...

Documentation/devicetree/bindings/clock/qcom,gcc.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ description: |
3232
- dt-bindings/clock/qcom,gcc-mdm9615.h
3333
- dt-bindings/reset/qcom,gcc-mdm9615.h
3434
- dt-bindings/clock/qcom,gcc-sdm660.h (qcom,gcc-sdm630 and qcom,gcc-sdm660)
35-
- dt-bindings/clock/qcom,gcc-sdm845.h
3635
3736
properties:
3837
compatible:
@@ -52,7 +51,6 @@ properties:
5251
- qcom,gcc-mdm9615
5352
- qcom,gcc-sdm630
5453
- qcom,gcc-sdm660
55-
- qcom,gcc-sdm845
5654

5755
'#clock-cells':
5856
const: 1

drivers/clk/qcom/a53-pll.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ static const struct of_device_id qcom_a53pll_match_table[] = {
9393
{ .compatible = "qcom,msm8916-a53pll" },
9494
{ }
9595
};
96+
MODULE_DEVICE_TABLE(of, qcom_a53pll_match_table);
9697

9798
static struct platform_driver qcom_a53pll_driver = {
9899
.probe = qcom_a53pll_probe,

drivers/clk/qcom/a7-pll.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ static const struct of_device_id qcom_a7pll_match_table[] = {
8686
{ .compatible = "qcom,sdx55-a7pll" },
8787
{ }
8888
};
89+
MODULE_DEVICE_TABLE(of, qcom_a7pll_match_table);
8990

9091
static struct platform_driver qcom_a7pll_driver = {
9192
.probe = qcom_a7pll_probe,

drivers/clk/qcom/apss-ipq-pll.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ static const struct of_device_id apss_ipq_pll_match_table[] = {
8181
{ .compatible = "qcom,ipq6018-a53pll" },
8282
{ }
8383
};
84+
MODULE_DEVICE_TABLE(of, apss_ipq_pll_match_table);
8485

8586
static struct platform_driver apss_ipq_pll_driver = {
8687
.probe = apss_ipq_pll_probe,

drivers/clk/qcom/camcc-sc7180.c

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ static struct clk_rcg2 cam_cc_bps_clk_src = {
304304
.name = "cam_cc_bps_clk_src",
305305
.parent_data = cam_cc_parent_data_2,
306306
.num_parents = 5,
307-
.ops = &clk_rcg2_ops,
307+
.ops = &clk_rcg2_shared_ops,
308308
},
309309
};
310310

@@ -325,7 +325,7 @@ static struct clk_rcg2 cam_cc_cci_0_clk_src = {
325325
.name = "cam_cc_cci_0_clk_src",
326326
.parent_data = cam_cc_parent_data_5,
327327
.num_parents = 3,
328-
.ops = &clk_rcg2_ops,
328+
.ops = &clk_rcg2_shared_ops,
329329
},
330330
};
331331

@@ -339,7 +339,7 @@ static struct clk_rcg2 cam_cc_cci_1_clk_src = {
339339
.name = "cam_cc_cci_1_clk_src",
340340
.parent_data = cam_cc_parent_data_5,
341341
.num_parents = 3,
342-
.ops = &clk_rcg2_ops,
342+
.ops = &clk_rcg2_shared_ops,
343343
},
344344
};
345345

@@ -360,7 +360,7 @@ static struct clk_rcg2 cam_cc_cphy_rx_clk_src = {
360360
.name = "cam_cc_cphy_rx_clk_src",
361361
.parent_data = cam_cc_parent_data_3,
362362
.num_parents = 6,
363-
.ops = &clk_rcg2_ops,
363+
.ops = &clk_rcg2_shared_ops,
364364
},
365365
};
366366

@@ -379,7 +379,7 @@ static struct clk_rcg2 cam_cc_csi0phytimer_clk_src = {
379379
.name = "cam_cc_csi0phytimer_clk_src",
380380
.parent_data = cam_cc_parent_data_0,
381381
.num_parents = 4,
382-
.ops = &clk_rcg2_ops,
382+
.ops = &clk_rcg2_shared_ops,
383383
},
384384
};
385385

@@ -393,7 +393,7 @@ static struct clk_rcg2 cam_cc_csi1phytimer_clk_src = {
393393
.name = "cam_cc_csi1phytimer_clk_src",
394394
.parent_data = cam_cc_parent_data_0,
395395
.num_parents = 4,
396-
.ops = &clk_rcg2_ops,
396+
.ops = &clk_rcg2_shared_ops,
397397
},
398398
};
399399

@@ -407,7 +407,7 @@ static struct clk_rcg2 cam_cc_csi2phytimer_clk_src = {
407407
.name = "cam_cc_csi2phytimer_clk_src",
408408
.parent_data = cam_cc_parent_data_0,
409409
.num_parents = 4,
410-
.ops = &clk_rcg2_ops,
410+
.ops = &clk_rcg2_shared_ops,
411411
},
412412
};
413413

@@ -421,7 +421,7 @@ static struct clk_rcg2 cam_cc_csi3phytimer_clk_src = {
421421
.name = "cam_cc_csi3phytimer_clk_src",
422422
.parent_data = cam_cc_parent_data_0,
423423
.num_parents = 4,
424-
.ops = &clk_rcg2_ops,
424+
.ops = &clk_rcg2_shared_ops,
425425
},
426426
};
427427

@@ -443,7 +443,7 @@ static struct clk_rcg2 cam_cc_fast_ahb_clk_src = {
443443
.name = "cam_cc_fast_ahb_clk_src",
444444
.parent_data = cam_cc_parent_data_0,
445445
.num_parents = 4,
446-
.ops = &clk_rcg2_ops,
446+
.ops = &clk_rcg2_shared_ops,
447447
},
448448
};
449449

@@ -466,7 +466,7 @@ static struct clk_rcg2 cam_cc_icp_clk_src = {
466466
.name = "cam_cc_icp_clk_src",
467467
.parent_data = cam_cc_parent_data_2,
468468
.num_parents = 5,
469-
.ops = &clk_rcg2_ops,
469+
.ops = &clk_rcg2_shared_ops,
470470
},
471471
};
472472

@@ -488,7 +488,7 @@ static struct clk_rcg2 cam_cc_ife_0_clk_src = {
488488
.name = "cam_cc_ife_0_clk_src",
489489
.parent_data = cam_cc_parent_data_4,
490490
.num_parents = 4,
491-
.ops = &clk_rcg2_ops,
491+
.ops = &clk_rcg2_shared_ops,
492492
},
493493
};
494494

@@ -510,7 +510,7 @@ static struct clk_rcg2 cam_cc_ife_0_csid_clk_src = {
510510
.name = "cam_cc_ife_0_csid_clk_src",
511511
.parent_data = cam_cc_parent_data_3,
512512
.num_parents = 6,
513-
.ops = &clk_rcg2_ops,
513+
.ops = &clk_rcg2_shared_ops,
514514
},
515515
};
516516

@@ -524,7 +524,7 @@ static struct clk_rcg2 cam_cc_ife_1_clk_src = {
524524
.name = "cam_cc_ife_1_clk_src",
525525
.parent_data = cam_cc_parent_data_4,
526526
.num_parents = 4,
527-
.ops = &clk_rcg2_ops,
527+
.ops = &clk_rcg2_shared_ops,
528528
},
529529
};
530530

@@ -538,7 +538,7 @@ static struct clk_rcg2 cam_cc_ife_1_csid_clk_src = {
538538
.name = "cam_cc_ife_1_csid_clk_src",
539539
.parent_data = cam_cc_parent_data_3,
540540
.num_parents = 6,
541-
.ops = &clk_rcg2_ops,
541+
.ops = &clk_rcg2_shared_ops,
542542
},
543543
};
544544

@@ -553,7 +553,7 @@ static struct clk_rcg2 cam_cc_ife_lite_clk_src = {
553553
.parent_data = cam_cc_parent_data_4,
554554
.num_parents = 4,
555555
.flags = CLK_SET_RATE_PARENT,
556-
.ops = &clk_rcg2_ops,
556+
.ops = &clk_rcg2_shared_ops,
557557
},
558558
};
559559

@@ -567,7 +567,7 @@ static struct clk_rcg2 cam_cc_ife_lite_csid_clk_src = {
567567
.name = "cam_cc_ife_lite_csid_clk_src",
568568
.parent_data = cam_cc_parent_data_3,
569569
.num_parents = 6,
570-
.ops = &clk_rcg2_ops,
570+
.ops = &clk_rcg2_shared_ops,
571571
},
572572
};
573573

@@ -590,7 +590,7 @@ static struct clk_rcg2 cam_cc_ipe_0_clk_src = {
590590
.name = "cam_cc_ipe_0_clk_src",
591591
.parent_data = cam_cc_parent_data_2,
592592
.num_parents = 5,
593-
.ops = &clk_rcg2_ops,
593+
.ops = &clk_rcg2_shared_ops,
594594
},
595595
};
596596

@@ -613,7 +613,7 @@ static struct clk_rcg2 cam_cc_jpeg_clk_src = {
613613
.name = "cam_cc_jpeg_clk_src",
614614
.parent_data = cam_cc_parent_data_2,
615615
.num_parents = 5,
616-
.ops = &clk_rcg2_ops,
616+
.ops = &clk_rcg2_shared_ops,
617617
},
618618
};
619619

@@ -635,7 +635,7 @@ static struct clk_rcg2 cam_cc_lrme_clk_src = {
635635
.name = "cam_cc_lrme_clk_src",
636636
.parent_data = cam_cc_parent_data_6,
637637
.num_parents = 5,
638-
.ops = &clk_rcg2_ops,
638+
.ops = &clk_rcg2_shared_ops,
639639
},
640640
};
641641

@@ -656,7 +656,7 @@ static struct clk_rcg2 cam_cc_mclk0_clk_src = {
656656
.name = "cam_cc_mclk0_clk_src",
657657
.parent_data = cam_cc_parent_data_1,
658658
.num_parents = 3,
659-
.ops = &clk_rcg2_ops,
659+
.ops = &clk_rcg2_shared_ops,
660660
},
661661
};
662662

@@ -670,7 +670,7 @@ static struct clk_rcg2 cam_cc_mclk1_clk_src = {
670670
.name = "cam_cc_mclk1_clk_src",
671671
.parent_data = cam_cc_parent_data_1,
672672
.num_parents = 3,
673-
.ops = &clk_rcg2_ops,
673+
.ops = &clk_rcg2_shared_ops,
674674
},
675675
};
676676

@@ -684,7 +684,7 @@ static struct clk_rcg2 cam_cc_mclk2_clk_src = {
684684
.name = "cam_cc_mclk2_clk_src",
685685
.parent_data = cam_cc_parent_data_1,
686686
.num_parents = 3,
687-
.ops = &clk_rcg2_ops,
687+
.ops = &clk_rcg2_shared_ops,
688688
},
689689
};
690690

@@ -698,7 +698,7 @@ static struct clk_rcg2 cam_cc_mclk3_clk_src = {
698698
.name = "cam_cc_mclk3_clk_src",
699699
.parent_data = cam_cc_parent_data_1,
700700
.num_parents = 3,
701-
.ops = &clk_rcg2_ops,
701+
.ops = &clk_rcg2_shared_ops,
702702
},
703703
};
704704

@@ -712,7 +712,7 @@ static struct clk_rcg2 cam_cc_mclk4_clk_src = {
712712
.name = "cam_cc_mclk4_clk_src",
713713
.parent_data = cam_cc_parent_data_1,
714714
.num_parents = 3,
715-
.ops = &clk_rcg2_ops,
715+
.ops = &clk_rcg2_shared_ops,
716716
},
717717
};
718718

@@ -732,7 +732,7 @@ static struct clk_rcg2 cam_cc_slow_ahb_clk_src = {
732732
.parent_data = cam_cc_parent_data_0,
733733
.num_parents = 4,
734734
.flags = CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE,
735-
.ops = &clk_rcg2_ops,
735+
.ops = &clk_rcg2_shared_ops,
736736
},
737737
};
738738

drivers/clk/qcom/clk-rcg2.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -730,7 +730,8 @@ static int clk_gfx3d_determine_rate(struct clk_hw *hw,
730730
struct clk_rate_request parent_req = { };
731731
struct clk_rcg2_gfx3d *cgfx = to_clk_rcg2_gfx3d(hw);
732732
struct clk_hw *xo, *p0, *p1, *p2;
733-
unsigned long request, p0_rate;
733+
unsigned long p0_rate;
734+
u8 mux_div = cgfx->div;
734735
int ret;
735736

736737
p0 = cgfx->hws[0];
@@ -750,22 +751,23 @@ static int clk_gfx3d_determine_rate(struct clk_hw *hw,
750751
return 0;
751752
}
752753

753-
request = req->rate;
754-
if (cgfx->div > 1)
755-
parent_req.rate = request = request * cgfx->div;
754+
if (mux_div == 0)
755+
mux_div = 1;
756+
757+
parent_req.rate = req->rate * mux_div;
756758

757759
/* This has to be a fixed rate PLL */
758760
p0_rate = clk_hw_get_rate(p0);
759761

760-
if (request == p0_rate) {
762+
if (parent_req.rate == p0_rate) {
761763
req->rate = req->best_parent_rate = p0_rate;
762764
req->best_parent_hw = p0;
763765
return 0;
764766
}
765767

766768
if (req->best_parent_hw == p0) {
767769
/* Are we going back to a previously used rate? */
768-
if (clk_hw_get_rate(p2) == request)
770+
if (clk_hw_get_rate(p2) == parent_req.rate)
769771
req->best_parent_hw = p2;
770772
else
771773
req->best_parent_hw = p1;
@@ -780,8 +782,7 @@ static int clk_gfx3d_determine_rate(struct clk_hw *hw,
780782
return ret;
781783

782784
req->rate = req->best_parent_rate = parent_req.rate;
783-
if (cgfx->div > 1)
784-
req->rate /= cgfx->div;
785+
req->rate /= mux_div;
785786

786787
return 0;
787788
}

0 commit comments

Comments
 (0)