# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/media/mediatek,mt8195-jpegdec.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: MediaTek JPEG Decoder maintainers: - kyrie wu <kyrie.wu@mediatek.corp-partner.google.com> description: MediaTek JPEG Decoder is the JPEG decode hardware present in MediaTek SoCs properties: compatible: const: mediatek,mt8195-jpgdec power-domains: maxItems: 1 iommus: maxItems: 6 description: Points to the respective IOMMU block with master port as argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. Ports are according to the HW. "#address-cells": const: 2 "#size-cells": const: 2 ranges: true # Required child node: patternProperties: "^jpgdec@[0-9a-f]+$": type: object description: The jpeg decoder hardware device node which should be added as subnodes to the main jpeg node. properties: compatible: const: mediatek,mt8195-jpgdec-hw reg: maxItems: 1 iommus: minItems: 1 maxItems: 32 description: List of the hardware port in respective IOMMU block for current Socs. Refer to bindings/iommu/mediatek,iommu.yaml. interrupts: maxItems: 1 clocks: maxItems: 1 clock-names: items: - const: jpgdec power-domains: maxItems: 1 required: - compatible - reg - iommus - interrupts - clocks - clock-names - power-domains additionalProperties: false required: - compatible - power-domains - iommus - ranges additionalProperties: false examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/memory/mt8195-memory-port.h> #include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/clock/mt8195-clk.h> #include <dt-bindings/power/mt8195-power.h> soc { #address-cells = <2>; #size-cells = <2>; jpgdec-master { compatible = "mediatek,mt8195-jpgdec"; power-domains = <&spm MT8195_POWER_DOMAIN_VDEC1>; iommus = <&iommu_vpp M4U_PORT_L19_JPGDEC_WDMA0>, <&iommu_vpp M4U_PORT_L19_JPGDEC_BSDMA0>, <&iommu_vpp M4U_PORT_L19_JPGDEC_WDMA1>, <&iommu_vpp M4U_PORT_L19_JPGDEC_BSDMA1>, <&iommu_vpp M4U_PORT_L19_JPGDEC_BUFF_OFFSET1>, <&iommu_vpp M4U_PORT_L19_JPGDEC_BUFF_OFFSET0>; #address-cells = <2>; #size-cells = <2>; ranges; jpgdec@1a040000 { compatible = "mediatek,mt8195-jpgdec-hw"; reg = <0 0x1a040000 0 0x10000>;/* JPGDEC_C0 */ iommus = <&iommu_vdo M4U_PORT_L19_JPGDEC_WDMA0>, <&iommu_vdo M4U_PORT_L19_JPGDEC_BSDMA0>, <&iommu_vdo M4U_PORT_L19_JPGDEC_WDMA1>, <&iommu_vdo M4U_PORT_L19_JPGDEC_BSDMA1>, <&iommu_vdo M4U_PORT_L19_JPGDEC_BUFF_OFFSET1>, <&iommu_vdo M4U_PORT_L19_JPGDEC_BUFF_OFFSET0>; interrupts = <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH 0>; clocks = <&vencsys CLK_VENC_JPGDEC>; clock-names = "jpgdec"; power-domains = <&spm MT8195_POWER_DOMAIN_VDEC0>; }; jpgdec@1a050000 { compatible = "mediatek,mt8195-jpgdec-hw"; reg = <0 0x1a050000 0 0x10000>;/* JPGDEC_C1 */ iommus = <&iommu_vdo M4U_PORT_L19_JPGDEC_WDMA0>, <&iommu_vdo M4U_PORT_L19_JPGDEC_BSDMA0>, <&iommu_vdo M4U_PORT_L19_JPGDEC_WDMA1>, <&iommu_vdo M4U_PORT_L19_JPGDEC_BSDMA1>, <&iommu_vdo M4U_PORT_L19_JPGDEC_BUFF_OFFSET1>, <&iommu_vdo M4U_PORT_L19_JPGDEC_BUFF_OFFSET0>; interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH 0>; clocks = <&vencsys CLK_VENC_JPGDEC_C1>; clock-names = "jpgdec"; power-domains = <&spm MT8195_POWER_DOMAIN_VDEC1>; }; jpgdec@1b040000 { compatible = "mediatek,mt8195-jpgdec-hw"; reg = <0 0x1b040000 0 0x10000>;/* JPGDEC_C2 */ iommus = <&iommu_vpp M4U_PORT_L20_JPGDEC_WDMA0>, <&iommu_vpp M4U_PORT_L20_JPGDEC_BSDMA0>, <&iommu_vpp M4U_PORT_L20_JPGDEC_WDMA1>, <&iommu_vpp M4U_PORT_L20_JPGDEC_BSDMA1>, <&iommu_vpp M4U_PORT_L20_JPGDEC_BUFF_OFFSET1>, <&iommu_vpp M4U_PORT_L20_JPGDEC_BUFF_OFFSET0>; interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH 0>; clocks = <&vencsys_core1 CLK_VENC_CORE1_JPGDEC>; clock-names = "jpgdec"; power-domains = <&spm MT8195_POWER_DOMAIN_VDEC2>; }; }; };