rockchip-pcie.txt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. * Rockchip AXI PCIe Root Port Bridge DT description
  2. Required properties:
  3. - #address-cells: Address representation for root ports, set to <3>
  4. - #size-cells: Size representation for root ports, set to <2>
  5. - #interrupt-cells: specifies the number of cells needed to encode an
  6. interrupt source. The value must be 1.
  7. - compatible: Should contain "rockchip,rk3399-pcie"
  8. - reg: Two register ranges as listed in the reg-names property
  9. - reg-names: Must include the following names
  10. - "axi-base"
  11. - "apb-base"
  12. - clocks: Must contain an entry for each entry in clock-names.
  13. See ../clocks/clock-bindings.txt for details.
  14. - clock-names: Must include the following entries:
  15. - "aclk"
  16. - "aclk-perf"
  17. - "hclk"
  18. - "pm"
  19. - msi-map: Maps a Requester ID to an MSI controller and associated
  20. msi-specifier data. See ./pci-msi.txt
  21. - phys: From PHY bindings: Phandle for the Generic PHY for PCIe.
  22. - phy-names: MUST be "pcie-phy".
  23. - interrupts: Three interrupt entries must be specified.
  24. - interrupt-names: Must include the following names
  25. - "sys"
  26. - "legacy"
  27. - "client"
  28. - resets: Must contain seven entries for each entry in reset-names.
  29. See ../reset/reset.txt for details.
  30. - reset-names: Must include the following names
  31. - "core"
  32. - "mgmt"
  33. - "mgmt-sticky"
  34. - "pipe"
  35. - "pm"
  36. - "aclk"
  37. - "pclk"
  38. - pinctrl-names : The pin control state names
  39. - pinctrl-0: The "default" pinctrl state
  40. - #interrupt-cells: specifies the number of cells needed to encode an
  41. interrupt source. The value must be 1.
  42. - interrupt-map-mask and interrupt-map: standard PCI properties
  43. Optional Property:
  44. - ep-gpios: contain the entry for pre-reset gpio
  45. - num-lanes: number of lanes to use
  46. - vpcie3v3-supply: The phandle to the 3.3v regulator to use for PCIe.
  47. - vpcie1v8-supply: The phandle to the 1.8v regulator to use for PCIe.
  48. - vpcie0v9-supply: The phandle to the 0.9v regulator to use for PCIe.
  49. *Interrupt controller child node*
  50. The core controller provides a single interrupt for legacy INTx. The PCIe node
  51. should contain an interrupt controller node as a target for the PCI
  52. 'interrupt-map' property. This node represents the domain at which the four
  53. INTx interrupts are decoded and routed.
  54. Required properties for Interrupt controller child node:
  55. - interrupt-controller: identifies the node as an interrupt controller
  56. - #address-cells: specifies the number of cells needed to encode an
  57. address. The value must be 0.
  58. - #interrupt-cells: specifies the number of cells needed to encode an
  59. interrupt source. The value must be 1.
  60. Example:
  61. pcie0: pcie@f8000000 {
  62. compatible = "rockchip,rk3399-pcie";
  63. #address-cells = <3>;
  64. #size-cells = <2>;
  65. clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
  66. <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
  67. clock-names = "aclk", "aclk-perf",
  68. "hclk", "pm";
  69. bus-range = <0x0 0x1>;
  70. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
  71. <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
  72. <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>;
  73. interrupt-names = "sys", "legacy", "client";
  74. assigned-clocks = <&cru SCLK_PCIEPHY_REF>;
  75. assigned-clock-parents = <&cru SCLK_PCIEPHY_REF100M>;
  76. assigned-clock-rates = <100000000>;
  77. ep-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
  78. ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x600000
  79. 0x81000000 0x0 0xfa600000 0x0 0xfa600000 0x0 0x100000>;
  80. num-lanes = <4>;
  81. msi-map = <0x0 &its 0x0 0x1000>;
  82. reg = <0x0 0xf8000000 0x0 0x2000000>, <0x0 0xfd000000 0x0 0x1000000>;
  83. reg-names = "axi-base", "apb-base";
  84. resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
  85. <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE> ,
  86. <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>, <&cru SRST_A_PCIE>;
  87. reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
  88. "pm", "pclk", "aclk";
  89. phys = <&pcie_phy>;
  90. phy-names = "pcie-phy";
  91. pinctrl-names = "default";
  92. pinctrl-0 = <&pcie_clkreq>;
  93. #interrupt-cells = <1>;
  94. interrupt-map-mask = <0 0 0 7>;
  95. interrupt-map = <0 0 0 1 &pcie0_intc 0>,
  96. <0 0 0 2 &pcie0_intc 1>,
  97. <0 0 0 3 &pcie0_intc 2>,
  98. <0 0 0 4 &pcie0_intc 3>;
  99. pcie0_intc: interrupt-controller {
  100. interrupt-controller;
  101. #address-cells = <0>;
  102. #interrupt-cells = <1>;
  103. };
  104. };