diff options
Diffstat (limited to 'Documentation/devicetree/bindings/pci')
3 files changed, 109 insertions, 68 deletions
diff --git a/Documentation/devicetree/bindings/pci/designware-pcie.txt b/Documentation/devicetree/bindings/pci/designware-pcie.txt index d6fae13ff062..d0d15ee42834 100644 --- a/Documentation/devicetree/bindings/pci/designware-pcie.txt +++ b/Documentation/devicetree/bindings/pci/designware-pcie.txt | |||
@@ -1,15 +1,7 @@ | |||
1 | * Synopsys Designware PCIe interface | 1 | * Synopsys Designware PCIe interface |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should contain "snps,dw-pcie" to identify the | 4 | - compatible: should contain "snps,dw-pcie" to identify the core. |
5 | core, plus an identifier for the specific instance, such | ||
6 | as "samsung,exynos5440-pcie" or "fsl,imx6q-pcie". | ||
7 | - reg: base addresses and lengths of the pcie controller, | ||
8 | the phy controller, additional register for the phy controller. | ||
9 | - interrupts: interrupt values for level interrupt, | ||
10 | pulse interrupt, special interrupt. | ||
11 | - clocks: from common clock binding: handle to pci clock. | ||
12 | - clock-names: from common clock binding: should be "pcie" and "pcie_bus". | ||
13 | - #address-cells: set to <3> | 5 | - #address-cells: set to <3> |
14 | - #size-cells: set to <2> | 6 | - #size-cells: set to <2> |
15 | - device_type: set to "pci" | 7 | - device_type: set to "pci" |
@@ -19,65 +11,11 @@ Required properties: | |||
19 | to define the mapping of the PCIe interface to interrupt | 11 | to define the mapping of the PCIe interface to interrupt |
20 | numbers. | 12 | numbers. |
21 | - num-lanes: number of lanes to use | 13 | - num-lanes: number of lanes to use |
14 | - clocks: Must contain an entry for each entry in clock-names. | ||
15 | See ../clocks/clock-bindings.txt for details. | ||
16 | - clock-names: Must include the following entries: | ||
17 | - "pcie" | ||
18 | - "pcie_bus" | ||
22 | 19 | ||
23 | Optional properties: | 20 | Optional properties: |
24 | - reset-gpio: gpio pin number of power good signal | 21 | - reset-gpio: gpio pin number of power good signal |
25 | |||
26 | Optional properties for fsl,imx6q-pcie | ||
27 | - power-on-gpio: gpio pin number of power-enable signal | ||
28 | - wake-up-gpio: gpio pin number of incoming wakeup signal | ||
29 | - disable-gpio: gpio pin number of outgoing rfkill/endpoint disable signal | ||
30 | |||
31 | Example: | ||
32 | |||
33 | SoC specific DT Entry: | ||
34 | |||
35 | pcie@290000 { | ||
36 | compatible = "samsung,exynos5440-pcie", "snps,dw-pcie"; | ||
37 | reg = <0x290000 0x1000 | ||
38 | 0x270000 0x1000 | ||
39 | 0x271000 0x40>; | ||
40 | interrupts = <0 20 0>, <0 21 0>, <0 22 0>; | ||
41 | clocks = <&clock 28>, <&clock 27>; | ||
42 | clock-names = "pcie", "pcie_bus"; | ||
43 | #address-cells = <3>; | ||
44 | #size-cells = <2>; | ||
45 | device_type = "pci"; | ||
46 | ranges = <0x00000800 0 0x40000000 0x40000000 0 0x00001000 /* configuration space */ | ||
47 | 0x81000000 0 0 0x40001000 0 0x00010000 /* downstream I/O */ | ||
48 | 0x82000000 0 0x40011000 0x40011000 0 0x1ffef000>; /* non-prefetchable memory */ | ||
49 | #interrupt-cells = <1>; | ||
50 | interrupt-map-mask = <0 0 0 0>; | ||
51 | interrupt-map = <0x0 0 &gic 53>; | ||
52 | num-lanes = <4>; | ||
53 | }; | ||
54 | |||
55 | pcie@2a0000 { | ||
56 | compatible = "samsung,exynos5440-pcie", "snps,dw-pcie"; | ||
57 | reg = <0x2a0000 0x1000 | ||
58 | 0x272000 0x1000 | ||
59 | 0x271040 0x40>; | ||
60 | interrupts = <0 23 0>, <0 24 0>, <0 25 0>; | ||
61 | clocks = <&clock 29>, <&clock 27>; | ||
62 | clock-names = "pcie", "pcie_bus"; | ||
63 | #address-cells = <3>; | ||
64 | #size-cells = <2>; | ||
65 | device_type = "pci"; | ||
66 | ranges = <0x00000800 0 0x60000000 0x60000000 0 0x00001000 /* configuration space */ | ||
67 | 0x81000000 0 0 0x60001000 0 0x00010000 /* downstream I/O */ | ||
68 | 0x82000000 0 0x60011000 0x60011000 0 0x1ffef000>; /* non-prefetchable memory */ | ||
69 | #interrupt-cells = <1>; | ||
70 | interrupt-map-mask = <0 0 0 0>; | ||
71 | interrupt-map = <0x0 0 &gic 56>; | ||
72 | num-lanes = <4>; | ||
73 | }; | ||
74 | |||
75 | Board specific DT Entry: | ||
76 | |||
77 | pcie@290000 { | ||
78 | reset-gpio = <&pin_ctrl 5 0>; | ||
79 | }; | ||
80 | |||
81 | pcie@2a0000 { | ||
82 | reset-gpio = <&pin_ctrl 22 0>; | ||
83 | }; | ||
diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt new file mode 100644 index 000000000000..9455fd0ec830 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | * Freescale i.MX6 PCIe interface | ||
2 | |||
3 | This PCIe host controller is based on the Synopsis Designware PCIe IP | ||
4 | and thus inherits all the common properties defined in designware-pcie.txt. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible: "fsl,imx6q-pcie" | ||
8 | - reg: base addresse and length of the pcie controller | ||
9 | - interrupts: A list of interrupt outputs of the controller. Must contain an | ||
10 | entry for each entry in the interrupt-names property. | ||
11 | - interrupt-names: Must include the following entries: | ||
12 | - "msi": The interrupt that is asserted when an MSI is received | ||
13 | - clock-names: Must include the following additional entries: | ||
14 | - "pcie_phy" | ||
15 | |||
16 | Example: | ||
17 | |||
18 | pcie@0x01000000 { | ||
19 | compatible = "fsl,imx6q-pcie", "snps,dw-pcie"; | ||
20 | reg = <0x01ffc000 0x4000>; | ||
21 | #address-cells = <3>; | ||
22 | #size-cells = <2>; | ||
23 | device_type = "pci"; | ||
24 | ranges = <0x00000800 0 0x01f00000 0x01f00000 0 0x00080000 | ||
25 | 0x81000000 0 0 0x01f80000 0 0x00010000 | ||
26 | 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; | ||
27 | num-lanes = <1>; | ||
28 | interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; | ||
29 | interrupt-names = "msi"; | ||
30 | #interrupt-cells = <1>; | ||
31 | interrupt-map-mask = <0 0 0 0x7>; | ||
32 | interrupt-map = <0 0 0 1 &intc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, | ||
33 | <0 0 0 2 &intc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, | ||
34 | <0 0 0 3 &intc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, | ||
35 | <0 0 0 4 &intc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; | ||
36 | clocks = <&clks 144>, <&clks 206>, <&clks 189>; | ||
37 | clock-names = "pcie", "pcie_bus", "pcie_phy"; | ||
38 | }; | ||
diff --git a/Documentation/devicetree/bindings/pci/samsung,exynos5440-pcie.txt b/Documentation/devicetree/bindings/pci/samsung,exynos5440-pcie.txt new file mode 100644 index 000000000000..4f9d23d2ed67 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/samsung,exynos5440-pcie.txt | |||
@@ -0,0 +1,65 @@ | |||
1 | * Samsung Exynos 5440 PCIe interface | ||
2 | |||
3 | This PCIe host controller is based on the Synopsis Designware PCIe IP | ||
4 | and thus inherits all the common properties defined in designware-pcie.txt. | ||
5 | |||
6 | Required properties: | ||
7 | - compatible: "samsung,exynos5440-pcie" | ||
8 | - reg: base addresses and lengths of the pcie controller, | ||
9 | the phy controller, additional register for the phy controller. | ||
10 | - interrupts: A list of interrupt outputs for level interrupt, | ||
11 | pulse interrupt, special interrupt. | ||
12 | |||
13 | Example: | ||
14 | |||
15 | SoC specific DT Entry: | ||
16 | |||
17 | pcie@290000 { | ||
18 | compatible = "samsung,exynos5440-pcie", "snps,dw-pcie"; | ||
19 | reg = <0x290000 0x1000 | ||
20 | 0x270000 0x1000 | ||
21 | 0x271000 0x40>; | ||
22 | interrupts = <0 20 0>, <0 21 0>, <0 22 0>; | ||
23 | clocks = <&clock 28>, <&clock 27>; | ||
24 | clock-names = "pcie", "pcie_bus"; | ||
25 | #address-cells = <3>; | ||
26 | #size-cells = <2>; | ||
27 | device_type = "pci"; | ||
28 | ranges = <0x00000800 0 0x40000000 0x40000000 0 0x00001000 /* configuration space */ | ||
29 | 0x81000000 0 0 0x40001000 0 0x00010000 /* downstream I/O */ | ||
30 | 0x82000000 0 0x40011000 0x40011000 0 0x1ffef000>; /* non-prefetchable memory */ | ||
31 | #interrupt-cells = <1>; | ||
32 | interrupt-map-mask = <0 0 0 0>; | ||
33 | interrupt-map = <0 0 0 0 &gic GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; | ||
34 | num-lanes = <4>; | ||
35 | }; | ||
36 | |||
37 | pcie@2a0000 { | ||
38 | compatible = "samsung,exynos5440-pcie", "snps,dw-pcie"; | ||
39 | reg = <0x2a0000 0x1000 | ||
40 | 0x272000 0x1000 | ||
41 | 0x271040 0x40>; | ||
42 | interrupts = <0 23 0>, <0 24 0>, <0 25 0>; | ||
43 | clocks = <&clock 29>, <&clock 27>; | ||
44 | clock-names = "pcie", "pcie_bus"; | ||
45 | #address-cells = <3>; | ||
46 | #size-cells = <2>; | ||
47 | device_type = "pci"; | ||
48 | ranges = <0x00000800 0 0x60000000 0x60000000 0 0x00001000 /* configuration space */ | ||
49 | 0x81000000 0 0 0x60001000 0 0x00010000 /* downstream I/O */ | ||
50 | 0x82000000 0 0x60011000 0x60011000 0 0x1ffef000>; /* non-prefetchable memory */ | ||
51 | #interrupt-cells = <1>; | ||
52 | interrupt-map-mask = <0 0 0 0>; | ||
53 | interrupt-map = <0 0 0 0 &gic GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; | ||
54 | num-lanes = <4>; | ||
55 | }; | ||
56 | |||
57 | Board specific DT Entry: | ||
58 | |||
59 | pcie@290000 { | ||
60 | reset-gpio = <&pin_ctrl 5 0>; | ||
61 | }; | ||
62 | |||
63 | pcie@2a0000 { | ||
64 | reset-gpio = <&pin_ctrl 22 0>; | ||
65 | }; | ||