1fac71e4eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2fac71e4eSEmmanuel Vadot%YAML 1.2 3fac71e4eSEmmanuel Vadot--- 4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/media/nxp,imx8-isi.yaml# 5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6fac71e4eSEmmanuel Vadot 7fac71e4eSEmmanuel Vadottitle: i.MX8 Image Sensing Interface 8fac71e4eSEmmanuel Vadot 9fac71e4eSEmmanuel Vadotmaintainers: 10fac71e4eSEmmanuel Vadot - Laurent Pinchart <laurent.pinchart@ideasonboard.com> 11fac71e4eSEmmanuel Vadot 12fac71e4eSEmmanuel Vadotdescription: | 13fac71e4eSEmmanuel Vadot The Image Sensing Interface (ISI) combines image processing pipelines with 14fac71e4eSEmmanuel Vadot DMA engines to process and capture frames originating from a variety of 15fac71e4eSEmmanuel Vadot sources. The inputs to the ISI go through Pixel Link interfaces, and their 16fac71e4eSEmmanuel Vadot number and nature is SoC-dependent. They cover both capture interfaces (MIPI 17fac71e4eSEmmanuel Vadot CSI-2 RX, HDMI RX, ...) and display engine outputs for writeback support. 18fac71e4eSEmmanuel Vadot 19fac71e4eSEmmanuel Vadotproperties: 20fac71e4eSEmmanuel Vadot compatible: 21fac71e4eSEmmanuel Vadot enum: 22fac71e4eSEmmanuel Vadot - fsl,imx8mn-isi 23fac71e4eSEmmanuel Vadot - fsl,imx8mp-isi 24aa1a8ff2SEmmanuel Vadot - fsl,imx93-isi 25fac71e4eSEmmanuel Vadot 26fac71e4eSEmmanuel Vadot reg: 27fac71e4eSEmmanuel Vadot maxItems: 1 28fac71e4eSEmmanuel Vadot 29fac71e4eSEmmanuel Vadot clocks: 30fac71e4eSEmmanuel Vadot items: 31fac71e4eSEmmanuel Vadot - description: The AXI clock 32fac71e4eSEmmanuel Vadot - description: The APB clock 33fac71e4eSEmmanuel Vadot # TODO: Check if the per-channel ipg_proc_clk clocks need to be specified 34fac71e4eSEmmanuel Vadot # as well, in case some SoCs have the ability to control them separately. 35fac71e4eSEmmanuel Vadot # This may be the case of the i.MX8[DQ]X(P) 36fac71e4eSEmmanuel Vadot 37fac71e4eSEmmanuel Vadot clock-names: 38fac71e4eSEmmanuel Vadot items: 39fac71e4eSEmmanuel Vadot - const: axi 40fac71e4eSEmmanuel Vadot - const: apb 41fac71e4eSEmmanuel Vadot 42fac71e4eSEmmanuel Vadot fsl,blk-ctrl: 43fac71e4eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 44fac71e4eSEmmanuel Vadot description: 45fac71e4eSEmmanuel Vadot A phandle referencing the block control that contains the CSIS to ISI 46fac71e4eSEmmanuel Vadot gasket. 47fac71e4eSEmmanuel Vadot 48fac71e4eSEmmanuel Vadot interrupts: 49fac71e4eSEmmanuel Vadot description: Processing pipeline interrupts, one per pipeline 50fac71e4eSEmmanuel Vadot minItems: 1 51fac71e4eSEmmanuel Vadot maxItems: 2 52fac71e4eSEmmanuel Vadot 53fac71e4eSEmmanuel Vadot power-domains: 54fac71e4eSEmmanuel Vadot maxItems: 1 55fac71e4eSEmmanuel Vadot 56fac71e4eSEmmanuel Vadot ports: 57fac71e4eSEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/ports 58fac71e4eSEmmanuel Vadot description: | 59fac71e4eSEmmanuel Vadot Ports represent the Pixel Link inputs to the ISI. Their number and 60fac71e4eSEmmanuel Vadot assignment are model-dependent. Each port shall have a single endpoint. 61fac71e4eSEmmanuel Vadot 62fac71e4eSEmmanuel Vadotrequired: 63fac71e4eSEmmanuel Vadot - compatible 64fac71e4eSEmmanuel Vadot - reg 65fac71e4eSEmmanuel Vadot - interrupts 66fac71e4eSEmmanuel Vadot - clocks 67fac71e4eSEmmanuel Vadot - clock-names 68fac71e4eSEmmanuel Vadot - fsl,blk-ctrl 69fac71e4eSEmmanuel Vadot - ports 70fac71e4eSEmmanuel Vadot 71fac71e4eSEmmanuel VadotallOf: 72fac71e4eSEmmanuel Vadot - if: 73fac71e4eSEmmanuel Vadot properties: 74fac71e4eSEmmanuel Vadot compatible: 75fac71e4eSEmmanuel Vadot contains: 76aa1a8ff2SEmmanuel Vadot enum: 77aa1a8ff2SEmmanuel Vadot - fsl,imx8mn-isi 78aa1a8ff2SEmmanuel Vadot - fsl,imx93-isi 79fac71e4eSEmmanuel Vadot then: 80fac71e4eSEmmanuel Vadot properties: 81fac71e4eSEmmanuel Vadot interrupts: 82fac71e4eSEmmanuel Vadot maxItems: 1 83fac71e4eSEmmanuel Vadot ports: 84fac71e4eSEmmanuel Vadot properties: 85fac71e4eSEmmanuel Vadot port@0: 86fac71e4eSEmmanuel Vadot description: MIPI CSI-2 RX 87*7d0873ebSEmmanuel Vadot port@1: false 88fac71e4eSEmmanuel Vadot required: 89fac71e4eSEmmanuel Vadot - port@0 90fac71e4eSEmmanuel Vadot 91fac71e4eSEmmanuel Vadot - if: 92fac71e4eSEmmanuel Vadot properties: 93fac71e4eSEmmanuel Vadot compatible: 94fac71e4eSEmmanuel Vadot contains: 95fac71e4eSEmmanuel Vadot const: fsl,imx8mp-isi 96fac71e4eSEmmanuel Vadot then: 97fac71e4eSEmmanuel Vadot properties: 98fac71e4eSEmmanuel Vadot interrupts: 99fac71e4eSEmmanuel Vadot maxItems: 2 100fac71e4eSEmmanuel Vadot ports: 101fac71e4eSEmmanuel Vadot properties: 102fac71e4eSEmmanuel Vadot port@0: 103fac71e4eSEmmanuel Vadot description: MIPI CSI-2 RX 0 104fac71e4eSEmmanuel Vadot port@1: 105fac71e4eSEmmanuel Vadot description: MIPI CSI-2 RX 1 106fac71e4eSEmmanuel Vadot required: 107fac71e4eSEmmanuel Vadot - port@0 108fac71e4eSEmmanuel Vadot - port@1 109fac71e4eSEmmanuel Vadot 110fac71e4eSEmmanuel VadotadditionalProperties: false 111fac71e4eSEmmanuel Vadot 112fac71e4eSEmmanuel Vadotexamples: 113fac71e4eSEmmanuel Vadot - | 114fac71e4eSEmmanuel Vadot #include <dt-bindings/clock/imx8mn-clock.h> 115fac71e4eSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 116fac71e4eSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 117fac71e4eSEmmanuel Vadot #include <dt-bindings/power/imx8mn-power.h> 118fac71e4eSEmmanuel Vadot 119fac71e4eSEmmanuel Vadot isi@32e20000 { 120fac71e4eSEmmanuel Vadot compatible = "fsl,imx8mn-isi"; 121fac71e4eSEmmanuel Vadot reg = <0x32e20000 0x100>; 122fac71e4eSEmmanuel Vadot interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 123fac71e4eSEmmanuel Vadot clocks = <&clk IMX8MN_CLK_DISP_AXI_ROOT>, 124fac71e4eSEmmanuel Vadot <&clk IMX8MN_CLK_DISP_APB_ROOT>; 125fac71e4eSEmmanuel Vadot clock-names = "axi", "apb"; 126fac71e4eSEmmanuel Vadot fsl,blk-ctrl = <&disp_blk_ctrl>; 127fac71e4eSEmmanuel Vadot power-domains = <&disp_blk_ctrl IMX8MN_DISPBLK_PD_ISI>; 128fac71e4eSEmmanuel Vadot 129fac71e4eSEmmanuel Vadot ports { 130fac71e4eSEmmanuel Vadot #address-cells = <1>; 131fac71e4eSEmmanuel Vadot #size-cells = <0>; 132fac71e4eSEmmanuel Vadot 133fac71e4eSEmmanuel Vadot port@0 { 134fac71e4eSEmmanuel Vadot reg = <0>; 135fac71e4eSEmmanuel Vadot isi_in: endpoint { 136fac71e4eSEmmanuel Vadot remote-endpoint = <&mipi_csi_out>; 137fac71e4eSEmmanuel Vadot }; 138fac71e4eSEmmanuel Vadot }; 139fac71e4eSEmmanuel Vadot }; 140fac71e4eSEmmanuel Vadot }; 141fac71e4eSEmmanuel Vadot 142fac71e4eSEmmanuel Vadot - | 143fac71e4eSEmmanuel Vadot #include <dt-bindings/clock/imx8mp-clock.h> 144fac71e4eSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 145fac71e4eSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 146fac71e4eSEmmanuel Vadot 147fac71e4eSEmmanuel Vadot isi@32e00000 { 148fac71e4eSEmmanuel Vadot compatible = "fsl,imx8mp-isi"; 149fac71e4eSEmmanuel Vadot reg = <0x32e00000 0x4000>; 150fac71e4eSEmmanuel Vadot interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 151fac71e4eSEmmanuel Vadot <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 152fac71e4eSEmmanuel Vadot clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>, 153fac71e4eSEmmanuel Vadot <&clk IMX8MP_CLK_MEDIA_APB_ROOT>; 154fac71e4eSEmmanuel Vadot clock-names = "axi", "apb"; 155fac71e4eSEmmanuel Vadot fsl,blk-ctrl = <&media_blk_ctrl>; 156fac71e4eSEmmanuel Vadot power-domains = <&mediamix_pd>; 157fac71e4eSEmmanuel Vadot 158fac71e4eSEmmanuel Vadot ports { 159fac71e4eSEmmanuel Vadot #address-cells = <1>; 160fac71e4eSEmmanuel Vadot #size-cells = <0>; 161fac71e4eSEmmanuel Vadot 162fac71e4eSEmmanuel Vadot port@0 { 163fac71e4eSEmmanuel Vadot reg = <0>; 164fac71e4eSEmmanuel Vadot isi_in_0: endpoint { 165fac71e4eSEmmanuel Vadot remote-endpoint = <&mipi_csi_0_out>; 166fac71e4eSEmmanuel Vadot }; 167fac71e4eSEmmanuel Vadot }; 168fac71e4eSEmmanuel Vadot 169fac71e4eSEmmanuel Vadot port@1 { 170fac71e4eSEmmanuel Vadot reg = <1>; 171fac71e4eSEmmanuel Vadot isi_in_1: endpoint { 172fac71e4eSEmmanuel Vadot remote-endpoint = <&mipi_csi_1_out>; 173fac71e4eSEmmanuel Vadot }; 174fac71e4eSEmmanuel Vadot }; 175fac71e4eSEmmanuel Vadot }; 176fac71e4eSEmmanuel Vadot }; 177fac71e4eSEmmanuel Vadot... 178