162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci# Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
362306a36Sopenharmony_ci%YAML 1.2
462306a36Sopenharmony_ci---
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/pci/ti,j721e-pci-ep.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: TI J721E PCI EP (PCIe Wrapper)
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Kishon Vijay Abraham I <kishon@ti.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciallOf:
1462306a36Sopenharmony_ci  - $ref: cdns-pcie-ep.yaml#
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciproperties:
1762306a36Sopenharmony_ci  compatible:
1862306a36Sopenharmony_ci    oneOf:
1962306a36Sopenharmony_ci      - const: ti,j721e-pcie-ep
2062306a36Sopenharmony_ci      - description: PCIe EP controller in AM64
2162306a36Sopenharmony_ci        items:
2262306a36Sopenharmony_ci          - const: ti,am64-pcie-ep
2362306a36Sopenharmony_ci          - const: ti,j721e-pcie-ep
2462306a36Sopenharmony_ci      - description: PCIe EP controller in J7200
2562306a36Sopenharmony_ci        items:
2662306a36Sopenharmony_ci          - const: ti,j7200-pcie-ep
2762306a36Sopenharmony_ci          - const: ti,j721e-pcie-ep
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  reg:
3062306a36Sopenharmony_ci    maxItems: 4
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  reg-names:
3362306a36Sopenharmony_ci    items:
3462306a36Sopenharmony_ci      - const: intd_cfg
3562306a36Sopenharmony_ci      - const: user_cfg
3662306a36Sopenharmony_ci      - const: reg
3762306a36Sopenharmony_ci      - const: mem
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  ti,syscon-pcie-ctrl:
4062306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle-array
4162306a36Sopenharmony_ci    items:
4262306a36Sopenharmony_ci      - items:
4362306a36Sopenharmony_ci          - description: Phandle to the SYSCON entry
4462306a36Sopenharmony_ci          - description: pcie_ctrl register offset within SYSCON
4562306a36Sopenharmony_ci    description: Specifier for configuring PCIe mode and link speed.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci  power-domains:
4862306a36Sopenharmony_ci    maxItems: 1
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  clocks:
5162306a36Sopenharmony_ci    maxItems: 1
5262306a36Sopenharmony_ci    description: clock-specifier to represent input to the PCIe
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci  clock-names:
5562306a36Sopenharmony_ci    items:
5662306a36Sopenharmony_ci      - const: fck
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci  dma-coherent:
5962306a36Sopenharmony_ci    description: Indicates that the PCIe IP block can ensure the coherency
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci  interrupts:
6262306a36Sopenharmony_ci    maxItems: 1
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci  interrupt-names:
6562306a36Sopenharmony_ci    items:
6662306a36Sopenharmony_ci      - const: link_state
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_cirequired:
6962306a36Sopenharmony_ci  - compatible
7062306a36Sopenharmony_ci  - reg
7162306a36Sopenharmony_ci  - reg-names
7262306a36Sopenharmony_ci  - ti,syscon-pcie-ctrl
7362306a36Sopenharmony_ci  - max-link-speed
7462306a36Sopenharmony_ci  - num-lanes
7562306a36Sopenharmony_ci  - power-domains
7662306a36Sopenharmony_ci  - clocks
7762306a36Sopenharmony_ci  - clock-names
7862306a36Sopenharmony_ci  - max-functions
7962306a36Sopenharmony_ci  - phys
8062306a36Sopenharmony_ci  - phy-names
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciunevaluatedProperties: false
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ciexamples:
8562306a36Sopenharmony_ci  - |
8662306a36Sopenharmony_ci    #include <dt-bindings/soc/ti,sci_pm_domain.h>
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci    bus {
8962306a36Sopenharmony_ci        #address-cells = <2>;
9062306a36Sopenharmony_ci        #size-cells = <2>;
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci        pcie0_ep: pcie-ep@d000000 {
9362306a36Sopenharmony_ci           compatible = "ti,j721e-pcie-ep";
9462306a36Sopenharmony_ci           reg = <0x00 0x02900000 0x00 0x1000>,
9562306a36Sopenharmony_ci                 <0x00 0x02907000 0x00 0x400>,
9662306a36Sopenharmony_ci                 <0x00 0x0d000000 0x00 0x00800000>,
9762306a36Sopenharmony_ci                 <0x00 0x10000000 0x00 0x08000000>;
9862306a36Sopenharmony_ci           reg-names = "intd_cfg", "user_cfg", "reg", "mem";
9962306a36Sopenharmony_ci           ti,syscon-pcie-ctrl = <&pcie0_ctrl 0x4070>;
10062306a36Sopenharmony_ci           max-link-speed = <3>;
10162306a36Sopenharmony_ci           num-lanes = <2>;
10262306a36Sopenharmony_ci           power-domains = <&k3_pds 239 TI_SCI_PD_EXCLUSIVE>;
10362306a36Sopenharmony_ci           clocks = <&k3_clks 239 1>;
10462306a36Sopenharmony_ci           clock-names = "fck";
10562306a36Sopenharmony_ci           max-functions = /bits/ 8 <6>;
10662306a36Sopenharmony_ci           dma-coherent;
10762306a36Sopenharmony_ci           phys = <&serdes0_pcie_link>;
10862306a36Sopenharmony_ci           phy-names = "pcie-phy";
10962306a36Sopenharmony_ci       };
11062306a36Sopenharmony_ci    };
111