Merge tag 'asoc-v4.19-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / media / qcom,camss.txt
1 Qualcomm Camera Subsystem
2
3 * Properties
4
5 - compatible:
6         Usage: required
7         Value type: <stringlist>
8         Definition: Should contain one of:
9                 - "qcom,msm8916-camss"
10                 - "qcom,msm8996-camss"
11 - reg:
12         Usage: required
13         Value type: <prop-encoded-array>
14         Definition: Register ranges as listed in the reg-names property.
15 - reg-names:
16         Usage: required
17         Value type: <stringlist>
18         Definition: Should contain the following entries:
19                 - "csiphy0"
20                 - "csiphy0_clk_mux"
21                 - "csiphy1"
22                 - "csiphy1_clk_mux"
23                 - "csiphy2"             (8996 only)
24                 - "csiphy2_clk_mux"     (8996 only)
25                 - "csid0"
26                 - "csid1"
27                 - "csid2"               (8996 only)
28                 - "csid3"               (8996 only)
29                 - "ispif"
30                 - "csi_clk_mux"
31                 - "vfe0"
32                 - "vfe1"                (8996 only)
33 - interrupts:
34         Usage: required
35         Value type: <prop-encoded-array>
36         Definition: Interrupts as listed in the interrupt-names property.
37 - interrupt-names:
38         Usage: required
39         Value type: <stringlist>
40         Definition: Should contain the following entries:
41                 - "csiphy0"
42                 - "csiphy1"
43                 - "csiphy2"             (8996 only)
44                 - "csid0"
45                 - "csid1"
46                 - "csid2"               (8996 only)
47                 - "csid3"               (8996 only)
48                 - "ispif"
49                 - "vfe0"
50                 - "vfe1"                (8996 only)
51 - power-domains:
52         Usage: required
53         Value type: <prop-encoded-array>
54         Definition: A phandle and power domain specifier pairs to the
55                     power domain which is responsible for collapsing
56                     and restoring power to the peripheral.
57 - clocks:
58         Usage: required
59         Value type: <prop-encoded-array>
60         Definition: A list of phandle and clock specifier pairs as listed
61                     in clock-names property.
62 - clock-names:
63         Usage: required
64         Value type: <stringlist>
65         Definition: Should contain the following entries:
66                 - "top_ahb"
67                 - "ispif_ahb"
68                 - "csiphy0_timer"
69                 - "csiphy1_timer"
70                 - "csiphy2_timer"       (8996 only)
71                 - "csi0_ahb"
72                 - "csi0"
73                 - "csi0_phy"
74                 - "csi0_pix"
75                 - "csi0_rdi"
76                 - "csi1_ahb"
77                 - "csi1"
78                 - "csi1_phy"
79                 - "csi1_pix"
80                 - "csi1_rdi"
81                 - "csi2_ahb"            (8996 only)
82                 - "csi2"                (8996 only)
83                 - "csi2_phy"            (8996 only)
84                 - "csi2_pix"            (8996 only)
85                 - "csi2_rdi"            (8996 only)
86                 - "csi3_ahb"            (8996 only)
87                 - "csi3"                (8996 only)
88                 - "csi3_phy"            (8996 only)
89                 - "csi3_pix"            (8996 only)
90                 - "csi3_rdi"            (8996 only)
91                 - "ahb"
92                 - "vfe0"
93                 - "csi_vfe0"
94                 - "vfe0_ahb",           (8996 only)
95                 - "vfe0_stream",        (8996 only)
96                 - "vfe1",               (8996 only)
97                 - "csi_vfe1",           (8996 only)
98                 - "vfe1_ahb",           (8996 only)
99                 - "vfe1_stream",        (8996 only)
100                 - "vfe_ahb"
101                 - "vfe_axi"
102 - vdda-supply:
103         Usage: required
104         Value type: <phandle>
105         Definition: A phandle to voltage supply for CSI2.
106 - iommus:
107         Usage: required
108         Value type: <prop-encoded-array>
109         Definition: A list of phandle and IOMMU specifier pairs.
110
111 * Nodes
112
113 - ports:
114         Usage: required
115         Definition: As described in video-interfaces.txt in same directory.
116         Properties:
117                 - reg:
118                         Usage: required
119                         Value type: <u32>
120                         Definition: Selects CSI2 PHY interface - PHY0, PHY1
121                                     or PHY2 (8996 only)
122         Endpoint node properties:
123                 - clock-lanes:
124                         Usage: required
125                         Value type: <u32>
126                         Definition: The physical clock lane index. On 8916
127                                     the value must always be <1> as the physical
128                                     clock lane is lane 1. On 8996 the value must
129                                     always be <7> as the hardware supports D-PHY
130                                     and C-PHY, indexes are in a common set and
131                                     D-PHY physical clock lane is labeled as 7.
132                 - data-lanes:
133                         Usage: required
134                         Value type: <prop-encoded-array>
135                         Definition: An array of physical data lanes indexes.
136                                     Position of an entry determines the logical
137                                     lane number, while the value of an entry
138                                     indicates physical lane index. Lane swapping
139                                     is supported. Physical lane indexes for
140                                     8916: 0, 2, 3, 4; for 8996: 0, 1, 2, 3.
141
142 * An Example
143
144         camss: camss@1b00000 {
145                 compatible = "qcom,msm8916-camss";
146                 reg = <0x1b0ac00 0x200>,
147                         <0x1b00030 0x4>,
148                         <0x1b0b000 0x200>,
149                         <0x1b00038 0x4>,
150                         <0x1b08000 0x100>,
151                         <0x1b08400 0x100>,
152                         <0x1b0a000 0x500>,
153                         <0x1b00020 0x10>,
154                         <0x1b10000 0x1000>;
155                 reg-names = "csiphy0",
156                         "csiphy0_clk_mux",
157                         "csiphy1",
158                         "csiphy1_clk_mux",
159                         "csid0",
160                         "csid1",
161                         "ispif",
162                         "csi_clk_mux",
163                         "vfe0";
164                 interrupts = <GIC_SPI 78 0>,
165                         <GIC_SPI 79 0>,
166                         <GIC_SPI 51 0>,
167                         <GIC_SPI 52 0>,
168                         <GIC_SPI 55 0>,
169                         <GIC_SPI 57 0>;
170                 interrupt-names = "csiphy0",
171                         "csiphy1",
172                         "csid0",
173                         "csid1",
174                         "ispif",
175                         "vfe0";
176                 power-domains = <&gcc VFE_GDSC>;
177                 clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
178                         <&gcc GCC_CAMSS_ISPIF_AHB_CLK>,
179                         <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>,
180                         <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>,
181                         <&gcc GCC_CAMSS_CSI0_AHB_CLK>,
182                         <&gcc GCC_CAMSS_CSI0_CLK>,
183                         <&gcc GCC_CAMSS_CSI0PHY_CLK>,
184                         <&gcc GCC_CAMSS_CSI0PIX_CLK>,
185                         <&gcc GCC_CAMSS_CSI0RDI_CLK>,
186                         <&gcc GCC_CAMSS_CSI1_AHB_CLK>,
187                         <&gcc GCC_CAMSS_CSI1_CLK>,
188                         <&gcc GCC_CAMSS_CSI1PHY_CLK>,
189                         <&gcc GCC_CAMSS_CSI1PIX_CLK>,
190                         <&gcc GCC_CAMSS_CSI1RDI_CLK>,
191                         <&gcc GCC_CAMSS_AHB_CLK>,
192                         <&gcc GCC_CAMSS_VFE0_CLK>,
193                         <&gcc GCC_CAMSS_CSI_VFE0_CLK>,
194                         <&gcc GCC_CAMSS_VFE_AHB_CLK>,
195                         <&gcc GCC_CAMSS_VFE_AXI_CLK>;
196                 clock-names = "top_ahb",
197                         "ispif_ahb",
198                         "csiphy0_timer",
199                         "csiphy1_timer",
200                         "csi0_ahb",
201                         "csi0",
202                         "csi0_phy",
203                         "csi0_pix",
204                         "csi0_rdi",
205                         "csi1_ahb",
206                         "csi1",
207                         "csi1_phy",
208                         "csi1_pix",
209                         "csi1_rdi",
210                         "ahb",
211                         "vfe0",
212                         "csi_vfe0",
213                         "vfe_ahb",
214                         "vfe_axi";
215                 vdda-supply = <&pm8916_l2>;
216                 iommus = <&apps_iommu 3>;
217                 ports {
218                         #address-cells = <1>;
219                         #size-cells = <0>;
220                         port@0 {
221                                 reg = <0>;
222                                 csiphy0_ep: endpoint {
223                                         clock-lanes = <1>;
224                                         data-lanes = <0 2>;
225                                         remote-endpoint = <&ov5645_ep>;
226                                 };
227                         };
228                 };
229         };