Skip to content

Commit 505fb25

Browse files
lumagvinodkoul
authored andcommitted
dt-bindings: phy: migrate QMP PCIe PHY bindings to qcom,sc8280xp-qmp-pcie-phy.yaml
Migrate legacy bindings (described in qcom,ipq8074-qmp-pcie-phy.yaml) to qcom,sc8280xp-qmp-pcie-phy.yaml. This removes a need to declare the child PHY node or split resource regions. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20230820142035.89903-2-dmitry.baryshkov@linaro.org Signed-off-by: Vinod Koul <vkoul@kernel.org>
1 parent 9f266c1 commit 505fb25

File tree

3 files changed

+161
-246
lines changed

3 files changed

+161
-246
lines changed

Documentation/devicetree/bindings/phy/qcom,ipq8074-qmp-pcie-phy.yaml

Lines changed: 35 additions & 243 deletions
Original file line numberDiff line numberDiff line change
@@ -13,287 +13,79 @@ description:
1313
QMP PHY controller supports physical layer functionality for a number of
1414
controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
1515

16-
Note that these bindings are for SoCs up to SC8180X. For newer SoCs, see
17-
qcom,sc8280xp-qmp-pcie-phy.yaml.
18-
1916
properties:
2017
compatible:
2118
enum:
2219
- qcom,ipq6018-qmp-pcie-phy
2320
- qcom,ipq8074-qmp-gen3-pcie-phy
2421
- qcom,ipq8074-qmp-pcie-phy
25-
- qcom,msm8998-qmp-pcie-phy
26-
- qcom,sc8180x-qmp-pcie-phy
27-
- qcom,sdm845-qhp-pcie-phy
28-
- qcom,sdm845-qmp-pcie-phy
29-
- qcom,sdx55-qmp-pcie-phy
30-
- qcom,sm8250-qmp-gen3x1-pcie-phy
31-
- qcom,sm8250-qmp-gen3x2-pcie-phy
32-
- qcom,sm8250-qmp-modem-pcie-phy
33-
- qcom,sm8450-qmp-gen3x1-pcie-phy
34-
- qcom,sm8450-qmp-gen4x2-pcie-phy
3522

3623
reg:
3724
items:
3825
- description: serdes
3926

40-
"#address-cells":
41-
enum: [ 1, 2 ]
42-
43-
"#size-cells":
44-
enum: [ 1, 2 ]
45-
46-
ranges: true
47-
4827
clocks:
49-
minItems: 2
50-
maxItems: 4
28+
maxItems: 3
5129

5230
clock-names:
53-
minItems: 2
54-
maxItems: 4
31+
items:
32+
- const: aux
33+
- const: cfg_ahb
34+
- const: pipe
5535

5636
resets:
57-
minItems: 1
5837
maxItems: 2
5938

6039
reset-names:
61-
minItems: 1
62-
maxItems: 2
63-
64-
vdda-phy-supply: true
65-
66-
vdda-pll-supply: true
67-
68-
vddp-ref-clk-supply: true
69-
70-
patternProperties:
71-
"^phy@[0-9a-f]+$":
72-
type: object
73-
description: single PHY-provider child node
74-
properties:
75-
reg:
76-
minItems: 3
77-
maxItems: 6
78-
79-
clocks:
80-
items:
81-
- description: PIPE clock
82-
83-
clock-names:
84-
deprecated: true
85-
items:
86-
- const: pipe0
87-
88-
"#clock-cells":
89-
const: 0
90-
91-
clock-output-names:
92-
maxItems: 1
40+
items:
41+
- const: phy
42+
- const: common
9343

94-
"#phy-cells":
95-
const: 0
44+
"#clock-cells":
45+
const: 0
9646

97-
required:
98-
- reg
99-
- clocks
100-
- "#clock-cells"
101-
- clock-output-names
102-
- "#phy-cells"
47+
clock-output-names:
48+
maxItems: 1
10349

104-
additionalProperties: false
50+
"#phy-cells":
51+
const: 0
10552

10653
required:
10754
- compatible
10855
- reg
109-
- "#address-cells"
110-
- "#size-cells"
111-
- ranges
11256
- clocks
11357
- clock-names
11458
- resets
11559
- reset-names
60+
- "#clock-cells"
61+
- clock-output-names
62+
- "#phy-cells"
11663

11764
additionalProperties: false
11865

