xref: /freebsd/sys/contrib/device-tree/Bindings/pci/xilinx-nwl-pcie.txt (revision 354d7675fe12ace9cde344cb79c7ded792802f88)
1c66ec88fSEmmanuel Vadot* Xilinx NWL PCIe Root Port Bridge DT description
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotRequired properties:
4c66ec88fSEmmanuel Vadot- compatible: Should contain "xlnx,nwl-pcie-2.11"
5c66ec88fSEmmanuel Vadot- #address-cells: Address representation for root ports, set to <3>
6c66ec88fSEmmanuel Vadot- #size-cells: Size representation for root ports, set to <2>
7c66ec88fSEmmanuel Vadot- #interrupt-cells: specifies the number of cells needed to encode an
8c66ec88fSEmmanuel Vadot	interrupt source. The value must be 1.
9c66ec88fSEmmanuel Vadot- reg: Should contain Bridge, PCIe Controller registers location,
10c66ec88fSEmmanuel Vadot	configuration space, and length
11c66ec88fSEmmanuel Vadot- reg-names: Must include the following entries:
12c66ec88fSEmmanuel Vadot	"breg": bridge registers
13c66ec88fSEmmanuel Vadot	"pcireg": PCIe controller registers
14c66ec88fSEmmanuel Vadot	"cfg": configuration space region
15c66ec88fSEmmanuel Vadot- device_type: must be "pci"
16c66ec88fSEmmanuel Vadot- interrupts: Should contain NWL PCIe interrupt
17c66ec88fSEmmanuel Vadot- interrupt-names: Must include the following entries:
18c66ec88fSEmmanuel Vadot	"msi1, msi0": interrupt asserted when an MSI is received
19c66ec88fSEmmanuel Vadot	"intx": interrupt asserted when a legacy interrupt is received
20c66ec88fSEmmanuel Vadot	"misc": interrupt asserted when miscellaneous interrupt is received
21c66ec88fSEmmanuel Vadot- interrupt-map-mask and interrupt-map: standard PCI properties to define the
22c66ec88fSEmmanuel Vadot	mapping of the PCI interface to interrupt numbers.
23c66ec88fSEmmanuel Vadot- ranges: ranges for the PCI memory regions (I/O space region is not
24c66ec88fSEmmanuel Vadot	supported by hardware)
25c66ec88fSEmmanuel Vadot	Please refer to the standard PCI bus binding document for a more
26c66ec88fSEmmanuel Vadot	detailed explanation
27c66ec88fSEmmanuel Vadot- msi-controller: indicates that this is MSI controller node
28c66ec88fSEmmanuel Vadot- msi-parent:  MSI parent of the root complex itself
29c66ec88fSEmmanuel Vadot- legacy-interrupt-controller: Interrupt controller device node for Legacy
30c66ec88fSEmmanuel Vadot	interrupts
31c66ec88fSEmmanuel Vadot	- interrupt-controller: identifies the node as an interrupt controller
32c66ec88fSEmmanuel Vadot	- #interrupt-cells: should be set to 1
33c66ec88fSEmmanuel Vadot	- #address-cells: specifies the number of cells needed to encode an
34c66ec88fSEmmanuel Vadot		address. The value must be 0.
35c66ec88fSEmmanuel Vadot
362eb4d8dcSEmmanuel VadotOptional properties:
372eb4d8dcSEmmanuel Vadot- dma-coherent: present if DMA operations are coherent
38*354d7675SEmmanuel Vadot- clocks: Input clock specifier. Refer to common clock bindings
39c66ec88fSEmmanuel Vadot
40c66ec88fSEmmanuel VadotExample:
41c66ec88fSEmmanuel Vadot++++++++
42c66ec88fSEmmanuel Vadot
43c66ec88fSEmmanuel Vadotnwl_pcie: pcie@fd0e0000 {
44c66ec88fSEmmanuel Vadot	#address-cells = <3>;
45c66ec88fSEmmanuel Vadot	#size-cells = <2>;
46c66ec88fSEmmanuel Vadot	compatible = "xlnx,nwl-pcie-2.11";
47c66ec88fSEmmanuel Vadot	#interrupt-cells = <1>;
48c66ec88fSEmmanuel Vadot	msi-controller;
49c66ec88fSEmmanuel Vadot	device_type = "pci";
50c66ec88fSEmmanuel Vadot	interrupt-parent = <&gic>;
51c66ec88fSEmmanuel Vadot	interrupts = <0 114 4>, <0 115 4>, <0 116 4>, <0 117 4>, <0 118 4>;
52c66ec88fSEmmanuel Vadot	interrupt-names = "msi0", "msi1", "intx", "dummy", "misc";
53c66ec88fSEmmanuel Vadot	interrupt-map-mask = <0x0 0x0 0x0 0x7>;
54c66ec88fSEmmanuel Vadot	interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc 0x1>,
55c66ec88fSEmmanuel Vadot			<0x0 0x0 0x0 0x2 &pcie_intc 0x2>,
56c66ec88fSEmmanuel Vadot			<0x0 0x0 0x0 0x3 &pcie_intc 0x3>,
57c66ec88fSEmmanuel Vadot			<0x0 0x0 0x0 0x4 &pcie_intc 0x4>;
58c66ec88fSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot	msi-parent = <&nwl_pcie>;
60c66ec88fSEmmanuel Vadot	reg = <0x0 0xfd0e0000 0x0 0x1000>,
61c66ec88fSEmmanuel Vadot	      <0x0 0xfd480000 0x0 0x1000>,
62c66ec88fSEmmanuel Vadot	      <0x80 0x00000000 0x0 0x1000000>;
63c66ec88fSEmmanuel Vadot	reg-names = "breg", "pcireg", "cfg";
64c66ec88fSEmmanuel Vadot	ranges = <0x02000000 0x00000000 0xe0000000 0x00000000 0xe0000000 0x00000000 0x10000000  /* non-prefetchable memory */
65c66ec88fSEmmanuel Vadot		  0x43000000 0x00000006 0x00000000 0x00000006 0x00000000 0x00000002 0x00000000>;/* prefetchable memory */
66c66ec88fSEmmanuel Vadot
67c66ec88fSEmmanuel Vadot	pcie_intc: legacy-interrupt-controller {
68c66ec88fSEmmanuel Vadot		interrupt-controller;
69c66ec88fSEmmanuel Vadot		#address-cells = <0>;
70c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
71c66ec88fSEmmanuel Vadot	};
72c66ec88fSEmmanuel Vadot
73c66ec88fSEmmanuel Vadot};
74