1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*0e8011faSEmmanuel Vadot%YAML 1.2 3*0e8011faSEmmanuel Vadot--- 4*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/starfive,jh7110-pcie.yaml# 5*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*0e8011faSEmmanuel Vadot 7*0e8011faSEmmanuel Vadottitle: StarFive JH7110 PCIe host controller 8*0e8011faSEmmanuel Vadot 9*0e8011faSEmmanuel Vadotmaintainers: 10*0e8011faSEmmanuel Vadot - Kevin Xie <kevin.xie@starfivetech.com> 11*0e8011faSEmmanuel Vadot 12*0e8011faSEmmanuel VadotallOf: 13*0e8011faSEmmanuel Vadot - $ref: plda,xpressrich3-axi-common.yaml# 14*0e8011faSEmmanuel Vadot 15*0e8011faSEmmanuel Vadotproperties: 16*0e8011faSEmmanuel Vadot compatible: 17*0e8011faSEmmanuel Vadot const: starfive,jh7110-pcie 18*0e8011faSEmmanuel Vadot 19*0e8011faSEmmanuel Vadot clocks: 20*0e8011faSEmmanuel Vadot items: 21*0e8011faSEmmanuel Vadot - description: NOC bus clock 22*0e8011faSEmmanuel Vadot - description: Transport layer clock 23*0e8011faSEmmanuel Vadot - description: AXI MST0 clock 24*0e8011faSEmmanuel Vadot - description: APB clock 25*0e8011faSEmmanuel Vadot 26*0e8011faSEmmanuel Vadot clock-names: 27*0e8011faSEmmanuel Vadot items: 28*0e8011faSEmmanuel Vadot - const: noc 29*0e8011faSEmmanuel Vadot - const: tl 30*0e8011faSEmmanuel Vadot - const: axi_mst0 31*0e8011faSEmmanuel Vadot - const: apb 32*0e8011faSEmmanuel Vadot 33*0e8011faSEmmanuel Vadot resets: 34*0e8011faSEmmanuel Vadot items: 35*0e8011faSEmmanuel Vadot - description: AXI MST0 reset 36*0e8011faSEmmanuel Vadot - description: AXI SLAVE0 reset 37*0e8011faSEmmanuel Vadot - description: AXI SLAVE reset 38*0e8011faSEmmanuel Vadot - description: PCIE BRIDGE reset 39*0e8011faSEmmanuel Vadot - description: PCIE CORE reset 40*0e8011faSEmmanuel Vadot - description: PCIE APB reset 41*0e8011faSEmmanuel Vadot 42*0e8011faSEmmanuel Vadot reset-names: 43*0e8011faSEmmanuel Vadot items: 44*0e8011faSEmmanuel Vadot - const: mst0 45*0e8011faSEmmanuel Vadot - const: slv0 46*0e8011faSEmmanuel Vadot - const: slv 47*0e8011faSEmmanuel Vadot - const: brg 48*0e8011faSEmmanuel Vadot - const: core 49*0e8011faSEmmanuel Vadot - const: apb 50*0e8011faSEmmanuel Vadot 51*0e8011faSEmmanuel Vadot starfive,stg-syscon: 52*0e8011faSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 53*0e8011faSEmmanuel Vadot description: 54*0e8011faSEmmanuel Vadot The phandle to System Register Controller syscon node. 55*0e8011faSEmmanuel Vadot 56*0e8011faSEmmanuel Vadot perst-gpios: 57*0e8011faSEmmanuel Vadot description: GPIO controlled connection to PERST# signal 58*0e8011faSEmmanuel Vadot maxItems: 1 59*0e8011faSEmmanuel Vadot 60*0e8011faSEmmanuel Vadot phys: 61*0e8011faSEmmanuel Vadot description: 62*0e8011faSEmmanuel Vadot Specified PHY is attached to PCIe controller. 63*0e8011faSEmmanuel Vadot maxItems: 1 64*0e8011faSEmmanuel Vadot 65*0e8011faSEmmanuel Vadotrequired: 66*0e8011faSEmmanuel Vadot - clocks 67*0e8011faSEmmanuel Vadot - resets 68*0e8011faSEmmanuel Vadot - starfive,stg-syscon 69*0e8011faSEmmanuel Vadot 70*0e8011faSEmmanuel VadotunevaluatedProperties: false 71*0e8011faSEmmanuel Vadot 72*0e8011faSEmmanuel Vadotexamples: 73*0e8011faSEmmanuel Vadot - | 74*0e8011faSEmmanuel Vadot #include <dt-bindings/gpio/gpio.h> 75*0e8011faSEmmanuel Vadot soc { 76*0e8011faSEmmanuel Vadot #address-cells = <2>; 77*0e8011faSEmmanuel Vadot #size-cells = <2>; 78*0e8011faSEmmanuel Vadot 79*0e8011faSEmmanuel Vadot pcie@940000000 { 80*0e8011faSEmmanuel Vadot compatible = "starfive,jh7110-pcie"; 81*0e8011faSEmmanuel Vadot reg = <0x9 0x40000000 0x0 0x10000000>, 82*0e8011faSEmmanuel Vadot <0x0 0x2b000000 0x0 0x1000000>; 83*0e8011faSEmmanuel Vadot reg-names = "cfg", "apb"; 84*0e8011faSEmmanuel Vadot #address-cells = <3>; 85*0e8011faSEmmanuel Vadot #size-cells = <2>; 86*0e8011faSEmmanuel Vadot #interrupt-cells = <1>; 87*0e8011faSEmmanuel Vadot device_type = "pci"; 88*0e8011faSEmmanuel Vadot ranges = <0x82000000 0x0 0x30000000 0x0 0x30000000 0x0 0x08000000>, 89*0e8011faSEmmanuel Vadot <0xc3000000 0x9 0x00000000 0x9 0x00000000 0x0 0x40000000>; 90*0e8011faSEmmanuel Vadot starfive,stg-syscon = <&stg_syscon>; 91*0e8011faSEmmanuel Vadot bus-range = <0x0 0xff>; 92*0e8011faSEmmanuel Vadot interrupt-parent = <&plic>; 93*0e8011faSEmmanuel Vadot interrupts = <56>; 94*0e8011faSEmmanuel Vadot interrupt-map-mask = <0x0 0x0 0x0 0x7>; 95*0e8011faSEmmanuel Vadot interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc0 0x1>, 96*0e8011faSEmmanuel Vadot <0x0 0x0 0x0 0x2 &pcie_intc0 0x2>, 97*0e8011faSEmmanuel Vadot <0x0 0x0 0x0 0x3 &pcie_intc0 0x3>, 98*0e8011faSEmmanuel Vadot <0x0 0x0 0x0 0x4 &pcie_intc0 0x4>; 99*0e8011faSEmmanuel Vadot msi-controller; 100*0e8011faSEmmanuel Vadot clocks = <&syscrg 86>, 101*0e8011faSEmmanuel Vadot <&stgcrg 10>, 102*0e8011faSEmmanuel Vadot <&stgcrg 8>, 103*0e8011faSEmmanuel Vadot <&stgcrg 9>; 104*0e8011faSEmmanuel Vadot clock-names = "noc", "tl", "axi_mst0", "apb"; 105*0e8011faSEmmanuel Vadot resets = <&stgcrg 11>, 106*0e8011faSEmmanuel Vadot <&stgcrg 12>, 107*0e8011faSEmmanuel Vadot <&stgcrg 13>, 108*0e8011faSEmmanuel Vadot <&stgcrg 14>, 109*0e8011faSEmmanuel Vadot <&stgcrg 15>, 110*0e8011faSEmmanuel Vadot <&stgcrg 16>; 111*0e8011faSEmmanuel Vadot perst-gpios = <&gpios 26 GPIO_ACTIVE_LOW>; 112*0e8011faSEmmanuel Vadot phys = <&pciephy0>; 113*0e8011faSEmmanuel Vadot 114*0e8011faSEmmanuel Vadot pcie_intc0: interrupt-controller { 115*0e8011faSEmmanuel Vadot #address-cells = <0>; 116*0e8011faSEmmanuel Vadot #interrupt-cells = <1>; 117*0e8011faSEmmanuel Vadot interrupt-controller; 118*0e8011faSEmmanuel Vadot }; 119*0e8011faSEmmanuel Vadot }; 120*0e8011faSEmmanuel Vadot }; 121