179 lines
4.3 KiB
YAML
179 lines
4.3 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||
%YAML 1.2
|
||
---
|
||
$id: http://devicetree.org/schemas/media/i2c/toshiba,tc358746.yaml#
|
||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
||
title: Toshiba TC358746 Parallel to MIPI CSI2 Bridge
|
||
|
||
maintainers:
|
||
- Marco Felsch <kernel@pengutronix.de>
|
||
|
||
description: |-
|
||
The Toshiba TC358746 converts a parallel video stream into a MIPI CSI-2
|
||
stream. The direction can be either parallel-in -> csi-out or csi-in ->
|
||
parallel-out The chip is programmable trough I2C and SPI but the SPI
|
||
interface is only supported in parallel-in -> csi-out mode.
|
||
|
||
Note that the current device tree bindings only support the
|
||
parallel-in -> csi-out path.
|
||
|
||
properties:
|
||
compatible:
|
||
const: toshiba,tc358746
|
||
|
||
reg:
|
||
maxItems: 1
|
||
|
||
clocks:
|
||
description:
|
||
The phandle to the reference clock source. This corresponds to the
|
||
hardware pin REFCLK.
|
||
maxItems: 1
|
||
|
||
clock-names:
|
||
const: refclk
|
||
|
||
"#clock-cells":
|
||
description: |
|
||
The bridge can act as clock provider for the sensor. To enable this
|
||
support #clock-cells must be specified. Attention if this feature is used
|
||
then the mclk rate must be at least: (2 * link-frequency) / 8
|
||
`------------------´ ^
|
||
internal PLL rate smallest possible
|
||
mclk-div
|
||
const: 0
|
||
|
||
clock-output-names:
|
||
description:
|
||
The clock name of the MCLK output, the default name is tc358746-mclk.
|
||
maxItems: 1
|
||
|
||
vddc-supply:
|
||
description: Digital core voltage supply, 1.2 volts
|
||
|
||
vddio-supply:
|
||
description: Digital I/O voltage supply, 1.8 volts
|
||
|
||
vddmipi-supply:
|
||
description: MIPI CSI phy voltage supply, 1.2 volts
|
||
|
||
reset-gpios:
|
||
description:
|
||
The phandle and specifier for the GPIO that controls the chip reset.
|
||
This corresponds to the hardware pin RESX which is physically active low.
|
||
maxItems: 1
|
||
|
||
ports:
|
||
$ref: /schemas/graph.yaml#/properties/ports
|
||
properties:
|
||
port@0:
|
||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||
description: Input port
|
||
|
||
properties:
|
||
endpoint:
|
||
$ref: /schemas/media/video-interfaces.yaml#
|
||
unevaluatedProperties: false
|
||
|
||
properties:
|
||
hsync-active: true
|
||
vsync-active: true
|
||
bus-type:
|
||
enum: [ 5, 6 ]
|
||
|
||
required:
|
||
- hsync-active
|
||
- vsync-active
|
||
- bus-type
|
||
|
||
port@1:
|
||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||
description: Output port
|
||
|
||
properties:
|
||
endpoint:
|
||
$ref: /schemas/media/video-interfaces.yaml#
|
||
unevaluatedProperties: false
|
||
|
||
properties:
|
||
data-lanes:
|
||
minItems: 1
|
||
maxItems: 4
|
||
|
||
clock-noncontinuous: true
|
||
link-frequencies: true
|
||
|
||
required:
|
||
- data-lanes
|
||
- link-frequencies
|
||
|
||
required:
|
||
- port@0
|
||
- port@1
|
||
|
||
required:
|
||
- compatible
|
||
- reg
|
||
- clocks
|
||
- clock-names
|
||
- vddc-supply
|
||
- vddio-supply
|
||
- vddmipi-supply
|
||
- ports
|
||
|
||
additionalProperties: false
|
||
|
||
examples:
|
||
- |
|
||
#include <dt-bindings/gpio/gpio.h>
|
||
|
||
i2c {
|
||
#address-cells = <1>;
|
||
#size-cells = <0>;
|
||
|
||
csi-bridge@e {
|
||
compatible = "toshiba,tc358746";
|
||
reg = <0xe>;
|
||
|
||
clocks = <&refclk>;
|
||
clock-names = "refclk";
|
||
|
||
reset-gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
|
||
|
||
vddc-supply = <&v1_2d>;
|
||
vddio-supply = <&v1_8d>;
|
||
vddmipi-supply = <&v1_2d>;
|
||
|
||
/* sensor mclk provider */
|
||
#clock-cells = <0>;
|
||
|
||
ports {
|
||
#address-cells = <1>;
|
||
#size-cells = <0>;
|
||
|
||
/* Input */
|
||
port@0 {
|
||
reg = <0>;
|
||
tc358746_in: endpoint {
|
||
remote-endpoint = <&sensor_out>;
|
||
hsync-active = <0>;
|
||
vsync-active = <0>;
|
||
bus-type = <5>;
|
||
};
|
||
};
|
||
|
||
/* Output */
|
||
port@1 {
|
||
reg = <1>;
|
||
tc358746_out: endpoint {
|
||
remote-endpoint = <&mipi_csi2_in>;
|
||
data-lanes = <1 2>;
|
||
clock-noncontinuous;
|
||
link-frequencies = /bits/ 64 <216000000>;
|
||
};
|
||
};
|
||
};
|
||
};
|
||
};
|