10a0b80a4SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause 20a0b80a4SKrzysztof Kozlowski%YAML 1.2 30a0b80a4SKrzysztof Kozlowski--- 40a0b80a4SKrzysztof Kozlowski$id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# 50a0b80a4SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 60a0b80a4SKrzysztof Kozlowski 70a0b80a4SKrzysztof Kozlowskititle: Qualcomm Camera Control Interface (CCI) I2C controller 80a0b80a4SKrzysztof Kozlowski 90a0b80a4SKrzysztof Kozlowskimaintainers: 100a0b80a4SKrzysztof Kozlowski - Loic Poulain <loic.poulain@linaro.org> 110a0b80a4SKrzysztof Kozlowski - Robert Foss <robert.foss@linaro.org> 120a0b80a4SKrzysztof Kozlowski 130a0b80a4SKrzysztof Kozlowskiproperties: 140a0b80a4SKrzysztof Kozlowski compatible: 15bbdbad3bSKonrad Dybcio oneOf: 16bbdbad3bSKonrad Dybcio - enum: 178673b6d9SMatti Lehtimäki - qcom,msm8226-cci 180a0b80a4SKrzysztof Kozlowski - qcom,msm8974-cci 190a0b80a4SKrzysztof Kozlowski - qcom,msm8996-cci 20bbdbad3bSKonrad Dybcio 21bbdbad3bSKonrad Dybcio - items: 22bbdbad3bSKonrad Dybcio - enum: 23bbdbad3bSKonrad Dybcio - qcom,msm8916-cci 24bbdbad3bSKonrad Dybcio - const: qcom,msm8226-cci # CCI v1 25bbdbad3bSKonrad Dybcio 26bbdbad3bSKonrad Dybcio - items: 27bbdbad3bSKonrad Dybcio - enum: 280a0b80a4SKrzysztof Kozlowski - qcom,sdm845-cci 29f531ecf7SLuca Weiss - qcom,sm6350-cci 300a0b80a4SKrzysztof Kozlowski - qcom,sm8250-cci 310a0b80a4SKrzysztof Kozlowski - qcom,sm8450-cci 32bbdbad3bSKonrad Dybcio - const: qcom,msm8996-cci # CCI v2 330a0b80a4SKrzysztof Kozlowski 340a0b80a4SKrzysztof Kozlowski "#address-cells": 350a0b80a4SKrzysztof Kozlowski const: 1 360a0b80a4SKrzysztof Kozlowski 370a0b80a4SKrzysztof Kozlowski "#size-cells": 380a0b80a4SKrzysztof Kozlowski const: 0 390a0b80a4SKrzysztof Kozlowski 400a0b80a4SKrzysztof Kozlowski clocks: 418673b6d9SMatti Lehtimäki minItems: 3 420a0b80a4SKrzysztof Kozlowski maxItems: 6 430a0b80a4SKrzysztof Kozlowski 440a0b80a4SKrzysztof Kozlowski clock-names: 458673b6d9SMatti Lehtimäki minItems: 3 460a0b80a4SKrzysztof Kozlowski maxItems: 6 470a0b80a4SKrzysztof Kozlowski 480a0b80a4SKrzysztof Kozlowski interrupts: 490a0b80a4SKrzysztof Kozlowski maxItems: 1 500a0b80a4SKrzysztof Kozlowski 510a0b80a4SKrzysztof Kozlowski power-domains: 520a0b80a4SKrzysztof Kozlowski maxItems: 1 530a0b80a4SKrzysztof Kozlowski 540a0b80a4SKrzysztof Kozlowski reg: 550a0b80a4SKrzysztof Kozlowski maxItems: 1 560a0b80a4SKrzysztof Kozlowski 570a0b80a4SKrzysztof KozlowskipatternProperties: 580a0b80a4SKrzysztof Kozlowski "^i2c-bus@[01]$": 590a0b80a4SKrzysztof Kozlowski $ref: /schemas/i2c/i2c-controller.yaml# 600a0b80a4SKrzysztof Kozlowski unevaluatedProperties: false 610a0b80a4SKrzysztof Kozlowski 620a0b80a4SKrzysztof Kozlowski properties: 630a0b80a4SKrzysztof Kozlowski reg: 640a0b80a4SKrzysztof Kozlowski maxItems: 1 650a0b80a4SKrzysztof Kozlowski 660a0b80a4SKrzysztof Kozlowski clock-frequency: 670a0b80a4SKrzysztof Kozlowski default: 100000 680a0b80a4SKrzysztof Kozlowski 690a0b80a4SKrzysztof Kozlowskirequired: 700a0b80a4SKrzysztof Kozlowski - compatible 710a0b80a4SKrzysztof Kozlowski - clock-names 720a0b80a4SKrzysztof Kozlowski - clocks 730a0b80a4SKrzysztof Kozlowski - interrupts 740a0b80a4SKrzysztof Kozlowski - reg 750a0b80a4SKrzysztof Kozlowski 760a0b80a4SKrzysztof KozlowskiallOf: 770a0b80a4SKrzysztof Kozlowski - if: 780a0b80a4SKrzysztof Kozlowski properties: 790a0b80a4SKrzysztof Kozlowski compatible: 800a0b80a4SKrzysztof Kozlowski contains: 810a0b80a4SKrzysztof Kozlowski enum: 820a0b80a4SKrzysztof Kozlowski - qcom,msm8996-cci 830a0b80a4SKrzysztof Kozlowski then: 840a0b80a4SKrzysztof Kozlowski required: 850a0b80a4SKrzysztof Kozlowski - power-domains 860a0b80a4SKrzysztof Kozlowski 870a0b80a4SKrzysztof Kozlowski - if: 880a0b80a4SKrzysztof Kozlowski properties: 890a0b80a4SKrzysztof Kozlowski compatible: 900a0b80a4SKrzysztof Kozlowski contains: 910a0b80a4SKrzysztof Kozlowski enum: 928673b6d9SMatti Lehtimäki - qcom,msm8226-cci 930a0b80a4SKrzysztof Kozlowski - qcom,msm8916-cci 940a0b80a4SKrzysztof Kozlowski then: 950a0b80a4SKrzysztof Kozlowski properties: 960a0b80a4SKrzysztof Kozlowski i2c-bus@1: false 970a0b80a4SKrzysztof Kozlowski 980a0b80a4SKrzysztof Kozlowski - if: 990a0b80a4SKrzysztof Kozlowski properties: 1000a0b80a4SKrzysztof Kozlowski compatible: 101bbdbad3bSKonrad Dybcio oneOf: 102bbdbad3bSKonrad Dybcio - contains: 1030a0b80a4SKrzysztof Kozlowski enum: 1049ad16f96SMatti Lehtimäki - qcom,msm8974-cci 105bbdbad3bSKonrad Dybcio 106bbdbad3bSKonrad Dybcio - const: qcom,msm8226-cci 1078673b6d9SMatti Lehtimäki then: 1088673b6d9SMatti Lehtimäki properties: 1098673b6d9SMatti Lehtimäki clocks: 1108673b6d9SMatti Lehtimäki maxItems: 3 1118673b6d9SMatti Lehtimäki clock-names: 1128673b6d9SMatti Lehtimäki items: 1138673b6d9SMatti Lehtimäki - const: camss_top_ahb 1148673b6d9SMatti Lehtimäki - const: cci_ahb 1158673b6d9SMatti Lehtimäki - const: cci 1168673b6d9SMatti Lehtimäki 1178673b6d9SMatti Lehtimäki - if: 1188673b6d9SMatti Lehtimäki properties: 1198673b6d9SMatti Lehtimäki compatible: 120bbdbad3bSKonrad Dybcio oneOf: 121bbdbad3bSKonrad Dybcio - contains: 1228673b6d9SMatti Lehtimäki enum: 1230a0b80a4SKrzysztof Kozlowski - qcom,msm8916-cci 124bbdbad3bSKonrad Dybcio 125bbdbad3bSKonrad Dybcio - const: qcom,msm8996-cci 1260a0b80a4SKrzysztof Kozlowski then: 1270a0b80a4SKrzysztof Kozlowski properties: 1280a0b80a4SKrzysztof Kozlowski clocks: 1290a0b80a4SKrzysztof Kozlowski maxItems: 4 1300a0b80a4SKrzysztof Kozlowski clock-names: 1310a0b80a4SKrzysztof Kozlowski items: 1320a0b80a4SKrzysztof Kozlowski - const: camss_top_ahb 1330a0b80a4SKrzysztof Kozlowski - const: cci_ahb 1340a0b80a4SKrzysztof Kozlowski - const: cci 1350a0b80a4SKrzysztof Kozlowski - const: camss_ahb 1360a0b80a4SKrzysztof Kozlowski 1370a0b80a4SKrzysztof Kozlowski - if: 1380a0b80a4SKrzysztof Kozlowski properties: 1390a0b80a4SKrzysztof Kozlowski compatible: 1400a0b80a4SKrzysztof Kozlowski contains: 1410a0b80a4SKrzysztof Kozlowski enum: 1420a0b80a4SKrzysztof Kozlowski - qcom,sdm845-cci 143f531ecf7SLuca Weiss - qcom,sm6350-cci 1440a0b80a4SKrzysztof Kozlowski then: 1450a0b80a4SKrzysztof Kozlowski properties: 1460a0b80a4SKrzysztof Kozlowski clocks: 1470a0b80a4SKrzysztof Kozlowski minItems: 6 1480a0b80a4SKrzysztof Kozlowski clock-names: 1490a0b80a4SKrzysztof Kozlowski items: 1500a0b80a4SKrzysztof Kozlowski - const: camnoc_axi 1510a0b80a4SKrzysztof Kozlowski - const: soc_ahb 1520a0b80a4SKrzysztof Kozlowski - const: slow_ahb_src 1530a0b80a4SKrzysztof Kozlowski - const: cpas_ahb 1540a0b80a4SKrzysztof Kozlowski - const: cci 1550a0b80a4SKrzysztof Kozlowski - const: cci_src 1560a0b80a4SKrzysztof Kozlowski 1570a0b80a4SKrzysztof Kozlowski - if: 1580a0b80a4SKrzysztof Kozlowski properties: 1590a0b80a4SKrzysztof Kozlowski compatible: 1600a0b80a4SKrzysztof Kozlowski contains: 1610a0b80a4SKrzysztof Kozlowski enum: 1620a0b80a4SKrzysztof Kozlowski - qcom,sm8250-cci 163e46a1c55SKrzysztof Kozlowski - qcom,sm8450-cci 1640a0b80a4SKrzysztof Kozlowski then: 1650a0b80a4SKrzysztof Kozlowski properties: 1660a0b80a4SKrzysztof Kozlowski clocks: 1670a0b80a4SKrzysztof Kozlowski minItems: 5 1680a0b80a4SKrzysztof Kozlowski maxItems: 5 1690a0b80a4SKrzysztof Kozlowski clock-names: 1700a0b80a4SKrzysztof Kozlowski items: 1710a0b80a4SKrzysztof Kozlowski - const: camnoc_axi 1720a0b80a4SKrzysztof Kozlowski - const: slow_ahb_src 1730a0b80a4SKrzysztof Kozlowski - const: cpas_ahb 1740a0b80a4SKrzysztof Kozlowski - const: cci 1750a0b80a4SKrzysztof Kozlowski - const: cci_src 1760a0b80a4SKrzysztof Kozlowski 1770a0b80a4SKrzysztof KozlowskiadditionalProperties: false 1780a0b80a4SKrzysztof Kozlowski 1790a0b80a4SKrzysztof Kozlowskiexamples: 1800a0b80a4SKrzysztof Kozlowski - | 1810a0b80a4SKrzysztof Kozlowski #include <dt-bindings/clock/qcom,camcc-sdm845.h> 1820a0b80a4SKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 1830a0b80a4SKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 1840a0b80a4SKrzysztof Kozlowski 1850a0b80a4SKrzysztof Kozlowski cci@ac4a000 { 1860a0b80a4SKrzysztof Kozlowski reg = <0x0ac4a000 0x4000>; 187bbdbad3bSKonrad Dybcio compatible = "qcom,sdm845-cci", "qcom,msm8996-cci"; 1880a0b80a4SKrzysztof Kozlowski #address-cells = <1>; 1890a0b80a4SKrzysztof Kozlowski #size-cells = <0>; 1900a0b80a4SKrzysztof Kozlowski 1910a0b80a4SKrzysztof Kozlowski interrupts = <GIC_SPI 460 IRQ_TYPE_EDGE_RISING>; 1920a0b80a4SKrzysztof Kozlowski power-domains = <&clock_camcc TITAN_TOP_GDSC>; 1930a0b80a4SKrzysztof Kozlowski 1940a0b80a4SKrzysztof Kozlowski clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>, 1950a0b80a4SKrzysztof Kozlowski <&clock_camcc CAM_CC_SOC_AHB_CLK>, 1960a0b80a4SKrzysztof Kozlowski <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>, 1970a0b80a4SKrzysztof Kozlowski <&clock_camcc CAM_CC_CPAS_AHB_CLK>, 1980a0b80a4SKrzysztof Kozlowski <&clock_camcc CAM_CC_CCI_CLK>, 1990a0b80a4SKrzysztof Kozlowski <&clock_camcc CAM_CC_CCI_CLK_SRC>; 2000a0b80a4SKrzysztof Kozlowski clock-names = "camnoc_axi", 2010a0b80a4SKrzysztof Kozlowski "soc_ahb", 2020a0b80a4SKrzysztof Kozlowski "slow_ahb_src", 2030a0b80a4SKrzysztof Kozlowski "cpas_ahb", 2040a0b80a4SKrzysztof Kozlowski "cci", 2050a0b80a4SKrzysztof Kozlowski "cci_src"; 2060a0b80a4SKrzysztof Kozlowski 2070a0b80a4SKrzysztof Kozlowski assigned-clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>, 2080a0b80a4SKrzysztof Kozlowski <&clock_camcc CAM_CC_CCI_CLK>; 2090a0b80a4SKrzysztof Kozlowski assigned-clock-rates = <80000000>, 2100a0b80a4SKrzysztof Kozlowski <37500000>; 2110a0b80a4SKrzysztof Kozlowski 2120a0b80a4SKrzysztof Kozlowski pinctrl-names = "default", "sleep"; 2130a0b80a4SKrzysztof Kozlowski pinctrl-0 = <&cci0_default &cci1_default>; 2140a0b80a4SKrzysztof Kozlowski pinctrl-1 = <&cci0_sleep &cci1_sleep>; 2150a0b80a4SKrzysztof Kozlowski 2160a0b80a4SKrzysztof Kozlowski i2c-bus@0 { 2170a0b80a4SKrzysztof Kozlowski reg = <0>; 2180a0b80a4SKrzysztof Kozlowski clock-frequency = <1000000>; 2190a0b80a4SKrzysztof Kozlowski #address-cells = <1>; 2200a0b80a4SKrzysztof Kozlowski #size-cells = <0>; 2210a0b80a4SKrzysztof Kozlowski 2220a0b80a4SKrzysztof Kozlowski camera@10 { 2230a0b80a4SKrzysztof Kozlowski compatible = "ovti,ov8856"; 2240a0b80a4SKrzysztof Kozlowski reg = <0x10>; 2250a0b80a4SKrzysztof Kozlowski 2260a0b80a4SKrzysztof Kozlowski reset-gpios = <&tlmm 9 GPIO_ACTIVE_LOW>; 2270a0b80a4SKrzysztof Kozlowski pinctrl-names = "default"; 2280a0b80a4SKrzysztof Kozlowski pinctrl-0 = <&cam0_default>; 2290a0b80a4SKrzysztof Kozlowski 2300a0b80a4SKrzysztof Kozlowski clocks = <&clock_camcc CAM_CC_MCLK0_CLK>; 2310a0b80a4SKrzysztof Kozlowski clock-names = "xvclk"; 2320a0b80a4SKrzysztof Kozlowski clock-frequency = <19200000>; 2330a0b80a4SKrzysztof Kozlowski 2340a0b80a4SKrzysztof Kozlowski dovdd-supply = <&vreg_lvs1a_1p8>; 2350a0b80a4SKrzysztof Kozlowski avdd-supply = <&cam0_avdd_2v8>; 2360a0b80a4SKrzysztof Kozlowski dvdd-supply = <&cam0_dvdd_1v2>; 2370a0b80a4SKrzysztof Kozlowski 2380a0b80a4SKrzysztof Kozlowski port { 2390a0b80a4SKrzysztof Kozlowski ov8856_ep: endpoint { 2400a0b80a4SKrzysztof Kozlowski link-frequencies = /bits/ 64 <360000000 180000000>; 2410a0b80a4SKrzysztof Kozlowski data-lanes = <1 2 3 4>; 2420a0b80a4SKrzysztof Kozlowski remote-endpoint = <&csiphy0_ep>; 2430a0b80a4SKrzysztof Kozlowski }; 2440a0b80a4SKrzysztof Kozlowski }; 2450a0b80a4SKrzysztof Kozlowski }; 2460a0b80a4SKrzysztof Kozlowski }; 2470a0b80a4SKrzysztof Kozlowski 2480a0b80a4SKrzysztof Kozlowski cci_i2c1: i2c-bus@1 { 2490a0b80a4SKrzysztof Kozlowski reg = <1>; 2500a0b80a4SKrzysztof Kozlowski clock-frequency = <1000000>; 2510a0b80a4SKrzysztof Kozlowski #address-cells = <1>; 2520a0b80a4SKrzysztof Kozlowski #size-cells = <0>; 2530a0b80a4SKrzysztof Kozlowski 2540a0b80a4SKrzysztof Kozlowski camera@60 { 2550a0b80a4SKrzysztof Kozlowski compatible = "ovti,ov7251"; 2560a0b80a4SKrzysztof Kozlowski reg = <0x60>; 2570a0b80a4SKrzysztof Kozlowski 2580a0b80a4SKrzysztof Kozlowski enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>; 2590a0b80a4SKrzysztof Kozlowski pinctrl-names = "default"; 2600a0b80a4SKrzysztof Kozlowski pinctrl-0 = <&cam3_default>; 2610a0b80a4SKrzysztof Kozlowski 2620a0b80a4SKrzysztof Kozlowski clocks = <&clock_camcc CAM_CC_MCLK3_CLK>; 2630a0b80a4SKrzysztof Kozlowski clock-names = "xclk"; 2640a0b80a4SKrzysztof Kozlowski clock-frequency = <24000000>; 2650a0b80a4SKrzysztof Kozlowski 2660a0b80a4SKrzysztof Kozlowski vdddo-supply = <&vreg_lvs1a_1p8>; 2670a0b80a4SKrzysztof Kozlowski vdda-supply = <&cam3_avdd_2v8>; 2680a0b80a4SKrzysztof Kozlowski 2690a0b80a4SKrzysztof Kozlowski port { 2700a0b80a4SKrzysztof Kozlowski ov7251_ep: endpoint { 2710a0b80a4SKrzysztof Kozlowski data-lanes = <0 1>; 272*274e4809SRob Herring link-frequencies = /bits/ 64 <240000000 319200000>; 2730a0b80a4SKrzysztof Kozlowski remote-endpoint = <&csiphy3_ep>; 2740a0b80a4SKrzysztof Kozlowski }; 2750a0b80a4SKrzysztof Kozlowski }; 2760a0b80a4SKrzysztof Kozlowski }; 2770a0b80a4SKrzysztof Kozlowski }; 2780a0b80a4SKrzysztof Kozlowski }; 279