xref: /openbmc/linux/Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml (revision 72051783cd736d82711fe6fd1df2b71a0d4d6e82)
1*72051783SSakari Ailus# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*72051783SSakari Ailus# Copyright (C) 2014--2020 Intel Corporation
3*72051783SSakari Ailus
4*72051783SSakari Ailus$id: http://devicetree.org/schemas/media/i2c/mipi-ccs.yaml#
5*72051783SSakari Ailus$schema: http://devicetree.org/meta-schemas/core.yaml#
6*72051783SSakari Ailus
7*72051783SSakari Ailustitle: MIPI CCS, SMIA++ and SMIA compliant camera sensors
8*72051783SSakari Ailus
9*72051783SSakari Ailusmaintainers:
10*72051783SSakari Ailus  - Sakari Ailus <sakari.ailus@linux.intel.com>
11*72051783SSakari Ailus
12*72051783SSakari Ailusdescription:
13*72051783SSakari Ailus
14*72051783SSakari Ailus  CCS (Camera Command Set) is a raw Bayer camera sensor standard defined by the
15*72051783SSakari Ailus  MIPI Alliance; see
16*72051783SSakari Ailus  <URL:https://www.mipi.org/specifications/camera-command-set>.
17*72051783SSakari Ailus
18*72051783SSakari Ailus  SMIA (Standard Mobile Imaging Architecture) is an image sensor standard
19*72051783SSakari Ailus  defined jointly by Nokia and ST. SMIA++, defined by Nokia, is an extension of
20*72051783SSakari Ailus  that.
21*72051783SSakari Ailus
22*72051783SSakari Ailus  More detailed documentation can be found in
23*72051783SSakari Ailus  Documentation/devicetree/bindings/media/video-interfaces.txt .
24*72051783SSakari Ailus
25*72051783SSakari Ailusproperties:
26*72051783SSakari Ailus  compatible:
27*72051783SSakari Ailus    oneOf:
28*72051783SSakari Ailus      - items:
29*72051783SSakari Ailus        - const: mipi-ccs-1.1
30*72051783SSakari Ailus        - const: mipi-ccs
31*72051783SSakari Ailus      - items:
32*72051783SSakari Ailus        - const: mipi-ccs-1.0
33*72051783SSakari Ailus        - const: mipi-ccs
34*72051783SSakari Ailus      - const: nokia,smia
35*72051783SSakari Ailus
36*72051783SSakari Ailus  reg:
37*72051783SSakari Ailus    maxItems: 1
38*72051783SSakari Ailus
39*72051783SSakari Ailus  vana-supply:
40*72051783SSakari Ailus    description: Analogue voltage supply (VANA), typically 2,8 volts (sensor
41*72051783SSakari Ailus      dependent).
42*72051783SSakari Ailus    maxItems: 1
43*72051783SSakari Ailus
44*72051783SSakari Ailus  clocks:
45*72051783SSakari Ailus    description: External clock to the sensor.
46*72051783SSakari Ailus    maxItems: 1
47*72051783SSakari Ailus
48*72051783SSakari Ailus  clock-frequency:
49*72051783SSakari Ailus    description: Frequency of the external clock to the sensor in Hz.
50*72051783SSakari Ailus
51*72051783SSakari Ailus  reset-gpios:
52*72051783SSakari Ailus    description: Reset GPIO. Also commonly called XSHUTDOWN in hardware
53*72051783SSakari Ailus      documentation.
54*72051783SSakari Ailus    maxItems: 1
55*72051783SSakari Ailus
56*72051783SSakari Ailus  flash-leds:
57*72051783SSakari Ailus    description: Flash LED phandles. See ../video-interfaces.txt for details.
58*72051783SSakari Ailus
59*72051783SSakari Ailus  lens-focus:
60*72051783SSakari Ailus    description: Lens focus controller phandles. See ../video-interfaces.txt
61*72051783SSakari Ailus      for details.
62*72051783SSakari Ailus
63*72051783SSakari Ailus  rotation:
64*72051783SSakari Ailus    description: Rotation of the sensor.  See ../video-interfaces.txt for
65*72051783SSakari Ailus      details.
66*72051783SSakari Ailus    enum: [ 0, 180 ]
67*72051783SSakari Ailus
68*72051783SSakari Ailus  port:
69*72051783SSakari Ailus    type: object
70*72051783SSakari Ailus    properties:
71*72051783SSakari Ailus      endpoint:
72*72051783SSakari Ailus        type: object
73*72051783SSakari Ailus        properties:
74*72051783SSakari Ailus          link-frequencies:
75*72051783SSakari Ailus            $ref: /schemas/types.yaml#/definitions/uint64-array
76*72051783SSakari Ailus            description: List of allowed data link frequencies.
77*72051783SSakari Ailus          data-lanes:
78*72051783SSakari Ailus            minItems: 1
79*72051783SSakari Ailus            maxItems: 8
80*72051783SSakari Ailus        required:
81*72051783SSakari Ailus          - link-frequencies
82*72051783SSakari Ailus          - data-lanes
83*72051783SSakari Ailus
84*72051783SSakari Ailusrequired:
85*72051783SSakari Ailus  - compatible
86*72051783SSakari Ailus  - reg
87*72051783SSakari Ailus  - clock-frequency
88*72051783SSakari Ailus  - clocks
89*72051783SSakari Ailus
90*72051783SSakari AilusadditionalProperties: false
91*72051783SSakari Ailus
92*72051783SSakari Ailusexamples:
93*72051783SSakari Ailus  - |
94*72051783SSakari Ailus    #include <dt-bindings/gpio/gpio.h>
95*72051783SSakari Ailus
96*72051783SSakari Ailus    i2c2 {
97*72051783SSakari Ailus        #address-cells = <1>;
98*72051783SSakari Ailus        #size-cells = <0>;
99*72051783SSakari Ailus
100*72051783SSakari Ailus        clock-frequency = <400000>;
101*72051783SSakari Ailus
102*72051783SSakari Ailus        camera-sensor@10 {
103*72051783SSakari Ailus            compatible = "mipi-ccs-1.0", "mipi-ccs";
104*72051783SSakari Ailus            reg = <0x10>;
105*72051783SSakari Ailus            reset-gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
106*72051783SSakari Ailus            vana-supply = <&vaux3>;
107*72051783SSakari Ailus            clocks = <&omap3_isp 0>;
108*72051783SSakari Ailus            clock-frequency = <9600000>;
109*72051783SSakari Ailus            port {
110*72051783SSakari Ailus                ccs_ep: endpoint {
111*72051783SSakari Ailus                    data-lanes = <1 2>;
112*72051783SSakari Ailus                    remote-endpoint = <&csi2a_ep>;
113*72051783SSakari Ailus                    link-frequencies = /bits/ 64 <199200000 210000000
114*72051783SSakari Ailus                                                  499200000>;
115*72051783SSakari Ailus                };
116*72051783SSakari Ailus            };
117*72051783SSakari Ailus        };
118*72051783SSakari Ailus    };
119*72051783SSakari Ailus...
120