| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/media/nxp,imx8-isi.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: i.MX8 Image Sensing Interface |
| |
| maintainers: |
| - Laurent Pinchart <laurent.pinchart@ideasonboard.com> |
| |
| description: | |
| The Image Sensing Interface (ISI) combines image processing pipelines with |
| DMA engines to process and capture frames originating from a variety of |
| sources. The inputs to the ISI go through Pixel Link interfaces, and their |
| number and nature is SoC-dependent. They cover both capture interfaces (MIPI |
| CSI-2 RX, HDMI RX, ...) and display engine outputs for writeback support. |
| |
| properties: |
| compatible: |
| enum: |
| - fsl,imx8mn-isi |
| - fsl,imx8mp-isi |
| - fsl,imx93-isi |
| |
| reg: |
| maxItems: 1 |
| |
| clocks: |
| items: |
| - description: The AXI clock |
| - description: The APB clock |
| # TODO: Check if the per-channel ipg_proc_clk clocks need to be specified |
| # as well, in case some SoCs have the ability to control them separately. |
| # This may be the case of the i.MX8[DQ]X(P) |
| |
| clock-names: |
| items: |
| - const: axi |
| - const: apb |
| |
| fsl,blk-ctrl: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: |
| A phandle referencing the block control that contains the CSIS to ISI |
| gasket. |
| |
| interrupts: |
| description: Processing pipeline interrupts, one per pipeline |
| minItems: 1 |
| maxItems: 2 |
| |
| power-domains: |
| maxItems: 1 |
| |
| ports: |
| $ref: /schemas/graph.yaml#/properties/ports |
| description: | |
| Ports represent the Pixel Link inputs to the ISI. Their number and |
| assignment are model-dependent. Each port shall have a single endpoint. |
| |
| required: |
| - compatible |
| - reg |
| - interrupts |
| - clocks |
| - clock-names |
| - fsl,blk-ctrl |
| - ports |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - fsl,imx8mn-isi |
| - fsl,imx93-isi |
| then: |
| properties: |
| interrupts: |
| maxItems: 1 |
| ports: |
| properties: |
| port@0: |
| description: MIPI CSI-2 RX |
| port@1: false |
| required: |
| - port@0 |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: fsl,imx8mp-isi |
| then: |
| properties: |
| interrupts: |
| maxItems: 2 |
| ports: |
| properties: |
| port@0: |
| description: MIPI CSI-2 RX 0 |
| port@1: |
| description: MIPI CSI-2 RX 1 |
| required: |
| - port@0 |
| - port@1 |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/imx8mn-clock.h> |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| #include <dt-bindings/power/imx8mn-power.h> |
| |
| isi@32e20000 { |
| compatible = "fsl,imx8mn-isi"; |
| reg = <0x32e20000 0x100>; |
| interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; |
| clocks = <&clk IMX8MN_CLK_DISP_AXI_ROOT>, |
| <&clk IMX8MN_CLK_DISP_APB_ROOT>; |
| clock-names = "axi", "apb"; |
| fsl,blk-ctrl = <&disp_blk_ctrl>; |
| power-domains = <&disp_blk_ctrl IMX8MN_DISPBLK_PD_ISI>; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| isi_in: endpoint { |
| remote-endpoint = <&mipi_csi_out>; |
| }; |
| }; |
| }; |
| }; |
| |
| - | |
| #include <dt-bindings/clock/imx8mp-clock.h> |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| |
| isi@32e00000 { |
| compatible = "fsl,imx8mp-isi"; |
| reg = <0x32e00000 0x4000>; |
| interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; |
| clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>, |
| <&clk IMX8MP_CLK_MEDIA_APB_ROOT>; |
| clock-names = "axi", "apb"; |
| fsl,blk-ctrl = <&media_blk_ctrl>; |
| power-domains = <&mediamix_pd>; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| isi_in_0: endpoint { |
| remote-endpoint = <&mipi_csi_0_out>; |
| }; |
| }; |
| |
| port@1 { |
| reg = <1>; |
| isi_in_1: endpoint { |
| remote-endpoint = <&mipi_csi_1_out>; |
| }; |
| }; |
| }; |
| }; |
| ... |