162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/phy/fsl,imx8-pcie-phy.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Freescale i.MX8 SoC series PCIe PHY
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Richard Zhu <hongxing.zhu@nxp.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciproperties:
1362306a36Sopenharmony_ci  "#phy-cells":
1462306a36Sopenharmony_ci    const: 0
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci  compatible:
1762306a36Sopenharmony_ci    enum:
1862306a36Sopenharmony_ci      - fsl,imx8mm-pcie-phy
1962306a36Sopenharmony_ci      - fsl,imx8mp-pcie-phy
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci  reg:
2262306a36Sopenharmony_ci    maxItems: 1
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  clocks:
2562306a36Sopenharmony_ci    maxItems: 1
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  clock-names:
2862306a36Sopenharmony_ci    items:
2962306a36Sopenharmony_ci      - const: ref
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  resets:
3262306a36Sopenharmony_ci    minItems: 1
3362306a36Sopenharmony_ci    maxItems: 2
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  reset-names:
3662306a36Sopenharmony_ci    oneOf:
3762306a36Sopenharmony_ci      - items:          # for iMX8MM
3862306a36Sopenharmony_ci          - const: pciephy
3962306a36Sopenharmony_ci      - items:          # for IMX8MP
4062306a36Sopenharmony_ci          - const: pciephy
4162306a36Sopenharmony_ci          - const: perst
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  fsl,refclk-pad-mode:
4462306a36Sopenharmony_ci    description: |
4562306a36Sopenharmony_ci      Specifies the mode of the refclk pad used. It can be UNUSED(PHY
4662306a36Sopenharmony_ci      refclock is derived from SoC internal source), INPUT(PHY refclock
4762306a36Sopenharmony_ci      is provided externally via the refclk pad) or OUTPUT(PHY refclock
4862306a36Sopenharmony_ci      is derived from SoC internal source and provided on the refclk pad).
4962306a36Sopenharmony_ci      Refer include/dt-bindings/phy/phy-imx8-pcie.h for the constants
5062306a36Sopenharmony_ci      to be used.
5162306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
5262306a36Sopenharmony_ci    enum: [ 0, 1, 2 ]
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci  fsl,tx-deemph-gen1:
5562306a36Sopenharmony_ci    description: Gen1 De-emphasis value (optional).
5662306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
5762306a36Sopenharmony_ci    default: 0
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci  fsl,tx-deemph-gen2:
6062306a36Sopenharmony_ci    description: Gen2 De-emphasis value (optional).
6162306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
6262306a36Sopenharmony_ci    default: 0
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci  fsl,clkreq-unsupported:
6562306a36Sopenharmony_ci    type: boolean
6662306a36Sopenharmony_ci    description: A boolean property indicating the CLKREQ# signal is
6762306a36Sopenharmony_ci      not supported in the board design (optional)
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci  power-domains:
7062306a36Sopenharmony_ci    description: PCIe PHY  power domain (optional).
7162306a36Sopenharmony_ci    maxItems: 1
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_cirequired:
7462306a36Sopenharmony_ci  - "#phy-cells"
7562306a36Sopenharmony_ci  - compatible
7662306a36Sopenharmony_ci  - reg
7762306a36Sopenharmony_ci  - clocks
7862306a36Sopenharmony_ci  - clock-names
7962306a36Sopenharmony_ci  - fsl,refclk-pad-mode
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ciadditionalProperties: false
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciexamples:
8462306a36Sopenharmony_ci  - |
8562306a36Sopenharmony_ci    #include <dt-bindings/clock/imx8mm-clock.h>
8662306a36Sopenharmony_ci    #include <dt-bindings/phy/phy-imx8-pcie.h>
8762306a36Sopenharmony_ci    #include <dt-bindings/reset/imx8mq-reset.h>
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci    pcie_phy: pcie-phy@32f00000 {
9062306a36Sopenharmony_ci            compatible = "fsl,imx8mm-pcie-phy";
9162306a36Sopenharmony_ci            reg = <0x32f00000 0x10000>;
9262306a36Sopenharmony_ci            clocks = <&clk IMX8MM_CLK_PCIE1_PHY>;
9362306a36Sopenharmony_ci            clock-names = "ref";
9462306a36Sopenharmony_ci            assigned-clocks = <&clk IMX8MM_CLK_PCIE1_PHY>;
9562306a36Sopenharmony_ci            assigned-clock-rates = <100000000>;
9662306a36Sopenharmony_ci            assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_100M>;
9762306a36Sopenharmony_ci            resets = <&src IMX8MQ_RESET_PCIEPHY>;
9862306a36Sopenharmony_ci            reset-names = "pciephy";
9962306a36Sopenharmony_ci            fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
10062306a36Sopenharmony_ci            #phy-cells = <0>;
10162306a36Sopenharmony_ci    };
10262306a36Sopenharmony_ci...
103