1*4c83f6f0Skyrie wu# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*4c83f6f0Skyrie wu%YAML 1.2 3*4c83f6f0Skyrie wu--- 4*4c83f6f0Skyrie wu$id: http://devicetree.org/schemas/media/mediatek,mt8195-jpegdec.yaml# 5*4c83f6f0Skyrie wu$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4c83f6f0Skyrie wu 7*4c83f6f0Skyrie wutitle: MediaTek JPEG Decoder 8*4c83f6f0Skyrie wu 9*4c83f6f0Skyrie wumaintainers: 10*4c83f6f0Skyrie wu - kyrie wu <kyrie.wu@mediatek.corp-partner.google.com> 11*4c83f6f0Skyrie wu 12*4c83f6f0Skyrie wudescription: 13*4c83f6f0Skyrie wu MediaTek JPEG Decoder is the JPEG decode hardware present in MediaTek SoCs 14*4c83f6f0Skyrie wu 15*4c83f6f0Skyrie wuproperties: 16*4c83f6f0Skyrie wu compatible: 17*4c83f6f0Skyrie wu const: mediatek,mt8195-jpgdec 18*4c83f6f0Skyrie wu 19*4c83f6f0Skyrie wu power-domains: 20*4c83f6f0Skyrie wu maxItems: 1 21*4c83f6f0Skyrie wu 22*4c83f6f0Skyrie wu iommus: 23*4c83f6f0Skyrie wu maxItems: 6 24*4c83f6f0Skyrie wu description: 25*4c83f6f0Skyrie wu Points to the respective IOMMU block with master port as argument, see 26*4c83f6f0Skyrie wu Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details. 27*4c83f6f0Skyrie wu Ports are according to the HW. 28*4c83f6f0Skyrie wu 29*4c83f6f0Skyrie wu dma-ranges: 30*4c83f6f0Skyrie wu maxItems: 1 31*4c83f6f0Skyrie wu description: | 32*4c83f6f0Skyrie wu Describes the physical address space of IOMMU maps to memory. 33*4c83f6f0Skyrie wu 34*4c83f6f0Skyrie wu "#address-cells": 35*4c83f6f0Skyrie wu const: 2 36*4c83f6f0Skyrie wu 37*4c83f6f0Skyrie wu "#size-cells": 38*4c83f6f0Skyrie wu const: 2 39*4c83f6f0Skyrie wu 40*4c83f6f0Skyrie wu ranges: true 41*4c83f6f0Skyrie wu 42*4c83f6f0Skyrie wu# Required child node: 43*4c83f6f0Skyrie wupatternProperties: 44*4c83f6f0Skyrie wu "^jpgdec@[0-9a-f]+$": 45*4c83f6f0Skyrie wu type: object 46*4c83f6f0Skyrie wu description: 47*4c83f6f0Skyrie wu The jpeg decoder hardware device node which should be added as subnodes to 48*4c83f6f0Skyrie wu the main jpeg node. 49*4c83f6f0Skyrie wu 50*4c83f6f0Skyrie wu properties: 51*4c83f6f0Skyrie wu compatible: 52*4c83f6f0Skyrie wu const: mediatek,mt8195-jpgdec-hw 53*4c83f6f0Skyrie wu 54*4c83f6f0Skyrie wu reg: 55*4c83f6f0Skyrie wu maxItems: 1 56*4c83f6f0Skyrie wu 57*4c83f6f0Skyrie wu iommus: 58*4c83f6f0Skyrie wu minItems: 1 59*4c83f6f0Skyrie wu maxItems: 32 60*4c83f6f0Skyrie wu description: 61*4c83f6f0Skyrie wu List of the hardware port in respective IOMMU block for current Socs. 62*4c83f6f0Skyrie wu Refer to bindings/iommu/mediatek,iommu.yaml. 63*4c83f6f0Skyrie wu 64*4c83f6f0Skyrie wu interrupts: 65*4c83f6f0Skyrie wu maxItems: 1 66*4c83f6f0Skyrie wu 67*4c83f6f0Skyrie wu clocks: 68*4c83f6f0Skyrie wu maxItems: 1 69*4c83f6f0Skyrie wu 70*4c83f6f0Skyrie wu clock-names: 71*4c83f6f0Skyrie wu items: 72*4c83f6f0Skyrie wu - const: jpgdec 73*4c83f6f0Skyrie wu 74*4c83f6f0Skyrie wu power-domains: 75*4c83f6f0Skyrie wu maxItems: 1 76*4c83f6f0Skyrie wu 77*4c83f6f0Skyrie wu required: 78*4c83f6f0Skyrie wu - compatible 79*4c83f6f0Skyrie wu - reg 80*4c83f6f0Skyrie wu - iommus 81*4c83f6f0Skyrie wu - interrupts 82*4c83f6f0Skyrie wu - clocks 83*4c83f6f0Skyrie wu - clock-names 84*4c83f6f0Skyrie wu - power-domains 85*4c83f6f0Skyrie wu 86*4c83f6f0Skyrie wu additionalProperties: false 87*4c83f6f0Skyrie wu 88*4c83f6f0Skyrie wurequired: 89*4c83f6f0Skyrie wu - compatible 90*4c83f6f0Skyrie wu - power-domains 91*4c83f6f0Skyrie wu - iommus 92*4c83f6f0Skyrie wu - dma-ranges 93*4c83f6f0Skyrie wu - ranges 94*4c83f6f0Skyrie wu 95*4c83f6f0Skyrie wuadditionalProperties: false 96*4c83f6f0Skyrie wu 97*4c83f6f0Skyrie wuexamples: 98*4c83f6f0Skyrie wu - | 99*4c83f6f0Skyrie wu #include <dt-bindings/interrupt-controller/arm-gic.h> 100*4c83f6f0Skyrie wu #include <dt-bindings/memory/mt8195-memory-port.h> 101*4c83f6f0Skyrie wu #include <dt-bindings/interrupt-controller/irq.h> 102*4c83f6f0Skyrie wu #include <dt-bindings/clock/mt8195-clk.h> 103*4c83f6f0Skyrie wu #include <dt-bindings/power/mt8195-power.h> 104*4c83f6f0Skyrie wu 105*4c83f6f0Skyrie wu soc { 106*4c83f6f0Skyrie wu #address-cells = <2>; 107*4c83f6f0Skyrie wu #size-cells = <2>; 108*4c83f6f0Skyrie wu 109*4c83f6f0Skyrie wu jpgdec-master { 110*4c83f6f0Skyrie wu compatible = "mediatek,mt8195-jpgdec"; 111*4c83f6f0Skyrie wu power-domains = <&spm MT8195_POWER_DOMAIN_VDEC1>; 112*4c83f6f0Skyrie wu iommus = <&iommu_vpp M4U_PORT_L19_JPGDEC_WDMA0>, 113*4c83f6f0Skyrie wu <&iommu_vpp M4U_PORT_L19_JPGDEC_BSDMA0>, 114*4c83f6f0Skyrie wu <&iommu_vpp M4U_PORT_L19_JPGDEC_WDMA1>, 115*4c83f6f0Skyrie wu <&iommu_vpp M4U_PORT_L19_JPGDEC_BSDMA1>, 116*4c83f6f0Skyrie wu <&iommu_vpp M4U_PORT_L19_JPGDEC_BUFF_OFFSET1>, 117*4c83f6f0Skyrie wu <&iommu_vpp M4U_PORT_L19_JPGDEC_BUFF_OFFSET0>; 118*4c83f6f0Skyrie wu dma-ranges = <0x1 0x0 0x0 0x40000000 0x0 0xfff00000>; 119*4c83f6f0Skyrie wu #address-cells = <2>; 120*4c83f6f0Skyrie wu #size-cells = <2>; 121*4c83f6f0Skyrie wu ranges; 122*4c83f6f0Skyrie wu 123*4c83f6f0Skyrie wu jpgdec@1a040000 { 124*4c83f6f0Skyrie wu compatible = "mediatek,mt8195-jpgdec-hw"; 125*4c83f6f0Skyrie wu reg = <0 0x1a040000 0 0x10000>;/* JPGDEC_C0 */ 126*4c83f6f0Skyrie wu iommus = <&iommu_vdo M4U_PORT_L19_JPGDEC_WDMA0>, 127*4c83f6f0Skyrie wu <&iommu_vdo M4U_PORT_L19_JPGDEC_BSDMA0>, 128*4c83f6f0Skyrie wu <&iommu_vdo M4U_PORT_L19_JPGDEC_WDMA1>, 129*4c83f6f0Skyrie wu <&iommu_vdo M4U_PORT_L19_JPGDEC_BSDMA1>, 130*4c83f6f0Skyrie wu <&iommu_vdo M4U_PORT_L19_JPGDEC_BUFF_OFFSET1>, 131*4c83f6f0Skyrie wu <&iommu_vdo M4U_PORT_L19_JPGDEC_BUFF_OFFSET0>; 132*4c83f6f0Skyrie wu interrupts = <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH 0>; 133*4c83f6f0Skyrie wu clocks = <&vencsys CLK_VENC_JPGDEC>; 134*4c83f6f0Skyrie wu clock-names = "jpgdec"; 135*4c83f6f0Skyrie wu power-domains = <&spm MT8195_POWER_DOMAIN_VDEC0>; 136*4c83f6f0Skyrie wu }; 137*4c83f6f0Skyrie wu 138*4c83f6f0Skyrie wu jpgdec@1a050000 { 139*4c83f6f0Skyrie wu compatible = "mediatek,mt8195-jpgdec-hw"; 140*4c83f6f0Skyrie wu reg = <0 0x1a050000 0 0x10000>;/* JPGDEC_C1 */ 141*4c83f6f0Skyrie wu iommus = <&iommu_vdo M4U_PORT_L19_JPGDEC_WDMA0>, 142*4c83f6f0Skyrie wu <&iommu_vdo M4U_PORT_L19_JPGDEC_BSDMA0>, 143*4c83f6f0Skyrie wu <&iommu_vdo M4U_PORT_L19_JPGDEC_WDMA1>, 144*4c83f6f0Skyrie wu <&iommu_vdo M4U_PORT_L19_JPGDEC_BSDMA1>, 145*4c83f6f0Skyrie wu <&iommu_vdo M4U_PORT_L19_JPGDEC_BUFF_OFFSET1>, 146*4c83f6f0Skyrie wu <&iommu_vdo M4U_PORT_L19_JPGDEC_BUFF_OFFSET0>; 147*4c83f6f0Skyrie wu interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH 0>; 148*4c83f6f0Skyrie wu clocks = <&vencsys CLK_VENC_JPGDEC_C1>; 149*4c83f6f0Skyrie wu clock-names = "jpgdec"; 150*4c83f6f0Skyrie wu power-domains = <&spm MT8195_POWER_DOMAIN_VDEC1>; 151*4c83f6f0Skyrie wu }; 152*4c83f6f0Skyrie wu 153*4c83f6f0Skyrie wu jpgdec@1b040000 { 154*4c83f6f0Skyrie wu compatible = "mediatek,mt8195-jpgdec-hw"; 155*4c83f6f0Skyrie wu reg = <0 0x1b040000 0 0x10000>;/* JPGDEC_C2 */ 156*4c83f6f0Skyrie wu iommus = <&iommu_vpp M4U_PORT_L20_JPGDEC_WDMA0>, 157*4c83f6f0Skyrie wu <&iommu_vpp M4U_PORT_L20_JPGDEC_BSDMA0>, 158*4c83f6f0Skyrie wu <&iommu_vpp M4U_PORT_L20_JPGDEC_WDMA1>, 159*4c83f6f0Skyrie wu <&iommu_vpp M4U_PORT_L20_JPGDEC_BSDMA1>, 160*4c83f6f0Skyrie wu <&iommu_vpp M4U_PORT_L20_JPGDEC_BUFF_OFFSET1>, 161*4c83f6f0Skyrie wu <&iommu_vpp M4U_PORT_L20_JPGDEC_BUFF_OFFSET0>; 162*4c83f6f0Skyrie wu interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH 0>; 163*4c83f6f0Skyrie wu clocks = <&vencsys_core1 CLK_VENC_CORE1_JPGDEC>; 164*4c83f6f0Skyrie wu clock-names = "jpgdec"; 165*4c83f6f0Skyrie wu power-domains = <&spm MT8195_POWER_DOMAIN_VDEC2>; 166*4c83f6f0Skyrie wu }; 167*4c83f6f0Skyrie wu }; 168*4c83f6f0Skyrie wu }; 169