File Index
Files and directories
Sign in
FILE

fsl,imx8qm-hsio.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/phy/fsl,imx8qm-hsio.yaml YAML
  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
  7title: Freescale i.MX8QM SoC series High Speed IO(HSIO) SERDES PHY
  8
  9maintainers:
 10  - Richard Zhu <hongxing.zhu@nxp.com>
 11
 12properties:
 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
 82required:
 83  - compatible
 84  - reg
 85  - reg-names
 86  - "#phy-cells"
 87  - clocks
 88  - clock-names
 89  - fsl,hsio-cfg
 90
 91allOf:
 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
137additionalProperties: false
138
139examples:
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...
~/ Read-only file preview.