media: dt-bindings: media: add TI DS90UB960 FPD-Link III Deserializer
Add DT bindings for TI DS90UB960 FPD-Link III Deserializer. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Reviewed-by: Rob Herring <robh@kernel.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
236a0aab7e
commit
313e8b32c6
427
Documentation/devicetree/bindings/media/i2c/ti,ds90ub960.yaml
Normal file
427
Documentation/devicetree/bindings/media/i2c/ti,ds90ub960.yaml
Normal file
@ -0,0 +1,427 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/ti,ds90ub960.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Texas Instruments DS90UB9XX Family FPD-Link Deserializer Hubs
|
||||
|
||||
maintainers:
|
||||
- Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
|
||||
|
||||
description:
|
||||
The TI DS90UB9XX devices are FPD-Link video deserializers with I2C and GPIO
|
||||
forwarding.
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/i2c/i2c-atr.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- ti,ds90ub960-q1
|
||||
- ti,ds90ub9702-q1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
description:
|
||||
Reference clock connected to the REFCLK pin.
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: refclk
|
||||
|
||||
powerdown-gpios:
|
||||
maxItems: 1
|
||||
description:
|
||||
Specifier for the GPIO connected to the PDB pin.
|
||||
|
||||
i2c-alias-pool:
|
||||
minItems: 1
|
||||
maxItems: 32
|
||||
|
||||
links:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
ti,manual-strobe:
|
||||
type: boolean
|
||||
description:
|
||||
Enable manual strobe position and EQ level
|
||||
|
||||
patternProperties:
|
||||
'^link@[0-3]$':
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
reg:
|
||||
description: The link number
|
||||
maxItems: 1
|
||||
|
||||
i2c-alias:
|
||||
description:
|
||||
The I2C address used for the serializer. Transactions to this
|
||||
address on the I2C bus where the deserializer resides are
|
||||
forwarded to the serializer.
|
||||
|
||||
ti,rx-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum:
|
||||
- 0 # RAW10
|
||||
- 1 # RAW12 HF
|
||||
- 2 # RAW12 LF
|
||||
- 3 # CSI2 SYNC
|
||||
- 4 # CSI2 NON-SYNC
|
||||
description:
|
||||
FPD-Link Input Mode. This should reflect the hardware and the
|
||||
default mode of the connected device.
|
||||
|
||||
ti,cdr-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum:
|
||||
- 0 # FPD-Link III
|
||||
- 1 # FPD-Link IV
|
||||
description:
|
||||
FPD-Link CDR Mode. This should reflect the hardware and the
|
||||
default mode of the connected device.
|
||||
|
||||
ti,strobe-pos:
|
||||
$ref: /schemas/types.yaml#/definitions/int32
|
||||
minimum: -13
|
||||
maximum: 13
|
||||
description: Manual strobe position
|
||||
|
||||
ti,eq-level:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
maximum: 14
|
||||
description: Manual EQ level
|
||||
|
||||
serializer:
|
||||
type: object
|
||||
description: FPD-Link Serializer node
|
||||
|
||||
required:
|
||||
- reg
|
||||
- i2c-alias
|
||||
- ti,rx-mode
|
||||
- serializer
|
||||
|
||||
ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
||||
properties:
|
||||
port@0:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
unevaluatedProperties: false
|
||||
description: FPD-Link input 0
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
description:
|
||||
Endpoint for FPD-Link port. If the RX mode for this port is RAW,
|
||||
hsync-active and vsync-active must be defined.
|
||||
|
||||
port@1:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
unevaluatedProperties: false
|
||||
description: FPD-Link input 1
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
description:
|
||||
Endpoint for FPD-Link port. If the RX mode for this port is RAW,
|
||||
hsync-active and vsync-active must be defined.
|
||||
|
||||
port@2:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
unevaluatedProperties: false
|
||||
description: FPD-Link input 2
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
description:
|
||||
Endpoint for FPD-Link port. If the RX mode for this port is RAW,
|
||||
hsync-active and vsync-active must be defined.
|
||||
|
||||
port@3:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
unevaluatedProperties: false
|
||||
description: FPD-Link input 3
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
description:
|
||||
Endpoint for FPD-Link port. If the RX mode for this port is RAW,
|
||||
hsync-active and vsync-active must be defined.
|
||||
|
||||
port@4:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
unevaluatedProperties: false
|
||||
description: CSI-2 Output 0
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
data-lanes:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
link-frequencies:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- data-lanes
|
||||
- link-frequencies
|
||||
|
||||
port@5:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
unevaluatedProperties: false
|
||||
description: CSI-2 Output 1
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
data-lanes:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
link-frequencies:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- data-lanes
|
||||
- link-frequencies
|
||||
|
||||
required:
|
||||
- port@0
|
||||
- port@1
|
||||
- port@2
|
||||
- port@3
|
||||
- port@4
|
||||
- port@5
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- ports
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
i2c {
|
||||
clock-frequency = <400000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
deser@3d {
|
||||
compatible = "ti,ds90ub960-q1";
|
||||
reg = <0x3d>;
|
||||
|
||||
clock-names = "refclk";
|
||||
clocks = <&fixed_clock>;
|
||||
|
||||
powerdown-gpios = <&pca9555 7 GPIO_ACTIVE_LOW>;
|
||||
|
||||
i2c-alias-pool = <0x4a 0x4b 0x4c 0x4d 0x4e 0x4f>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* Port 0, Camera 0 */
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
ub960_fpd3_1_in: endpoint {
|
||||
remote-endpoint = <&ub953_1_out>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Port 1, Camera 1 */
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
ub960_fpd3_2_in: endpoint {
|
||||
remote-endpoint = <&ub913_2_out>;
|
||||
hsync-active = <0>;
|
||||
vsync-active = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Port 2, unconnected */
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
};
|
||||
|
||||
/* Port 3, unconnected */
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
};
|
||||
|
||||
/* Port 4, CSI-2 TX */
|
||||
port@4 {
|
||||
reg = <4>;
|
||||
ds90ub960_0_csi_out: endpoint {
|
||||
data-lanes = <1 2 3 4>;
|
||||
link-frequencies = /bits/ 64 <800000000>;
|
||||
remote-endpoint = <&csi2_phy0>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Port 5, unconnected */
|
||||
port@5 {
|
||||
reg = <5>;
|
||||
};
|
||||
};
|
||||
|
||||
links {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* Link 0 has DS90UB953 serializer and IMX274 sensor */
|
||||
|
||||
link@0 {
|
||||
reg = <0>;
|
||||
i2c-alias = <0x44>;
|
||||
|
||||
ti,rx-mode = <3>;
|
||||
|
||||
serializer1: serializer {
|
||||
compatible = "ti,ds90ub953-q1";
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
#clock-cells = <0>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
ub953_1_in: endpoint {
|
||||
data-lanes = <1 2 3 4>;
|
||||
remote-endpoint = <&sensor_1_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
ub953_1_out: endpoint {
|
||||
remote-endpoint = <&ub960_fpd3_1_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
sensor@1a {
|
||||
compatible = "sony,imx274";
|
||||
reg = <0x1a>;
|
||||
|
||||
reset-gpios = <&serializer1 0 GPIO_ACTIVE_LOW>;
|
||||
|
||||
port {
|
||||
sensor_1_out: endpoint {
|
||||
remote-endpoint = <&ub953_1_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}; /* End of link@0 */
|
||||
|
||||
/* Link 1 has DS90UB913 serializer and MT9V111 sensor */
|
||||
|
||||
link@1 {
|
||||
reg = <1>;
|
||||
i2c-alias = <0x45>;
|
||||
|
||||
ti,rx-mode = <0>;
|
||||
|
||||
serializer2: serializer {
|
||||
compatible = "ti,ds90ub913a-q1";
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
clocks = <&clk_cam_48M>;
|
||||
clock-names = "clkin";
|
||||
|
||||
#clock-cells = <0>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
ub913_2_in: endpoint {
|
||||
remote-endpoint = <&sensor_2_out>;
|
||||
pclk-sample = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
ub913_2_out: endpoint {
|
||||
remote-endpoint = <&ub960_fpd3_2_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
sensor@48 {
|
||||
compatible = "aptina,mt9v111";
|
||||
reg = <0x48>;
|
||||
|
||||
clocks = <&serializer2>;
|
||||
|
||||
port {
|
||||
sensor_2_out: endpoint {
|
||||
remote-endpoint = <&ub913_2_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}; /* End of link@1 */
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
Loading…
x
Reference in New Issue
Block a user