msm_ep_pcie.txt 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. MSM PCI express endpoint
  2. Required properties:
  3. - compatible: should be "qcom,pcie-ep".
  4. - reg: should contain PCIe register maps.
  5. - reg-names: indicates various resources passed to driver by name.
  6. Should be "msi", "dm_core", "elbi", "parf", "phy", "mmio".
  7. These correspond to different modules within the PCIe domain.
  8. - #address-cells: Should provide a value of 0.
  9. - interrupt-parent: Should be the PCIe device node itself here.
  10. - interrupts: Should be in the format <0 1 2> and it is an index to the
  11. interrupt-map that contains PCIe related interrupts.
  12. - #interrupt-cells: Should provide a value of 1.
  13. - #interrupt-map-mask: should provide a value of 0xffffffff.
  14. - interrupt-map: Must create mapping for the number of interrupts
  15. that are defined in above interrupts property.
  16. For PCIe device node, it should define 6 mappings for
  17. the corresponding PCIe interrupts supporting the
  18. specification.
  19. - interrupt-names: indicates interrupts passed to driver by name.
  20. Should be "int_pm_turnoff", "int_dstate_change",
  21. "int_l1sub_timeout", "int_link_up",
  22. "int_link_down", "int_bridge_flush_n".
  23. - perst-gpio: PERST GPIO specified by PCIe spec.
  24. - wake-gpio: WAKE GPIO specified by PCIe spec.
  25. - clkreq-gpio: CLKREQ GPIO specified by PCIe spec.
  26. - <supply-name>-supply: phandle to the regulator device tree node.
  27. Refer to the schematics for the corresponding voltage regulators.
  28. vreg-1.8-supply: phandle to the analog supply for the PCIe controller.
  29. vreg-0.9-supply: phandle to the analog supply for the PCIe controller.
  30. Optional Properties:
  31. - qcom,<supply-name>-voltage-level: specifies voltage levels for supply.
  32. Should be specified in pairs (max, min, optimal), units uV.
  33. - clock-names: list of names of clock inputs.
  34. Should be "pcie_0_pipe_clk",
  35. "pcie_0_aux_clk", "pcie_0_cfg_ahb_clk",
  36. "pcie_0_mstr_axi_clk", "pcie_0_slv_axi_clk",
  37. "pcie_0_ldo";
  38. - max-clock-frequency-hz: list of the maximum operating frequencies stored
  39. in the same order of clock names;
  40. - resets: reset specifier pair consists of phandle for the reset controller
  41. and reset lines used by this controller.
  42. - reset-names: reset signal names sorted in the same order as the property
  43. of resets.
  44. - qcom,pcie-phy-ver: version of PCIe PHY.
  45. - qcom,phy-init: The initialization sequence to bring up the PCIe PHY.
  46. Should be specified in groups (offset, value, delay, direction).
  47. - qcom,phy-status-reg: Register offset for PHY status.
  48. - qcom,dbi-base-reg: Register offset for DBI base address.
  49. - qcom,slv-space-reg: Register offset for slave address space size.
  50. - qcom,pcie-link-speed: generation of PCIe link speed. The value could be
  51. 1, 2 or 3.
  52. - qcom,pcie-active-config: boolean type; active configuration of PCIe
  53. addressing.
  54. - qcom,pcie-aggregated-irq: boolean type; interrupts are aggregated.
  55. - qcom,pcie-mhi-a7-irq: boolean type; MHI a7 has separate irq.
  56. - qcom,pcie-perst-enum: Link enumeration will be triggered by PERST
  57. deassertion.
  58. - mdm2apstatus-gpio: GPIO used by PCIe endpoint side to notify the host side.
  59. - Refer to "Documentation/devicetree/bindings/arm/msm/msm_bus.txt" for
  60. below optional properties:
  61. - qcom,msm-bus,name
  62. - qcom,msm-bus,num-cases
  63. - qcom,msm-bus,num-paths
  64. - qcom,msm-bus,vectors-KBps
  65. Example:
  66. pcie_ep: qcom,pcie@bfffd000 {
  67. compatible = "qcom,pcie-ep";
  68. reg = <0xbfffd000 0x1000>,
  69. <0xbfffe000 0x1000>,
  70. <0xbffff000 0x1000>,
  71. <0xfc520000 0x2000>,
  72. <0xfc526000 0x1000>,
  73. <0xfc527000 0x1000>;
  74. reg-names = "msi", "dm_core", "elbi", "parf", "phy", "mmio";
  75. #address-cells = <0>;
  76. interrupt-parent = <&pcie_ep>;
  77. interrupts = <0 1 2 3 4 5>;
  78. #interrupt-cells = <1>;
  79. interrupt-map-mask = <0xffffffff>;
  80. interrupt-map = <0 &intc 0 44 0
  81. 1 &intc 0 46 0
  82. 2 &intc 0 47 0
  83. 3 &intc 0 50 0
  84. 4 &intc 0 51 0
  85. 5 &intc 0 52 0>;
  86. interrupt-names = "int_pm_turnoff", "int_dstate_change",
  87. "int_l1sub_timeout", "int_link_up",
  88. "int_link_down", "int_bridge_flush_n";
  89. perst-gpio = <&msmgpio 65 0>;
  90. wake-gpio = <&msmgpio 61 0>;
  91. clkreq-gpio = <&msmgpio 64 0>;
  92. mdm2apstatus-gpio = <&tlmm_pinmux 16 0>;
  93. gdsc-vdd-supply = <&gdsc_pcie_0>;
  94. vreg-1.8-supply = <&pmd9635_l8>;
  95. vreg-0.9-supply = <&pmd9635_l4>;
  96. qcom,vreg-1.8-voltage-level = <1800000 1800000 1000>;
  97. qcom,vreg-0.9-voltage-level = <950000 950000 24000>;
  98. clock-names = "pcie_0_pipe_clk",
  99. "pcie_0_aux_clk", "pcie_0_cfg_ahb_clk",
  100. "pcie_0_mstr_axi_clk", "pcie_0_slv_axi_clk",
  101. "pcie_0_ldo";
  102. max-clock-frequency-hz = <62500000>, <1000000>,
  103. <0>, <0>, <0>, <0>;
  104. resets = <&clock_gcc GCC_PCIE_BCR>,
  105. <&clock_gcc GCC_PCIE_PHY_BCR>;
  106. reset-names = "pcie_0_core_reset", "pcie_0_phy_reset";
  107. qcom,msm-bus,name = "pcie-ep";
  108. qcom,msm-bus,num-cases = <2>;
  109. qcom,msm-bus,num-paths = <1>;
  110. qcom,msm-bus,vectors-KBps =
  111. <45 512 0 0>,
  112. <45 512 500 800>;
  113. qcom,pcie-link-speed = <1>;
  114. qcom,pcie-active-config;
  115. qcom,pcie-aggregated-irq;
  116. qcom,pcie-mhi-a7-irq;
  117. qcom,pcie-perst-enum;
  118. qcom,phy-status-reg = <0x728>;
  119. qcom,dbi-base-reg = <0x168>;
  120. qcom,slv-space-reg = <0x16c>;
  121. qcom,phy-init = <0x604 0x03 0x0 0x1
  122. 0x048 0x08 0x0 0x1
  123. 0x64c 0x4d 0x0 0x1
  124. 0x600 0x00 0x0 0x1
  125. 0x608 0x03 0x0 0x1>;
  126. };