| # 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>; |
| }; |
| }; |
| }; |
| }; |
| ... |