119-
allOf:
120-
- if:
121-
properties:
122-
compatible:
123-
contains:
124-
enum:
125-
- qcom,msm8998-qmp-pcie-phy
126-
then:
127-
properties:
128-
clocks:
129-
maxItems: 3
130-
clock-names:
131-
items:
132-
- const: aux
133-
- const: cfg_ahb
134-
- const: ref
135-
resets:
136-
maxItems: 2
137-
reset-names:
138-
items:
139-
- const: phy
140-
- const: common
141-
required:
142-
- vdda-phy-supply
143-
- vdda-pll-supply
144-
145-
- if:
146-
properties:
147-
compatible:
148-
contains:
149-
enum:
150-
- qcom,ipq6018-qmp-pcie-phy
151-
- qcom,ipq8074-qmp-gen3-pcie-phy
152-
- qcom,ipq8074-qmp-pcie-phy
153-
then:
154-
properties:
155-
clocks:
156-
maxItems: 2
157-
clock-names:
158-
items:
159-
- const: aux
160-
- const: cfg_ahb
161-
resets:
162-
maxItems: 2
163-
reset-names:
164-
items:
165-
- const: phy
166-
- const: common
167-
168-
- if:
169-
properties:
170-
compatible:
171-
contains:
172-
enum:
173-
- qcom,sc8180x-qmp-pcie-phy
174-
- qcom,sdm845-qhp-pcie-phy
175-
- qcom,sdm845-qmp-pcie-phy
176-
- qcom,sdx55-qmp-pcie-phy
177-
- qcom,sm8250-qmp-gen3x1-pcie-phy
178-
- qcom,sm8250-qmp-gen3x2-pcie-phy
179-
- qcom,sm8250-qmp-modem-pcie-phy
180-
- qcom,sm8450-qmp-gen3x1-pcie-phy
181-
- qcom,sm8450-qmp-gen4x2-pcie-phy
182-
then:
183-
properties:
184-
clocks:
185-
maxItems: 4
186-
clock-names:
187-
items:
188-
- const: aux
189-
- const: cfg_ahb
190-
- const: ref
191-
- const: refgen
192-
resets:
193-
maxItems: 1
194-
reset-names:
195-
items:
196-
- const: phy
197-
required:
198-
- vdda-phy-supply
199-
- vdda-pll-supply
200-
201-
- if:
202-
properties:
203-
compatible:
204-
contains:
205-
enum:
206-
- qcom,sc8180x-qmp-pcie-phy
207-
- qcom,sm8250-qmp-gen3x2-pcie-phy
208-
- qcom,sm8250-qmp-modem-pcie-phy
209-
- qcom,sm8450-qmp-gen4x2-pcie-phy
210-
then:
211-
patternProperties:
212-
"^phy@[0-9a-f]+$":
213-
properties:
214-
reg:
215-
items:
216-
- description: TX lane 1
217-
- description: RX lane 1
218-
- description: PCS
219-
- description: TX lane 2
220-
- description: RX lane 2
221-
- description: PCS_MISC
222-
223-
- if:
224-
properties:
225-
compatible:
226-
contains:
227-
enum:
228-
- qcom,sdm845-qmp-pcie-phy
229-
- qcom,sdx55-qmp-pcie-phy
230-
- qcom,sm8250-qmp-gen3x1-pcie-phy
231-
- qcom,sm8450-qmp-gen3x1-pcie-phy
232-
then:
233-
patternProperties:
234-
"^phy@[0-9a-f]+$":
235-
properties:
236-
reg:
237-
items:
238-
- description: TX
239-
- description: RX
240-
- description: PCS
241-
- description: PCS_MISC
242-
243-
- if:
244-
properties:
245-
compatible:
246-
contains:
247-
enum:
248-
- qcom,ipq6018-qmp-pcie-phy
249-
- qcom,ipq8074-qmp-pcie-phy
250-
- qcom,msm8998-qmp-pcie-phy
251-
- qcom,sdm845-qhp-pcie-phy
252-
then:
253-
patternProperties:
254-
"^phy@[0-9a-f]+$":
255-
properties:
256-
reg:
257-
items:
258-
- description: TX
259-
- description: RX
260-
- description: PCS
261-
26266
examples:
26367
- |
264-
#include <dt-bindings/clock/qcom,gcc-sm8250.h>
265-
phy-wrapper@1c0e000 {
266-
compatible = "qcom,sm8250-qmp-gen3x2-pcie-phy";
267-
reg = <0x01c0e000 0x1c0>;
268-
#address-cells = <1>;
269-
#size-cells = <1>;
270-
ranges = <0x0 0x01c0e000 0x1000>;
271-
272-
clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
273-
<&gcc GCC_PCIE_1_CFG_AHB_CLK>,
274-
<&gcc GCC_PCIE_WIGIG_CLKREF_EN>,
275-
<&gcc GCC_PCIE1_PHY_REFGEN_CLK>;
276-
clock-names = "aux", "cfg_ahb", "ref", "refgen";
277-
278-
resets = <&gcc GCC_PCIE_1_PHY_BCR>;
279-
reset-names = "phy";
68+
#include <dt-bindings/clock/qcom,gcc-ipq6018.h>
69+
#include <dt-bindings/reset/qcom,gcc-ipq6018.h>
28070
281-
vdda-phy-supply = <&vreg_l10c_0p88>;
282-
vdda-pll-supply = <&vreg_l6b_1p2>;
71+
phy@84000 {
72+
compatible = "qcom,ipq6018-qmp-pcie-phy";
73+
reg = <0x0 0x00084000 0x0 0x1000>;
28374
284-
phy@200 {
285-
reg = <0x200 0x170>,
286-
<0x400 0x200>,
287-
<0xa00 0x1f0>,
288-
<0x600 0x170>,
289-
<0x800 0x200>,
290-
<0xe00 0xf4>;
75+
clocks = <&gcc GCC_PCIE0_AUX_CLK>,
76+
<&gcc GCC_PCIE0_AHB_CLK>,
77+
<&gcc GCC_PCIE0_PIPE_CLK>;
78+
clock-names = "aux",
79+
"cfg_ahb",
80+
"pipe";
29181
292-
clocks = <&gcc GCC_PCIE_1_PIPE_CLK>;
82+
clock-output-names = "gcc_pcie0_pipe_clk_src";
83+
#clock-cells = <0>;
29384
294-
#clock-cells = <0>;
295-
clock-output-names = "pcie_1_pipe_clk";
85+
#phy-cells = <0>;
29686
297-
#phy-cells = <0>;
298-
};
87+
resets = <&gcc GCC_PCIE0_PHY_BCR>,
88+
<&gcc GCC_PCIE0PHY_PHY_BCR>;
89+
reset-names = "phy",
90+
"common";
29991
};

0 commit comments

Comments
 (0)