qcom,gsbi.txt 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. QCOM GSBI (General Serial Bus Interface) Driver
  2. The GSBI controller is modeled as a node with zero or more child nodes, each
  3. representing a serial sub-node device that is mux'd as part of the GSBI
  4. configuration settings. The mode setting will govern the input/output mode of
  5. the 4 GSBI IOs.
  6. Required properties:
  7. - compatible: Should contain "qcom,gsbi-v1.0.0"
  8. - cell-index: Should contain the GSBI index
  9. - reg: Address range for GSBI registers
  10. - clocks: required clock
  11. - clock-names: must contain "iface" entry
  12. - qcom,mode : indicates MUX value for configuration of the serial interface.
  13. Please reference dt-bindings/soc/qcom,gsbi.h for valid mux values.
  14. Optional properties:
  15. - qcom,crci : indicates CRCI MUX value for QUP CRCI ports. Please reference
  16. dt-bindings/soc/qcom,gsbi.h for valid CRCI mux values.
  17. - syscon-tcsr: indicates phandle of TCSR syscon node. Required if child uses
  18. dma.
  19. Required properties if child node exists:
  20. - #address-cells: Must be 1
  21. - #size-cells: Must be 1
  22. - ranges: Must be present
  23. Properties for children:
  24. A GSBI controller node can contain 0 or more child nodes representing serial
  25. devices. These serial devices can be a QCOM UART, I2C controller, spi
  26. controller, or some combination of aforementioned devices.
  27. See the following for child node definitions:
  28. Documentation/devicetree/bindings/i2c/qcom,i2c-qup.txt
  29. Documentation/devicetree/bindings/spi/qcom,spi-qup.txt
  30. Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt
  31. Example for APQ8064:
  32. #include <dt-bindings/soc/qcom,gsbi.h>
  33. gsbi4@16300000 {
  34. compatible = "qcom,gsbi-v1.0.0";
  35. cell-index = <4>;
  36. reg = <0x16300000 0x100>;
  37. clocks = <&gcc GSBI4_H_CLK>;
  38. clock-names = "iface";
  39. #address-cells = <1>;
  40. #size-cells = <1>;
  41. ranges;
  42. qcom,mode = <GSBI_PROT_I2C_UART>;
  43. qcom,crci = <GSBI_CRCI_QUP>;
  44. syscon-tcsr = <&tcsr>;
  45. /* child nodes go under here */
  46. i2c_qup4: i2c@16380000 {
  47. compatible = "qcom,i2c-qup-v1.1.1";
  48. reg = <0x16380000 0x1000>;
  49. interrupts = <0 153 0>;
  50. clocks = <&gcc GSBI4_QUP_CLK>, <&gcc GSBI4_H_CLK>;
  51. clock-names = "core", "iface";
  52. clock-frequency = <200000>;
  53. #address-cells = <1>;
  54. #size-cells = <0>;
  55. };
  56. uart4: serial@16340000 {
  57. compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
  58. reg = <0x16340000 0x1000>,
  59. <0x16300000 0x1000>;
  60. interrupts = <0 152 0x0>;
  61. clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>;
  62. clock-names = "core", "iface";
  63. status = "ok";
  64. };
  65. };
  66. tcsr: syscon@1a400000 {
  67. compatible = "qcom,apq8064-tcsr", "syscon";
  68. reg = <0x1a400000 0x100>;
  69. };