162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/media/samsung,s5c73m3.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Samsung S5C73M3 8Mp camera ISP
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
1162306a36Sopenharmony_ci  - Sylwester Nawrocki <s.nawrocki@samsung.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription:
1462306a36Sopenharmony_ci  The S5C73M3 camera ISP supports MIPI CSI-2 and parallel (ITU-R BT.656)
1562306a36Sopenharmony_ci  video data busses. The I2C bus is the main control bus and additionally the
1662306a36Sopenharmony_ci  SPI bus is used, mostly for transferring the firmware to and from the
1762306a36Sopenharmony_ci  device. Two slave device nodes corresponding to these control bus
1862306a36Sopenharmony_ci  interfaces are required and should be placed under respective bus
1962306a36Sopenharmony_ci  controller nodes.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciproperties:
2262306a36Sopenharmony_ci  compatible:
2362306a36Sopenharmony_ci    const: samsung,s5c73m3
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci  reg:
2662306a36Sopenharmony_ci    maxItems: 1
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  clocks:
2962306a36Sopenharmony_ci    maxItems: 1
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  clock-names:
3262306a36Sopenharmony_ci    items:
3362306a36Sopenharmony_ci      - const: cis_extclk
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  clock-frequency:
3662306a36Sopenharmony_ci    default: 24000000
3762306a36Sopenharmony_ci    description: cis_extclk clock frequency.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  standby-gpios:
4062306a36Sopenharmony_ci    maxItems: 1
4162306a36Sopenharmony_ci    description: STANDBY pin.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  vdda-supply:
4462306a36Sopenharmony_ci    description: Analog power supply (1.2V).
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  vdd-af-supply:
4762306a36Sopenharmony_ci    description: lens power supply (2.8V).
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  vddio-cis-supply:
5062306a36Sopenharmony_ci    description: CIS I/O power supply (1.2V to 1.8V).
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  vddio-host-supply:
5362306a36Sopenharmony_ci    description: Host I/O power supply (1.8V to 2.8V).
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  vdd-int-supply:
5662306a36Sopenharmony_ci    description: Digital power supply (1.2V).
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci  vdd-reg-supply:
5962306a36Sopenharmony_ci    description: Regulator input power supply (2.8V).
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci  xshutdown-gpios:
6262306a36Sopenharmony_ci    maxItems: 1
6362306a36Sopenharmony_ci    description: XSHUTDOWN pin.
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci  port:
6662306a36Sopenharmony_ci    $ref: /schemas/graph.yaml#/$defs/port-base
6762306a36Sopenharmony_ci    additionalProperties: false
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci    properties:
7062306a36Sopenharmony_ci      endpoint:
7162306a36Sopenharmony_ci        $ref: /schemas/media/video-interfaces.yaml#
7262306a36Sopenharmony_ci        unevaluatedProperties: false
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci        properties:
7562306a36Sopenharmony_ci          data-lanes:
7662306a36Sopenharmony_ci            items:
7762306a36Sopenharmony_ci              - const: 1
7862306a36Sopenharmony_ci              - const: 2
7962306a36Sopenharmony_ci              - const: 3
8062306a36Sopenharmony_ci              - const: 4
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_cirequired:
8362306a36Sopenharmony_ci  - compatible
8462306a36Sopenharmony_ci  - reg
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ciallOf:
8762306a36Sopenharmony_ci  - $ref: /schemas/spi/spi-peripheral-props.yaml#
8862306a36Sopenharmony_ci  - if:
8962306a36Sopenharmony_ci      required:
9062306a36Sopenharmony_ci        - spi-max-frequency
9162306a36Sopenharmony_ci    then:
9262306a36Sopenharmony_ci      properties:
9362306a36Sopenharmony_ci        # The SPI node is simplified firmware-transfer interface only
9462306a36Sopenharmony_ci        clocks: false
9562306a36Sopenharmony_ci        clock-names: false
9662306a36Sopenharmony_ci        standby-gpios: false
9762306a36Sopenharmony_ci        vdda-supply: false
9862306a36Sopenharmony_ci        vdd-af-supply: false
9962306a36Sopenharmony_ci        vddio-cis-supply: false
10062306a36Sopenharmony_ci        vddio-host-supply: false
10162306a36Sopenharmony_ci        vdd-int-supply: false
10262306a36Sopenharmony_ci        vdd-reg-supply: false
10362306a36Sopenharmony_ci        xshutdown-gpios: false
10462306a36Sopenharmony_ci        port: false
10562306a36Sopenharmony_ci    else:
10662306a36Sopenharmony_ci      required:
10762306a36Sopenharmony_ci        - clocks
10862306a36Sopenharmony_ci        - clock-names
10962306a36Sopenharmony_ci        - standby-gpios
11062306a36Sopenharmony_ci        - vdda-supply
11162306a36Sopenharmony_ci        - vdd-af-supply
11262306a36Sopenharmony_ci        - vddio-cis-supply
11362306a36Sopenharmony_ci        - vddio-host-supply
11462306a36Sopenharmony_ci        - vdd-int-supply
11562306a36Sopenharmony_ci        - vdd-reg-supply
11662306a36Sopenharmony_ci        - xshutdown-gpios
11762306a36Sopenharmony_ci        - port
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ciunevaluatedProperties: false
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ciexamples:
12262306a36Sopenharmony_ci  - |
12362306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci    i2c {
12662306a36Sopenharmony_ci        #address-cells = <1>;
12762306a36Sopenharmony_ci        #size-cells = <0>;
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci        image-sensor@3c {
13062306a36Sopenharmony_ci            compatible = "samsung,s5c73m3";
13162306a36Sopenharmony_ci            reg = <0x3c>;
13262306a36Sopenharmony_ci            clock-frequency = <24000000>;
13362306a36Sopenharmony_ci            clocks = <&camera 0>;
13462306a36Sopenharmony_ci            clock-names = "cis_extclk";
13562306a36Sopenharmony_ci            standby-gpios = <&gpm0 6 GPIO_ACTIVE_LOW>;
13662306a36Sopenharmony_ci            vdda-supply = <&cam_vdda_reg>;
13762306a36Sopenharmony_ci            vdd-af-supply = <&cam_af_reg>;
13862306a36Sopenharmony_ci            vddio-cis-supply = <&ldo9_reg>;
13962306a36Sopenharmony_ci            vddio-host-supply = <&ldo18_reg>;
14062306a36Sopenharmony_ci            vdd-int-supply = <&buck9_reg>;
14162306a36Sopenharmony_ci            vdd-reg-supply = <&cam_io_reg>;
14262306a36Sopenharmony_ci            xshutdown-gpios = <&gpf1 3 GPIO_ACTIVE_LOW>; /* ISP_RESET */
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci            port {
14562306a36Sopenharmony_ci                s5c73m3_ep: endpoint {
14662306a36Sopenharmony_ci                    remote-endpoint = <&csis0_ep>;
14762306a36Sopenharmony_ci                    data-lanes = <1 2 3 4>;
14862306a36Sopenharmony_ci                };
14962306a36Sopenharmony_ci            };
15062306a36Sopenharmony_ci        };
15162306a36Sopenharmony_ci    };
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci    spi {
15462306a36Sopenharmony_ci        #address-cells = <1>;
15562306a36Sopenharmony_ci        #size-cells = <0>;
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci        image-sensor@0 {
15862306a36Sopenharmony_ci            compatible = "samsung,s5c73m3";
15962306a36Sopenharmony_ci            reg = <0>;
16062306a36Sopenharmony_ci            spi-max-frequency = <50000000>;
16162306a36Sopenharmony_ci            controller-data {
16262306a36Sopenharmony_ci                samsung,spi-feedback-delay = <2>;
16362306a36Sopenharmony_ci            };
16462306a36Sopenharmony_ci        };
16562306a36Sopenharmony_ci    };
166