1 // SPDX-License-Identifier: BSD-3-Clause 2 /* 3 * Copyright (c) 2020, The Linux Foundation. A 4 */ 5 6 /dts-v1/; 7 8 #include <dt-bindings/regulator/qcom,rpmh-regu 9 #include <dt-bindings/sound/qcom,q6afe.h> 10 #include <dt-bindings/sound/qcom,q6asm.h> 11 #include <dt-bindings/gpio/gpio.h> 12 #include "sm8250.dtsi" 13 #include "pm8150.dtsi" 14 #include "pm8150b.dtsi" 15 #include "pm8150l.dtsi" 16 #include "pm8009.dtsi" 17 18 / { 19 model = "Qualcomm Technologies, Inc. S 20 compatible = "qcom,sm8250-mtp", "qcom, 21 chassis-type = "handset"; 22 23 aliases { 24 serial0 = &uart12; 25 }; 26 27 wcd938x: audio-codec { 28 compatible = "qcom,wcd9380-cod 29 30 reset-gpios = <&tlmm 32 GPIO_A 31 32 vdd-buck-supply = <&vreg_s4a_1 33 vdd-rxtx-supply = <&vreg_s4a_1 34 vdd-io-supply = <&vreg_s4a_1p8 35 vdd-mic-bias-supply = <&vreg_b 36 37 qcom,micbias1-microvolt = <180 38 qcom,micbias2-microvolt = <180 39 qcom,micbias3-microvolt = <180 40 qcom,micbias4-microvolt = <180 41 qcom,mbhc-buttons-vthreshold-m 42 qcom,mbhc-headset-vthreshold-m 43 qcom,mbhc-headphone-vthreshold 44 qcom,rx-device = <&wcd_rx>; 45 qcom,tx-device = <&wcd_tx>; 46 47 #sound-dai-cells = <1>; 48 }; 49 50 chosen { 51 stdout-path = "serial0:115200n 52 }; 53 54 thermal-zones { 55 camera-thermal { 56 thermal-sensors = <&pm 57 58 trips { 59 active-config0 60 temper 61 hyster 62 type = 63 }; 64 }; 65 }; 66 67 conn-thermal { 68 thermal-sensors = <&pm 69 70 trips { 71 active-config0 72 temper 73 hyster 74 type = 75 }; 76 }; 77 }; 78 79 mmw-pa1-thermal { 80 thermal-sensors = <&pm 81 82 trips { 83 active-config0 84 temper 85 hyster 86 type = 87 }; 88 }; 89 }; 90 91 mmw-pa2-thermal { 92 thermal-sensors = <&pm 93 94 trips { 95 active-config0 96 temper 97 hyster 98 type = 99 }; 100 }; 101 }; 102 103 skin-msm-thermal { 104 thermal-sensors = <&pm 105 106 trips { 107 active-config0 108 temper 109 hyster 110 type = 111 }; 112 }; 113 }; 114 115 skin-thermal { 116 thermal-sensors = <&pm 117 118 trips { 119 active-config0 120 temper 121 hyster 122 type = 123 }; 124 }; 125 }; 126 127 xo-thermal { 128 thermal-sensors = <&pm 129 130 trips { 131 active-config0 132 temper 133 hyster 134 type = 135 }; 136 }; 137 }; 138 }; 139 140 vph_pwr: vph-pwr-regulator { 141 compatible = "regulator-fixed" 142 regulator-name = "vph_pwr"; 143 regulator-min-microvolt = <370 144 regulator-max-microvolt = <370 145 }; 146 147 vreg_s4a_1p8: pm8150-s4 { 148 compatible = "regulator-fixed" 149 regulator-name = "vreg_s4a_1p8 150 151 regulator-min-microvolt = <180 152 regulator-max-microvolt = <180 153 154 regulator-always-on; 155 regulator-boot-on; 156 157 vin-supply = <&vph_pwr>; 158 }; 159 160 vreg_s6c_0p88: smpc6-regulator { 161 compatible = "regulator-fixed" 162 regulator-name = "vreg_s6c_0p8 163 164 regulator-min-microvolt = <880 165 regulator-max-microvolt = <880 166 regulator-always-on; 167 vin-supply = <&vph_pwr>; 168 }; 169 }; 170 171 &adsp { 172 status = "okay"; 173 firmware-name = "qcom/sm8250/adsp.mbn" 174 }; 175 176 &apps_rsc { 177 regulators-0 { 178 compatible = "qcom,pm8150-rpmh 179 qcom,pmic-id = "a"; 180 181 vdd-s1-supply = <&vph_pwr>; 182 vdd-s2-supply = <&vph_pwr>; 183 vdd-s3-supply = <&vph_pwr>; 184 vdd-s4-supply = <&vph_pwr>; 185 vdd-s5-supply = <&vph_pwr>; 186 vdd-s6-supply = <&vph_pwr>; 187 vdd-s7-supply = <&vph_pwr>; 188 vdd-s8-supply = <&vph_pwr>; 189 vdd-s9-supply = <&vph_pwr>; 190 vdd-s10-supply = <&vph_pwr>; 191 vdd-l1-l8-l11-supply = <&vreg_ 192 vdd-l2-l10-supply = <&vreg_bob 193 vdd-l3-l4-l5-l18-supply = <&vr 194 vdd-l6-l9-supply = <&vreg_s8c_ 195 vdd-l7-l12-l14-l15-supply = <& 196 vdd-l13-l16-l17-supply = <&vre 197 198 vreg_s5a_1p9: smps5 { 199 regulator-name = "vreg 200 regulator-min-microvol 201 regulator-max-microvol 202 regulator-initial-mode 203 }; 204 205 vreg_s6a_0p95: smps6 { 206 regulator-name = "vreg 207 regulator-min-microvol 208 regulator-max-microvol 209 regulator-initial-mode 210 }; 211 212 vreg_l2a_3p1: ldo2 { 213 regulator-name = "vreg 214 regulator-min-microvol 215 regulator-max-microvol 216 regulator-initial-mode 217 }; 218 219 vreg_l3a_0p9: ldo3 { 220 regulator-name = "vreg 221 regulator-min-microvol 222 regulator-max-microvol 223 regulator-initial-mode 224 }; 225 226 vreg_l5a_0p875: ldo5 { 227 regulator-name = "vreg 228 regulator-min-microvol 229 regulator-max-microvol 230 regulator-initial-mode 231 }; 232 233 vreg_l6a_1p2: ldo6 { 234 regulator-name = "vreg 235 regulator-min-microvol 236 regulator-max-microvol 237 regulator-initial-mode 238 }; 239 240 vreg_l7a_1p7: ldo7 { 241 regulator-name = "vreg 242 regulator-min-microvol 243 regulator-max-microvol 244 regulator-initial-mode 245 }; 246 247 vreg_l9a_1p2: ldo9 { 248 regulator-name = "vreg 249 regulator-min-microvol 250 regulator-max-microvol 251 regulator-initial-mode 252 }; 253 254 vreg_l10a_1p8: ldo10 { 255 regulator-name = "vreg 256 regulator-min-microvol 257 regulator-max-microvol 258 regulator-initial-mode 259 }; 260 261 vreg_l12a_1p8: ldo12 { 262 regulator-name = "vreg 263 regulator-min-microvol 264 regulator-max-microvol 265 regulator-initial-mode 266 }; 267 268 vreg_l13a_ts_3p0: ldo13 { 269 regulator-name = "vreg 270 regulator-min-microvol 271 regulator-max-microvol 272 regulator-initial-mode 273 }; 274 275 vreg_l14a_1p8: ldo14 { 276 regulator-name = "vreg 277 regulator-min-microvol 278 regulator-max-microvol 279 regulator-initial-mode 280 }; 281 282 vreg_l15a_11ad_io_1p8: ldo15 { 283 regulator-name = "vreg 284 regulator-min-microvol 285 regulator-max-microvol 286 regulator-initial-mode 287 }; 288 289 vreg_l16a_2p7: ldo16 { 290 regulator-name = "vreg 291 regulator-min-microvol 292 regulator-max-microvol 293 regulator-initial-mode 294 }; 295 296 vreg_l17a_3p0: ldo17 { 297 regulator-name = "vreg 298 regulator-min-microvol 299 regulator-max-microvol 300 regulator-initial-mode 301 }; 302 303 vreg_l18a_0p9: ldo18 { 304 regulator-name = "vreg 305 regulator-min-microvol 306 regulator-max-microvol 307 regulator-initial-mode 308 }; 309 }; 310 311 regulators-1 { 312 compatible = "qcom,pm8150l-rpm 313 qcom,pmic-id = "c"; 314 315 vdd-s1-supply = <&vph_pwr>; 316 vdd-s2-supply = <&vph_pwr>; 317 vdd-s3-supply = <&vph_pwr>; 318 vdd-s4-supply = <&vph_pwr>; 319 vdd-s5-supply = <&vph_pwr>; 320 vdd-s6-supply = <&vph_pwr>; 321 vdd-s7-supply = <&vph_pwr>; 322 vdd-s8-supply = <&vph_pwr>; 323 vdd-l1-l8-supply = <&vreg_s4a_ 324 vdd-l2-l3-supply = <&vreg_s8c_ 325 vdd-l4-l5-l6-supply = <&vreg_b 326 vdd-l7-l11-supply = <&vreg_bob 327 vdd-l9-l10-supply = <&vreg_bob 328 vdd-bob-supply = <&vph_pwr>; 329 330 vreg_bob: bob { 331 regulator-name = "vreg 332 regulator-min-microvol 333 regulator-max-microvol 334 regulator-initial-mode 335 }; 336 337 vreg_s8c_1p3: smps8 { 338 regulator-name = "vreg 339 regulator-min-microvol 340 regulator-max-microvol 341 regulator-initial-mode 342 }; 343 344 vreg_l1c_1p8: ldo1 { 345 regulator-name = "vreg 346 regulator-min-microvol 347 regulator-max-microvol 348 regulator-initial-mode 349 }; 350 351 vreg_l2c_1p2: ldo2 { 352 regulator-name = "vreg 353 regulator-min-microvol 354 regulator-max-microvol 355 regulator-initial-mode 356 }; 357 358 vreg_l3c_0p92: ldo3 { 359 regulator-name = "vreg 360 regulator-min-microvol 361 regulator-max-microvol 362 regulator-initial-mode 363 }; 364 365 vreg_l4c_1p7: ldo4 { 366 regulator-name = "vreg 367 regulator-min-microvol 368 regulator-max-microvol 369 regulator-initial-mode 370 }; 371 372 vreg_l5c_1p8: ldo5 { 373 regulator-name = "vreg 374 regulator-min-microvol 375 regulator-max-microvol 376 regulator-initial-mode 377 }; 378 379 vreg_l6c_2p9: ldo6 { 380 regulator-name = "vreg 381 regulator-min-microvol 382 regulator-max-microvol 383 regulator-initial-mode 384 }; 385 386 vreg_l7c_cam_vcm0_2p85: ldo7 { 387 regulator-name = "vreg 388 regulator-min-microvol 389 regulator-max-microvol 390 regulator-initial-mode 391 }; 392 393 vreg_l8c_1p8: ldo8 { 394 regulator-name = "vreg 395 regulator-min-microvol 396 regulator-max-microvol 397 regulator-initial-mode 398 }; 399 400 vreg_l9c_2p9: ldo9 { 401 regulator-name = "vreg 402 regulator-min-microvol 403 regulator-max-microvol 404 regulator-initial-mode 405 }; 406 407 vreg_l10c_3p0: ldo10 { 408 regulator-name = "vreg 409 regulator-min-microvol 410 regulator-max-microvol 411 regulator-initial-mode 412 }; 413 414 vreg_l11c_3p3: ldo11 { 415 regulator-name = "vreg 416 regulator-min-microvol 417 regulator-max-microvol 418 regulator-initial-mode 419 }; 420 }; 421 422 regulators-2 { 423 compatible = "qcom,pm8009-rpmh 424 qcom,pmic-id = "f"; 425 426 vdd-s1-supply = <&vph_pwr>; 427 vdd-s2-supply = <&vreg_bob>; 428 vdd-l2-supply = <&vreg_s8c_1p3 429 vdd-l5-l6-supply = <&vreg_bob> 430 vdd-l7-supply = <&vreg_s4a_1p8 431 432 vreg_l1f_cam_dvdd1_1p1: ldo1 { 433 regulator-name = "vreg 434 regulator-min-microvol 435 regulator-max-microvol 436 regulator-initial-mode 437 }; 438 439 vreg_l2f_cam_dvdd0_1p2: ldo2 { 440 regulator-name = "vreg 441 regulator-min-microvol 442 regulator-max-microvol 443 regulator-initial-mode 444 }; 445 446 vreg_l3f_cam_dvdd2_1p05: ldo3 447 regulator-name = "vreg 448 regulator-min-microvol 449 regulator-max-microvol 450 regulator-initial-mode 451 }; 452 453 vreg_l5f_cam_avdd0_2p85: ldo5 454 regulator-name = "vreg 455 regulator-min-microvol 456 regulator-max-microvol 457 regulator-initial-mode 458 }; 459 460 vreg_l6f_cam_avdd1_2p85: ldo6 461 regulator-name = "vreg 462 regulator-min-microvol 463 regulator-max-microvol 464 regulator-initial-mode 465 }; 466 467 vreg_l7f_1p8: ldo7 { 468 regulator-name = "vreg 469 regulator-min-microvol 470 regulator-max-microvol 471 regulator-initial-mode 472 }; 473 }; 474 }; 475 476 &cdsp { 477 status = "okay"; 478 firmware-name = "qcom/sm8250/cdsp.mbn" 479 }; 480 481 &gmu { 482 status = "okay"; 483 }; 484 485 &gpu { 486 status = "okay"; 487 488 zap-shader { 489 memory-region = <&gpu_mem>; 490 firmware-name = "qcom/sm8250/a 491 }; 492 }; 493 494 &i2c1 { 495 status = "okay"; 496 clock-frequency = <1000000>; 497 498 /* NQ NFC chip @28 */ 499 }; 500 501 &i2c13 { 502 status = "okay"; 503 504 /* st,stmfts @ 49 */ 505 }; 506 507 &i2c15 { 508 status = "okay"; 509 510 /* smb1390 @ 10 */ 511 /* rtc6226 @ 64 */ 512 }; 513 514 &pm8150_adc { 515 channel@4c { 516 reg = <ADC5_XO_THERM_100K_PU>; 517 qcom,ratiometric; 518 qcom,hw-settle-time = <200>; 519 label = "xo_therm"; 520 }; 521 522 channel@4d { 523 reg = <ADC5_AMUX_THM1_100K_PU> 524 qcom,ratiometric; 525 qcom,hw-settle-time = <200>; 526 label = "skin_therm"; 527 }; 528 529 channel@4e { 530 reg = <ADC5_AMUX_THM2_100K_PU> 531 qcom,ratiometric; 532 qcom,hw-settle-time = <200>; 533 label = "pa_therm1"; 534 }; 535 }; 536 537 &pm8150_adc_tm { 538 status = "okay"; 539 540 xo-therm@0 { 541 reg = <0>; 542 io-channels = <&pm8150_adc ADC 543 qcom,ratiometric; 544 qcom,hw-settle-time-us = <200> 545 }; 546 547 skin-therm@1 { 548 reg = <1>; 549 io-channels = <&pm8150_adc ADC 550 qcom,ratiometric; 551 qcom,hw-settle-time-us = <200> 552 }; 553 554 pa-therm1@2 { 555 reg = <2>; 556 io-channels = <&pm8150_adc ADC 557 qcom,ratiometric; 558 qcom,hw-settle-time-us = <200> 559 }; 560 }; 561 562 &pm8150b_adc { 563 channel@4f { 564 reg = <ADC5_AMUX_THM3_100K_PU> 565 qcom,ratiometric; 566 qcom,hw-settle-time = <200>; 567 label = "conn_therm"; 568 }; 569 }; 570 571 &pm8150b_adc_tm { 572 status = "okay"; 573 574 conn-therm@0 { 575 reg = <0>; 576 io-channels = <&pm8150b_adc AD 577 qcom,ratiometric; 578 qcom,hw-settle-time-us = <200> 579 }; 580 }; 581 582 &pm8150l_adc_tm { 583 status = "okay"; 584 585 camera-flash-therm@0 { 586 reg = <0>; 587 io-channels = <&pm8150l_adc AD 588 qcom,ratiometric; 589 qcom,hw-settle-time-us = <200> 590 }; 591 592 skin-msm-therm@1 { 593 reg = <1>; 594 io-channels = <&pm8150l_adc AD 595 qcom,ratiometric; 596 qcom,hw-settle-time-us = <200> 597 }; 598 599 pa-therm2@2 { 600 reg = <2>; 601 io-channels = <&pm8150l_adc AD 602 qcom,ratiometric; 603 qcom,hw-settle-time-us = <200> 604 }; 605 }; 606 607 &pm8150l_adc { 608 channel@4d { 609 reg = <ADC5_AMUX_THM1_100K_PU> 610 qcom,ratiometric; 611 qcom,hw-settle-time = <200>; 612 label = "camera_flash_therm"; 613 }; 614 615 channel@4e { 616 reg = <ADC5_AMUX_THM2_100K_PU> 617 qcom,ratiometric; 618 qcom,hw-settle-time = <200>; 619 label = "skin_msm_therm"; 620 }; 621 622 channel@4f { 623 reg = <ADC5_AMUX_THM3_100K_PU> 624 qcom,ratiometric; 625 qcom,hw-settle-time = <200>; 626 label = "pa_therm2"; 627 }; 628 }; 629 630 &qupv3_id_0 { 631 status = "okay"; 632 }; 633 634 &qupv3_id_1 { 635 status = "okay"; 636 }; 637 638 &qupv3_id_2 { 639 status = "okay"; 640 }; 641 642 &rxmacro { 643 status = "okay"; 644 }; 645 646 &slpi { 647 status = "okay"; 648 firmware-name = "qcom/sm8250/slpi.mbn" 649 }; 650 651 &sound { 652 compatible = "qcom,sm8250-sndcard"; 653 model = "SM8250-MTP-WCD9380-WSA8810-VA 654 audio-routing = 655 "SpkrLeft IN", "WSA_SPK1 OUT", 656 "SpkrRight IN", "WSA_SPK2 OUT" 657 "IN1_HPHL", "HPHL_OUT", 658 "IN2_HPHR", "HPHR_OUT", 659 "AMIC1", "MIC BIAS1", 660 "AMIC2", "MIC BIAS2", 661 "AMIC3", "MIC BIAS3", 662 "AMIC4", "MIC BIAS3", 663 "AMIC5", "MIC BIAS4", 664 "TX SWR_ADC0", "ADC1_OUTPUT", 665 "TX SWR_ADC1", "ADC2_OUTPUT", 666 "TX SWR_ADC2", "ADC3_OUTPUT", 667 "TX SWR_ADC3", "ADC4_OUTPUT", 668 "TX SWR_DMIC0", "DMIC1_OUTPUT" 669 "TX SWR_DMIC1", "DMIC2_OUTPUT" 670 "TX SWR_DMIC2", "DMIC3_OUTPUT" 671 "TX SWR_DMIC3", "DMIC4_OUTPUT" 672 "TX SWR_DMIC4", "DMIC5_OUTPUT" 673 "TX SWR_DMIC5", "DMIC6_OUTPUT" 674 "TX SWR_DMIC6", "DMIC7_OUTPUT" 675 "TX SWR_DMIC7", "DMIC8_OUTPUT" 676 677 mm1-dai-link { 678 link-name = "MultiMedia1"; 679 cpu { 680 sound-dai = <&q6asmdai 681 }; 682 }; 683 684 mm2-dai-link { 685 link-name = "MultiMedia2"; 686 cpu { 687 sound-dai = <&q6asmdai 688 }; 689 }; 690 691 mm3-dai-link { 692 link-name = "MultiMedia3"; 693 cpu { 694 sound-dai = <&q6asmdai 695 }; 696 }; 697 698 wcd-playback-dai-link { 699 link-name = "WCD Playback"; 700 cpu { 701 sound-dai = <&q6afedai 702 }; 703 codec { 704 sound-dai = <&wcd938x 705 }; 706 platform { 707 sound-dai = <&q6routin 708 }; 709 }; 710 711 wcd-capture-dai-link { 712 link-name = "WCD Capture"; 713 cpu { 714 sound-dai = <&q6afedai 715 }; 716 717 codec { 718 sound-dai = <&wcd938x 719 }; 720 platform { 721 sound-dai = <&q6routin 722 }; 723 }; 724 725 wsa-dai-link { 726 link-name = "WSA Playback"; 727 cpu { 728 sound-dai = <&q6afedai 729 }; 730 731 codec { 732 sound-dai = <&left_spk 733 }; 734 platform { 735 sound-dai = <&q6routin 736 }; 737 }; 738 739 va-dai-link { 740 link-name = "VA Capture"; 741 cpu { 742 sound-dai = <&q6afedai 743 }; 744 745 platform { 746 sound-dai = <&q6routin 747 }; 748 749 codec { 750 sound-dai = <&vamacro 751 }; 752 }; 753 }; 754 755 &swr0 { 756 status = "okay"; 757 758 left_spkr: speaker@0,3 { 759 compatible = "sdw10217211000"; 760 reg = <0 3>; 761 powerdown-gpios = <&tlmm 26 GP 762 #thermal-sensor-cells = <0>; 763 sound-name-prefix = "SpkrLeft" 764 #sound-dai-cells = <0>; 765 }; 766 767 right_spkr: speaker@0,4 { 768 compatible = "sdw10217211000"; 769 reg = <0 4>; 770 powerdown-gpios = <&tlmm 127 G 771 #thermal-sensor-cells = <0>; 772 sound-name-prefix = "SpkrRight 773 #sound-dai-cells = <0>; 774 }; 775 }; 776 777 &swr1 { 778 status = "okay"; 779 780 wcd_rx: wcd9380-rx@0,4 { 781 compatible = "sdw20217010d00"; 782 reg = <0 4>; 783 qcom,rx-port-mapping = <1 2 3 784 }; 785 }; 786 787 &swr2 { 788 status = "okay"; 789 790 wcd_tx: wcd9380-tx@0,3 { 791 compatible = "sdw20217010d00"; 792 reg = <0 3>; 793 qcom,tx-port-mapping = <2 3 4 794 }; 795 }; 796 797 &tlmm { 798 gpio-reserved-ranges = <28 4>, <40 4>; 799 800 wcd938x_reset_default: wcd938x-reset-d 801 pins = "gpio32"; 802 function = "gpio"; 803 drive-strength = <16>; 804 output-high; 805 }; 806 807 wcd938x_reset_sleep: wcd938x-reset-sle 808 pins = "gpio32"; 809 function = "gpio"; 810 drive-strength = <16>; 811 bias-disable; 812 output-low; 813 }; 814 }; 815 816 &txmacro { 817 status = "okay"; 818 }; 819 820 &uart12 { 821 status = "okay"; 822 }; 823 824 &ufs_mem_hc { 825 status = "okay"; 826 827 vcc-supply = <&vreg_l17a_3p0>; 828 vcc-max-microamp = <750000>; 829 vccq-supply = <&vreg_l6a_1p2>; 830 vccq-max-microamp = <700000>; 831 vccq2-supply = <&vreg_s4a_1p8>; 832 vccq2-max-microamp = <750000>; 833 }; 834 835 &ufs_mem_phy { 836 status = "okay"; 837 838 vdda-phy-supply = <&vreg_l5a_0p875>; 839 vdda-pll-supply = <&vreg_l9a_1p2>; 840 }; 841 842 &usb_1 { 843 status = "okay"; 844 }; 845 846 &usb_1_dwc3 { 847 dr_mode = "host"; 848 }; 849 850 &usb_1_hsphy { 851 status = "okay"; 852 853 vdda-pll-supply = <&vreg_l5a_0p875>; 854 vdda18-supply = <&vreg_l12a_1p8>; 855 vdda33-supply = <&vreg_l2a_3p1>; 856 }; 857 858 &usb_1_qmpphy { 859 status = "okay"; 860 861 vdda-phy-supply = <&vreg_l9a_1p2>; 862 vdda-pll-supply = <&vreg_l18a_0p9>; 863 }; 864 865 &usb_2 { 866 status = "okay"; 867 }; 868 869 &usb_2_dwc3 { 870 dr_mode = "host"; 871 }; 872 873 &usb_2_hsphy { 874 status = "okay"; 875 876 vdda-pll-supply = <&vreg_l5a_0p875>; 877 vdda18-supply = <&vreg_l12a_1p8>; 878 vdda33-supply = <&vreg_l2a_3p1>; 879 }; 880 881 &usb_2_qmpphy { 882 status = "okay"; 883 884 vdda-phy-supply = <&vreg_l9a_1p2>; 885 vdda-pll-supply = <&vreg_l18a_0p9>; 886 }; 887 888 &venus { 889 status = "okay"; 890 }; 891 892 &wsamacro { 893 status = "okay"; 894 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.