xref: /linux/Documentation/devicetree/bindings/media/samsung,exynos4212-fimc-is.yaml (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
19f7d8d88SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
29f7d8d88SKrzysztof Kozlowski%YAML 1.2
39f7d8d88SKrzysztof Kozlowski---
49f7d8d88SKrzysztof Kozlowski$id: http://devicetree.org/schemas/media/samsung,exynos4212-fimc-is.yaml#
59f7d8d88SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
69f7d8d88SKrzysztof Kozlowski
79f7d8d88SKrzysztof Kozlowskititle: Samsung Exynos4212/4412 SoC Imaging Subsystem (FIMC-IS)
89f7d8d88SKrzysztof Kozlowski
99f7d8d88SKrzysztof Kozlowskimaintainers:
109f7d8d88SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
119f7d8d88SKrzysztof Kozlowski  - Sylwester Nawrocki <s.nawrocki@samsung.com>
129f7d8d88SKrzysztof Kozlowski
139f7d8d88SKrzysztof Kozlowskidescription:
149f7d8d88SKrzysztof Kozlowski  The FIMC-IS is a subsystem for processing image signal from an image sensor.
159f7d8d88SKrzysztof Kozlowski  The Exynos4x12 SoC series FIMC-IS V1.5 comprises of a dedicated ARM Cortex-A5
169f7d8d88SKrzysztof Kozlowski  processor, ISP, DRC and FD IP blocks and peripheral devices such as UART, I2C
179f7d8d88SKrzysztof Kozlowski  and SPI bus controllers, PWM and ADC.
189f7d8d88SKrzysztof Kozlowski
199f7d8d88SKrzysztof Kozlowskiproperties:
209f7d8d88SKrzysztof Kozlowski  compatible:
219f7d8d88SKrzysztof Kozlowski    enum:
229f7d8d88SKrzysztof Kozlowski      - samsung,exynos4212-fimc-is
239f7d8d88SKrzysztof Kozlowski
249f7d8d88SKrzysztof Kozlowski  reg:
259f7d8d88SKrzysztof Kozlowski    maxItems: 1
269f7d8d88SKrzysztof Kozlowski
279f7d8d88SKrzysztof Kozlowski  ranges: true
289f7d8d88SKrzysztof Kozlowski
299f7d8d88SKrzysztof Kozlowski  '#address-cells':
309f7d8d88SKrzysztof Kozlowski    const: 1
319f7d8d88SKrzysztof Kozlowski
329f7d8d88SKrzysztof Kozlowski  '#size-cells':
339f7d8d88SKrzysztof Kozlowski    const: 1
349f7d8d88SKrzysztof Kozlowski
359f7d8d88SKrzysztof Kozlowski  clocks:
369f7d8d88SKrzysztof Kozlowski    maxItems: 21
379f7d8d88SKrzysztof Kozlowski
389f7d8d88SKrzysztof Kozlowski  clock-names:
399f7d8d88SKrzysztof Kozlowski    items:
409f7d8d88SKrzysztof Kozlowski      - const: lite0
419f7d8d88SKrzysztof Kozlowski      - const: lite1
429f7d8d88SKrzysztof Kozlowski      - const: ppmuispx
439f7d8d88SKrzysztof Kozlowski      - const: ppmuispmx
449f7d8d88SKrzysztof Kozlowski      - const: isp
459f7d8d88SKrzysztof Kozlowski      - const: drc
469f7d8d88SKrzysztof Kozlowski      - const: fd
479f7d8d88SKrzysztof Kozlowski      - const: mcuisp
489f7d8d88SKrzysztof Kozlowski      - const: gicisp
499f7d8d88SKrzysztof Kozlowski      - const: mcuctl_isp
509f7d8d88SKrzysztof Kozlowski      - const: pwm_isp
519f7d8d88SKrzysztof Kozlowski      - const: ispdiv0
529f7d8d88SKrzysztof Kozlowski      - const: ispdiv1
539f7d8d88SKrzysztof Kozlowski      - const: mcuispdiv0
549f7d8d88SKrzysztof Kozlowski      - const: mcuispdiv1
559f7d8d88SKrzysztof Kozlowski      - const: mpll
569f7d8d88SKrzysztof Kozlowski      - const: aclk200
579f7d8d88SKrzysztof Kozlowski      - const: aclk400mcuisp
589f7d8d88SKrzysztof Kozlowski      - const: div_aclk200
599f7d8d88SKrzysztof Kozlowski      - const: div_aclk400mcuisp
609f7d8d88SKrzysztof Kozlowski      - const: uart
619f7d8d88SKrzysztof Kozlowski
629f7d8d88SKrzysztof Kozlowski  interrupts:
639f7d8d88SKrzysztof Kozlowski    maxItems: 2
649f7d8d88SKrzysztof Kozlowski
659f7d8d88SKrzysztof Kozlowski  iommus:
669f7d8d88SKrzysztof Kozlowski    maxItems: 4
679f7d8d88SKrzysztof Kozlowski
689f7d8d88SKrzysztof Kozlowski  iommu-names:
699f7d8d88SKrzysztof Kozlowski    items:
709f7d8d88SKrzysztof Kozlowski      - const: isp
719f7d8d88SKrzysztof Kozlowski      - const: drc
729f7d8d88SKrzysztof Kozlowski      - const: fd
739f7d8d88SKrzysztof Kozlowski      - const: mcuctl
749f7d8d88SKrzysztof Kozlowski
759f7d8d88SKrzysztof Kozlowski  power-domains:
769f7d8d88SKrzysztof Kozlowski    maxItems: 1
779f7d8d88SKrzysztof Kozlowski
78*99e6eaabSKrzysztof Kozlowski  samsung,pmu-syscon:
79*99e6eaabSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/phandle
80*99e6eaabSKrzysztof Kozlowski    description:
81*99e6eaabSKrzysztof Kozlowski      Power Management Unit (PMU) system controller interface, used to
82*99e6eaabSKrzysztof Kozlowski      power/start the ISP.
83*99e6eaabSKrzysztof Kozlowski
849f7d8d88SKrzysztof KozlowskipatternProperties:
859f7d8d88SKrzysztof Kozlowski  "^pmu@[0-9a-f]+$":
869f7d8d88SKrzysztof Kozlowski    type: object
879f7d8d88SKrzysztof Kozlowski    additionalProperties: false
88*99e6eaabSKrzysztof Kozlowski    deprecated: true
899f7d8d88SKrzysztof Kozlowski    description:
909f7d8d88SKrzysztof Kozlowski      Node representing the SoC's Power Management Unit (duplicated with the
91*99e6eaabSKrzysztof Kozlowski      correct PMU node in the SoC). Deprecated, use samsung,pmu-syscon.
929f7d8d88SKrzysztof Kozlowski
939f7d8d88SKrzysztof Kozlowski    properties:
949f7d8d88SKrzysztof Kozlowski      reg:
959f7d8d88SKrzysztof Kozlowski        maxItems: 1
969f7d8d88SKrzysztof Kozlowski
979f7d8d88SKrzysztof Kozlowski    required:
989f7d8d88SKrzysztof Kozlowski      - reg
999f7d8d88SKrzysztof Kozlowski
1009f7d8d88SKrzysztof Kozlowski  "^i2c-isp@[0-9a-f]+$":
1019f7d8d88SKrzysztof Kozlowski    type: object
1029f7d8d88SKrzysztof Kozlowski    $ref: /schemas/i2c/i2c-controller.yaml#
1039f7d8d88SKrzysztof Kozlowski    unevaluatedProperties: false
1049f7d8d88SKrzysztof Kozlowski    description:
1059f7d8d88SKrzysztof Kozlowski      ISP I2C bus controller
1069f7d8d88SKrzysztof Kozlowski
1079f7d8d88SKrzysztof Kozlowski    properties:
1089f7d8d88SKrzysztof Kozlowski      compatible:
1099f7d8d88SKrzysztof Kozlowski        const: samsung,exynos4212-i2c-isp
1109f7d8d88SKrzysztof Kozlowski
1119f7d8d88SKrzysztof Kozlowski      reg:
1129f7d8d88SKrzysztof Kozlowski        maxItems: 1
1139f7d8d88SKrzysztof Kozlowski
1149f7d8d88SKrzysztof Kozlowski
1159f7d8d88SKrzysztof Kozlowski      clocks:
1169f7d8d88SKrzysztof Kozlowski        maxItems: 1
1179f7d8d88SKrzysztof Kozlowski
1189f7d8d88SKrzysztof Kozlowski      clock-names:
1199f7d8d88SKrzysztof Kozlowski        items:
1209f7d8d88SKrzysztof Kozlowski          - const: i2c_isp
1219f7d8d88SKrzysztof Kozlowski
1229f7d8d88SKrzysztof Kozlowski      pinctrl-0: true
1239f7d8d88SKrzysztof Kozlowski      pinctrl-names:
1249f7d8d88SKrzysztof Kozlowski        items:
1259f7d8d88SKrzysztof Kozlowski          - const: default
1269f7d8d88SKrzysztof Kozlowski
1279f7d8d88SKrzysztof Kozlowski    required:
1289f7d8d88SKrzysztof Kozlowski      - compatible
1299f7d8d88SKrzysztof Kozlowski      - reg
1309f7d8d88SKrzysztof Kozlowski      - clocks
1319f7d8d88SKrzysztof Kozlowski      - clock-names
1329f7d8d88SKrzysztof Kozlowski
1339f7d8d88SKrzysztof Kozlowskirequired:
1349f7d8d88SKrzysztof Kozlowski  - compatible
1359f7d8d88SKrzysztof Kozlowski  - reg
1369f7d8d88SKrzysztof Kozlowski  - '#address-cells'
1379f7d8d88SKrzysztof Kozlowski  - clocks
1389f7d8d88SKrzysztof Kozlowski  - clock-names
1399f7d8d88SKrzysztof Kozlowski  - interrupts
1409f7d8d88SKrzysztof Kozlowski  - ranges
141*99e6eaabSKrzysztof Kozlowski  - samsung,pmu-syscon
1429f7d8d88SKrzysztof Kozlowski  - '#size-cells'
1439f7d8d88SKrzysztof Kozlowski
1449f7d8d88SKrzysztof KozlowskiadditionalProperties: false
1459f7d8d88SKrzysztof Kozlowski
1469f7d8d88SKrzysztof Kozlowskiexamples:
1479f7d8d88SKrzysztof Kozlowski  - |
1489f7d8d88SKrzysztof Kozlowski    #include <dt-bindings/clock/exynos4.h>
1499f7d8d88SKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
1509f7d8d88SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
1519f7d8d88SKrzysztof Kozlowski
1529f7d8d88SKrzysztof Kozlowski    fimc-is@12000000 {
1539f7d8d88SKrzysztof Kozlowski        compatible = "samsung,exynos4212-fimc-is";
1549f7d8d88SKrzysztof Kozlowski        reg = <0x12000000 0x260000>;
1559f7d8d88SKrzysztof Kozlowski        interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
1569f7d8d88SKrzysztof Kozlowski                     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1579f7d8d88SKrzysztof Kozlowski        clocks = <&isp_clock CLK_ISP_FIMC_LITE0>,
1589f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_FIMC_LITE1>,
1599f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_PPMUISPX>,
1609f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_PPMUISPMX>,
1619f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_FIMC_ISP>,
1629f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_FIMC_DRC>,
1639f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_FIMC_FD>,
1649f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_MCUISP>,
1659f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_GICISP>,
1669f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_MCUCTL_ISP>,
1679f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_PWM_ISP>,
1689f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_DIV_ISP0>,
1699f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_DIV_ISP1>,
1709f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_DIV_MCUISP0>,
1719f7d8d88SKrzysztof Kozlowski                 <&isp_clock CLK_ISP_DIV_MCUISP1>,
1729f7d8d88SKrzysztof Kozlowski                 <&clock CLK_MOUT_MPLL_USER_T>,
1739f7d8d88SKrzysztof Kozlowski                 <&clock CLK_ACLK200>,
1749f7d8d88SKrzysztof Kozlowski                 <&clock CLK_ACLK400_MCUISP>,
1759f7d8d88SKrzysztof Kozlowski                 <&clock CLK_DIV_ACLK200>,
1769f7d8d88SKrzysztof Kozlowski                 <&clock CLK_DIV_ACLK400_MCUISP>,
1779f7d8d88SKrzysztof Kozlowski                 <&clock CLK_UART_ISP_SCLK>;
1789f7d8d88SKrzysztof Kozlowski        clock-names = "lite0", "lite1", "ppmuispx",
1799f7d8d88SKrzysztof Kozlowski                      "ppmuispmx", "isp",
1809f7d8d88SKrzysztof Kozlowski                      "drc", "fd", "mcuisp",
1819f7d8d88SKrzysztof Kozlowski                      "gicisp", "mcuctl_isp", "pwm_isp",
1829f7d8d88SKrzysztof Kozlowski                      "ispdiv0", "ispdiv1", "mcuispdiv0",
1839f7d8d88SKrzysztof Kozlowski                      "mcuispdiv1", "mpll", "aclk200",
1849f7d8d88SKrzysztof Kozlowski                      "aclk400mcuisp", "div_aclk200",
1859f7d8d88SKrzysztof Kozlowski                      "div_aclk400mcuisp", "uart";
1869f7d8d88SKrzysztof Kozlowski        iommus = <&sysmmu_fimc_isp>, <&sysmmu_fimc_drc>,
1879f7d8d88SKrzysztof Kozlowski                 <&sysmmu_fimc_fd>, <&sysmmu_fimc_mcuctl>;
1889f7d8d88SKrzysztof Kozlowski        iommu-names = "isp", "drc", "fd", "mcuctl";
1899f7d8d88SKrzysztof Kozlowski        power-domains = <&pd_isp>;
190*99e6eaabSKrzysztof Kozlowski        samsung,pmu-syscon = <&pmu_system_controller>;
1919f7d8d88SKrzysztof Kozlowski
1929f7d8d88SKrzysztof Kozlowski        #address-cells = <1>;
1939f7d8d88SKrzysztof Kozlowski        #size-cells = <1>;
1949f7d8d88SKrzysztof Kozlowski        ranges;
1959f7d8d88SKrzysztof Kozlowski
1969f7d8d88SKrzysztof Kozlowski        i2c-isp@12140000 {
1979f7d8d88SKrzysztof Kozlowski            compatible = "samsung,exynos4212-i2c-isp";
1989f7d8d88SKrzysztof Kozlowski            reg = <0x12140000 0x100>;
1999f7d8d88SKrzysztof Kozlowski            clocks = <&isp_clock CLK_ISP_I2C1_ISP>;
2009f7d8d88SKrzysztof Kozlowski            clock-names = "i2c_isp";
2019f7d8d88SKrzysztof Kozlowski            pinctrl-0 = <&fimc_is_i2c1>;
2029f7d8d88SKrzysztof Kozlowski            pinctrl-names = "default";
2039f7d8d88SKrzysztof Kozlowski            #address-cells = <1>;
2049f7d8d88SKrzysztof Kozlowski            #size-cells = <0>;
2059f7d8d88SKrzysztof Kozlowski
2069f7d8d88SKrzysztof Kozlowski            image-sensor@10 {
2079f7d8d88SKrzysztof Kozlowski                compatible = "samsung,s5k6a3";
2089f7d8d88SKrzysztof Kozlowski                reg = <0x10>;
2099f7d8d88SKrzysztof Kozlowski                svdda-supply = <&cam_io_reg>;
2109f7d8d88SKrzysztof Kozlowski                svddio-supply = <&ldo19_reg>;
2119f7d8d88SKrzysztof Kozlowski                afvdd-supply = <&ldo19_reg>;
2129f7d8d88SKrzysztof Kozlowski                clock-frequency = <24000000>;
2139f7d8d88SKrzysztof Kozlowski                clocks = <&camera 1>;
2149f7d8d88SKrzysztof Kozlowski                clock-names = "extclk";
2159f7d8d88SKrzysztof Kozlowski                gpios = <&gpm1 6 GPIO_ACTIVE_LOW>;
2169f7d8d88SKrzysztof Kozlowski
2179f7d8d88SKrzysztof Kozlowski                port {
2189f7d8d88SKrzysztof Kozlowski                    endpoint {
2199f7d8d88SKrzysztof Kozlowski                        remote-endpoint = <&csis1_ep>;
2209f7d8d88SKrzysztof Kozlowski                        data-lanes = <1>;
2219f7d8d88SKrzysztof Kozlowski                    };
2229f7d8d88SKrzysztof Kozlowski                };
2239f7d8d88SKrzysztof Kozlowski            };
2249f7d8d88SKrzysztof Kozlowski        };
2259f7d8d88SKrzysztof Kozlowski    };
226