]> git.ipfire.org Git - thirdparty/u-boot.git/blob - src/arm/samsung/exynos3250-monk.dts
Squashed 'dts/upstream/' content from commit aaba2d45dc2a
[thirdparty/u-boot.git] / src / arm / samsung / exynos3250-monk.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3 * Samsung's Exynos3250 based Monk board device tree source
4 *
5 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com
7 *
8 * Device tree source file for Samsung's Monk board which is based on
9 * Samsung Exynos3250 SoC.
10 */
11
12 /dts-v1/;
13 #include "exynos3250.dtsi"
14 #include "exynos4412-ppmu-common.dtsi"
15 #include <dt-bindings/input/input.h>
16 #include <dt-bindings/gpio/gpio.h>
17 #include <dt-bindings/clock/samsung,s2mps11.h>
18
19 / {
20 model = "Samsung Monk board";
21 compatible = "samsung,monk", "samsung,exynos3250", "samsung,exynos3";
22
23 aliases {
24 i2c7 = &i2c_max77836;
25 mmc0 = &mshc_0;
26 };
27
28 memory@40000000 {
29 device_type = "memory";
30 reg = <0x40000000 0x1ff00000>;
31 };
32
33 firmware@205f000 {
34 compatible = "samsung,secure-firmware";
35 reg = <0x0205f000 0x1000>;
36 };
37
38 gpio-keys {
39 compatible = "gpio-keys";
40
41 power-key {
42 gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
43 linux,code = <KEY_POWER>;
44 label = "power key";
45 debounce-interval = <10>;
46 wakeup-source;
47 };
48 };
49
50 vemmc_reg: voltage-regulator-0 {
51 compatible = "regulator-fixed";
52 regulator-name = "V_EMMC_2.8V-fixed";
53 regulator-min-microvolt = <2800000>;
54 regulator-max-microvolt = <2800000>;
55 gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
56 enable-active-high;
57 };
58
59 i2c_max77836: i2c-gpio-0 {
60 compatible = "i2c-gpio";
61 sda-gpios = <&gpd0 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
62 scl-gpios = <&gpd0 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
63 #address-cells = <1>;
64 #size-cells = <0>;
65
66 max77836: pmic@25 {
67 compatible = "maxim,max77836";
68 interrupt-parent = <&gpx1>;
69 interrupts = <5 IRQ_TYPE_NONE>;
70 reg = <0x25>;
71 wakeup-source;
72
73 extcon {
74 compatible = "maxim,max77836-muic";
75 };
76
77 regulators {
78 compatible = "maxim,max77836-regulator";
79 safeout_reg: SAFEOUT {
80 regulator-name = "SAFEOUT";
81 };
82
83 charger_reg: CHARGER {
84 regulator-name = "CHARGER";
85 regulator-min-microamp = <45000>;
86 regulator-max-microamp = <475000>;
87 regulator-boot-on;
88 };
89
90 motor_reg: LDO1 {
91 regulator-name = "MOT_2.7V";
92 regulator-min-microvolt = <1100000>;
93 regulator-max-microvolt = <2700000>;
94 };
95
96 LDO2 {
97 regulator-name = "UNUSED_LDO2";
98 regulator-min-microvolt = <800000>;
99 regulator-max-microvolt = <3950000>;
100 };
101 };
102
103 charger {
104 compatible = "maxim,max77836-charger";
105
106 maxim,constant-uvolt = <4350000>;
107 maxim,fast-charge-uamp = <225000>;
108 maxim,eoc-uamp = <7500>;
109 maxim,ovp-uvolt = <6500000>;
110 };
111 };
112 };
113
114 haptics {
115 compatible = "regulator-haptic";
116 haptic-supply = <&motor_reg>;
117 min-microvolt = <1100000>;
118 max-microvolt = <2700000>;
119 };
120
121 thermal-zones {
122 cpu_thermal: cpu-thermal {
123 cooling-maps {
124 map0 {
125 /* Correspond to 500MHz at freq_table */
126 cooling-device = <&cpu0 5 5>,
127 <&cpu1 5 5>;
128 };
129 map1 {
130 /* Correspond to 200MHz at freq_table */
131 cooling-device = <&cpu0 8 8>,
132 <&cpu1 8 8>;
133 };
134 };
135 };
136 };
137 };
138
139 &adc {
140 vdd-supply = <&ldo3_reg>;
141 status = "okay";
142 assigned-clocks = <&cmu CLK_SCLK_TSADC>;
143 assigned-clock-rates = <6000000>;
144
145 thermistor-ap {
146 compatible = "murata,ncp15wb473";
147 pullup-uv = <1800000>;
148 pullup-ohm = <100000>;
149 pulldown-ohm = <100000>;
150 io-channels = <&adc 0>;
151 };
152
153 thermistor-battery {
154 compatible = "murata,ncp15wb473";
155 pullup-uv = <1800000>;
156 pullup-ohm = <100000>;
157 pulldown-ohm = <100000>;
158 io-channels = <&adc 1>;
159 };
160 };
161
162 &bus_dmc {
163 devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
164 vdd-supply = <&buck1_reg>;
165 status = "okay";
166 };
167
168 &cmu {
169 clocks = <&xusbxti>;
170 };
171
172 &cpu0 {
173 cpu0-supply = <&buck2_reg>;
174 };
175
176 &exynos_usbphy {
177 vbus-supply = <&safeout_reg>;
178 status = "okay";
179 };
180
181 &gpu {
182 mali-supply = <&buck3_reg>;
183 status = "okay";
184 };
185
186 &hsotg {
187 vusb_d-supply = <&ldo15_reg>;
188 vusb_a-supply = <&ldo12_reg>;
189 dr_mode = "peripheral";
190 status = "okay";
191 };
192
193 &i2c_0 {
194 #address-cells = <1>;
195 #size-cells = <0>;
196 samsung,i2c-sda-delay = <100>;
197 samsung,i2c-slave-addr = <0x10>;
198 samsung,i2c-max-bus-freq = <100000>;
199 status = "okay";
200
201 pmic@66 {
202 compatible = "samsung,s2mps14-pmic";
203 interrupt-parent = <&gpx0>;
204 interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
205 reg = <0x66>;
206 wakeup-source;
207
208 s2mps14_osc: clocks {
209 compatible = "samsung,s2mps14-clk";
210 #clock-cells = <1>;
211 clock-output-names = "s2mps14_ap", "unused",
212 "s2mps14_bt";
213 };
214
215 regulators {
216 ldo1_reg: LDO1 {
217 regulator-name = "VAP_ALIVE_1.0V";
218 regulator-min-microvolt = <1000000>;
219 regulator-max-microvolt = <1000000>;
220 regulator-always-on;
221 };
222
223 ldo2_reg: LDO2 {
224 regulator-name = "VAP_M1_1.2V";
225 regulator-min-microvolt = <1200000>;
226 regulator-max-microvolt = <1200000>;
227 regulator-always-on;
228 };
229
230 ldo3_reg: LDO3 {
231 regulator-name = "VCC_AP_1.8V";
232 regulator-min-microvolt = <1800000>;
233 regulator-max-microvolt = <1800000>;
234 regulator-always-on;
235 };
236
237 ldo4_reg: LDO4 {
238 regulator-name = "VAP_AVDD_PLL1";
239 regulator-min-microvolt = <1800000>;
240 regulator-max-microvolt = <1800000>;
241 regulator-always-on;
242 };
243
244 ldo5_reg: LDO5 {
245 regulator-name = "VAP_PLL_ISO_1.0V";
246 regulator-min-microvolt = <1000000>;
247 regulator-max-microvolt = <1000000>;
248 regulator-always-on;
249 };
250
251 ldo6_reg: LDO6 {
252 regulator-name = "VAP_MIPI_1.0V";
253 regulator-min-microvolt = <1000000>;
254 regulator-max-microvolt = <1000000>;
255 };
256
257 ldo7_reg: LDO7 {
258 regulator-name = "VAP_AVDD_1.8V";
259 regulator-min-microvolt = <1800000>;
260 regulator-max-microvolt = <1800000>;
261 regulator-always-on;
262 };
263
264 ldo8_reg: LDO8 {
265 regulator-name = "VAP_USB_3.0V";
266 regulator-min-microvolt = <3000000>;
267 regulator-max-microvolt = <3000000>;
268 regulator-always-on;
269 };
270
271 ldo9_reg: LDO9 {
272 regulator-name = "V_LPDDR_1.2V";
273 regulator-min-microvolt = <1200000>;
274 regulator-max-microvolt = <1200000>;
275 regulator-always-on;
276 };
277
278 ldo10_reg: LDO10 {
279 regulator-name = "UNUSED_LDO10";
280 regulator-min-microvolt = <1000000>;
281 regulator-max-microvolt = <1000000>;
282 };
283
284 ldo11_reg: LDO11 {
285 regulator-name = "V_EMMC_1.8V";
286 regulator-min-microvolt = <1800000>;
287 regulator-max-microvolt = <1800000>;
288 samsung,ext-control-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
289 };
290
291 ldo12_reg: LDO12 {
292 regulator-name = "V_EMMC_2.8V";
293 regulator-min-microvolt = <2800000>;
294 regulator-max-microvolt = <2800000>;
295 samsung,ext-control-gpios = <&gpk0 2 GPIO_ACTIVE_HIGH>;
296 };
297
298 ldo13_reg: LDO13 {
299 regulator-name = "VSENSOR_2.85V";
300 regulator-min-microvolt = <2850000>;
301 regulator-max-microvolt = <2850000>;
302 regulator-always-on;
303 };
304
305 ldo14_reg: LDO14 {
306 regulator-name = "UNUSED_LDO14";
307 regulator-min-microvolt = <1800000>;
308 regulator-max-microvolt = <1800000>;
309 };
310
311 ldo15_reg: LDO15 {
312 regulator-name = "TSP_AVDD_3.3V";
313 regulator-min-microvolt = <3300000>;
314 regulator-max-microvolt = <3300000>;
315 };
316
317 ldo16_reg: LDO16 {
318 regulator-name = "LCD_VDD_3.3V";
319 regulator-min-microvolt = <3300000>;
320 regulator-max-microvolt = <3300000>;
321 };
322
323 ldo17_reg: LDO17 {
324 regulator-name = "UNUSED_LDO17";
325 regulator-min-microvolt = <1800000>;
326 regulator-max-microvolt = <1800000>;
327 };
328
329 ldo18_reg: LDO18 {
330 regulator-name = "UNUSED_LDO18";
331 regulator-min-microvolt = <1800000>;
332 regulator-max-microvolt = <1800000>;
333 };
334
335 ldo19_reg: LDO19 {
336 regulator-name = "TSP_VDD_1.8V";
337 regulator-min-microvolt = <1800000>;
338 regulator-max-microvolt = <1800000>;
339 };
340
341 ldo20_reg: LDO20 {
342 regulator-name = "LCD_VDD_1.8V";
343 regulator-min-microvolt = <1800000>;
344 regulator-max-microvolt = <1800000>;
345 };
346
347 ldo21_reg: LDO21 {
348 regulator-name = "UNUSED_LDO21";
349 regulator-min-microvolt = <1000000>;
350 regulator-max-microvolt = <1000000>;
351 };
352
353 ldo22_reg: LDO22 {
354 regulator-name = "UNUSED_LDO22";
355 regulator-min-microvolt = <1000000>;
356 regulator-max-microvolt = <1000000>;
357 };
358
359 ldo23_reg: LDO23 {
360 regulator-name = "UNUSED_LDO23";
361 regulator-min-microvolt = <1000000>;
362 regulator-max-microvolt = <1000000>;
363 regulator-always-on;
364 };
365
366 ldo24_reg: LDO24 {
367 regulator-name = "UNUSED_LDO24";
368 regulator-min-microvolt = <1800000>;
369 regulator-max-microvolt = <1800000>;
370 };
371
372 ldo25_reg: LDO25 {
373 regulator-name = "UNUSED_LDO25";
374 regulator-min-microvolt = <1800000>;
375 regulator-max-microvolt = <1800000>;
376 };
377
378 buck1_reg: BUCK1 {
379 regulator-name = "VAP_MIF_1.0V";
380 regulator-min-microvolt = <800000>;
381 regulator-max-microvolt = <900000>;
382 regulator-always-on;
383 };
384
385 buck2_reg: BUCK2 {
386 regulator-name = "VAP_ARM_1.0V";
387 regulator-min-microvolt = <850000>;
388 regulator-max-microvolt = <1150000>;
389 regulator-always-on;
390 };
391
392 buck3_reg: BUCK3 {
393 regulator-name = "VAP_INT3D_1.0V";
394 regulator-min-microvolt = <850000>;
395 regulator-max-microvolt = <1000000>;
396 regulator-always-on;
397 };
398
399 buck4_reg: BUCK4 {
400 regulator-name = "VCC_SUB_1.95V";
401 regulator-min-microvolt = <1950000>;
402 regulator-max-microvolt = <1950000>;
403 regulator-always-on;
404 };
405
406 buck5_reg: BUCK5 {
407 regulator-name = "VCC_SUB_1.35V";
408 regulator-min-microvolt = <1350000>;
409 regulator-max-microvolt = <1350000>;
410 regulator-always-on;
411 };
412 };
413 };
414 };
415
416 &i2c_1 {
417 #address-cells = <1>;
418 #size-cells = <0>;
419 samsung,i2c-sda-delay = <100>;
420 samsung,i2c-slave-addr = <0x10>;
421 samsung,i2c-max-bus-freq = <400000>;
422 status = "okay";
423
424 fuelgauge@36 {
425 compatible = "maxim,max77836-battery";
426 interrupt-parent = <&gpx1>;
427 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
428 reg = <0x36>;
429 };
430 };
431
432 &i2s2 {
433 status = "okay";
434 };
435
436 &mshc_0 {
437 #address-cells = <1>;
438 #size-cells = <0>;
439 broken-cd;
440 non-removable;
441 cap-mmc-highspeed;
442 mmc-hs200-1_8v;
443 card-detect-delay = <200>;
444 vmmc-supply = <&vemmc_reg>;
445 clock-frequency = <100000000>;
446 max-frequency = <100000000>;
447 mmc-ddr-1_8v;
448 samsung,dw-mshc-ciu-div = <1>;
449 samsung,dw-mshc-sdr-timing = <0 1>;
450 samsung,dw-mshc-ddr-timing = <1 2>;
451 pinctrl-names = "default";
452 pinctrl-0 = <&sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
453 bus-width = <8>;
454 status = "okay";
455 };
456
457 &serial_0 {
458 assigned-clocks = <&cmu CLK_SCLK_UART0>;
459 assigned-clock-rates = <100000000>;
460 status = "okay";
461 };
462
463 &serial_1 {
464 status = "okay";
465 };
466
467 &tmu {
468 vtmu-supply = <&ldo7_reg>;
469 status = "okay";
470 };
471
472 &rtc {
473 clocks = <&cmu CLK_RTC>, <&s2mps14_osc S2MPS11_CLK_AP>;
474 clock-names = "rtc", "rtc_src";
475 status = "okay";
476 };
477
478 &xusbxti {
479 clock-frequency = <24000000>;
480 };
481
482 &pinctrl_0 {
483 pinctrl-names = "default";
484 pinctrl-0 = <&sleep0>;
485
486 sleep0: sleep-state {
487 PIN_SLP(gpa0-0, INPUT, DOWN);
488 PIN_SLP(gpa0-1, INPUT, DOWN);
489 PIN_SLP(gpa0-2, INPUT, DOWN);
490 PIN_SLP(gpa0-3, INPUT, DOWN);
491 PIN_SLP(gpa0-4, INPUT, DOWN);
492 PIN_SLP(gpa0-5, INPUT, DOWN);
493 PIN_SLP(gpa0-6, INPUT, DOWN);
494 PIN_SLP(gpa0-7, INPUT, DOWN);
495
496 PIN_SLP(gpa1-0, INPUT, DOWN);
497 PIN_SLP(gpa1-1, INPUT, DOWN);
498 PIN_SLP(gpa1-2, INPUT, DOWN);
499 PIN_SLP(gpa1-3, INPUT, DOWN);
500 PIN_SLP(gpa1-4, INPUT, DOWN);
501 PIN_SLP(gpa1-5, INPUT, DOWN);
502
503 PIN_SLP(gpb-0, PREV, NONE);
504 PIN_SLP(gpb-1, PREV, NONE);
505 PIN_SLP(gpb-2, PREV, NONE);
506 PIN_SLP(gpb-3, PREV, NONE);
507 PIN_SLP(gpb-4, INPUT, DOWN);
508 PIN_SLP(gpb-5, INPUT, DOWN);
509 PIN_SLP(gpb-6, INPUT, DOWN);
510 PIN_SLP(gpb-7, INPUT, DOWN);
511
512 PIN_SLP(gpc0-0, INPUT, DOWN);
513 PIN_SLP(gpc0-1, INPUT, DOWN);
514 PIN_SLP(gpc0-2, INPUT, DOWN);
515 PIN_SLP(gpc0-3, INPUT, DOWN);
516 PIN_SLP(gpc0-4, INPUT, DOWN);
517
518 PIN_SLP(gpc1-0, INPUT, DOWN);
519 PIN_SLP(gpc1-1, INPUT, DOWN);
520 PIN_SLP(gpc1-2, INPUT, DOWN);
521 PIN_SLP(gpc1-3, INPUT, DOWN);
522 PIN_SLP(gpc1-4, INPUT, DOWN);
523
524 PIN_SLP(gpd0-0, INPUT, DOWN);
525 PIN_SLP(gpd0-1, INPUT, DOWN);
526 PIN_SLP(gpd0-2, INPUT, NONE);
527 PIN_SLP(gpd0-3, INPUT, NONE);
528
529 PIN_SLP(gpd1-0, INPUT, NONE);
530 PIN_SLP(gpd1-1, INPUT, NONE);
531 PIN_SLP(gpd1-2, INPUT, NONE);
532 PIN_SLP(gpd1-3, INPUT, NONE);
533 };
534 };
535
536 &pinctrl_1 {
537 pinctrl-names = "default";
538 pinctrl-0 = <&initial1 &sleep1>;
539
540 initial1: initial-state {
541 PIN_IN(gpk2-0, DOWN, LV1);
542 PIN_IN(gpk2-1, DOWN, LV1);
543 PIN_IN(gpk2-2, DOWN, LV1);
544 PIN_IN(gpk2-3, DOWN, LV1);
545 PIN_IN(gpk2-4, DOWN, LV1);
546 PIN_IN(gpk2-5, DOWN, LV1);
547 PIN_IN(gpk2-6, DOWN, LV1);
548 };
549
550 sleep1: sleep-state {
551 PIN_SLP(gpe0-0, PREV, NONE);
552 PIN_SLP(gpe0-1, PREV, NONE);
553 PIN_SLP(gpe0-2, INPUT, DOWN);
554 PIN_SLP(gpe0-3, INPUT, DOWN);
555 PIN_SLP(gpe0-4, PREV, NONE);
556 PIN_SLP(gpe0-5, INPUT, DOWN);
557 PIN_SLP(gpe0-6, INPUT, DOWN);
558 PIN_SLP(gpe0-7, INPUT, DOWN);
559
560 PIN_SLP(gpe1-0, INPUT, DOWN);
561 PIN_SLP(gpe1-1, PREV, NONE);
562 PIN_SLP(gpe1-2, INPUT, DOWN);
563 PIN_SLP(gpe1-3, INPUT, DOWN);
564 PIN_SLP(gpe1-4, INPUT, DOWN);
565 PIN_SLP(gpe1-5, INPUT, DOWN);
566 PIN_SLP(gpe1-6, INPUT, DOWN);
567 PIN_SLP(gpe1-7, INPUT, NONE);
568
569 PIN_SLP(gpe2-0, INPUT, NONE);
570 PIN_SLP(gpe2-1, INPUT, NONE);
571 PIN_SLP(gpe2-2, INPUT, NONE);
572
573 PIN_SLP(gpk0-0, INPUT, DOWN);
574 PIN_SLP(gpk0-1, INPUT, DOWN);
575 PIN_SLP(gpk0-2, OUT0, NONE);
576 PIN_SLP(gpk0-3, INPUT, DOWN);
577 PIN_SLP(gpk0-4, INPUT, DOWN);
578 PIN_SLP(gpk0-5, INPUT, DOWN);
579 PIN_SLP(gpk0-6, INPUT, DOWN);
580 PIN_SLP(gpk0-7, INPUT, DOWN);
581
582 PIN_SLP(gpk1-0, PREV, NONE);
583 PIN_SLP(gpk1-1, PREV, NONE);
584 PIN_SLP(gpk1-2, INPUT, DOWN);
585 PIN_SLP(gpk1-3, PREV, NONE);
586 PIN_SLP(gpk1-4, PREV, NONE);
587 PIN_SLP(gpk1-5, PREV, NONE);
588 PIN_SLP(gpk1-6, PREV, NONE);
589
590 PIN_SLP(gpk2-0, INPUT, DOWN);
591 PIN_SLP(gpk2-1, INPUT, DOWN);
592 PIN_SLP(gpk2-2, INPUT, DOWN);
593 PIN_SLP(gpk2-3, INPUT, DOWN);
594 PIN_SLP(gpk2-4, INPUT, DOWN);
595 PIN_SLP(gpk2-5, INPUT, DOWN);
596 PIN_SLP(gpk2-6, INPUT, DOWN);
597
598 PIN_SLP(gpl0-0, INPUT, DOWN);
599 PIN_SLP(gpl0-1, INPUT, DOWN);
600 PIN_SLP(gpl0-2, INPUT, DOWN);
601 PIN_SLP(gpl0-3, INPUT, DOWN);
602
603 PIN_SLP(gpm0-0, INPUT, DOWN);
604 PIN_SLP(gpm0-1, INPUT, DOWN);
605 PIN_SLP(gpm0-2, INPUT, DOWN);
606 PIN_SLP(gpm0-3, INPUT, DOWN);
607 PIN_SLP(gpm0-4, INPUT, DOWN);
608 PIN_SLP(gpm0-5, INPUT, DOWN);
609 PIN_SLP(gpm0-6, INPUT, DOWN);
610 PIN_SLP(gpm0-7, INPUT, DOWN);
611
612 PIN_SLP(gpm1-0, INPUT, DOWN);
613 PIN_SLP(gpm1-1, INPUT, DOWN);
614 PIN_SLP(gpm1-2, INPUT, DOWN);
615 PIN_SLP(gpm1-3, INPUT, DOWN);
616 PIN_SLP(gpm1-4, INPUT, DOWN);
617 PIN_SLP(gpm1-5, INPUT, DOWN);
618 PIN_SLP(gpm1-6, INPUT, DOWN);
619
620 PIN_SLP(gpm2-0, INPUT, DOWN);
621 PIN_SLP(gpm2-1, INPUT, DOWN);
622 PIN_SLP(gpm2-2, INPUT, DOWN);
623 PIN_SLP(gpm2-3, INPUT, DOWN);
624 PIN_SLP(gpm2-4, INPUT, DOWN);
625
626 PIN_SLP(gpm3-0, INPUT, DOWN);
627 PIN_SLP(gpm3-1, INPUT, DOWN);
628 PIN_SLP(gpm3-2, INPUT, DOWN);
629 PIN_SLP(gpm3-3, INPUT, DOWN);
630 PIN_SLP(gpm3-4, INPUT, DOWN);
631 PIN_SLP(gpm3-5, INPUT, DOWN);
632 PIN_SLP(gpm3-6, INPUT, DOWN);
633 PIN_SLP(gpm3-7, INPUT, DOWN);
634
635 PIN_SLP(gpm4-0, INPUT, DOWN);
636 PIN_SLP(gpm4-1, INPUT, DOWN);
637 PIN_SLP(gpm4-2, INPUT, DOWN);
638 PIN_SLP(gpm4-3, INPUT, DOWN);
639 PIN_SLP(gpm4-4, INPUT, DOWN);
640 PIN_SLP(gpm4-5, INPUT, DOWN);
641 PIN_SLP(gpm4-6, INPUT, DOWN);
642 PIN_SLP(gpm4-7, INPUT, DOWN);
643 };
644 };