xref: /freebsd/sys/contrib/device-tree/Bindings/pci/rockchip,rk3399-pcie-ep.yaml (revision cb7aa33ac6cd46a5434798e50363136e64f3ae98)
1*cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*cb7aa33aSEmmanuel Vadot%YAML 1.2
3*cb7aa33aSEmmanuel Vadot---
4*cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/rockchip,rk3399-pcie-ep.yaml#
5*cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*cb7aa33aSEmmanuel Vadot
7*cb7aa33aSEmmanuel Vadottitle: Rockchip AXI PCIe Endpoint
8*cb7aa33aSEmmanuel Vadot
9*cb7aa33aSEmmanuel Vadotmaintainers:
10*cb7aa33aSEmmanuel Vadot  - Shawn Lin <shawn.lin@rock-chips.com>
11*cb7aa33aSEmmanuel Vadot
12*cb7aa33aSEmmanuel VadotallOf:
13*cb7aa33aSEmmanuel Vadot  - $ref: /schemas/pci/pci-ep.yaml#
14*cb7aa33aSEmmanuel Vadot  - $ref: rockchip,rk3399-pcie-common.yaml#
15*cb7aa33aSEmmanuel Vadot
16*cb7aa33aSEmmanuel Vadotproperties:
17*cb7aa33aSEmmanuel Vadot  compatible:
18*cb7aa33aSEmmanuel Vadot    const: rockchip,rk3399-pcie-ep
19*cb7aa33aSEmmanuel Vadot
20*cb7aa33aSEmmanuel Vadot  reg: true
21*cb7aa33aSEmmanuel Vadot
22*cb7aa33aSEmmanuel Vadot  reg-names:
23*cb7aa33aSEmmanuel Vadot    items:
24*cb7aa33aSEmmanuel Vadot      - const: apb-base
25*cb7aa33aSEmmanuel Vadot      - const: mem-base
26*cb7aa33aSEmmanuel Vadot
27*cb7aa33aSEmmanuel Vadot  rockchip,max-outbound-regions:
28*cb7aa33aSEmmanuel Vadot    description: Maximum number of outbound regions
29*cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
30*cb7aa33aSEmmanuel Vadot    maximum: 32
31*cb7aa33aSEmmanuel Vadot    default: 32
32*cb7aa33aSEmmanuel Vadot
33*cb7aa33aSEmmanuel Vadotrequired:
34*cb7aa33aSEmmanuel Vadot  - rockchip,max-outbound-regions
35*cb7aa33aSEmmanuel Vadot
36*cb7aa33aSEmmanuel VadotunevaluatedProperties: false
37*cb7aa33aSEmmanuel Vadot
38*cb7aa33aSEmmanuel Vadotexamples:
39*cb7aa33aSEmmanuel Vadot  - |
40*cb7aa33aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
41*cb7aa33aSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
42*cb7aa33aSEmmanuel Vadot    #include <dt-bindings/clock/rk3399-cru.h>
43*cb7aa33aSEmmanuel Vadot
44*cb7aa33aSEmmanuel Vadot    bus {
45*cb7aa33aSEmmanuel Vadot        #address-cells = <2>;
46*cb7aa33aSEmmanuel Vadot        #size-cells = <2>;
47*cb7aa33aSEmmanuel Vadot
48*cb7aa33aSEmmanuel Vadot        pcie-ep@f8000000 {
49*cb7aa33aSEmmanuel Vadot            compatible = "rockchip,rk3399-pcie-ep";
50*cb7aa33aSEmmanuel Vadot            reg = <0x0 0xfd000000 0x0 0x1000000>, <0x0 0x80000000 0x0 0x20000>;
51*cb7aa33aSEmmanuel Vadot            reg-names = "apb-base", "mem-base";
52*cb7aa33aSEmmanuel Vadot            clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
53*cb7aa33aSEmmanuel Vadot              <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
54*cb7aa33aSEmmanuel Vadot            clock-names = "aclk", "aclk-perf",
55*cb7aa33aSEmmanuel Vadot                    "hclk", "pm";
56*cb7aa33aSEmmanuel Vadot            max-functions = /bits/ 8 <8>;
57*cb7aa33aSEmmanuel Vadot            num-lanes = <4>;
58*cb7aa33aSEmmanuel Vadot            resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
59*cb7aa33aSEmmanuel Vadot              <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE> ,
60*cb7aa33aSEmmanuel Vadot              <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>, <&cru SRST_A_PCIE>;
61*cb7aa33aSEmmanuel Vadot            reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
62*cb7aa33aSEmmanuel Vadot                    "pm", "pclk", "aclk";
63*cb7aa33aSEmmanuel Vadot            phys = <&pcie_phy 0>, <&pcie_phy 1>, <&pcie_phy 2>, <&pcie_phy 3>;
64*cb7aa33aSEmmanuel Vadot            phy-names = "pcie-phy-0", "pcie-phy-1", "pcie-phy-2", "pcie-phy-3";
65*cb7aa33aSEmmanuel Vadot            rockchip,max-outbound-regions = <16>;
66*cb7aa33aSEmmanuel Vadot        };
67*cb7aa33aSEmmanuel Vadot    };
68*cb7aa33aSEmmanuel Vadot...
69