Add device-tree binding documentation for the Qualcomm Page Compression Engine (QPaCE), including the resources needed to describe it in SoC device trees.
QPaCE accelerates page compression and decompression for use with the zram block device. Signed-off-by: Georgi Djakov <[email protected]> --- .../bindings/soc/qcom/qcom,hawi-qpace.yaml | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,hawi-qpace.yaml diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,hawi-qpace.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,hawi-qpace.yaml new file mode 100644 index 000000000000..b7ae50f34f16 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,hawi-qpace.yaml @@ -0,0 +1,94 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/qcom/qcom,hawi-qpace.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Page Compression Engine (QPaCE) + +maintainers: + - Georgi Djakov <[email protected]> + +description: + QPaCE is a page-oriented hardware compression engine found on Qualcomm + SoCs. It is composed of a number of compression, decompression and copy + engines and exposes both a low-latency urgent path for synchronous + single-page operations and a high-throughput ring-based path for batched + asynchronous requests. + +properties: + compatible: + items: + - enum: + - qcom,hawi-qpace + + reg: + maxItems: 1 + description: + Single contiguous register window covering all QPaCE sub-regions + from the GEN registers base through the EE registers. + + iommus: + items: + - description: IOMMU mapping for compression engine read DMA + - description: IOMMU mapping for compression engine write DMA + - description: IOMMU mapping for decompression engine read DMA + - description: IOMMU mapping for decompression engine write DMA + + dma-coherent: true + + interconnects: + maxItems: 1 + + interconnect-names: + items: + - const: qpace-mem + + interrupts: + items: + - description: Ring completion and bus error interrupt + - description: Urgent command completion interrupt + + interrupt-names: + items: + - const: ring-and-bus-err + - const: urgent + +required: + - compatible + - reg + - iommus + - interconnects + - interconnect-names + - interrupts + - interrupt-names + +additionalProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/interconnect/qcom,icc.h> + #include <dt-bindings/interconnect/qcom,hawi-rpmh.h> + + soc { + #address-cells = <2>; + #size-cells = <2>; + + compression@31400000 { + compatible = "qcom,hawi-qpace"; + reg = <0x0 0x31400000 0x0 0x80000>; + iommus = <&apps_smmu 0x1c20 0x13>, + <&apps_smmu 0x1c24 0x13>, + <&apps_smmu 0x1c28 0x13>, + <&apps_smmu 0x1c2c 0x13>; + dma-coherent; + interconnects = <&gem_noc MASTER_QPACE QCOM_ICC_TAG_ALWAYS + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>; + interconnect-names = "qpace-mem"; + interrupts = <GIC_ESPI 72 IRQ_TYPE_LEVEL_HIGH>, + <GIC_ESPI 71 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "ring-and-bus-err", + "urgent"; + }; + };
