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}; 645