dt-bindings: Add devicetree bindings
Add snapshot of device tree bindings from keystone common kernel, branch "android-mainline-keystone-qcom-release" at c4c12103f9c0 ("Snap for 9228065 from e32903b9a63bb558df8b803b076619c53c16baad to android-mainline-keystone-qcom-release"). Change-Id: I7682079615cbd9f29340a5c1f2a1d84ec441a1f1 Signed-off-by: Melody Olvera <quic_molvera@quicinc.com>
This commit is contained in:
105
bindings/media/allegro,al5e.yaml
Normal file
105
bindings/media/allegro,al5e.yaml
Normal file
@@ -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";
|
||||
};
|
||||
};
|
||||
|
||||
...
|
129
bindings/media/allwinner,sun4i-a10-csi.yaml
Normal file
129
bindings/media/allwinner,sun4i-a10-csi.yaml
Normal file
@@ -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 */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
78
bindings/media/allwinner,sun4i-a10-ir.yaml
Normal file
78
bindings/media/allwinner,sun4i-a10-ir.yaml
Normal file
@@ -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";
|
||||
};
|
||||
|
||||
...
|
94
bindings/media/allwinner,sun4i-a10-video-engine.yaml
Normal file
94
bindings/media/allwinner,sun4i-a10-video-engine.yaml
Normal file
@@ -0,0 +1,94 @@
|
||||
# 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.
|
||||
|
||||
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>;
|
||||
};
|
||||
|
||||
...
|
69
bindings/media/allwinner,sun50i-h6-vpu-g2.yaml
Normal file
69
bindings/media/allwinner,sun50i-h6-vpu-g2.yaml
Normal file
@@ -0,0 +1,69 @@
|
||||
# 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>;
|
||||
};
|
||||
|
||||
...
|
139
bindings/media/allwinner,sun6i-a31-csi.yaml
Normal file
139
bindings/media/allwinner,sun6i-a31-csi.yaml
Normal file
@@ -0,0 +1,139 @@
|
||||
# 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
|
||||
|
||||
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
|
||||
|
||||
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_CSI1_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 */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
137
bindings/media/allwinner,sun6i-a31-mipi-csi2.yaml
Normal file
137
bindings/media/allwinner,sun6i-a31-mipi-csi2.yaml
Normal file
@@ -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_CSI1_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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
70
bindings/media/allwinner,sun8i-a83t-de2-rotate.yaml
Normal file
70
bindings/media/allwinner,sun8i-a83t-de2-rotate.yaml
Normal file
@@ -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>;
|
||||
};
|
||||
|
||||
...
|
125
bindings/media/allwinner,sun8i-a83t-mipi-csi2.yaml
Normal file
125
bindings/media/allwinner,sun8i-a83t-mipi-csi2.yaml
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
83
bindings/media/allwinner,sun8i-h3-deinterlace.yaml
Normal file
83
bindings/media/allwinner,sun8i-h3-deinterlace.yaml
Normal file
@@ -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";
|
||||
};
|
||||
|
||||
...
|
47
bindings/media/amlogic,axg-ge2d.yaml
Normal file
47
bindings/media/amlogic,axg-ge2d.yaml
Normal file
@@ -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>;
|
||||
};
|
140
bindings/media/amlogic,gx-vdec.yaml
Normal file
140
bindings/media/amlogic,gx-vdec.yaml
Normal file
@@ -0,0 +1,140 @@
|
||||
# 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 (S905X, S905D)
|
||||
- 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>;
|
||||
};
|
95
bindings/media/amlogic,meson-gx-ao-cec.yaml
Normal file
95
bindings/media/amlogic,meson-gx-ao-cec.yaml
Normal file
@@ -0,0 +1,95 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright 2019 BayLibre, SAS
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/media/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
|
||||
|
||||
hdmi-phandle:
|
||||
description: phandle to the HDMI controller
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
allOf:
|
||||
- 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
|
||||
|
||||
additionalProperties: 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>;
|
||||
};
|
60
bindings/media/amlogic,meson-ir-tx.yaml
Normal file
60
bindings/media/amlogic,meson-ir-tx.yaml
Normal file
@@ -0,0 +1,60 @@
|
||||
# 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";
|
||||
};
|
180
bindings/media/amphion,vpu.yaml
Normal file
180
bindings/media/amphion,vpu.yaml
Normal file
@@ -0,0 +1,180 @@
|
||||
# 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: ../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>;
|
||||
};
|
||||
};
|
||||
|
||||
...
|
33
bindings/media/aspeed-video.txt
Normal file
33
bindings/media/aspeed-video.txt
Normal file
@@ -0,0 +1,33 @@
|
||||
* Device tree bindings for Aspeed Video Engine
|
||||
|
||||
The Video Engine (VE) embedded in the Aspeed AST2400/2500/2600 SOCs can
|
||||
capture and compress video data from digital or analog sources.
|
||||
|
||||
Required properties:
|
||||
- compatible: "aspeed,ast2400-video-engine" or
|
||||
"aspeed,ast2500-video-engine" or
|
||||
"aspeed,ast2600-video-engine"
|
||||
- reg: contains the offset and length of the VE memory region
|
||||
- clocks: clock specifiers for the syscon clocks associated with
|
||||
the VE (ordering must match the clock-names property)
|
||||
- clock-names: "vclk" and "eclk"
|
||||
- resets: reset specifier for the syscon reset associated with
|
||||
the VE
|
||||
- interrupts: the interrupt associated with the VE on this platform
|
||||
|
||||
Optional properties:
|
||||
- memory-region:
|
||||
phandle to a memory region to allocate from, as defined in
|
||||
Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
|
||||
|
||||
Example:
|
||||
|
||||
video-engine@1e700000 {
|
||||
compatible = "aspeed,ast2500-video-engine";
|
||||
reg = <0x1e700000 0x20000>;
|
||||
clocks = <&syscon ASPEED_CLK_GATE_VCLK>, <&syscon ASPEED_CLK_GATE_ECLK>;
|
||||
clock-names = "vclk", "eclk";
|
||||
resets = <&syscon ASPEED_RESET_VIDEO>;
|
||||
interrupts = <7>;
|
||||
memory-region = <&video_engine_memory>;
|
||||
};
|
115
bindings/media/atmel,isc.yaml
Normal file
115
bindings/media/atmel,isc.yaml
Normal file
@@ -0,0 +1,115 @@
|
||||
# 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
|
||||
unevaluatedProperties: 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
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
66
bindings/media/atmel-isi.txt
Normal file
66
bindings/media/atmel-isi.txt
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
100
bindings/media/cdns,csi2rx.txt
Normal file
100
bindings/media/cdns,csi2rx.txt
Normal file
@@ -0,0 +1,100 @@
|
||||
Cadence MIPI-CSI2 RX controller
|
||||
===============================
|
||||
|
||||
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.
|
||||
|
||||
Required properties:
|
||||
- compatible: must be set to "cdns,csi2rx" and an SoC-specific compatible
|
||||
- reg: base address and size of the memory mapped region
|
||||
- clocks: phandles to the clocks driving the controller
|
||||
- clock-names: must contain:
|
||||
* sys_clk: main 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 external D-PHY, phy-names must be provided
|
||||
- phy-names: must contain "dphy", if the implementation uses an
|
||||
external D-PHY
|
||||
|
||||
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 input
|
||||
1 Stream 0 output
|
||||
2 Stream 1 output
|
||||
3 Stream 2 output
|
||||
4 Stream 3 output
|
||||
|
||||
The stream output 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:
|
||||
|
||||
csi2rx: csi-bridge@0d060000 {
|
||||
compatible = "cdns,csi2rx";
|
||||
reg = <0x0d060000 0x1000>;
|
||||
clocks = <&byteclock>, <&byteclock>
|
||||
<&coreclock>, <&coreclock>,
|
||||
<&coreclock>, <&coreclock>;
|
||||
clock-names = "sys_clk", "p_clk",
|
||||
"pixel_if0_clk", "pixel_if1_clk",
|
||||
"pixel_if2_clk", "pixel_if3_clk";
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
99
bindings/media/cdns,csi2tx.txt
Normal file
99
bindings/media/cdns,csi2tx.txt
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
42
bindings/media/cec-gpio.txt
Normal file
42
bindings/media/cec-gpio.txt
Normal file
@@ -0,0 +1,42 @@
|
||||
* HDMI CEC GPIO driver
|
||||
|
||||
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.
|
||||
|
||||
Required properties:
|
||||
- compatible: value must be "cec-gpio".
|
||||
- cec-gpios: gpio that the CEC line is connected to. The line should be
|
||||
tagged as open drain.
|
||||
|
||||
If the CEC line is associated with an HDMI receiver/transmitter, then the
|
||||
following property is also required:
|
||||
|
||||
- hdmi-phandle - phandle to the HDMI controller, see also cec.txt.
|
||||
|
||||
If the CEC line is not associated with an HDMI receiver/transmitter, then
|
||||
the following property is optional and can be used for debugging HPD changes:
|
||||
|
||||
- hpd-gpios: gpio that the HPD line is connected to.
|
||||
|
||||
This property is optional and can be used for debugging changes on the 5V line:
|
||||
|
||||
- v5-gpios: gpio that the 5V line is connected to.
|
||||
|
||||
Example for the Raspberry Pi 3 where the CEC line is connected to
|
||||
pin 26 aka BCM7 aka CE1 on the GPIO pin header, the HPD line is
|
||||
connected to pin 11 aka BCM17 and the 5V line is connected to pin
|
||||
15 aka BCM22 (some level shifter is needed for the HPD and 5V lines!):
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
cec-gpio {
|
||||
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>;
|
||||
};
|
8
bindings/media/cec.txt
Normal file
8
bindings/media/cec.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Common bindings for HDMI CEC adapters
|
||||
|
||||
- hdmi-phandle: phandle to the HDMI controller.
|
||||
|
||||
- needs-hpd: if present 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.
|
107
bindings/media/coda.yaml
Normal file
107
bindings/media/coda.yaml
Normal file
@@ -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>;
|
||||
};
|
16
bindings/media/exynos-fimc-lite.txt
Normal file
16
bindings/media/exynos-fimc-lite.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
Exynos4x12/Exynos5 SoC series camera host interface (FIMC-LITE)
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : should be one of:
|
||||
"samsung,exynos4212-fimc-lite" for Exynos4212/4412 SoCs,
|
||||
"samsung,exynos5250-fimc-lite" for Exynos5250 compatible
|
||||
devices;
|
||||
- reg : physical base address and size of the device memory mapped
|
||||
registers;
|
||||
- interrupts : should contain FIMC-LITE interrupt;
|
||||
- clocks : FIMC LITE gate clock should be specified in this property.
|
||||
- clock-names : should contain "flite" entry.
|
||||
|
||||
Each FIMC device should have an alias in the aliases node, in the form of
|
||||
fimc-lite<n>, where <n> is an integer specifying the IP block instance.
|
50
bindings/media/exynos4-fimc-is.txt
Normal file
50
bindings/media/exynos4-fimc-is.txt
Normal file
@@ -0,0 +1,50 @@
|
||||
Exynos4x12 SoC series Imaging Subsystem (FIMC-IS)
|
||||
|
||||
The FIMC-IS is a subsystem for processing image signal from an image sensor.
|
||||
The Exynos4x12 SoC series FIMC-IS V1.5 comprises of a dedicated ARM Cortex-A5
|
||||
processor, ISP, DRC and FD IP blocks and peripheral devices such as UART, I2C
|
||||
and SPI bus controllers, PWM and ADC.
|
||||
|
||||
fimc-is node
|
||||
------------
|
||||
|
||||
Required properties:
|
||||
- compatible : should be "samsung,exynos4212-fimc-is" for Exynos4212 and
|
||||
Exynos4412 SoCs;
|
||||
- reg : physical base address and length of the registers set;
|
||||
- interrupts : must contain two FIMC-IS interrupts, in order: ISP0, ISP1;
|
||||
- clocks : list of clock specifiers, corresponding to entries in
|
||||
clock-names property;
|
||||
- clock-names : must contain "ppmuispx", "ppmuispx", "lite0", "lite1"
|
||||
"mpll", "sysreg", "isp", "drc", "fd", "mcuisp", "gicisp",
|
||||
"pwm_isp", "mcuctl_isp", "uart", "ispdiv0", "ispdiv1",
|
||||
"mcuispdiv0", "mcuispdiv1", "aclk200", "div_aclk200",
|
||||
"aclk400mcuisp", "div_aclk400mcuisp" entries,
|
||||
matching entries in the clocks property.
|
||||
pmu subnode
|
||||
-----------
|
||||
|
||||
Required properties:
|
||||
- reg : must contain PMU physical base address and size of the register set.
|
||||
|
||||
The following are the FIMC-IS peripheral device nodes and can be specified
|
||||
either standalone or as the fimc-is node child nodes.
|
||||
|
||||
i2c-isp (ISP I2C bus controller) nodes
|
||||
------------------------------------------
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : should be "samsung,exynos4212-i2c-isp" for Exynos4212 and
|
||||
Exynos4412 SoCs;
|
||||
- reg : physical base address and length of the registers set;
|
||||
- clocks : must contain gate clock specifier for this controller;
|
||||
- clock-names : must contain "i2c_isp" entry.
|
||||
|
||||
For the above nodes it is required to specify a pinctrl state named "default",
|
||||
according to the pinctrl bindings defined in ../pinctrl/pinctrl-bindings.txt.
|
||||
|
||||
Device tree nodes of the image sensors' controlled directly by the FIMC-IS
|
||||
firmware must be child nodes of their corresponding ISP I2C bus controller node.
|
||||
The data link of these image sensors must be specified using the common video
|
||||
interfaces bindings, defined in video-interfaces.txt.
|
26
bindings/media/fsl-pxp.txt
Normal file
26
bindings/media/fsl-pxp.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
Freescale Pixel Pipeline
|
||||
========================
|
||||
|
||||
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.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "fsl,<soc>-pxp", where SoC can be one of imx23, imx28,
|
||||
imx6dl, imx6sl, imx6sll, imx6ul, imx6sx, imx6ull, or imx7d.
|
||||
- reg: the register base and size for the device registers
|
||||
- interrupts: the PXP interrupt, two interrupts for imx6ull and imx7d.
|
||||
- clock-names: should be "axi"
|
||||
- clocks: the PXP AXI clock
|
||||
|
||||
Example:
|
||||
|
||||
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>;
|
||||
};
|
21
bindings/media/fsl-vdoa.txt
Normal file
21
bindings/media/fsl-vdoa.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
Freescale Video Data Order Adapter
|
||||
==================================
|
||||
|
||||
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.
|
||||
|
||||
Required properties:
|
||||
- compatible: must be "fsl,imx6q-vdoa"
|
||||
- reg: the register base and size for the device registers
|
||||
- interrupts: the VDOA interrupt
|
||||
- clocks: the vdoa clock
|
||||
|
||||
Example:
|
||||
|
||||
vdoa@21e4000 {
|
||||
compatible = "fsl,imx6q-vdoa";
|
||||
reg = <0x021e4000 0x4000>;
|
||||
interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX6QDL_CLK_VDOA>;
|
||||
};
|
40
bindings/media/gpio-ir-receiver.yaml
Normal file
40
bindings/media/gpio-ir-receiver.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
# 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
|
||||
|
||||
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>;
|
||||
};
|
||||
...
|
26
bindings/media/hix5hd2-ir.txt
Normal file
26
bindings/media/hix5hd2-ir.txt
Normal file
@@ -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";
|
||||
};
|
28
bindings/media/i2c/ad5820.txt
Normal file
28
bindings/media/i2c/ad5820.txt
Normal file
@@ -0,0 +1,28 @@
|
||||
* Analog Devices AD5820 autofocus coil
|
||||
|
||||
Required Properties:
|
||||
|
||||
- compatible: Must contain one of:
|
||||
- "adi,ad5820"
|
||||
- "adi,ad5821"
|
||||
- "adi,ad5823"
|
||||
|
||||
- reg: I2C slave address
|
||||
|
||||
- VANA-supply: supply of voltage for VANA pin
|
||||
|
||||
Optional properties:
|
||||
|
||||
- enable-gpios : GPIO spec for the XSHUTDOWN pin. The XSHUTDOWN signal is
|
||||
active low, a high level on the pin enables the device.
|
||||
|
||||
Example:
|
||||
|
||||
ad5820: coil@c {
|
||||
compatible = "adi,ad5820";
|
||||
reg = <0x0c>;
|
||||
|
||||
VANA-supply = <&vaux4>;
|
||||
enable-gpios = <&msmgpio 26 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
38
bindings/media/i2c/adp1653.txt
Normal file
38
bindings/media/i2c/adp1653.txt
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
179
bindings/media/i2c/adv7180.yaml
Normal file
179
bindings/media/i2c/adv7180.yaml
Normal file
@@ -0,0 +1,179 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/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:
|
||||
maxItems: 1
|
||||
|
||||
powerdown-gpios:
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
adv,force-bt656-4:
|
||||
description:
|
||||
Indicates that the output is a BT.656-4 compatible stream.
|
||||
type: boolean
|
||||
|
||||
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
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
48
bindings/media/i2c/adv7343.txt
Normal file
48
bindings/media/i2c/adv7343.txt
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
||||
};
|
212
bindings/media/i2c/adv748x.yaml
Normal file
212
bindings/media/i2c/adv748x.yaml
Normal file
@@ -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/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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
160
bindings/media/i2c/adv7604.yaml
Normal file
160
bindings/media/i2c/adv7604.yaml
Normal file
@@ -0,0 +1,160 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/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-cisco@xs4all.nl>
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
};
|
8
bindings/media/i2c/ak7375.txt
Normal file
8
bindings/media/i2c/ak7375.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Asahi Kasei Microdevices AK7375 voice coil lens driver
|
||||
|
||||
AK7375 is a camera voice coil lens.
|
||||
|
||||
Mandatory properties:
|
||||
|
||||
- compatible: "asahi-kasei,ak7375"
|
||||
- reg: I2C slave address
|
109
bindings/media/i2c/aptina,mt9p031.yaml
Normal file
109
bindings/media/i2c/aptina,mt9p031.yaml
Normal file
@@ -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:
|
||||
- |
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
mt9p031@5d {
|
||||
compatible = "aptina,mt9p031";
|
||||
reg = <0x5d>;
|
||||
reset-gpios = <&gpio_sensor 0 0>;
|
||||
|
||||
clocks = <&sensor_clk>;
|
||||
|
||||
vdd-supply = <®_vdd>;
|
||||
vdd_io-supply = <®_vdd_io>;
|
||||
vaa-supply = <®_vaa>;
|
||||
|
||||
port {
|
||||
mt9p031_1: endpoint {
|
||||
input-clock-frequency = <6000000>;
|
||||
pixel-clock-frequency = <96000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
75
bindings/media/i2c/aptina,mt9v111.yaml
Normal file
75
bindings/media/i2c/aptina,mt9v111.yaml
Normal file
@@ -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:
|
||||
- |
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
camera@48 {
|
||||
compatible = "aptina,mt9v111";
|
||||
reg = <0x48>;
|
||||
clocks = <&camera_clk>;
|
||||
|
||||
port {
|
||||
mt9v111_out: endpoint {
|
||||
remote-endpoint = <&ceu_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
69
bindings/media/i2c/chrontel,ch7322.yaml
Normal file
69
bindings/media/i2c/chrontel,ch7322.yaml
Normal file
@@ -0,0 +1,69 @@
|
||||
# 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.
|
||||
|
||||
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
|
||||
|
||||
# see ../cec.txt
|
||||
hdmi-phandle:
|
||||
description: phandle to the HDMI controller
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ch7322@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>;
|
||||
};
|
||||
};
|
47
bindings/media/i2c/dongwoon,dw9714.yaml
Normal file
47
bindings/media/i2c/dongwoon,dw9714.yaml
Normal file
@@ -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 = <®_csi_1v8>;
|
||||
};
|
||||
};
|
97
bindings/media/i2c/dongwoon,dw9768.yaml
Normal file
97
bindings/media/i2c/dongwoon,dw9768.yaml
Normal file
@@ -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 Device Tree Bindings
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
|
||||
...
|
41
bindings/media/i2c/dongwoon,dw9807-vcm.yaml
Normal file
41
bindings/media/i2c/dongwoon,dw9807-vcm.yaml
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
...
|
124
bindings/media/i2c/hynix,hi846.yaml
Normal file
124
bindings/media/i2c/hynix,hi846.yaml
Normal file
@@ -0,0 +1,124 @@
|
||||
# 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.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: hynix,hi846
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Reference to the mclk clock.
|
||||
|
||||
assigned-clocks:
|
||||
maxItems: 1
|
||||
|
||||
assigned-clock-rates:
|
||||
maxItems: 1
|
||||
|
||||
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
|
||||
- assigned-clocks
|
||||
- assigned-clock-rates
|
||||
- vddio-supply
|
||||
- vdda-supply
|
||||
- vddd-supply
|
||||
- port
|
||||
|
||||
additionalProperties: 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>;
|
||||
assigned-clocks = <&clk 0>;
|
||||
assigned-clock-rates = <25000000>;
|
||||
vdda-supply = <®_camera_vdda>;
|
||||
vddd-supply = <®_camera_vddd>;
|
||||
vddio-supply = <®_camera_vddio>;
|
||||
reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
|
||||
shutdown-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>;
|
||||
|
||||
port {
|
||||
camera_out: endpoint {
|
||||
remote-endpoint = <&csi1_ep1>;
|
||||
link-frequencies = /bits/ 64
|
||||
<80000000 200000000>;
|
||||
data-lanes = <1 2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
137
bindings/media/i2c/imi,rdacm2x-gmsl.yaml
Normal file
137
bindings/media/i2c/imi,rdacm2x-gmsl.yaml
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
109
bindings/media/i2c/imx219.yaml
Normal file
109
bindings/media/i2c/imx219.yaml
Normal file
@@ -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/imx219.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Sony 1/4.0-Inch 8Mpixel CMOS Digital Image Sensor
|
||||
|
||||
maintainers:
|
||||
- Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
description: |-
|
||||
The Sony imx219 is a 1/4.0-inch CMOS active pixel digital image sensor
|
||||
with an active array size of 3280H x 2464V. It is programmable through
|
||||
I2C interface. The I2C address is fixed to 0x10 as per sensor data sheet.
|
||||
Image data is sent through MIPI CSI-2, which is configured as either 2 or
|
||||
4 data lanes.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: sony,imx219
|
||||
|
||||
reg:
|
||||
description: I2C device address
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
VDIG-supply:
|
||||
description:
|
||||
Digital I/O voltage supply, 1.8 volts
|
||||
|
||||
VANA-supply:
|
||||
description:
|
||||
Analog voltage supply, 2.8 volts
|
||||
|
||||
VDDL-supply:
|
||||
description:
|
||||
Digital core voltage supply, 1.2 volts
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
description: |-
|
||||
Reference to the GPIO connected to the xclr pin, if any.
|
||||
Must be released (set high) after all supplies are applied.
|
||||
|
||||
port:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
data-lanes:
|
||||
description: |-
|
||||
The sensor supports either two-lane, or four-lane operation.
|
||||
If this property is omitted four-lane operation is assumed.
|
||||
For two-lane operation the property must be set to <1 2>.
|
||||
items:
|
||||
- const: 1
|
||||
- const: 2
|
||||
|
||||
clock-noncontinuous: true
|
||||
link-frequencies: true
|
||||
|
||||
required:
|
||||
- link-frequencies
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- VANA-supply
|
||||
- VDIG-supply
|
||||
- VDDL-supply
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
imx219: sensor@10 {
|
||||
compatible = "sony,imx219";
|
||||
reg = <0x10>;
|
||||
clocks = <&imx219_clk>;
|
||||
VANA-supply = <&imx219_vana>; /* 2.8v */
|
||||
VDIG-supply = <&imx219_vdig>; /* 1.8v */
|
||||
VDDL-supply = <&imx219_vddl>; /* 1.2v */
|
||||
|
||||
port {
|
||||
imx219_0: endpoint {
|
||||
remote-endpoint = <&csi1_ep>;
|
||||
data-lanes = <1 2>;
|
||||
clock-noncontinuous;
|
||||
link-frequencies = /bits/ 64 <456000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
134
bindings/media/i2c/imx258.yaml
Normal file
134
bindings/media/i2c/imx258.yaml
Normal file
@@ -0,0 +1,134 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/imx258.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Sony IMX258 13 Mpixel CMOS Digital Image Sensor
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
|
||||
description: |-
|
||||
IMX258 is a diagonal 5.867mm (Type 1/3.06) 13 Mega-pixel CMOS active pixel
|
||||
type stacked image sensor with a square pixel array of size 4208 x 3120. It
|
||||
is programmable through I2C interface. Image data is sent through MIPI
|
||||
CSI-2.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: sony,imx258
|
||||
|
||||
assigned-clocks: true
|
||||
assigned-clock-parents: true
|
||||
assigned-clock-rates: true
|
||||
|
||||
clocks:
|
||||
description:
|
||||
Clock frequency from 6 to 27 MHz.
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
description: |-
|
||||
Reference to the GPIO connected to the XCLR pin, if any.
|
||||
|
||||
vana-supply:
|
||||
description:
|
||||
Analog voltage (VANA) supply, 2.7 V
|
||||
|
||||
vdig-supply:
|
||||
description:
|
||||
Digital I/O voltage (VDIG) supply, 1.2 V
|
||||
|
||||
vif-supply:
|
||||
description:
|
||||
Interface voltage (VIF) supply, 1.8 V
|
||||
|
||||
# See ../video-interfaces.txt for more details
|
||||
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
|
||||
|
||||
link-frequencies: true
|
||||
|
||||
required:
|
||||
- data-lanes
|
||||
- link-frequencies
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
sensor@6c {
|
||||
compatible = "sony,imx258";
|
||||
reg = <0x6c>;
|
||||
clocks = <&imx258_clk>;
|
||||
|
||||
port {
|
||||
endpoint {
|
||||
remote-endpoint = <&csi1_ep>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
link-frequencies = /bits/ 64 <320000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Oscillator on the camera board */
|
||||
imx258_clk: clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <19200000>;
|
||||
};
|
||||
|
||||
- |
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
sensor@6c {
|
||||
compatible = "sony,imx258";
|
||||
reg = <0x6c>;
|
||||
clocks = <&imx258_clk>;
|
||||
|
||||
assigned-clocks = <&imx258_clk>;
|
||||
assigned-clock-rates = <19200000>;
|
||||
|
||||
port {
|
||||
endpoint {
|
||||
remote-endpoint = <&csi1_ep>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
link-frequencies = /bits/ 64 <633600000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
57
bindings/media/i2c/imx290.txt
Normal file
57
bindings/media/i2c/imx290.txt
Normal file
@@ -0,0 +1,57 @@
|
||||
* Sony IMX290 1/2.8-Inch CMOS Image Sensor
|
||||
|
||||
The Sony IMX290 is a 1/2.8-Inch CMOS Solid-state image sensor with
|
||||
Square Pixel for Color Cameras. It is programmable through I2C and 4-wire
|
||||
interfaces. The sensor output is available via CMOS logic parallel SDR output,
|
||||
Low voltage LVDS DDR output and CSI-2 serial data output. The CSI-2 bus is the
|
||||
default. No bindings have been defined for the other busses.
|
||||
|
||||
Required Properties:
|
||||
- compatible: Should be "sony,imx290"
|
||||
- reg: I2C bus address of the device
|
||||
- clocks: Reference to the xclk clock.
|
||||
- clock-names: Should be "xclk".
|
||||
- clock-frequency: Frequency of the xclk clock in Hz.
|
||||
- vdddo-supply: Sensor digital IO regulator.
|
||||
- vdda-supply: Sensor analog regulator.
|
||||
- vddd-supply: Sensor digital core regulator.
|
||||
|
||||
Optional Properties:
|
||||
- reset-gpios: Sensor reset GPIO
|
||||
|
||||
The imx290 device node should contain one 'port' child node with
|
||||
an 'endpoint' subnode. For further reading on port node refer to
|
||||
Documentation/devicetree/bindings/media/video-interfaces.txt.
|
||||
|
||||
Required Properties on endpoint:
|
||||
- data-lanes: check ../video-interfaces.txt
|
||||
- link-frequencies: check ../video-interfaces.txt
|
||||
- remote-endpoint: check ../video-interfaces.txt
|
||||
|
||||
Example:
|
||||
&i2c1 {
|
||||
...
|
||||
imx290: camera-sensor@1a {
|
||||
compatible = "sony,imx290";
|
||||
reg = <0x1a>;
|
||||
|
||||
reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&camera_rear_default>;
|
||||
|
||||
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
|
||||
clock-names = "xclk";
|
||||
clock-frequency = <37125000>;
|
||||
|
||||
vdddo-supply = <&camera_vdddo_1v8>;
|
||||
vdda-supply = <&camera_vdda_2v8>;
|
||||
vddd-supply = <&camera_vddd_1v5>;
|
||||
|
||||
port {
|
||||
imx290_ep: endpoint {
|
||||
data-lanes = <1 2 3 4>;
|
||||
link-frequencies = /bits/ 64 <445500000>;
|
||||
remote-endpoint = <&csiphy0_ep>;
|
||||
};
|
||||
};
|
||||
};
|
113
bindings/media/i2c/isil,isl79987.yaml
Normal file
113
bindings/media/i2c/isil,isl79987.yaml
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
59
bindings/media/i2c/max2175.txt
Normal file
59
bindings/media/i2c/max2175.txt
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
378
bindings/media/i2c/maxim,max9286.yaml
Normal file
378
bindings/media/i2c/maxim,max9286.yaml
Normal file
@@ -0,0 +1,378 @@
|
||||
# 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 the cameras
|
||||
|
||||
enable-gpios:
|
||||
description: GPIO connected to the \#PWDN pin with inverted polarity
|
||||
maxItems: 1
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
'#gpio-cells':
|
||||
const: 2
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- ports
|
||||
- i2c-mux
|
||||
|
||||
# If 'maxim,gpio-poc' is present, then 'poc-supply' and 'gpio-controller'
|
||||
# are not allowed.
|
||||
if:
|
||||
required:
|
||||
- maxim,gpio-poc
|
||||
then:
|
||||
properties:
|
||||
poc-supply: false
|
||||
gpio-controller: 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,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>;
|
||||
};
|
||||
};
|
||||
};
|
111
bindings/media/i2c/maxim,max96712.yaml
Normal file
111
bindings/media/i2c/maxim,max96712.yaml
Normal file
@@ -0,0 +1,111 @@
|
||||
# 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:
|
||||
const: maxim,max96712
|
||||
|
||||
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
|
||||
|
||||
required:
|
||||
- data-lanes
|
||||
|
||||
required:
|
||||
- port@4
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- ports
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.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 {
|
||||
clock-lanes = <0>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
remote-endpoint = <&csi40_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
20
bindings/media/i2c/melexis,mlx90640.txt
Normal file
20
bindings/media/i2c/melexis,mlx90640.txt
Normal file
@@ -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>;
|
||||
};
|
||||
...
|
||||
};
|
132
bindings/media/i2c/mipi-ccs.yaml
Normal file
132
bindings/media/i2c/mipi-ccs.yaml
Normal file
@@ -0,0 +1,132 @@
|
||||
# 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 .
|
||||
|
||||
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.
|
||||
|
||||
reset-gpios:
|
||||
description: Reset GPIO. Also commonly called XSHUTDOWN in hardware
|
||||
documentation.
|
||||
maxItems: 1
|
||||
|
||||
flash-leds:
|
||||
description: Flash LED phandles. See ../video-interfaces.txt for details.
|
||||
|
||||
lens-focus:
|
||||
description: Lens focus controller phandles. See ../video-interfaces.txt
|
||||
for details.
|
||||
|
||||
rotation:
|
||||
description: Rotation of the sensor. See ../video-interfaces.txt for
|
||||
details.
|
||||
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
|
||||
- clock-frequency
|
||||
- clocks
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
i2c2 {
|
||||
#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>;
|
||||
clock-frequency = <9600000>;
|
||||
port {
|
||||
ccs_ep: endpoint {
|
||||
data-lanes = <1 2>;
|
||||
remote-endpoint = <&csi2a_ep>;
|
||||
link-frequencies = /bits/ 64 <199200000 210000000
|
||||
499200000>;
|
||||
bus-type = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
38
bindings/media/i2c/mt9m001.txt
Normal file
38
bindings/media/i2c/mt9m001.txt
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
37
bindings/media/i2c/mt9m111.txt
Normal file
37
bindings/media/i2c/mt9m111.txt
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
41
bindings/media/i2c/mt9v032.txt
Normal file
41
bindings/media/i2c/mt9v032.txt
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
112
bindings/media/i2c/onnn,ar0521.yaml
Normal file
112
bindings/media/i2c/onnn,ar0521.yaml
Normal file
@@ -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 = <®_2p7v>;
|
||||
vdd-supply = <®_1p2v>;
|
||||
vdd_io-supply = <®_1p8v>;
|
||||
|
||||
port {
|
||||
mipi_camera_to_mipi_csi2: endpoint {
|
||||
remote-endpoint = <&mipi_csi2_in>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
41
bindings/media/i2c/ov2640.txt
Normal file
41
bindings/media/i2c/ov2640.txt
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
47
bindings/media/i2c/ov2659.txt
Normal file
47
bindings/media/i2c/ov2659.txt
Normal file
@@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
||||
};
|
41
bindings/media/i2c/ov2685.txt
Normal file
41
bindings/media/i2c/ov2685.txt
Normal file
@@ -0,0 +1,41 @@
|
||||
* Omnivision OV2685 MIPI CSI-2 sensor
|
||||
|
||||
Required Properties:
|
||||
- compatible: shall be "ovti,ov2685"
|
||||
- clocks: reference to the xvclk input clock
|
||||
- clock-names: shall be "xvclk"
|
||||
- avdd-supply: Analog voltage supply, 2.8 volts
|
||||
- dovdd-supply: Digital I/O voltage supply, 1.8 volts
|
||||
- dvdd-supply: Digital core voltage supply, 1.8 volts
|
||||
- reset-gpios: Low active reset gpio
|
||||
|
||||
The device node shall contain one 'port' child node with an
|
||||
'endpoint' subnode for its digital output video port,
|
||||
in accordance with the video interface bindings defined in
|
||||
Documentation/devicetree/bindings/media/video-interfaces.txt.
|
||||
The endpoint optional property 'data-lanes' shall be "<1>".
|
||||
|
||||
Example:
|
||||
&i2c7 {
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
54
bindings/media/i2c/ov5645.txt
Normal file
54
bindings/media/i2c/ov5645.txt
Normal file
@@ -0,0 +1,54 @@
|
||||
* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor
|
||||
|
||||
The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image sensor with
|
||||
an active array size of 2592H x 1944V. It is programmable through a serial I2C
|
||||
interface.
|
||||
|
||||
Required Properties:
|
||||
- compatible: Value should be "ovti,ov5645".
|
||||
- clocks: Reference to the xclk clock.
|
||||
- clock-names: Should be "xclk".
|
||||
- clock-frequency: Frequency of the xclk clock.
|
||||
- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH. This corresponds
|
||||
to the hardware pin PWDNB which is physically active low.
|
||||
- reset-gpios: Chip reset GPIO. Polarity is GPIO_ACTIVE_LOW. This corresponds to
|
||||
the hardware pin RESETB.
|
||||
- vdddo-supply: Chip digital IO regulator.
|
||||
- vdda-supply: Chip analog regulator.
|
||||
- vddd-supply: Chip digital core regulator.
|
||||
|
||||
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 {
|
||||
...
|
||||
|
||||
ov5645: ov5645@3c {
|
||||
compatible = "ovti,ov5645";
|
||||
reg = <0x3c>;
|
||||
|
||||
enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&camera_rear_default>;
|
||||
|
||||
clocks = <&clks 200>;
|
||||
clock-names = "xclk";
|
||||
clock-frequency = <24000000>;
|
||||
|
||||
vdddo-supply = <&camera_dovdd_1v8>;
|
||||
vdda-supply = <&camera_avdd_2v8>;
|
||||
vddd-supply = <&camera_dvdd_1v2>;
|
||||
|
||||
port {
|
||||
ov5645_ep: endpoint {
|
||||
clock-lanes = <1>;
|
||||
data-lanes = <0 2>;
|
||||
remote-endpoint = <&csi0_ep>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
41
bindings/media/i2c/ov5695.txt
Normal file
41
bindings/media/i2c/ov5695.txt
Normal file
@@ -0,0 +1,41 @@
|
||||
* Omnivision OV5695 MIPI CSI-2 sensor
|
||||
|
||||
Required Properties:
|
||||
- compatible: shall be "ovti,ov5695"
|
||||
- clocks: reference to the xvclk input clock
|
||||
- clock-names: shall be "xvclk"
|
||||
- avdd-supply: Analog voltage supply, 2.8 volts
|
||||
- dovdd-supply: Digital I/O voltage supply, 1.8 volts
|
||||
- dvdd-supply: Digital core voltage supply, 1.2 volts
|
||||
- reset-gpios: Low active reset gpio
|
||||
|
||||
The device node shall contain one 'port' child node with an
|
||||
'endpoint' subnode for its digital output video port,
|
||||
in accordance with the video interface bindings defined in
|
||||
Documentation/devicetree/bindings/media/video-interfaces.txt.
|
||||
The endpoint optional property 'data-lanes' shall be "<1 2>".
|
||||
|
||||
Example:
|
||||
&i2c7 {
|
||||
ov5695: camera-sensor@36 {
|
||||
compatible = "ovti,ov5695";
|
||||
reg = <0x36>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&clk_24m_cam>;
|
||||
|
||||
clocks = <&cru SCLK_TESTCLKOUT1>;
|
||||
clock-names = "xvclk";
|
||||
|
||||
avdd-supply = <&pp2800_cam>;
|
||||
dovdd-supply = <&pp1800>;
|
||||
dvdd-supply = <&pp1250_cam>;
|
||||
reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
|
||||
|
||||
port {
|
||||
wcam_out: endpoint {
|
||||
remote-endpoint = <&mipi_in_wcam>;
|
||||
data-lanes = <1 2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
52
bindings/media/i2c/ov7251.txt
Normal file
52
bindings/media/i2c/ov7251.txt
Normal file
@@ -0,0 +1,52 @@
|
||||
* Omnivision 1/7.5-Inch B&W VGA CMOS Digital Image Sensor
|
||||
|
||||
The Omnivision OV7251 is a 1/7.5-Inch CMOS active pixel digital image sensor
|
||||
with an active array size of 640H x 480V. It is programmable through a serial
|
||||
I2C interface.
|
||||
|
||||
Required Properties:
|
||||
- compatible: Value should be "ovti,ov7251".
|
||||
- clocks: Reference to the xclk clock.
|
||||
- clock-names: Should be "xclk".
|
||||
- clock-frequency: Frequency of the xclk clock.
|
||||
- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH. This corresponds
|
||||
to the hardware pin XSHUTDOWN which is physically active low.
|
||||
- vdddo-supply: Chip digital IO regulator.
|
||||
- vdda-supply: Chip analog regulator.
|
||||
- vddd-supply: Chip digital core regulator.
|
||||
|
||||
The device node shall contain one 'port' child node with a single 'endpoint'
|
||||
subnode for its digital output video port, in accordance with the video
|
||||
interface bindings defined in
|
||||
Documentation/devicetree/bindings/media/video-interfaces.txt.
|
||||
|
||||
Example:
|
||||
|
||||
&i2c1 {
|
||||
...
|
||||
|
||||
ov7251: camera-sensor@60 {
|
||||
compatible = "ovti,ov7251";
|
||||
reg = <0x60>;
|
||||
|
||||
enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&camera_bw_default>;
|
||||
|
||||
clocks = <&clks 200>;
|
||||
clock-names = "xclk";
|
||||
clock-frequency = <24000000>;
|
||||
|
||||
vdddo-supply = <&camera_dovdd_1v8>;
|
||||
vdda-supply = <&camera_avdd_2v8>;
|
||||
vddd-supply = <&camera_dvdd_1v2>;
|
||||
|
||||
port {
|
||||
ov7251_ep: endpoint {
|
||||
clock-lanes = <1>;
|
||||
data-lanes = <0>;
|
||||
remote-endpoint = <&csi0_ep>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
55
bindings/media/i2c/ov7670.txt
Normal file
55
bindings/media/i2c/ov7670.txt
Normal file
@@ -0,0 +1,55 @@
|
||||
* Omnivision OV7670 CMOS sensor
|
||||
|
||||
The Omnivision OV7670 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,ov7670"
|
||||
- clocks: reference to the xclk input clock.
|
||||
- clock-names: should be "xclk".
|
||||
|
||||
Required Endpoint Properties:
|
||||
- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
|
||||
- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
|
||||
|
||||
Optional Properties:
|
||||
- reset-gpios: reference to the GPIO connected to the resetb pin, if any.
|
||||
Active is low.
|
||||
- powerdown-gpios: reference to the GPIO connected to the pwdn pin, if any.
|
||||
Active is high.
|
||||
- ov7670,pclk-hb-disable: a boolean property to suppress pixel clock output
|
||||
signal during horizontal blankings.
|
||||
|
||||
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: i2c@f0018000 {
|
||||
ov7670: camera@21 {
|
||||
compatible = "ovti,ov7670";
|
||||
reg = <0x21>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
|
||||
reset-gpios = <&pioE 11 GPIO_ACTIVE_LOW>;
|
||||
powerdown-gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
|
||||
clocks = <&pck0>;
|
||||
clock-names = "xclk";
|
||||
assigned-clocks = <&pck0>;
|
||||
assigned-clock-rates = <25000000>;
|
||||
|
||||
ov7670,pclk-hb-disable;
|
||||
|
||||
port {
|
||||
ov7670_0: endpoint {
|
||||
hsync-active = <0>;
|
||||
vsync-active = <0>;
|
||||
|
||||
remote-endpoint = <&isi_0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
47
bindings/media/i2c/ov7740.txt
Normal file
47
bindings/media/i2c/ov7740.txt
Normal file
@@ -0,0 +1,47 @@
|
||||
* Omnivision OV7740 CMOS image sensor
|
||||
|
||||
The Omnivision OV7740 image sensor supports multiple output image
|
||||
size, such as VGA, and QVGA, CIF and any size smaller. It also
|
||||
supports the RAW RGB and YUV output formats.
|
||||
|
||||
The common video interfaces bindings (see video-interfaces.txt) should
|
||||
be used to specify link to the image data receiver. The OV7740 device
|
||||
node should contain one 'port' child node with an 'endpoint' subnode.
|
||||
|
||||
Required Properties:
|
||||
- compatible: "ovti,ov7740".
|
||||
- reg: I2C slave address of the sensor.
|
||||
- clocks: Reference to the xvclk input clock.
|
||||
- clock-names: "xvclk".
|
||||
|
||||
Optional Properties:
|
||||
- reset-gpios: Rreference to the GPIO connected to the reset_b pin,
|
||||
if any. Active low with pull-ip resistor.
|
||||
- powerdown-gpios: Reference to the GPIO connected to the pwdn pin,
|
||||
if any. Active high with pull-down resistor.
|
||||
|
||||
Endpoint node mandatory properties:
|
||||
- remote-endpoint: A phandle to the bus receiver's endpoint node.
|
||||
|
||||
Example:
|
||||
|
||||
i2c1: i2c@fc028000 {
|
||||
ov7740: camera@21 {
|
||||
compatible = "ovti,ov7740";
|
||||
reg = <0x21>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_sensor_power &pinctrl_sensor_reset>;
|
||||
clocks = <&isc>;
|
||||
clock-names = "xvclk";
|
||||
assigned-clocks = <&isc>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
reset-gpios = <&pioA 43 GPIO_ACTIVE_LOW>;
|
||||
powerdown-gpios = <&pioA 44 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
port {
|
||||
ov7740_0: endpoint {
|
||||
remote-endpoint = <&isc_0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
134
bindings/media/i2c/ov8856.yaml
Normal file
134
bindings/media/i2c/ov8856.yaml
Normal file
@@ -0,0 +1,134 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright (c) 2019 MediaTek Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/ov8856.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Omnivision OV8856 CMOS Sensor Device Tree Bindings
|
||||
|
||||
maintainers:
|
||||
- Dongchun Zhu <dongchun.zhu@mediatek.com>
|
||||
|
||||
description: |-
|
||||
The Omnivision OV8856 is a high performance, 1/4-inch, 8 megapixel, CMOS
|
||||
image sensor that delivers 3264x2448 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 4-lane).
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ovti,ov8856
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
description:
|
||||
Input clock for the sensor.
|
||||
items:
|
||||
- const: xvclk
|
||||
|
||||
clock-frequency:
|
||||
description:
|
||||
Frequency of the xvclk clock in Hertz.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
port:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
data-lanes:
|
||||
description: |-
|
||||
The driver only supports four-lane operation.
|
||||
items:
|
||||
- const: 1
|
||||
- const: 2
|
||||
- const: 3
|
||||
- const: 4
|
||||
|
||||
link-frequencies:
|
||||
description: Frequencies listed are driver, not h/w limitations.
|
||||
maxItems: 2
|
||||
items:
|
||||
enum: [ 360000000, 180000000 ]
|
||||
|
||||
required:
|
||||
- link-frequencies
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- clock-frequency
|
||||
- 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>;
|
||||
|
||||
ov8856: camera@10 {
|
||||
compatible = "ovti,ov8856";
|
||||
reg = <0x10>;
|
||||
|
||||
reset-gpios = <&pio 111 GPIO_ACTIVE_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&clk_24m_cam>;
|
||||
|
||||
clocks = <&cam_osc>;
|
||||
clock-names = "xvclk";
|
||||
clock-frequency = <19200000>;
|
||||
|
||||
avdd-supply = <&mt6358_vcama2_reg>;
|
||||
dvdd-supply = <&mt6358_vcamd_reg>;
|
||||
dovdd-supply = <&mt6358_vcamio_reg>;
|
||||
|
||||
port {
|
||||
wcam_out: endpoint {
|
||||
remote-endpoint = <&mipi_in_wcam>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
link-frequencies = /bits/ 64 <360000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
36
bindings/media/i2c/ov9650.txt
Normal file
36
bindings/media/i2c/ov9650.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
* Omnivision OV9650/OV9652 CMOS sensor
|
||||
|
||||
Required Properties:
|
||||
- compatible: shall be one of
|
||||
"ovti,ov9650"
|
||||
"ovti,ov9652"
|
||||
- clocks: reference to the xvclk input clock.
|
||||
|
||||
Optional Properties:
|
||||
- reset-gpios: reference to the GPIO connected to the resetb pin, if any.
|
||||
Active is high.
|
||||
- powerdown-gpios: reference to the GPIO connected to the pwdn pin, if any.
|
||||
Active is high.
|
||||
|
||||
The device node shall contain one 'port' child node with one child 'endpoint'
|
||||
subnode for its digital output video port, in accordance with the video
|
||||
interface bindings defined in Documentation/devicetree/bindings/media/
|
||||
video-interfaces.txt.
|
||||
|
||||
Example:
|
||||
|
||||
&i2c0 {
|
||||
ov9650: camera@30 {
|
||||
compatible = "ovti,ov9650";
|
||||
reg = <0x30>;
|
||||
reset-gpios = <&axi_gpio_0 0 GPIO_ACTIVE_HIGH>;
|
||||
powerdown-gpios = <&axi_gpio_0 1 GPIO_ACTIVE_HIGH>;
|
||||
clocks = <&xclk>;
|
||||
|
||||
port {
|
||||
ov9650_0: endpoint {
|
||||
remote-endpoint = <&vcap1_in0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
154
bindings/media/i2c/ovti,ov02a10.yaml
Normal file
154
bindings/media/i2c/ovti,ov02a10.yaml
Normal file
@@ -0,0 +1,154 @@
|
||||
# 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 Device Tree Bindings
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
rotation:
|
||||
enum:
|
||||
- 0 # Sensor Mounted Upright
|
||||
- 180 # Sensor Mounted Upside Down
|
||||
default: 0
|
||||
|
||||
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
|
||||
- clock-frequency
|
||||
- dovdd-supply
|
||||
- avdd-supply
|
||||
- dvdd-supply
|
||||
- powerdown-gpios
|
||||
- reset-gpios
|
||||
- port
|
||||
|
||||
additionalProperties: 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";
|
||||
clock-frequency = <24000000>;
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
97
bindings/media/i2c/ovti,ov2680.yaml
Normal file
97
bindings/media/i2c/ovti,ov2680.yaml
Normal file
@@ -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,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:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
description:
|
||||
A node containing an output port node.
|
||||
|
||||
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 = <®_peri_3p15v>;
|
||||
|
||||
port {
|
||||
ov2680_to_mipi: endpoint {
|
||||
remote-endpoint = <&mipi_from_sensor>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
154
bindings/media/i2c/ovti,ov5640.yaml
Normal file
154
bindings/media/i2c/ovti,ov5640.yaml
Normal file
@@ -0,0 +1,154 @@
|
||||
# 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 Device Tree Bindings
|
||||
|
||||
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.
|
||||
|
||||
rotation:
|
||||
enum:
|
||||
- 0
|
||||
- 180
|
||||
|
||||
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
|
||||
|
||||
additionalProperties: 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 = <¶llel_from_ov5640>;
|
||||
bus-width = <8>;
|
||||
data-shift = <2>; /* lines 9:2 are used */
|
||||
hsync-active = <0>;
|
||||
vsync-active = <0>;
|
||||
pclk-sample = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
75
bindings/media/i2c/ovti,ov5647.yaml
Normal file
75
bindings/media/i2c/ovti,ov5647.yaml
Normal file
@@ -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/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.
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
additionalProperties: 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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
109
bindings/media/i2c/ovti,ov5648.yaml
Normal file
109
bindings/media/i2c/ovti,ov5648.yaml
Normal file
@@ -0,0 +1,109 @@
|
||||
# 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 Device Tree Bindings
|
||||
|
||||
maintainers:
|
||||
- Paul Kocialkowski <paul.kocialkowski@bootlin.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ovti,ov5648
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: XVCLK Clock
|
||||
|
||||
assigned-clocks:
|
||||
maxItems: 1
|
||||
|
||||
assigned-clock-rates:
|
||||
maxItems: 1
|
||||
|
||||
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
|
||||
- assigned-clocks
|
||||
- assigned-clock-rates
|
||||
- dvdd-supply
|
||||
- dovdd-supply
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/sun8i-v3s-ccu.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
i2c0 {
|
||||
#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>;
|
||||
assigned-clocks = <&ov5648_xvclk 0>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
|
||||
|
||||
ov5648_out: port {
|
||||
ov5648_out_mipi_csi2: endpoint {
|
||||
data-lanes = <1 2>;
|
||||
link-frequencies = /bits/ 64 <210000000 168000000>;
|
||||
|
||||
remote-endpoint = <&mipi_csi2_in_ov5648>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
124
bindings/media/i2c/ovti,ov5693.yaml
Normal file
124
bindings/media/i2c/ovti,ov5693.yaml
Normal file
@@ -0,0 +1,124 @@
|
||||
# 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 CMOS Sensor
|
||||
|
||||
maintainers:
|
||||
- Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
|
||||
|
||||
description: |
|
||||
The Omnivision OV5693 is a high performance, 1/4-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.
|
||||
|
||||
OV5693 is 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#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ovti,ov5693
|
||||
|
||||
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.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
|
||||
- link-frequencies
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
133
bindings/media/i2c/ovti,ov772x.yaml
Normal file
133
bindings/media/i2c/ovti,ov772x.yaml
Normal file
@@ -0,0 +1,133 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/ovti,ov772x.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Omnivision OV7720/OV7725 CMOS sensor
|
||||
|
||||
maintainers:
|
||||
- Jacopo Mondi <jacopo@jmondi.org>
|
||||
|
||||
description: |
|
||||
The Omnivision OV7720/OV7725 sensor supports multiple resolutions output,
|
||||
such as VGA, QVGA, and any size scaling down from CIF to 40x30. It also can
|
||||
support the YUV422, RGB565/555/444, GRB422 or raw RGB output formats.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- ovti,ov7720
|
||||
- ovti,ov7725
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
description: |
|
||||
Reference to the GPIO connected to the RSTB pin which is active low.
|
||||
maxItems: 1
|
||||
|
||||
powerdown-gpios:
|
||||
description: |
|
||||
Reference to the GPIO connected to the PWDN pin which is active high.
|
||||
maxItems: 1
|
||||
|
||||
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>
|
||||
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ov772x: camera@21 {
|
||||
compatible = "ovti,ov7725";
|
||||
reg = <0x21>;
|
||||
reset-gpios = <&axi_gpio_0 0 GPIO_ACTIVE_LOW>;
|
||||
powerdown-gpios = <&axi_gpio_0 1 GPIO_ACTIVE_LOW>;
|
||||
clocks = <&xclk>;
|
||||
|
||||
port {
|
||||
ov772x_0: endpoint {
|
||||
bus-type = <5>;
|
||||
vsync-active = <0>;
|
||||
hsync-active = <0>;
|
||||
pclk-sample = <0>;
|
||||
bus-width = <8>;
|
||||
data-shift = <0>;
|
||||
remote-endpoint = <&vcap1_in0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
118
bindings/media/i2c/ovti,ov8865.yaml
Normal file
118
bindings/media/i2c/ovti,ov8865.yaml
Normal file
@@ -0,0 +1,118 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/ovti,ov8865.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: OmniVision OV8865 Image Sensor Device Tree Bindings
|
||||
|
||||
maintainers:
|
||||
- Paul Kocialkowski <paul.kocialkowski@bootlin.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ovti,ov8865
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: EXTCLK Clock
|
||||
|
||||
assigned-clocks:
|
||||
maxItems: 1
|
||||
|
||||
assigned-clock-rates:
|
||||
maxItems: 1
|
||||
|
||||
dvdd-supply:
|
||||
description: Digital Domain Power Supply
|
||||
|
||||
avdd-supply:
|
||||
description: Analog Domain Power Supply
|
||||
|
||||
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: 4
|
||||
|
||||
required:
|
||||
- data-lanes
|
||||
- link-frequencies
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- assigned-clocks
|
||||
- assigned-clock-rates
|
||||
- dvdd-supply
|
||||
- avdd-supply
|
||||
- dovdd-supply
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/sun8i-a83t-ccu.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
i2c2 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ov8865: camera@36 {
|
||||
compatible = "ovti,ov8865";
|
||||
reg = <0x36>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&csi_mclk_pin>;
|
||||
|
||||
clocks = <&ccu CLK_CSI_MCLK>;
|
||||
assigned-clocks = <&ccu CLK_CSI_MCLK>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
|
||||
avdd-supply = <®_ov8865_avdd>;
|
||||
dovdd-supply = <®_ov8865_dovdd>;
|
||||
dvdd-supply = <®_ov8865_dvdd>;
|
||||
|
||||
powerdown-gpios = <&pio 4 17 GPIO_ACTIVE_LOW>; /* PE17 */
|
||||
reset-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>; /* PE16 */
|
||||
|
||||
port {
|
||||
ov8865_out_mipi_csi2: endpoint {
|
||||
data-lanes = <1 2 3 4>;
|
||||
link-frequencies = /bits/ 64 <360000000>;
|
||||
|
||||
remote-endpoint = <&mipi_csi2_in_ov8865>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
91
bindings/media/i2c/ovti,ov9282.yaml
Normal file
91
bindings/media/i2c/ovti,ov9282.yaml
Normal file
@@ -0,0 +1,91 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright (C) 2021 Intel Corporation
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/ovti,ov9282.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: OmniVision OV9282 Sensor
|
||||
|
||||
maintainers:
|
||||
- Paul J. Murphy <paul.j.murphy@intel.com>
|
||||
- Daniele Alessandrelli <daniele.alessandrelli@intel.com>
|
||||
|
||||
description:
|
||||
OV9282 sensor is an OmniVision black & white CMOS active pixel digital image
|
||||
sensor with an active array size of 1296H x 816V. It is programmable through
|
||||
I2C interface. The I2C client address is fixed to 0x60/0x70 as per sensor data
|
||||
sheet. Image data is sent through MIPI CSI-2.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ovti,ov9282
|
||||
reg:
|
||||
description: I2C address
|
||||
maxItems: 1
|
||||
|
||||
assigned-clocks: true
|
||||
assigned-clock-parents: true
|
||||
assigned-clock-rates: true
|
||||
|
||||
clocks:
|
||||
description: Clock frequency from 6 to 27MHz
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
description: Reference to the GPIO connected to the XCLR pin, if any.
|
||||
maxItems: 1
|
||||
|
||||
port:
|
||||
additionalProperties: false
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
data-lanes: true
|
||||
link-frequencies: true
|
||||
|
||||
required:
|
||||
- data-lanes
|
||||
- link-frequencies
|
||||
|
||||
required:
|
||||
- endpoint
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
camera@60 {
|
||||
compatible = "ovti,ov9282";
|
||||
reg = <0x60>;
|
||||
clocks = <&ov9282_clk>;
|
||||
|
||||
assigned-clocks = <&ov9282_clk>;
|
||||
assigned-clock-parents = <&ov9282_clk_parent>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
|
||||
port {
|
||||
ov9282: endpoint {
|
||||
remote-endpoint = <&cam>;
|
||||
data-lanes = <1 2>;
|
||||
link-frequencies = /bits/ 64 <800000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
19
bindings/media/i2c/panasonic,amg88xx.txt
Normal file
19
bindings/media/i2c/panasonic,amg88xx.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
* Panasonic AMG88xx
|
||||
|
||||
The Panasonic family of AMG88xx Grid-Eye sensors allow recording
|
||||
8x8 10Hz video which consists of thermal datapoints
|
||||
|
||||
Required Properties:
|
||||
- compatible : Must be "panasonic,amg88xx"
|
||||
- reg : i2c address of the device
|
||||
|
||||
Example:
|
||||
|
||||
i2c0@1c22000 {
|
||||
...
|
||||
amg88xx@69 {
|
||||
compatible = "panasonic,amg88xx";
|
||||
reg = <0x69>;
|
||||
};
|
||||
...
|
||||
};
|
67
bindings/media/i2c/rda,rda5807.yaml
Normal file
67
bindings/media/i2c/rda,rda5807.yaml
Normal file
@@ -0,0 +1,67 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/rda,rda5807.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Unisoc Communications RDA5807 FM radio receiver
|
||||
|
||||
maintainers:
|
||||
- Paul Cercueil <paul@crapouillou.net>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rda,rda5807
|
||||
|
||||
reg:
|
||||
description: I2C address.
|
||||
maxItems: 1
|
||||
|
||||
power-supply: true
|
||||
|
||||
rda,lnan:
|
||||
description: Use LNAN input port.
|
||||
type: boolean
|
||||
|
||||
rda,lnap:
|
||||
description: Use LNAP input port.
|
||||
type: boolean
|
||||
|
||||
rda,analog-out:
|
||||
description: Enable analog audio output.
|
||||
type: boolean
|
||||
|
||||
rda,i2s-out:
|
||||
description: Enable I2S digital audio output.
|
||||
type: boolean
|
||||
|
||||
rda,lna-microamp:
|
||||
description: LNA working current, in micro-amperes.
|
||||
default: 2500
|
||||
enum: [1800, 2100, 2500, 3000]
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- power-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
radio@11 {
|
||||
compatible = "rda,rda5807";
|
||||
reg = <0x11>;
|
||||
|
||||
power-supply = <&ldo6>;
|
||||
|
||||
rda,lnan;
|
||||
rda,lnap;
|
||||
rda,analog-out;
|
||||
};
|
||||
};
|
125
bindings/media/i2c/sony,imx214.yaml
Normal file
125
bindings/media/i2c/sony,imx214.yaml
Normal file
@@ -0,0 +1,125 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/sony,imx214.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Sony 1/3.06-Inch 13.13MP CMOS Digital Image Sensor
|
||||
|
||||
maintainers:
|
||||
- Ricardo Ribalda <ribalda@kernel.org>
|
||||
|
||||
description: |
|
||||
The Sony IMX214 is a 1/3.06-inch CMOS active pixel digital image sensor with
|
||||
an active array size of 4224H x 3200V. It is programmable through an I2C
|
||||
interface. Image data is sent through MIPI CSI-2, through 2 or 4 lanes at a
|
||||
maximum throughput of 1.2Gbps/lane.
|
||||
|
||||
allOf:
|
||||
- $ref: ../video-interface-devices.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: sony,imx214
|
||||
|
||||
reg:
|
||||
enum:
|
||||
- 0x10
|
||||
- 0x1a
|
||||
|
||||
clocks:
|
||||
description: Reference to the xclk clock.
|
||||
maxItems: 1
|
||||
|
||||
clock-frequency:
|
||||
description: Frequency of the xclk clock in Hz.
|
||||
|
||||
enable-gpios:
|
||||
description: GPIO descriptor for the enable pin.
|
||||
maxItems: 1
|
||||
|
||||
vdddo-supply:
|
||||
description: Chip digital IO regulator (1.8V).
|
||||
|
||||
vdda-supply:
|
||||
description: Chip analog regulator (2.7V).
|
||||
|
||||
vddd-supply:
|
||||
description: Chip digital core regulator (1.12V).
|
||||
|
||||
flash-leds: true
|
||||
lens-focus: true
|
||||
|
||||
port:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
description: |
|
||||
Video output port.
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
data-lanes:
|
||||
anyOf:
|
||||
- items:
|
||||
- const: 1
|
||||
- const: 2
|
||||
- items:
|
||||
- const: 1
|
||||
- const: 2
|
||||
- const: 3
|
||||
- const: 4
|
||||
|
||||
link-frequencies: true
|
||||
|
||||
required:
|
||||
- data-lanes
|
||||
- link-frequencies
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-frequency
|
||||
- enable-gpios
|
||||
- vdddo-supply
|
||||
- vdda-supply
|
||||
- vddd-supply
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
camera-sensor@1a {
|
||||
compatible = "sony,imx214";
|
||||
reg = <0x1a>;
|
||||
vdddo-supply = <&pm8994_lvs1>;
|
||||
vddd-supply = <&camera_vddd_1v12>;
|
||||
vdda-supply = <&pm8994_l17>;
|
||||
lens-focus = <&ad5820>;
|
||||
enable-gpios = <&msmgpio 25 GPIO_ACTIVE_HIGH>;
|
||||
clocks = <&camera_clk>;
|
||||
clock-frequency = <24000000>;
|
||||
|
||||
port {
|
||||
imx214_ep: endpoint {
|
||||
data-lanes = <1 2 3 4>;
|
||||
link-frequencies = /bits/ 64 <480000000>;
|
||||
remote-endpoint = <&csiphy0_ep>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
72
bindings/media/i2c/sony,imx274.yaml
Normal file
72
bindings/media/i2c/sony,imx274.yaml
Normal file
@@ -0,0 +1,72 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/sony,imx274.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Sony 1/2.5-Inch 8.51MP CMOS Digital Image Sensor
|
||||
|
||||
maintainers:
|
||||
- Leon Luo <leonl@leopardimaging.com>
|
||||
|
||||
description: |
|
||||
The Sony IMX274 is a 1/2.5-inch CMOS active pixel digital image sensor with an
|
||||
active array size of 3864H x 2202V. It is programmable through I2C interface.
|
||||
Image data is sent through MIPI CSI-2, which is configured as 4 lanes at 1440
|
||||
Mbps.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: sony,imx274
|
||||
|
||||
reg:
|
||||
const: 0x1a
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: inck
|
||||
|
||||
vana-supply:
|
||||
description: Sensor 2.8 V analog supply.
|
||||
|
||||
vdig-supply:
|
||||
description: Sensor 1.8 V digital core supply.
|
||||
|
||||
vddl-supply:
|
||||
description: Sensor digital IO 1.2 V supply.
|
||||
|
||||
port:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
imx274: camera-sensor@1a {
|
||||
compatible = "sony,imx274";
|
||||
reg = <0x1a>;
|
||||
reset-gpios = <&gpio_sensor 0 0>;
|
||||
|
||||
port {
|
||||
sensor_out: endpoint {
|
||||
remote-endpoint = <&csiss_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
90
bindings/media/i2c/sony,imx334.yaml
Normal file
90
bindings/media/i2c/sony,imx334.yaml
Normal file
@@ -0,0 +1,90 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright (C) 2021 Intel Corporation
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/sony,imx334.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Sony IMX334 Sensor
|
||||
|
||||
maintainers:
|
||||
- Paul J. Murphy <paul.j.murphy@intel.com>
|
||||
- Daniele Alessandrelli <daniele.alessandrelli@intel.com>
|
||||
|
||||
description:
|
||||
IMX334 sensor is a Sony CMOS active pixel digital image sensor with an active
|
||||
array size of 3864H x 2202V. It is programmable through I2C interface. The
|
||||
I2C client address is fixed to 0x1a as per sensor data sheet. Image data is
|
||||
sent through MIPI CSI-2.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: sony,imx334
|
||||
reg:
|
||||
description: I2C address
|
||||
maxItems: 1
|
||||
|
||||
assigned-clocks: true
|
||||
assigned-clock-parents: true
|
||||
assigned-clock-rates: true
|
||||
|
||||
clocks:
|
||||
description: Clock frequency from 6 to 27 MHz, 37.125MHz, 74.25MHz
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
description: Reference to the GPIO connected to the XCLR pin, if any.
|
||||
|
||||
port:
|
||||
additionalProperties: false
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
data-lanes: true
|
||||
link-frequencies: true
|
||||
|
||||
required:
|
||||
- data-lanes
|
||||
- link-frequencies
|
||||
|
||||
required:
|
||||
- endpoint
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
camera@1a {
|
||||
compatible = "sony,imx334";
|
||||
reg = <0x1a>;
|
||||
clocks = <&imx334_clk>;
|
||||
|
||||
assigned-clocks = <&imx334_clk>;
|
||||
assigned-clock-parents = <&imx334_clk_parent>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
|
||||
port {
|
||||
imx334: endpoint {
|
||||
remote-endpoint = <&cam>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
link-frequencies = /bits/ 64 <891000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
91
bindings/media/i2c/sony,imx335.yaml
Normal file
91
bindings/media/i2c/sony,imx335.yaml
Normal file
@@ -0,0 +1,91 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright (C) 2021 Intel Corporation
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/sony,imx335.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Sony IMX335 Sensor
|
||||
|
||||
maintainers:
|
||||
- Paul J. Murphy <paul.j.murphy@intel.com>
|
||||
- Daniele Alessandrelli <daniele.alessandrelli@intel.com>
|
||||
|
||||
description:
|
||||
IMX335 sensor is a Sony CMOS active pixel digital image sensor with an active
|
||||
array size of 2592H x 1944V. It is programmable through I2C interface. The
|
||||
I2C client address is fixed to 0x1a as per sensor data sheet. Image data is
|
||||
sent through MIPI CSI-2.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: sony,imx335
|
||||
reg:
|
||||
description: I2C address
|
||||
maxItems: 1
|
||||
|
||||
assigned-clocks: true
|
||||
assigned-clock-parents: true
|
||||
assigned-clock-rates: true
|
||||
|
||||
clocks:
|
||||
description: Clock frequency from 6 to 27 MHz, 37.125MHz, 74.25MHz
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
description: Reference to the GPIO connected to the XCLR pin, if any.
|
||||
maxItems: 1
|
||||
|
||||
port:
|
||||
additionalProperties: false
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
data-lanes: true
|
||||
link-frequencies: true
|
||||
|
||||
required:
|
||||
- data-lanes
|
||||
- link-frequencies
|
||||
|
||||
required:
|
||||
- endpoint
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
camera@1a {
|
||||
compatible = "sony,imx335";
|
||||
reg = <0x1a>;
|
||||
clocks = <&imx335_clk>;
|
||||
|
||||
assigned-clocks = <&imx335_clk>;
|
||||
assigned-clock-parents = <&imx335_clk_parent>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
|
||||
port {
|
||||
imx335: endpoint {
|
||||
remote-endpoint = <&cam>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
link-frequencies = /bits/ 64 <594000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
100
bindings/media/i2c/sony,imx412.yaml
Normal file
100
bindings/media/i2c/sony,imx412.yaml
Normal file
@@ -0,0 +1,100 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright (C) 2021 Intel Corporation
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/sony,imx412.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Sony IMX412 Sensor
|
||||
|
||||
maintainers:
|
||||
- Paul J. Murphy <paul.j.murphy@intel.com>
|
||||
- Daniele Alessandrelli <daniele.alessandrelli@intel.com>
|
||||
|
||||
description:
|
||||
IMX412 sensor is a Sony CMOS active pixel digital image sensor with an active
|
||||
array size of 4072H x 3176V. It is programmable through I2C interface. The
|
||||
I2C client address is fixed to 0x1a as per sensor data sheet. Image data is
|
||||
sent through MIPI CSI-2.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: sony,imx412
|
||||
reg:
|
||||
description: I2C address
|
||||
maxItems: 1
|
||||
|
||||
assigned-clocks: true
|
||||
assigned-clock-parents: true
|
||||
assigned-clock-rates: true
|
||||
|
||||
clocks:
|
||||
description: Clock frequency 6MHz, 12MHz, 18MHz, 24MHz or 27MHz
|
||||
maxItems: 1
|
||||
|
||||
dovdd-supply:
|
||||
description: Interface power supply.
|
||||
|
||||
avdd-supply:
|
||||
description: Analog power supply.
|
||||
|
||||
dvdd-supply:
|
||||
description: Digital power supply.
|
||||
|
||||
reset-gpios:
|
||||
description: Reference to the GPIO connected to the XCLR pin, if any.
|
||||
maxItems: 1
|
||||
|
||||
port:
|
||||
additionalProperties: false
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
data-lanes: true
|
||||
link-frequencies: true
|
||||
|
||||
required:
|
||||
- data-lanes
|
||||
- link-frequencies
|
||||
|
||||
required:
|
||||
- endpoint
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
camera@1a {
|
||||
compatible = "sony,imx412";
|
||||
reg = <0x1a>;
|
||||
clocks = <&imx412_clk>;
|
||||
|
||||
assigned-clocks = <&imx412_clk>;
|
||||
assigned-clock-parents = <&imx412_clk_parent>;
|
||||
assigned-clock-rates = <24000000>;
|
||||
|
||||
port {
|
||||
imx412: endpoint {
|
||||
remote-endpoint = <&cam>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
link-frequencies = /bits/ 64 <600000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
82
bindings/media/i2c/st,st-mipid02.txt
Normal file
82
bindings/media/i2c/st,st-mipid02.txt
Normal file
@@ -0,0 +1,82 @@
|
||||
STMicroelectronics MIPID02 CSI-2 to PARALLEL bridge
|
||||
|
||||
MIPID02 has two CSI-2 input ports, only one of those ports can be active at a
|
||||
time. Active port input stream will be de-serialized and its content outputted
|
||||
through PARALLEL output port.
|
||||
CSI-2 first input port is a dual lane 800Mbps per lane whereas CSI-2 second
|
||||
input port is a single lane 800Mbps. Both ports support clock and data lane
|
||||
polarity swap. First port also supports data lane swap.
|
||||
PARALLEL output port has a maximum width of 12 bits.
|
||||
Supported formats are RAW6, RAW7, RAW8, RAW10, RAW12, RGB565, RGB888, RGB444,
|
||||
YUV420 8-bit, YUV422 8-bit and YUV420 10-bit.
|
||||
|
||||
Required Properties:
|
||||
- compatible: shall be "st,st-mipid02"
|
||||
- clocks: reference to the xclk input clock.
|
||||
- clock-names: shall be "xclk".
|
||||
- VDDE-supply: sensor digital IO supply. Must be 1.8 volts.
|
||||
- VDDIN-supply: sensor internal regulator supply. Must be 1.8 volts.
|
||||
|
||||
Optional Properties:
|
||||
- reset-gpios: reference to the GPIO connected to the xsdn pin, if any.
|
||||
This is an active low signal to the mipid02.
|
||||
|
||||
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 first input port
|
||||
1 CSI-2 second input port
|
||||
2 PARALLEL output
|
||||
|
||||
Endpoint node required property for CSI-2 connection is:
|
||||
- data-lanes: shall be <1> for Port 1. for Port 0 dual-lane operation shall be
|
||||
<1 2> or <2 1>. For Port 0 single-lane operation shall be <1> or <2>.
|
||||
Endpoint node optional property for CSI-2 connection is:
|
||||
- lane-polarities: any lane can be inverted or not.
|
||||
|
||||
Endpoint node required property for PARALLEL connection is:
|
||||
- bus-width: shall be set to <6>, <7>, <8>, <10> or <12>.
|
||||
Endpoint node optional properties for PARALLEL connection are:
|
||||
- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
|
||||
LOW being the default.
|
||||
- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.
|
||||
LOW being the default.
|
||||
|
||||
Example:
|
||||
|
||||
mipid02: csi2rx@14 {
|
||||
compatible = "st,st-mipid02";
|
||||
reg = <0x14>;
|
||||
status = "okay";
|
||||
clocks = <&clk_ext_camera_12>;
|
||||
clock-names = "xclk";
|
||||
VDDE-supply = <&vdd>;
|
||||
VDDIN-supply = <&vdd>;
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
ep0: endpoint {
|
||||
data-lanes = <1 2>;
|
||||
remote-endpoint = <&mipi_csi2_in>;
|
||||
};
|
||||
};
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
|
||||
ep2: endpoint {
|
||||
bus-width = <8>;
|
||||
hsync-active = <0>;
|
||||
vsync-active = <0>;
|
||||
remote-endpoint = <¶llel_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
48
bindings/media/i2c/tc358743.txt
Normal file
48
bindings/media/i2c/tc358743.txt
Normal file
@@ -0,0 +1,48 @@
|
||||
* Toshiba TC358743 HDMI-RX to MIPI CSI2-TX Bridge
|
||||
|
||||
The Toshiba TC358743 HDMI-RX to MIPI CSI2-TX (H2C) is a bridge that converts
|
||||
a HDMI stream to MIPI CSI-2 TX. It is programmable through I2C.
|
||||
|
||||
Required Properties:
|
||||
|
||||
- compatible: value should be "toshiba,tc358743"
|
||||
- clocks, clock-names: should contain a phandle link to the reference clock
|
||||
source, the clock input is named "refclk".
|
||||
|
||||
Optional Properties:
|
||||
|
||||
- reset-gpios: gpio phandle GPIO connected to the reset pin
|
||||
- interrupts: GPIO connected to the interrupt pin
|
||||
- data-lanes: should be <1 2 3 4> for four-lane operation,
|
||||
or <1 2> for two-lane operation
|
||||
- clock-lanes: should be <0>
|
||||
- clock-noncontinuous: Presence of this boolean property decides whether the
|
||||
MIPI CSI-2 clock is continuous or non-continuous.
|
||||
- link-frequencies: List of allowed link frequencies in Hz. Each frequency is
|
||||
expressed as a 64-bit big-endian integer. The frequency
|
||||
is half of the bps per lane due to DDR transmission.
|
||||
|
||||
For further information on the MIPI CSI-2 endpoint node properties, see
|
||||
Documentation/devicetree/bindings/media/video-interfaces.txt.
|
||||
|
||||
Example:
|
||||
|
||||
tc358743@f {
|
||||
compatible = "toshiba,tc358743";
|
||||
reg = <0x0f>;
|
||||
clocks = <&hdmi_osc>;
|
||||
clock-names = "refclk";
|
||||
reset-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>;
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
port {
|
||||
tc358743_out: endpoint {
|
||||
remote-endpoint = <&mipi_csi2_in>;
|
||||
data-lanes = <1 2 3 4>;
|
||||
clock-lanes = <0>;
|
||||
clock-noncontinuous;
|
||||
link-frequencies = /bits/ 64 <297000000>;
|
||||
};
|
||||
};
|
||||
};
|
178
bindings/media/i2c/tda1997x.txt
Normal file
178
bindings/media/i2c/tda1997x.txt
Normal file
@@ -0,0 +1,178 @@
|
||||
Device-Tree bindings for the NXP TDA1997x HDMI receiver
|
||||
|
||||
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.
|
||||
|
||||
Required Properties:
|
||||
- compatible :
|
||||
- "nxp,tda19971" for the TDA19971
|
||||
- "nxp,tda19973" for the TDA19973
|
||||
- reg : I2C slave address
|
||||
- interrupts : The interrupt number
|
||||
- DOVDD-supply : Digital I/O supply
|
||||
- DVDD-supply : Digital Core supply
|
||||
- AVDD-supply : Analog supply
|
||||
- nxp,vidout-portcfg : array of pairs mapping VP output pins to pin groups.
|
||||
|
||||
Optional Properties:
|
||||
- nxp,audout-format : DAI bus format: "i2s" or "spdif".
|
||||
- nxp,audout-width : width of audio output data bus (1-4).
|
||||
- nxp,audout-layout : data layout (0=AP0 used, 1=AP0/AP1/AP2/AP3 used).
|
||||
- nxp,audout-mclk-fs : Multiplication factor between stream rate and codec
|
||||
mclk.
|
||||
|
||||
The port node shall contain one endpoint child 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:
|
||||
The following three properties are defined in video-interfaces.txt and
|
||||
are valid for the output parallel bus endpoint:
|
||||
- hsync-active: Horizontal synchronization polarity. Defaults to active high.
|
||||
- vsync-active: Vertical synchronization polarity. Defaults to active high.
|
||||
- data-active: Data polarity. Defaults to active high.
|
||||
|
||||
Examples:
|
||||
- VP[15:0] connected to IMX6 CSI_DATA[19:4] for 16bit YUV422
|
||||
16bit I2S layout0 with a 128*fs clock (A_WS, AP0, A_CLK pins)
|
||||
hdmi-receiver@48 {
|
||||
compatible = "nxp,tda19971";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_tda1997x>;
|
||||
reg = <0x48>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
|
||||
DOVDD-supply = <®_3p3v>;
|
||||
AVDD-supply = <®_1p8v>;
|
||||
DVDD-supply = <®_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 {
|
||||
tda1997x_to_ipu1_csi0_mux: endpoint {
|
||||
remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
|
||||
bus-width = <16>;
|
||||
hsync-active = <1>;
|
||||
vsync-active = <1>;
|
||||
data-active = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
- VP[15:8] connected to IMX6 CSI_DATA[19:12] for 8bit BT656
|
||||
16bit I2S layout0 with a 128*fs clock (A_WS, AP0, A_CLK pins)
|
||||
hdmi-receiver@48 {
|
||||
compatible = "nxp,tda19971";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_tda1997x>;
|
||||
reg = <0x48>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
|
||||
DOVDD-supply = <®_3p3v>;
|
||||
AVDD-supply = <®_1p8v>;
|
||||
DVDD-supply = <®_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 {
|
||||
tda1997x_to_ipu1_csi0_mux: endpoint {
|
||||
remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
|
||||
bus-width = <16>;
|
||||
hsync-active = <1>;
|
||||
vsync-active = <1>;
|
||||
data-active = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
- VP[15:8] connected to IMX6 CSI_DATA[19:12] for 8bit BT656
|
||||
16bit I2S layout0 with a 128*fs clock (A_WS, AP0, A_CLK pins)
|
||||
hdmi-receiver@48 {
|
||||
compatible = "nxp,tda19971";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_tda1997x>;
|
||||
reg = <0x48>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
|
||||
DOVDD-supply = <®_3p3v>;
|
||||
AVDD-supply = <®_1p8v>;
|
||||
DVDD-supply = <®_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 BT656 mode outputs YCbCr[11:4] across 8bits over
|
||||
* 2 pixclk cycles.
|
||||
*/
|
||||
nxp,vidout-portcfg =
|
||||
/* YCbCr[11:8]<->VP[15:12]<->CSI_DATA[19:16] */
|
||||
< TDA1997X_VP24_V15_12 TDA1997X_R_CR_CBCR_11_8 >,
|
||||
/* YCbCr[7:4]<->VP[11:08]<->CSI_DATA[15:12] */
|
||||
< TDA1997X_VP24_V11_08 TDA1997X_R_CR_CBCR_7_4 >,
|
||||
|
||||
port {
|
||||
tda1997x_to_ipu1_csi0_mux: endpoint {
|
||||
remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
|
||||
bus-width = <16>;
|
||||
hsync-active = <1>;
|
||||
vsync-active = <1>;
|
||||
data-active = <1>;
|
||||
};
|
||||
};
|
||||
};
|
19
bindings/media/i2c/ths8200.txt
Normal file
19
bindings/media/i2c/ths8200.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
* Texas Instruments THS8200 video encoder
|
||||
|
||||
The ths8200 device is a digital to analog converter used in DVD players, video
|
||||
recorders, set-top boxes.
|
||||
|
||||
Required Properties :
|
||||
- compatible : value must be "ti,ths8200"
|
||||
|
||||
Example:
|
||||
|
||||
i2c0@1c22000 {
|
||||
...
|
||||
...
|
||||
ths8200@5c {
|
||||
compatible = "ti,ths8200";
|
||||
reg = <0x5c>;
|
||||
};
|
||||
...
|
||||
};
|
55
bindings/media/i2c/toshiba,et8ek8.txt
Normal file
55
bindings/media/i2c/toshiba,et8ek8.txt
Normal file
@@ -0,0 +1,55 @@
|
||||
Toshiba et8ek8 5MP sensor
|
||||
|
||||
Toshiba et8ek8 5MP sensor is an image sensor found in Nokia N900 device
|
||||
|
||||
More detailed documentation can be found in
|
||||
Documentation/devicetree/bindings/media/video-interfaces.txt .
|
||||
|
||||
|
||||
Mandatory properties
|
||||
--------------------
|
||||
|
||||
- compatible: "toshiba,et8ek8"
|
||||
- reg: I2C address (0x3e, or an alternative address)
|
||||
- vana-supply: Analogue voltage supply (VANA), 2.8 volts
|
||||
- clocks: External clock to the sensor
|
||||
- clock-frequency: Frequency of the external clock to the sensor. Camera
|
||||
driver will set this frequency on the external clock. The clock frequency is
|
||||
a pre-determined frequency known to be suitable to the board.
|
||||
- reset-gpios: XSHUTDOWN GPIO. The XSHUTDOWN signal is active low. The sensor
|
||||
is in hardware standby mode when the signal is in the low state.
|
||||
|
||||
|
||||
Optional properties
|
||||
-------------------
|
||||
|
||||
- flash-leds: See ../video-interfaces.txt
|
||||
- lens-focus: See ../video-interfaces.txt
|
||||
|
||||
|
||||
Endpoint node mandatory properties
|
||||
----------------------------------
|
||||
|
||||
- remote-endpoint: A phandle to the bus receiver's endpoint node.
|
||||
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
&i2c3 {
|
||||
clock-frequency = <400000>;
|
||||
|
||||
cam1: camera@3e {
|
||||
compatible = "toshiba,et8ek8";
|
||||
reg = <0x3e>;
|
||||
vana-supply = <&vaux4>;
|
||||
clocks = <&isp 0>;
|
||||
clock-frequency = <9600000>;
|
||||
reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
|
||||
port {
|
||||
csi_cam1: endpoint {
|
||||
remote-endpoint = <&csi_out1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
44
bindings/media/i2c/tvp514x.txt
Normal file
44
bindings/media/i2c/tvp514x.txt
Normal file
@@ -0,0 +1,44 @@
|
||||
* Texas Instruments TVP514x video decoder
|
||||
|
||||
The TVP5146/TVP5146m2/TVP5147/TVP5147m1 device is high quality, single-chip
|
||||
digital video decoder that digitizes and decodes all popular baseband analog
|
||||
video formats into digital video component. The tvp514x decoder supports analog-
|
||||
to-digital (A/D) conversion of component RGB and YPbPr signals as well as A/D
|
||||
conversion and decoding of NTSC, PAL and SECAM composite and S-video into
|
||||
component YCbCr.
|
||||
|
||||
Required Properties :
|
||||
- compatible : value should be either one among the following
|
||||
(a) "ti,tvp5146" for tvp5146 decoder.
|
||||
(b) "ti,tvp5146m2" for tvp5146m2 decoder.
|
||||
(c) "ti,tvp5147" for tvp5147 decoder.
|
||||
(d) "ti,tvp5147m1" for tvp5147m1 decoder.
|
||||
|
||||
- hsync-active: HSYNC Polarity configuration for endpoint.
|
||||
|
||||
- vsync-active: VSYNC Polarity configuration for endpoint.
|
||||
|
||||
- pclk-sample: Clock polarity of the endpoint.
|
||||
|
||||
For further reading on port node refer to Documentation/devicetree/bindings/
|
||||
media/video-interfaces.txt.
|
||||
|
||||
Example:
|
||||
|
||||
i2c0@1c22000 {
|
||||
...
|
||||
...
|
||||
tvp514x@5c {
|
||||
compatible = "ti,tvp5146";
|
||||
reg = <0x5c>;
|
||||
|
||||
port {
|
||||
tvp514x_1: endpoint {
|
||||
hsync-active = <1>;
|
||||
vsync-active = <1>;
|
||||
pclk-sample = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
||||
};
|
157
bindings/media/i2c/tvp5150.txt
Normal file
157
bindings/media/i2c/tvp5150.txt
Normal file
@@ -0,0 +1,157 @@
|
||||
* Texas Instruments TVP5150 and TVP5151 video decoders
|
||||
|
||||
The TVP5150 and TVP5151 are video decoders that convert baseband NTSC and PAL
|
||||
(and also SECAM in the TVP5151 case) video signals to either 8-bit 4:2:2 YUV
|
||||
with discrete syncs or 8-bit ITU-R BT.656 with embedded syncs output formats.
|
||||
|
||||
Required Properties:
|
||||
====================
|
||||
- compatible: Value must be "ti,tvp5150".
|
||||
- reg: I2C slave address.
|
||||
|
||||
Optional Properties:
|
||||
====================
|
||||
- pdn-gpios: Phandle for the GPIO connected to the PDN pin, if any.
|
||||
- reset-gpios: Phandle for the GPIO connected to the RESETB pin, if any.
|
||||
|
||||
The device node must contain one 'port' child node per device physical 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
|
||||
|
||||
Name Type Port
|
||||
--------------------------------------
|
||||
AIP1A sink 0
|
||||
AIP1B sink 1
|
||||
Y-OUT src 2
|
||||
|
||||
The device node must contain at least one sink port and the src port. Each input
|
||||
port must be linked to an endpoint defined in [1]. The port/connector layout is
|
||||
as follows
|
||||
|
||||
tvp-5150 port@0 (AIP1A)
|
||||
endpoint@0 -----------> Comp0-Con port
|
||||
endpoint@1 ------+----> Svideo-Con port
|
||||
tvp-5150 port@1 (AIP1B) |
|
||||
endpoint@1 ------+
|
||||
endpoint@0 -----------> Comp1-Con port
|
||||
tvp-5150 port@2
|
||||
endpoint (video bitstream output at YOUT[0-7] parallel bus)
|
||||
|
||||
Required Endpoint Properties for parallel synchronization on output port:
|
||||
=========================================================================
|
||||
|
||||
- hsync-active: Active state of the HSYNC signal. Must be <1> (HIGH).
|
||||
- vsync-active: Active state of the VSYNC signal. Must be <1> (HIGH).
|
||||
- field-even-active: Field signal level during the even field data
|
||||
transmission. Must be <0>.
|
||||
|
||||
Note: Do not specify any of these properties if you want to use the embedded
|
||||
BT.656 synchronization.
|
||||
|
||||
Optional Connector Properties:
|
||||
==============================
|
||||
|
||||
- sdtv-standards: Set the possible signals to which the hardware tries to lock
|
||||
instead of using the autodetection mechnism. Please look at
|
||||
[1] for more information.
|
||||
|
||||
[1] Documentation/devicetree/bindings/display/connector/analog-tv-connector.yaml.
|
||||
|
||||
Example - three input sources:
|
||||
#include <dt-bindings/display/sdtv-standards.h>
|
||||
|
||||
comp_connector_0 {
|
||||
compatible = "composite-video-connector";
|
||||
label = "Composite0";
|
||||
sdtv-standards = <SDTV_STD_PAL_M>; /* limit to pal-m signals */
|
||||
|
||||
port {
|
||||
composite0_to_tvp5150: endpoint {
|
||||
remote-endpoint = <&tvp5150_to_composite0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
comp_connector_1 {
|
||||
compatible = "composite-video-connector";
|
||||
label = "Composite1";
|
||||
sdtv-standards = <SDTV_STD_NTSC_M>; /* limit to ntsc-m signals */
|
||||
|
||||
port {
|
||||
composite1_to_tvp5150: endpoint {
|
||||
remote-endpoint = <&tvp5150_to_composite1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
svideo_connector {
|
||||
compatible = "svideo-connector";
|
||||
label = "S-Video";
|
||||
|
||||
port {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
svideo_luma_to_tvp5150: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&tvp5150_to_svideo_luma>;
|
||||
};
|
||||
|
||||
svideo_chroma_to_tvp5150: endpoint@1 {
|
||||
reg = <1>;
|
||||
remote-endpoint = <&tvp5150_to_svideo_chroma>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
tvp5150@5c {
|
||||
compatible = "ti,tvp5150";
|
||||
reg = <0x5c>;
|
||||
pdn-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>;
|
||||
reset-gpios = <&gpio6 7 GPIO_ACTIVE_LOW>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
|
||||
tvp5150_to_composite0: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&composite0_to_tvp5150>;
|
||||
};
|
||||
|
||||
tvp5150_to_svideo_luma: endpoint@1 {
|
||||
reg = <1>;
|
||||
remote-endpoint = <&svideo_luma_to_tvp5150>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
|
||||
tvp5150_to_composite1: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&composite1_to_tvp5150>;
|
||||
};
|
||||
|
||||
tvp5150_to_svideo_chroma: endpoint@1 {
|
||||
reg = <1>;
|
||||
remote-endpoint = <&svideo_chroma_to_tvp5150>;
|
||||
};
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
|
||||
tvp5150_1: endpoint {
|
||||
remote-endpoint = <&ccdc_ep>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
53
bindings/media/i2c/tvp7002.txt
Normal file
53
bindings/media/i2c/tvp7002.txt
Normal file
@@ -0,0 +1,53 @@
|
||||
* Texas Instruments TV7002 video decoder
|
||||
|
||||
The TVP7002 device supports digitizing of video and graphics signal in RGB and
|
||||
YPbPr color space.
|
||||
|
||||
Required Properties :
|
||||
- compatible : Must be "ti,tvp7002"
|
||||
|
||||
Optional Properties:
|
||||
- hsync-active: HSYNC Polarity configuration for the bus. Default value when
|
||||
this property is not specified is <0>.
|
||||
|
||||
- vsync-active: VSYNC Polarity configuration for the bus. Default value when
|
||||
this property is not specified is <0>.
|
||||
|
||||
- pclk-sample: Clock polarity of the bus. Default value when this property is
|
||||
not specified is <0>.
|
||||
|
||||
- sync-on-green-active: Active state of Sync-on-green signal property of the
|
||||
endpoint.
|
||||
0 = Normal Operation (Active Low, Default)
|
||||
1 = Inverted operation
|
||||
|
||||
- field-even-active: Active-high Field ID output polarity control of the bus.
|
||||
Under normal operation, the field ID output is set to logic 1 for an odd field
|
||||
(field 1) and set to logic 0 for an even field (field 0).
|
||||
0 = Normal Operation (Active Low, Default)
|
||||
1 = FID output polarity inverted
|
||||
|
||||
For further reading of port node refer Documentation/devicetree/bindings/media/
|
||||
video-interfaces.txt.
|
||||
|
||||
Example:
|
||||
|
||||
i2c0@1c22000 {
|
||||
...
|
||||
...
|
||||
tvp7002@5c {
|
||||
compatible = "ti,tvp7002";
|
||||
reg = <0x5c>;
|
||||
|
||||
port {
|
||||
tvp7002_1: endpoint {
|
||||
hsync-active = <1>;
|
||||
vsync-active = <1>;
|
||||
pclk-sample = <0>;
|
||||
sync-on-green-active = <1>;
|
||||
field-even-active = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
||||
};
|
34
bindings/media/img-ir-rev1.txt
Normal file
34
bindings/media/img-ir-rev1.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
* ImgTec Infrared (IR) decoder version 1
|
||||
|
||||
This binding is for Imagination Technologies' Infrared decoder block,
|
||||
specifically major revision 1.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "img,ir-rev1"
|
||||
- reg: Physical base address of the controller and length of
|
||||
memory mapped region.
|
||||
- interrupts: The interrupt specifier to the cpu.
|
||||
|
||||
Optional properties:
|
||||
- clocks: List of clock specifiers as described in standard
|
||||
clock bindings.
|
||||
Up to 3 clocks may be specified in the following order:
|
||||
1st: Core clock (defaults to 32.768KHz if omitted).
|
||||
2nd: System side (fast) clock.
|
||||
3rd: Power modulation clock.
|
||||
- clock-names: List of clock names corresponding to the clocks
|
||||
specified in the clocks property.
|
||||
Accepted clock names are:
|
||||
"core": Core clock.
|
||||
"sys": System clock.
|
||||
"mod": Power modulation clock.
|
||||
|
||||
Example:
|
||||
|
||||
ir@2006200 {
|
||||
compatible = "img,ir-rev1";
|
||||
reg = <0x02006200 0x100>;
|
||||
interrupts = <29 4>;
|
||||
clocks = <&clk_32khz>;
|
||||
clock-names = "core";
|
||||
};
|
53
bindings/media/imx.txt
Normal file
53
bindings/media/imx.txt
Normal file
@@ -0,0 +1,53 @@
|
||||
Freescale i.MX Media Video Device
|
||||
=================================
|
||||
|
||||
Video Media Controller node
|
||||
---------------------------
|
||||
|
||||
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.
|
||||
|
||||
Required properties:
|
||||
- compatible : "fsl,imx-capture-subsystem";
|
||||
- ports : Should contain a list of phandles pointing to camera
|
||||
sensor interface ports of IPU devices
|
||||
|
||||
example:
|
||||
|
||||
capture-subsystem {
|
||||
compatible = "fsl,imx-capture-subsystem";
|
||||
ports = <&ipu1_csi0>, <&ipu1_csi1>;
|
||||
};
|
||||
|
||||
|
||||
mipi_csi2 node
|
||||
--------------
|
||||
|
||||
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.
|
||||
|
||||
Required properties:
|
||||
- compatible : "fsl,imx6-mipi-csi2";
|
||||
- reg : physical base address and length of the register set;
|
||||
- clocks : the MIPI CSI-2 receiver requires three clocks: hsi_tx
|
||||
(the D-PHY clock), video_27m (D-PHY PLL reference
|
||||
clock), and eim_podf;
|
||||
- clock-names : must contain "dphy", "ref", "pix";
|
||||
- port@* : five port nodes must exist, containing endpoints
|
||||
connecting to the source and sink devices according to
|
||||
of_graph bindings. The first port is an input port,
|
||||
connecting with a MIPI CSI-2 source, and 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.
|
||||
|
||||
Optional properties:
|
||||
- interrupts : must contain two level-triggered interrupts,
|
||||
in order: 100 and 101;
|
94
bindings/media/marvell,mmp2-ccic.yaml
Normal file
94
bindings/media/marvell,mmp2-ccic.yaml
Normal file
@@ -0,0 +1,94 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
# Copyright 2019,2020 Lubomir Rintel <lkundrak@v3.sk>
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/marvell,mmp2-ccic.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Marvell MMP2 camera host interface bindings
|
||||
|
||||
maintainers:
|
||||
- Lubomir Rintel <lkundrak@v3.sk>
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: '^camera@[a-f0-9]+$'
|
||||
|
||||
compatible:
|
||||
const: marvell,mmp2-ccic
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
port:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
hsync-active: true
|
||||
vsync-active: true
|
||||
pclk-sample: true
|
||||
bus-type: true
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: AXI bus interface clock
|
||||
- description: Peripheral clock
|
||||
- description: Parallel video bus interface clock
|
||||
|
||||
clock-names:
|
||||
const: axi
|
||||
|
||||
'#clock-cells':
|
||||
const: 0
|
||||
|
||||
clock-output-names:
|
||||
const: mclk
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/marvell,mmp2.h>
|
||||
#include <dt-bindings/power/marvell,mmp2.h>
|
||||
|
||||
camera@d420a000 {
|
||||
compatible = "marvell,mmp2-ccic";
|
||||
reg = <0xd420a000 0x800>;
|
||||
interrupts = <42>;
|
||||
clocks = <&soc_clocks MMP2_CLK_CCIC0>;
|
||||
clock-names = "axi";
|
||||
#clock-cells = <0>;
|
||||
clock-output-names = "mclk";
|
||||
power-domains = <&soc_clocks MMP3_POWER_DOMAIN_CAMERA>;
|
||||
|
||||
port {
|
||||
camera0_0: endpoint {
|
||||
remote-endpoint = <&ov7670_0>;
|
||||
bus-type = <5>; /* Parallel */
|
||||
hsync-active = <1>; /* Active high */
|
||||
vsync-active = <1>; /* Active high */
|
||||
pclk-sample = <0>; /* Falling */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
95
bindings/media/mediatek,mdp3-rdma.yaml
Normal file
95
bindings/media/mediatek,mdp3-rdma.yaml
Normal file
@@ -0,0 +1,95 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/mediatek,mdp3-rdma.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek Read Direct Memory Access
|
||||
|
||||
maintainers:
|
||||
- Matthias Brugger <matthias.bgg@gmail.com>
|
||||
- Moudy Ho <moudy.ho@mediatek.com>
|
||||
|
||||
description: |
|
||||
MediaTek Read Direct Memory Access(RDMA) component used to do read DMA.
|
||||
It contains one line buffer to store the sufficient pixel data, and
|
||||
must be siblings to the central MMSYS_CONFIG node.
|
||||
For a description of the MMSYS_CONFIG binding, see
|
||||
Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
|
||||
for details.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: mediatek,mt8183-mdp3-rdma
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
mediatek,gce-client-reg:
|
||||
$ref: '/schemas/types.yaml#/definitions/phandle-array'
|
||||
items:
|
||||
items:
|
||||
- description: phandle of GCE
|
||||
- description: GCE subsys id
|
||||
- description: register offset
|
||||
- description: register size
|
||||
description: The register of client driver can be configured by gce with
|
||||
4 arguments defined in this property. Each GCE subsys id is mapping to
|
||||
a client defined in the header include/dt-bindings/gce/<chip>-gce.h.
|
||||
|
||||
mediatek,gce-events:
|
||||
description:
|
||||
The event id which is mapping to the specific hardware event signal
|
||||
to gce. The event id is defined in the gce header
|
||||
include/dt-bindings/gce/<chip>-gce.h of each chips.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: RDMA clock
|
||||
- description: RSZ clock
|
||||
|
||||
iommus:
|
||||
maxItems: 1
|
||||
|
||||
mboxes:
|
||||
items:
|
||||
- description: used for 1st data pipe from RDMA
|
||||
- description: used for 2nd data pipe from RDMA
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- mediatek,gce-client-reg
|
||||
- mediatek,gce-events
|
||||
- power-domains
|
||||
- clocks
|
||||
- iommus
|
||||
- mboxes
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mt8183-clk.h>
|
||||
#include <dt-bindings/gce/mt8183-gce.h>
|
||||
#include <dt-bindings/power/mt8183-power.h>
|
||||
#include <dt-bindings/memory/mt8183-larb-port.h>
|
||||
|
||||
mdp3_rdma0: mdp3-rdma0@14001000 {
|
||||
compatible = "mediatek,mt8183-mdp3-rdma";
|
||||
reg = <0x14001000 0x1000>;
|
||||
mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x1000 0x1000>;
|
||||
mediatek,gce-events = <CMDQ_EVENT_MDP_RDMA0_SOF>,
|
||||
<CMDQ_EVENT_MDP_RDMA0_EOF>;
|
||||
power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
|
||||
clocks = <&mmsys CLK_MM_MDP_RDMA0>,
|
||||
<&mmsys CLK_MM_MDP_RSZ1>;
|
||||
iommus = <&iommu>;
|
||||
mboxes = <&gce 20 CMDQ_THR_PRIO_LOWEST>,
|
||||
<&gce 21 CMDQ_THR_PRIO_LOWEST>;
|
||||
};
|
77
bindings/media/mediatek,mdp3-rsz.yaml
Normal file
77
bindings/media/mediatek,mdp3-rsz.yaml
Normal file
@@ -0,0 +1,77 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/mediatek,mdp3-rsz.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek Resizer
|
||||
|
||||
maintainers:
|
||||
- Matthias Brugger <matthias.bgg@gmail.com>
|
||||
- Moudy Ho <moudy.ho@mediatek.com>
|
||||
|
||||
description: |
|
||||
One of Media Data Path 3 (MDP3) components used to do frame resizing.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- mediatek,mt8183-mdp3-rsz
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
mediatek,gce-client-reg:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
items:
|
||||
items:
|
||||
- description: phandle of GCE
|
||||
- description: GCE subsys id
|
||||
- description: register offset
|
||||
- description: register size
|
||||
description: The register of client driver can be configured by gce with
|
||||
4 arguments defined in this property. Each GCE subsys id is mapping to
|
||||
a client defined in the header include/dt-bindings/gce/<chip>-gce.h.
|
||||
|
||||
mediatek,gce-events:
|
||||
description:
|
||||
The event id which is mapping to the specific hardware event signal
|
||||
to gce. The event id is defined in the gce header
|
||||
include/dt-bindings/gce/<chip>-gce.h of each chips.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- mediatek,gce-client-reg
|
||||
- mediatek,gce-events
|
||||
- clocks
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mt8183-clk.h>
|
||||
#include <dt-bindings/gce/mt8183-gce.h>
|
||||
|
||||
mdp3_rsz0: mdp3-rsz0@14003000 {
|
||||
compatible = "mediatek,mt8183-mdp3-rsz";
|
||||
reg = <0x14003000 0x1000>;
|
||||
mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x3000 0x1000>;
|
||||
mediatek,gce-events = <CMDQ_EVENT_MDP_RSZ0_SOF>,
|
||||
<CMDQ_EVENT_MDP_RSZ0_EOF>;
|
||||
clocks = <&mmsys CLK_MM_MDP_RSZ0>;
|
||||
};
|
||||
|
||||
mdp3_rsz1: mdp3-rsz1@14004000 {
|
||||
compatible = "mediatek,mt8183-mdp3-rsz";
|
||||
reg = <0x14004000 0x1000>;
|
||||
mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x4000 0x1000>;
|
||||
mediatek,gce-events = <CMDQ_EVENT_MDP_RSZ1_SOF>,
|
||||
<CMDQ_EVENT_MDP_RSZ1_EOF>;
|
||||
clocks = <&mmsys CLK_MM_MDP_RSZ1>;
|
||||
};
|
80
bindings/media/mediatek,mdp3-wrot.yaml
Normal file
80
bindings/media/mediatek,mdp3-wrot.yaml
Normal file
@@ -0,0 +1,80 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/mediatek,mdp3-wrot.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek Write DMA with Rotation
|
||||
|
||||
maintainers:
|
||||
- Matthias Brugger <matthias.bgg@gmail.com>
|
||||
- Moudy Ho <moudy.ho@mediatek.com>
|
||||
|
||||
description: |
|
||||
One of Media Data Path 3 (MDP3) components used to write DMA with frame rotation.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- mediatek,mt8183-mdp3-wrot
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
mediatek,gce-client-reg:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
items:
|
||||
items:
|
||||
- description: phandle of GCE
|
||||
- description: GCE subsys id
|
||||
- description: register offset
|
||||
- description: register size
|
||||
description: The register of client driver can be configured by gce with
|
||||
4 arguments defined in this property. Each GCE subsys id is mapping to
|
||||
a client defined in the header include/dt-bindings/gce/<chip>-gce.h.
|
||||
|
||||
mediatek,gce-events:
|
||||
description:
|
||||
The event id which is mapping to the specific hardware event signal
|
||||
to gce. The event id is defined in the gce header
|
||||
include/dt-bindings/gce/<chip>-gce.h of each chips.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
|
||||
iommus:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- mediatek,gce-client-reg
|
||||
- mediatek,gce-events
|
||||
- power-domains
|
||||
- clocks
|
||||
- iommus
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mt8183-clk.h>
|
||||
#include <dt-bindings/gce/mt8183-gce.h>
|
||||
#include <dt-bindings/power/mt8183-power.h>
|
||||
#include <dt-bindings/memory/mt8183-larb-port.h>
|
||||
|
||||
mdp3_wrot0: mdp3-wrot0@14005000 {
|
||||
compatible = "mediatek,mt8183-mdp3-wrot";
|
||||
reg = <0x14005000 0x1000>;
|
||||
mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x5000 0x1000>;
|
||||
mediatek,gce-events = <CMDQ_EVENT_MDP_WROT0_SOF>,
|
||||
<CMDQ_EVENT_MDP_WROT0_EOF>;
|
||||
power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
|
||||
clocks = <&mmsys CLK_MM_MDP_WROT0>;
|
||||
iommus = <&iommu>;
|
||||
};
|
167
bindings/media/mediatek,vcodec-decoder.yaml
Normal file
167
bindings/media/mediatek,vcodec-decoder.yaml
Normal file
@@ -0,0 +1,167 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/mediatek,vcodec-decoder.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Mediatek Video Decode Accelerator
|
||||
|
||||
maintainers:
|
||||
- Yunfei Dong <yunfei.dong@mediatek.com>
|
||||
|
||||
description: |+
|
||||
Mediatek Video Decode is the video decode hardware present in Mediatek
|
||||
SoCs which supports high resolution decoding functionalities.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mediatek,mt8173-vcodec-dec
|
||||
- mediatek,mt8183-vcodec-dec
|
||||
|
||||
reg:
|
||||
maxItems: 12
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 8
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: vcodecpll
|
||||
- const: univpll_d2
|
||||
- const: clk_cci400_sel
|
||||
- const: vdec_sel
|
||||
- const: vdecpll
|
||||
- const: vencpll
|
||||
- const: venc_lt_sel
|
||||
- const: vdec_bus_clk_src
|
||||
|
||||
assigned-clocks: true
|
||||
|
||||
assigned-clock-parents: true
|
||||
|
||||
assigned-clock-rates: true
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
iommus:
|
||||
minItems: 1
|
||||
maxItems: 32
|
||||
description: |
|
||||
List of the hardware port in respective IOMMU block for current Socs.
|
||||
Refer to bindings/iommu/mediatek,iommu.yaml.
|
||||
|
||||
dma-ranges:
|
||||
maxItems: 1
|
||||
description: |
|
||||
Describes the physical address space of IOMMU maps to memory.
|
||||
|
||||
mediatek,vpu:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
Describes point to vpu.
|
||||
|
||||
mediatek,scp:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
Describes point to scp.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- iommus
|
||||
- assigned-clocks
|
||||
- assigned-clock-parents
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- mediatek,mt8183-vcodec-dec
|
||||
|
||||
then:
|
||||
required:
|
||||
- mediatek,scp
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- mediatek,mt8173-vcodec-dec
|
||||
|
||||
then:
|
||||
required:
|
||||
- mediatek,vpu
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/clock/mt8173-clk.h>
|
||||
#include <dt-bindings/memory/mt8173-larb-port.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/power/mt8173-power.h>
|
||||
|
||||
vcodec_dec: vcodec@16000000 {
|
||||
compatible = "mediatek,mt8173-vcodec-dec";
|
||||
reg = <0x16000000 0x100>, /*VDEC_SYS*/
|
||||
<0x16020000 0x1000>, /*VDEC_MISC*/
|
||||
<0x16021000 0x800>, /*VDEC_LD*/
|
||||
<0x16021800 0x800>, /*VDEC_TOP*/
|
||||
<0x16022000 0x1000>, /*VDEC_CM*/
|
||||
<0x16023000 0x1000>, /*VDEC_AD*/
|
||||
<0x16024000 0x1000>, /*VDEC_AV*/
|
||||
<0x16025000 0x1000>, /*VDEC_PP*/
|
||||
<0x16026800 0x800>, /*VP8_VD*/
|
||||
<0x16027000 0x800>, /*VP6_VD*/
|
||||
<0x16027800 0x800>, /*VP8_VL*/
|
||||
<0x16028400 0x400>; /*VP9_VD*/
|
||||
interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_LOW>;
|
||||
iommus = <&iommu M4U_PORT_HW_VDEC_MC_EXT>,
|
||||
<&iommu M4U_PORT_HW_VDEC_PP_EXT>,
|
||||
<&iommu M4U_PORT_HW_VDEC_AVC_MV_EXT>,
|
||||
<&iommu M4U_PORT_HW_VDEC_PRED_RD_EXT>,
|
||||
<&iommu M4U_PORT_HW_VDEC_PRED_WR_EXT>,
|
||||
<&iommu M4U_PORT_HW_VDEC_UFO_EXT>,
|
||||
<&iommu M4U_PORT_HW_VDEC_VLD_EXT>,
|
||||
<&iommu M4U_PORT_HW_VDEC_VLD2_EXT>;
|
||||
mediatek,vpu = <&vpu>;
|
||||
power-domains = <&scpsys MT8173_POWER_DOMAIN_VDEC>;
|
||||
clocks = <&apmixedsys CLK_APMIXED_VCODECPLL>,
|
||||
<&topckgen CLK_TOP_UNIVPLL_D2>,
|
||||
<&topckgen CLK_TOP_CCI400_SEL>,
|
||||
<&topckgen CLK_TOP_VDEC_SEL>,
|
||||
<&topckgen CLK_TOP_VCODECPLL>,
|
||||
<&apmixedsys CLK_APMIXED_VENCPLL>,
|
||||
<&topckgen CLK_TOP_VENC_LT_SEL>,
|
||||
<&topckgen CLK_TOP_VCODECPLL_370P5>;
|
||||
clock-names = "vcodecpll",
|
||||
"univpll_d2",
|
||||
"clk_cci400_sel",
|
||||
"vdec_sel",
|
||||
"vdecpll",
|
||||
"vencpll",
|
||||
"venc_lt_sel",
|
||||
"vdec_bus_clk_src";
|
||||
assigned-clocks = <&topckgen CLK_TOP_VENC_LT_SEL>,
|
||||
<&topckgen CLK_TOP_CCI400_SEL>,
|
||||
<&topckgen CLK_TOP_VDEC_SEL>,
|
||||
<&apmixedsys CLK_APMIXED_VCODECPLL>,
|
||||
<&apmixedsys CLK_APMIXED_VENCPLL>;
|
||||
assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL_370P5>,
|
||||
<&topckgen CLK_TOP_UNIVPLL_D2>,
|
||||
<&topckgen CLK_TOP_VCODECPLL>;
|
||||
assigned-clock-rates = <0>, <0>, <0>, <1482000000>, <800000000>;
|
||||
};
|
180
bindings/media/mediatek,vcodec-encoder.yaml
Normal file
180
bindings/media/mediatek,vcodec-encoder.yaml
Normal file
@@ -0,0 +1,180 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/mediatek,vcodec-encoder.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Mediatek Video Encode Accelerator
|
||||
|
||||
maintainers:
|
||||
- Yunfei Dong <yunfei.dong@mediatek.com>
|
||||
|
||||
description: |+
|
||||
Mediatek Video Encode is the video encode hardware present in Mediatek
|
||||
SoCs which supports high resolution encoding functionalities.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mediatek,mt8173-vcodec-enc-vp8
|
||||
- mediatek,mt8173-vcodec-enc
|
||||
- mediatek,mt8183-vcodec-enc
|
||||
- mediatek,mt8188-vcodec-enc
|
||||
- mediatek,mt8192-vcodec-enc
|
||||
- mediatek,mt8195-vcodec-enc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 5
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
maxItems: 5
|
||||
|
||||
assigned-clocks: true
|
||||
|
||||
assigned-clock-parents: true
|
||||
|
||||
iommus:
|
||||
minItems: 1
|
||||
maxItems: 32
|
||||
description: |
|
||||
List of the hardware port in respective IOMMU block for current Socs.
|
||||
Refer to bindings/iommu/mediatek,iommu.yaml.
|
||||
|
||||
dma-ranges:
|
||||
maxItems: 1
|
||||
description: |
|
||||
Describes the physical address space of IOMMU maps to memory.
|
||||
|
||||
mediatek,vpu:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
Describes point to vpu.
|
||||
|
||||
mediatek,scp:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
Describes point to scp.
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- iommus
|
||||
- assigned-clocks
|
||||
- assigned-clock-parents
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- mediatek,mt8183-vcodec-enc
|
||||
- mediatek,mt8192-vcodec-enc
|
||||
|
||||
then:
|
||||
required:
|
||||
- mediatek,scp
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- mediatek,mt8173-vcodec-enc-vp8
|
||||
- mediatek,mt8173-vcodec-enc
|
||||
|
||||
then:
|
||||
required:
|
||||
- mediatek,vpu
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mediatek,mt8173-vcodec-enc
|
||||
- mediatek,mt8192-vcodec-enc
|
||||
|
||||
then:
|
||||
properties:
|
||||
clock:
|
||||
items:
|
||||
minItems: 1
|
||||
maxItems: 1
|
||||
clock-names:
|
||||
items:
|
||||
- const: venc_sel
|
||||
else: # for vp8 hw decoder
|
||||
properties:
|
||||
clock:
|
||||
items:
|
||||
minItems: 1
|
||||
maxItems: 1
|
||||
clock-names:
|
||||
items:
|
||||
- const: venc_lt_sel
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/clock/mt8173-clk.h>
|
||||
#include <dt-bindings/memory/mt8173-larb-port.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
vcodec_enc_avc: vcodec@18002000 {
|
||||
compatible = "mediatek,mt8173-vcodec-enc";
|
||||
reg = <0x18002000 0x1000>;
|
||||
interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>;
|
||||
iommus = <&iommu M4U_PORT_VENC_RCPU>,
|
||||
<&iommu M4U_PORT_VENC_REC>,
|
||||
<&iommu M4U_PORT_VENC_BSDMA>,
|
||||
<&iommu M4U_PORT_VENC_SV_COMV>,
|
||||
<&iommu M4U_PORT_VENC_RD_COMV>,
|
||||
<&iommu M4U_PORT_VENC_CUR_LUMA>,
|
||||
<&iommu M4U_PORT_VENC_CUR_CHROMA>,
|
||||
<&iommu M4U_PORT_VENC_REF_LUMA>,
|
||||
<&iommu M4U_PORT_VENC_REF_CHROMA>,
|
||||
<&iommu M4U_PORT_VENC_NBM_RDMA>,
|
||||
<&iommu M4U_PORT_VENC_NBM_WDMA>;
|
||||
mediatek,vpu = <&vpu>;
|
||||
clocks = <&topckgen CLK_TOP_VENC_SEL>;
|
||||
clock-names = "venc_sel";
|
||||
assigned-clocks = <&topckgen CLK_TOP_VENC_SEL>;
|
||||
assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL>;
|
||||
};
|
||||
|
||||
vcodec_enc_vp8: vcodec@19002000 {
|
||||
compatible = "mediatek,mt8173-vcodec-enc-vp8";
|
||||
reg = <0x19002000 0x1000>; /* VENC_LT_SYS */
|
||||
interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_LOW>;
|
||||
iommus = <&iommu M4U_PORT_VENC_RCPU_SET2>,
|
||||
<&iommu M4U_PORT_VENC_REC_FRM_SET2>,
|
||||
<&iommu M4U_PORT_VENC_BSDMA_SET2>,
|
||||
<&iommu M4U_PORT_VENC_SV_COMA_SET2>,
|
||||
<&iommu M4U_PORT_VENC_RD_COMA_SET2>,
|
||||
<&iommu M4U_PORT_VENC_CUR_LUMA_SET2>,
|
||||
<&iommu M4U_PORT_VENC_CUR_CHROMA_SET2>,
|
||||
<&iommu M4U_PORT_VENC_REF_LUMA_SET2>,
|
||||
<&iommu M4U_PORT_VENC_REC_CHROMA_SET2>;
|
||||
mediatek,vpu = <&vpu>;
|
||||
clocks = <&topckgen CLK_TOP_VENC_LT_SEL>;
|
||||
clock-names = "venc_lt_sel";
|
||||
assigned-clocks = <&topckgen CLK_TOP_VENC_LT_SEL>;
|
||||
assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL_370P5>;
|
||||
};
|
293
bindings/media/mediatek,vcodec-subdev-decoder.yaml
Normal file
293
bindings/media/mediatek,vcodec-subdev-decoder.yaml
Normal file
@@ -0,0 +1,293 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/media/mediatek,vcodec-subdev-decoder.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Mediatek Video Decode Accelerator With Multi Hardware
|
||||
|
||||
maintainers:
|
||||
- Yunfei Dong <yunfei.dong@mediatek.com>
|
||||
|
||||
description: |
|
||||
Mediatek Video Decode is the video decode hardware present in Mediatek
|
||||
SoCs which supports high resolution decoding functionalities. Required
|
||||
parent and child device node.
|
||||
|
||||
About the Decoder Hardware Block Diagram, please check below:
|
||||
|
||||
+------------------------------------------------+-------------------------------------+
|
||||
| | |
|
||||
| input -> lat soc HW -> lat HW -> lat buffer --|--> lat buffer -> core HW -> output |
|
||||
| || || | || |
|
||||
+------------||-------------||-------------------+---------------------||--------------+
|
||||
|| lat || | core workqueue <parent>
|
||||
-------------||-------------||-------------------|---------------------||---------------
|
||||
||<------------||----------------HW index---------------->|| <child>
|
||||
\/ \/ \/
|
||||
+-------------------------------------------------------------+
|
||||
| enable/disable |
|
||||
| clk power irq iommu |
|
||||
| (lat/lat soc/core0/core1) |
|
||||
+-------------------------------------------------------------+
|
||||
|
||||
As above, there are parent and child devices, child mean each hardware. The child device
|
||||
controls the information of each hardware independent which include clk/power/irq.
|
||||
|
||||
There are two workqueues in parent device: lat workqueue and core workqueue. They are used
|
||||
to lat and core hardware deocder. Lat workqueue need to get input bitstream and lat buffer,
|
||||
then enable lat to decode, writing the result to lat buffer, dislabe hardware when lat decode
|
||||
done. Core workqueue need to get lat buffer and output buffer, then enable core to decode,
|
||||
writing the result to output buffer, disable hardware when core decode done. These two
|
||||
hardwares will decode each frame cyclically.
|
||||
|
||||
For the smi common may not the same for each hardware, can't combine all hardware in one node,
|
||||
or leading to iommu fault when access dram data.
|
||||
|
||||
Lat soc is a hardware which is related with some larb(local arbiter) ports. For mt8195
|
||||
platform, there are some ports like RDMA, UFO in lat soc larb, need to enable its power and
|
||||
clock when lat start to work, don't have interrupt.
|
||||
|
||||
mt8195: lat soc HW + lat HW + core HW
|
||||
mt8192: lat HW + core HW
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mediatek,mt8192-vcodec-dec
|
||||
- mediatek,mt8186-vcodec-dec
|
||||
- mediatek,mt8188-vcodec-dec
|
||||
- mediatek,mt8195-vcodec-dec
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
iommus:
|
||||
minItems: 1
|
||||
maxItems: 32
|
||||
description: |
|
||||
List of the hardware port in respective IOMMU block for current Socs.
|
||||
Refer to bindings/iommu/mediatek,iommu.yaml.
|
||||
|
||||
mediatek,scp:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: |
|
||||
The node of system control processor (SCP), using
|
||||
the remoteproc & rpmsg framework.
|
||||
|
||||
dma-ranges:
|
||||
maxItems: 1
|
||||
description: |
|
||||
Describes the physical address space of IOMMU maps to memory.
|
||||
|
||||
"#address-cells":
|
||||
const: 2
|
||||
|
||||
"#size-cells":
|
||||
const: 2
|
||||
|
||||
ranges: true
|
||||
|
||||
# Required child node:
|
||||
patternProperties:
|
||||
'^vcodec-lat@[0-9a-f]+$':
|
||||
type: object
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mediatek,mtk-vcodec-lat
|
||||
- mediatek,mtk-vcodec-lat-soc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
iommus:
|
||||
minItems: 1
|
||||
maxItems: 32
|
||||
description: |
|
||||
List of the hardware port in respective IOMMU block for current Socs.
|
||||
Refer to bindings/iommu/mediatek,iommu.yaml.
|
||||
|
||||
clocks:
|
||||
maxItems: 5
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: sel
|
||||
- const: soc-vdec
|
||||
- const: soc-lat
|
||||
- const: vdec
|
||||
- const: top
|
||||
|
||||
assigned-clocks:
|
||||
maxItems: 1
|
||||
|
||||
assigned-clock-parents:
|
||||
maxItems: 1
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- iommus
|
||||
- clocks
|
||||
- clock-names
|
||||
- assigned-clocks
|
||||
- assigned-clock-parents
|
||||
- power-domains
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
'^vcodec-core@[0-9a-f]+$':
|
||||
type: object
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mtk-vcodec-core
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
iommus:
|
||||
minItems: 1
|
||||
maxItems: 32
|
||||
description: |
|
||||
List of the hardware port in respective IOMMU block for current Socs.
|
||||
Refer to bindings/iommu/mediatek,iommu.yaml.
|
||||
|
||||
clocks:
|
||||
maxItems: 5
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: sel
|
||||
- const: soc-vdec
|
||||
- const: soc-lat
|
||||
- const: vdec
|
||||
- const: top
|
||||
|
||||
assigned-clocks:
|
||||
maxItems: 1
|
||||
|
||||
assigned-clock-parents:
|
||||
maxItems: 1
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- iommus
|
||||
- clocks
|
||||
- clock-names
|
||||
- assigned-clocks
|
||||
- assigned-clock-parents
|
||||
- power-domains
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- iommus
|
||||
- mediatek,scp
|
||||
- dma-ranges
|
||||
- ranges
|
||||
|
||||
if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- mediatek,mtk-vcodec-lat
|
||||
|
||||
then:
|
||||
required:
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/memory/mt8192-larb-port.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/clock/mt8192-clk.h>
|
||||
#include <dt-bindings/power/mt8192-power.h>
|
||||
|
||||
bus@16000000 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0 0x16000000 0x16000000 0 0x40000>;
|
||||
|
||||
video-codec@16000000 {
|
||||
compatible = "mediatek,mt8192-vcodec-dec";
|
||||
mediatek,scp = <&scp>;
|
||||
iommus = <&iommu0 M4U_PORT_L4_VDEC_MC_EXT>;
|
||||
dma-ranges = <0x1 0x0 0x0 0x40000000 0x0 0xfff00000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges = <0 0 0 0x16000000 0 0x40000>;
|
||||
reg = <0 0x16000000 0 0x1000>; /* VDEC_SYS */
|
||||
vcodec-lat@10000 {
|
||||
compatible = "mediatek,mtk-vcodec-lat";
|
||||
reg = <0 0x10000 0 0x800>;
|
||||
interrupts = <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
iommus = <&iommu0 M4U_PORT_L5_VDEC_LAT0_VLD_EXT>,
|
||||
<&iommu0 M4U_PORT_L5_VDEC_LAT0_VLD2_EXT>,
|
||||
<&iommu0 M4U_PORT_L5_VDEC_LAT0_AVC_MV_EXT>,
|
||||
<&iommu0 M4U_PORT_L5_VDEC_LAT0_PRED_RD_EXT>,
|
||||
<&iommu0 M4U_PORT_L5_VDEC_LAT0_TILE_EXT>,
|
||||
<&iommu0 M4U_PORT_L5_VDEC_LAT0_WDMA_EXT>,
|
||||
<&iommu0 M4U_PORT_L5_VDEC_LAT0_RG_CTRL_DMA_EXT>,
|
||||
<&iommu0 M4U_PORT_L5_VDEC_UFO_ENC_EXT>;
|
||||
clocks = <&topckgen CLK_TOP_VDEC_SEL>,
|
||||
<&vdecsys_soc CLK_VDEC_SOC_VDEC>,
|
||||
<&vdecsys_soc CLK_VDEC_SOC_LAT>,
|
||||
<&vdecsys_soc CLK_VDEC_SOC_LARB1>,
|
||||
<&topckgen CLK_TOP_MAINPLL_D4>;
|
||||
clock-names = "sel", "soc-vdec", "soc-lat", "vdec", "top";
|
||||
assigned-clocks = <&topckgen CLK_TOP_VDEC_SEL>;
|
||||
assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D4>;
|
||||
power-domains = <&spm MT8192_POWER_DOMAIN_VDEC>;
|
||||
};
|
||||
|
||||
vcodec-core@25000 {
|
||||
compatible = "mediatek,mtk-vcodec-core";
|
||||
reg = <0 0x25000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
iommus = <&iommu0 M4U_PORT_L4_VDEC_MC_EXT>,
|
||||
<&iommu0 M4U_PORT_L4_VDEC_UFO_EXT>,
|
||||
<&iommu0 M4U_PORT_L4_VDEC_PP_EXT>,
|
||||
<&iommu0 M4U_PORT_L4_VDEC_PRED_RD_EXT>,
|
||||
<&iommu0 M4U_PORT_L4_VDEC_PRED_WR_EXT>,
|
||||
<&iommu0 M4U_PORT_L4_VDEC_PPWRAP_EXT>,
|
||||
<&iommu0 M4U_PORT_L4_VDEC_TILE_EXT>,
|
||||
<&iommu0 M4U_PORT_L4_VDEC_VLD_EXT>,
|
||||
<&iommu0 M4U_PORT_L4_VDEC_VLD2_EXT>,
|
||||
<&iommu0 M4U_PORT_L4_VDEC_AVC_MV_EXT>,
|
||||
<&iommu0 M4U_PORT_L4_VDEC_RG_CTRL_DMA_EXT>;
|
||||
clocks = <&topckgen CLK_TOP_VDEC_SEL>,
|
||||
<&vdecsys CLK_VDEC_VDEC>,
|
||||
<&vdecsys CLK_VDEC_LAT>,
|
||||
<&vdecsys CLK_VDEC_LARB1>,
|
||||
<&topckgen CLK_TOP_MAINPLL_D4>;
|
||||
clock-names = "sel", "soc-vdec", "soc-lat", "vdec", "top";
|
||||
assigned-clocks = <&topckgen CLK_TOP_VDEC_SEL>;
|
||||
assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D4>;
|
||||
power-domains = <&spm MT8192_POWER_DOMAIN_VDEC2>;
|
||||
};
|
||||
};
|
||||
};
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user