xref: /freebsd/sys/contrib/device-tree/Bindings/media/samsung,s5c73m3.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1*fac71e4eSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*fac71e4eSEmmanuel Vadot%YAML 1.2
3*fac71e4eSEmmanuel Vadot---
4*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/media/samsung,s5c73m3.yaml#
5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*fac71e4eSEmmanuel Vadot
7*fac71e4eSEmmanuel Vadottitle: Samsung S5C73M3 8Mp camera ISP
8*fac71e4eSEmmanuel Vadot
9*fac71e4eSEmmanuel Vadotmaintainers:
10*fac71e4eSEmmanuel Vadot  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
11*fac71e4eSEmmanuel Vadot  - Sylwester Nawrocki <s.nawrocki@samsung.com>
12*fac71e4eSEmmanuel Vadot
13*fac71e4eSEmmanuel Vadotdescription:
14*fac71e4eSEmmanuel Vadot  The S5C73M3 camera ISP supports MIPI CSI-2 and parallel (ITU-R BT.656)
15*fac71e4eSEmmanuel Vadot  video data busses. The I2C bus is the main control bus and additionally the
16*fac71e4eSEmmanuel Vadot  SPI bus is used, mostly for transferring the firmware to and from the
17*fac71e4eSEmmanuel Vadot  device. Two slave device nodes corresponding to these control bus
18*fac71e4eSEmmanuel Vadot  interfaces are required and should be placed under respective bus
19*fac71e4eSEmmanuel Vadot  controller nodes.
20*fac71e4eSEmmanuel Vadot
21*fac71e4eSEmmanuel Vadotproperties:
22*fac71e4eSEmmanuel Vadot  compatible:
23*fac71e4eSEmmanuel Vadot    const: samsung,s5c73m3
24*fac71e4eSEmmanuel Vadot
25*fac71e4eSEmmanuel Vadot  reg:
26*fac71e4eSEmmanuel Vadot    maxItems: 1
27*fac71e4eSEmmanuel Vadot
28*fac71e4eSEmmanuel Vadot  clocks:
29*fac71e4eSEmmanuel Vadot    maxItems: 1
30*fac71e4eSEmmanuel Vadot
31*fac71e4eSEmmanuel Vadot  clock-names:
32*fac71e4eSEmmanuel Vadot    items:
33*fac71e4eSEmmanuel Vadot      - const: cis_extclk
34*fac71e4eSEmmanuel Vadot
35*fac71e4eSEmmanuel Vadot  clock-frequency:
36*fac71e4eSEmmanuel Vadot    default: 24000000
37*fac71e4eSEmmanuel Vadot    description: cis_extclk clock frequency.
38*fac71e4eSEmmanuel Vadot
39*fac71e4eSEmmanuel Vadot  standby-gpios:
40*fac71e4eSEmmanuel Vadot    maxItems: 1
41*fac71e4eSEmmanuel Vadot    description: STANDBY pin.
42*fac71e4eSEmmanuel Vadot
43*fac71e4eSEmmanuel Vadot  vdda-supply:
44*fac71e4eSEmmanuel Vadot    description: Analog power supply (1.2V).
45*fac71e4eSEmmanuel Vadot
46*fac71e4eSEmmanuel Vadot  vdd-af-supply:
47*fac71e4eSEmmanuel Vadot    description: lens power supply (2.8V).
48*fac71e4eSEmmanuel Vadot
49*fac71e4eSEmmanuel Vadot  vddio-cis-supply:
50*fac71e4eSEmmanuel Vadot    description: CIS I/O power supply (1.2V to 1.8V).
51*fac71e4eSEmmanuel Vadot
52*fac71e4eSEmmanuel Vadot  vddio-host-supply:
53*fac71e4eSEmmanuel Vadot    description: Host I/O power supply (1.8V to 2.8V).
54*fac71e4eSEmmanuel Vadot
55*fac71e4eSEmmanuel Vadot  vdd-int-supply:
56*fac71e4eSEmmanuel Vadot    description: Digital power supply (1.2V).
57*fac71e4eSEmmanuel Vadot
58*fac71e4eSEmmanuel Vadot  vdd-reg-supply:
59*fac71e4eSEmmanuel Vadot    description: Regulator input power supply (2.8V).
60*fac71e4eSEmmanuel Vadot
61*fac71e4eSEmmanuel Vadot  xshutdown-gpios:
62*fac71e4eSEmmanuel Vadot    maxItems: 1
63*fac71e4eSEmmanuel Vadot    description: XSHUTDOWN pin.
64*fac71e4eSEmmanuel Vadot
65*fac71e4eSEmmanuel Vadot  port:
66*fac71e4eSEmmanuel Vadot    $ref: /schemas/graph.yaml#/$defs/port-base
67*fac71e4eSEmmanuel Vadot    additionalProperties: false
68*fac71e4eSEmmanuel Vadot
69*fac71e4eSEmmanuel Vadot    properties:
70*fac71e4eSEmmanuel Vadot      endpoint:
71*fac71e4eSEmmanuel Vadot        $ref: /schemas/media/video-interfaces.yaml#
72*fac71e4eSEmmanuel Vadot        unevaluatedProperties: false
73*fac71e4eSEmmanuel Vadot
74*fac71e4eSEmmanuel Vadot        properties:
75*fac71e4eSEmmanuel Vadot          data-lanes:
76*fac71e4eSEmmanuel Vadot            items:
77*fac71e4eSEmmanuel Vadot              - const: 1
78*fac71e4eSEmmanuel Vadot              - const: 2
79*fac71e4eSEmmanuel Vadot              - const: 3
80*fac71e4eSEmmanuel Vadot              - const: 4
81*fac71e4eSEmmanuel Vadot
82*fac71e4eSEmmanuel Vadotrequired:
83*fac71e4eSEmmanuel Vadot  - compatible
84*fac71e4eSEmmanuel Vadot  - reg
85*fac71e4eSEmmanuel Vadot
86*fac71e4eSEmmanuel VadotallOf:
87*fac71e4eSEmmanuel Vadot  - $ref: /schemas/spi/spi-peripheral-props.yaml#
88*fac71e4eSEmmanuel Vadot  - if:
89*fac71e4eSEmmanuel Vadot      required:
90*fac71e4eSEmmanuel Vadot        - spi-max-frequency
91*fac71e4eSEmmanuel Vadot    then:
92*fac71e4eSEmmanuel Vadot      properties:
93*fac71e4eSEmmanuel Vadot        # The SPI node is simplified firmware-transfer interface only
94*fac71e4eSEmmanuel Vadot        clocks: false
95*fac71e4eSEmmanuel Vadot        clock-names: false
96*fac71e4eSEmmanuel Vadot        standby-gpios: false
97*fac71e4eSEmmanuel Vadot        vdda-supply: false
98*fac71e4eSEmmanuel Vadot        vdd-af-supply: false
99*fac71e4eSEmmanuel Vadot        vddio-cis-supply: false
100*fac71e4eSEmmanuel Vadot        vddio-host-supply: false
101*fac71e4eSEmmanuel Vadot        vdd-int-supply: false
102*fac71e4eSEmmanuel Vadot        vdd-reg-supply: false
103*fac71e4eSEmmanuel Vadot        xshutdown-gpios: false
104*fac71e4eSEmmanuel Vadot        port: false
105*fac71e4eSEmmanuel Vadot    else:
106*fac71e4eSEmmanuel Vadot      required:
107*fac71e4eSEmmanuel Vadot        - clocks
108*fac71e4eSEmmanuel Vadot        - clock-names
109*fac71e4eSEmmanuel Vadot        - standby-gpios
110*fac71e4eSEmmanuel Vadot        - vdda-supply
111*fac71e4eSEmmanuel Vadot        - vdd-af-supply
112*fac71e4eSEmmanuel Vadot        - vddio-cis-supply
113*fac71e4eSEmmanuel Vadot        - vddio-host-supply
114*fac71e4eSEmmanuel Vadot        - vdd-int-supply
115*fac71e4eSEmmanuel Vadot        - vdd-reg-supply
116*fac71e4eSEmmanuel Vadot        - xshutdown-gpios
117*fac71e4eSEmmanuel Vadot        - port
118*fac71e4eSEmmanuel Vadot
119*fac71e4eSEmmanuel VadotunevaluatedProperties: false
120*fac71e4eSEmmanuel Vadot
121*fac71e4eSEmmanuel Vadotexamples:
122*fac71e4eSEmmanuel Vadot  - |
123*fac71e4eSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
124*fac71e4eSEmmanuel Vadot
125*fac71e4eSEmmanuel Vadot    i2c {
126*fac71e4eSEmmanuel Vadot        #address-cells = <1>;
127*fac71e4eSEmmanuel Vadot        #size-cells = <0>;
128*fac71e4eSEmmanuel Vadot
129*fac71e4eSEmmanuel Vadot        image-sensor@3c {
130*fac71e4eSEmmanuel Vadot            compatible = "samsung,s5c73m3";
131*fac71e4eSEmmanuel Vadot            reg = <0x3c>;
132*fac71e4eSEmmanuel Vadot            clock-frequency = <24000000>;
133*fac71e4eSEmmanuel Vadot            clocks = <&camera 0>;
134*fac71e4eSEmmanuel Vadot            clock-names = "cis_extclk";
135*fac71e4eSEmmanuel Vadot            standby-gpios = <&gpm0 6 GPIO_ACTIVE_LOW>;
136*fac71e4eSEmmanuel Vadot            vdda-supply = <&cam_vdda_reg>;
137*fac71e4eSEmmanuel Vadot            vdd-af-supply = <&cam_af_reg>;
138*fac71e4eSEmmanuel Vadot            vddio-cis-supply = <&ldo9_reg>;
139*fac71e4eSEmmanuel Vadot            vddio-host-supply = <&ldo18_reg>;
140*fac71e4eSEmmanuel Vadot            vdd-int-supply = <&buck9_reg>;
141*fac71e4eSEmmanuel Vadot            vdd-reg-supply = <&cam_io_reg>;
142*fac71e4eSEmmanuel Vadot            xshutdown-gpios = <&gpf1 3 GPIO_ACTIVE_LOW>; /* ISP_RESET */
143*fac71e4eSEmmanuel Vadot
144*fac71e4eSEmmanuel Vadot            port {
145*fac71e4eSEmmanuel Vadot                s5c73m3_ep: endpoint {
146*fac71e4eSEmmanuel Vadot                    remote-endpoint = <&csis0_ep>;
147*fac71e4eSEmmanuel Vadot                    data-lanes = <1 2 3 4>;
148*fac71e4eSEmmanuel Vadot                };
149*fac71e4eSEmmanuel Vadot            };
150*fac71e4eSEmmanuel Vadot        };
151*fac71e4eSEmmanuel Vadot    };
152*fac71e4eSEmmanuel Vadot
153*fac71e4eSEmmanuel Vadot    spi {
154*fac71e4eSEmmanuel Vadot        #address-cells = <1>;
155*fac71e4eSEmmanuel Vadot        #size-cells = <0>;
156*fac71e4eSEmmanuel Vadot
157*fac71e4eSEmmanuel Vadot        image-sensor@0 {
158*fac71e4eSEmmanuel Vadot            compatible = "samsung,s5c73m3";
159*fac71e4eSEmmanuel Vadot            reg = <0>;
160*fac71e4eSEmmanuel Vadot            spi-max-frequency = <50000000>;
161*fac71e4eSEmmanuel Vadot            controller-data {
162*fac71e4eSEmmanuel Vadot                samsung,spi-feedback-delay = <2>;
163*fac71e4eSEmmanuel Vadot            };
164*fac71e4eSEmmanuel Vadot        };
165*fac71e4eSEmmanuel Vadot    };
166