Files
linux/Documentation/devicetree/bindings/media/ti,vip.yaml
Dale Farnsworth 7c0b084c04 dt-bindings: media: ti: vpe: Add support for Video Input Port
Add device tree bindings for the Video Input Port. Video Input Port (VIP)
can be found on devices such as DRA7xx and provides a parallel interface
to a video source such as a sensor or TV decoder.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Benoit Parrot <bparrot@ti.com>
Signed-off-by: Sukrut Bellary <sbellary@baylibre.com>
Signed-off-by: Yemike Abhilash Chandra <y-abhilashchandra@ti.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-01-13 13:49:02 +01:00

153 lines
4.1 KiB
YAML

# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2025 Texas Instruments Incorporated - http://www.ti.com/
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/ti,vip.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments DRA7x Video Input Port (VIP)
maintainers:
- Yemike Abhilash Chandra <y-abhilashchandra@ti.com>
description: |-
Video Input Port (VIP) can be found on devices such as DRA7xx and
provides the system interface and the processing capability to
connect parallel image-sensor as well as BT.656/1120 capable encoder
chip to DRA7x device.
Each VIP instance supports 2 independently configurable external
video input capture slices (Slice 0 and Slice 1) each providing
up to two video input ports (Port A and Port B).
properties:
compatible:
enum:
- ti,dra7-vip
reg:
maxItems: 1
interrupts:
items:
- description: IRQ index 0 is used for Slice0 interrupts
- description: IRQ index 1 is used for Slice1 interrupts
ti,ctrl-module:
description:
Reference to the device control module that provides clock-edge
inversion control for VIP ports. These controls allow the
VIP to sample pixel data on the correct clock edge.
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
items:
- description: phandle to device control module
- description: offset to the CTRL_CORE_SMA_SW_1 register
- description: Bit field to slice 0 port A
- description: Bit field to slice 0 port B
- description: Bit field to slice 1 port A
- description: Bit field to slice 1 port B
maxItems: 1
ports:
$ref: /schemas/graph.yaml#/properties/ports
patternProperties:
'^port@[0-3]$':
$ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description: |
Each VIP instance supports 2 independently configurable external video
input capture slices (Slice 0 and Slice 1) each providing up to two video
input ports (Port A and Port B). These ports represent the following
port@0 -> Slice 0 Port A
port@1 -> Slice 0 Port B
port@2 -> Slice 1 Port A
port@3 -> Slice 1 Port B
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
bus-width:
enum: [8, 16, 24]
default: 8
required:
- compatible
- reg
- interrupts
- ti,ctrl-module
- ports
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
video@48970000 {
compatible = "ti,dra7-vip";
reg = <0x48970000 0x1000>;
interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>;
ti,ctrl-module = <&scm_conf 0x534 0x0 0x2 0x1 0x3>;
ports {
#address-cells = <1>;
#size-cells = <0>;
vin1a: port@0 {
reg = <0>;
vin1a_ep: endpoint {
remote-endpoint = <&camera1>;
hsync-active = <1>;
vsync-active = <1>;
pclk-sample = <0>;
bus-width = <8>;
};
};
vin1b: port@1 {
reg = <1>;
vin1b_ep: endpoint {
remote-endpoint = <&camera2>;
hsync-active = <1>;
vsync-active = <1>;
pclk-sample = <0>;
bus-width = <8>;
};
};
vin2a: port@2 {
reg = <2>;
vin2a_ep: endpoint {
remote-endpoint = <&camera3>;
hsync-active = <1>;
vsync-active = <1>;
pclk-sample = <0>;
bus-width = <16>;
};
};
vin2b: port@3 {
reg = <3>;
vin2b_ep: endpoint {
remote-endpoint = <&camera4>;
hsync-active = <1>;
vsync-active = <1>;
pclk-sample = <0>;
bus-width = <8>;
};
};
};
};
...