~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/pci/brcm,iproc-pcie.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/pci/brcm,iproc-pcie.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Broadcom iProc PCIe controller with the platform bus interface
  8 
  9 maintainers:
 10   - Ray Jui <ray.jui@broadcom.com>
 11   - Scott Branden <scott.branden@broadcom.com>
 12 
 13 allOf:
 14   - $ref: /schemas/pci/pci-host-bridge.yaml#
 15 
 16 properties:
 17   compatible:
 18     items:
 19       - enum:
 20           # for the first generation of PAXB based controller, used in SoCs
 21           # including NSP, Cygnus, NS2, and Pegasus
 22           - brcm,iproc-pcie
 23           # for the second generation of PAXB-based controllers, used in
 24           # Stingray
 25           - brcm,iproc-pcie-paxb-v2
 26           # For the first generation of PAXC based controller, used in NS2
 27           - brcm,iproc-pcie-paxc
 28           # For the second generation of PAXC based controller, used in Stingray
 29           - brcm,iproc-pcie-paxc-v2
 30 
 31   reg:
 32     maxItems: 1
 33     description: >
 34        Base address and length of the PCIe controller I/O register space
 35 
 36   ranges:
 37     minItems: 1
 38     maxItems: 2
 39     description: >
 40       Ranges for the PCI memory and I/O regions
 41 
 42   phys:
 43     maxItems: 1
 44 
 45   phy-names:
 46     items:
 47       - const: pcie-phy
 48 
 49   dma-coherent: true
 50 
 51   brcm,pcie-ob:
 52     type: boolean
 53     description: >
 54       Some iProc SoCs do not have the outbound address mapping done by the
 55       ASIC after power on reset. In this case, SW needs to configure it
 56 
 57   brcm,pcie-ob-axi-offset:
 58     $ref: /schemas/types.yaml#/definitions/uint32
 59     description: >
 60        The offset from the AXI address to the internal address used by the
 61        iProc PCIe core (not the PCIe address)
 62 
 63   msi:
 64     type: object
 65     $ref: /schemas/interrupt-controller/msi-controller.yaml#
 66     unevaluatedProperties: false
 67 
 68     properties:
 69       compatible:
 70         items:
 71           - const: brcm,iproc-msi
 72 
 73       interrupts:
 74         maxItems: 4
 75 
 76       brcm,pcie-msi-inten:
 77         type: boolean
 78         description:
 79           Needs to be present for some older iProc platforms that require the
 80           interrupt enable registers to be set explicitly to enable MSI
 81 
 82   msi-parent: true
 83 
 84 dependencies:
 85   brcm,pcie-ob-axi-offset: ["brcm,pcie-ob"]
 86   brcm,pcie-msi-inten: [msi-controller]
 87 
 88 required:
 89   - compatible
 90   - reg
 91   - ranges
 92 
 93 if:
 94   properties:
 95     compatible:
 96       contains:
 97         enum:
 98           - brcm,iproc-pcie
 99 then:
100   required:
101     - interrupt-map
102     - interrupt-map-mask
103 
104 unevaluatedProperties: false
105 
106 examples:
107   - |
108     #include <dt-bindings/interrupt-controller/arm-gic.h>
109 
110     gic: interrupt-controller {
111         interrupt-controller;
112         #interrupt-cells = <3>;
113     };
114 
115     pcie@18012000 {
116         compatible = "brcm,iproc-pcie";
117         reg = <0x18012000 0x1000>;
118 
119         #interrupt-cells = <1>;
120         interrupt-map-mask = <0 0 0 0>;
121         interrupt-map = <0 0 0 0 &gic GIC_SPI 100 IRQ_TYPE_NONE>;
122 
123         linux,pci-domain = <0>;
124 
125         bus-range = <0x00 0xff>;
126 
127         #address-cells = <3>;
128         #size-cells = <2>;
129         device_type = "pci";
130         ranges = <0x81000000 0          0 0x28000000 0 0x00010000>,
131                  <0x82000000 0 0x20000000 0x20000000 0 0x04000000>;
132 
133         phys = <&phy 0 5>;
134         phy-names = "pcie-phy";
135 
136         brcm,pcie-ob;
137         brcm,pcie-ob-axi-offset = <0x00000000>;
138 
139         msi-parent = <&msi0>;
140 
141         /* iProc event queue based MSI */
142         msi0: msi {
143             compatible = "brcm,iproc-msi";
144             msi-controller;
145             interrupt-parent = <&gic>;
146             interrupts = <GIC_SPI 96 IRQ_TYPE_NONE>,
147                     <GIC_SPI 97 IRQ_TYPE_NONE>,
148                     <GIC_SPI 98 IRQ_TYPE_NONE>,
149                     <GIC_SPI 99 IRQ_TYPE_NONE>;
150         };
151     };
152   - |
153     pcie@18013000 {
154         compatible = "brcm,iproc-pcie";
155         reg = <0x18013000 0x1000>;
156 
157         #interrupt-cells = <1>;
158         interrupt-map-mask = <0 0 0 0>;
159         interrupt-map = <0 0 0 0 &gic GIC_SPI 106 IRQ_TYPE_NONE>;
160 
161         linux,pci-domain = <1>;
162 
163         bus-range = <0x00 0xff>;
164 
165         #address-cells = <3>;
166         #size-cells = <2>;
167         device_type = "pci";
168         ranges = <0x81000000 0          0 0x48000000 0 0x00010000>,
169                  <0x82000000 0 0x40000000 0x40000000 0 0x04000000>;
170 
171         phys = <&phy 1 6>;
172         phy-names = "pcie-phy";
173     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php