Resguardo inicial

This commit is contained in:
lastdragon
2026-09-06 12:53:21 -06:00
parent 662efe3c2a
commit ad2088d178
94853 changed files with 43200404 additions and 0 deletions
@@ -0,0 +1,105 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allegro,al5e.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allegro DVT Video IP Codecs
maintainers:
- Michael Tretter <m.tretter@pengutronix.de>
description: |-
Allegro DVT video IP codecs present in the Xilinx ZynqMP SoC. The IP core may
either be a H.264/H.265 encoder or H.264/H.265 decoder ip core.
Each actual codec engine is controlled by a microcontroller (MCU). Host
software uses a provided mailbox interface to communicate with the MCU. The
MCUs share an interrupt.
properties:
compatible:
oneOf:
- items:
- const: allegro,al5e-1.1
- const: allegro,al5e
- items:
- const: allegro,al5d-1.1
- const: allegro,al5d
reg:
items:
- description: The registers
- description: The SRAM
reg-names:
items:
- const: regs
- const: sram
interrupts:
maxItems: 1
clocks:
items:
- description: Core clock
- description: MCU clock
- description: Core AXI master port clock
- description: MCU AXI master port clock
- description: AXI4-Lite slave port clock
clock-names:
items:
- const: core_clk
- const: mcu_clk
- const: m_axi_core_aclk
- const: m_axi_mcu_aclk
- const: s_axi_lite_aclk
required:
- compatible
- reg
- reg-names
- interrupts
- clocks
- clock-names
additionalProperties: False
examples:
- |
fpga {
#address-cells = <2>;
#size-cells = <2>;
al5e: video-codec@a0009000 {
compatible = "allegro,al5e-1.1", "allegro,al5e";
reg = <0 0xa0009000 0 0x1000>,
<0 0xa0000000 0 0x8000>;
reg-names = "regs", "sram";
interrupts = <0 96 4>;
clocks = <&xlnx_vcu 0>, <&xlnx_vcu 1>,
<&clkc 71>, <&clkc 71>, <&clkc 71>;
clock-names = "core_clk", "mcu_clk", "m_axi_core_aclk",
"m_axi_mcu_aclk", "s_axi_lite_aclk";
};
};
- |
fpga {
#address-cells = <2>;
#size-cells = <2>;
al5d: video-codec@a0029000 {
compatible = "allegro,al5d-1.1", "allegro,al5d";
reg = <0 0xa0029000 0 0x1000>,
<0 0xa0020000 0 0x8000>;
reg-names = "regs", "sram";
interrupts = <0 96 4>;
clocks = <&xlnx_vcu 2>, <&xlnx_vcu 3>,
<&clkc 71>, <&clkc 71>, <&clkc 71>;
clock-names = "core_clk", "mcu_clk", "m_axi_core_aclk",
"m_axi_mcu_aclk", "s_axi_lite_aclk";
};
};
...
@@ -0,0 +1,129 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allwinner,sun4i-a10-csi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A10 CMOS Sensor Interface (CSI)
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
description: |-
The Allwinner A10 and later has a CMOS Sensor Interface to retrieve
frames from a parallel or BT656 sensor.
properties:
compatible:
oneOf:
- const: allwinner,sun4i-a10-csi1
- const: allwinner,sun7i-a20-csi0
- items:
- const: allwinner,sun7i-a20-csi1
- const: allwinner,sun4i-a10-csi1
- items:
- const: allwinner,sun8i-r40-csi0
- const: allwinner,sun7i-a20-csi0
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
oneOf:
- items:
- description: The CSI interface clock
- description: The CSI DRAM clock
- items:
- description: The CSI interface clock
- description: The CSI ISP clock
- description: The CSI DRAM clock
clock-names:
oneOf:
- items:
- const: bus
- const: ram
- items:
- const: bus
- const: isp
- const: ram
resets:
maxItems: 1
# FIXME: This should be made required eventually once every SoC will
# have the MBUS declared.
interconnects:
maxItems: 1
# FIXME: This should be made required eventually once every SoC will
# have the MBUS declared.
interconnect-names:
const: dma-mem
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: video-interfaces.yaml#
unevaluatedProperties: false
properties:
bus-width:
enum: [8, 16]
data-active: true
hsync-active: true
pclk-sample: true
vsync-active: true
required:
- bus-width
- data-active
- hsync-active
- pclk-sample
- vsync-active
required:
- compatible
- reg
- interrupts
- clocks
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/sun7i-a20-ccu.h>
#include <dt-bindings/reset/sun4i-a10-ccu.h>
csi0: csi@1c09000 {
compatible = "allwinner,sun7i-a20-csi0";
reg = <0x01c09000 0x1000>;
interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_AHB_CSI0>, <&ccu CLK_CSI_SCLK>, <&ccu CLK_DRAM_CSI0>;
clock-names = "bus", "isp", "ram";
resets = <&ccu RST_CSI0>;
port {
csi_from_ov5640: endpoint {
remote-endpoint = <&ov5640_to_csi>;
bus-width = <8>;
hsync-active = <1>; /* Active high */
vsync-active = <0>; /* Active low */
data-active = <1>; /* Active high */
pclk-sample = <1>; /* Rising */
};
};
};
...
@@ -0,0 +1,78 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allwinner,sun4i-a10-ir.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A10 Infrared Controller
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
allOf:
- $ref: rc.yaml#
properties:
compatible:
oneOf:
- const: allwinner,sun4i-a10-ir
- const: allwinner,sun5i-a13-ir
- const: allwinner,sun6i-a31-ir
- items:
- enum:
- allwinner,suniv-f1c100s-ir
- allwinner,sun8i-a83t-ir
- allwinner,sun8i-r40-ir
- allwinner,sun50i-a64-ir
- allwinner,sun50i-h6-ir
- allwinner,sun50i-h616-ir
- const: allwinner,sun6i-a31-ir
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Bus Clock
- description: Module Clock
clock-names:
items:
- const: apb
- const: ir
resets:
maxItems: 1
clock-frequency:
default: 8000000
description:
IR Receiver clock frequency, in Hertz.
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
unevaluatedProperties: false
examples:
- |
ir0: ir@1c21800 {
compatible = "allwinner,sun4i-a10-ir";
clocks = <&apb0_gates 6>, <&ir0_clk>;
clock-names = "apb", "ir";
clock-frequency = <3000000>;
resets = <&apb0_rst 1>;
interrupts = <0 5 1>;
reg = <0x01C21800 0x40>;
linux,rc-map-name = "rc-rc6-mce";
};
...
@@ -0,0 +1,104 @@
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allwinner,sun4i-a10-video-engine.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A10 Video Engine
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
properties:
compatible:
enum:
- allwinner,sun4i-a10-video-engine
- allwinner,sun5i-a13-video-engine
- allwinner,sun7i-a20-video-engine
- allwinner,sun8i-a33-video-engine
- allwinner,sun8i-h3-video-engine
- allwinner,sun8i-v3s-video-engine
- allwinner,sun8i-r40-video-engine
- allwinner,sun20i-d1-video-engine
- allwinner,sun50i-a64-video-engine
- allwinner,sun50i-h5-video-engine
- allwinner,sun50i-h6-video-engine
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Bus Clock
- description: Module Clock
- description: RAM Clock
clock-names:
items:
- const: ahb
- const: mod
- const: ram
resets:
maxItems: 1
allwinner,sram:
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- description: phandle to SRAM
- description: register value for device
description: Phandle to the device SRAM
iommus:
maxItems: 1
memory-region:
maxItems: 1
description:
CMA pool to use for buffers allocation instead of the default
CMA pool.
# FIXME: This should be made required eventually once every SoC will
# have the MBUS declared.
interconnects:
maxItems: 1
# FIXME: This should be made required eventually once every SoC will
# have the MBUS declared.
interconnect-names:
const: dma-mem
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- resets
- allwinner,sram
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/sun7i-a20-ccu.h>
#include <dt-bindings/reset/sun4i-a10-ccu.h>
video-codec@1c0e000 {
compatible = "allwinner,sun7i-a20-video-engine";
reg = <0x01c0e000 0x1000>;
interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_AHB_VE>, <&ccu CLK_VE>,
<&ccu CLK_DRAM_VE>;
clock-names = "ahb", "mod", "ram";
resets = <&ccu RST_VE>;
allwinner,sram = <&ve_sram 1>;
};
...
@@ -0,0 +1,68 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allwinner,sun50i-h6-vpu-g2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Hantro G2 VPU codec implemented on Allwinner H6 SoC
maintainers:
- Jernej Skrabec <jernej.skrabec@gmail.com>
description:
Hantro G2 video decode accelerator present on Allwinner H6 SoC.
properties:
compatible:
const: allwinner,sun50i-h6-vpu-g2
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Bus Clock
- description: Module Clock
clock-names:
items:
- const: bus
- const: mod
resets:
maxItems: 1
iommus:
maxItems: 1
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- resets
- iommus
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/sun50i-h6-ccu.h>
#include <dt-bindings/reset/sun50i-h6-ccu.h>
video-codec-g2@1c00000 {
compatible = "allwinner,sun50i-h6-vpu-g2";
reg = <0x01c00000 0x1000>;
interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>;
clock-names = "bus", "mod";
resets = <&ccu RST_BUS_VP9>;
iommus = <&iommu 5>;
};
...
@@ -0,0 +1,149 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allwinner,sun6i-a31-csi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A31 CMOS Sensor Interface (CSI)
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
properties:
compatible:
enum:
- allwinner,sun6i-a31-csi
- allwinner,sun8i-a83t-csi
- allwinner,sun8i-h3-csi
- allwinner,sun8i-v3s-csi
- allwinner,sun50i-a64-csi
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Bus Clock
- description: Module Clock
- description: DRAM Clock
clock-names:
items:
- const: bus
- const: mod
- const: ram
resets:
maxItems: 1
interconnects:
maxItems: 1
interconnect-names:
const: dma-mem
port:
$ref: /schemas/graph.yaml#/$defs/port-base
description: Parallel input port, connect to a parallel sensor
properties:
endpoint:
$ref: video-interfaces.yaml#
unevaluatedProperties: false
properties:
bus-width:
enum: [ 8, 10, 12, 16 ]
pclk-sample: true
hsync-active: true
vsync-active: true
required:
- bus-width
unevaluatedProperties: false
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: "#/properties/port"
port@1:
$ref: /schemas/graph.yaml#/properties/port
description: MIPI CSI-2 bridge input port
port@2:
$ref: /schemas/graph.yaml#/properties/port
description: Internal output port to the ISP
anyOf:
- required:
- port@0
- required:
- port@1
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- resets
oneOf:
- required:
- ports
- required:
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/sun8i-v3s-ccu.h>
#include <dt-bindings/reset/sun8i-v3s-ccu.h>
csi1: csi@1cb4000 {
compatible = "allwinner,sun8i-v3s-csi";
reg = <0x01cb4000 0x1000>;
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_CSI>,
<&ccu CLK_CSI_SCLK>,
<&ccu CLK_DRAM_CSI>;
clock-names = "bus",
"mod",
"ram";
resets = <&ccu RST_BUS_CSI>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
/* Parallel bus endpoint */
csi1_ep: endpoint {
remote-endpoint = <&adv7611_ep>;
bus-width = <16>;
/*
* If hsync-active/vsync-active are missing,
* embedded BT.656 sync is used.
*/
hsync-active = <0>; /* Active low */
vsync-active = <0>; /* Active low */
pclk-sample = <1>; /* Rising */
};
};
};
};
...
@@ -0,0 +1,107 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allwinner,sun6i-a31-isp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A31 Image Signal Processor Driver (ISP)
maintainers:
- Paul Kocialkowski <paul.kocialkowski@bootlin.com>
properties:
compatible:
enum:
- allwinner,sun6i-a31-isp
- allwinner,sun8i-v3s-isp
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Bus Clock
- description: Module Clock
- description: DRAM Clock
clock-names:
items:
- const: bus
- const: mod
- const: ram
resets:
maxItems: 1
interconnects:
maxItems: 1
interconnect-names:
const: dma-mem
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/properties/port
description: CSI0 input port
port@1:
$ref: /schemas/graph.yaml#/properties/port
description: CSI1 input port
if:
properties:
compatible:
contains:
enum:
- allwinner,sun8i-v3s-isp
then:
required:
- port@0
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- resets
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/sun8i-v3s-ccu.h>
#include <dt-bindings/reset/sun8i-v3s-ccu.h>
isp: isp@1cb8000 {
compatible = "allwinner,sun8i-v3s-isp";
reg = <0x01cb8000 0x1000>;
interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_CSI>,
<&ccu CLK_CSI_SCLK>,
<&ccu CLK_DRAM_CSI>;
clock-names = "bus", "mod", "ram";
resets = <&ccu RST_BUS_CSI>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
isp_in_csi0: endpoint {
remote-endpoint = <&csi0_out_isp>;
};
};
};
};
...
@@ -0,0 +1,137 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allwinner,sun6i-a31-mipi-csi2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A31 MIPI CSI-2
maintainers:
- Paul Kocialkowski <paul.kocialkowski@bootlin.com>
properties:
compatible:
oneOf:
- const: allwinner,sun6i-a31-mipi-csi2
- items:
- const: allwinner,sun8i-v3s-mipi-csi2
- const: allwinner,sun6i-a31-mipi-csi2
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Bus Clock
- description: Module Clock
clock-names:
items:
- const: bus
- const: mod
phys:
maxItems: 1
description: MIPI D-PHY
phy-names:
items:
- const: dphy
resets:
maxItems: 1
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/$defs/port-base
description: Input port, connect to a MIPI CSI-2 sensor
properties:
reg:
const: 0
endpoint:
$ref: video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
minItems: 1
maxItems: 4
required:
- data-lanes
unevaluatedProperties: false
port@1:
$ref: /schemas/graph.yaml#/properties/port
description: Output port, connect to a CSI controller
required:
- port@0
- port@1
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- phys
- phy-names
- resets
- ports
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/sun8i-v3s-ccu.h>
#include <dt-bindings/reset/sun8i-v3s-ccu.h>
mipi_csi2: csi@1cb1000 {
compatible = "allwinner,sun8i-v3s-mipi-csi2",
"allwinner,sun6i-a31-mipi-csi2";
reg = <0x01cb1000 0x1000>;
interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_CSI>,
<&ccu CLK_CSI_SCLK>;
clock-names = "bus", "mod";
resets = <&ccu RST_BUS_CSI>;
phys = <&dphy>;
phy-names = "dphy";
ports {
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_in: port@0 {
reg = <0>;
mipi_csi2_in_ov5648: endpoint {
data-lanes = <1 2 3 4>;
remote-endpoint = <&ov5648_out_mipi_csi2>;
};
};
mipi_csi2_out: port@1 {
reg = <1>;
mipi_csi2_out_csi0: endpoint {
remote-endpoint = <&csi0_in_mipi_csi2>;
};
};
};
};
...
@@ -0,0 +1,70 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allwinner,sun8i-a83t-de2-rotate.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A83T DE2 Rotate
maintainers:
- Jernej Skrabec <jernej.skrabec@siol.net>
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
description: |-
The Allwinner A83T and A64 have a rotation core used for
rotating and flipping images.
properties:
compatible:
oneOf:
- const: allwinner,sun8i-a83t-de2-rotate
- items:
- const: allwinner,sun50i-a64-de2-rotate
- const: allwinner,sun8i-a83t-de2-rotate
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Rotate interface clock
- description: Rotate module clock
clock-names:
items:
- const: bus
- const: mod
resets:
maxItems: 1
required:
- compatible
- reg
- interrupts
- clocks
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/sun8i-de2.h>
#include <dt-bindings/reset/sun8i-de2.h>
rotate: rotate@1020000 {
compatible = "allwinner,sun8i-a83t-de2-rotate";
reg = <0x1020000 0x10000>;
interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&display_clocks CLK_BUS_ROT>,
<&display_clocks CLK_ROT>;
clock-names = "bus",
"mod";
resets = <&display_clocks RST_ROT>;
};
...
@@ -0,0 +1,125 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allwinner,sun8i-a83t-mipi-csi2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A83T MIPI CSI-2
maintainers:
- Paul Kocialkowski <paul.kocialkowski@bootlin.com>
properties:
compatible:
const: allwinner,sun8i-a83t-mipi-csi2
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Bus Clock
- description: Module Clock
- description: MIPI-specific Clock
- description: Misc CSI Clock
clock-names:
items:
- const: bus
- const: mod
- const: mipi
- const: misc
resets:
maxItems: 1
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/$defs/port-base
description: Input port, connect to a MIPI CSI-2 sensor
properties:
reg:
const: 0
endpoint:
$ref: video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
minItems: 1
maxItems: 4
required:
- data-lanes
unevaluatedProperties: false
port@1:
$ref: /schemas/graph.yaml#/properties/port
description: Output port, connect to a CSI controller
required:
- port@0
- port@1
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- resets
- ports
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/sun8i-a83t-ccu.h>
#include <dt-bindings/reset/sun8i-a83t-ccu.h>
mipi_csi2: csi@1cb1000 {
compatible = "allwinner,sun8i-a83t-mipi-csi2";
reg = <0x01cb1000 0x1000>;
interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_CSI>,
<&ccu CLK_CSI_SCLK>,
<&ccu CLK_MIPI_CSI>,
<&ccu CLK_CSI_MISC>;
clock-names = "bus", "mod", "mipi", "misc";
resets = <&ccu RST_BUS_CSI>;
ports {
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_in: port@0 {
reg = <0>;
mipi_csi2_in_ov8865: endpoint {
data-lanes = <1 2 3 4>;
remote-endpoint = <&ov8865_out_mipi_csi2>;
};
};
mipi_csi2_out: port@1 {
reg = <1>;
mipi_csi2_out_csi: endpoint {
remote-endpoint = <&csi_in_mipi_csi2>;
};
};
};
};
...
@@ -0,0 +1,83 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/allwinner,sun8i-h3-deinterlace.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner H3 Deinterlace
maintainers:
- Jernej Skrabec <jernej.skrabec@siol.net>
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
description: |-
The Allwinner H3 and later has a deinterlace core used for
deinterlacing interlaced video content.
properties:
compatible:
oneOf:
- const: allwinner,sun8i-h3-deinterlace
- items:
- const: allwinner,sun8i-r40-deinterlace
- const: allwinner,sun8i-h3-deinterlace
- items:
- const: allwinner,sun50i-a64-deinterlace
- const: allwinner,sun8i-h3-deinterlace
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Deinterlace interface clock
- description: Deinterlace module clock
- description: Deinterlace DRAM clock
clock-names:
items:
- const: bus
- const: mod
- const: ram
resets:
maxItems: 1
interconnects:
maxItems: 1
interconnect-names:
const: dma-mem
required:
- compatible
- reg
- interrupts
- clocks
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/sun8i-h3-ccu.h>
#include <dt-bindings/reset/sun8i-h3-ccu.h>
deinterlace: deinterlace@1400000 {
compatible = "allwinner,sun8i-h3-deinterlace";
reg = <0x01400000 0x20000>;
clocks = <&ccu CLK_BUS_DEINTERLACE>,
<&ccu CLK_DEINTERLACE>,
<&ccu CLK_DRAM_DEINTERLACE>;
clock-names = "bus", "mod", "ram";
resets = <&ccu RST_BUS_DEINTERLACE>;
interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
interconnects = <&mbus 9>;
interconnect-names = "dma-mem";
};
...
@@ -0,0 +1,47 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2020 BayLibre, SAS
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/amlogic,axg-ge2d.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic GE2D Acceleration Unit
maintainers:
- Neil Armstrong <neil.armstrong@linaro.org>
properties:
compatible:
enum:
- amlogic,axg-ge2d
interrupts:
minItems: 1
reg:
minItems: 1
resets:
maxItems: 1
clocks:
minItems: 1
required:
- compatible
- reg
- interrupts
- clocks
- resets
additionalProperties: false
examples:
- |
ge2d: ge2d@ff940000 {
compatible = "amlogic,axg-ge2d";
reg = <0xff940000 0x10000>;
interrupts = <150>;
clocks = <&clk_ge2d>;
resets = <&reset_ge2d>;
};
@@ -0,0 +1,88 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/amlogic,c3-isp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic C3 Image Signal Processing Unit
maintainers:
- Keke Li <keke.li@amlogic.com>
description:
Amlogic ISP is the RAW image processing module
and supports three channels image output.
properties:
compatible:
enum:
- amlogic,c3-isp
reg:
maxItems: 1
reg-names:
items:
- const: isp
power-domains:
maxItems: 1
clocks:
maxItems: 2
clock-names:
items:
- const: vapb
- const: isp0
interrupts:
maxItems: 1
port:
$ref: /schemas/graph.yaml#/properties/port
description: input port node.
required:
- compatible
- reg
- reg-names
- power-domains
- clocks
- clock-names
- interrupts
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/amlogic,c3-peripherals-clkc.h>
#include <dt-bindings/power/amlogic,c3-pwrc.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
isp: isp@ff000000 {
compatible = "amlogic,c3-isp";
reg = <0x0 0xff000000 0x0 0xf000>;
reg-names = "isp";
power-domains = <&pwrc PWRC_C3_ISP_TOP_ID>;
clocks = <&clkc_periphs CLKID_VAPB>,
<&clkc_periphs CLKID_ISP0>;
clock-names = "vapb", "isp0";
assigned-clocks = <&clkc_periphs CLKID_VAPB>,
<&clkc_periphs CLKID_ISP0>;
assigned-clock-rates = <0>, <400000000>;
interrupts = <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>;
port {
c3_isp_in: endpoint {
remote-endpoint = <&c3_adap_out>;
};
};
};
};
...
@@ -0,0 +1,111 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/amlogic,c3-mipi-adapter.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic C3 MIPI adapter receiver
maintainers:
- Keke Li <keke.li@amlogic.com>
description:
MIPI adapter is used to convert the MIPI CSI-2 data
into an ISP supported data format.
properties:
compatible:
enum:
- amlogic,c3-mipi-adapter
reg:
maxItems: 3
reg-names:
items:
- const: top
- const: fd
- const: rd
power-domains:
maxItems: 1
clocks:
maxItems: 2
clock-names:
items:
- const: vapb
- const: isp0
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/properties/port
description: input port node.
port@1:
$ref: /schemas/graph.yaml#/properties/port
description: output port node.
required:
- port@0
- port@1
required:
- compatible
- reg
- reg-names
- power-domains
- clocks
- clock-names
- ports
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/amlogic,c3-peripherals-clkc.h>
#include <dt-bindings/power/amlogic,c3-pwrc.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
adap: adap@ff010000 {
compatible = "amlogic,c3-mipi-adapter";
reg = <0x0 0xff010000 0x0 0x100>,
<0x0 0xff01b000 0x0 0x100>,
<0x0 0xff01d000 0x0 0x200>;
reg-names = "top", "fd", "rd";
power-domains = <&pwrc PWRC_C3_ISP_TOP_ID>;
clocks = <&clkc_periphs CLKID_VAPB>,
<&clkc_periphs CLKID_ISP0>;
clock-names = "vapb", "isp0";
assigned-clocks = <&clkc_periphs CLKID_VAPB>,
<&clkc_periphs CLKID_ISP0>;
assigned-clock-rates = <0>, <400000000>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
c3_adap_in: endpoint {
remote-endpoint = <&c3_mipi_csi_out>;
};
};
port@1 {
reg = <1>;
c3_adap_out: endpoint {
remote-endpoint = <&c3_isp_in>;
};
};
};
};
};
...
@@ -0,0 +1,127 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/amlogic,c3-mipi-csi2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic C3 MIPI CSI-2 receiver
maintainers:
- Keke Li <keke.li@amlogic.com>
description:
MIPI CSI-2 receiver contains CSI-2 RX PHY and host controller.
It receives the MIPI data from the image sensor and sends MIPI data
to MIPI adapter.
properties:
compatible:
enum:
- amlogic,c3-mipi-csi2
reg:
maxItems: 3
reg-names:
items:
- const: aphy
- const: dphy
- const: host
power-domains:
maxItems: 1
clocks:
maxItems: 2
clock-names:
items:
- const: vapb
- const: phy0
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description: input port node, connected to sensor.
properties:
endpoint:
$ref: video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
minItems: 1
maxItems: 4
required:
- data-lanes
port@1:
$ref: /schemas/graph.yaml#/properties/port
description: output port node
required:
- port@0
- port@1
required:
- compatible
- reg
- reg-names
- power-domains
- clocks
- clock-names
- ports
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/amlogic,c3-peripherals-clkc.h>
#include <dt-bindings/power/amlogic,c3-pwrc.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
csi: csi@ff018000 {
compatible = "amlogic,c3-mipi-csi2";
reg = <0x0 0xff018000 0x0 0x400>,
<0x0 0xff019000 0x0 0x300>,
<0x0 0xff01a000 0x0 0x100>;
reg-names = "aphy", "dphy", "host";
power-domains = <&pwrc PWRC_C3_MIPI_ISP_WRAP_ID>;
clocks = <&clkc_periphs CLKID_VAPB>,
<&clkc_periphs CLKID_CSI_PHY0>;
clock-names = "vapb", "phy0";
assigned-clocks = <&clkc_periphs CLKID_VAPB>,
<&clkc_periphs CLKID_CSI_PHY0>;
assigned-clock-rates = <0>, <200000000>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
c3_mipi_csi_in: endpoint {
remote-endpoint = <&imx290_out>;
data-lanes = <1 2 3 4>;
};
};
port@1 {
reg = <1>;
c3_mipi_csi_out: endpoint {
remote-endpoint = <&c3_adap_in>;
};
};
};
};
};
...
@@ -0,0 +1,141 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2019 BayLibre, SAS
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/amlogic,gx-vdec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic Video Decoder
maintainers:
- Neil Armstrong <neil.armstrong@linaro.org>
- Maxime Jourdan <mjourdan@baylibre.com>
description: |
The video decoding IP lies within the DOS memory region,
except for the hardware bitstream parser that makes use of an undocumented
region.
It makes use of the following blocks:
- ESPARSER is a bitstream parser that outputs to a VIFIFO. Further VDEC blocks
then feed from this VIFIFO.
- VDEC_1 can decode MPEG-1, MPEG-2, MPEG-4 part 2, MJPEG, H.263, H.264, VC-1.
- VDEC_HEVC can decode HEVC and VP9.
Both VDEC_1 and VDEC_HEVC share the "vdec" IRQ and as such cannot run
concurrently.
properties:
compatible:
oneOf:
- items:
- enum:
- amlogic,gxbb-vdec # GXBB (S905)
- amlogic,gxl-vdec # GXL (S905D, S905W, S905X, S905Y)
- amlogic,gxlx-vdec # GXLX (S905L)
- amlogic,gxm-vdec # GXM (S912)
- const: amlogic,gx-vdec
- enum:
- amlogic,g12a-vdec # G12A (S905X2, S905D2)
- amlogic,sm1-vdec # SM1 (S905X3, S905D3)
interrupts:
minItems: 2
interrupt-names:
items:
- const: vdec
- const: esparser
reg:
minItems: 2
reg-names:
items:
- const: dos
- const: esparser
resets:
maxItems: 1
reset-names:
items:
- const: esparser
clocks:
minItems: 4
maxItems: 5
clock-names:
minItems: 4
items:
- const: dos_parser
- const: dos
- const: vdec_1
- const: vdec_hevc
- const: vdec_hevcf
amlogic,ao-sysctrl:
description: should point to the AOBUS sysctrl node
$ref: /schemas/types.yaml#/definitions/phandle
amlogic,canvas:
description: should point to a canvas provider node
$ref: /schemas/types.yaml#/definitions/phandle
allOf:
- if:
properties:
compatible:
contains:
enum:
- amlogic,gx-vdec
then:
properties:
clock-names:
maxItems: 4
- if:
properties:
compatible:
contains:
enum:
- amlogic,g12a-vdec
- amlogic,sm1-vdec
then:
properties:
clock-names:
minItems: 5
required:
- compatible
- reg
- reg-names
- interrupts
- interrupt-names
- clocks
- clock-names
- resets
- reset-names
- amlogic,ao-sysctrl
- amlogic,canvas
additionalProperties: false
examples:
- |
vdec: video-decoder@c8820000 {
compatible = "amlogic,gxl-vdec", "amlogic,gx-vdec";
reg = <0xc8820000 0x10000>, <0xc110a580 0xe4>;
reg-names = "dos", "esparser";
interrupts = <44>, <32>;
interrupt-names = "vdec", "esparser";
clocks = <&clk_dos_parser> ,<&clk_dos>, <&clk_vdec_1>, <&clk_vdec_hevc>;
clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
resets = <&reset_parser>;
reset-names = "esparser";
amlogic,ao-sysctrl = <&sysctrl_AO>;
amlogic,canvas = <&canvas>;
};
@@ -0,0 +1,59 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/amlogic,meson-ir-tx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic Meson IR transmitter
maintainers:
- Viktor Prutyanov <viktor.prutyanov@phystech.edu>
description: |
Some Amlogic SoCs such as A311D and T950D4 have IR transmitter
(also called blaster) controller onboard. It is capable of
sending IR signals with arbitrary carrier frequency and duty cycle.
properties:
compatible:
oneOf:
- const: amlogic,meson-ir-tx
- items:
- const: amlogic,meson-g12a-ir-tx
- const: amlogic,meson-ir-tx
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 2
clock-names:
items:
- const: sysclk
- const: xtal
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/clock/g12a-clkc.h>
ir@ff80014c {
compatible = "amlogic,meson-g12a-ir-tx", "amlogic,meson-ir-tx";
reg = <0xff80014c 0x10>;
interrupts = <0 198 IRQ_TYPE_EDGE_RISING>;
clocks = <&clkc CLKID_CLK81>, <&xtal>;
clock-names = "sysclk", "xtal";
};
@@ -0,0 +1,48 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/amlogic,meson6-ir.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic Meson IR remote control receiver
maintainers:
- Neil Armstrong <neil.armstrong@linaro.org>
allOf:
- $ref: rc.yaml#
properties:
compatible:
oneOf:
- enum:
- amlogic,meson6-ir
- amlogic,meson8b-ir
- amlogic,meson-gxbb-ir
- amlogic,meson-s4-ir
- items:
- const: amlogic,meson-gx-ir
- const: amlogic,meson-gxbb-ir
reg:
maxItems: 1
interrupts:
maxItems: 1
required:
- compatible
- reg
- interrupts
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
ir-receiver@c8100480 {
compatible = "amlogic,meson6-ir";
reg = <0xc8100480 0x20>;
interrupts = <GIC_SPI 15 IRQ_TYPE_EDGE_RISING>;
};
@@ -0,0 +1,178 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/amphion,vpu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amphion VPU codec IP
maintainers:
- Ming Qian <ming.qian@nxp.com>
- Shijie Qin <shijie.qin@nxp.com>
description: |-
The Amphion MXC video encoder(Windsor) and decoder(Malone) accelerators present
on NXP i.MX8Q SoCs.
properties:
$nodename:
pattern: "^vpu@[0-9a-f]+$"
compatible:
items:
- enum:
- nxp,imx8qm-vpu
- nxp,imx8qxp-vpu
reg:
maxItems: 1
power-domains:
maxItems: 1
"#address-cells":
const: 1
"#size-cells":
const: 1
ranges: true
patternProperties:
"^mailbox@[0-9a-f]+$":
description:
Each vpu encoder or decoder correspond a MU, which used for communication
between driver and firmware. Implement via mailbox on driver.
$ref: /schemas/mailbox/fsl,mu.yaml#
"^vpu-core@[0-9a-f]+$":
description:
Each core correspond a decoder or encoder, need to configure them
separately. NXP i.MX8QM SoC has one decoder and two encoder, i.MX8QXP SoC
has one decoder and one encoder.
type: object
properties:
compatible:
items:
- enum:
- nxp,imx8q-vpu-decoder
- nxp,imx8q-vpu-encoder
reg:
maxItems: 1
power-domains:
maxItems: 1
mbox-names:
items:
- const: tx0
- const: tx1
- const: rx
mboxes:
description:
List of phandle of 2 MU channels for tx, 1 MU channel for rx.
maxItems: 3
memory-region:
description:
Phandle to the reserved memory nodes to be associated with the
remoteproc device. The reserved memory nodes should be carveout nodes,
and should be defined as per the bindings in
Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
items:
- description: region reserved for firmware image sections.
- description: region used for RPC shared memory between firmware and
driver.
required:
- compatible
- reg
- power-domains
- mbox-names
- mboxes
- memory-region
additionalProperties: false
required:
- compatible
- reg
- power-domains
additionalProperties: false
examples:
# Device node example for i.MX8QM platform:
- |
#include <dt-bindings/firmware/imx/rsrc.h>
vpu: vpu@2c000000 {
compatible = "nxp,imx8qm-vpu";
ranges = <0x2c000000 0x2c000000 0x2000000>;
reg = <0x2c000000 0x1000000>;
#address-cells = <1>;
#size-cells = <1>;
power-domains = <&pd IMX_SC_R_VPU>;
mu_m0: mailbox@2d000000 {
compatible = "fsl,imx6sx-mu";
reg = <0x2d000000 0x20000>;
interrupts = <0 472 4>;
#mbox-cells = <2>;
power-domains = <&pd IMX_SC_R_VPU_MU_0>;
};
mu1_m0: mailbox@2d020000 {
compatible = "fsl,imx6sx-mu";
reg = <0x2d020000 0x20000>;
interrupts = <0 473 4>;
#mbox-cells = <2>;
power-domains = <&pd IMX_SC_R_VPU_MU_1>;
};
mu2_m0: mailbox@2d040000 {
compatible = "fsl,imx6sx-mu";
reg = <0x2d040000 0x20000>;
interrupts = <0 474 4>;
#mbox-cells = <2>;
power-domains = <&pd IMX_SC_R_VPU_MU_2>;
};
vpu_core0: vpu-core@2d080000 {
compatible = "nxp,imx8q-vpu-decoder";
reg = <0x2d080000 0x10000>;
power-domains = <&pd IMX_SC_R_VPU_DEC_0>;
mbox-names = "tx0", "tx1", "rx";
mboxes = <&mu_m0 0 0>,
<&mu_m0 0 1>,
<&mu_m0 1 0>;
memory-region = <&decoder_boot>, <&decoder_rpc>;
};
vpu_core1: vpu-core@2d090000 {
compatible = "nxp,imx8q-vpu-encoder";
reg = <0x2d090000 0x10000>;
power-domains = <&pd IMX_SC_R_VPU_ENC_0>;
mbox-names = "tx0", "tx1", "rx";
mboxes = <&mu1_m0 0 0>,
<&mu1_m0 0 1>,
<&mu1_m0 1 0>;
memory-region = <&encoder1_boot>, <&encoder1_rpc>;
};
vpu_core2: vpu-core@2d0a0000 {
reg = <0x2d0a0000 0x10000>;
compatible = "nxp,imx8q-vpu-encoder";
power-domains = <&pd IMX_SC_R_VPU_ENC_1>;
mbox-names = "tx0", "tx1", "rx";
mboxes = <&mu2_m0 0 0>,
<&mu2_m0 0 1>,
<&mu2_m0 1 0>;
memory-region = <&encoder2_boot>, <&encoder2_rpc>;
};
};
...
@@ -0,0 +1,86 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/arm,mali-c55.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ARM Mali-C55 Image Signal Processor
maintainers:
- Daniel Scally <dan.scally@ideasonboard.com>
- Jacopo Mondi <jacopo.mondi@ideasonboard.com>
properties:
compatible:
const: arm,mali-c55
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: ISP Video Clock
- description: ISP AXI clock
- description: ISP AHB-lite clock
clock-names:
items:
- const: vclk
- const: aclk
- const: hclk
resets:
items:
- description: vclk domain reset
- description: aclk domain reset
- description: hclk domain reset
reset-names:
items:
- const: vresetn
- const: aresetn
- const: hresetn
port:
$ref: /schemas/graph.yaml#/properties/port
description: Input parallel video bus
properties:
endpoint:
$ref: /schemas/graph.yaml#/properties/endpoint
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- resets
- reset-names
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
isp@400000 {
compatible = "arm,mali-c55";
reg = <0x400000 0x200000>;
clocks = <&clk 0>, <&clk 1>, <&clk 2>;
clock-names = "vclk", "aclk", "hclk";
resets = <&resets 0>, <&resets 1>, <&resets 2>;
reset-names = "vresetn", "aresetn", "hresetn";
interrupts = <GIC_SPI 861 IRQ_TYPE_EDGE_RISING>;
port {
isp_in: endpoint {
remote-endpoint = <&csi2_rx_out>;
};
};
};
...
@@ -0,0 +1,70 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/aspeed,video-engine.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ASPEED Video Engine
maintainers:
- Eddie James <eajames@linux.ibm.com>
description:
The Video Engine (VE) embedded in the ASPEED SOCs can be configured to
capture and compress video data from digital or analog sources.
properties:
compatible:
enum:
- aspeed,ast2400-video-engine
- aspeed,ast2500-video-engine
- aspeed,ast2600-video-engine
reg:
maxItems: 1
clocks:
maxItems: 2
clock-names:
items:
- const: vclk
- const: eclk
resets:
maxItems: 1
interrupts:
maxItems: 1
memory-region:
maxItems: 1
description: |
Phandle to the reserved memory nodes to be associated with the
VE. VE will acquires memory space for 3 purposes:
1. JPEG header
2. Compressed result
3. Temporary transformed image data
required:
- compatible
- reg
- clocks
- clock-names
- interrupts
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/ast2600-clock.h>
video@1e700000 {
compatible = "aspeed,ast2600-video-engine";
reg = <0x1e700000 0x1000>;
clocks = <&syscon ASPEED_CLK_GATE_VCLK>,
<&syscon ASPEED_CLK_GATE_ECLK>;
clock-names = "vclk", "eclk";
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
};
@@ -0,0 +1,113 @@
# SPDX-License-Identifier: GPL-2.0-only
# Copyright (C) 2016-2021 Microchip Technology, Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/atmel,isc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Atmel Image Sensor Controller (ISC)
maintainers:
- Eugen Hristev <eugen.hristev@microchip.com>
description: |
The Image Sensor Controller (ISC) device provides the video input capabilities for the
Atmel/Microchip AT91 SAMA family of devices.
The ISC has a single parallel input that supports RAW Bayer, RGB or YUV video,
with both external synchronization and BT.656 synchronization for the latter.
properties:
compatible:
const: atmel,sama5d2-isc
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
minItems: 3
maxItems: 3
clock-names:
items:
- const: hclock
- const: iscck
- const: gck
'#clock-cells':
const: 0
clock-output-names:
const: isc-mck
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
description:
Input port node, single endpoint describing the input pad.
properties:
endpoint:
$ref: video-interfaces.yaml#
properties:
remote-endpoint: true
bus-width:
enum: [8, 9, 10, 11, 12]
default: 12
hsync-active:
enum: [0, 1]
default: 1
vsync-active:
enum: [0, 1]
default: 1
pclk-sample:
enum: [0, 1]
default: 1
required:
- remote-endpoint
additionalProperties: false
required:
- compatible
- reg
- clocks
- clock-names
- '#clock-cells'
- clock-output-names
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
isc: isc@f0008000 {
compatible = "atmel,sama5d2-isc";
reg = <0xf0008000 0x4000>;
interrupts = <46 IRQ_TYPE_LEVEL_HIGH 5>;
clocks = <&isc_clk>, <&iscck>, <&isc_gclk>;
clock-names = "hclock", "iscck", "gck";
#clock-cells = <0>;
clock-output-names = "isc-mck";
port {
isc_0: endpoint {
remote-endpoint = <&ov7740_0>;
hsync-active = <1>;
vsync-active = <0>;
pclk-sample = <1>;
bus-width = <8>;
};
};
};
@@ -0,0 +1,66 @@
Atmel Image Sensor Interface (ISI)
----------------------------------
Required properties for ISI:
- compatible: must be "atmel,at91sam9g45-isi" or "microchip,sam9x60-isi".
- reg: physical base address and length of the registers set for the device.
- interrupts: should contain IRQ line for the ISI.
- clocks: list of clock specifiers, corresponding to entries in the clock-names
property; please refer to clock-bindings.txt.
- clock-names: required elements: "isi_clk".
- pinctrl-names, pinctrl-0: please refer to pinctrl-bindings.txt.
ISI supports a single port node with parallel bus. It shall contain one
'port' child node with child 'endpoint' node. Please refer to the bindings
defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
Endpoint node properties
------------------------
- bus-width: <8> or <10> (mandatory)
- hsync-active (default: active high)
- vsync-active (default: active high)
- pclk-sample (default: sample on falling edge)
- remote-endpoint: A phandle to the bus receiver's endpoint node (mandatory).
Example:
isi: isi@f0034000 {
compatible = "atmel,at91sam9g45-isi";
reg = <0xf0034000 0x4000>;
interrupts = <37 IRQ_TYPE_LEVEL_HIGH 5>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_isi_data_0_7>;
clocks = <&isi_clk>;
clock-names = "isi_clk";
port {
isi_0: endpoint {
remote-endpoint = <&ov2640_0>;
bus-width = <8>;
vsync-active = <1>;
hsync-active = <1>;
};
};
};
i2c1: i2c@f0018000 {
ov2640: camera@30 {
compatible = "ovti,ov2640";
reg = <0x30>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
resetb-gpios = <&pioE 11 GPIO_ACTIVE_LOW>;
pwdn-gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
clocks = <&pck0>;
clock-names = "xvclk";
assigned-clocks = <&pck0>;
assigned-clock-rates = <25000000>;
port {
ov2640_0: endpoint {
remote-endpoint = <&isi_0>;
bus-width = <8>;
};
};
};
};
@@ -0,0 +1,127 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/brcm,bcm2835-unicam.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Broadcom BCM283x Camera Interface (Unicam)
maintainers:
- Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
description: |-
The Unicam block on BCM283x SoCs is the receiver for either
CSI-2 or CCP2 data from image sensors or similar devices.
The main platform using this SoC is the Raspberry Pi family of boards. On
the Pi the VideoCore firmware can also control this hardware block, and
driving it from two different processors will cause issues. To avoid this,
the firmware checks the device tree configuration during boot. If it finds
device tree nodes whose name starts with 'csi' then it will stop the firmware
accessing the block, and it can then safely be used via the device tree
binding.
properties:
compatible:
const: brcm,bcm2835-unicam
reg:
items:
- description: Unicam block.
- description: Clock Manager Image (CMI) block.
reg-names:
items:
- const: unicam
- const: cmi
interrupts:
maxItems: 1
clocks:
items:
- description: Clock to drive the LP state machine of Unicam.
- description: Clock for the VPU (core clock).
clock-names:
items:
- const: lp
- const: vpu
power-domains:
items:
- description: Unicam power domain
brcm,num-data-lanes:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [ 2, 4 ]
description: |
Number of CSI-2 data lanes supported by this Unicam instance. The number
of data lanes actively used is specified with the data-lanes endpoint
property.
port:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
additionalProperties: false
properties:
bus-type:
enum: [ 3, 4 ]
clock-noncontinuous: true
data-lanes: true
remote-endpoint: true
required:
- bus-type
- data-lanes
- remote-endpoint
required:
- endpoint
required:
- compatible
- reg
- reg-names
- interrupts
- clocks
- clock-names
- power-domains
- brcm,num-data-lanes
- port
additionalProperties: False
examples:
- |
#include <dt-bindings/clock/bcm2835.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/media/video-interfaces.h>
#include <dt-bindings/power/raspberrypi-power.h>
csi1: csi@7e801000 {
compatible = "brcm,bcm2835-unicam";
reg = <0x7e801000 0x800>,
<0x7e802004 0x4>;
reg-names = "unicam", "cmi";
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clocks BCM2835_CLOCK_CAM1>,
<&firmware_clocks 4>;
clock-names = "lp", "vpu";
power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>;
brcm,num-data-lanes = <2>;
port {
csi1_ep: endpoint {
remote-endpoint = <&imx219_0>;
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
data-lanes = <1 2>;
};
};
};
...
@@ -0,0 +1,210 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/cdns,csi2rx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Cadence MIPI-CSI2 RX controller
maintainers:
- Maxime Ripard <mripard@kernel.org>
description:
The Cadence MIPI-CSI2 RX controller is a CSI-2 bridge supporting up to 4 CSI
lanes in input, and 4 different pixel streams in output.
properties:
compatible:
items:
- enum:
- starfive,jh7110-csi2rx
- ti,j721e-csi2rx
- const: cdns,csi2rx
reg:
maxItems: 1
interrupts:
maxItems: 2
interrupt-names:
items:
- const: error_irq
- const: irq
clocks:
items:
- description: CSI2Rx system clock
- description: Gated Register bank clock for APB interface
- description: pixel Clock for Stream interface 0
- description: pixel Clock for Stream interface 1
- description: pixel Clock for Stream interface 2
- description: pixel Clock for Stream interface 3
clock-names:
items:
- const: sys_clk
- const: p_clk
- const: pixel_if0_clk
- const: pixel_if1_clk
- const: pixel_if2_clk
- const: pixel_if3_clk
resets:
items:
- description: CSI2Rx system reset
- description: Gated Register bank reset for APB interface
- description: pixel reset for Stream interface 0
- description: pixel reset for Stream interface 1
- description: pixel reset for Stream interface 2
- description: pixel reset for Stream interface 3
reset-names:
items:
- const: sys
- const: reg_bank
- const: pixel_if0
- const: pixel_if1
- const: pixel_if2
- const: pixel_if3
phys:
maxItems: 1
description: MIPI D-PHY
phy-names:
items:
- const: dphy
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description:
Input port node, single endpoint describing the CSI-2 transmitter.
properties:
endpoint:
$ref: video-interfaces.yaml#
unevaluatedProperties: false
properties:
bus-type:
const: 4
clock-lanes:
const: 0
data-lanes:
minItems: 1
maxItems: 4
items:
maximum: 4
required:
- data-lanes
port@1:
$ref: /schemas/graph.yaml#/properties/port
description:
Stream 0 Output port node
port@2:
$ref: /schemas/graph.yaml#/properties/port
description:
Stream 1 Output port node
port@3:
$ref: /schemas/graph.yaml#/properties/port
description:
Stream 2 Output port node
port@4:
$ref: /schemas/graph.yaml#/properties/port
description:
Stream 3 Output port node
required:
- port@0
required:
- compatible
- reg
- clocks
- clock-names
- ports
additionalProperties: false
examples:
- |
csi@d060000 {
compatible = "starfive,jh7110-csi2rx", "cdns,csi2rx";
reg = <0x0d060000 0x1000>;
clocks = <&byteclock 7>, <&byteclock 6>,
<&coreclock 8>, <&coreclock 9>,
<&coreclock 10>, <&coreclock 11>;
clock-names = "sys_clk", "p_clk",
"pixel_if0_clk", "pixel_if1_clk",
"pixel_if2_clk", "pixel_if3_clk";
resets = <&bytereset 9>, <&bytereset 4>,
<&corereset 5>, <&corereset 6>,
<&corereset 7>, <&corereset 8>;
reset-names = "sys", "reg_bank",
"pixel_if0", "pixel_if1",
"pixel_if2", "pixel_if3";
phys = <&csi_phy>;
phy-names = "dphy";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
csi2rx_in_sensor: endpoint {
remote-endpoint = <&sensor_out_csi2rx>;
clock-lanes = <0>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
csi2rx_out_grabber0: endpoint {
remote-endpoint = <&grabber0_in_csi2rx>;
};
};
port@2 {
reg = <2>;
csi2rx_out_grabber1: endpoint {
remote-endpoint = <&grabber1_in_csi2rx>;
};
};
port@3 {
reg = <3>;
csi2rx_out_grabber2: endpoint {
remote-endpoint = <&grabber2_in_csi2rx>;
};
};
port@4 {
reg = <4>;
csi2rx_out_grabber3: endpoint {
remote-endpoint = <&grabber3_in_csi2rx>;
};
};
};
};
...
@@ -0,0 +1,99 @@
Cadence MIPI-CSI2 TX controller
===============================
The Cadence MIPI-CSI2 TX controller is a CSI-2 bridge supporting up to
4 CSI lanes in output, and up to 4 different pixel streams in input.
Required properties:
- compatible: must be set to "cdns,csi2tx" or "cdns,csi2tx-1.3"
for version 1.3 of the controller, "cdns,csi2tx-2.1" for v2.1
- reg: base address and size of the memory mapped region
- clocks: phandles to the clocks driving the controller
- clock-names: must contain:
* esc_clk: escape mode clock
* p_clk: register bank clock
* pixel_if[0-3]_clk: pixel stream output clock, one for each stream
implemented in hardware, between 0 and 3
Optional properties
- phys: phandle to the D-PHY. If it is set, phy-names need to be set
- phy-names: must contain "dphy"
Required subnodes:
- ports: A ports node with one port child node per device input and output
port, in accordance with the video interface bindings defined in
Documentation/devicetree/bindings/media/video-interfaces.txt. The
port nodes are numbered as follows.
Port Description
-----------------------------
0 CSI-2 output
1 Stream 0 input
2 Stream 1 input
3 Stream 2 input
4 Stream 3 input
The stream input port nodes are optional if they are not
connected to anything at the hardware level or implemented
in the design. Since there is only one endpoint per port,
the endpoints are not numbered.
Example:
csi2tx: csi-bridge@0d0e1000 {
compatible = "cdns,csi2tx";
reg = <0x0d0e1000 0x1000>;
clocks = <&byteclock>, <&byteclock>,
<&coreclock>, <&coreclock>,
<&coreclock>, <&coreclock>;
clock-names = "p_clk", "esc_clk",
"pixel_if0_clk", "pixel_if1_clk",
"pixel_if2_clk", "pixel_if3_clk";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
csi2tx_out: endpoint {
remote-endpoint = <&remote_in>;
clock-lanes = <0>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
csi2tx_in_stream0: endpoint {
remote-endpoint = <&stream0_out>;
};
};
port@2 {
reg = <2>;
csi2tx_in_stream1: endpoint {
remote-endpoint = <&stream1_out>;
};
};
port@3 {
reg = <3>;
csi2tx_in_stream2: endpoint {
remote-endpoint = <&stream2_out>;
};
};
port@4 {
reg = <4>;
csi2tx_in_stream3: endpoint {
remote-endpoint = <&stream3_out>;
};
};
};
};
@@ -0,0 +1,92 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2019 BayLibre, SAS
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/cec/amlogic,meson-gx-ao-cec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic Meson AO-CEC Controller
maintainers:
- Neil Armstrong <neil.armstrong@linaro.org>
description: |
The Amlogic Meson AO-CEC module is present is Amlogic SoCs and its purpose is
to handle communication between HDMI connected devices over the CEC bus.
properties:
compatible:
enum:
- amlogic,meson-gx-ao-cec # GXBB, GXL, GXM, G12A and SM1 AO_CEC_A module
- amlogic,meson-g12a-ao-cec # G12A AO_CEC_B module
- amlogic,meson-sm1-ao-cec # SM1 AO_CEC_B module
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
maxItems: 1
interrupts:
maxItems: 1
allOf:
- $ref: cec-common.yaml#
- if:
properties:
compatible:
contains:
enum:
- amlogic,meson-gx-ao-cec
then:
properties:
clocks:
items:
- description: AO-CEC clock
clock-names:
items:
- const: core
- if:
properties:
compatible:
contains:
enum:
- amlogic,meson-g12a-ao-cec
- amlogic,meson-sm1-ao-cec
then:
properties:
clocks:
items:
- description: AO-CEC clock generator source
clock-names:
items:
- const: oscin
required:
- compatible
- reg
- interrupts
- hdmi-phandle
- clocks
- clock-names
unevaluatedProperties: false
examples:
- |
cec_AO: cec@100 {
compatible = "amlogic,meson-gx-ao-cec";
reg = <0x00100 0x14>;
interrupts = <199>;
clocks = <&clkc_cec>;
clock-names = "core";
hdmi-phandle = <&hdmi_tx>;
};
@@ -0,0 +1,28 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/cec/cec-common.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: HDMI CEC Adapters Common Properties
maintainers:
- Hans Verkuil <hverkuil@kernel.org>
properties:
$nodename:
pattern: "^cec(@[0-9a-f]+|-[0-9]+)?$"
hdmi-phandle:
$ref: /schemas/types.yaml#/definitions/phandle
description:
Phandle to the HDMI controller.
needs-hpd:
type: boolean
description:
The CEC support is only available when the HPD is high. Some boards only
let the CEC pin through if the HPD is high, for example if there is a
level converter that uses the HPD to power up or down.
additionalProperties: true
@@ -0,0 +1,74 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/cec/cec-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: HDMI CEC GPIO
maintainers:
- Hans Verkuil <hverkuil@kernel.org>
description: |
The HDMI CEC GPIO module supports CEC implementations where the CEC line is
hooked up to a pull-up GPIO line and - optionally - the HPD line is hooked up
to another GPIO line.
Please note:: the maximum voltage for the CEC line is 3.63V, for the HPD and
5V lines it is 5.3V. So you may need some sort of level conversion
circuitry when connecting them to a GPIO line.
properties:
compatible:
const: cec-gpio
cec-gpios:
maxItems: 1
description:
GPIO that the CEC line is connected to. The line should be tagged as open
drain.
hpd-gpios:
maxItems: 1
description:
GPIO that the HPD line is connected to. Used for debugging HPD changes
when the CEC line is not associated with an HDMI receiver/transmitter.
v5-gpios:
maxItems: 1
description:
GPIO that the 5V line is connected to. Used for debugging changes on the
5V line.
required:
- compatible
- cec-gpios
allOf:
- $ref: cec-common.yaml#
- if:
required:
- hdmi-phandle
then:
properties:
hpd-gpios: false
- if:
required:
- hpd-gpios
then:
properties:
hdmi-phandle: false
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
cec {
compatible = "cec-gpio";
cec-gpios = <&gpio 7 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
hpd-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
v5-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
};
@@ -0,0 +1,63 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/cec/nvidia,tegra114-cec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NVIDIA Tegra HDMI CEC
maintainers:
- Hans Verkuil <hverkuil@kernel.org>
allOf:
- $ref: cec-common.yaml#
properties:
compatible:
oneOf:
- enum:
- nvidia,tegra114-cec
- nvidia,tegra124-cec
- nvidia,tegra210-cec
- items:
- enum:
- nvidia,tegra186-cec
- nvidia,tegra194-cec
- const: nvidia,tegra210-cec
clocks:
maxItems: 1
clock-names:
items:
- const: cec
interrupts:
maxItems: 1
reg:
maxItems: 1
required:
- compatible
- clocks
- clock-names
- hdmi-phandle
- interrupts
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/tegra124-car.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
cec@70015000 {
compatible = "nvidia,tegra124-cec";
reg = <0x70015000 0x00001000>;
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&tegra_car TEGRA124_CLK_CEC>;
clock-names = "cec";
hdmi-phandle = <&hdmi>;
};
@@ -0,0 +1,66 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/cec/samsung,s5p-cec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung S5PV210 and Exynos HDMI CEC
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
- Marek Szyprowski <m.szyprowski@samsung.com>
allOf:
- $ref: cec-common.yaml#
properties:
compatible:
const: samsung,s5p-cec
clocks:
maxItems: 1
clock-names:
items:
- const: hdmicec
interrupts:
maxItems: 1
samsung,syscon-phandle:
$ref: /schemas/types.yaml#/definitions/phandle
description:
Phandle to PMU system controller interface
reg:
maxItems: 1
required:
- compatible
- clocks
- clock-names
- hdmi-phandle
- interrupts
- samsung,syscon-phandle
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/exynos5420.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
cec@101b0000 {
compatible = "samsung,s5p-cec";
reg = <0x101B0000 0x200>;
clocks = <&clock CLK_HDMI_CEC>;
clock-names = "hdmicec";
interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
hdmi-phandle = <&hdmi>;
needs-hpd;
pinctrl-names = "default";
pinctrl-0 = <&hdmi_cec>;
samsung,syscon-phandle = <&pmu_system_controller>;
};
@@ -0,0 +1,66 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/cec/st,stih-cec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: STMicroelectronics STIH4xx HDMI CEC
maintainers:
- Alain Volmat <alain.volmat@foss.st.com>
allOf:
- $ref: cec-common.yaml#
properties:
compatible:
const: st,stih-cec
clocks:
maxItems: 1
clock-names:
items:
- const: cec-clk
interrupts:
maxItems: 1
interrupt-names:
items:
- const: cec-irq
resets:
maxItems: 1
reg:
maxItems: 1
required:
- compatible
- clocks
- hdmi-phandle
- interrupts
- resets
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset/stih407-resets.h>
cec@94a087c {
compatible = "st,stih-cec";
reg = <0x94a087c 0x64>;
clocks = <&clk_sysin>;
clock-names = "cec-clk";
hdmi-phandle = <&sti_hdmi>;
interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "cec-irq";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_cec0_default>;
resets = <&softreset STIH407_LPM_SOFTRESET>;
};
@@ -0,0 +1,57 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/cec/st,stm32-cec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: STMicroelectronics STM32 CEC
maintainers:
- Yannick Fertre <yannick.fertre@foss.st.com>
properties:
compatible:
const: st,stm32-cec
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Module Clock
- description: Bus Clock
clock-names:
items:
- const: cec
- const: hdmi-cec
access-controllers:
minItems: 1
maxItems: 2
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/stm32mp1-clks.h>
cec: cec@40006c00 {
compatible = "st,stm32-cec";
reg = <0x40006c00 0x400>;
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&rcc CEC_K>, <&clk_lse>;
clock-names = "cec", "hdmi-cec";
};
...
@@ -0,0 +1,61 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/cnm,wave521c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Chips&Media Wave 5 Series multi-standard codec IP
maintainers:
- Nas Chung <nas.chung@chipsnmedia.com>
- Jackson Lee <jackson.lee@chipsnmedia.com>
description:
The Chips&Media WAVE codec IP is a multi format video encoder/decoder
properties:
compatible:
items:
- enum:
- ti,j721s2-wave521c
- const: cnm,wave521c
reg:
maxItems: 1
clocks:
items:
- description: VCODEC clock
interrupts:
maxItems: 1
power-domains:
maxItems: 1
resets:
maxItems: 1
sram:
maxItems: 1
description:
The VPU uses the SRAM to store some of the reference data instead of
storing it on DMA memory. It is mainly used for the purpose of reducing
bandwidth.
required:
- compatible
- reg
- clocks
additionalProperties: false
examples:
- |
vpu: video-codec@12345678 {
compatible = "ti,j721s2-wave521c", "cnm,wave521c";
reg = <0x12345678 0x1000>;
clocks = <&clks 42>;
interrupts = <42>;
sram = <&sram>;
};
@@ -0,0 +1,107 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/coda.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Chips&Media Coda multi-standard codec IP
maintainers:
- Philipp Zabel <p.zabel@pengutronix.de>
description: |-
Coda codec IPs are present in i.MX SoCs in various versions,
called VPU (Video Processing Unit).
properties:
compatible:
oneOf:
- items:
- const: fsl,imx27-vpu
- const: cnm,codadx6
- items:
- const: fsl,imx51-vpu
- const: cnm,codahx4
- items:
- const: fsl,imx53-vpu
- const: cnm,coda7541
- items:
- enum:
- fsl,imx6dl-vpu
- fsl,imx6q-vpu
- const: cnm,coda960
reg:
maxItems: 1
clocks:
items:
- description: PER clock
- description: AHB interface clock
clock-names:
items:
- const: per
- const: ahb
interrupts:
minItems: 1
items:
- description: BIT processor interrupt
- description: JPEG unit interrupt
interrupt-names:
minItems: 1
items:
- const: bit
- const: jpeg
power-domains:
maxItems: 1
resets:
maxItems: 1
iram:
$ref: /schemas/types.yaml#/definitions/phandle
description: phandle pointing to the SRAM device node
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
additionalProperties: false
allOf:
- if:
properties:
compatible:
contains:
const: cnm,coda960
then:
properties:
interrupts:
minItems: 2
interrupt-names:
minItems: 2
else:
properties:
interrupts:
maxItems: 1
power-domains: false
examples:
- |
vpu: video-codec@63ff4000 {
compatible = "fsl,imx53-vpu", "cnm,coda7541";
reg = <0x63ff4000 0x1000>;
interrupts = <9>;
clocks = <&clks 63>, <&clks 63>;
clock-names = "per", "ahb";
iram = <&ocram>;
};
@@ -0,0 +1,37 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/fsl,imx-capture-subsystem.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale i.MX Media Video Device
description:
This is the media controller node for video capture support. It is a
virtual device that lists the camera serial interface nodes that the
media device will control
maintainers:
- Frank Li <Frank.Li@nxp.com>
properties:
compatible:
const: fsl,imx-capture-subsystem
ports:
$ref: /schemas/types.yaml#/definitions/phandle-array
description:
Should contain a list of phandles pointing to camera
sensor interface ports of IPU devices.
required:
- compatible
additionalProperties: false
examples:
- |
capture-subsystem {
compatible = "fsl,imx-capture-subsystem";
ports = <&ipu1_csi0>, <&ipu1_csi1>;
};
@@ -0,0 +1,143 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/fsl,imx6-mipi-csi2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MIPI CSI-2 Receiver core in the i.MX SoC
description:
This is the device node for the MIPI CSI-2 Receiver core in the i.MX
SoC. This is a Synopsys Designware MIPI CSI-2 host controller core
combined with a D-PHY core mixed into the same register block. In
addition this device consists of an i.MX-specific "CSI2IPU gasket"
glue logic, also controlled from the same register block. The CSI2IPU
gasket demultiplexes the four virtual channel streams from the host
controller's 32-bit output image bus onto four 16-bit parallel busses
to the i.MX IPU CSIs.
maintainers:
- Frank Li <Frank.Li@nxp.com>
properties:
compatible:
const: fsl,imx6-mipi-csi2
reg:
maxItems: 1
clocks:
items:
- description: hsi_tx (the D-PHY clock)
- description: video_27m (D-PHY PLL reference clock)
- description: eim_podf;
clock-names:
items:
- const: dphy
- const: ref
- const: pix
interrupts:
items:
- description: CSI-2 ERR1 irq
- description: CSI-2 ERR2 irq
'#address-cells':
const: 1
'#size-cells':
const: 0
port@0:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description:
Input port node, single endpoint describing the CSI-2 transmitter.
properties:
endpoint:
$ref: video-interfaces.yaml#
unevaluatedProperties: false
properties:
clock-lanes:
const: 0
data-lanes:
minItems: 1
items:
- const: 1
- const: 2
- const: 3
- const: 4
required:
- data-lanes
patternProperties:
'^port@[1-4]$':
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description:
ports 1 through 4 are output ports connecting with parallel bus sink
endpoint nodes and correspond to the four MIPI CSI-2 virtual channel
outputs.
properties:
endpoint@0:
$ref: video-interfaces.yaml#
unevaluatedProperties: false
endpoint@1:
$ref: video-interfaces.yaml#
unevaluatedProperties: false
required:
- compatible
- reg
- clocks
- clock-names
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/imx6qdl-clock.h>
mipi@21dc000 {
compatible = "fsl,imx6-mipi-csi2";
reg = <0x021dc000 0x4000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clks IMX6QDL_CLK_HSI_TX>,
<&clks IMX6QDL_CLK_VIDEO_27M>,
<&clks IMX6QDL_CLK_EIM_PODF>;
clock-names = "dphy", "ref", "pix";
port@0 {
reg = <0>;
endpoint {
remote-endpoint = <&ov5640_to_mipi_csi2>;
clock-lanes = <0>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
endpoint@0 {
reg = <0>;
remote-endpoint = <&ipu1_csi0_mux_from_mipi_vc0>;
};
endpoint@1 {
reg = <1>;
remote-endpoint = <&ipu1_csi1_mux_from_mipi_vc0>;
};
};
};
@@ -0,0 +1,42 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/fsl,imx6q-vdoa.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale Video Data Order Adapter
description:
The Video Data Order Adapter (VDOA) is present on the i.MX6q. Its sole purpose
is to reorder video data from the macroblock tiled order produced by the CODA
960 VPU to the conventional raster-scan order for scanout.
maintainers:
- Frank Li <Frank.Li@nxp.com>
properties:
compatible:
const: fsl,imx6q-vdoa
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/clock/imx6qdl-clock.h>
vdoa@21e4000 {
compatible = "fsl,imx6q-vdoa";
reg = <0x021e4000 0x4000>;
interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX6QDL_CLK_VDOA>;
};
@@ -0,0 +1,87 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/fsl,imx6ull-pxp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale Pixel Pipeline
maintainers:
- Philipp Zabel <p.zabel@pengutronix.de>
- Michael Tretter <m.tretter@pengutronix.de>
description:
The Pixel Pipeline (PXP) is a memory-to-memory graphics processing engine
that supports scaling, colorspace conversion, alpha blending, rotation, and
pixel conversion via lookup table. Different versions are present on various
i.MX SoCs from i.MX23 to i.MX7.
properties:
compatible:
oneOf:
- enum:
- fsl,imx6ul-pxp
- fsl,imx6ull-pxp
- fsl,imx7d-pxp
- items:
- enum:
- fsl,imx6sll-pxp
- fsl,imx6sx-pxp
- const: fsl,imx6ull-pxp
reg:
maxItems: 1
interrupts:
minItems: 1
maxItems: 2
clocks:
maxItems: 1
clock-names:
const: axi
power-domains:
maxItems: 1
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
allOf:
- if:
properties:
compatible:
contains:
enum:
- fsl,imx6sx-pxp
- fsl,imx6ul-pxp
then:
properties:
interrupts:
maxItems: 1
else:
properties:
interrupts:
minItems: 2
maxItems: 2
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/imx6ul-clock.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
pxp: pxp@21cc000 {
compatible = "fsl,imx6ull-pxp";
reg = <0x021cc000 0x4000>;
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
clock-names = "axi";
clocks = <&clks IMX6UL_CLK_PXP>;
};
@@ -0,0 +1,117 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/fsl,imx8qm-isi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: i.MX8QM Image Sensing Interface
maintainers:
- Frank Li <Frank.Li@nxp.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,imx8qm-isi
reg:
maxItems: 1
clocks:
maxItems: 8
clock-names:
items:
- const: per0
- const: per1
- const: per2
- const: per3
- const: per4
- const: per5
- const: per6
- const: per7
interrupts:
maxItems: 8
power-domains:
maxItems: 8
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@2:
$ref: /schemas/graph.yaml#/properties/port
description: MIPI CSI-2 RX 0
port@3:
$ref: /schemas/graph.yaml#/properties/port
description: MIPI CSI-2 RX 1
port@4:
$ref: /schemas/graph.yaml#/properties/port
description: HDMI RX
required:
- compatible
- reg
- clocks
- clock-names
- interrupts
- power-domains
- ports
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/clock/imx8-clock.h>
#include <dt-bindings/clock/imx8-lpcg.h>
#include <dt-bindings/firmware/imx/rsrc.h>
image-controller@58100000 {
compatible = "fsl,imx8qm-isi";
reg = <0x58100000 0x80000>;
interrupts = <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&pdma0_lpcg IMX_LPCG_CLK_0>,
<&pdma1_lpcg IMX_LPCG_CLK_0>,
<&pdma2_lpcg IMX_LPCG_CLK_0>,
<&pdma3_lpcg IMX_LPCG_CLK_0>,
<&pdma4_lpcg IMX_LPCG_CLK_0>,
<&pdma5_lpcg IMX_LPCG_CLK_0>,
<&pdma6_lpcg IMX_LPCG_CLK_0>,
<&pdma7_lpcg IMX_LPCG_CLK_0>;
clock-names = "per0", "per1", "per2", "per3",
"per4", "per5", "per6", "per7";
power-domains = <&pd IMX_SC_R_ISI_CH0>, <&pd IMX_SC_R_ISI_CH1>,
<&pd IMX_SC_R_ISI_CH2>, <&pd IMX_SC_R_ISI_CH3>,
<&pd IMX_SC_R_ISI_CH4>, <&pd IMX_SC_R_ISI_CH5>,
<&pd IMX_SC_R_ISI_CH6>, <&pd IMX_SC_R_ISI_CH7>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@2 {
reg = <2>;
endpoint {
remote-endpoint = <&mipi_csi0_out>;
};
};
};
};
...
@@ -0,0 +1,106 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/fsl,imx8qxp-isi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: i.MX8QXP Image Sensing Interface
maintainers:
- Frank Li <Frank.Li@nxp.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,imx8qxp-isi
reg:
maxItems: 1
clocks:
maxItems: 6
clock-names:
items:
- const: per0
- const: per1
- const: per2
- const: per3
- const: per4
- const: per5
interrupts:
maxItems: 6
power-domains:
maxItems: 6
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@2:
$ref: /schemas/graph.yaml#/properties/port
description: MIPI CSI-2 RX 0
port@6:
$ref: /schemas/graph.yaml#/properties/port
description: CSI-2 Parallel RX
required:
- compatible
- reg
- clocks
- clock-names
- interrupts
- power-domains
- ports
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/clock/imx8-clock.h>
#include <dt-bindings/clock/imx8-lpcg.h>
#include <dt-bindings/firmware/imx/rsrc.h>
image-controller@58100000 {
compatible = "fsl,imx8qxp-isi";
reg = <0x58100000 0x60000>;
interrupts = <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&pdma0_lpcg IMX_LPCG_CLK_0>,
<&pdma1_lpcg IMX_LPCG_CLK_0>,
<&pdma2_lpcg IMX_LPCG_CLK_0>,
<&pdma3_lpcg IMX_LPCG_CLK_0>,
<&pdma4_lpcg IMX_LPCG_CLK_0>,
<&pdma5_lpcg IMX_LPCG_CLK_0>;
clock-names = "per0", "per1", "per2", "per3", "per4", "per5";
power-domains = <&pd IMX_SC_R_ISI_CH0>, <&pd IMX_SC_R_ISI_CH1>,
<&pd IMX_SC_R_ISI_CH2>, <&pd IMX_SC_R_ISI_CH3>,
<&pd IMX_SC_R_ISI_CH4>, <&pd IMX_SC_R_ISI_CH5>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@2 {
reg = <2>;
endpoint {
remote-endpoint = <&mipi_csi0_out>;
};
};
};
};
...
@@ -0,0 +1,43 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/gpio-ir-receiver.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: GPIO Based IR receiver
maintainers:
- Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
allOf:
- $ref: rc.yaml#
properties:
compatible:
const: gpio-ir-receiver
gpios:
maxItems: 1
linux,autosuspend-period:
description: autosuspend delay time in milliseconds
$ref: /schemas/types.yaml#/definitions/uint32
wakeup-source:
description: IR receiver can wake-up the system.
required:
- compatible
- gpios
unevaluatedProperties: false
examples:
- |
ir-receiver {
compatible = "gpio-ir-receiver";
gpios = <&gpio0 19 1>;
linux,rc-map-name = "rc-rc6-mce";
linux,autosuspend-period = <125>;
};
...
@@ -0,0 +1,26 @@
Device-Tree bindings for hix5hd2 ir IP
Required properties:
- compatible: Should contain "hisilicon,hix5hd2-ir", or:
- "hisilicon,hi3796cv300-ir" for Hi3796CV300 IR device.
- reg: Base physical address of the controller and length of memory
mapped region.
- interrupts: interrupt-specifier for the sole interrupt generated by
the device. The interrupt specifier format depends on the interrupt
controller parent.
- clocks: clock phandle and specifier pair.
Optional properties:
- linux,rc-map-name: see rc.txt file in the same directory.
- hisilicon,power-syscon: DEPRECATED. Don't use this in new dts files.
Provide correct clocks instead.
Example node:
ir: ir@f8001000 {
compatible = "hisilicon,hix5hd2-ir";
reg = <0xf8001000 0x1000>;
interrupts = <0 47 4>;
clocks = <&clock HIX5HD2_IR_CLOCK>;
linux,rc-map-name = "rc-tivo";
};
@@ -0,0 +1,56 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/adi,ad5820.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices AD5820 autofocus coil
maintainers:
- Pavel Machek <pavel@ucw.cz>
description:
The AD5820 is a current sink driver designed for precise control of
voice coil motors (VCMs) in camera autofocus systems.
properties:
compatible:
enum:
- adi,ad5820
- adi,ad5821
- adi,ad5823
reg:
maxItems: 1
enable-gpios:
maxItems: 1
description:
GPIO spec for the XSHUTDOWN pin. The XSHUTDOWN signal is active low,
a high level on the pin enables the device.
VANA-supply:
description: supply of voltage for VANA pin
required:
- compatible
- reg
- VANA-supply
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
coil@c {
compatible = "adi,ad5820";
reg = <0x0c>;
enable-gpios = <&msmgpio 26 GPIO_ACTIVE_HIGH>;
VANA-supply = <&vaux4>;
};
};
@@ -0,0 +1,38 @@
* Analog Devices ADP1653 flash LED driver
Required Properties:
- compatible: Must contain "adi,adp1653"
- reg: I2C slave address
- enable-gpios: Specifier of the GPIO connected to EN pin
There are two LED outputs available - flash and indicator. One LED is
represented by one child node, nodes need to be named "flash" and "indicator".
Required properties of the LED child node:
- led-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
Required properties of the flash LED child node:
- flash-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
- flash-timeout-us : see Documentation/devicetree/bindings/leds/common.txt
- led-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
Example:
adp1653: led-controller@30 {
compatible = "adi,adp1653";
reg = <0x30>;
enable-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>; /* 88 */
flash {
flash-timeout-us = <500000>;
flash-max-microamp = <320000>;
led-max-microamp = <50000>;
};
indicator {
led-max-microamp = <17500>;
};
};
@@ -0,0 +1,284 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/adi,adv7180.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices ADV7180 analog video decoder family
maintainers:
- Lars-Peter Clausen <lars@metafoo.de>
description:
The adv7180 family devices are used to capture analog video to different
digital interfaces like MIPI CSI-2 or parallel video.
properties:
compatible:
items:
- enum:
- adi,adv7180
- adi,adv7180cp
- adi,adv7180st
- adi,adv7182
- adi,adv7280
- adi,adv7280-m
- adi,adv7281
- adi,adv7281-m
- adi,adv7281-ma
- adi,adv7282
- adi,adv7282-m
reg:
minItems: 1
items:
- description: main register map
- description: VPP or CSI register map
- description: CSI register map
description:
The ADV7180 family may have up to three register maps. All chips have
the main register map. The availability of the CSI and VPP register maps
depends on the chip variant.
The addresses of the CSI and VPP register maps are programmable by
software. They depend on the board layout and other devices on the I2C
bus and are determined by the hardware designer to avoid address
conflicts on the I2C bus.
reg-names:
minItems: 1
items:
- const: main
- enum: [ csi, vpp ]
- const: csi
powerdown-gpios:
maxItems: 1
reset-gpios:
maxItems: 1
adv,force-bt656-4:
deprecated: true
description:
Indicates that the output is a BT.656-4 compatible stream.
type: boolean
adi,force-bt656-4:
description:
Indicates that the output is a BT.656-4 compatible stream.
type: boolean
interrupts:
items:
- description: The GPIO connected to the INTRQ pin.
port:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
ports: true
additionalProperties: false
required:
- compatible
- reg
allOf:
- if:
properties:
compatible:
enum:
- adi,adv7180
- adi,adv7182
- adi,adv7280
- adi,adv7280-m
- adi,adv7281
- adi,adv7281-m
- adi,adv7281-ma
- adi,adv7282
- adi,adv7282-m
then:
required:
- port
- if:
properties:
compatible:
contains:
const: adi,adv7180cp
then:
properties:
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@3:
$ref: /schemas/graph.yaml#/properties/port
description: Output port
patternProperties:
"^port@[0-2]$":
$ref: /schemas/graph.yaml#/properties/port
description: Input port
required:
- port@3
required:
- ports
- if:
properties:
compatible:
contains:
const: adi,adv7180st
then:
properties:
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@6:
$ref: /schemas/graph.yaml#/properties/port
description: Output port
patternProperties:
"^port@[0-5]$":
$ref: /schemas/graph.yaml#/properties/port
description: Input port
required:
- port@6
required:
- ports
- if:
properties:
compatible:
contains:
enum:
- adi,adv7180
- adi,adv7180cp
- adi,adv7180st
- adi,adv7182
then:
properties:
reg:
maxItems: 1
reg-names:
maxItems: 1
- if:
properties:
compatible:
contains:
enum:
- adi,adv7281
- adi,adv7281-m
- adi,adv7281-ma
then:
properties:
reg:
minItems: 1
maxItems: 2
reg-names:
minItems: 1
items:
- const: main
- const: csi
- if:
properties:
compatible:
contains:
enum:
- adi,adv7280
- adi,adv7282
then:
properties:
reg:
minItems: 1
maxItems: 2
reg-names:
minItems: 1
items:
- const: main
- const: vpp
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
composite-in@20 {
compatible = "adi,adv7180";
reg = <0x20>;
port {
adv7180: endpoint {
bus-width = <8>;
remote-endpoint = <&vin1ep>;
};
};
};
};
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
composite-in@20 {
compatible = "adi,adv7180cp";
reg = <0x20>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
adv7180_in: endpoint {
remote-endpoint = <&composite_con_in>;
};
};
port@3 {
reg = <3>;
adv7180_out: endpoint {
remote-endpoint = <&vin4_in>;
};
};
};
};
};
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
composite-in@20 {
compatible = "adi,adv7280-m";
reg = <0x20>, <0x42>, <0x44>;
reg-names = "main", "vpp", "csi";
port {
adv7280_out: endpoint {
bus-width = <8>;
remote-endpoint = <&vin1ep>;
};
};
};
};
@@ -0,0 +1,48 @@
* Analog Devices adv7343 video encoder
The ADV7343 are high speed, digital-to-analog video encoders in a 64-lead LQFP
package. Six high speed, 3.3 V, 11-bit video DACs provide support for composite
(CVBS), S-Video (Y-C), and component (YPrPb/RGB) analog outputs in standard
definition (SD), enhanced definition (ED), or high definition (HD) video
formats.
Required Properties :
- compatible: Must be "adi,adv7343"
Optional Properties :
- adi,power-mode-sleep-mode: on enable the current consumption is reduced to
micro ampere level. All DACs and the internal PLL
circuit are disabled.
- adi,power-mode-pll-ctrl: PLL and oversampling control. This control allows
internal PLL 1 circuit to be powered down and the
oversampling to be switched off.
- ad,adv7343-power-mode-dac: array configuring the power on/off DAC's 1..6,
0 = OFF and 1 = ON, Default value when this
property is not specified is <0 0 0 0 0 0>.
- ad,adv7343-sd-config-dac-out: array configure SD DAC Output's 1 and 2, 0 = OFF
and 1 = ON, Default value when this property is
not specified is <0 0>.
Example:
i2c0@1c22000 {
...
...
adv7343@2a {
compatible = "adi,adv7343";
reg = <0x2a>;
port {
adv7343_1: endpoint {
adi,power-mode-sleep-mode;
adi,power-mode-pll-ctrl;
/* Use DAC1..3, DAC6 */
adi,dac-enable = <1 1 1 0 0 1>;
/* Use SD DAC output 1 */
adi,sd-dac-enable = <1 0>;
};
};
};
...
};
@@ -0,0 +1,212 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/adi,adv748x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices ADV748X video decoder with HDMI receiver
maintainers:
- Kieran Bingham <kieran.bingham@ideasonboard.com>
- Niklas Söderlund <niklas.soderlund@ragnatech.se>
description:
The ADV7481 and ADV7482 are multi format video decoders with an integrated
HDMI receiver. They can output CSI-2 on two independent outputs TXA and TXB
from three input sources HDMI, analog and TTL.
properties:
compatible:
items:
- enum:
- adi,adv7481
- adi,adv7482
reg:
minItems: 1
maxItems: 12
description:
The ADV748x has up to twelve 256-byte maps that can be accessed via the
main I2C ports. Each map has it own I2C address and acts as a standard
slave device on the I2C bus. The main address is mandatory, others are
optional and remain at default values if not specified.
reg-names:
minItems: 1
items:
- const: main
- enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
- enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
- enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
- enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
- enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
- enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
- enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
- enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
- enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
- enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
- enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
interrupts: true
interrupt-names: true
ports:
$ref: /schemas/graph.yaml#/properties/ports
patternProperties:
"^port@[0-7]$":
$ref: /schemas/graph.yaml#/properties/port
description: Input port nodes for analog inputs AIN[0-7].
properties:
port@8:
$ref: /schemas/graph.yaml#/properties/port
description: Input port node for HDMI.
port@9:
$ref: /schemas/graph.yaml#/properties/port
description: Input port node for TTL.
port@a:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description:
Output port node, single endpoint describing the CSI-2 transmitter TXA.
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
clock-lanes:
maxItems: 1
data-lanes:
minItems: 1
maxItems: 4
required:
- clock-lanes
- data-lanes
port@b:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description:
Output port node, single endpoint describing the CSI-2 transmitter TXB.
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
clock-lanes:
maxItems: 1
data-lanes:
maxItems: 1
required:
- clock-lanes
- data-lanes
allOf:
- if:
properties:
compatible:
contains:
const: adi,adv7481
then:
properties:
interrupts:
minItems: 1
maxItems: 3
interrupt-names:
minItems: 1
maxItems: 3
items:
enum: [ intrq1, intrq2, intrq3 ]
else:
properties:
interrupts:
minItems: 1
maxItems: 2
interrupt-names:
minItems: 1
maxItems: 2
items:
enum: [ intrq1, intrq2 ]
additionalProperties: false
required:
- compatible
- reg
- ports
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
video-receiver@70 {
compatible = "adi,adv7482";
reg = <0x70 0x71 0x72 0x73 0x74 0x75
0x60 0x61 0x62 0x63 0x64 0x65>;
reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
"infoframe", "cbus", "cec", "sdp", "txa", "txb";
interrupt-parent = <&gpio6>;
interrupts = <30 IRQ_TYPE_LEVEL_LOW>, <31 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "intrq1", "intrq2";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@7 {
reg = <7>;
adv7482_ain7: endpoint {
remote-endpoint = <&cvbs_in>;
};
};
port@8 {
reg = <8>;
adv7482_hdmi: endpoint {
remote-endpoint = <&hdmi_in>;
};
};
port@a {
reg = <10>;
adv7482_txa: endpoint {
clock-lanes = <0>;
data-lanes = <1 2 3 4>;
remote-endpoint = <&csi40_in>;
};
};
port@b {
reg = <11>;
adv7482_txb: endpoint {
clock-lanes = <0>;
data-lanes = <1>;
remote-endpoint = <&csi20_in>;
};
};
};
};
};
@@ -0,0 +1,158 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/adi,adv7604.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices ADV7604/10/11/12 video decoder with HDMI receiver
maintainers:
- Hans Verkuil <hverkuil@kernel.org>
description:
The ADV7604 and ADV7610/11/12 are multiformat video decoders with
an integrated HDMI receiver. The ADV7604 has four multiplexed HDMI inputs
and one analog input, and the ADV7610/11 have one HDMI input and no analog
input. The ADV7612 is similar to the ADV7610/11 but has 2 HDMI inputs.
These device tree bindings support the ADV7610/11/12 only at the moment.
properties:
compatible:
items:
- enum:
- adi,adv7610
- adi,adv7611
- adi,adv7612
reg:
minItems: 1
maxItems: 13
reg-names:
minItems: 1
items:
- const: main
- enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
- enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
- enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
- enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
- enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
- enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
- enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
- enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
- enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
- enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
- enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
- enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
interrupts:
maxItems: 1
reset-gpios:
maxItems: 1
hpd-gpios:
minItems: 1
description:
References to the GPIOs that control the HDMI hot-plug detection pins,
one per HDMI input. The active flag indicates the GPIO level that
enables hot-plug detection.
default-input:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [ 0, 1 ]
description:
Select which input is selected after reset.
ports: true
required:
- compatible
- reg
- ports
additionalProperties: false
allOf:
- if:
properties:
compatible:
contains:
const: adi,adv7611
then:
properties:
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/properties/port
description: Input port
port@1:
$ref: /schemas/graph.yaml#/properties/port
description: Output port
required:
- port@1
- if:
properties:
compatible:
contains:
const: adi,adv7612
then:
properties:
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@2:
$ref: /schemas/graph.yaml#/properties/port
description: Output port
patternProperties:
"^port@[0-1]$":
$ref: /schemas/graph.yaml#/properties/port
description: Input port
required:
- port@2
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
hdmi_receiver@4c {
compatible = "adi,adv7611";
/*
* The edid page will be accessible @ 0x66 on the I2C bus. All
* other maps will retain their default addresses.
*/
reg = <0x4c>, <0x66>;
reg-names = "main", "edid";
reset-gpios = <&ioexp 0 GPIO_ACTIVE_LOW>;
hpd-gpios = <&ioexp 2 GPIO_ACTIVE_HIGH>;
default-input = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
};
port@1 {
reg = <1>;
hdmi_in: endpoint {
remote-endpoint = <&ccdc_in>;
};
};
};
};
};
@@ -0,0 +1,81 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/alliedvision,alvium-csi2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allied Vision Alvium Camera
maintainers:
- Tommaso Merciai <tomm.merciai@gmail.com>
- Martin Hecht <mhecht73@gmail.com>
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
const: alliedvision,alvium-csi2
reg:
maxItems: 1
vcc-ext-in-supply:
description: |
The regulator that supplies power to the VCC_EXT_IN pins.
port:
description: Digital Output Port
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
link-frequencies: true
data-lanes:
minItems: 1
items:
- const: 1
- const: 2
- const: 3
- const: 4
required:
- data-lanes
- link-frequencies
required:
- compatible
- reg
- vcc-ext-in-supply
- port
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
alvium: camera@3c {
compatible = "alliedvision,alvium-csi2";
reg = <0x3c>;
vcc-ext-in-supply = <&reg_vcc_ext_in>;
port {
alvium_out: endpoint {
remote-endpoint = <&mipi_csi_0_in>;
data-lanes = <1 2 3 4>;
link-frequencies = /bits/ 64 <681250000>;
};
};
};
};
...
@@ -0,0 +1,109 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/aptina,mt9p031.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Aptina 1/2.5-Inch 5Mp CMOS Digital Image Sensor
maintainers:
- Laurent Pinchart <laurent.pinchart@ideasonboard.com>
description: |
The Aptina MT9P031 is a 1/2.5-inch CMOS active pixel digital image sensor
with an active array size of 2592H x 1944V. It is programmable through a
simple two-wire serial interface.
properties:
compatible:
enum:
- aptina,mt9p006
- aptina,mt9p031
- aptina,mt9p031m
reg:
description: I2C device address
maxItems: 1
clocks:
maxItems: 1
vdd-supply:
description: Digital supply voltage, 1.8 V
vdd_io-supply:
description: I/O supply voltage, 1.8 or 2.8 V
vaa-supply:
description: Analog supply voltage, 2.8 V
reset-gpios:
maxItems: 1
description: Chip reset GPIO
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
input-clock-frequency:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 6000000
maximum: 96000000
description: Input clock frequency
pixel-clock-frequency:
$ref: /schemas/types.yaml#/definitions/uint32
maximum: 96000000
description: Target pixel clock frequency
pclk-sample:
default: 0
required:
- input-clock-frequency
- pixel-clock-frequency
required:
- compatible
- reg
- clocks
- vdd-supply
- vdd_io-supply
- vaa-supply
- port
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
mt9p031@5d {
compatible = "aptina,mt9p031";
reg = <0x5d>;
reset-gpios = <&gpio_sensor 0 0>;
clocks = <&sensor_clk>;
vdd-supply = <&reg_vdd>;
vdd_io-supply = <&reg_vdd_io>;
vaa-supply = <&reg_vaa>;
port {
mt9p031_1: endpoint {
input-clock-frequency = <6000000>;
pixel-clock-frequency = <96000000>;
};
};
};
};
...
@@ -0,0 +1,41 @@
* Aptina 1/3-Inch WVGA CMOS Digital Image Sensor
The Aptina MT9V032 is a 1/3-inch CMOS active pixel digital image sensor with
an active array size of 752H x 480V. It is programmable through a simple
two-wire serial interface.
Required Properties:
- compatible: value should be either one among the following
(a) "aptina,mt9v022" for MT9V022 color sensor
(b) "aptina,mt9v022m" for MT9V022 monochrome sensor
(c) "aptina,mt9v024" for MT9V024 color sensor
(d) "aptina,mt9v024m" for MT9V024 monochrome sensor
(e) "aptina,mt9v032" for MT9V032 color sensor
(f) "aptina,mt9v032m" for MT9V032 monochrome sensor
(g) "aptina,mt9v034" for MT9V034 color sensor
(h) "aptina,mt9v034m" for MT9V034 monochrome sensor
Optional Properties:
- link-frequencies: List of allowed link frequencies in Hz. Each frequency is
expressed as a 64-bit big-endian integer.
- reset-gpios: GPIO handle which is connected to the reset pin of the chip.
- standby-gpios: GPIO handle which is connected to the standby pin of the chip.
For further reading on port node refer to
Documentation/devicetree/bindings/media/video-interfaces.txt.
Example:
mt9v032@5c {
compatible = "aptina,mt9v032";
reg = <0x5c>;
port {
mt9v032_out: endpoint {
link-frequencies = /bits/ 64
<13000000 26600000 27000000>;
};
};
};
@@ -0,0 +1,75 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/aptina,mt9v111.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Aptina MT9V111 CMOS sensor
maintainers:
- Jacopo Mondi <jacopo@jmondi.org>
description: |
The Aptina MT9V111 is a 1/4-Inch VGA-format digital image sensor with a core
based on Aptina MT9V011 sensor and an integrated Image Flow Processor (IFP).
The sensor has an active pixel array of 640x480 pixels and can output a number
of image resolutions and formats controllable through a simple two-wires
interface.
properties:
compatible:
const: aptina,mt9v111
reg:
maxItems: 1
clocks:
maxItems: 1
enable-gpios:
description: Enable signal, pin name "OE#". Active low.
maxItems: 1
standby-gpios:
description: |
Low power state control signal, pin name "STANDBY". Active high.
maxItems: 1
reset-gpios:
description: Chip reset signal, pin name "RESET#". Active low.
maxItems: 1
port:
$ref: /schemas/graph.yaml#/properties/port
description: |
Output video port.
required:
- compatible
- reg
- clocks
- port
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
camera@48 {
compatible = "aptina,mt9v111";
reg = <0x48>;
clocks = <&camera_clk>;
port {
mt9v111_out: endpoint {
remote-endpoint = <&ceu_in>;
};
};
};
};
...
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/asahi-kasei,ak7375.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Asahi Kasei Microdevices AK7375 voice coil lens actuator
maintainers:
- Tianshu Qiu <tian.shu.qiu@intel.com>
description:
AK7375 is a voice coil motor (VCM) camera lens actuator that
is controlled over I2C.
properties:
compatible:
enum:
- asahi-kasei,ak7345
- asahi-kasei,ak7375
reg:
maxItems: 1
vdd-supply:
description: VDD supply
vio-supply:
description: I/O pull-up supply
required:
- compatible
- reg
- vdd-supply
- vio-supply
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
ak7375: camera-lens@c {
compatible = "asahi-kasei,ak7375";
reg = <0x0c>;
vdd-supply = <&vreg_l23a_2p8>;
vio-supply = <&vreg_lvs1a_1p8>;
};
};
...
@@ -0,0 +1,68 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/chrontel,ch7322.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Chrontel HDMI-CEC Controller
maintainers:
- Jeff Chase <jnchase@google.com>
description:
The Chrontel CH7322 is a discrete HDMI-CEC controller. It is
programmable through I2C and drives a single CEC line.
allOf:
- $ref: /schemas/media/cec/cec-common.yaml#
properties:
compatible:
const: chrontel,ch7322
reg:
description: I2C device address
maxItems: 1
clocks:
maxItems: 1
interrupts:
maxItems: 1
reset-gpios:
description:
Reference to the GPIO connected to the RESET pin, if any. This
pin is active-low.
maxItems: 1
standby-gpios:
description:
Reference to the GPIO connected to the OE pin, if any. When low
the device will respond to power status requests with "standby"
if in auto mode.
maxItems: 1
required:
- compatible
- reg
- interrupts
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
cec@75 {
compatible = "chrontel,ch7322";
reg = <0x75>;
interrupts = <47 IRQ_TYPE_EDGE_RISING>;
standby-gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
hdmi-phandle = <&hdmi>;
};
};
@@ -0,0 +1,47 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/dongwoon,dw9714.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Dongwoon Anatech DW9714 camera voice coil lens driver
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
description:
DW9174 is a 10-bit DAC with current sink capability. It is intended for
driving voice coil lenses in camera modules.
properties:
compatible:
const: dongwoon,dw9714
reg:
maxItems: 1
powerdown-gpios:
description:
XSD pin for shutdown (active low)
vcc-supply:
description: VDD power supply
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
camera-lens@c {
compatible = "dongwoon,dw9714";
reg = <0x0c>;
vcc-supply = <&reg_csi_1v8>;
};
};
@@ -0,0 +1,89 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/dongwoon,dw9719.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Dongwoon Anatech DW9719 Voice Coil Motor (VCM) Controller
maintainers:
- André Apitzsch <git@apitzsch.eu>
description:
The Dongwoon DW9718S/9719/9761 is a single 10-bit digital-to-analog converter
with 100 mA output current sink capability, designed for linear control of
voice coil motors (VCM) in camera lenses. This chip provides a Smart Actuator
Control (SAC) mode intended for driving voice coil lenses in camera modules.
properties:
compatible:
enum:
- dongwoon,dw9718s
- dongwoon,dw9719
- dongwoon,dw9761
- dongwoon,dw9800k
reg:
maxItems: 1
vdd-supply:
description: VDD power supply
dongwoon,sac-mode:
description: |
Slew Rate Control mode to use: direct, LSC (Linear Slope Control) or
SAC1-SAC6 (Smart Actuator Control).
$ref: /schemas/types.yaml#/definitions/uint32
enum:
- 0 # Direct mode
- 1 # LSC mode
- 2 # SAC1 mode (operation time# 0.32 x Tvib)
- 3 # SAC2 mode (operation time# 0.48 x Tvib)
- 4 # SAC3 mode (operation time# 0.72 x Tvib)
- 5 # SAC4 mode (operation time# 1.20 x Tvib)
- 6 # SAC5 mode (operation time# 1.64 x Tvib)
- 7 # SAC6 mode (operation time# 1.88 x Tvib)
default: 4
dongwoon,vcm-prescale:
description:
Indication of VCM switching frequency dividing rate select.
$ref: /schemas/types.yaml#/definitions/uint32
required:
- compatible
- reg
- vdd-supply
allOf:
- if:
properties:
compatible:
contains:
const: dongwoon,dw9718s
then:
properties:
dongwoon,vcm-prescale:
description:
The final frequency is 10 MHz divided by (value + 2).
maximum: 15
default: 0
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
actuator@c {
compatible = "dongwoon,dw9718s";
reg = <0x0c>;
vdd-supply = <&pm8937_l17>;
dongwoon,sac-mode = <4>;
dongwoon,vcm-prescale = <0>;
};
};
@@ -0,0 +1,97 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (c) 2020 MediaTek Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/dongwoon,dw9768.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Dongwoon Anatech DW9768 Voice Coil Motor (VCM) Lens
maintainers:
- Dongchun Zhu <dongchun.zhu@mediatek.com>
description: |-
The Dongwoon DW9768 is a single 10-bit digital-to-analog (DAC) converter
with 100 mA output current sink capability. VCM current is controlled with
a linear mode driver. The DAC is controlled via a 2-wire (I2C-compatible)
serial interface that operates at clock rates up to 1MHz. This chip
integrates Advanced Actuator Control (AAC) technology and is intended for
driving voice coil lenses in camera modules.
properties:
compatible:
enum:
- dongwoon,dw9768 # for DW9768 VCM
- giantec,gt9769 # for GT9769 VCM
reg:
maxItems: 1
vin-supply:
description:
Definition of the regulator used as Digital I/O voltage supply.
vdd-supply:
description:
Definition of the regulator used as Digital core voltage supply.
dongwoon,aac-mode:
description:
Indication of AAC mode select.
$ref: /schemas/types.yaml#/definitions/uint32
enum:
- 1 # AAC2 mode(operation time# 0.48 x Tvib)
- 2 # AAC3 mode(operation time# 0.70 x Tvib)
- 3 # AAC4 mode(operation time# 0.75 x Tvib)
- 5 # AAC8 mode(operation time# 1.13 x Tvib)
default: 2
dongwoon,aac-timing:
description:
Number of AAC Timing count that controlled by one 6-bit period of
vibration register AACT[5:0], the unit of which is 100 us.
$ref: /schemas/types.yaml#/definitions/uint32
default: 0x20
minimum: 0x00
maximum: 0x3f
dongwoon,clock-presc:
description:
Indication of VCM internal clock dividing rate select, as one multiple
factor to calculate VCM ring periodic time Tvib.
$ref: /schemas/types.yaml#/definitions/uint32
enum:
- 0 # Dividing Rate - 2
- 1 # Dividing Rate - 1
- 2 # Dividing Rate - 1/2
- 3 # Dividing Rate - 1/4
- 4 # Dividing Rate - 8
- 5 # Dividing Rate - 4
default: 1
required:
- compatible
- reg
- vin-supply
- vdd-supply
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
dw9768: camera-lens@c {
compatible = "dongwoon,dw9768";
reg = <0x0c>;
vin-supply = <&mt6358_vcamio_reg>;
vdd-supply = <&mt6358_vcama2_reg>;
dongwoon,aac-timing = <0x39>;
};
};
...
@@ -0,0 +1,41 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2018, 2021 Intel Corporation
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/dongwoon,dw9807-vcm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Dongwoon Anatech DW9807 voice coil lens driver
maintainers:
- Sakari Ailus <sakari.ailus@linux.intel.com>
description: |
DW9807 is a 10-bit DAC with current sink capability. It is intended for
controlling voice coil lenses.
properties:
compatible:
const: dongwoon,dw9807-vcm
reg:
maxItems: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
lens@e {
compatible = "dongwoon,dw9807-vcm";
reg = <0x0e>;
};
};
...
@@ -0,0 +1,108 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/galaxycore,gc0308.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Galaxycore GC0308 and GC0309 Image Sensors
maintainers:
- Sebastian Reichel <sre@kernel.org>
description: |
The GalaxyCore GC0308 (1/6.5") and GC0309 (1/9") are 640x480 VGA sensors
programmable through an I2C interface and connected via parallel bus.
They include an ISP capable of auto exposure and auto white balance.
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
oneOf:
- const: galaxycore,gc0308
- items:
- const: galaxycore,gc0309
- const: galaxycore,gc0308
reg:
const: 0x21
clocks:
description: Reference to the xclk clock.
maxItems: 1
reset-gpios:
description: GPIO descriptor for the reset pin.
maxItems: 1
powerdown-gpios:
description: GPIO descriptor for the powerdown pin.
maxItems: 1
vdd28-supply:
description: 2.8V supply
port:
$ref: /schemas/graph.yaml#/$defs/port-base
description: |
Video output port.
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
bus-width: true
data-shift: true
hsync-active: true
vsync-active: true
data-active: true
pclk-sample: true
required:
- bus-width
additionalProperties: false
required:
- compatible
- reg
- clocks
- powerdown-gpios
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
camera-sensor@21 {
compatible = "galaxycore,gc0308";
reg = <0x21>;
clocks = <&camera_clk>;
powerdown-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
vdd28-supply = <&vdd28>;
port {
gc0308_ep: endpoint {
remote-endpoint = <&parallel_from_gc0308>;
bus-width = <8>;
data-shift = <2>; /* lines 9:2 are used */
hsync-active = <1>; /* active high */
vsync-active = <1>; /* active high */
data-active = <1>; /* active high */
pclk-sample = <1>; /* sample on rising edge */
};
};
};
};
...
@@ -0,0 +1,112 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (c) 2023 MediaTek Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/galaxycore,gc05a2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: GalaxyCore gc05a2 1/5" 5M Pixel MIPI CSI-2 sensor
maintainers:
- Zhi Mao <zhi.mao@mediatek.com>
description:
The gc05a2 is a raw image sensor with an MIPI CSI-2 image data
interface and CCI (I2C compatible) control bus. The output format
is raw Bayer.
properties:
compatible:
const: galaxycore,gc05a2
reg:
maxItems: 1
clocks:
maxItems: 1
dovdd-supply: true
avdd-supply: true
dvdd-supply: true
reset-gpios:
description: Reference to the GPIO connected to the RESETB pin.
maxItems: 1
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
description:
Output port node, single endpoint describing the CSI-2 transmitter.
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
oneOf:
- items:
- const: 1
- const: 2
- const: 3
- const: 4
- items:
- const: 1
- const: 2
link-frequencies: true
required:
- data-lanes
- link-frequencies
required:
- endpoint
required:
- compatible
- reg
- clocks
- dovdd-supply
- avdd-supply
- dvdd-supply
- reset-gpios
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@37 {
compatible = "galaxycore,gc05a2";
reg = <0x37>;
clocks = <&gc05a2_clk>;
reset-gpios = <&pio 21 GPIO_ACTIVE_LOW>;
avdd-supply = <&gc05a2_avdd>;
dovdd-supply = <&gc05a2_dovdd>;
dvdd-supply = <&gc05a2_dvdd>;
port {
sensor_out: endpoint {
data-lanes = <1 2>;
link-frequencies = /bits/ 64 <448000000 224000000>;
remote-endpoint = <&seninf_csi_port_1_in>;
};
};
};
};
...
@@ -0,0 +1,112 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (c) 2023 MediaTek Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/galaxycore,gc08a3.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: GalaxyCore gc08a3 1/4" 8M Pixel MIPI CSI-2 sensor
maintainers:
- Zhi Mao <zhi.mao@mediatek.com>
description:
The gc08a3 is a raw image sensor with an MIPI CSI-2 image data
interface and CCI (I2C compatible) control bus. The output format
is raw Bayer.
properties:
compatible:
const: galaxycore,gc08a3
reg:
maxItems: 1
clocks:
maxItems: 1
dovdd-supply: true
avdd-supply: true
dvdd-supply: true
reset-gpios:
description: Reference to the GPIO connected to the RESETB pin.
maxItems: 1
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
description:
Output port node, single endpoint describing the CSI-2 transmitter.
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
oneOf:
- items:
- const: 1
- const: 2
- const: 3
- const: 4
- items:
- const: 1
- const: 2
link-frequencies: true
required:
- data-lanes
- link-frequencies
required:
- endpoint
required:
- compatible
- reg
- clocks
- dovdd-supply
- avdd-supply
- dvdd-supply
- reset-gpios
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@31 {
compatible = "galaxycore,gc08a3";
reg = <0x31>;
clocks = <&gc08a3_clk>;
reset-gpios = <&pio 19 GPIO_ACTIVE_LOW>;
avdd-supply = <&gc08a3_avdd>;
dovdd-supply = <&gc08a3_dovdd>;
dvdd-supply = <&gc08a3_dvdd>;
port {
sensor_out: endpoint {
data-lanes = <1 2 3 4>;
link-frequencies = /bits/ 64 <336000000 207000000>;
remote-endpoint = <&seninf_csi_port_0_in>;
};
};
};
};
...
@@ -0,0 +1,113 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/galaxycore,gc2145.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Galaxy Core 1/5'' UXGA CMOS Image Sensor
maintainers:
- Alain Volmat <alain.volmat@foss.st.com>
description:
The Galaxy Core GC2145 is a 2 Megapixel CMOS image sensor, for mobile
phone camera applications and digital camera products. GC2145 incorporates a
1616V x 1232H active pixel array, on-chip 10-bit ADC, and image signal
processor allowing AE/AWB/interpolation/de-noise/color-conversion and
gamma correction. Bayer RGB, RGB565 and YCbCr 4:2:2 can be provided by the
sensor. It is programmable through an I2C interface. Image data is sent
either through a parallel interface or through MIPI CSI-2.
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
const: galaxycore,gc2145
reg:
const: 0x3c
clocks:
maxItems: 1
powerdown-gpios:
maxItems: 1
reset-gpios:
maxItems: 1
iovdd-supply:
description: Power Supply for I/O circuits (1.7 - 3V).
avdd-supply:
description: Power for analog circuit/sensor array (2.7 - 3V).
dvdd-supply:
description: Power for digital core (1.7 - 1.9V).
orientation: true
rotation: true
port:
$ref: /schemas/graph.yaml#/$defs/port-base
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
link-frequencies: true
required:
- link-frequencies
required:
- endpoint
additionalProperties: false
required:
- compatible
- reg
- clocks
- powerdown-gpios
- reset-gpios
- iovdd-supply
- avdd-supply
- dvdd-supply
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
camera@3c {
compatible = "galaxycore,gc2145";
reg = <0x3c>;
clocks = <&clk_ext_camera>;
iovdd-supply = <&scmi_v3v3_sw>;
avdd-supply = <&scmi_v3v3_sw>;
dvdd-supply = <&scmi_v3v3_sw>;
powerdown-gpios = <&mcp23017 3 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
reset-gpios = <&mcp23017 4 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
port {
endpoint {
remote-endpoint = <&mipid02_0>;
data-lanes = <1 2>;
link-frequencies = /bits/ 64 <120000000 192000000 240000000>;
};
};
};
};
...
@@ -0,0 +1,119 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/hynix,hi846.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: SK Hynix Hi-846 1/4" 8M Pixel MIPI CSI-2 sensor
maintainers:
- Martin Kepplinger <martin.kepplinger@puri.sm>
description: |-
The Hi-846 is a raw image sensor with an MIPI CSI-2 image data
interface and CCI (I2C compatible) control bus. The output format
is raw Bayer.
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
const: hynix,hi846
reg:
maxItems: 1
clocks:
items:
- description: Reference to the mclk clock.
reset-gpios:
description: Reference to the GPIO connected to the RESETB pin. Active low.
maxItems: 1
shutdown-gpios:
description: Reference to the GPIO connected to the XSHUTDOWN pin. Active low.
maxItems: 1
vddio-supply:
description: Definition of the regulator used for the VDDIO power supply.
vdda-supply:
description: Definition of the regulator used for the VDDA power supply.
vddd-supply:
description: Definition of the regulator used for the VDDD power supply.
port:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
oneOf:
- items:
- const: 1
- const: 2
- const: 3
- const: 4
- items:
- const: 1
- const: 2
link-frequencies: true
required:
- data-lanes
- link-frequencies
required:
- compatible
- reg
- clocks
- vddio-supply
- vdda-supply
- vddd-supply
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
hi846: camera@20 {
compatible = "hynix,hi846";
reg = <0x20>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_csi1>;
clocks = <&clk 0>;
vdda-supply = <&reg_camera_vdda>;
vddd-supply = <&reg_camera_vddd>;
vddio-supply = <&reg_camera_vddio>;
reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
shutdown-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>;
orientation = <0>;
rotation = <0>;
port {
camera_out: endpoint {
remote-endpoint = <&csi1_ep1>;
link-frequencies = /bits/ 64
<80000000 200000000>;
data-lanes = <1 2>;
};
};
};
};
...
@@ -0,0 +1,137 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
# Copyright (C) 2019 Renesas Electronics Corp.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/imi,rdacm2x-gmsl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: IMI D&D RDACM20 and RDACM21 Automotive Camera Platforms
maintainers:
- Jacopo Mondi <jacopo+renesas@jmondi.org>
- Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
- Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
- Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
description: -|
The IMI D&D RDACM20 and RDACM21 are GMSL-compatible camera designed for
automotive applications.
The RDACM20 camera module encloses a Maxim Integrated MAX9271 GMSL serializer,
coupled with an OV10635 image sensor and an embedded MCU. Both the MCU and
the image sensor are connected to the serializer local I2C bus and are
accessible by the host SoC by direct addressing.
The RDACM21 camera module encloses the same serializer, coupled with an
OV10640 image sensor and an OV490 ISP. Only the OV490 ISP is interfaced to
the serializer local I2C bus while the image sensor is not accessible from
the host SoC.
They both connect to a remote GMSL endpoint through a coaxial cable.
IMI RDACM20
+---------------+ +--------------------------------+
| GMSL | <- Video Stream | <- Video--------\ |
| |< === GMSL Link ====== >|MAX9271<- I2C bus-> <-->OV10635 |
| de-serializer | <- I2C messages -> | \<-->MCU |
+---------------+ +--------------------------------+
IMI RDACM21
+---------------+ +--------------------------------+
| GMSL | <- Video Stream | <- Video--------\ |
| |< === GMSL Link ====== >|MAX9271<- I2C bus-> <-->OV490 |
| | <- I2C messages -> | | |
| de-serializer | | OV10640 <-------| |
+---------------+ +--------------------------------+
Both camera modules serialize video data generated by the embedded camera
sensor on the GMSL serial channel to a remote GMSL de-serializer. They also
receive and transmit I2C messages encapsulated and transmitted on the GMSL
bidirectional control channel.
All I2C traffic received on the GMSL link not directed to the serializer is
propagated on the local I2C bus to the remote device there connected. All the
I2C traffic generated on the local I2C bus not directed to the serializer is
propagated to the remote de-serializer encapsulated in the GMSL control
channel.
The RDACM20 and RDACM21 DT node should be a direct child of the GMSL
deserializer's I2C bus corresponding to the GMSL link that the camera is
attached to.
properties:
'#address-cells':
const: 1
'#size-cells':
const: 0
compatible:
enum:
- imi,rdacm20
- imi,rdacm21
reg:
description: -|
I2C device addresses, the first to be assigned to the serializer, the
following ones to be assigned to the remote devices.
For RDACM20 the second entry of the property is assigned to the
OV10635 image sensor and the optional third one to the embedded MCU.
For RDACM21 the second entry is assigned to the OV490 ISP and the optional
third one ignored.
minItems: 2
maxItems: 3
port:
$ref: /schemas/graph.yaml#/properties/port
description:
Connection to the remote GMSL endpoint.
required:
- compatible
- reg
- port
additionalProperties: false
examples:
- |
i2c@e66d8000 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0 0xe66d8000>;
camera@31 {
compatible = "imi,rdacm20";
reg = <0x31>, <0x41>, <0x51>;
port {
rdacm20_out0: endpoint {
remote-endpoint = <&max9286_in0>;
};
};
};
};
- |
i2c@e66d8000 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0 0xe66d8000>;
camera@31 {
compatible = "imi,rdacm21";
reg = <0x31>, <0x41>;
port {
rdacm21_out0: endpoint {
remote-endpoint = <&max9286_in0>;
};
};
};
};
@@ -0,0 +1,113 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/isil,isl79987.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Intersil ISL79987 Analog to MIPI CSI-2 decoder
maintainers:
- Michael Tretter <m.tretter@pengutronix.de>
- Marek Vasut <marex@denx.de>
description:
The Intersil ISL79987 is an analog to MIPI CSI-2 decoder which is capable of
receiving up to four analog stream and multiplexing them into up to four MIPI
CSI-2 virtual channels, using one MIPI clock lane and 1/2 data lanes.
properties:
compatible:
enum:
- isil,isl79987
reg:
maxItems: 1
reset-gpios:
maxItems: 1
description:
A GPIO spec for the RSTB pin (active high)
powerdown-gpios:
maxItems: 1
description:
A GPIO spec for the Power Down pin (active high)
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description: Output port
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
minItems: 1
maxItems: 2
required:
- data-lanes
patternProperties:
"^port@[1-4]$":
$ref: /schemas/graph.yaml#/properties/port
description: Input ports
required:
- port@0
additionalProperties: false
required:
- compatible
- reg
- ports
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
isl7998x_mipi@44 {
compatible = "isil,isl79987";
reg = <0x44>;
powerdown-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
isl79987_out: endpoint {
remote-endpoint = <&mipi_csi2_in>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
endpoint {
remote-endpoint = <&camera_0>;
};
};
port@2 {
reg = <2>;
endpoint {
remote-endpoint = <&camera_1>;
};
};
};
};
};
@@ -0,0 +1,59 @@
Maxim Integrated MAX2175 RF to Bits tuner
-----------------------------------------
The MAX2175 IC is an advanced analog/digital hybrid-radio receiver with
RF to Bits® front-end designed for software-defined radio solutions.
Required properties:
--------------------
- compatible: "maxim,max2175" for MAX2175 RF-to-bits tuner.
- clocks: clock specifier.
- port: child port node corresponding to the I2S output, in accordance with
the video interface bindings defined in
Documentation/devicetree/bindings/media/video-interfaces.txt. The port
node must contain at least one endpoint.
Optional properties:
--------------------
- maxim,master : phandle to the master tuner if it is a slave. This
is used to define two tuners in diversity mode
(1 master, 1 slave). By default each tuner is an
individual master.
- maxim,refout-load : load capacitance value (in picofarads) on reference
output drive level. The possible load values are:
0 (default - refout disabled)
10
20
30
40
60
70
- maxim,am-hiz-filter : empty property indicates the AM Hi-Z filter is used
in this hardware for AM antenna input.
Example:
--------
Board specific DTS file
/* Fixed XTAL clock node */
maxim_xtal: clock {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <36864000>;
};
/* A tuner device instance under i2c bus */
max2175_0: tuner@60 {
compatible = "maxim,max2175";
reg = <0x60>;
clocks = <&maxim_xtal>;
maxim,refout-load = <10>;
port {
max2175_0_ep: endpoint {
remote-endpoint = <&slave_rx_device>;
};
};
};
@@ -0,0 +1,416 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2019 Renesas Electronics Corp.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/maxim,max9286.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim Integrated Quad GMSL Deserializer
maintainers:
- Jacopo Mondi <jacopo+renesas@jmondi.org>
- Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
- Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
- Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
description: |
The MAX9286 deserializer receives video data on up to 4 Gigabit Multimedia
Serial Links (GMSL) and outputs them on a CSI-2 D-PHY port using up to 4 data
lanes.
In addition to video data, the GMSL links carry a bidirectional control
channel that encapsulates I2C messages. The MAX9286 forwards all I2C traffic
not addressed to itself to the other side of the links, where a GMSL
serializer will output it on a local I2C bus. In the other direction all I2C
traffic received over GMSL by the MAX9286 is output on the local I2C bus.
properties:
'#address-cells':
const: 1
'#size-cells':
const: 0
compatible:
const: maxim,max9286
reg:
description: I2C device address
maxItems: 1
poc-supply:
description: Regulator providing Power over Coax to all the ports
enable-gpios:
description: GPIO connected to the \#PWDN pin with inverted polarity
maxItems: 1
gpio-controller: true
'#gpio-cells':
const: 2
maxim,bus-width:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [ 24, 27, 32 ]
description: |
The GMSL serial data bus width. This setting is normally controlled by
the BWS pin, but may be overridden with this property. The value must
match the configuration of the remote serializers.
maxim,i2c-remote-bus-hz:
enum: [ 8470, 28300, 84700, 105000, 173000, 339000, 533000, 837000 ]
default: 105000
description: |
The I2C clock frequency for the remote I2C buses. The value must match
the configuration of the remote serializers.
maxim,reverse-channel-microvolt:
minimum: 30000
maximum: 200000
default: 170000
description: |
Initial amplitude of the reverse control channel, in micro volts.
The initial amplitude shall be adjusted to a value compatible with the
configuration of the connected remote serializer.
Some camera modules (for example RDACM20) include an on-board MCU that
pre-programs the embedded serializer with power supply noise immunity
(high-threshold) enabled. A typical value of the deserializer's reverse
channel amplitude to communicate with pre-programmed serializers is
170000 micro volts.
A typical value for the reverse channel amplitude to communicate with
a remote serializer whose high-threshold noise immunity is not enabled
is 100000 micro volts
maxim,gpio-poc:
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 2
maxItems: 2
description: |
Index of the MAX9286 gpio output line (0 or 1) that controls Power over
Coax to the cameras and its associated polarity flag.
The property accepts an array of two unsigned integers, the first being
the gpio line index (0 or 1) and the second being the gpio line polarity
flag (GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW) as defined in
<include/dt-bindings/gpio/gpio.h>.
When the remote cameras power is controlled by one of the MAX9286 gpio
lines, this property has to be used to specify which line among the two
available ones controls the remote camera power enablement.
When this property is used it is not possible to register a gpio
controller as the gpio lines are controlled directly by the MAX9286 and
not available for consumers, nor the 'poc-supply' property should be
specified.
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/properties/port
description: GMSL Input 0
port@1:
$ref: /schemas/graph.yaml#/properties/port
description: GMSL Input 1
port@2:
$ref: /schemas/graph.yaml#/properties/port
description: GMSL Input 2
port@3:
$ref: /schemas/graph.yaml#/properties/port
description: GMSL Input 3
port@4:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description: CSI-2 Output
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes: true
required:
- data-lanes
required:
- port@4
i2c-mux:
type: object
$ref: /schemas/i2c/i2c-mux.yaml#
unevaluatedProperties: false
description: |
Each GMSL link is modelled as a child bus of an i2c bus multiplexer/switch.
patternProperties:
"^i2c@[0-3]$":
type: object
additionalProperties: false
description: |
Child node of the i2c bus multiplexer which represents a GMSL link.
Each serializer device on the GMSL link remote end is represented with
an i2c-mux child node. The MAX9286 chip supports up to 4 GMSL
channels.
properties:
reg:
description: The index of the GMSL channel.
maxItems: 1
'#address-cells':
const: 1
'#size-cells':
const: 0
patternProperties:
"^camera@[a-f0-9]+$":
type: object
description: |
The remote camera device, composed by a GMSL serializer and a
connected video source.
properties:
compatible:
description: The remote device compatible string.
reg:
minItems: 2
maxItems: 3
description: |
The I2C addresses to be assigned to the remote devices through
address reprogramming. The number of entries depends on the
requirements of the currently connected remote device.
port:
$ref: /schemas/graph.yaml#/properties/port
description: Connection to the MAX9286 sink.
required:
- compatible
- reg
- port
additionalProperties: false
patternProperties:
"^port[0-3]-poc-supply$":
description: Regulator providing Power over Coax for a particular port
required:
- compatible
- reg
- ports
- i2c-mux
allOf:
# Only one way of specifying power supplies is allowed: 'maxim,gpio-poc',
# 'poc-supply' or per-port poc-supply. Additionally, if 'maxim,gpio-poc' is
# present, then 'gpio-controller' isn't allowed.
- if:
required:
- maxim,gpio-poc
then:
properties:
poc-supply: false
gpio-controller: false
patternProperties:
"^port[0-3]-poc-supply$": false
- if:
required:
- poc-supply
then:
patternProperties:
"^port[0-3]-poc-supply$": false
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c@e66d8000 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0 0xe66d8000>;
gmsl-deserializer@2c {
compatible = "maxim,max9286";
reg = <0x2c>;
poc-supply = <&camera_poc_12v>;
enable-gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
gpio-controller;
#gpio-cells = <2>;
maxim,i2c-remote-bus-hz = <339000>;
maxim,reverse-channel-microvolt = <170000>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
max9286_in0: endpoint {
remote-endpoint = <&rdacm20_out0>;
};
};
port@1 {
reg = <1>;
max9286_in1: endpoint {
remote-endpoint = <&rdacm20_out1>;
};
};
port@2 {
reg = <2>;
max9286_in2: endpoint {
remote-endpoint = <&rdacm20_out2>;
};
};
port@3 {
reg = <3>;
max9286_in3: endpoint {
remote-endpoint = <&rdacm20_out3>;
};
};
port@4 {
reg = <4>;
max9286_out: endpoint {
data-lanes = <1 2 3 4>;
remote-endpoint = <&csi40_in>;
};
};
};
i2c-mux {
#address-cells = <1>;
#size-cells = <0>;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
camera@51 {
compatible = "imi,rdacm20";
reg = <0x51>, <0x61>;
port {
rdacm20_out0: endpoint {
remote-endpoint = <&max9286_in0>;
};
};
};
};
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
camera@52 {
compatible = "imi,rdacm20";
reg = <0x52>, <0x62>;
port {
rdacm20_out1: endpoint {
remote-endpoint = <&max9286_in1>;
};
};
};
};
i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
camera@53 {
compatible = "imi,rdacm20";
reg = <0x53>, <0x63>;
port {
rdacm20_out2: endpoint {
remote-endpoint = <&max9286_in2>;
};
};
};
};
i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
camera@54 {
compatible = "imi,rdacm20";
reg = <0x54>, <0x64>;
port {
rdacm20_out3: endpoint {
remote-endpoint = <&max9286_in3>;
};
};
};
};
};
};
/*
* Example of a deserializer that controls the camera Power over Coax
* through one of its gpio lines.
*/
gmsl-deserializer@6c {
compatible = "maxim,max9286";
reg = <0x6c>;
enable-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
/*
* The remote camera power is controlled by MAX9286 GPIO line #0.
* No 'poc-supply' nor 'gpio-controller' are specified.
*/
maxim,gpio-poc = <0 GPIO_ACTIVE_LOW>;
/*
* Do not describe connections as they're the same as in the previous
* example.
*/
ports {
#address-cells = <1>;
#size-cells = <0>;
port@4 {
reg = <4>;
};
};
i2c-mux {
#address-cells = <1>;
#size-cells = <0>;
};
};
};
@@ -0,0 +1,121 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2021 Renesas Electronics Corp.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/maxim,max96712.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Quad GMSL2 to CSI-2 Deserializer with GMSL1 Compatibility
maintainers:
- Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
description: |
The MAX96712 deserializer converts GMSL2 or GMSL1 serial inputs into MIPI
CSI-2 D-PHY or C-PHY formatted outputs. The device allows each link to
simultaneously transmit bidirectional control-channel data while forward
video transmissions are in progress. The MAX96712 can accommodate as many as
four remotely located sensors using industry-standard coax or STP
interconnects.
Each GMSL2 serial link operates at a fixed rate of 3Gbps or 6Gbps in the
forward direction and 187.5Mbps in the reverse direction. In GMSL1 mode, the
MAX96712 can be paired with first-generation 3.12Gbps or 1.5Gbps GMSL1
serializers or operate up to 3.12Gbps with GMSL2 serializers in GMSL1 mode.
properties:
compatible:
items:
- enum:
- maxim,max96712
- maxim,max96724
reg:
description: I2C device address
maxItems: 1
enable-gpios: true
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/properties/port
description: GMSL Input 0
port@1:
$ref: /schemas/graph.yaml#/properties/port
description: GMSL Input 1
port@2:
$ref: /schemas/graph.yaml#/properties/port
description: GMSL Input 2
port@3:
$ref: /schemas/graph.yaml#/properties/port
description: GMSL Input 3
port@4:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description: CSI-2 Output
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes: true
bus-type:
enum:
- 1 # MEDIA_BUS_TYPE_CSI2_CPHY
- 4 # MEDIA_BUS_TYPE_CSI2_DPHY
required:
- data-lanes
- bus-type
required:
- port@4
required:
- compatible
- reg
- ports
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/media/video-interfaces.h>
i2c@e6508000 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0 0xe6508000>;
gmsl0: gmsl-deserializer@49 {
compatible = "maxim,max96712";
reg = <0x49>;
enable-gpios = <&pca9654_a 0 GPIO_ACTIVE_HIGH>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@4 {
reg = <4>;
max96712_out0: endpoint {
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
clock-lanes = <0>;
data-lanes = <1 2 3 4>;
remote-endpoint = <&csi40_in>;
};
};
};
};
};
@@ -0,0 +1,174 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2024 Collabora Ltd.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/maxim,max96714.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim MAX96714 GMSL2 to CSI-2 Deserializer
maintainers:
- Julien Massot <julien.massot@collabora.com>
description:
The MAX96714 deserializer converts GMSL2 serial inputs into MIPI
CSI-2 D-PHY formatted output. The device allows the GMSL2 link to
simultaneously transmit bidirectional control-channel data while forward
video transmissions are in progress. The MAX96714 can connect to one
remotely located serializer using industry-standard coax or STP
interconnects. The device cans operate in pixel or tunnel mode. In pixel mode
the MAX96714 can select individual video stream, while the tunnel mode forward all
the MIPI data received by the serializer.
The GMSL2 serial link operates at a fixed rate of 3Gbps or 6Gbps in the
forward direction and 187.5Mbps in the reverse direction.
MAX96714F only supports a fixed rate of 3Gbps in the forward direction.
properties:
compatible:
oneOf:
- const: maxim,max96714f
- items:
- enum:
- maxim,max96714
- const: maxim,max96714f
reg:
maxItems: 1
powerdown-gpios:
maxItems: 1
description:
Specifier for the GPIO connected to the PWDNB pin.
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/properties/port
unevaluatedProperties: false
description: GMSL Input
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
description:
Endpoint for GMSL2-Link port.
port@1:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description: CSI-2 Output port
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
minItems: 1
maxItems: 4
lane-polarities:
minItems: 1
maxItems: 5
link-frequencies:
maxItems: 1
required:
- data-lanes
required:
- port@1
i2c-gate:
$ref: /schemas/i2c/i2c-gate.yaml
unevaluatedProperties: false
description:
The MAX96714 will pass through and forward the I2C requests from the
incoming I2C bus over the GMSL2 link. Therefore it supports an i2c-gate
subnode to configure a serializer.
port0-poc-supply:
description: Regulator providing Power over Coax for the GMSL port
required:
- compatible
- reg
- ports
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/media/video-interfaces.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
deserializer@28 {
compatible = "maxim,max96714f";
reg = <0x28>;
powerdown-gpios = <&main_gpio0 37 GPIO_ACTIVE_LOW>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
max96714_gmsl_in: endpoint {
remote-endpoint = <&max96917f_gmsl_out>;
};
};
port@1 {
reg = <1>;
max96714_csi_out: endpoint {
data-lanes = <1 2 3 4>;
link-frequencies = /bits/ 64 <400000000>;
remote-endpoint = <&csi_in>;
};
};
};
i2c-gate {
#address-cells = <1>;
#size-cells = <0>;
serializer@40 {
compatible = "maxim,max96717f";
reg = <0x40>;
gpio-controller;
#gpio-cells = <2>;
#clock-cells = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
max96717f_csi_in: endpoint {
data-lanes = <1 2>;
lane-polarities = <1 0 1>;
remote-endpoint = <&sensor_out>;
};
};
port@1 {
reg = <1>;
max96917f_gmsl_out: endpoint {
remote-endpoint = <&max96714_gmsl_in>;
};
};
};
};
};
};
};
...
@@ -0,0 +1,157 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2024 Collabora Ltd.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/maxim,max96717.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MAX96717 CSI-2 to GMSL2 Serializer
maintainers:
- Julien Massot <julien.massot@collabora.com>
description:
The MAX96717 serializer converts MIPI CSI-2 D-PHY formatted input
into GMSL2 serial outputs. The device allows the GMSL2 link to
simultaneously transmit bidirectional control-channel data while forward
video transmissions are in progress. The MAX96717 can connect to one
remotely located deserializer using industry-standard coax or STP
interconnects. The device cans operate in pixel or tunnel mode. In pixel mode
the MAX96717 can select the MIPI datatype, while the tunnel mode forward all the MIPI
data received by the serializer.
The MAX96717 supports Reference Over Reverse (channel),
to generate a clock output for the sensor from the GMSL reverse channel.
The GMSL2 serial link operates at a fixed rate of 3Gbps or 6Gbps in the
forward direction and 187.5Mbps in the reverse direction.
MAX96717F only supports a fixed rate of 3Gbps in the forward direction.
properties:
compatible:
oneOf:
- const: maxim,max96717f
- items:
- enum:
- maxim,max96717
- const: maxim,max96717f
'#gpio-cells':
const: 2
description:
First cell is the GPIO pin number, second cell is the flags. The GPIO pin
number must be in range of [0, 10].
gpio-controller: true
'#clock-cells':
const: 0
reg:
maxItems: 1
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port@0:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description: CSI-2 Input port
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
minItems: 1
maxItems: 4
lane-polarities:
minItems: 1
maxItems: 5
required:
- data-lanes
port@1:
$ref: /schemas/graph.yaml#/properties/port
unevaluatedProperties: false
description: GMSL Output port
required:
- port@1
i2c-gate:
$ref: /schemas/i2c/i2c-gate.yaml
unevaluatedProperties: false
description:
The MAX96717 will forward the I2C requests from the
incoming GMSL2 link. Therefore, it supports an i2c-gate
subnode to configure a sensor.
required:
- compatible
- reg
- ports
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/media/video-interfaces.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
serializer: serializer@40 {
compatible = "maxim,max96717f";
reg = <0x40>;
gpio-controller;
#gpio-cells = <2>;
#clock-cells = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
max96717f_csi_in: endpoint {
data-lanes = <1 2 3 4>;
remote-endpoint = <&sensor_out>;
};
};
port@1 {
reg = <1>;
max96917f_gmsl_out: endpoint {
remote-endpoint = <&deser_gmsl_in>;
};
};
};
i2c-gate {
#address-cells = <1>;
#size-cells = <0>;
sensor@10 {
compatible = "st,st-vgxy61";
reg = <0x10>;
reset-gpios = <&serializer 0 GPIO_ACTIVE_LOW>;
clocks = <&serializer>;
VCORE-supply = <&v1v2>;
VDDIO-supply = <&v1v8>;
VANA-supply = <&v2v8>;
port {
sensor_out: endpoint {
data-lanes = <1 2 3 4>;
remote-endpoint = <&max96717f_csi_in>;
};
};
};
};
};
};
...
@@ -0,0 +1,20 @@
* Melexis MLX90640 FIR Sensor
Melexis MLX90640 FIR sensor support which allows recording of thermal data
with 32x24 resolution excluding 2 lines of coefficient data that is used by
userspace to render processed frames.
Required Properties:
- compatible : Must be "melexis,mlx90640"
- reg : i2c address of the device
Example:
i2c0@1c22000 {
...
mlx90640@33 {
compatible = "melexis,mlx90640";
reg = <0x33>;
};
...
};
@@ -0,0 +1,37 @@
Micron 1.3Mp CMOS Digital Image Sensor
The Micron MT9M111 is a CMOS active pixel digital image sensor with an active
array size of 1280H x 1024V. It is programmable through a simple two-wire serial
interface.
Required Properties:
- compatible: value should be "micron,mt9m111"
- clocks: reference to the master clock.
- clock-names: shall be "mclk".
The device node must contain one 'port' child node with one 'endpoint' child
sub-node for its digital output video port, in accordance with the video
interface bindings defined in:
Documentation/devicetree/bindings/media/video-interfaces.txt
Optional endpoint properties:
- pclk-sample: For information see ../video-interfaces.txt. The value is set to
0 if it isn't specified.
Example:
i2c_master {
mt9m111@5d {
compatible = "micron,mt9m111";
reg = <0x5d>;
clocks = <&mclk>;
clock-names = "mclk";
port {
mt9m111_1: endpoint {
remote-endpoint = <&pxa_camera>;
pclk-sample = <1>;
};
};
};
};
@@ -0,0 +1,133 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2014--2020 Intel Corporation
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/mipi-ccs.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MIPI CCS, SMIA++ and SMIA compliant camera sensors
maintainers:
- Sakari Ailus <sakari.ailus@linux.intel.com>
description:
CCS (Camera Command Set) is a raw Bayer camera sensor standard defined by the
MIPI Alliance; see
<URL:https://www.mipi.org/specifications/camera-command-set>.
SMIA (Standard Mobile Imaging Architecture) is an image sensor standard
defined jointly by Nokia and ST. SMIA++, defined by Nokia, is an extension of
that.
More detailed documentation can be found in
Documentation/devicetree/bindings/media/video-interfaces.txt .
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
oneOf:
- items:
- const: mipi-ccs-1.1
- const: mipi-ccs
- items:
- const: mipi-ccs-1.0
- const: mipi-ccs
- const: nokia,smia
reg:
maxItems: 1
vana-supply:
description: Analogue voltage supply (VANA), sensor dependent.
vcore-supply:
description: Core voltage supply (VCore), sensor dependent.
vio-supply:
description: I/O voltage supply (VIO), sensor dependent.
clocks:
description: External clock to the sensor.
maxItems: 1
clock-frequency:
description: Frequency of the external clock to the sensor in Hz.
deprecated: true
reset-gpios:
description: Reset GPIO. Also commonly called XSHUTDOWN in hardware
documentation.
maxItems: 1
flash-leds: true
lens-focus: true
rotation:
enum: [ 0, 180 ]
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
link-frequencies: true
data-lanes: true
bus-type:
enum:
- 1 # CSI-2 C-PHY
- 3 # CCP2
- 4 # CSI-2 D-PHY
required:
- link-frequencies
- data-lanes
- bus-type
required:
- compatible
- reg
- clocks
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/media/video-interfaces.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <400000>;
camera-sensor@10 {
compatible = "mipi-ccs-1.0", "mipi-ccs";
reg = <0x10>;
reset-gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
vana-supply = <&vaux3>;
clocks = <&omap3_isp 0>;
assigned-clocks = <&omap3_isp 0>;
assigned-clock-rates = <9600000>;
port {
ccs_ep: endpoint {
data-lanes = <1 2>;
remote-endpoint = <&csi2a_ep>;
link-frequencies = /bits/ 64 <199200000 210000000
499200000>;
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
};
};
};
};
...
@@ -0,0 +1,162 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/nxp,tda19971.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP TDA1997x HDMI receiver
maintainers:
- Frank Li <Frank.Li@nxp.com>
description: |
The TDA19971/73 are HDMI video receivers.
The TDA19971 Video port output pins can be used as follows:
- RGB 8bit per color (24 bits total): R[11:4] B[11:4] G[11:4]
- YUV444 8bit per color (24 bits total): Y[11:4] Cr[11:4] Cb[11:4]
- YUV422 semi-planar 8bit per component (16 bits total): Y[11:4] CbCr[11:4]
- YUV422 semi-planar 10bit per component (20 bits total): Y[11:2] CbCr[11:2]
- YUV422 semi-planar 12bit per component (24 bits total): - Y[11:0] CbCr[11:0]
- YUV422 BT656 8bit per component (8 bits total): YCbCr[11:4] (2-cycles)
- YUV422 BT656 10bit per component (10 bits total): YCbCr[11:2] (2-cycles)
- YUV422 BT656 12bit per component (12 bits total): YCbCr[11:0] (2-cycles)
The TDA19973 Video port output pins can be used as follows:
- RGB 12bit per color (36 bits total): R[11:0] B[11:0] G[11:0]
- YUV444 12bit per color (36 bits total): Y[11:0] Cb[11:0] Cr[11:0]
- YUV422 semi-planar 12bit per component (24 bits total): Y[11:0] CbCr[11:0]
- YUV422 BT656 12bit per component (12 bits total): YCbCr[11:0] (2-cycles)
The Video port output pins are mapped via 4-bit 'pin groups' allowing
for a variety of connection possibilities including swapping pin order within
pin groups. The video_portcfg device-tree property consists of register mapping
pairs which map a chip-specific VP output register to a 4-bit pin group. If
the pin group needs to be bit-swapped you can use the *_S pin-group defines.
properties:
compatible:
enum:
- nxp,tda19971
- nxp,tda19973
reg:
maxItems: 1
interrupts:
maxItems: 1
DOVDD-supply: true
DVDD-supply: true
AVDD-supply: true
'#sound-dai-cells':
const: 0
port:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
nxp,vidout-portcfg:
$ref: /schemas/types.yaml#/definitions/uint32-matrix
minItems: 1
maxItems: 4
items:
items:
- description: Video Port control registers index.
maximum: 8
minimum: 0
- description: pin(pinswapped) groups
description:
array of pairs mapping VP output pins to pin groups.
nxp,audout-format:
enum:
- i2s
- spdif
nxp,audout-width:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [8, 16, 24, 32]
description:
width of audio output data bus.
nxp,audout-layout:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1]
description:
data layout (0=AP0 used, 1=AP0/AP1/AP2/AP3 used).
nxp,audout-mclk-fs:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Multiplication factor between stream rate and codec mclk.
required:
- compatible
- reg
- interrupts
- DOVDD-supply
- AVDD-supply
- DVDD-supply
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/media/tda1997x.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
hdmi-receiver@48 {
compatible = "nxp,tda19971";
reg = <0x48>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_tda1997x>;
interrupt-parent = <&gpio1>;
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
DOVDD-supply = <&reg_3p3v>;
AVDD-supply = <&reg_1p8v>;
DVDD-supply = <&reg_1p8v>;
/* audio */
#sound-dai-cells = <0>;
nxp,audout-format = "i2s";
nxp,audout-layout = <0>;
nxp,audout-width = <16>;
nxp,audout-mclk-fs = <128>;
/*
* The 8bpp YUV422 semi-planar mode outputs CbCr[11:4]
* and Y[11:4] across 16bits in the same pixclk cycle.
*/
nxp,vidout-portcfg =
/* Y[11:8]<->VP[15:12]<->CSI_DATA[19:16] */
< TDA1997X_VP24_V15_12 TDA1997X_G_Y_11_8 >,
/* Y[7:4]<->VP[11:08]<->CSI_DATA[15:12] */
< TDA1997X_VP24_V11_08 TDA1997X_G_Y_7_4 >,
/* CbCc[11:8]<->VP[07:04]<->CSI_DATA[11:8] */
< TDA1997X_VP24_V07_04 TDA1997X_R_CR_CBCR_11_8 >,
/* CbCr[7:4]<->VP[03:00]<->CSI_DATA[7:4] */
< TDA1997X_VP24_V03_00 TDA1997X_R_CR_CBCR_7_4 >;
port {
endpoint {
remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
bus-width = <16>;
hsync-active = <1>;
vsync-active = <1>;
data-active = <1>;
};
};
};
};
@@ -0,0 +1,112 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/onnn,ar0521.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ON Semiconductor AR0521 MIPI CSI-2 sensor
maintainers:
- Krzysztof Hałasa <khalasa@piap.pl>
description: |-
The AR0521 is a raw CMOS image sensor with MIPI CSI-2 and
I2C-compatible control interface.
properties:
compatible:
const: onnn,ar0521
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
const: extclk
vaa-supply:
description:
Definition of the regulator used as analog (2.7 V) voltage supply.
vdd-supply:
description:
Definition of the regulator used as digital core (1.2 V) voltage supply.
vdd_io-supply:
description:
Definition of the regulator used as digital I/O (1.8 V) voltage supply.
reset-gpios:
description: reset GPIO, usually active low
maxItems: 1
port:
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description: |
Video output port.
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
bus-type:
const: 4
data-lanes:
anyOf:
- items:
- const: 1
- items:
- const: 1
- const: 2
- items:
- const: 1
- const: 2
- const: 3
- const: 4
required:
- compatible
- reg
- clocks
- clock-names
- vaa-supply
- vdd-supply
- vdd_io-supply
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/clock/imx6qdl-clock.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ar0521: camera-sensor@36 {
compatible = "onnn,ar0521";
reg = <0x36>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_mipi_camera>;
clocks = <&clks IMX6QDL_CLK_CKO>;
clock-names = "extclk";
reset-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
vaa-supply = <&reg_2p7v>;
vdd-supply = <&reg_1p2v>;
vdd_io-supply = <&reg_1p8v>;
port {
mipi_camera_to_mipi_csi2: endpoint {
remote-endpoint = <&mipi_csi2_in>;
data-lanes = <1 2 3 4>;
};
};
};
};
@@ -0,0 +1,38 @@
MT9M001: 1/2-Inch Megapixel Digital Image Sensor
The MT9M001 is an SXGA-format with a 1/2-inch CMOS active-pixel digital
image sensor. It is programmable through I2C interface.
Required Properties:
- compatible: shall be "onnn,mt9m001".
- clocks: reference to the master clock into sensor
Optional Properties:
- reset-gpios: GPIO handle which is connected to the reset pin of the chip.
Active low.
- standby-gpios: GPIO handle which is connected to the standby pin of the chip.
Active high.
The device node must contain one 'port' child node with one 'endpoint' child
sub-node for its digital output video port, in accordance with the video
interface bindings defined in:
Documentation/devicetree/bindings/media/video-interfaces.txt
Example:
&i2c1 {
camera-sensor@5d {
compatible = "onnn,mt9m001";
reg = <0x5d>;
reset-gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
standby-gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
clocks = <&camera_clk>;
port {
mt9m001_out: endpoint {
remote-endpoint = <&vcap_in>;
};
};
};
};
@@ -0,0 +1,128 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/onnn,mt9m114.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: onsemi 1/6-inch 720p CMOS Digital Image Sensor
maintainers:
- Laurent Pinchart <laurent.pinchart@ideasonboard.com>
description: |-
The onsemi MT9M114 is a 1/6-inch 720p (1.26 Mp) CMOS digital image sensor
with an active pixel-array size of 1296H x 976V. It is programmable through
an I2C interface and outputs image data over a 8-bit parallel or 1-lane MIPI
CSI-2 connection.
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
enum:
- onnn,mt9m114
- aptina,mi1040
reg:
description: I2C device address
enum:
- 0x48
- 0x5d
clocks:
description: EXTCLK clock signal
maxItems: 1
vdd-supply:
description:
Core digital voltage supply, 1.8V
vddio-supply:
description:
I/O digital voltage supply, 1.8V or 2.8V
vaa-supply:
description:
Analog voltage supply, 2.8V
reset-gpios:
description: |-
Reference to the GPIO connected to the RESET_BAR pin, if any (active
low).
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
additionalProperties: false
properties:
bus-type:
enum: [4, 5, 6]
link-frequencies: true
remote-endpoint: true
# The number and mapping of lanes (for CSI-2), and the bus width and
# signal polarities (for parallel and BT.656) are fixed and must not
# be specified.
required:
- bus-type
- link-frequencies
slew-rate:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Slew rate ot the output pads DOUT[7:0], LINE_VALID, FRAME_VALID and
PIXCLK. Higher values imply steeper voltage-flanks on the pads.
minimum: 0
maximum: 7
default: 7
required:
- compatible
- reg
- clocks
- vdd-supply
- vddio-supply
- vaa-supply
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/media/video-interfaces.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@48 {
compatible = "onnn,mt9m114";
reg = <0x48>;
clocks = <&clk24m 0>;
reset-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>;
vddio-supply = <&reg_cam_1v8>;
vdd-supply = <&reg_cam_1v8>;
vaa-supply = <&reg_2p8v>;
port {
endpoint {
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
link-frequencies = /bits/ 64 <384000000>;
remote-endpoint = <&mipi_csi_in>;
};
};
};
};
...
@@ -0,0 +1,107 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2023-2024 Linaro Ltd.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,og01a1b.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: OmniVision OG01A1B Image Sensor
maintainers:
- Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
description:
The OmniVision OG01A1B is black and white CMOS 1.3 Megapixel (1280x1024)
image sensor controlled over an I2C-compatible SCCB bus.
The sensor transmits images on a MIPI CSI-2 output interface with one or
two data lanes.
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
const: ovti,og01a1b
reg:
maxItems: 1
clocks:
maxItems: 1
reset-gpios:
description: Active low GPIO connected to XSHUTDOWN pad of the sensor.
maxItems: 1
strobe-gpios:
description: Input GPIO connected to strobe pad of the sensor.
maxItems: 1
avdd-supply:
description: Analogue circuit voltage supply.
dovdd-supply:
description: I/O circuit voltage supply.
dvdd-supply:
description: Digital circuit voltage supply.
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
description:
Output port node, single endpoint describing the CSI-2 transmitter.
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
minItems: 1
maxItems: 2
items:
enum: [1, 2]
link-frequencies: true
required:
- data-lanes
- link-frequencies
required:
- compatible
- reg
- clocks
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@60 {
compatible = "ovti,og01a1b";
reg = <0x60>;
clocks = <&clk 0>;
reset-gpios = <&gpio 117 GPIO_ACTIVE_LOW>;
avdd-supply = <&vreg_3v3>;
dovdd-supply = <&vreg_1p8>;
dvdd-supply = <&vreg_1p2>;
port {
og01a1b_ep: endpoint {
remote-endpoint = <&csiphy_ep>;
data-lanes = <1 2>;
link-frequencies = /bits/ 64 <500000000>;
};
};
};
};
...
@@ -0,0 +1,97 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,og0ve1b.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: OmniVision OG0VE1B Image Sensor
description:
OmniVision OG0VE1B image sensor is a low power consuming monochrome
image sensor. The sensor is controlled over a serial camera control
bus protocol (SCCB), the widest supported image size is 640x480 at
120 frames per second rate, data output format is 8/10-bit RAW
transferred over one-lane MIPI D-PHY at up to 800 Mbps.
maintainers:
- Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
const: ovti,og0ve1b
reg:
maxItems: 1
clocks:
description: XVCLK supply clock, 6MHz to 27MHz frequency.
maxItems: 1
reset-gpios:
description: Active low GPIO connected to XSHUTDOWN pad of the sensor.
maxItems: 1
strobe-gpios:
description: Input GPIO connected to strobe pad of the sensor.
maxItems: 1
avdd-supply:
description: Analog voltage supply, 2.6 to 3.0 volts.
dovdd-supply:
description: Digital I/O voltage supply, 1.7 to 3.0 volts.
dvdd-supply:
description: Digital core voltage supply.
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
required:
- link-frequencies
required:
- compatible
- reg
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
camera@3e {
compatible = "ovti,og0ve1b";
reg = <0x3e>;
clocks = <&camera_clk 0>;
assigned-clocks = <&camera_clk 0>;
assigned-clock-rates = <24000000>;
reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
avdd-supply = <&vreg_2p8>;
dovdd-supply = <&vreg_1p8>;
dvdd-supply = <&vreg_1p2>;
port {
endpoint {
link-frequencies = /bits/ 64 <500000000>;
remote-endpoint = <&mipi_csi2_ep>;
};
};
};
};
...
@@ -0,0 +1,103 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,os05b10.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: OmniVision OS05B10 Image Sensor
maintainers:
- Elgin Perumbilly <elgin.perumbilly@siliconsignals.io>
description:
The OmniVision OS05B10 is a 5MP (2592x1944) color CMOS image sensor controlled
through an I2C-compatible SCCB bus. it outputs RAW10/RAW12 format and uses a
1/2.78" optical format.
properties:
compatible:
const: ovti,os05b10
reg:
maxItems: 1
clocks:
items:
- description: XCLK clock
avdd-supply:
description: Analog Domain Power Supply (2.8v)
dovdd-supply:
description: I/O Domain Power Supply (1.8v)
dvdd-supply:
description: Digital Domain Power Supply (1.2v)
reset-gpios:
maxItems: 1
description: Reset Pin GPIO Control (active low)
port:
description: MIPI CSI-2 transmitter port
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
oneOf:
- items:
- const: 1
- const: 2
- const: 3
- const: 4
- items:
- const: 1
- const: 2
required:
- data-lanes
- link-frequencies
required:
- compatible
- reg
- clocks
- avdd-supply
- dovdd-supply
- dvdd-supply
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
camera-sensor@36 {
compatible = "ovti,os05b10";
reg = <0x36>;
clocks = <&os05b10_clk>;
reset-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
avdd-supply = <&os05b10_avdd_2v8>;
dvdd-supply = <&os05b10_dvdd_1v2>;
dovdd-supply = <&os05b10_dovdd_1v8>;
port {
cam_out: endpoint {
remote-endpoint = <&mipi_in_cam>;
data-lanes = <1 2 3 4>;
link-frequencies = /bits/ 64 <600000000>;
};
};
};
};
@@ -0,0 +1,147 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (c) 2020 MediaTek Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov02a10.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Omnivision OV02A10 CMOS Sensor
maintainers:
- Dongchun Zhu <dongchun.zhu@mediatek.com>
description: |-
The Omnivision OV02A10 is a low-cost, high performance, 1/5-inch, 2 megapixel
image sensor, which is the latest production derived from Omnivision's CMOS
image sensor technology. Ihis chip supports high frame rate speeds up to 30fps
@ 1600x1200 (UXGA) resolution transferred over a 1-lane MIPI interface. The
sensor output is available via CSI-2 serial data output.
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
const: ovti,ov02a10
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
description:
External clock for the sensor.
items:
- const: eclk
clock-frequency:
description:
Frequency of the eclk clock in Hz.
deprecated: true
dovdd-supply:
description:
Definition of the regulator used as Digital I/O voltage supply.
avdd-supply:
description:
Definition of the regulator used as Analog voltage supply.
dvdd-supply:
description:
Definition of the regulator used as Digital core voltage supply.
powerdown-gpios:
description:
Must be the device tree identifier of the GPIO connected to the
PD_PAD pin. This pin is used to place the OV02A10 into standby mode
or shutdown mode. As the line needs to be high for the powerdown mode
to be active, it should be marked GPIO_ACTIVE_HIGH.
maxItems: 1
reset-gpios:
description:
Must be the device tree identifier of the GPIO connected to the
RST_PD pin. If specified, it will be asserted during driver probe.
As the line needs to be low for the reset to be active, it should be
marked GPIO_ACTIVE_LOW.
maxItems: 1
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
description:
Output port node, single endpoint describing the CSI-2 transmitter.
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
link-frequencies: true
ovti,mipi-clock-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Definition of MIPI clock voltage unit. This entry corresponds to
the link speed defined by the 'link-frequencies' property.
If present, the value shall be in the range of 0-4.
default: 4
required:
- link-frequencies
required:
- endpoint
required:
- compatible
- reg
- clocks
- clock-names
- dovdd-supply
- avdd-supply
- dvdd-supply
- powerdown-gpios
- reset-gpios
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ov02a10: camera-sensor@3d {
compatible = "ovti,ov02a10";
reg = <0x3d>;
powerdown-gpios = <&pio 107 GPIO_ACTIVE_HIGH>;
reset-gpios = <&pio 109 GPIO_ACTIVE_LOW>;
clocks = <&ov02a10_clk>;
clock-names = "eclk";
rotation = <180>;
dovdd-supply = <&ov02a10_dovdd>;
avdd-supply = <&ov02a10_avdd>;
dvdd-supply = <&ov02a10_dvdd>;
port {
wcam_out: endpoint {
link-frequencies = /bits/ 64 <390000000>;
ovti,mipi-clock-voltage = <3>;
remote-endpoint = <&mipi_in_wcam>;
};
};
};
};
...
@@ -0,0 +1,152 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (c) 2025 Linaro Ltd.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov02e10.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Omnivision OV02E10 CMOS Sensor
maintainers:
- Bryan O'Donoghue <bryan.odonoghue@linaro.org>
description: |
The Omnivision OV02E10 and OV02C10 sensors are 2 megapixel, CMOS image sensors which support:
- Automatic black level calibration (ABLC)
- Programmable controls for frame rate, mirror and flip, binning, cropping
and windowing
- OVO2C10
- 10 bit RAW Bayer 1920x1080 60 fps 2-lane @ 800 Mbps/lane
- 10 bit RAW Bayer 1920x1080 60 fps 1-lane @ 1500 Mbps/lane
- 10 bit RAW Bayer 1280x720 60 fps cropped 1-lane @ 960 Mbps/lane
- 10 bit RGB/BW 640x480 60 fps bin2 or skip2 1-lane @ 800 Mbps/lane
- 10 bit RGB/BW 480x270 60 fps bin4 or skip4 1-lane @ 800 Mbps/lane
- OV02E10
- 10 bit RAW Bayer 1920x1088 60 fps 2-lane @ 720 Mbps/lane
- 10 bit RAW Bayer 1280x1080 60 fps 2-lane @ 720 Mbps/lane
- 10 bit Quad Bayer 960x540 60 fps 2-lane 360 Mbps/lane
- 8 bit Quad Bayer 480x270 1/3/5/10 fps sub2 288 Mbps/lane
- 8 bit Quad Bayer 232x132 1/3/5/10 fps sub4 144 Mbps/lane
- Dynamic defect pixel cancellation
- Standard SCCB command interface
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
enum:
- ovti,ov02c10
- ovti,ov02e10
reg:
maxItems: 1
clocks:
maxItems: 1
avdd-supply:
description: Analogue circuit voltage supply.
dovdd-supply:
description: I/O circuit voltage supply.
dvdd-supply:
description: Digital circuit voltage supply.
reset-gpios:
description: Active low GPIO connected to XSHUTDOWN pad of the sensor.
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
additionalProperties: false
properties:
data-lanes:
items:
- const: 1
- const: 2
link-frequencies: true
remote-endpoint: true
required:
- data-lanes
- link-frequencies
- remote-endpoint
required:
- compatible
- reg
- clocks
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ov02e10: camera@10 {
compatible = "ovti,ov02e10";
reg = <0x10>;
reset-gpios = <&tlmm 237 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&cam_rgb_defaultt>;
clocks = <&ov02e10_clk>;
assigned-clocks = <&ov02e10_clk>;
assigned-clock-parents = <&ov02e10_clk_parent>;
assigned-clock-rates = <19200000>;
avdd-supply = <&vreg_l7b_2p8>;
dvdd-supply = <&vreg_l7b_1p8>;
dovdd-supply = <&vreg_l3m_1p8>;
port {
ov02e10_ep: endpoint {
remote-endpoint = <&csiphy4_ep>;
data-lanes = <1 2>;
link-frequencies = /bits/ 64 <400000000>;
};
};
};
ov02c10: camera@36 {
compatible = "ovti,ov02c10";
reg = <0x36>;
reset-gpios = <&tlmm 237 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&cam_rgb_defaultt>;
clocks = <&ov02c10_clk>;
assigned-clocks = <&ov02c10_clk>;
assigned-clock-parents = <&ov02c10_clk_parent>;
assigned-clock-rates = <19200000>;
avdd-supply = <&vreg_l7b_2p8>;
dvdd-supply = <&vreg_l7b_1p8>;
dovdd-supply = <&vreg_l3m_1p8>;
port {
ov02c10_ep: endpoint {
remote-endpoint = <&csiphy4_ep>;
data-lanes = <1 2>;
link-frequencies = /bits/ 64 <400000000>;
};
};
};
};
...
@@ -0,0 +1,101 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov08d10.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Omnivision OV08D10 1/4-Inch 8MP CMOS color image sensor
maintainers:
- Matthias Fend <matthias.fend@emfend.at>
description:
The Omnivision OV08D10 is a 1/4-Inch 8MP CMOS color image sensor with an
active array size of 3280 x 2464. It is programmable through I2C
interface. Image data is transmitted via MIPI CSI-2 using 2 lanes.
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
const: ovti,ov08d10
reg:
maxItems: 1
clocks:
description: MCLK input clock (6 - 27 MHz)
maxItems: 1
reset-gpios:
description: Active low XSHUTDN pin
maxItems: 1
dovdd-supply:
description: IO power supply (1.8V)
avdd-supply:
description: Analog power supply (2.8V)
dvdd-supply:
description: Core power supply (1.2V)
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
required:
- data-lanes
- link-frequencies
required:
- endpoint
required:
- compatible
- reg
- clocks
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/media/video-interfaces.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
sensor@36 {
compatible = "ovti,ov08d10";
reg = <0x36>;
clocks = <&ov08d10_clk>;
dovdd-supply = <&ov08d10_vdddo_1v8>;
avdd-supply = <&ov08d10_vdda_2v8>;
dvdd-supply = <&ov08d10_vddd_1v2>;
orientation = <2>;
rotation = <0>;
reset-gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
port {
ov08d10_output: endpoint {
data-lanes = <1 2>;
link-frequencies = /bits/ 64 <360000000 720000000>;
remote-endpoint = <&csi_input>;
};
};
};
};
...
@@ -0,0 +1,120 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (c) 2024 Linaro Ltd.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov08x40.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Omnivision OV08X40 CMOS Sensor
maintainers:
- Bryan O'Donoghue <bryan.odonoghue@linaro.org>
description: |
The Omnivision OV08X40 is a 9.2 megapixel, CMOS image sensor which supports:
- Automatic black level calibration (ABLC)
- Programmable controls for frame rate, mirror and flip, binning, cropping
and windowing
- Output formats 10-bit 4C RGB RAW, 10-bit Bayer RAW
- 4-lane MIPI D-PHY TX @ 1 Gbps per lane
- 2-lane MPIP D-PHY TX @ 2 Gbps per lane
- Dynamic defect pixel cancellation
- Standard SCCB command interface
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
const: ovti,ov08x40
reg:
maxItems: 1
clocks:
maxItems: 1
avdd-supply:
description: Analogue circuit voltage supply.
dovdd-supply:
description: I/O circuit voltage supply.
dvdd-supply:
description: Digital circuit voltage supply.
reset-gpios:
description: Active low GPIO connected to XSHUTDOWN pad of the sensor.
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
additionalProperties: false
properties:
data-lanes:
oneOf:
- items:
- const: 1
- const: 2
- items:
- const: 1
- const: 2
- const: 3
- const: 4
link-frequencies: true
remote-endpoint: true
required:
- data-lanes
- link-frequencies
- remote-endpoint
required:
- compatible
- reg
- clocks
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ov08x40: camera@36 {
compatible = "ovti,ov08x40";
reg = <0x36>;
reset-gpios = <&tlmm 111 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&cam_rgb_defaultt>;
clocks = <&ov08x40_clk>;
assigned-clocks = <&ov08x40_clk>;
assigned-clock-parents = <&ov08x40_clk_parent>;
assigned-clock-rates = <19200000>;
avdd-supply = <&vreg_l7b_2p8>;
dvdd-supply = <&vreg_l7b_1p8>;
dovdd-supply = <&vreg_l3m_1p8>;
port {
ov08x40_ep: endpoint {
remote-endpoint = <&csiphy4_ep>;
data-lanes = <1 2 3 4>;
link-frequencies = /bits/ 64 <400000000>;
};
};
};
};
...
@@ -0,0 +1,41 @@
* Omnivision OV2640 CMOS sensor
The Omnivision OV2640 sensor supports multiple resolutions output, such as
CIF, SVGA, UXGA. It also can support the YUV422/420, RGB565/555 or raw RGB
output formats.
Required Properties:
- compatible: should be "ovti,ov2640"
- clocks: reference to the xvclk input clock.
- clock-names: should be "xvclk".
Optional Properties:
- resetb-gpios: reference to the GPIO connected to the resetb pin, if any.
- pwdn-gpios: reference to the GPIO connected to the pwdn pin, if any.
The device node must contain one 'port' child node for its digital output
video port, in accordance with the video interface bindings defined in
Documentation/devicetree/bindings/media/video-interfaces.txt.
Example:
i2c1: i2c@f0018000 {
ov2640: camera@30 {
compatible = "ovti,ov2640";
reg = <0x30>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
resetb-gpios = <&pioE 11 GPIO_ACTIVE_LOW>;
pwdn-gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
clocks = <&pck0>;
clock-names = "xvclk";
assigned-clocks = <&pck0>;
assigned-clock-rates = <25000000>;
port {
ov2640_0: endpoint {
remote-endpoint = <&isi_0>;
};
};
};
};
@@ -0,0 +1,47 @@
* OV2659 1/5-Inch 2Mp SOC Camera
The Omnivision OV2659 is a 1/5-inch SOC camera, with an active array size of
1632H x 1212V. It is programmable through a SCCB. The OV2659 sensor supports
multiple resolutions output, such as UXGA, SVGA, 720p. It also can support
YUV422, RGB565/555 or raw RGB output formats.
Required Properties:
- compatible: Must be "ovti,ov2659"
- reg: I2C slave address
- clocks: reference to the xvclk input clock.
- clock-names: should be "xvclk".
- link-frequencies: target pixel clock frequency.
Optional Properties:
- powerdown-gpios: reference to the GPIO connected to the pwdn pin, if any.
Active high with internal pull down resistor.
- reset-gpios: reference to the GPIO connected to the resetb pin, if any.
Active low with internal pull up resistor.
For further reading on port node refer to
Documentation/devicetree/bindings/media/video-interfaces.txt.
Example:
i2c0@1c22000 {
...
...
ov2659@30 {
compatible = "ovti,ov2659";
reg = <0x30>;
clocks = <&clk_ov2659 0>;
clock-names = "xvclk";
powerdown-gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
port {
ov2659_0: endpoint {
remote-endpoint = <&vpfe_ep>;
link-frequencies = /bits/ 64 <70000000>;
};
};
};
...
};
@@ -0,0 +1,112 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov2680.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Omnivision OV2680 CMOS Sensor
maintainers:
- Rui Miguel Silva <rmfrfs@gmail.com>
description: |-
The OV2680 color sensor is a low voltage, high performance 1/5 inch UXGA (2
megapixel) CMOS image sensor that provides a single-chip UXGA (1600 x 1200)
camera. It provides full-frame, sub-sampled, or windowed 10-bit images in
various formats via the control of the Serial Camera Control Bus (SCCB)
interface. The OV2680 has an image array capable of operating at up to 30
frames per second (fps) in UXGA resolution.
properties:
compatible:
const: ovti,ov2680
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
const: xvclk
reset-gpios:
description:
The phandle and specifier for the GPIO that controls sensor reset.
This corresponds to the hardware pin XSHUTDOWN which is physically
active low.
maxItems: 1
DOVDD-supply:
description:
Definition of the regulator used as interface power supply.
AVDD-supply:
description:
Definition of the regulator used as analog power supply.
DVDD-supply:
description:
Definition of the regulator used as digital power supply.
port:
description:
A node containing an output port node.
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
additionalProperties: false
properties:
link-frequencies: true
remote-endpoint: true
required:
- link-frequencies
required:
- compatible
- reg
- clocks
- clock-names
- DOVDD-supply
- AVDD-supply
- DVDD-supply
- reset-gpios
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ov2680: camera-sensor@36 {
compatible = "ovti,ov2680";
reg = <0x36>;
clocks = <&osc>;
clock-names = "xvclk";
reset-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
DOVDD-supply = <&sw2_reg>;
DVDD-supply = <&sw2_reg>;
AVDD-supply = <&reg_peri_3p15v>;
port {
ov2680_to_mipi: endpoint {
remote-endpoint = <&mipi_from_sensor>;
link-frequencies = /bits/ 64 <330000000>;
};
};
};
};
...
@@ -0,0 +1,102 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov2685.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: OmniVision OV2685 Image Sensor
maintainers:
- Shunqian Zheng <zhengsq@rock-chips.com>
properties:
compatible:
const: ovti,ov2685
reg:
maxItems: 1
clocks:
items:
- description: XVCLK clock
clock-names:
items:
- const: xvclk
dvdd-supply:
description: Digital Domain Power Supply
avdd-supply:
description: Analog Domain Power Supply
dovdd-supply:
description: I/O Domain Power Supply
reset-gpios:
maxItems: 1
description: Reset Pin GPIO Control (active low)
port:
description: MIPI CSI-2 transmitter port
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
minItems: 1
maxItems: 2
required:
- data-lanes
required:
- compatible
- reg
- clocks
- clock-names
- dvdd-supply
- avdd-supply
- dovdd-supply
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/rk3399-cru.h>
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ov2685: camera-sensor@3c {
compatible = "ovti,ov2685";
reg = <0x3c>;
pinctrl-names = "default";
pinctrl-0 = <&clk_24m_cam>;
clocks = <&cru SCLK_TESTCLKOUT1>;
clock-names = "xvclk";
avdd-supply = <&pp2800_cam>;
dovdd-supply = <&pp1800>;
dvdd-supply = <&pp1800>;
reset-gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
port {
ucam_out: endpoint {
remote-endpoint = <&mipi_in_ucam>;
data-lanes = <1>;
};
};
};
};
...
@@ -0,0 +1,103 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov2732.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: OmniVision OV2732 Image Sensor
maintainers:
- Walter Werner Schneider <contact@schnwalter.eu>
description:
The OmniVision OV2732 is a 2MP (1920x1080) color CMOS image sensor controlled
through an I2C-compatible SCCB bus.
properties:
compatible:
const: ovti,ov2732
reg:
maxItems: 1
clocks:
items:
- description: XVCLK clock
avdd-supply:
description: Analog Domain Power Supply
dovdd-supply:
description: I/O Domain Power Supply
dvdd-supply:
description: Digital Domain Power Supply
powerdown-gpios:
maxItems: 1
description: Reference to the GPIO connected to the pwdn pin. Active low.
reset-gpios:
maxItems: 1
description: Reference to the GPIO connected to the reset pin. Active low.
port:
description: MIPI CSI-2 transmitter port
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
items:
- const: 1
- const: 2
required:
- data-lanes
- link-frequencies
required:
- compatible
- reg
- clocks
- avdd-supply
- dovdd-supply
- dvdd-supply
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ov2732: camera@36 {
compatible = "ovti,ov2732";
reg = <0x36>;
clocks = <&ov2732_clk>;
avdd-supply = <&ov2732_avdd>;
dovdd-supply = <&ov2732_dovdd>;
dvdd-supply = <&ov2732_dvdd>;
powerdown-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
port {
camera_out: endpoint {
data-lanes = <1 2>;
link-frequencies = /bits/ 64 <360000000>;
remote-endpoint = <&mipi_in_camera>;
};
};
};
};
@@ -0,0 +1,108 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov2735.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: OmniVision OV2735 Image Sensor
maintainers:
- Himanshu Bhavani <himanshu.bhavani@siliconsignals.io>
description:
The OmniVision OV2735 is a 2MP (1920x1080) color CMOS image sensor controlled
through an I2C-compatible SCCB bus. it outputs RAW10 format and uses a 1/2.7"
optical format.
properties:
compatible:
const: ovti,ov2735
reg:
maxItems: 1
clocks:
items:
- description: XVCLK clock
avdd-supply:
description: Analog Domain Power Supply
dovdd-supply:
description: I/O Domain Power Supply
dvdd-supply:
description: Digital Domain Power Supply
reset-gpios:
maxItems: 1
description: Reset Pin GPIO Control (active low)
enable-gpios:
maxItems: 1
description:
Active-low enable pin. Labeled as 'PWDN' in the datasheet, but acts as
an enable signal. During power rail ramp-up, the device remains powered
down. Once power rails are stable, pulling this pin low powers on the
device.
port:
description: MIPI CSI-2 transmitter port
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
items:
- const: 1
- const: 2
required:
- data-lanes
- link-frequencies
required:
- compatible
- reg
- clocks
- avdd-supply
- dovdd-supply
- dvdd-supply
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
camera-sensor@3c {
compatible = "ovti,ov2735";
reg = <0x3c>;
clocks = <&ov2735_clk>;
avdd-supply = <&ov2735_avdd>;
dovdd-supply = <&ov2735_dovdd>;
dvdd-supply = <&ov2735_dvdd>;
reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
enable-gpios = <&gpio2 11 GPIO_ACTIVE_LOW>;
port {
cam_out: endpoint {
remote-endpoint = <&mipi_in_cam>;
data-lanes = <1 2>;
link-frequencies = /bits/ 64 <420000000>;
};
};
};
};
@@ -0,0 +1,130 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov4689.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Omnivision OV4689 CMOS
maintainers:
- Mikhail Rudenko <mike.rudenko@gmail.com>
description: |
The Omnivision OV4689 is a high performance, 1/3-inch, 4 megapixel
image sensor. Ihis chip supports high frame rate speeds up to 90 fps
at 2688x1520 resolution. It is programmable through an I2C
interface, and sensor output is sent via 1/2/4 lane MIPI CSI-2
connection.
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
const: ovti,ov4689
reg:
maxItems: 1
clocks:
description:
External clock (XVCLK) for the sensor, 6-64 MHz
maxItems: 1
dovdd-supply:
description:
Digital I/O voltage supply, 1.7-3.0 V
avdd-supply:
description:
Analog voltage supply, 2.6-3.0 V
dvdd-supply:
description:
Digital core voltage supply, 1.1-1.3 V
powerdown-gpios:
description:
GPIO connected to the powerdown pin (active low)
reset-gpios:
maxItems: 1
description:
GPIO connected to the reset pin (active low)
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
description:
Output port node, single endpoint describing the CSI-2 transmitter
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
oneOf:
- items:
- const: 1
- const: 2
- const: 3
- const: 4
- items:
- const: 1
- const: 2
- items:
- const: 1
link-frequencies: true
required:
- data-lanes
- link-frequencies
required:
- compatible
- reg
- clocks
- dovdd-supply
- avdd-supply
- dvdd-supply
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ov4689: camera@36 {
compatible = "ovti,ov4689";
reg = <0x36>;
clocks = <&ov4689_clk>;
avdd-supply = <&ov4689_avdd>;
dovdd-supply = <&ov4689_dovdd>;
dvdd-supply = <&ov4689_dvdd>;
powerdown-gpios = <&pio 107 GPIO_ACTIVE_LOW>;
reset-gpios = <&pio 109 GPIO_ACTIVE_LOW>;
orientation = <2>;
rotation = <0>;
port {
wcam_out: endpoint {
remote-endpoint = <&mipi_in_wcam>;
data-lanes = <1 2 3 4>;
link-frequencies = /bits/ 64 <504000000>;
};
};
};
};
...
@@ -0,0 +1,149 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5640.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: OmniVision OV5640 Image Sensor
maintainers:
- Steve Longerbeam <slongerbeam@gmail.com>
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
const: ovti,ov5640
reg:
maxItems: 1
clocks:
description: XCLK Input Clock
clock-names:
const: xclk
AVDD-supply:
description: Analog voltage supply, 2.8 volts
DVDD-supply:
description: Digital core voltage supply, 1.5 volts
DOVDD-supply:
description: Digital I/O voltage supply, 1.8 volts
powerdown-gpios:
maxItems: 1
description: >
Reference to the GPIO connected to the powerdown pin, if any.
reset-gpios:
maxItems: 1
description: >
Reference to the GPIO connected to the reset pin, if any.
port:
description: Digital Output Port
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
clock-lanes:
const: 0
data-lanes:
minItems: 1
maxItems: 2
items:
enum: [1, 2]
bus-width:
enum: [8, 10]
data-shift:
enum: [0, 2]
required:
- compatible
- reg
- clocks
- clock-names
- AVDD-supply
- DVDD-supply
- DOVDD-supply
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/imx6qdl-clock.h>
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
camera@3c {
compatible = "ovti,ov5640";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ov5640>;
reg = <0x3c>;
clocks = <&clks IMX6QDL_CLK_CKO>;
clock-names = "xclk";
DOVDD-supply = <&vgen4_reg>; /* 1.8v */
AVDD-supply = <&vgen3_reg>; /* 2.8v */
DVDD-supply = <&vgen2_reg>; /* 1.5v */
powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
rotation = <180>;
port {
/* MIPI CSI-2 bus endpoint */
ov5640_to_mipi_csi2: endpoint {
remote-endpoint = <&mipi_csi2_from_ov5640>;
clock-lanes = <0>;
data-lanes = <1 2>;
};
};
};
};
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
camera@3c {
compatible = "ovti,ov5640";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ov5640>;
reg = <0x3c>;
clocks = <&clk_ext_camera>;
clock-names = "xclk";
DOVDD-supply = <&vgen4_reg>; /* 1.8v */
AVDD-supply = <&vgen3_reg>; /* 2.8v */
DVDD-supply = <&vgen2_reg>; /* 1.5v */
port {
/* Parallel bus endpoint */
ov5640_to_parallel: endpoint {
remote-endpoint = <&parallel_from_ov5640>;
bus-width = <8>;
data-shift = <2>; /* lines 9:2 are used */
hsync-active = <0>;
vsync-active = <0>;
pclk-sample = <1>;
};
};
};
};
...
@@ -0,0 +1,141 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5642.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: OmniVision OV5642 Image Sensor
maintainers:
- Fabio Estevam <festevam@gmail.com>
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
const: ovti,ov5642
reg:
maxItems: 1
clocks:
description: XCLK Input Clock
AVDD-supply:
description: Analog voltage supply, 2.8V.
DVDD-supply:
description: Digital core voltage supply, 1.5V.
DOVDD-supply:
description: Digital I/O voltage supply, 1.8V.
powerdown-gpios:
maxItems: 1
description: Reference to the GPIO connected to the powerdown pin, if any.
reset-gpios:
maxItems: 1
description: Reference to the GPIO connected to the reset pin, if any.
port:
$ref: /schemas/graph.yaml#/$defs/port-base
description: |
Video output port.
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
bus-type:
enum: [5, 6]
bus-width:
enum: [8, 10]
default: 10
data-shift:
enum: [0, 2]
default: 0
hsync-active:
enum: [0, 1]
default: 1
vsync-active:
enum: [0, 1]
default: 1
pclk-sample:
enum: [0, 1]
default: 1
allOf:
- if:
properties:
bus-type:
const: 6
then:
properties:
hsync-active: false
vsync-active: false
- if:
properties:
bus-width:
const: 10
then:
properties:
data-shift:
const: 0
required:
- bus-type
additionalProperties: false
required:
- compatible
- reg
- clocks
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/media/video-interfaces.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
camera@3c {
compatible = "ovti,ov5642";
reg = <0x3c>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ov5642>;
clocks = <&clk_ext_camera>;
DOVDD-supply = <&vgen4_reg>;
AVDD-supply = <&vgen3_reg>;
DVDD-supply = <&vgen2_reg>;
powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
port {
ov5642_to_parallel: endpoint {
bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
remote-endpoint = <&parallel_from_ov5642>;
bus-width = <8>;
data-shift = <2>; /* lines 9:2 are used */
hsync-active = <0>;
vsync-active = <0>;
pclk-sample = <1>;
};
};
};
};
@@ -0,0 +1,108 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5645.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: OmniVision OV5645 Image Sensor
maintainers:
- Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
properties:
compatible:
const: ovti,ov5645
reg:
maxItems: 1
clocks:
description: XCLK Input Clock
clock-frequency:
description: Frequency of the xclk clock in Hz.
deprecated: true
vdda-supply:
description: Analog voltage supply, 2.8 volts
vddd-supply:
description: Digital core voltage supply, 1.5 volts
vdddo-supply:
description: Digital I/O voltage supply, 1.8 volts
enable-gpios:
maxItems: 1
description:
Reference to the GPIO connected to the PWDNB pin, if any.
reset-gpios:
maxItems: 1
description:
Reference to the GPIO connected to the RESETB pin, if any.
port:
description: Digital Output Port
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
minItems: 1
maxItems: 2
items:
enum: [1, 2]
required:
- data-lanes
required:
- compatible
- reg
- clocks
- vdddo-supply
- vdda-supply
- vddd-supply
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
camera@3c {
compatible = "ovti,ov5645";
reg = <0x3c>;
clocks = <&clks 1>;
assigned-clocks = <&clks 1>;
assigned-clock-rates = <24000000>;
vdddo-supply = <&ov5645_vdddo_1v8>;
vdda-supply = <&ov5645_vdda_2v8>;
vddd-supply = <&ov5645_vddd_1v5>;
enable-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ov5645>;
port {
ov5645_ep: endpoint {
remote-endpoint = <&csi0_ep>;
data-lanes = <1 2>;
};
};
};
};
...
@@ -0,0 +1,87 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5647.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Omnivision OV5647 raw image sensor
maintainers:
- Dave Stevenson <dave.stevenson@raspberrypi.com>
- Jacopo Mondi <jacopo@jmondi.org>
description: |-
The OV5647 is a raw image sensor with MIPI CSI-2 and CCP2 image data
interfaces and CCI (I2C compatible) control bus.
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
properties:
compatible:
const: ovti,ov5647
reg:
description: I2C device address.
maxItems: 1
clocks:
description: Reference to the xclk clock.
maxItems: 1
pwdn-gpios:
description: Reference to the GPIO connected to the pwdn pin. Active high.
maxItems: 1
avdd-supply:
description: Analog voltage supply, 2.8 volts
dvdd-supply:
description: Digital core voltage supply, 1.5 volts
dovdd-supply:
description: Digital I/O voltage supply, 1.7 - 3.0 volts
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
clock-noncontinuous: true
required:
- compatible
- reg
- clocks
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ov5647: camera@36 {
compatible = "ovti,ov5647";
reg = <0x36>;
clocks = <&camera_clk>;
pwdn-gpios = <&pioE 29 GPIO_ACTIVE_HIGH>;
port {
camera_out: endpoint {
remote-endpoint = <&csi1_ep1>;
};
};
};
};
...
@@ -0,0 +1,98 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5648.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: OmniVision OV5648 Image Sensor
maintainers:
- Paul Kocialkowski <paul.kocialkowski@bootlin.com>
properties:
compatible:
const: ovti,ov5648
reg:
maxItems: 1
clocks:
items:
- description: XVCLK Clock
dvdd-supply:
description: Digital Domain Power Supply
avdd-supply:
description: Analog Domain Power Supply (internal AVDD is used if missing)
dovdd-supply:
description: I/O Domain Power Supply
powerdown-gpios:
maxItems: 1
description: Power Down Pin GPIO Control (active low)
reset-gpios:
maxItems: 1
description: Reset Pin GPIO Control (active low)
port:
description: MIPI CSI-2 transmitter port
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
link-frequencies: true
data-lanes:
minItems: 1
maxItems: 2
required:
- data-lanes
- link-frequencies
required:
- compatible
- reg
- clocks
- dvdd-supply
- dovdd-supply
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/sun8i-v3s-ccu.h>
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ov5648: camera@36 {
compatible = "ovti,ov5648";
reg = <0x36>;
dvdd-supply = <&ov5648_dvdd>;
avdd-supply = <&ov5648_avdd>;
dovdd-supply = <&ov5648_dovdd>;
clocks = <&ov5648_xvclk 0>;
ov5648_out: port {
ov5648_out_mipi_csi2: endpoint {
data-lanes = <1 2>;
link-frequencies = /bits/ 64 <210000000 168000000>;
remote-endpoint = <&mipi_csi2_in_ov5648>;
};
};
};
};
@@ -0,0 +1,93 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5670.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Omnivision OV5670 5 Megapixels raw image sensor
maintainers:
- Jacopo Mondi <jacopo.mondi@ideasonboard.com>
description: |-
The OV5670 is a 5 Megapixels raw image sensor which provides images in 10-bits
RAW BGGR Bayer format on a 2 data lanes MIPI CSI-2 serial interface and is
controlled through an I2C compatible control bus.
properties:
compatible:
const: ovti,ov5670
reg:
maxItems: 1
clocks:
description: System clock. From 6 to 27 MHz.
maxItems: 1
powerdown-gpios:
description: Reference to the GPIO connected to the PWDNB pin. Active low.
reset-gpios:
description: Reference to the GPIO connected to the XSHUTDOWN pin. Active low.
maxItems: 1
avdd-supply:
description: Analog circuit power. Typically 2.8V.
dvdd-supply:
description: Digital circuit power. Typically 1.2V.
dovdd-supply:
description: Digital I/O circuit power. Typically 2.8V or 1.8V.
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
additionalProperties: false
properties:
data-lanes:
minItems: 1
maxItems: 2
items:
enum: [1, 2]
clock-noncontinuous: true
remote-endpoint: true
required:
- compatible
- reg
- clocks
- port
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
ov5670: sensor@36 {
compatible = "ovti,ov5670";
reg = <0x36>;
clocks = <&sensor_xclk>;
port {
ov5670_ep: endpoint {
remote-endpoint = <&csi_ep>;
data-lanes = <1 2>;
clock-noncontinuous;
};
};
};
};
...
@@ -0,0 +1,122 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2022 Theobroma Systems Design und Consulting GmbH
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5675.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Omnivision OV5675 CMOS Sensor
maintainers:
- Quentin Schulz <quentin.schulz@theobroma-systems.com>
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
description: |
The Omnivision OV5675 is a high performance, 1/5-inch, 5 megapixel, CMOS
image sensor that delivers 2592x1944 at 30fps. It provides full-frame,
sub-sampled, and windowed 10-bit MIPI images in various formats via the
Serial Camera Control Bus (SCCB) interface.
This chip is programmable through I2C and two-wire SCCB. The sensor output
is available via CSI-2 serial data output (up to 2-lane).
properties:
compatible:
const: ovti,ov5675
reg:
maxItems: 1
clocks:
description:
System input clock (aka XVCLK). From 6 to 27 MHz.
maxItems: 1
dovdd-supply:
description:
Digital I/O voltage supply, 1.8 volts.
avdd-supply:
description:
Analog voltage supply, 2.8 volts.
dvdd-supply:
description:
Digital core voltage supply, 1.2 volts.
reset-gpios:
description:
The phandle and specifier for the GPIO that controls sensor reset.
This corresponds to the hardware pin XSHUTDN which is physically
active low.
maxItems: 1
port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
minItems: 1
maxItems: 2
# Supports max data transfer of 900 Mbps per lane
link-frequencies: true
required:
- compatible
- reg
- clocks
- dovdd-supply
- avdd-supply
- dvdd-supply
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/px30-cru.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/rockchip.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ov5675: camera@36 {
compatible = "ovti,ov5675";
reg = <0x36>;
reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&cif_clkout_m0>;
clocks = <&cru SCLK_CIF_OUT>;
assigned-clocks = <&cru SCLK_CIF_OUT>;
assigned-clock-rates = <19200000>;
avdd-supply = <&vcc_1v8>;
dvdd-supply = <&vcc_1v2>;
dovdd-supply = <&vcc_2v8>;
rotation = <90>;
orientation = <0>;
port {
ucam_out: endpoint {
remote-endpoint = <&mipi_in_ucam>;
data-lanes = <1 2>;
link-frequencies = /bits/ 64 <450000000>;
};
};
};
};
...
@@ -0,0 +1,141 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2022 Amarulasolutions
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5693.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Omnivision OV5693/OV5695 CMOS Sensors
maintainers:
- Tommaso Merciai <tomm.merciai@gmail.com>
description: |
The Omnivision OV5693/OV5695 are high performance, 1/4-inch, 5 megapixel, CMOS
image sensors that deliver 2592x1944 at 30fps. It provides full-frame,
sub-sampled, and windowed 10-bit MIPI images in various formats via the
Serial Camera Control Bus (SCCB) interface.
OV5693/OV5695 are controlled via I2C and two-wire Serial Camera Control Bus
(SCCB). The sensor output is available via CSI-2 serial data output (up to
2-lane).
allOf:
- $ref: /schemas/media/video-interface-devices.yaml#
- if:
properties:
compatible:
contains:
const: ovti,ov5693
then:
properties:
port:
properties:
endpoint:
required:
- link-frequencies
properties:
compatible:
enum:
- ovti,ov5693
- ovti,ov5695
reg:
maxItems: 1
clocks:
description:
System input clock (aka XVCLK). From 6 to 27 MHz.
maxItems: 1
clock-names:
const: xvclk
dovdd-supply:
description:
Digital I/O voltage supply, 1.8V.
avdd-supply:
description:
Analog voltage supply, 2.8V.
dvdd-supply:
description:
Digital core voltage supply, 1.2V.
reset-gpios:
description:
The phandle and specifier for the GPIO that controls sensor reset.
This corresponds to the hardware pin XSHUTDN which is physically
active low.
maxItems: 1
port:
description: MIPI CSI-2 transmitter port
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
link-frequencies: true
data-lanes:
minItems: 1
maxItems: 2
required:
- data-lanes
required:
- compatible
- reg
- clocks
- port
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/px30-cru.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/rockchip.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ov5693: camera@36 {
compatible = "ovti,ov5693";
reg = <0x36>;
reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&cif_clkout_m0>;
clocks = <&cru SCLK_CIF_OUT>;
assigned-clocks = <&cru SCLK_CIF_OUT>;
assigned-clock-rates = <19200000>;
avdd-supply = <&vcc_1v8>;
dvdd-supply = <&vcc_1v2>;
dovdd-supply = <&vcc_2v8>;
rotation = <90>;
orientation = <0>;
port {
ucam_out: endpoint {
remote-endpoint = <&mipi_in_ucam>;
data-lanes = <1 2>;
link-frequencies = /bits/ 64 <450000000>;
};
};
};
};
...

Some files were not shown because too many files have changed in this diff Show More