summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/pci/ti,am65-pci-host.yaml
blob: db92125a2f2de998d00e9fa3ed164b7525c71d29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2021 Texas Instruments Incorporated - http://www.ti.com/
%YAML 1.2
---
$id: http://devicetree.org/schemas/pci/ti,am65-pci-host.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TI AM65 PCI Host

maintainers:
  - Kishon Vijay Abraham I <kishon@ti.com>

allOf:
  - $ref: /schemas/pci/pci-host-bridge.yaml#

properties:
  compatible:
    enum:
      - ti,am654-pcie-rc
      - ti,keystone-pcie

  reg:
    minItems: 4
    maxItems: 6

  reg-names:
    minItems: 4
    items:
      - const: app
      - const: dbics
      - const: config
      - const: atu
      - const: vmap_lp
      - const: vmap_hp

  interrupts:
    maxItems: 1

  power-domains:
    maxItems: 1

  ti,syscon-pcie-id:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    items:
      - items:
          - description: Phandle to the SYSCON entry
          - description: pcie_device_id register offset within SYSCON
    description: Phandle to the SYSCON entry required for getting PCIe device/vendor ID

  ti,syscon-pcie-mode:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    items:
      - items:
          - description: Phandle to the SYSCON entry
          - description: pcie_ctrl register offset within SYSCON
    description: Phandle to the SYSCON entry required for configuring PCIe in RC or EP mode.

  msi-map: true

  dma-coherent: true

  num-viewport:
    $ref: /schemas/types.yaml#/definitions/uint32

  phys:
    description: per-lane PHYs
    minItems: 1
    maxItems: 2

  phy-names:
    minItems: 1
    maxItems: 2
    items:
      pattern: '^pcie-phy[0-1]$'

  memory-region:
    maxItems: 1
    description: |
      phandle to a restricted DMA pool to be used for all devices behind
      this controller. The regions should be defined according to
      reserved-memory/shared-dma-pool.yaml.
      Note that enforcement via the PVU will only be available to
      ti,am654-pcie-rc devices.

required:
  - compatible
  - reg
  - reg-names
  - max-link-speed
  - ti,syscon-pcie-id
  - ti,syscon-pcie-mode
  - ranges

if:
  properties:
    compatible:
      enum:
        - ti,am654-pcie-rc
then:
  required:
    - dma-coherent
    - power-domains
    - msi-map
    - num-viewport
else:
  properties:
    reg:
      maxItems: 4

    reg-names:
      maxItems: 4

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/phy/phy.h>
    #include <dt-bindings/soc/ti,sci_pm_domain.h>

    pcie0_rc: pcie@5500000 {
        compatible = "ti,am654-pcie-rc";
        reg = <0x5500000 0x1000>,
              <0x5501000 0x1000>,
              <0x10000000 0x2000>,
              <0x5506000 0x1000>,
              <0x2900000 0x1000>,
              <0x2908000 0x1000>;
        reg-names = "app", "dbics", "config", "atu", "vmap_lp", "vmap_hp";
        power-domains = <&k3_pds 120 TI_SCI_PD_EXCLUSIVE>;
        #address-cells = <3>;
        #size-cells = <2>;
        ranges = <0x81000000 0 0          0x10020000 0 0x00010000>,
                 <0x82000000 0 0x10030000 0x10030000 0 0x07FD0000>;
        ti,syscon-pcie-id = <&scm_conf 0x0210>;
        ti,syscon-pcie-mode = <&scm_conf 0x4060>;
        bus-range = <0x0 0xff>;
        num-viewport = <16>;
        max-link-speed = <2>;
        dma-coherent;
        interrupts = <GIC_SPI 340 IRQ_TYPE_EDGE_RISING>;
        msi-map = <0x0 &gic_its 0x0 0x10000>;
        device_type = "pci";
        num-lanes = <1>;
        phys = <&serdes0 PHY_TYPE_PCIE 0>;
        phy-names = "pcie-phy0";
    };