xref: /freebsd/sys/contrib/device-tree/Bindings/media/mediatek,mt8195-jpegenc.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1*8bab661aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*8bab661aSEmmanuel Vadot%YAML 1.2
3*8bab661aSEmmanuel Vadot---
4*8bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/media/mediatek,mt8195-jpegenc.yaml#
5*8bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8bab661aSEmmanuel Vadot
7*8bab661aSEmmanuel Vadottitle: MediaTek JPEG Encoder
8*8bab661aSEmmanuel Vadot
9*8bab661aSEmmanuel Vadotmaintainers:
10*8bab661aSEmmanuel Vadot  - kyrie wu <kyrie.wu@mediatek.corp-partner.google.com>
11*8bab661aSEmmanuel Vadot
12*8bab661aSEmmanuel Vadotdescription:
13*8bab661aSEmmanuel Vadot  MediaTek JPEG Encoder is the JPEG encode hardware present in MediaTek SoCs
14*8bab661aSEmmanuel Vadot
15*8bab661aSEmmanuel Vadotproperties:
16*8bab661aSEmmanuel Vadot  compatible:
17*8bab661aSEmmanuel Vadot    const: mediatek,mt8195-jpgenc
18*8bab661aSEmmanuel Vadot
19*8bab661aSEmmanuel Vadot  power-domains:
20*8bab661aSEmmanuel Vadot    maxItems: 1
21*8bab661aSEmmanuel Vadot
22*8bab661aSEmmanuel Vadot  iommus:
23*8bab661aSEmmanuel Vadot    maxItems: 4
24*8bab661aSEmmanuel Vadot    description:
25*8bab661aSEmmanuel Vadot      Points to the respective IOMMU block with master port as argument, see
26*8bab661aSEmmanuel Vadot      Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details.
27*8bab661aSEmmanuel Vadot      Ports are according to the HW.
28*8bab661aSEmmanuel Vadot
29*8bab661aSEmmanuel Vadot  "#address-cells":
30*8bab661aSEmmanuel Vadot    const: 2
31*8bab661aSEmmanuel Vadot
32*8bab661aSEmmanuel Vadot  "#size-cells":
33*8bab661aSEmmanuel Vadot    const: 2
34*8bab661aSEmmanuel Vadot
35*8bab661aSEmmanuel Vadot  ranges: true
36*8bab661aSEmmanuel Vadot
37*8bab661aSEmmanuel Vadot# Required child node:
38*8bab661aSEmmanuel VadotpatternProperties:
39*8bab661aSEmmanuel Vadot  "^jpgenc@[0-9a-f]+$":
40*8bab661aSEmmanuel Vadot    type: object
41*8bab661aSEmmanuel Vadot    description:
42*8bab661aSEmmanuel Vadot      The jpeg encoder hardware device node which should be added as subnodes to
43*8bab661aSEmmanuel Vadot      the main jpeg node.
44*8bab661aSEmmanuel Vadot
45*8bab661aSEmmanuel Vadot    properties:
46*8bab661aSEmmanuel Vadot      compatible:
47*8bab661aSEmmanuel Vadot        const: mediatek,mt8195-jpgenc-hw
48*8bab661aSEmmanuel Vadot
49*8bab661aSEmmanuel Vadot      reg:
50*8bab661aSEmmanuel Vadot        maxItems: 1
51*8bab661aSEmmanuel Vadot
52*8bab661aSEmmanuel Vadot      iommus:
53*8bab661aSEmmanuel Vadot        minItems: 1
54*8bab661aSEmmanuel Vadot        maxItems: 32
55*8bab661aSEmmanuel Vadot        description:
56*8bab661aSEmmanuel Vadot          List of the hardware port in respective IOMMU block for current Socs.
57*8bab661aSEmmanuel Vadot          Refer to bindings/iommu/mediatek,iommu.yaml.
58*8bab661aSEmmanuel Vadot
59*8bab661aSEmmanuel Vadot      interrupts:
60*8bab661aSEmmanuel Vadot        maxItems: 1
61*8bab661aSEmmanuel Vadot
62*8bab661aSEmmanuel Vadot      clocks:
63*8bab661aSEmmanuel Vadot        maxItems: 1
64*8bab661aSEmmanuel Vadot
65*8bab661aSEmmanuel Vadot      clock-names:
66*8bab661aSEmmanuel Vadot        items:
67*8bab661aSEmmanuel Vadot          - const: jpgenc
68*8bab661aSEmmanuel Vadot
69*8bab661aSEmmanuel Vadot      power-domains:
70*8bab661aSEmmanuel Vadot        maxItems: 1
71*8bab661aSEmmanuel Vadot
72*8bab661aSEmmanuel Vadot    required:
73*8bab661aSEmmanuel Vadot      - compatible
74*8bab661aSEmmanuel Vadot      - reg
75*8bab661aSEmmanuel Vadot      - iommus
76*8bab661aSEmmanuel Vadot      - interrupts
77*8bab661aSEmmanuel Vadot      - clocks
78*8bab661aSEmmanuel Vadot      - clock-names
79*8bab661aSEmmanuel Vadot      - power-domains
80*8bab661aSEmmanuel Vadot
81*8bab661aSEmmanuel Vadot    additionalProperties: false
82*8bab661aSEmmanuel Vadot
83*8bab661aSEmmanuel Vadotrequired:
84*8bab661aSEmmanuel Vadot  - compatible
85*8bab661aSEmmanuel Vadot  - power-domains
86*8bab661aSEmmanuel Vadot  - iommus
87*8bab661aSEmmanuel Vadot  - ranges
88*8bab661aSEmmanuel Vadot
89*8bab661aSEmmanuel VadotadditionalProperties: false
90*8bab661aSEmmanuel Vadot
91*8bab661aSEmmanuel Vadotexamples:
92*8bab661aSEmmanuel Vadot  - |
93*8bab661aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
94*8bab661aSEmmanuel Vadot    #include <dt-bindings/memory/mt8195-memory-port.h>
95*8bab661aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
96*8bab661aSEmmanuel Vadot    #include <dt-bindings/clock/mt8195-clk.h>
97*8bab661aSEmmanuel Vadot    #include <dt-bindings/power/mt8195-power.h>
98*8bab661aSEmmanuel Vadot
99*8bab661aSEmmanuel Vadot    soc {
100*8bab661aSEmmanuel Vadot        #address-cells = <2>;
101*8bab661aSEmmanuel Vadot        #size-cells = <2>;
102*8bab661aSEmmanuel Vadot
103*8bab661aSEmmanuel Vadot        jpgenc-master {
104*8bab661aSEmmanuel Vadot            compatible = "mediatek,mt8195-jpgenc";
105*8bab661aSEmmanuel Vadot            power-domains = <&spm MT8195_POWER_DOMAIN_VENC_CORE1>;
106*8bab661aSEmmanuel Vadot            iommus = <&iommu_vpp M4U_PORT_L20_JPGENC_Y_RDMA>,
107*8bab661aSEmmanuel Vadot                     <&iommu_vpp M4U_PORT_L20_JPGENC_C_RDMA>,
108*8bab661aSEmmanuel Vadot                     <&iommu_vpp M4U_PORT_L20_JPGENC_Q_TABLE>,
109*8bab661aSEmmanuel Vadot                     <&iommu_vpp M4U_PORT_L20_JPGENC_BSDMA>;
110*8bab661aSEmmanuel Vadot            #address-cells = <2>;
111*8bab661aSEmmanuel Vadot            #size-cells = <2>;
112*8bab661aSEmmanuel Vadot            ranges;
113*8bab661aSEmmanuel Vadot
114*8bab661aSEmmanuel Vadot            jpgenc@1a030000 {
115*8bab661aSEmmanuel Vadot                compatible = "mediatek,mt8195-jpgenc-hw";
116*8bab661aSEmmanuel Vadot                reg = <0 0x1a030000 0 0x10000>;
117*8bab661aSEmmanuel Vadot                iommus = <&iommu_vdo M4U_PORT_L19_JPGENC_Y_RDMA>,
118*8bab661aSEmmanuel Vadot                         <&iommu_vdo M4U_PORT_L19_JPGENC_C_RDMA>,
119*8bab661aSEmmanuel Vadot                         <&iommu_vdo M4U_PORT_L19_JPGENC_Q_TABLE>,
120*8bab661aSEmmanuel Vadot                         <&iommu_vdo M4U_PORT_L19_JPGENC_BSDMA>;
121*8bab661aSEmmanuel Vadot                interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH 0>;
122*8bab661aSEmmanuel Vadot                clocks = <&vencsys CLK_VENC_JPGENC>;
123*8bab661aSEmmanuel Vadot                clock-names = "jpgenc";
124*8bab661aSEmmanuel Vadot                power-domains = <&spm MT8195_POWER_DOMAIN_VENC>;
125*8bab661aSEmmanuel Vadot            };
126*8bab661aSEmmanuel Vadot
127*8bab661aSEmmanuel Vadot            jpgenc@1b030000 {
128*8bab661aSEmmanuel Vadot                compatible = "mediatek,mt8195-jpgenc-hw";
129*8bab661aSEmmanuel Vadot                reg = <0 0x1b030000 0 0x10000>;
130*8bab661aSEmmanuel Vadot                iommus = <&iommu_vpp M4U_PORT_L20_JPGENC_Y_RDMA>,
131*8bab661aSEmmanuel Vadot                         <&iommu_vpp M4U_PORT_L20_JPGENC_C_RDMA>,
132*8bab661aSEmmanuel Vadot                         <&iommu_vpp M4U_PORT_L20_JPGENC_Q_TABLE>,
133*8bab661aSEmmanuel Vadot                         <&iommu_vpp M4U_PORT_L20_JPGENC_BSDMA>;
134*8bab661aSEmmanuel Vadot                interrupts = <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH 0>;
135*8bab661aSEmmanuel Vadot                clocks = <&vencsys_core1 CLK_VENC_CORE1_JPGENC>;
136*8bab661aSEmmanuel Vadot                clock-names = "jpgenc";
137*8bab661aSEmmanuel Vadot                power-domains = <&spm MT8195_POWER_DOMAIN_VENC_CORE1>;
138*8bab661aSEmmanuel Vadot            };
139*8bab661aSEmmanuel Vadot        };
140*8bab661aSEmmanuel Vadot    };
141