slim-msm-ctrl.txt 4.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. Qualcomm Technologies,Inc SLIMBUS controller
  2. Qualcomm Technologies,Inc implements 2 type of slimbus controllers:
  3. 1. "qcom,slim-msm": This controller is used if applications processor
  4. driver is controlling slimbus master component. This driver is
  5. responsible for communicating with slave HW directly using
  6. messaging interface, and doing data channel management. Driver
  7. also communicates with satellite component (driver implemented
  8. by other execution environment, such as ADSP) to get its
  9. requirements for data channel and bandwidth requirements.
  10. 2. "qcom,slim-ngd": This controller is used if applications processor
  11. driver is controlling slimbus satellite component (also known as
  12. Non-ported Generic Device, or NGD). This is light-weight slimbus
  13. controller responsible for communicating with slave HW directly
  14. over bus messaging interface, and communicating with master component
  15. (driver residing on other execution environment, such as ADSP)
  16. for bandwidth and data channel management.
  17. Required properties:
  18. - reg : Offset and length of the register region(s) for the device
  19. - reg-names : Register region name(s) referenced in reg above
  20. Required register resource entries are:
  21. "slimbus_physical": Physical adderss of controller register blocks
  22. "slimbus_bam_physical": Physical address of Bus Access Module (BAM)
  23. for this controller
  24. - compatible : should be "qcom,slim-msm" if this is master component driver
  25. - compatible : should be "qcom,slim-ngd" if this is satellite component driver
  26. - cell-index : SLIMBUS number used for this controller
  27. - interrupts : Interrupt numbers used by this controller
  28. - interrupt-names : Required interrupt resource entries are:
  29. "slimbus_irq" : Interrupt for SLIMBUS core
  30. "slimbus_bam_irq" : Interrupt for controller core's BAM
  31. Optional property:
  32. - reg entry for slew rate : If slew rate control register is provided, this
  33. entry should be used.
  34. - reg-name for slew rate: "slimbus_slew_reg"
  35. - qcom,min-clk-gear : Minimum clock gear at which this controller can be run
  36. (range: 1-10)
  37. Default value will be 1 if this entry is not specified
  38. - qcom,max-clk-gear: Maximum clock gear at which this controller can be run
  39. (range: 1-10)
  40. Default value will be 10 if this entry is not specified
  41. - qcom,rxreg-access: This boolean indicates that slimbus RX should use direct
  42. register access to receive data. This flag is only needed if
  43. BAM pipe is not available to receive data from slimbus
  44. - qcom,apps-ch-pipes: This value represents BAM pipe-mask used by application
  45. processor for data channels. If this property is not defined,
  46. default mask of 0 is used indicating that application
  47. processor does not use BAM pipes for data channels.
  48. - qcom,ea-pc: This value represents product code (PC) field of enumeration
  49. address (EA) for the QTI slimbus controller hardware.
  50. This value is needed if data-channels originating from apps
  51. are to be used, so that application processor can query
  52. logical address of the ported generic device to be used.
  53. Other than PC, fields of EA are same across platforms.
  54. - qcom,slim-mdm: This value provides the identifier of slimbus component on
  55. external mdm. This property enables the slimbus driver to
  56. register and receive subsytem restart notification from mdm
  57. and follow appropriate steps to ensure communication on the bus
  58. can be resumed after mdm-restart.
  59. - qcom,subsys-name: This value provides the subsystem name where slimbus master
  60. is present. This property enables the slimbus driver to
  61. register and receive subsytem restart notification from subsystem
  62. and follow appropriate steps to ensure communication on the bus
  63. can be resumed after subsytem restart. By default slimbus driver
  64. register with ADSP subsystem.
  65. - qcom,iommu-s1-bypass: Boolean flag to bypass IOMMU stage 1 translation.
  66. Optional subnodes:
  67. qcom,iommu_slim_ctrl_cb : Child node representing the Slimbus controller
  68. context bank.
  69. Subnode Required properties:
  70. - compatible : Must be "qcom,slim-ctrl-cb";
  71. - iommus : A list of phandle and IOMMU specifier pairs that
  72. describe the IOMMU master interfaces of the device.
  73. Example:
  74. slim@fe12f000 {
  75. cell-index = <1>;
  76. compatible = "qcom,slim-msm";
  77. reg = <0xfe12f000 0x35000>,
  78. <0xfe104000 0x20000>;
  79. reg-names = "slimbus_physical", "slimbus_bam_physical";
  80. interrupts = <0 163 0 0 164 0>;
  81. interrupt-names = "slimbus_irq", "slimbus_bam_irq";
  82. qcom,min-clk-gear = <10>;
  83. qcom,rxreg-access;
  84. qcom,apps-ch-pipes = <0x60000000>;
  85. qcom,ea-pc = <0x30>;
  86. iommu_slim_ctrl_cb: qcom,iommu_slim_ctrl_cb {
  87. compatible = "qcom,iommu-slim-ctrl-cb";
  88. iommus = <&apps_smmu 0x1 0x0>;
  89. };
  90. };