qcom,bam-dmux.yaml 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/net/qcom,bam-dmux.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Qualcomm BAM Data Multiplexer
  7. maintainers:
  8. - Stephan Gerhold <stephan@gerhold.net>
  9. description: |
  10. The BAM Data Multiplexer provides access to the network data channels
  11. of modems integrated into many older Qualcomm SoCs, e.g. Qualcomm MSM8916
  12. or MSM8974. It is built using a simple protocol layer on top of a DMA engine
  13. (Qualcomm BAM DMA) and bidirectional interrupts to coordinate power control.
  14. Note that this schema does not directly describe a hardware block but rather
  15. a firmware convention that combines several other hardware blocks (such as the
  16. DMA engine). As such it is specific to a firmware version, not a particular
  17. SoC or hardware version.
  18. properties:
  19. compatible:
  20. const: qcom,bam-dmux
  21. interrupts:
  22. description:
  23. Interrupts used by the modem to signal the AP.
  24. Both interrupts must be declared as IRQ_TYPE_EDGE_BOTH.
  25. items:
  26. - description: Power control
  27. - description: Power control acknowledgment
  28. interrupt-names:
  29. items:
  30. - const: pc
  31. - const: pc-ack
  32. qcom,smem-states:
  33. $ref: /schemas/types.yaml#/definitions/phandle-array
  34. description: State bits used by the AP to signal the modem.
  35. items:
  36. - description: Power control
  37. - description: Power control acknowledgment
  38. qcom,smem-state-names:
  39. description: Names for the state bits used by the AP to signal the modem.
  40. items:
  41. - const: pc
  42. - const: pc-ack
  43. dmas:
  44. items:
  45. - description: TX DMA channel phandle
  46. - description: RX DMA channel phandle
  47. dma-names:
  48. items:
  49. - const: tx
  50. - const: rx
  51. required:
  52. - compatible
  53. - interrupts
  54. - interrupt-names
  55. - qcom,smem-states
  56. - qcom,smem-state-names
  57. - dmas
  58. - dma-names
  59. additionalProperties: false
  60. examples:
  61. - |
  62. #include <dt-bindings/interrupt-controller/irq.h>
  63. mpss: remoteproc {
  64. bam-dmux {
  65. compatible = "qcom,bam-dmux";
  66. interrupt-parent = <&modem_smsm>;
  67. interrupts = <1 IRQ_TYPE_EDGE_BOTH>, <11 IRQ_TYPE_EDGE_BOTH>;
  68. interrupt-names = "pc", "pc-ack";
  69. qcom,smem-states = <&apps_smsm 1>, <&apps_smsm 11>;
  70. qcom,smem-state-names = "pc", "pc-ack";
  71. dmas = <&bam_dmux_dma 4>, <&bam_dmux_dma 5>;
  72. dma-names = "tx", "rx";
  73. };
  74. };