cba1ec57b3
The THP7312 is an external ISP from THine. Add DT bindings for it. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Co-developed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
225 lines
5.6 KiB
YAML
225 lines
5.6 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
# Copyright (c) 2023 Ideas on Board
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/media/i2c/thine,thp7312.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: THine THP7312
|
|
|
|
maintainers:
|
|
- Paul Elder <paul.elder@@ideasonboard.com>
|
|
|
|
description:
|
|
The THP7312 is a standalone ISP controlled over i2c, and is capable of
|
|
various image processing and correction functions, including 3A control. It
|
|
can be connected to CMOS image sensors from various vendors, supporting both
|
|
MIPI CSI-2 and parallel interfaces. It can also output on either MIPI CSI-2
|
|
or parallel. The hardware is capable of transmitting and receiving MIPI
|
|
interlaved data strams with data types or multiple virtual channel
|
|
identifiers.
|
|
|
|
allOf:
|
|
- $ref: /schemas/media/video-interface-devices.yaml#
|
|
|
|
properties:
|
|
compatible:
|
|
const: thine,thp7312
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
description: CLKI clock input
|
|
|
|
thine,boot-mode:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 1
|
|
default: 1
|
|
description:
|
|
Boot mode of the THP7312, reflecting the value of the BOOT[0] pin strap.
|
|
0 is for the SPI/2-wire slave boot, 1 is for the SPI master boot (from
|
|
external flash ROM).
|
|
|
|
reset-gpios:
|
|
maxItems: 1
|
|
description:
|
|
Reference to the GPIO connected to the RESET_N pin, if any.
|
|
Must be released (set high) after all supplies are applied.
|
|
|
|
vddcore-supply:
|
|
description:
|
|
1.2V supply for core, PLL, MIPI rx and MIPI tx.
|
|
|
|
vhtermrx-supply:
|
|
description:
|
|
Supply for input (RX). 1.8V for MIPI, or 1.8/2.8/3.3V for parallel.
|
|
|
|
vddtx-supply:
|
|
description:
|
|
Supply for output (TX). 1.8V for MIPI, or 1.8/2.8/3.3V for parallel.
|
|
|
|
vddhost-supply:
|
|
description:
|
|
Supply for host interface. 1.8V, 2.8V, or 3.3V.
|
|
|
|
vddcmos-supply:
|
|
description:
|
|
Supply for sensor interface. 1.8V, 2.8V, or 3.3V.
|
|
|
|
vddgpio-0-supply:
|
|
description:
|
|
Supply for GPIO_0. 1.8V, 2.8V, or 3.3V.
|
|
|
|
vddgpio-1-supply:
|
|
description:
|
|
Supply for GPIO_1. 1.8V, 2.8V, or 3.3V.
|
|
|
|
orientation: true
|
|
rotation: true
|
|
|
|
port:
|
|
$ref: /schemas/graph.yaml#/$defs/port-base
|
|
additionalProperties: false
|
|
|
|
properties:
|
|
endpoint:
|
|
$ref: /schemas/media/video-interfaces.yaml#
|
|
unevaluatedProperties: false
|
|
|
|
properties:
|
|
bus-type:
|
|
const: 4 # CSI-2 D-PHY
|
|
|
|
data-lanes:
|
|
description:
|
|
This property is for lane reordering between the THP7312 and the
|
|
SoC. The sensor supports either two-lane, or four-lane operation.
|
|
If this property is omitted four-lane operation is assumed. For
|
|
two-lane operation the property must be set to <1 2>.
|
|
minItems: 2
|
|
maxItems: 4
|
|
items:
|
|
maximum: 4
|
|
|
|
sensors:
|
|
type: object
|
|
description: List of connected sensors
|
|
|
|
properties:
|
|
"#address-cells":
|
|
const: 1
|
|
|
|
"#size-cells":
|
|
const: 0
|
|
|
|
patternProperties:
|
|
"^sensor@[01]$":
|
|
type: object
|
|
description:
|
|
Sensors connected to the first and second input, with one node per
|
|
sensor.
|
|
|
|
properties:
|
|
thine,model:
|
|
$ref: /schemas/types.yaml#/definitions/string
|
|
description:
|
|
Model of the connected sensors. Must be a valid compatible string.
|
|
|
|
reg:
|
|
description: THP7312 input port number
|
|
items:
|
|
- maximum: 1
|
|
|
|
data-lanes:
|
|
$ref: /schemas/media/video-interfaces.yaml#/properties/data-lanes
|
|
items:
|
|
maxItems: 4
|
|
description:
|
|
This property is for lane reordering between the THP7312 and the imaging
|
|
sensor that it is connected to.
|
|
|
|
required:
|
|
- reg
|
|
- data-lanes
|
|
|
|
additionalProperties: false
|
|
|
|
required:
|
|
- "#address-cells"
|
|
- "#size-cells"
|
|
|
|
additionalProperties: false
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- reset-gpios
|
|
- clocks
|
|
- vddcore-supply
|
|
- vhtermrx-supply
|
|
- vddtx-supply
|
|
- vddhost-supply
|
|
- vddcmos-supply
|
|
- vddgpio-0-supply
|
|
- vddgpio-1-supply
|
|
- sensors
|
|
- port
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/media/video-interfaces.h>
|
|
|
|
i2c {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
camera@61 {
|
|
compatible = "thine,thp7312";
|
|
reg = <0x61>;
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&cam1_pins_default>;
|
|
|
|
reset-gpios = <&pio 119 GPIO_ACTIVE_LOW>;
|
|
clocks = <&camera61_clk>;
|
|
|
|
vddcore-supply = <&vsys_v4p2>;
|
|
vhtermrx-supply = <&vsys_v4p2>;
|
|
vddtx-supply = <&vsys_v4p2>;
|
|
vddhost-supply = <&vsys_v4p2>;
|
|
vddcmos-supply = <&vsys_v4p2>;
|
|
vddgpio-0-supply = <&vsys_v4p2>;
|
|
vddgpio-1-supply = <&vsys_v4p2>;
|
|
|
|
orientation = <0>;
|
|
rotation = <0>;
|
|
|
|
sensors {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
sensor@0 {
|
|
thine,model = "sony,imx258";
|
|
reg = <0>;
|
|
|
|
data-lanes = <4 1 3 2>;
|
|
};
|
|
};
|
|
|
|
port {
|
|
thp7312_2_endpoint: endpoint {
|
|
remote-endpoint = <&mipi_thp7312_2>;
|
|
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
|
|
data-lanes = <4 2 1 3>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
...
|