-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
media: dt-bindings: media: Add i.MX8 ISI DT bindings
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 memory inputs. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
- Loading branch information
Laurent Pinchart
authored and
Mauro Carvalho Chehab
committed
Apr 15, 2023
1 parent
671397d
commit b28e241
Showing
1 changed file
with
173 additions
and
0 deletions.
There are no files selected for viewing
173 changes: 173 additions & 0 deletions
173
Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,173 @@ | ||
# 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 | ||
|
||
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: | ||
const: fsl,imx8mn-isi | ||
then: | ||
properties: | ||
interrupts: | ||
maxItems: 1 | ||
ports: | ||
properties: | ||
port@0: | ||
description: MIPI CSI-2 RX | ||
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>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
... |