162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci# Copyright (C) 2019 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-host.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: TI J721E PCI Host (PCIe Wrapper)
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Kishon Vijay Abraham I <kishon@ti.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciallOf:
1462306a36Sopenharmony_ci  - $ref: cdns-pcie-host.yaml#
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciproperties:
1762306a36Sopenharmony_ci  compatible:
1862306a36Sopenharmony_ci    oneOf:
1962306a36Sopenharmony_ci      - const: ti,j721e-pcie-host
2062306a36Sopenharmony_ci      - description: PCIe controller in AM64
2162306a36Sopenharmony_ci        items:
2262306a36Sopenharmony_ci          - const: ti,am64-pcie-host
2362306a36Sopenharmony_ci          - const: ti,j721e-pcie-host
2462306a36Sopenharmony_ci      - description: PCIe controller in J7200
2562306a36Sopenharmony_ci        items:
2662306a36Sopenharmony_ci          - const: ti,j7200-pcie-host
2762306a36Sopenharmony_ci          - const: ti,j721e-pcie-host
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: cfg
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    minItems: 1
5262306a36Sopenharmony_ci    maxItems: 2
5362306a36Sopenharmony_ci    description: |+
5462306a36Sopenharmony_ci      clock-specifier to represent input to the PCIe for 1 item.
5562306a36Sopenharmony_ci      2nd item if present represents reference clock to the connector.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci  clock-names:
5862306a36Sopenharmony_ci    minItems: 1
5962306a36Sopenharmony_ci    items:
6062306a36Sopenharmony_ci      - const: fck
6162306a36Sopenharmony_ci      - const: pcie_refclk
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci  dma-coherent: true
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci  vendor-id:
6662306a36Sopenharmony_ci    const: 0x104c
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci  device-id:
6962306a36Sopenharmony_ci    enum:
7062306a36Sopenharmony_ci      - 0xb00d
7162306a36Sopenharmony_ci      - 0xb00f
7262306a36Sopenharmony_ci      - 0xb010
7362306a36Sopenharmony_ci      - 0xb013
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci  msi-map: true
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci  interrupts:
7862306a36Sopenharmony_ci    maxItems: 1
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci  interrupt-names:
8162306a36Sopenharmony_ci    items:
8262306a36Sopenharmony_ci      - const: link_state
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci  interrupt-controller:
8562306a36Sopenharmony_ci    type: object
8662306a36Sopenharmony_ci    additionalProperties: false
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci    properties:
8962306a36Sopenharmony_ci      interrupt-controller: true
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci      '#interrupt-cells':
9262306a36Sopenharmony_ci        const: 1
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci      interrupts:
9562306a36Sopenharmony_ci        maxItems: 1
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_cirequired:
9862306a36Sopenharmony_ci  - compatible
9962306a36Sopenharmony_ci  - reg
10062306a36Sopenharmony_ci  - reg-names
10162306a36Sopenharmony_ci  - ti,syscon-pcie-ctrl
10262306a36Sopenharmony_ci  - max-link-speed
10362306a36Sopenharmony_ci  - num-lanes
10462306a36Sopenharmony_ci  - power-domains
10562306a36Sopenharmony_ci  - clocks
10662306a36Sopenharmony_ci  - clock-names
10762306a36Sopenharmony_ci  - vendor-id
10862306a36Sopenharmony_ci  - device-id
10962306a36Sopenharmony_ci  - msi-map
11062306a36Sopenharmony_ci  - dma-ranges
11162306a36Sopenharmony_ci  - ranges
11262306a36Sopenharmony_ci  - reset-gpios
11362306a36Sopenharmony_ci  - phys
11462306a36Sopenharmony_ci  - phy-names
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ciunevaluatedProperties: false
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ciexamples:
11962306a36Sopenharmony_ci  - |
12062306a36Sopenharmony_ci    #include <dt-bindings/soc/ti,sci_pm_domain.h>
12162306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci    bus {
12462306a36Sopenharmony_ci        #address-cells = <2>;
12562306a36Sopenharmony_ci        #size-cells = <2>;
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci        pcie0_rc: pcie@2900000 {
12862306a36Sopenharmony_ci            compatible = "ti,j721e-pcie-host";
12962306a36Sopenharmony_ci            reg = <0x00 0x02900000 0x00 0x1000>,
13062306a36Sopenharmony_ci                  <0x00 0x02907000 0x00 0x400>,
13162306a36Sopenharmony_ci                  <0x00 0x0d000000 0x00 0x00800000>,
13262306a36Sopenharmony_ci                  <0x00 0x10000000 0x00 0x00001000>;
13362306a36Sopenharmony_ci            reg-names = "intd_cfg", "user_cfg", "reg", "cfg";
13462306a36Sopenharmony_ci            ti,syscon-pcie-ctrl = <&pcie0_ctrl 0x4070>;
13562306a36Sopenharmony_ci            max-link-speed = <3>;
13662306a36Sopenharmony_ci            num-lanes = <2>;
13762306a36Sopenharmony_ci            power-domains = <&k3_pds 239 TI_SCI_PD_EXCLUSIVE>;
13862306a36Sopenharmony_ci            clocks = <&k3_clks 239 1>;
13962306a36Sopenharmony_ci            clock-names = "fck";
14062306a36Sopenharmony_ci            device_type = "pci";
14162306a36Sopenharmony_ci            #address-cells = <3>;
14262306a36Sopenharmony_ci            #size-cells = <2>;
14362306a36Sopenharmony_ci            bus-range = <0x0 0xf>;
14462306a36Sopenharmony_ci            vendor-id = <0x104c>;
14562306a36Sopenharmony_ci            device-id = <0xb00d>;
14662306a36Sopenharmony_ci            msi-map = <0x0 &gic_its 0x0 0x10000>;
14762306a36Sopenharmony_ci            dma-coherent;
14862306a36Sopenharmony_ci            reset-gpios = <&exp1 6 GPIO_ACTIVE_HIGH>;
14962306a36Sopenharmony_ci            phys = <&serdes0_pcie_link>;
15062306a36Sopenharmony_ci            phy-names = "pcie-phy";
15162306a36Sopenharmony_ci            ranges = <0x01000000 0x0 0x10001000  0x00 0x10001000  0x0 0x0010000>,
15262306a36Sopenharmony_ci                     <0x02000000 0x0 0x10011000  0x00 0x10011000  0x0 0x7fef000>;
15362306a36Sopenharmony_ci            dma-ranges = <0x02000000 0x0 0x0 0x0 0x0 0x10000 0x0>;
15462306a36Sopenharmony_ci        };
15562306a36Sopenharmony_ci    };
156