xref: /linux/Documentation/devicetree/bindings/media/i2c/sony,imx355.yaml (revision 00c6649bafef628955569dd39a59e3170e48f7b5)
1*cdf81b4eSRichard Acayan# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*cdf81b4eSRichard Acayan%YAML 1.2
3*cdf81b4eSRichard Acayan---
4*cdf81b4eSRichard Acayan$id: http://devicetree.org/schemas/media/i2c/sony,imx355.yaml#
5*cdf81b4eSRichard Acayan$schema: http://devicetree.org/meta-schemas/core.yaml#
6*cdf81b4eSRichard Acayan
7*cdf81b4eSRichard Acayantitle: Sony IMX355 Sensor
8*cdf81b4eSRichard Acayan
9*cdf81b4eSRichard Acayanmaintainers:
10*cdf81b4eSRichard Acayan  - Richard Acayan <mailingradian@gmail.com>
11*cdf81b4eSRichard Acayan
12*cdf81b4eSRichard Acayandescription:
13*cdf81b4eSRichard Acayan  The IMX355 sensor is a 3280x2464 image sensor, commonly found as the front
14*cdf81b4eSRichard Acayan  camera in smartphones.
15*cdf81b4eSRichard Acayan
16*cdf81b4eSRichard AcayanallOf:
17*cdf81b4eSRichard Acayan  - $ref: /schemas/media/video-interface-devices.yaml#
18*cdf81b4eSRichard Acayan
19*cdf81b4eSRichard Acayanproperties:
20*cdf81b4eSRichard Acayan  compatible:
21*cdf81b4eSRichard Acayan    const: sony,imx355
22*cdf81b4eSRichard Acayan
23*cdf81b4eSRichard Acayan  reg:
24*cdf81b4eSRichard Acayan    maxItems: 1
25*cdf81b4eSRichard Acayan
26*cdf81b4eSRichard Acayan  clocks:
27*cdf81b4eSRichard Acayan    maxItems: 1
28*cdf81b4eSRichard Acayan
29*cdf81b4eSRichard Acayan  avdd-supply:
30*cdf81b4eSRichard Acayan    description: Analog power supply.
31*cdf81b4eSRichard Acayan
32*cdf81b4eSRichard Acayan  dvdd-supply:
33*cdf81b4eSRichard Acayan    description: Digital power supply.
34*cdf81b4eSRichard Acayan
35*cdf81b4eSRichard Acayan  dovdd-supply:
36*cdf81b4eSRichard Acayan    description: Interface power supply.
37*cdf81b4eSRichard Acayan
38*cdf81b4eSRichard Acayan  reset-gpios:
39*cdf81b4eSRichard Acayan    description: Reset GPIO (active low).
40*cdf81b4eSRichard Acayan    maxItems: 1
41*cdf81b4eSRichard Acayan
42*cdf81b4eSRichard Acayan  port:
43*cdf81b4eSRichard Acayan    $ref: /schemas/graph.yaml#/$defs/port-base
44*cdf81b4eSRichard Acayan    additionalProperties: false
45*cdf81b4eSRichard Acayan
46*cdf81b4eSRichard Acayan    properties:
47*cdf81b4eSRichard Acayan      endpoint:
48*cdf81b4eSRichard Acayan        $ref: /schemas/media/video-interfaces.yaml
49*cdf81b4eSRichard Acayan        unevaluatedProperties: false
50*cdf81b4eSRichard Acayan
51*cdf81b4eSRichard Acayan        properties:
52*cdf81b4eSRichard Acayan          data-lanes:
53*cdf81b4eSRichard Acayan            minItems: 4
54*cdf81b4eSRichard Acayan            maxItems: 4
55*cdf81b4eSRichard Acayan
56*cdf81b4eSRichard Acayan        required:
57*cdf81b4eSRichard Acayan          - link-frequencies
58*cdf81b4eSRichard Acayan
59*cdf81b4eSRichard Acayan    required:
60*cdf81b4eSRichard Acayan      - endpoint
61*cdf81b4eSRichard Acayan
62*cdf81b4eSRichard Acayanrequired:
63*cdf81b4eSRichard Acayan  - compatible
64*cdf81b4eSRichard Acayan  - reg
65*cdf81b4eSRichard Acayan  - clocks
66*cdf81b4eSRichard Acayan  - avdd-supply
67*cdf81b4eSRichard Acayan  - dvdd-supply
68*cdf81b4eSRichard Acayan  - dovdd-supply
69*cdf81b4eSRichard Acayan  - port
70*cdf81b4eSRichard Acayan
71*cdf81b4eSRichard AcayanunevaluatedProperties: false
72*cdf81b4eSRichard Acayan
73*cdf81b4eSRichard Acayanexamples:
74*cdf81b4eSRichard Acayan  - |
75*cdf81b4eSRichard Acayan    #include <dt-bindings/clock/qcom,camcc-sdm845.h>
76*cdf81b4eSRichard Acayan    #include <dt-bindings/gpio/gpio.h>
77*cdf81b4eSRichard Acayan
78*cdf81b4eSRichard Acayan    i2c {
79*cdf81b4eSRichard Acayan        #address-cells = <1>;
80*cdf81b4eSRichard Acayan        #size-cells = <0>;
81*cdf81b4eSRichard Acayan
82*cdf81b4eSRichard Acayan        camera@1a {
83*cdf81b4eSRichard Acayan            compatible = "sony,imx355";
84*cdf81b4eSRichard Acayan            reg = <0x1a>;
85*cdf81b4eSRichard Acayan
86*cdf81b4eSRichard Acayan            clocks = <&camcc CAM_CC_MCLK2_CLK>;
87*cdf81b4eSRichard Acayan
88*cdf81b4eSRichard Acayan            assigned-clocks = <&camcc CAM_CC_MCLK2_CLK>;
89*cdf81b4eSRichard Acayan            assigned-clock-rates = <24000000>;
90*cdf81b4eSRichard Acayan
91*cdf81b4eSRichard Acayan            reset-gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
92*cdf81b4eSRichard Acayan
93*cdf81b4eSRichard Acayan            avdd-supply = <&cam_front_ldo>;
94*cdf81b4eSRichard Acayan            dvdd-supply = <&cam_front_ldo>;
95*cdf81b4eSRichard Acayan            dovdd-supply = <&cam_vio_ldo>;
96*cdf81b4eSRichard Acayan
97*cdf81b4eSRichard Acayan            pinctrl-names = "default";
98*cdf81b4eSRichard Acayan            pinctrl-0 = <&cam_front_default>;
99*cdf81b4eSRichard Acayan
100*cdf81b4eSRichard Acayan            rotation = <270>;
101*cdf81b4eSRichard Acayan            orientation = <0>;
102*cdf81b4eSRichard Acayan
103*cdf81b4eSRichard Acayan            port {
104*cdf81b4eSRichard Acayan                cam_front_endpoint: endpoint {
105*cdf81b4eSRichard Acayan                    data-lanes = <1 2 3 4>;
106*cdf81b4eSRichard Acayan                    link-frequencies = /bits/ 64 <360000000>;
107*cdf81b4eSRichard Acayan                    remote-endpoint = <&camss_endpoint1>;
108*cdf81b4eSRichard Acayan                };
109*cdf81b4eSRichard Acayan            };
110*cdf81b4eSRichard Acayan        };
111*cdf81b4eSRichard Acayan    };
112