Loading...
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 | # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pci/rockchip,rk3399-pcie.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Rockchip AXI PCIe Root Port Bridge Host maintainers: - Shawn Lin <shawn.lin@rock-chips.com> allOf: - $ref: /schemas/pci/pci-bus.yaml# - $ref: rockchip,rk3399-pcie-common.yaml# properties: compatible: const: rockchip,rk3399-pcie reg: true reg-names: items: - const: axi-base - const: apb-base interrupts: maxItems: 3 interrupt-names: items: - const: sys - const: legacy - const: client aspm-no-l0s: description: This property is needed if using 24MHz OSC for RC's PHY. ep-gpios: description: pre-reset GPIO vpcie12v-supply: description: The 12v regulator to use for PCIe. vpcie3v3-supply: description: The 3.3v regulator to use for PCIe. vpcie1v8-supply: description: The 1.8v regulator to use for PCIe. vpcie0v9-supply: description: The 0.9v regulator to use for PCIe. interrupt-controller: type: object additionalProperties: false properties: '#address-cells': const: 0 '#interrupt-cells': const: 1 interrupt-controller: true required: - ranges - "#interrupt-cells" - interrupts - interrupt-controller - interrupt-map - interrupt-map-mask - msi-map unevaluatedProperties: false examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/clock/rk3399-cru.h> bus { #address-cells = <2>; #size-cells = <2>; pcie@f8000000 { compatible = "rockchip,rk3399-pcie"; device_type = "pci"; #address-cells = <3>; #size-cells = <2>; clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>, <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>; clock-names = "aclk", "aclk-perf", "hclk", "pm"; interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>, <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>, <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>; interrupt-names = "sys", "legacy", "client"; ep-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x600000 0x81000000 0x0 0xfa600000 0x0 0xfa600000 0x0 0x100000>; num-lanes = <4>; msi-map = <0x0 &its 0x0 0x1000>; reg = <0x0 0xf8000000 0x0 0x2000000>, <0x0 0xfd000000 0x0 0x1000000>; reg-names = "axi-base", "apb-base"; resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>, <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE> , <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>, <&cru SRST_A_PCIE>; reset-names = "core", "mgmt", "mgmt-sticky", "pipe", "pm", "pclk", "aclk"; /* deprecated legacy PHY model */ phys = <&pcie_phy>; phy-names = "pcie-phy"; pinctrl-names = "default"; pinctrl-0 = <&pcie_clkreq>; #interrupt-cells = <1>; interrupt-map-mask = <0 0 0 7>; interrupt-map = <0 0 0 1 &pcie0_intc 0>, <0 0 0 2 &pcie0_intc 1>, <0 0 0 3 &pcie0_intc 2>, <0 0 0 4 &pcie0_intc 3>; pcie0_intc: interrupt-controller { interrupt-controller; #address-cells = <0>; #interrupt-cells = <1>; }; }; }; ... |