qcom,spi-geni-qcom.txt 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. GENI based Qualcomm Universal Peripheral (QUP) Serial Peripheral Interface (SPI)
  2. The QUP v3 core is a GENI based AHB slave that provides a common data path
  3. (an output FIFO and an input FIFO) for serial peripheral interface (SPI)
  4. mini-core.
  5. SPI in master mode supports up to 50MHz, up to four chip selects, programmable
  6. data path from 4 bits to 32 bits and numerous protocol variants.
  7. Required properties:
  8. - compatible: Should contain "qcom,spi-geni"
  9. - reg: Should contain base register location and length
  10. - interrupts: Interrupt number used by this controller
  11. - clocks: Should contain the core clock and the AHB clock.
  12. - clock-names: Should be "core" for the core clock and "iface" for the
  13. AHB clock.
  14. - pinctrl-names: Property should contain "default" and "sleep" for the
  15. pin configurations during the usecase and during idle.
  16. - pinctrl-x: phandle to the default/sleep pin configurations.
  17. - #address-cells: Number of cells required to define a chip select
  18. address on the SPI bus. Should be set to 1.
  19. - #size-cells: Should be zero.
  20. - spi-max-frequency: Specifies maximum SPI clock frequency,
  21. Units - Hz. Definition as per
  22. Documentation/devicetree/bindings/spi/spi-bus.txt
  23. - qcom,wrapper-core: Wrapper QUPv3 core containing this SPI controller.
  24. Optional properties:
  25. - qcom,rt: Specifies if the framework worker thread for this
  26. controller device should have "real-time" priority.
  27. -qcom,disable-autosuspend: Specifies to disable runtime PM auto suspend.
  28. SPI slave nodes must be children of the SPI master node and can contain
  29. properties described in Documentation/devicetree/bindings/spi/spi-bus.txt
  30. Example:
  31. qupv3_spi10: spi@a84000 {
  32. compatible = "qcom,spi-geni";
  33. #address-cells = <1>;
  34. #size-cells = <0>;
  35. reg = <0xa84000 0x4000>;
  36. reg-names = "se_phys";
  37. clock-names = "se-clk", "m-ahb", "s-ahb";
  38. clocks = <&clock_gcc GCC_QUPV3_WRAP0_S0_CLK>,
  39. <&clock_gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
  40. <&clock_gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
  41. pinctrl-names = "default", "sleep";
  42. pinctrl-0 = <&qup_1_spi_2_active>;
  43. pinctrl-1 = <&qup_1_spi_2_sleep>;
  44. interrupts = <GIC_SPI 354 0>;
  45. spi-max-frequency = <19200000>;
  46. qcom,wrapper-core = <&qupv3_0>;
  47. dev@0 {
  48. compatible = "dummy,slave";
  49. reg = <0>;
  50. spi-max-frequency = <9600000>;
  51. };
  52. };