mirror of
https://github.com/armbian/linux-cix.git
synced 2026-01-06 12:30:45 -08:00
Merge tag 'media/v5.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - New driver for Semi AR0521 sensor - rkisp1 CSI code was split into a separate file - sun6i has gained support for the A31 MIPI CSI-2 controller - sun8i has gained support for the A83T MIPI CSI-2 controller - vimc driver got support for virtual lens - HEVC uAPI has gained its final form and got added to public headers - hantro and cedrus got updates on H-265 support - stkwebcam was promoted from staging - atomisp staging driver got cleanups on its hmm and kmap related logic - ov5640 gained support for more modes and got some rework - imx7-media-csi staging driver got several improvements related to mc API support - uvcvideo now handles better power line control - mediatec vcodec gained support for new hardware and got some codec updates - Lots of other bug fixes, improvements and cleanups. * tag 'media/v5.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (446 commits) media: hantro: Remove dedicated control documentation hantro: Remove incorrect HEVC SPS validation media: cedrus: hevc: Add check for invalid timestamp media: sunxi: sun6i_mipi_csi2.c/sun8i_a83t_mipi_csi2.c: clarify error handling media: uvcvideo: Fix invalid pointer in uvc_ctrl_init_ctrl() media: Documentation: mc-core: Fix typo media: videodev2.h.rst.exceptions: add missing exceptions media: vimc: wrong pointer is used with PTR_ERR media: rkisp1: debug: Add dump file in debugfs for MI main path registers media: rkisp1: Make the internal CSI-2 receiver optional media: rkisp1: Add infrastructure to support ISP features media: rkisp1: Support the ISP parallel input media: dt-bindings: media: rkisp1: Add port for parallel interface media: rkisp1: Use fwnode_graph_for_each_endpoint media: rkisp1: csi: Plumb the CSI RX subdev media: rkisp1: csi: Implement a V4L2 subdev for the CSI receiver media: rkisp1: isp: Disallow multiple active sources media: rkisp1: isp: Rename rkisp1_get_remote_source() media: rkisp1: isp: Constify various local variables media: rkisp1: isp: Fix whitespace issues ...
This commit is contained in:
@@ -5,9 +5,13 @@ digraph board {
|
||||
n00000001 [label="{{} | Sensor A\n/dev/v4l-subdev0 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000001:port0 -> n00000005:port0 [style=bold]
|
||||
n00000001:port0 -> n0000000b [style=bold]
|
||||
n00000001 -> n00000002
|
||||
n00000002 [label="{{} | Lens A\n/dev/v4l-subdev5 | {<port0>}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000003 [label="{{} | Sensor B\n/dev/v4l-subdev1 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000003:port0 -> n00000008:port0 [style=bold]
|
||||
n00000003:port0 -> n0000000f [style=bold]
|
||||
n00000003 -> n00000004
|
||||
n00000004 [label="{{} | Lens B\n/dev/v4l-subdev6 | {<port0>}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000005 [label="{{<port0> 0} | Debayer A\n/dev/v4l-subdev2 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000005:port1 -> n00000015:port0
|
||||
n00000008 [label="{{<port0> 0} | Debayer B\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
|
||||
@@ -53,6 +53,25 @@ vimc-sensor:
|
||||
|
||||
* 1 Pad source
|
||||
|
||||
vimc-lens:
|
||||
Ancillary lens for a sensor. Supports auto focus control. Linked to
|
||||
a vimc-sensor using an ancillary link. The lens supports FOCUS_ABSOLUTE
|
||||
control.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
media-ctl -p
|
||||
...
|
||||
- entity 28: Lens A (0 pad, 0 link)
|
||||
type V4L2 subdev subtype Lens flags 0
|
||||
device node name /dev/v4l-subdev6
|
||||
- entity 29: Lens B (0 pad, 0 link)
|
||||
type V4L2 subdev subtype Lens flags 0
|
||||
device node name /dev/v4l-subdev7
|
||||
v4l2-ctl -d /dev/v4l-subdev7 -C focus_absolute
|
||||
focus_absolute: 0
|
||||
|
||||
|
||||
vimc-debayer:
|
||||
Transforms images in bayer format into a non-bayer format.
|
||||
Exposes:
|
||||
|
||||
@@ -714,6 +714,20 @@ The Test Pattern Controls are all specific to video capture.
|
||||
|
||||
does the same for the EAV (End of Active Video) code.
|
||||
|
||||
- Insert Video Guard Band
|
||||
|
||||
adds 4 columns of pixels with the HDMI Video Guard Band code at the
|
||||
left hand side of the image. This only works with 3 or 4 byte RGB pixel
|
||||
formats. The RGB pixel value 0xab/0x55/0xab turns out to be equivalent
|
||||
to the HDMI Video Guard Band code that precedes each active video line
|
||||
(see section 5.2.2.1 in the HDMI 1.3 Specification). To test if a video
|
||||
receiver has correct HDMI Video Guard Band processing, enable this
|
||||
control and then move the image to the left hand side of the screen.
|
||||
That will result in video lines that start with multiple pixels that
|
||||
have the same value as the Video Guard Band that precedes them.
|
||||
Receivers that will just keep skipping Video Guard Band values will
|
||||
now fail and either loose sync or these video lines will shift.
|
||||
|
||||
|
||||
Capture Feature Selection Controls
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
@@ -42,6 +42,7 @@ properties:
|
||||
|
||||
port:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
description: Parallel input port, connect to a parallel sensor
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
@@ -59,7 +60,24 @@ properties:
|
||||
required:
|
||||
- bus-width
|
||||
|
||||
additionalProperties: false
|
||||
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
|
||||
@@ -69,6 +87,12 @@ required:
|
||||
- clock-names
|
||||
- resets
|
||||
|
||||
oneOf:
|
||||
- required:
|
||||
- ports
|
||||
- required:
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
@@ -89,19 +113,25 @@ examples:
|
||||
"ram";
|
||||
resets = <&ccu RST_BUS_CSI>;
|
||||
|
||||
port {
|
||||
/* Parallel bus endpoint */
|
||||
csi1_ep: endpoint {
|
||||
remote-endpoint = <&adv7611_ep>;
|
||||
bus-width = <16>;
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/*
|
||||
* 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 */
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
/* Parallel bus endpoint */
|
||||
csi1_ep: endpoint {
|
||||
remote-endpoint = <&adv7611_ep>;
|
||||
bus-width = <16>;
|
||||
|
||||
/*
|
||||
* If hsync-active/vsync-active are missing,
|
||||
* embedded BT.656 sync is used.
|
||||
*/
|
||||
hsync-active = <0>; /* Active low */
|
||||
vsync-active = <0>; /* Active low */
|
||||
pclk-sample = <1>; /* Rising */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,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 Device Tree Bindings
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
||||
@@ -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 Device Tree Bindings
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
||||
@@ -1,16 +0,0 @@
|
||||
Samsung S5P/Exynos SoC series JPEG codec
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : should be one of:
|
||||
"samsung,s5pv210-jpeg", "samsung,exynos4210-jpeg",
|
||||
"samsung,exynos3250-jpeg", "samsung,exynos5420-jpeg",
|
||||
"samsung,exynos5433-jpeg";
|
||||
- reg : address and length of the JPEG codec IP register set;
|
||||
- interrupts : specifies the JPEG codec IP interrupt;
|
||||
- clock-names : should contain:
|
||||
- "jpeg" for the core gate clock,
|
||||
- "sclk" for the special clock (optional).
|
||||
- clocks : should contain the clock specifier and clock ID list
|
||||
matching entries in the clock-names property; from
|
||||
the common clock bindings.
|
||||
@@ -17,6 +17,7 @@ description: |
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- aptina,mt9p006
|
||||
- aptina,mt9p031
|
||||
- aptina,mt9p031m
|
||||
|
||||
|
||||
112
Documentation/devicetree/bindings/media/i2c/onnn,ar0521.yaml
Normal file
112
Documentation/devicetree/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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
124
Documentation/devicetree/bindings/media/i2c/ovti,ov5693.yaml
Normal file
124
Documentation/devicetree/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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
||||
@@ -17,20 +17,20 @@ description: |
|
||||
|
||||
About the Decoder Hardware Block Diagram, please check below:
|
||||
|
||||
+---------------------------------+------------------------------------+
|
||||
| | |
|
||||
| input -> lat HW -> lat buffer --|--> lat buffer -> core HW -> output |
|
||||
| || | || |
|
||||
+------------||-------------------+---------------------||-------------+
|
||||
lat workqueue | core workqueue <parent>
|
||||
-------------||-----------------------------------------||------------------
|
||||
|| || <child>
|
||||
\/ <----------------HW index-------------->\/
|
||||
+------------------------------------------------------+
|
||||
| enable/disable |
|
||||
| clk power irq iommu |
|
||||
| (lat/lat soc/core0/core1) |
|
||||
+------------------------------------------------------+
|
||||
+------------------------------------------------+-------------------------------------+
|
||||
| | |
|
||||
| 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.
|
||||
@@ -45,11 +45,19 @@ description: |
|
||||
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,mt8195-vcodec-dec
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
@@ -87,7 +95,9 @@ patternProperties:
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mtk-vcodec-lat
|
||||
enum:
|
||||
- mediatek,mtk-vcodec-lat
|
||||
- mediatek,mtk-vcodec-lat-soc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
@@ -125,7 +135,6 @@ patternProperties:
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- iommus
|
||||
- clocks
|
||||
- clock-names
|
||||
@@ -196,6 +205,17 @@ required:
|
||||
- dma-ranges
|
||||
- ranges
|
||||
|
||||
if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- mediatek,mtk-vcodec-lat
|
||||
|
||||
then:
|
||||
required:
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
||||
@@ -18,6 +18,7 @@ properties:
|
||||
- enum:
|
||||
- mediatek,mt2701-jpgenc
|
||||
- mediatek,mt8183-jpgenc
|
||||
- mediatek,mt8186-jpgenc
|
||||
- const: mediatek,mtk-jpgenc
|
||||
reg:
|
||||
maxItems: 1
|
||||
@@ -42,6 +43,11 @@ properties:
|
||||
Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details.
|
||||
Ports are according to the HW.
|
||||
|
||||
dma-ranges:
|
||||
maxItems: 1
|
||||
description: |
|
||||
Describes the physical address space of IOMMU maps to memory.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
@@ -22,9 +22,14 @@ description: |-
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- fsl,imx7-mipi-csi2
|
||||
- fsl,imx8mm-mipi-csi2
|
||||
oneOf:
|
||||
- enum:
|
||||
- fsl,imx7-mipi-csi2
|
||||
- fsl,imx8mm-mipi-csi2
|
||||
- items:
|
||||
- enum:
|
||||
- fsl,imx8mp-mipi-csi2
|
||||
- const: fsl,imx8mm-mipi-csi2
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -84,6 +84,13 @@ properties:
|
||||
- const: vfe0
|
||||
- const: vfe1
|
||||
|
||||
interconnects:
|
||||
maxItems: 1
|
||||
|
||||
interconnect-names:
|
||||
items:
|
||||
- const: vfe-mem
|
||||
|
||||
iommus:
|
||||
maxItems: 4
|
||||
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/media/rockchip,rk3568-vepu.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Hantro G1 VPU encoders implemented on Rockchip SoCs
|
||||
|
||||
maintainers:
|
||||
- Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
|
||||
|
||||
description:
|
||||
Hantro G1 video encode-only accelerators present on Rockchip SoCs.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- rockchip,rk3568-vepu
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: aclk
|
||||
- const: hclk
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
iommus:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/rk3568-cru.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/power/rk3568-power.h>
|
||||
|
||||
bus {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
vepu: video-codec@fdee0000 {
|
||||
compatible = "rockchip,rk3568-vepu";
|
||||
reg = <0x0 0xfdee0000 0x0 0x800>;
|
||||
interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru ACLK_JENC>, <&cru HCLK_JENC>;
|
||||
clock-names = "aclk", "hclk";
|
||||
iommus = <&vepu_mmu>;
|
||||
power-domains = <&power RK3568_PD_RGA>;
|
||||
};
|
||||
};
|
||||
@@ -84,8 +84,27 @@ properties:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
|
||||
required:
|
||||
- port@0
|
||||
port@1:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
unevaluatedProperties: false
|
||||
description: connection point for input on the parallel interface
|
||||
|
||||
properties:
|
||||
bus-type:
|
||||
enum: [5, 6]
|
||||
|
||||
endpoint:
|
||||
$ref: video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- bus-type
|
||||
|
||||
anyOf:
|
||||
- required:
|
||||
- port@0
|
||||
- required:
|
||||
- port@1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/samsung,s5pv210-jpeg.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Samsung S5PV210 and Exynos SoC JPEG codec
|
||||
|
||||
maintainers:
|
||||
- Jacek Anaszewski <jacek.anaszewski@gmail.com>
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
- Sylwester Nawrocki <s.nawrocki@samsung.com>
|
||||
- Andrzej Pietrasiewicz <andrzejtp2010@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- samsung,s5pv210-jpeg
|
||||
- samsung,exynos3250-jpeg
|
||||
- samsung,exynos4210-jpeg
|
||||
- samsung,exynos4212-jpeg
|
||||
- samsung,exynos5420-jpeg
|
||||
- samsung,exynos5433-jpeg
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
iommus:
|
||||
maxItems: 1
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
- interrupts
|
||||
- reg
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- samsung,s5pv210-jpeg
|
||||
- samsung,exynos4210-jpeg
|
||||
- samsung,exynos4212-jpeg
|
||||
- samsung,exynos5420-jpeg
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
maxItems: 1
|
||||
clock-names:
|
||||
items:
|
||||
- const: jpeg
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- samsung,exynos3250-jpeg
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
clock-names:
|
||||
items:
|
||||
- const: jpeg
|
||||
- const: sclk
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- samsung,exynos5433-jpeg
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
clock-names:
|
||||
items:
|
||||
- const: pclk
|
||||
- const: aclk
|
||||
- const: aclk_xiu
|
||||
- const: sclk
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/exynos5433.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
codec@15020000 {
|
||||
compatible = "samsung,exynos5433-jpeg";
|
||||
reg = <0x15020000 0x10000>;
|
||||
interrupts = <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-names = "pclk", "aclk", "aclk_xiu", "sclk";
|
||||
clocks = <&cmu_mscl CLK_PCLK_JPEG>,
|
||||
<&cmu_mscl CLK_ACLK_JPEG>,
|
||||
<&cmu_mscl CLK_ACLK_XIU_MSCLX>,
|
||||
<&cmu_mscl CLK_SCLK_JPEG>;
|
||||
iommus = <&sysmmu_jpeg>;
|
||||
power-domains = <&pd_mscl>;
|
||||
};
|
||||
@@ -186,8 +186,9 @@ is required and the graph structure can be freed normally.
|
||||
|
||||
Helper functions can be used to find a link between two given pads, or a pad
|
||||
connected to another pad through an enabled link
|
||||
:c:func:`media_entity_find_link()` and
|
||||
:c:func:`media_entity_remote_pad()`.
|
||||
(:c:func:`media_entity_find_link()`, :c:func:`media_pad_remote_pad_first()`,
|
||||
:c:func:`media_entity_remote_source_pad_unique()` and
|
||||
:c:func:`media_pad_remote_pad_unique()`).
|
||||
|
||||
Use count and power handling
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
@@ -243,6 +243,12 @@ notifier callback is called. After all subdevices have been located the
|
||||
.complete() callback is called. When a subdevice is removed from the
|
||||
system the .unbind() method is called. All three callbacks are optional.
|
||||
|
||||
Drivers can store any type of custom data in their driver-specific
|
||||
:c:type:`v4l2_async_subdev` wrapper. If any of that data requires special
|
||||
handling when the structure is freed, drivers must implement the ``.destroy()``
|
||||
notifier callback. The framework will call it right before freeing the
|
||||
:c:type:`v4l2_async_subdev`.
|
||||
|
||||
Calling subdev operations
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
Hantro video decoder driver
|
||||
===========================
|
||||
|
||||
The Hantro video decoder driver implements the following driver-specific controls:
|
||||
|
||||
``V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP (integer)``
|
||||
Specifies to Hantro HEVC video decoder driver the number of data (in bits) to
|
||||
skip in the slice segment header.
|
||||
If non-IDR, the bits to be skipped go from syntax element "pic_output_flag"
|
||||
to before syntax element "slice_temporal_mvp_enabled_flag".
|
||||
If IDR, the skipped bits are just "pic_output_flag"
|
||||
(separate_colour_plane_flag is not supported).
|
||||
|
||||
.. note::
|
||||
|
||||
This control is not yet part of the public kernel API and
|
||||
it is expected to change.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user