1*8d13bc63SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*8d13bc63SEmmanuel Vadot# Copyright (c) 2023 Ideas on Board 3*8d13bc63SEmmanuel Vadot%YAML 1.2 4*8d13bc63SEmmanuel Vadot--- 5*8d13bc63SEmmanuel Vadot$id: http://devicetree.org/schemas/media/i2c/thine,thp7312.yaml# 6*8d13bc63SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 7*8d13bc63SEmmanuel Vadot 8*8d13bc63SEmmanuel Vadottitle: THine THP7312 9*8d13bc63SEmmanuel Vadot 10*8d13bc63SEmmanuel Vadotmaintainers: 11*8d13bc63SEmmanuel Vadot - Paul Elder <paul.elder@@ideasonboard.com> 12*8d13bc63SEmmanuel Vadot 13*8d13bc63SEmmanuel Vadotdescription: 14*8d13bc63SEmmanuel Vadot The THP7312 is a standalone ISP controlled over i2c, and is capable of 15*8d13bc63SEmmanuel Vadot various image processing and correction functions, including 3A control. It 16*8d13bc63SEmmanuel Vadot can be connected to CMOS image sensors from various vendors, supporting both 17*8d13bc63SEmmanuel Vadot MIPI CSI-2 and parallel interfaces. It can also output on either MIPI CSI-2 18*8d13bc63SEmmanuel Vadot or parallel. The hardware is capable of transmitting and receiving MIPI 19*8d13bc63SEmmanuel Vadot interlaved data strams with data types or multiple virtual channel 20*8d13bc63SEmmanuel Vadot identifiers. 21*8d13bc63SEmmanuel Vadot 22*8d13bc63SEmmanuel VadotallOf: 23*8d13bc63SEmmanuel Vadot - $ref: /schemas/media/video-interface-devices.yaml# 24*8d13bc63SEmmanuel Vadot 25*8d13bc63SEmmanuel Vadotproperties: 26*8d13bc63SEmmanuel Vadot compatible: 27*8d13bc63SEmmanuel Vadot const: thine,thp7312 28*8d13bc63SEmmanuel Vadot 29*8d13bc63SEmmanuel Vadot reg: 30*8d13bc63SEmmanuel Vadot maxItems: 1 31*8d13bc63SEmmanuel Vadot 32*8d13bc63SEmmanuel Vadot clocks: 33*8d13bc63SEmmanuel Vadot maxItems: 1 34*8d13bc63SEmmanuel Vadot description: CLKI clock input 35*8d13bc63SEmmanuel Vadot 36*8d13bc63SEmmanuel Vadot thine,boot-mode: 37*8d13bc63SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 38*8d13bc63SEmmanuel Vadot minimum: 0 39*8d13bc63SEmmanuel Vadot maximum: 1 40*8d13bc63SEmmanuel Vadot default: 1 41*8d13bc63SEmmanuel Vadot description: 42*8d13bc63SEmmanuel Vadot Boot mode of the THP7312, reflecting the value of the BOOT[0] pin strap. 43*8d13bc63SEmmanuel Vadot 0 is for the SPI/2-wire slave boot, 1 is for the SPI master boot (from 44*8d13bc63SEmmanuel Vadot external flash ROM). 45*8d13bc63SEmmanuel Vadot 46*8d13bc63SEmmanuel Vadot reset-gpios: 47*8d13bc63SEmmanuel Vadot maxItems: 1 48*8d13bc63SEmmanuel Vadot description: 49*8d13bc63SEmmanuel Vadot Reference to the GPIO connected to the RESET_N pin, if any. 50*8d13bc63SEmmanuel Vadot Must be released (set high) after all supplies are applied. 51*8d13bc63SEmmanuel Vadot 52*8d13bc63SEmmanuel Vadot vddcore-supply: 53*8d13bc63SEmmanuel Vadot description: 54*8d13bc63SEmmanuel Vadot 1.2V supply for core, PLL, MIPI rx and MIPI tx. 55*8d13bc63SEmmanuel Vadot 56*8d13bc63SEmmanuel Vadot vhtermrx-supply: 57*8d13bc63SEmmanuel Vadot description: 58*8d13bc63SEmmanuel Vadot Supply for input (RX). 1.8V for MIPI, or 1.8/2.8/3.3V for parallel. 59*8d13bc63SEmmanuel Vadot 60*8d13bc63SEmmanuel Vadot vddtx-supply: 61*8d13bc63SEmmanuel Vadot description: 62*8d13bc63SEmmanuel Vadot Supply for output (TX). 1.8V for MIPI, or 1.8/2.8/3.3V for parallel. 63*8d13bc63SEmmanuel Vadot 64*8d13bc63SEmmanuel Vadot vddhost-supply: 65*8d13bc63SEmmanuel Vadot description: 66*8d13bc63SEmmanuel Vadot Supply for host interface. 1.8V, 2.8V, or 3.3V. 67*8d13bc63SEmmanuel Vadot 68*8d13bc63SEmmanuel Vadot vddcmos-supply: 69*8d13bc63SEmmanuel Vadot description: 70*8d13bc63SEmmanuel Vadot Supply for sensor interface. 1.8V, 2.8V, or 3.3V. 71*8d13bc63SEmmanuel Vadot 72*8d13bc63SEmmanuel Vadot vddgpio-0-supply: 73*8d13bc63SEmmanuel Vadot description: 74*8d13bc63SEmmanuel Vadot Supply for GPIO_0. 1.8V, 2.8V, or 3.3V. 75*8d13bc63SEmmanuel Vadot 76*8d13bc63SEmmanuel Vadot vddgpio-1-supply: 77*8d13bc63SEmmanuel Vadot description: 78*8d13bc63SEmmanuel Vadot Supply for GPIO_1. 1.8V, 2.8V, or 3.3V. 79*8d13bc63SEmmanuel Vadot 80*8d13bc63SEmmanuel Vadot orientation: true 81*8d13bc63SEmmanuel Vadot rotation: true 82*8d13bc63SEmmanuel Vadot 83*8d13bc63SEmmanuel Vadot port: 84*8d13bc63SEmmanuel Vadot $ref: /schemas/graph.yaml#/$defs/port-base 85*8d13bc63SEmmanuel Vadot additionalProperties: false 86*8d13bc63SEmmanuel Vadot 87*8d13bc63SEmmanuel Vadot properties: 88*8d13bc63SEmmanuel Vadot endpoint: 89*8d13bc63SEmmanuel Vadot $ref: /schemas/media/video-interfaces.yaml# 90*8d13bc63SEmmanuel Vadot unevaluatedProperties: false 91*8d13bc63SEmmanuel Vadot 92*8d13bc63SEmmanuel Vadot properties: 93*8d13bc63SEmmanuel Vadot bus-type: 94*8d13bc63SEmmanuel Vadot const: 4 # CSI-2 D-PHY 95*8d13bc63SEmmanuel Vadot 96*8d13bc63SEmmanuel Vadot data-lanes: 97*8d13bc63SEmmanuel Vadot description: 98*8d13bc63SEmmanuel Vadot This property is for lane reordering between the THP7312 and the 99*8d13bc63SEmmanuel Vadot SoC. The sensor supports either two-lane, or four-lane operation. 100*8d13bc63SEmmanuel Vadot If this property is omitted four-lane operation is assumed. For 101*8d13bc63SEmmanuel Vadot two-lane operation the property must be set to <1 2>. 102*8d13bc63SEmmanuel Vadot minItems: 2 103*8d13bc63SEmmanuel Vadot maxItems: 4 104*8d13bc63SEmmanuel Vadot items: 105*8d13bc63SEmmanuel Vadot maximum: 4 106*8d13bc63SEmmanuel Vadot 107*8d13bc63SEmmanuel Vadot sensors: 108*8d13bc63SEmmanuel Vadot type: object 109*8d13bc63SEmmanuel Vadot description: List of connected sensors 110*8d13bc63SEmmanuel Vadot 111*8d13bc63SEmmanuel Vadot properties: 112*8d13bc63SEmmanuel Vadot "#address-cells": 113*8d13bc63SEmmanuel Vadot const: 1 114*8d13bc63SEmmanuel Vadot 115*8d13bc63SEmmanuel Vadot "#size-cells": 116*8d13bc63SEmmanuel Vadot const: 0 117*8d13bc63SEmmanuel Vadot 118*8d13bc63SEmmanuel Vadot patternProperties: 119*8d13bc63SEmmanuel Vadot "^sensor@[01]$": 120*8d13bc63SEmmanuel Vadot type: object 121*8d13bc63SEmmanuel Vadot description: 122*8d13bc63SEmmanuel Vadot Sensors connected to the first and second input, with one node per 123*8d13bc63SEmmanuel Vadot sensor. 124*8d13bc63SEmmanuel Vadot 125*8d13bc63SEmmanuel Vadot properties: 126*8d13bc63SEmmanuel Vadot thine,model: 127*8d13bc63SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string 128*8d13bc63SEmmanuel Vadot description: 129*8d13bc63SEmmanuel Vadot Model of the connected sensors. Must be a valid compatible string. 130*8d13bc63SEmmanuel Vadot 131*8d13bc63SEmmanuel Vadot reg: 132*8d13bc63SEmmanuel Vadot description: THP7312 input port number 133*8d13bc63SEmmanuel Vadot items: 134*8d13bc63SEmmanuel Vadot - maximum: 1 135*8d13bc63SEmmanuel Vadot 136*8d13bc63SEmmanuel Vadot data-lanes: 137*8d13bc63SEmmanuel Vadot $ref: /schemas/media/video-interfaces.yaml#/properties/data-lanes 138*8d13bc63SEmmanuel Vadot items: 139*8d13bc63SEmmanuel Vadot maxItems: 4 140*8d13bc63SEmmanuel Vadot description: 141*8d13bc63SEmmanuel Vadot This property is for lane reordering between the THP7312 and the imaging 142*8d13bc63SEmmanuel Vadot sensor that it is connected to. 143*8d13bc63SEmmanuel Vadot 144*8d13bc63SEmmanuel Vadot required: 145*8d13bc63SEmmanuel Vadot - reg 146*8d13bc63SEmmanuel Vadot - data-lanes 147*8d13bc63SEmmanuel Vadot 148*8d13bc63SEmmanuel Vadot additionalProperties: false 149*8d13bc63SEmmanuel Vadot 150*8d13bc63SEmmanuel Vadot required: 151*8d13bc63SEmmanuel Vadot - "#address-cells" 152*8d13bc63SEmmanuel Vadot - "#size-cells" 153*8d13bc63SEmmanuel Vadot 154*8d13bc63SEmmanuel Vadot additionalProperties: false 155*8d13bc63SEmmanuel Vadot 156*8d13bc63SEmmanuel Vadotrequired: 157*8d13bc63SEmmanuel Vadot - compatible 158*8d13bc63SEmmanuel Vadot - reg 159*8d13bc63SEmmanuel Vadot - reset-gpios 160*8d13bc63SEmmanuel Vadot - clocks 161*8d13bc63SEmmanuel Vadot - vddcore-supply 162*8d13bc63SEmmanuel Vadot - vhtermrx-supply 163*8d13bc63SEmmanuel Vadot - vddtx-supply 164*8d13bc63SEmmanuel Vadot - vddhost-supply 165*8d13bc63SEmmanuel Vadot - vddcmos-supply 166*8d13bc63SEmmanuel Vadot - vddgpio-0-supply 167*8d13bc63SEmmanuel Vadot - vddgpio-1-supply 168*8d13bc63SEmmanuel Vadot - sensors 169*8d13bc63SEmmanuel Vadot - port 170*8d13bc63SEmmanuel Vadot 171*8d13bc63SEmmanuel VadotadditionalProperties: false 172*8d13bc63SEmmanuel Vadot 173*8d13bc63SEmmanuel Vadotexamples: 174*8d13bc63SEmmanuel Vadot - | 175*8d13bc63SEmmanuel Vadot #include <dt-bindings/gpio/gpio.h> 176*8d13bc63SEmmanuel Vadot #include <dt-bindings/media/video-interfaces.h> 177*8d13bc63SEmmanuel Vadot 178*8d13bc63SEmmanuel Vadot i2c { 179*8d13bc63SEmmanuel Vadot #address-cells = <1>; 180*8d13bc63SEmmanuel Vadot #size-cells = <0>; 181*8d13bc63SEmmanuel Vadot 182*8d13bc63SEmmanuel Vadot camera@61 { 183*8d13bc63SEmmanuel Vadot compatible = "thine,thp7312"; 184*8d13bc63SEmmanuel Vadot reg = <0x61>; 185*8d13bc63SEmmanuel Vadot 186*8d13bc63SEmmanuel Vadot pinctrl-names = "default"; 187*8d13bc63SEmmanuel Vadot pinctrl-0 = <&cam1_pins_default>; 188*8d13bc63SEmmanuel Vadot 189*8d13bc63SEmmanuel Vadot reset-gpios = <&pio 119 GPIO_ACTIVE_LOW>; 190*8d13bc63SEmmanuel Vadot clocks = <&camera61_clk>; 191*8d13bc63SEmmanuel Vadot 192*8d13bc63SEmmanuel Vadot vddcore-supply = <&vsys_v4p2>; 193*8d13bc63SEmmanuel Vadot vhtermrx-supply = <&vsys_v4p2>; 194*8d13bc63SEmmanuel Vadot vddtx-supply = <&vsys_v4p2>; 195*8d13bc63SEmmanuel Vadot vddhost-supply = <&vsys_v4p2>; 196*8d13bc63SEmmanuel Vadot vddcmos-supply = <&vsys_v4p2>; 197*8d13bc63SEmmanuel Vadot vddgpio-0-supply = <&vsys_v4p2>; 198*8d13bc63SEmmanuel Vadot vddgpio-1-supply = <&vsys_v4p2>; 199*8d13bc63SEmmanuel Vadot 200*8d13bc63SEmmanuel Vadot orientation = <0>; 201*8d13bc63SEmmanuel Vadot rotation = <0>; 202*8d13bc63SEmmanuel Vadot 203*8d13bc63SEmmanuel Vadot sensors { 204*8d13bc63SEmmanuel Vadot #address-cells = <1>; 205*8d13bc63SEmmanuel Vadot #size-cells = <0>; 206*8d13bc63SEmmanuel Vadot 207*8d13bc63SEmmanuel Vadot sensor@0 { 208*8d13bc63SEmmanuel Vadot thine,model = "sony,imx258"; 209*8d13bc63SEmmanuel Vadot reg = <0>; 210*8d13bc63SEmmanuel Vadot 211*8d13bc63SEmmanuel Vadot data-lanes = <4 1 3 2>; 212*8d13bc63SEmmanuel Vadot }; 213*8d13bc63SEmmanuel Vadot }; 214*8d13bc63SEmmanuel Vadot 215*8d13bc63SEmmanuel Vadot port { 216*8d13bc63SEmmanuel Vadot thp7312_2_endpoint: endpoint { 217*8d13bc63SEmmanuel Vadot remote-endpoint = <&mipi_thp7312_2>; 218*8d13bc63SEmmanuel Vadot bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>; 219*8d13bc63SEmmanuel Vadot data-lanes = <4 2 1 3>; 220*8d13bc63SEmmanuel Vadot }; 221*8d13bc63SEmmanuel Vadot }; 222*8d13bc63SEmmanuel Vadot }; 223*8d13bc63SEmmanuel Vadot }; 224*8d13bc63SEmmanuel Vadot... 225