blob: 33c147b7f8e69f52873a305ac56875d87e94e765 [file] [log] [blame]
David Wub7801d52020-11-17 19:57:52 +08001/* SPDX-License-Identifier: GPL-2.0-only */
2
David Wu1f7a39e2021-01-11 18:57:11 +08003Scope (\_SB.PCI0.IPU0)
4{
5 Name (_DSD, Package (0x02) /* _DSD: Device-Specific Data */
6 {
7 ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
8 Package (0x02)
9 {
10 Package (0x02)
11 {
12 "port0",
13 "PRT0"
14 },
15 Package (0x02)
16 {
17 "port1",
18 "PRT1"
19 }
20 }
21 })
22
23 Name (PRT0, Package (0x04)
24 {
25 ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
26 Package (0x01)
27 {
28 Package (0x02)
29 {
30 "port",
31 5
32 }
33 },
34 ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
35 Package (0x01)
36 {
37 Package (0x02)
38 {
39 "endpoint0",
40 "EP00"
41 }
42 }
43 })
44
45 Name (PRT1, Package (0x04)
46 {
47 ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
48 Package (0x01)
49 {
50 Package (0x02)
51 {
52 "port",
53 1
54 }
55 },
56
57 ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
58 Package (0x01)
59 {
60 Package (0x02)
61 {
62 "endpoint0",
63 "EP10"
64 }
65 }
66 })
67}
68
69Scope (\_SB.PCI0.IPU0)
70{
71 Name (EP10, Package (0x02)
72 {
73 ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
74 Package (0x04)
75 {
76 Package (0x02)
77 {
78 "endpoint",
Felix Singerfa06bcb2022-12-26 09:32:47 +010079 0
David Wu1f7a39e2021-01-11 18:57:11 +080080 },
81 Package (0x02)
82 {
83 "clock-lanes",
Felix Singerfa06bcb2022-12-26 09:32:47 +010084 0
David Wu1f7a39e2021-01-11 18:57:11 +080085 },
86 Package (0x02)
87 {
88 "data-lanes",
89 Package (0x02)
90 {
Felix Singerdfbb6342022-12-26 08:39:35 +010091 1,
David Wu1f7a39e2021-01-11 18:57:11 +080092 0x02
93 }
94 },
95 Package (0x02)
96 {
97 "remote-endpoint",
98 Package (0x03)
99 {
100 ^I2C2.CAM1,
Felix Singerfa06bcb2022-12-26 09:32:47 +0100101 0,
102 0
David Wu1f7a39e2021-01-11 18:57:11 +0800103 }
104 }
105 }
106 })
107}
108
109Scope (\_SB.PCI0.I2C2)
110{
Felix Singerfa06bcb2022-12-26 09:32:47 +0100111 Name (STA, 0)
David Wu1f7a39e2021-01-11 18:57:11 +0800112 PowerResource (FCPR, 0x00, 0x0000)
113 {
114 Method (_ON, 0, Serialized) /* Front camera_ON_: Power On */
115 {
116 If (STA == 0)
117 {
118 /* Enable IMG_CLK */
119 MCON(2,1) /* Clock 2, 19.2MHz */
120
121 /* Pull RST low */
122 CTXS(GPP_D4)
123
124 /* Pull PWREN high */
125 STXS(GPP_D17)
126 Sleep(10) /* t9 */
127
128 /* Pull RST high */
129 STXS(GPP_D4)
130 Sleep(1) /* t2 */
131
132 STA = 1
133 }
134 }
135 Method (_OFF, 0, Serialized) /* Front camera_OFF_: Power Off */
136 {
137 If (STA == 1)
138 {
139 /* Disable IMG_CLK */
140 Sleep(1) /* t0+t1 */
141 MCOF(2) /* Clock 2 */
142
143 /* Pull RST low */
144 CTXS(GPP_D4)
145
146 /* Pull PWREN low */
147 CTXS(GPP_D17)
148
149 STA = 0
150 }
151 }
152 Method (_STA, 0, NotSerialized) /* _STA: Status */
153 {
154 Return (STA)
155 }
156 }
157
158 Device (CAM1)
159 {
160 Name (_HID, "INT3474") /* _HID: Hardware ID */
Felix Singerfa06bcb2022-12-26 09:32:47 +0100161 Name (_UID, 0) /* _UID: Unique ID */
David Wu1f7a39e2021-01-11 18:57:11 +0800162 Name (_DDN, "Ov 2740 Camera") /* _DDN: DOS Device Name */
163 Method (_STA, 0, NotSerialized) /* _STA: Status */
164 {
165 Return (0x0F)
166 }
167 Name (_CRS, ResourceTemplate () /* _CRS: Current Resource Settings */
168 {
169 I2cSerialBus (0x0036, ControllerInitiated, 0x00061A80,
170 AddressingMode7Bit, "\\_SB.PCI0.I2C2",
171 0x00, ResourceConsumer, ,
172 )
173 })
174 Name (_PR0, Package (0x01) /* _PR0: Power Resources for D0 */
175 {
176 FCPR
177 })
178 Name (_PR3, Package (0x01) /* _PR3: Power Resources for D3hot */
179 {
180 FCPR
181 })
182 Name (_DSD, Package (0x04) /* _DSD: Device-Specific Data */
183 {
184 ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
185 Package (0x01)
186 {
187 Package (0x02)
188 {
189 "port0",
190 "PRT0"
191 }
192 },
193 ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
194 Package (0x02)
195 {
196 Package (0x02)
197 {
198 "clock-frequency",
199 0x0124F800
200 },
201 Package (0x02)
202 {
203 "i2c-allow-low-power-probe",
204 0x01
205 }
206 }
207 })
208 Name (PRT0, Package (0x04)
209 {
210 ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
211 Package (0x01)
212 {
213 Package (0x02)
214 {
215 "port",
Felix Singerfa06bcb2022-12-26 09:32:47 +0100216 0
David Wu1f7a39e2021-01-11 18:57:11 +0800217 }
218 },
219 ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
220 Package (0x01)
221 {
222 Package (0x02)
223 {
224 "endpoint0",
225 "EP00"
226 }
227 }
228 })
229 Name (EP00, Package (0x02)
230 {
231 ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
232 Package (0x05)
233 {
234 Package (0x02)
235 {
236 "endpoint",
Felix Singerfa06bcb2022-12-26 09:32:47 +0100237 0
David Wu1f7a39e2021-01-11 18:57:11 +0800238 },
239 Package (0x02)
240 {
241 "clock-lanes",
Felix Singerfa06bcb2022-12-26 09:32:47 +0100242 0
David Wu1f7a39e2021-01-11 18:57:11 +0800243 },
244 Package (0x02)
245 {
246 "data-lanes",
247 Package (0x02)
248 {
Felix Singerdfbb6342022-12-26 08:39:35 +0100249 1,
David Wu1f7a39e2021-01-11 18:57:11 +0800250 0x02
251 }
252 },
253 Package (0x02)
254 {
255 "link-frequencies",
256 Package (0x01)
257 {
258 0x15752A00
259 }
260 },
261 Package (0x02)
262 {
263 "remote-endpoint",
264 Package (0x03)
265 {
266 IPU0,
Felix Singerdfbb6342022-12-26 08:39:35 +0100267 1,
Felix Singerfa06bcb2022-12-26 09:32:47 +0100268 0
David Wu1f7a39e2021-01-11 18:57:11 +0800269 }
270 }
271 }
272 })
273 }
David Wue65e9dd2021-02-02 17:08:21 +0800274 Device (NVM0)
275 {
276 Name (_HID, "PRP0001") // _HID: Hardware ID
277 Name (_UID, 0x01) // _UID: Unique ID
278 Name (_DDN, "AT24 EEPROM") // _DDN: DOS Device Name
279 Method (_STA, 0, NotSerialized) // _STA: Status
280 {
281 Return (0x0F)
282 }
283 Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
284 {
285 I2cSerialBusV2 (0x0050, ControllerInitiated, 0x00061A80,
286 AddressingMode7Bit, "\\_SB.PCI0.I2C2",
287 0x00, ResourceConsumer, , Exclusive,
288 )
289 })
290 Name (_DEP, Package (0x01) // _DEP: Dependencies
291 {
292 CAM1
293 })
294 Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
295 {
296 FCPR
297 })
298 Name (_PR3, Package (0x01) // _PR3: Power Resources for D3hot
299 {
300 FCPR
301 })
302 Name (_DSD, Package (0x02) // _DSD: Device-Specific Data
303 {
304 ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */,
305 Package (0x06)
306 {
307 Package (0x02)
308 {
309 "size",
310 0x2000
311 },
312 Package (0x02)
313 {
314 "pagesize",
Felix Singerdfbb6342022-12-26 08:39:35 +0100315 1
David Wue65e9dd2021-02-02 17:08:21 +0800316 },
317 Package (0x02)
318 {
319 "read-only",
Felix Singerdfbb6342022-12-26 08:39:35 +0100320 1
David Wue65e9dd2021-02-02 17:08:21 +0800321 },
322 Package (0x02)
323 {
324 "address-width",
325 0x10
326 },
327 Package (0x02)
328 {
329 "compatible",
330 "atmel,24c64"
331 },
332 Package (0x02)
333 {
334 "i2c-allow-low-power-probe",
335 0x01
336 }
337 }
338 })
339 }
David Wu1f7a39e2021-01-11 18:57:11 +0800340}