mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
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>
153 lines
4.1 KiB
YAML
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>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
...
|