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: 280f75d486SLuca Weiss - qcom,sc7280-cci 29f32a32adSBryan O'Donoghue - qcom,sc8280xp-cci 3051104453SRichard Acayan - qcom,sdm670-cci 310a0b80a4SKrzysztof Kozlowski - qcom,sdm845-cci 32f531ecf7SLuca Weiss - qcom,sm6350-cci 330a0b80a4SKrzysztof Kozlowski - qcom,sm8250-cci 340a0b80a4SKrzysztof Kozlowski - qcom,sm8450-cci 358c4ff24dSVladimir Zapolskiy - qcom,sm8550-cci 36064e9113SVladimir Zapolskiy - qcom,sm8650-cci 37*febe1521SBryan O'Donoghue - qcom,x1e80100-cci 38bbdbad3bSKonrad Dybcio - const: qcom,msm8996-cci # CCI v2 390a0b80a4SKrzysztof Kozlowski 400a0b80a4SKrzysztof Kozlowski "#address-cells": 410a0b80a4SKrzysztof Kozlowski const: 1 420a0b80a4SKrzysztof Kozlowski 430a0b80a4SKrzysztof Kozlowski "#size-cells": 440a0b80a4SKrzysztof Kozlowski const: 0 450a0b80a4SKrzysztof Kozlowski 460a0b80a4SKrzysztof Kozlowski clocks: 478673b6d9SMatti Lehtimäki minItems: 3 480a0b80a4SKrzysztof Kozlowski maxItems: 6 490a0b80a4SKrzysztof Kozlowski 500a0b80a4SKrzysztof Kozlowski clock-names: 518673b6d9SMatti Lehtimäki minItems: 3 520a0b80a4SKrzysztof Kozlowski maxItems: 6 530a0b80a4SKrzysztof Kozlowski 540a0b80a4SKrzysztof Kozlowski interrupts: 550a0b80a4SKrzysztof Kozlowski maxItems: 1 560a0b80a4SKrzysztof Kozlowski 570a0b80a4SKrzysztof Kozlowski power-domains: 580a0b80a4SKrzysztof Kozlowski maxItems: 1 590a0b80a4SKrzysztof Kozlowski 600a0b80a4SKrzysztof Kozlowski reg: 610a0b80a4SKrzysztof Kozlowski maxItems: 1 620a0b80a4SKrzysztof Kozlowski 630a0b80a4SKrzysztof KozlowskipatternProperties: 640a0b80a4SKrzysztof Kozlowski "^i2c-bus@[01]$": 650a0b80a4SKrzysztof Kozlowski $ref: /schemas/i2c/i2c-controller.yaml# 660a0b80a4SKrzysztof Kozlowski unevaluatedProperties: false 670a0b80a4SKrzysztof Kozlowski 680a0b80a4SKrzysztof Kozlowski properties: 690a0b80a4SKrzysztof Kozlowski reg: 700a0b80a4SKrzysztof Kozlowski maxItems: 1 710a0b80a4SKrzysztof Kozlowski 720a0b80a4SKrzysztof Kozlowski clock-frequency: 730a0b80a4SKrzysztof Kozlowski default: 100000 740a0b80a4SKrzysztof Kozlowski 750a0b80a4SKrzysztof Kozlowskirequired: 760a0b80a4SKrzysztof Kozlowski - compatible 770a0b80a4SKrzysztof Kozlowski - clock-names 780a0b80a4SKrzysztof Kozlowski - clocks 790a0b80a4SKrzysztof Kozlowski - interrupts 800a0b80a4SKrzysztof Kozlowski - reg 810a0b80a4SKrzysztof Kozlowski 820a0b80a4SKrzysztof KozlowskiallOf: 830a0b80a4SKrzysztof Kozlowski - if: 840a0b80a4SKrzysztof Kozlowski properties: 850a0b80a4SKrzysztof Kozlowski compatible: 860a0b80a4SKrzysztof Kozlowski contains: 870a0b80a4SKrzysztof Kozlowski enum: 880a0b80a4SKrzysztof Kozlowski - qcom,msm8996-cci 890a0b80a4SKrzysztof Kozlowski then: 900a0b80a4SKrzysztof Kozlowski required: 910a0b80a4SKrzysztof Kozlowski - power-domains 920a0b80a4SKrzysztof Kozlowski 930a0b80a4SKrzysztof Kozlowski - if: 940a0b80a4SKrzysztof Kozlowski properties: 950a0b80a4SKrzysztof Kozlowski compatible: 960a0b80a4SKrzysztof Kozlowski contains: 970a0b80a4SKrzysztof Kozlowski enum: 988673b6d9SMatti Lehtimäki - qcom,msm8226-cci 990a0b80a4SKrzysztof Kozlowski - qcom,msm8916-cci 1000a0b80a4SKrzysztof Kozlowski then: 1010a0b80a4SKrzysztof Kozlowski properties: 1020a0b80a4SKrzysztof Kozlowski i2c-bus@1: false 1030a0b80a4SKrzysztof Kozlowski 1040a0b80a4SKrzysztof Kozlowski - if: 1050a0b80a4SKrzysztof Kozlowski properties: 1060a0b80a4SKrzysztof Kozlowski compatible: 107bbdbad3bSKonrad Dybcio oneOf: 108bbdbad3bSKonrad Dybcio - contains: 1090a0b80a4SKrzysztof Kozlowski enum: 1109ad16f96SMatti Lehtimäki - qcom,msm8974-cci 111bbdbad3bSKonrad Dybcio 112bbdbad3bSKonrad Dybcio - const: qcom,msm8226-cci 1138673b6d9SMatti Lehtimäki then: 1148673b6d9SMatti Lehtimäki properties: 1158673b6d9SMatti Lehtimäki clocks: 1168673b6d9SMatti Lehtimäki maxItems: 3 1178673b6d9SMatti Lehtimäki clock-names: 1188673b6d9SMatti Lehtimäki items: 1198673b6d9SMatti Lehtimäki - const: camss_top_ahb 1208673b6d9SMatti Lehtimäki - const: cci_ahb 1218673b6d9SMatti Lehtimäki - const: cci 1228673b6d9SMatti Lehtimäki 1238673b6d9SMatti Lehtimäki - if: 1248673b6d9SMatti Lehtimäki properties: 1258673b6d9SMatti Lehtimäki compatible: 126bbdbad3bSKonrad Dybcio oneOf: 127bbdbad3bSKonrad Dybcio - contains: 1288673b6d9SMatti Lehtimäki enum: 1290a0b80a4SKrzysztof Kozlowski - qcom,msm8916-cci 130bbdbad3bSKonrad Dybcio 131bbdbad3bSKonrad Dybcio - const: qcom,msm8996-cci 1320a0b80a4SKrzysztof Kozlowski then: 1330a0b80a4SKrzysztof Kozlowski properties: 1340a0b80a4SKrzysztof Kozlowski clocks: 135c1a5e6ffSKrzysztof Kozlowski minItems: 4 1360a0b80a4SKrzysztof Kozlowski maxItems: 4 1370a0b80a4SKrzysztof Kozlowski clock-names: 1380a0b80a4SKrzysztof Kozlowski items: 1390a0b80a4SKrzysztof Kozlowski - const: camss_top_ahb 1400a0b80a4SKrzysztof Kozlowski - const: cci_ahb 1410a0b80a4SKrzysztof Kozlowski - const: cci 1420a0b80a4SKrzysztof Kozlowski - const: camss_ahb 1430a0b80a4SKrzysztof Kozlowski 1440a0b80a4SKrzysztof Kozlowski - if: 1450a0b80a4SKrzysztof Kozlowski properties: 1460a0b80a4SKrzysztof Kozlowski compatible: 1470a0b80a4SKrzysztof Kozlowski contains: 1480a0b80a4SKrzysztof Kozlowski enum: 14951104453SRichard Acayan - qcom,sdm670-cci 15051104453SRichard Acayan then: 15151104453SRichard Acayan properties: 15251104453SRichard Acayan clocks: 15351104453SRichard Acayan minItems: 4 15451104453SRichard Acayan maxItems: 4 15551104453SRichard Acayan clock-names: 15651104453SRichard Acayan items: 15751104453SRichard Acayan - const: camnoc_axi 15851104453SRichard Acayan - const: soc_ahb 15951104453SRichard Acayan - const: cpas_ahb 16051104453SRichard Acayan - const: cci 16151104453SRichard Acayan 16251104453SRichard Acayan - if: 16351104453SRichard Acayan properties: 16451104453SRichard Acayan compatible: 16551104453SRichard Acayan contains: 16651104453SRichard Acayan enum: 1670a0b80a4SKrzysztof Kozlowski - qcom,sdm845-cci 168f531ecf7SLuca Weiss - qcom,sm6350-cci 1690a0b80a4SKrzysztof Kozlowski then: 1700a0b80a4SKrzysztof Kozlowski properties: 1710a0b80a4SKrzysztof Kozlowski clocks: 1720a0b80a4SKrzysztof Kozlowski minItems: 6 1730a0b80a4SKrzysztof Kozlowski clock-names: 1740a0b80a4SKrzysztof Kozlowski items: 1750a0b80a4SKrzysztof Kozlowski - const: camnoc_axi 1760a0b80a4SKrzysztof Kozlowski - const: soc_ahb 1770a0b80a4SKrzysztof Kozlowski - const: slow_ahb_src 1780a0b80a4SKrzysztof Kozlowski - const: cpas_ahb 1790a0b80a4SKrzysztof Kozlowski - const: cci 1800a0b80a4SKrzysztof Kozlowski - const: cci_src 1810a0b80a4SKrzysztof Kozlowski 1820a0b80a4SKrzysztof Kozlowski - if: 1830a0b80a4SKrzysztof Kozlowski properties: 1840a0b80a4SKrzysztof Kozlowski compatible: 1850a0b80a4SKrzysztof Kozlowski contains: 1860a0b80a4SKrzysztof Kozlowski enum: 1870f75d486SLuca Weiss - qcom,sc7280-cci 1880a0b80a4SKrzysztof Kozlowski - qcom,sm8250-cci 189e46a1c55SKrzysztof Kozlowski - qcom,sm8450-cci 1900a0b80a4SKrzysztof Kozlowski then: 1910a0b80a4SKrzysztof Kozlowski properties: 1920a0b80a4SKrzysztof Kozlowski clocks: 1930a0b80a4SKrzysztof Kozlowski minItems: 5 1940a0b80a4SKrzysztof Kozlowski maxItems: 5 1950a0b80a4SKrzysztof Kozlowski clock-names: 1960a0b80a4SKrzysztof Kozlowski items: 1970a0b80a4SKrzysztof Kozlowski - const: camnoc_axi 1980a0b80a4SKrzysztof Kozlowski - const: slow_ahb_src 1990a0b80a4SKrzysztof Kozlowski - const: cpas_ahb 2000a0b80a4SKrzysztof Kozlowski - const: cci 2010a0b80a4SKrzysztof Kozlowski - const: cci_src 2020a0b80a4SKrzysztof Kozlowski 203f32a32adSBryan O'Donoghue - if: 204f32a32adSBryan O'Donoghue properties: 205f32a32adSBryan O'Donoghue compatible: 206f32a32adSBryan O'Donoghue contains: 207f32a32adSBryan O'Donoghue enum: 208f32a32adSBryan O'Donoghue - qcom,sc8280xp-cci 209f32a32adSBryan O'Donoghue then: 210f32a32adSBryan O'Donoghue properties: 211f32a32adSBryan O'Donoghue clocks: 212f32a32adSBryan O'Donoghue minItems: 4 213f32a32adSBryan O'Donoghue maxItems: 4 214f32a32adSBryan O'Donoghue clock-names: 215f32a32adSBryan O'Donoghue items: 216f32a32adSBryan O'Donoghue - const: camnoc_axi 217f32a32adSBryan O'Donoghue - const: slow_ahb_src 218f32a32adSBryan O'Donoghue - const: cpas_ahb 219f32a32adSBryan O'Donoghue - const: cci 220f32a32adSBryan O'Donoghue 2218c4ff24dSVladimir Zapolskiy - if: 2228c4ff24dSVladimir Zapolskiy properties: 2238c4ff24dSVladimir Zapolskiy compatible: 2248c4ff24dSVladimir Zapolskiy contains: 2258c4ff24dSVladimir Zapolskiy enum: 2268c4ff24dSVladimir Zapolskiy - qcom,sm8550-cci 227064e9113SVladimir Zapolskiy - qcom,sm8650-cci 228*febe1521SBryan O'Donoghue - qcom,x1e80100-cci 2298c4ff24dSVladimir Zapolskiy then: 2308c4ff24dSVladimir Zapolskiy properties: 2318c4ff24dSVladimir Zapolskiy clocks: 2328c4ff24dSVladimir Zapolskiy minItems: 3 2338c4ff24dSVladimir Zapolskiy maxItems: 3 2348c4ff24dSVladimir Zapolskiy clock-names: 2358c4ff24dSVladimir Zapolskiy items: 2368c4ff24dSVladimir Zapolskiy - const: camnoc_axi 2378c4ff24dSVladimir Zapolskiy - const: cpas_ahb 2388c4ff24dSVladimir Zapolskiy - const: cci 2398c4ff24dSVladimir Zapolskiy 2400a0b80a4SKrzysztof KozlowskiadditionalProperties: false 2410a0b80a4SKrzysztof Kozlowski 2420a0b80a4SKrzysztof Kozlowskiexamples: 2430a0b80a4SKrzysztof Kozlowski - | 2440a0b80a4SKrzysztof Kozlowski #include <dt-bindings/clock/qcom,camcc-sdm845.h> 2450a0b80a4SKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 2460a0b80a4SKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 2470a0b80a4SKrzysztof Kozlowski 2480a0b80a4SKrzysztof Kozlowski cci@ac4a000 { 2490a0b80a4SKrzysztof Kozlowski reg = <0x0ac4a000 0x4000>; 250bbdbad3bSKonrad Dybcio compatible = "qcom,sdm845-cci", "qcom,msm8996-cci"; 2510a0b80a4SKrzysztof Kozlowski #address-cells = <1>; 2520a0b80a4SKrzysztof Kozlowski #size-cells = <0>; 2530a0b80a4SKrzysztof Kozlowski 2540a0b80a4SKrzysztof Kozlowski interrupts = <GIC_SPI 460 IRQ_TYPE_EDGE_RISING>; 2550a0b80a4SKrzysztof Kozlowski power-domains = <&clock_camcc TITAN_TOP_GDSC>; 2560a0b80a4SKrzysztof Kozlowski 2570a0b80a4SKrzysztof Kozlowski clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>, 2580a0b80a4SKrzysztof Kozlowski <&clock_camcc CAM_CC_SOC_AHB_CLK>, 2590a0b80a4SKrzysztof Kozlowski <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>, 2600a0b80a4SKrzysztof Kozlowski <&clock_camcc CAM_CC_CPAS_AHB_CLK>, 2610a0b80a4SKrzysztof Kozlowski <&clock_camcc CAM_CC_CCI_CLK>, 2620a0b80a4SKrzysztof Kozlowski <&clock_camcc CAM_CC_CCI_CLK_SRC>; 2630a0b80a4SKrzysztof Kozlowski clock-names = "camnoc_axi", 2640a0b80a4SKrzysztof Kozlowski "soc_ahb", 2650a0b80a4SKrzysztof Kozlowski "slow_ahb_src", 2660a0b80a4SKrzysztof Kozlowski "cpas_ahb", 2670a0b80a4SKrzysztof Kozlowski "cci", 2680a0b80a4SKrzysztof Kozlowski "cci_src"; 2690a0b80a4SKrzysztof Kozlowski 2700a0b80a4SKrzysztof Kozlowski assigned-clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>, 2710a0b80a4SKrzysztof Kozlowski <&clock_camcc CAM_CC_CCI_CLK>; 2720a0b80a4SKrzysztof Kozlowski assigned-clock-rates = <80000000>, 2730a0b80a4SKrzysztof Kozlowski <37500000>; 2740a0b80a4SKrzysztof Kozlowski 2750a0b80a4SKrzysztof Kozlowski pinctrl-names = "default", "sleep"; 2760a0b80a4SKrzysztof Kozlowski pinctrl-0 = <&cci0_default &cci1_default>; 2770a0b80a4SKrzysztof Kozlowski pinctrl-1 = <&cci0_sleep &cci1_sleep>; 2780a0b80a4SKrzysztof Kozlowski 2790a0b80a4SKrzysztof Kozlowski i2c-bus@0 { 2800a0b80a4SKrzysztof Kozlowski reg = <0>; 2810a0b80a4SKrzysztof Kozlowski clock-frequency = <1000000>; 2820a0b80a4SKrzysztof Kozlowski #address-cells = <1>; 2830a0b80a4SKrzysztof Kozlowski #size-cells = <0>; 2840a0b80a4SKrzysztof Kozlowski 2850a0b80a4SKrzysztof Kozlowski camera@10 { 2860a0b80a4SKrzysztof Kozlowski compatible = "ovti,ov8856"; 2870a0b80a4SKrzysztof Kozlowski reg = <0x10>; 2880a0b80a4SKrzysztof Kozlowski 2890a0b80a4SKrzysztof Kozlowski reset-gpios = <&tlmm 9 GPIO_ACTIVE_LOW>; 2900a0b80a4SKrzysztof Kozlowski pinctrl-names = "default"; 2910a0b80a4SKrzysztof Kozlowski pinctrl-0 = <&cam0_default>; 2920a0b80a4SKrzysztof Kozlowski 2930a0b80a4SKrzysztof Kozlowski clocks = <&clock_camcc CAM_CC_MCLK0_CLK>; 2940a0b80a4SKrzysztof Kozlowski clock-names = "xvclk"; 2950a0b80a4SKrzysztof Kozlowski clock-frequency = <19200000>; 2960a0b80a4SKrzysztof Kozlowski 2970a0b80a4SKrzysztof Kozlowski dovdd-supply = <&vreg_lvs1a_1p8>; 2980a0b80a4SKrzysztof Kozlowski avdd-supply = <&cam0_avdd_2v8>; 2990a0b80a4SKrzysztof Kozlowski dvdd-supply = <&cam0_dvdd_1v2>; 3000a0b80a4SKrzysztof Kozlowski 3010a0b80a4SKrzysztof Kozlowski port { 3020a0b80a4SKrzysztof Kozlowski ov8856_ep: endpoint { 3030a0b80a4SKrzysztof Kozlowski link-frequencies = /bits/ 64 <360000000 180000000>; 3040a0b80a4SKrzysztof Kozlowski data-lanes = <1 2 3 4>; 3050a0b80a4SKrzysztof Kozlowski remote-endpoint = <&csiphy0_ep>; 3060a0b80a4SKrzysztof Kozlowski }; 3070a0b80a4SKrzysztof Kozlowski }; 3080a0b80a4SKrzysztof Kozlowski }; 3090a0b80a4SKrzysztof Kozlowski }; 3100a0b80a4SKrzysztof Kozlowski 3110a0b80a4SKrzysztof Kozlowski cci_i2c1: i2c-bus@1 { 3120a0b80a4SKrzysztof Kozlowski reg = <1>; 3130a0b80a4SKrzysztof Kozlowski clock-frequency = <1000000>; 3140a0b80a4SKrzysztof Kozlowski #address-cells = <1>; 3150a0b80a4SKrzysztof Kozlowski #size-cells = <0>; 3160a0b80a4SKrzysztof Kozlowski 3170a0b80a4SKrzysztof Kozlowski camera@60 { 3180a0b80a4SKrzysztof Kozlowski compatible = "ovti,ov7251"; 3190a0b80a4SKrzysztof Kozlowski reg = <0x60>; 3200a0b80a4SKrzysztof Kozlowski 3210a0b80a4SKrzysztof Kozlowski enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>; 3220a0b80a4SKrzysztof Kozlowski pinctrl-names = "default"; 3230a0b80a4SKrzysztof Kozlowski pinctrl-0 = <&cam3_default>; 3240a0b80a4SKrzysztof Kozlowski 3250a0b80a4SKrzysztof Kozlowski clocks = <&clock_camcc CAM_CC_MCLK3_CLK>; 3260a0b80a4SKrzysztof Kozlowski clock-names = "xclk"; 3270a0b80a4SKrzysztof Kozlowski clock-frequency = <24000000>; 3280a0b80a4SKrzysztof Kozlowski 3290a0b80a4SKrzysztof Kozlowski vdddo-supply = <&vreg_lvs1a_1p8>; 3300a0b80a4SKrzysztof Kozlowski vdda-supply = <&cam3_avdd_2v8>; 3310a0b80a4SKrzysztof Kozlowski 3320a0b80a4SKrzysztof Kozlowski port { 3330a0b80a4SKrzysztof Kozlowski ov7251_ep: endpoint { 334e593a4a2SRob Herring data-lanes = <0>; 335274e4809SRob Herring link-frequencies = /bits/ 64 <240000000 319200000>; 3360a0b80a4SKrzysztof Kozlowski remote-endpoint = <&csiphy3_ep>; 3370a0b80a4SKrzysztof Kozlowski }; 3380a0b80a4SKrzysztof Kozlowski }; 3390a0b80a4SKrzysztof Kozlowski }; 3400a0b80a4SKrzysztof Kozlowski }; 3410a0b80a4SKrzysztof Kozlowski }; 342