Skip to content

Commit 7c46101

Browse files
Richard Zhuvinodkoul
authored andcommitted
dt-bindings: phy: Add i.MX8Q HSIO SerDes PHY binding
Add i.MX8QM and i.MX8QXP HSIO SerDes PHY binding. Introduce one HSIO configuration 'fsl,hsio-cfg', which need be set at initialization according to board design. Signed-off-by: Richard Zhu <[email protected]> Reviewed-by: Conor Dooley <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Vinod Koul <[email protected]>
1 parent d3ab795 commit 7c46101

File tree

1 file changed

+164
-0
lines changed

1 file changed

+164
-0
lines changed
Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/phy/fsl,imx8qm-hsio.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Freescale i.MX8QM SoC series High Speed IO(HSIO) SERDES PHY
8+
9+
maintainers:
10+
- Richard Zhu <[email protected]>
11+
12+
properties:
13+
compatible:
14+
enum:
15+
- fsl,imx8qm-hsio
16+
- fsl,imx8qxp-hsio
17+
reg:
18+
items:
19+
- description: Base address and length of the PHY block
20+
- description: HSIO control and status registers(CSR) of the PHY
21+
- description: HSIO CSR of the controller bound to the PHY
22+
- description: HSIO CSR for MISC
23+
24+
reg-names:
25+
items:
26+
- const: reg
27+
- const: phy
28+
- const: ctrl
29+
- const: misc
30+
31+
"#phy-cells":
32+
const: 3
33+
description:
34+
The first defines lane index.
35+
The second defines the type of the PHY refer to the include phy.h.
36+
The third defines the controller index, indicated which controller
37+
is bound to the lane.
38+
39+
clocks:
40+
minItems: 5
41+
maxItems: 14
42+
43+
clock-names:
44+
minItems: 5
45+
maxItems: 14
46+
47+
fsl,hsio-cfg:
48+
description: |
49+
Specifies the use case of the HSIO module in the hardware design.
50+
Regarding the design of i.MX8QM HSIO subsystem, HSIO module can be
51+
confiured as following three use cases.
52+
+---------------------------------------+
53+
| | i.MX8QM |
54+
|------------------|--------------------|
55+
| | Lane0| Lane1| Lane2|
56+
|------------------|------|------|------|
57+
| pciea-x2-sata | PCIEA| PCIEA| SATA |
58+
|------------------|------|------|------|
59+
| pciea-x2-pcieb | PCIEA| PCIEA| PCIEB|
60+
|------------------|------|------|------|
61+
| pciea-pcieb-sata | PCIEA| PCIEB| SATA |
62+
+---------------------------------------+
63+
$ref: /schemas/types.yaml#/definitions/string
64+
enum: [ pciea-x2-sata, pciea-x2-pcieb, pciea-pcieb-sata]
65+
default: pciea-pcieb-sata
66+
67+
fsl,refclk-pad-mode:
68+
description:
69+
Specifies the mode of the refclk pad used. INPUT(PHY refclock is
70+
provided externally via the refclk pad) or OUTPUT(PHY refclock is
71+
derived from SoC internal source and provided on the refclk pad).
72+
This property not exists means unused(PHY refclock is derived from
73+
SoC internal source).
74+
$ref: /schemas/types.yaml#/definitions/string
75+
enum: [ input, output, unused ]
76+
default: unused
77+
78+
power-domains:
79+
minItems: 1
80+
maxItems: 2
81+
82+
required:
83+
- compatible
84+
- reg
85+
- reg-names
86+
- "#phy-cells"
87+
- clocks
88+
- clock-names
89+
- fsl,hsio-cfg
90+
91+
allOf:
92+
- if:
93+
properties:
94+
compatible:
95+
contains:
96+
enum:
97+
- fsl,imx8qxp-hsio
98+
then:
99+
properties:
100+
clock-names:
101+
items:
102+
- const: pclk0
103+
- const: apb_pclk0
104+
- const: phy0_crr
105+
- const: ctl0_crr
106+
- const: misc_crr
107+
power-domains:
108+
maxItems: 1
109+
110+
- if:
111+
properties:
112+
compatible:
113+
contains:
114+
enum:
115+
- fsl,imx8qm-hsio
116+
then:
117+
properties:
118+
clock-names:
119+
items:
120+
- const: pclk0
121+
- const: pclk1
122+
- const: apb_pclk0
123+
- const: apb_pclk1
124+
- const: pclk2
125+
- const: epcs_tx
126+
- const: epcs_rx
127+
- const: apb_pclk2
128+
- const: phy0_crr
129+
- const: phy1_crr
130+
- const: ctl0_crr
131+
- const: ctl1_crr
132+
- const: ctl2_crr
133+
- const: misc_crr
134+
power-domains:
135+
minItems: 2
136+
137+
additionalProperties: false
138+
139+
examples:
140+
- |
141+
#include <dt-bindings/clock/imx8-clock.h>
142+
#include <dt-bindings/clock/imx8-lpcg.h>
143+
#include <dt-bindings/firmware/imx/rsrc.h>
144+
#include <dt-bindings/phy/phy-imx8-pcie.h>
145+
146+
phy@5f1a0000 {
147+
compatible = "fsl,imx8qxp-hsio";
148+
reg = <0x5f1a0000 0x10000>,
149+
<0x5f120000 0x10000>,
150+
<0x5f140000 0x10000>,
151+
<0x5f160000 0x10000>;
152+
reg-names = "reg", "phy", "ctrl", "misc";
153+
clocks = <&phyx1_lpcg IMX_LPCG_CLK_0>,
154+
<&phyx1_lpcg IMX_LPCG_CLK_4>,
155+
<&phyx1_crr1_lpcg IMX_LPCG_CLK_4>,
156+
<&pcieb_crr3_lpcg IMX_LPCG_CLK_4>,
157+
<&misc_crr5_lpcg IMX_LPCG_CLK_4>;
158+
clock-names = "pclk0", "apb_pclk0", "phy0_crr", "ctl0_crr", "misc_crr";
159+
power-domains = <&pd IMX_SC_R_SERDES_1>;
160+
#phy-cells = <3>;
161+
fsl,hsio-cfg = "pciea-pcieb-sata";
162+
fsl,refclk-pad-mode = "input";
163+
};
164+
...

0 commit comments

Comments
 (0)