Add a device tree binding for the Omnivision OV8858 image sensor. The OV8858 is an 8 megapixel image sensor which provides images in RAW format over MIPI CSI-2 data bus and is controlled through an I2C-compatibile SCCB bus. Tested on PinePhone Pro with libcamera cam and qcam. Signed-off-by: Nicholas Roth <nicholas@xxxxxxxxxxxxx> --- .../bindings/i2c/ovti,ov8858-i2c.yaml | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Documentation/devicetree/bindings/i2c/ovti,ov8858-i2c.yaml diff --git a/Documentation/devicetree/bindings/i2c/ovti,ov8858-i2c.yaml b/Documentation/devicetree/bindings/i2c/ovti,ov8858-i2c.yaml new file mode 100644 index 000000000000..1300c1b6fa17 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/ovti,ov8858-i2c.yaml @@ -0,0 +1,78 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/i2c/i2c-imx.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Freescale Inter IC (I2C) and High Speed Inter IC (HS-I2C) for OV8858 + +allOf: + - $ref: /schemas/i2c/i2c-controller.yaml# + +properties: + compatible: ovti,ov8858 + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + maxItems: 1 + + clock-names: + const: xvclk + + clock-frequency: + minimum: 24000000 + default: 24000000 + maximum: 24000000 + +required: + - compatible + - reg + - interrupts + - clocks + +unevaluatedProperties: false + +examples: + - | + i2c@ff110000 { + status = "okay"; + + clock-frequency = <400000>; + i2c-scl-rising-time-ns = <300>; + i2c-scl-falling-time-ns = <15>; + + pinctrl-0 = <&i2c1_xfer &cif_clkouta>; + + assigned-clocks = <&cru SCLK_CIF_OUT &cru SCLK_CIF_OUT_SRC>; + assigned-clock-parents = <&cru SCLK_CIF_OUT_SRC &cru PLL_GPLL>; + assigned-clock-rates = <19200000 0>; + ucam: camera@36 { + compatible = "ovti,ov8858"; + reg = <0x36>; + pinctrl-names = "default"; + pinctrl-0 = <&ucam_pdn &ucam_rst>; + + clocks = <&cru SCLK_CIF_OUT>; + clock-names = "xvclk"; + + dovdd-supply = <&vcc1v8_dvp>; + /*XXX: also depends on vcca1v8_codec for I2C bus power */ + + reset-gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_LOW>; + powerdown-gpios = <&gpio2 RK_PB4 GPIO_ACTIVE_LOW>; + + rotation = <180>; + + port { + ucam_out: endpoint { + remote-endpoint = <&mipi_in_ucam>; + data-lanes = <1 2 3 4>; + }; + }; + }; + }; -- 2.34.1