1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Device Tree Source for common parts of Salvator-X board variants 4 * 5 * Copyright (C) 2015-2016 Renesas Electronics Corp. 6 */ 7 8/* 9 * SSI-AK4613 10 * 11 * This command is required when Playback/Capture 12 * 13 * amixer set "DVC Out" 100% 14 * amixer set "DVC In" 100% 15 * 16 * You can use Mute 17 * 18 * amixer set "DVC Out Mute" on 19 * amixer set "DVC In Mute" on 20 * 21 * You can use Volume Ramp 22 * 23 * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" 24 * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" 25 * amixer set "DVC Out Ramp" on 26 * aplay xxx.wav & 27 * amixer set "DVC Out" 80% // Volume Down 28 * amixer set "DVC Out" 100% // Volume Up 29 */ 30 31#include <dt-bindings/gpio/gpio.h> 32 33/ { 34 aliases { 35 serial0 = &scif2; 36 serial1 = &hscif1; 37 ethernet0 = &avb; 38 }; 39 40 chosen { 41 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 42 stdout-path = "serial0:115200n8"; 43 }; 44 45 audio_clkout: audio-clkout { 46 /* 47 * This is same as <&rcar_sound 0> 48 * but needed to avoid cs2000/rcar_sound probe dead-lock 49 */ 50 compatible = "fixed-clock"; 51 #clock-cells = <0>; 52 clock-frequency = <12288000>; 53 }; 54 55 backlight: backlight { 56 compatible = "pwm-backlight"; 57 pwms = <&pwm1 0 50000>; 58 59 brightness-levels = <256 128 64 16 8 4 0>; 60 default-brightness-level = <6>; 61 62 power-supply = <®_12v>; 63 enable-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; 64 }; 65 66 cvbs-in { 67 compatible = "composite-video-connector"; 68 label = "CVBS IN"; 69 70 port { 71 cvbs_con: endpoint { 72 remote-endpoint = <&adv7482_ain7>; 73 }; 74 }; 75 }; 76 77 hdmi-in { 78 compatible = "hdmi-connector"; 79 label = "HDMI IN"; 80 type = "a"; 81 82 port { 83 hdmi_in_con: endpoint { 84 remote-endpoint = <&adv7482_hdmi>; 85 }; 86 }; 87 }; 88 89 reg_1p8v: regulator0 { 90 compatible = "regulator-fixed"; 91 regulator-name = "fixed-1.8V"; 92 regulator-min-microvolt = <1800000>; 93 regulator-max-microvolt = <1800000>; 94 regulator-boot-on; 95 regulator-always-on; 96 }; 97 98 reg_3p3v: regulator1 { 99 compatible = "regulator-fixed"; 100 regulator-name = "fixed-3.3V"; 101 regulator-min-microvolt = <3300000>; 102 regulator-max-microvolt = <3300000>; 103 regulator-boot-on; 104 regulator-always-on; 105 }; 106 107 reg_12v: regulator2 { 108 compatible = "regulator-fixed"; 109 regulator-name = "fixed-12V"; 110 regulator-min-microvolt = <12000000>; 111 regulator-max-microvolt = <12000000>; 112 regulator-boot-on; 113 regulator-always-on; 114 }; 115 116 sound_card: sound { 117 compatible = "audio-graph-card"; 118 119 label = "rcar-sound"; 120 121 dais = <&rsnd_port0>; 122 }; 123 124 vbus0_usb2: regulator-vbus0-usb2 { 125 compatible = "regulator-fixed"; 126 127 regulator-name = "USB20_VBUS0"; 128 regulator-min-microvolt = <5000000>; 129 regulator-max-microvolt = <5000000>; 130 131 gpio = <&gpio6 16 GPIO_ACTIVE_HIGH>; 132 enable-active-high; 133 }; 134 135 vcc_sdhi0: regulator-vcc-sdhi0 { 136 compatible = "regulator-fixed"; 137 138 regulator-name = "SDHI0 Vcc"; 139 regulator-min-microvolt = <3300000>; 140 regulator-max-microvolt = <3300000>; 141 142 gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; 143 enable-active-high; 144 }; 145 146 vccq_sdhi0: regulator-vccq-sdhi0 { 147 compatible = "regulator-gpio"; 148 149 regulator-name = "SDHI0 VccQ"; 150 regulator-min-microvolt = <1800000>; 151 regulator-max-microvolt = <3300000>; 152 153 gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; 154 gpios-states = <1>; 155 states = <3300000 1 156 1800000 0>; 157 }; 158 159 vcc_sdhi3: regulator-vcc-sdhi3 { 160 compatible = "regulator-fixed"; 161 162 regulator-name = "SDHI3 Vcc"; 163 regulator-min-microvolt = <3300000>; 164 regulator-max-microvolt = <3300000>; 165 166 gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; 167 enable-active-high; 168 }; 169 170 vccq_sdhi3: regulator-vccq-sdhi3 { 171 compatible = "regulator-gpio"; 172 173 regulator-name = "SDHI3 VccQ"; 174 regulator-min-microvolt = <1800000>; 175 regulator-max-microvolt = <3300000>; 176 177 gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; 178 gpios-states = <1>; 179 states = <3300000 1 180 1800000 0>; 181 }; 182 183 hdmi0-out { 184 compatible = "hdmi-connector"; 185 label = "HDMI0 OUT"; 186 type = "a"; 187 188 port { 189 hdmi0_con: endpoint { 190 }; 191 }; 192 }; 193 194 hdmi1-out { 195 compatible = "hdmi-connector"; 196 label = "HDMI1 OUT"; 197 type = "a"; 198 199 port { 200 hdmi1_con: endpoint { 201 }; 202 }; 203 }; 204 205 vga { 206 compatible = "vga-connector"; 207 208 port { 209 vga_in: endpoint { 210 remote-endpoint = <&adv7123_out>; 211 }; 212 }; 213 }; 214 215 vga-encoder { 216 compatible = "adi,adv7123"; 217 218 ports { 219 #address-cells = <1>; 220 #size-cells = <0>; 221 222 port@0 { 223 reg = <0>; 224 adv7123_in: endpoint { 225 remote-endpoint = <&du_out_rgb>; 226 }; 227 }; 228 port@1 { 229 reg = <1>; 230 adv7123_out: endpoint { 231 remote-endpoint = <&vga_in>; 232 }; 233 }; 234 }; 235 }; 236 237 x12_clk: x12 { 238 compatible = "fixed-clock"; 239 #clock-cells = <0>; 240 clock-frequency = <24576000>; 241 }; 242 243 /* External DU dot clocks */ 244 x21_clk: x21-clock { 245 compatible = "fixed-clock"; 246 #clock-cells = <0>; 247 clock-frequency = <33000000>; 248 }; 249 250 x22_clk: x22-clock { 251 compatible = "fixed-clock"; 252 #clock-cells = <0>; 253 clock-frequency = <33000000>; 254 }; 255 256 x23_clk: x23-clock { 257 compatible = "fixed-clock"; 258 #clock-cells = <0>; 259 clock-frequency = <25000000>; 260 }; 261}; 262 263&audio_clk_a { 264 clock-frequency = <22579200>; 265}; 266 267&avb { 268 pinctrl-0 = <&avb_pins>; 269 pinctrl-names = "default"; 270 phy-handle = <&phy0>; 271 phy-mode = "rgmii-txid"; 272 status = "okay"; 273 274 phy0: ethernet-phy@0 { 275 rxc-skew-ps = <1500>; 276 reg = <0>; 277 interrupt-parent = <&gpio2>; 278 interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 279 reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; 280 }; 281}; 282 283&csi20 { 284 status = "okay"; 285 286 ports { 287 port@0 { 288 reg = <0>; 289 csi20_in: endpoint { 290 clock-lanes = <0>; 291 data-lanes = <1>; 292 remote-endpoint = <&adv7482_txb>; 293 }; 294 }; 295 }; 296}; 297 298&csi40 { 299 status = "okay"; 300 301 ports { 302 port@0 { 303 reg = <0>; 304 305 csi40_in: endpoint { 306 clock-lanes = <0>; 307 data-lanes = <1 2 3 4>; 308 remote-endpoint = <&adv7482_txa>; 309 }; 310 }; 311 }; 312}; 313 314&du { 315 pinctrl-0 = <&du_pins>; 316 pinctrl-names = "default"; 317 status = "okay"; 318 319 ports { 320 port@0 { 321 endpoint { 322 remote-endpoint = <&adv7123_in>; 323 }; 324 }; 325 }; 326}; 327 328&ehci0 { 329 dr_mode = "otg"; 330 status = "okay"; 331}; 332 333&ehci1 { 334 status = "okay"; 335}; 336 337&extalr_clk { 338 clock-frequency = <32768>; 339}; 340 341&hscif1 { 342 pinctrl-0 = <&hscif1_pins>; 343 pinctrl-names = "default"; 344 345 uart-has-rtscts; 346 /* Please only enable hscif1 or scif1 */ 347 status = "okay"; 348}; 349 350&hsusb { 351 dr_mode = "otg"; 352 status = "okay"; 353}; 354 355&i2c2 { 356 pinctrl-0 = <&i2c2_pins>; 357 pinctrl-names = "default"; 358 359 status = "okay"; 360 361 clock-frequency = <100000>; 362 363 ak4613: codec@10 { 364 compatible = "asahi-kasei,ak4613"; 365 #sound-dai-cells = <0>; 366 reg = <0x10>; 367 clocks = <&rcar_sound 3>; 368 369 asahi-kasei,in1-single-end; 370 asahi-kasei,in2-single-end; 371 asahi-kasei,out1-single-end; 372 asahi-kasei,out2-single-end; 373 asahi-kasei,out3-single-end; 374 asahi-kasei,out4-single-end; 375 asahi-kasei,out5-single-end; 376 asahi-kasei,out6-single-end; 377 378 port { 379 ak4613_endpoint: endpoint { 380 remote-endpoint = <&rsnd_endpoint0>; 381 }; 382 }; 383 }; 384 385 cs2000: clk_multiplier@4f { 386 #clock-cells = <0>; 387 compatible = "cirrus,cs2000-cp"; 388 reg = <0x4f>; 389 clocks = <&audio_clkout>, <&x12_clk>; 390 clock-names = "clk_in", "ref_clk"; 391 392 assigned-clocks = <&cs2000>; 393 assigned-clock-rates = <24576000>; /* 1/1 divide */ 394 }; 395}; 396 397&i2c4 { 398 status = "okay"; 399 400 pca9654: gpio@20 { 401 compatible = "onnn,pca9654"; 402 reg = <0x20>; 403 gpio-controller; 404 #gpio-cells = <2>; 405 }; 406 407 csa_vdd: adc@7c { 408 compatible = "maxim,max9611"; 409 reg = <0x7c>; 410 411 shunt-resistor-micro-ohms = <5000>; 412 }; 413 414 csa_dvfs: adc@7f { 415 compatible = "maxim,max9611"; 416 reg = <0x7f>; 417 418 shunt-resistor-micro-ohms = <5000>; 419 }; 420 421 video-receiver@70 { 422 compatible = "adi,adv7482"; 423 reg = <0x70 0x71 0x72 0x73 0x74 0x75 424 0x60 0x61 0x62 0x63 0x64 0x65>; 425 reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater", 426 "infoframe", "cbus", "cec", "sdp", "txa", "txb" ; 427 428 #address-cells = <1>; 429 #size-cells = <0>; 430 431 interrupt-parent = <&gpio6>; 432 interrupt-names = "intrq1", "intrq2"; 433 interrupts = <30 IRQ_TYPE_LEVEL_LOW>, 434 <31 IRQ_TYPE_LEVEL_LOW>; 435 436 port@7 { 437 reg = <7>; 438 439 adv7482_ain7: endpoint { 440 remote-endpoint = <&cvbs_con>; 441 }; 442 }; 443 444 port@8 { 445 reg = <8>; 446 447 adv7482_hdmi: endpoint { 448 remote-endpoint = <&hdmi_in_con>; 449 }; 450 }; 451 452 port@a { 453 reg = <10>; 454 455 adv7482_txa: endpoint { 456 clock-lanes = <0>; 457 data-lanes = <1 2 3 4>; 458 remote-endpoint = <&csi40_in>; 459 }; 460 }; 461 462 port@b { 463 reg = <11>; 464 465 adv7482_txb: endpoint { 466 clock-lanes = <0>; 467 data-lanes = <1>; 468 remote-endpoint = <&csi20_in>; 469 }; 470 }; 471 }; 472}; 473 474&i2c_dvfs { 475 status = "okay"; 476 477 pmic: pmic@30 { 478 pinctrl-0 = <&irq0_pins>; 479 pinctrl-names = "default"; 480 481 compatible = "rohm,bd9571mwv"; 482 reg = <0x30>; 483 interrupt-parent = <&intc_ex>; 484 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 485 interrupt-controller; 486 #interrupt-cells = <2>; 487 gpio-controller; 488 #gpio-cells = <2>; 489 rohm,ddr-backup-power = <0xf>; 490 rohm,rstbmode-level; 491 492 regulators { 493 dvfs: dvfs { 494 regulator-name = "dvfs"; 495 regulator-min-microvolt = <750000>; 496 regulator-max-microvolt = <1030000>; 497 regulator-boot-on; 498 regulator-always-on; 499 }; 500 }; 501 }; 502 503 eeprom@50 { 504 compatible = "rohm,br24t01", "atmel,24c01"; 505 reg = <0x50>; 506 pagesize = <8>; 507 }; 508}; 509 510&ohci0 { 511 dr_mode = "otg"; 512 status = "okay"; 513}; 514 515&ohci1 { 516 status = "okay"; 517}; 518 519&pcie_bus_clk { 520 clock-frequency = <100000000>; 521}; 522 523&pciec0 { 524 status = "okay"; 525}; 526 527&pciec1 { 528 status = "okay"; 529}; 530 531&pfc { 532 pinctrl-0 = <&scif_clk_pins>; 533 pinctrl-names = "default"; 534 535 avb_pins: avb { 536 mux { 537 groups = "avb_link", "avb_mdio", "avb_mii"; 538 function = "avb"; 539 }; 540 541 pins_mdio { 542 groups = "avb_mdio"; 543 drive-strength = <24>; 544 }; 545 546 pins_mii_tx { 547 pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", 548 "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; 549 drive-strength = <12>; 550 }; 551 }; 552 553 du_pins: du { 554 groups = "du_rgb888", "du_sync", "du_oddf", "du_clk_out_0"; 555 function = "du"; 556 }; 557 558 hscif1_pins: hscif1 { 559 groups = "hscif1_data_a", "hscif1_ctrl_a"; 560 function = "hscif1"; 561 }; 562 563 i2c2_pins: i2c2 { 564 groups = "i2c2_a"; 565 function = "i2c2"; 566 }; 567 568 irq0_pins: irq0 { 569 groups = "intc_ex_irq0"; 570 function = "intc_ex"; 571 }; 572 573 pwm1_pins: pwm1 { 574 groups = "pwm1_a"; 575 function = "pwm1"; 576 }; 577 578 scif1_pins: scif1 { 579 groups = "scif1_data_a", "scif1_ctrl"; 580 function = "scif1"; 581 }; 582 583 scif2_pins: scif2 { 584 groups = "scif2_data_a"; 585 function = "scif2"; 586 }; 587 588 scif_clk_pins: scif_clk { 589 groups = "scif_clk_a"; 590 function = "scif_clk"; 591 }; 592 593 sdhi0_pins: sd0 { 594 groups = "sdhi0_data4", "sdhi0_ctrl"; 595 function = "sdhi0"; 596 power-source = <3300>; 597 }; 598 599 sdhi0_pins_uhs: sd0_uhs { 600 groups = "sdhi0_data4", "sdhi0_ctrl"; 601 function = "sdhi0"; 602 power-source = <1800>; 603 }; 604 605 sdhi2_pins: sd2 { 606 groups = "sdhi2_data8", "sdhi2_ctrl", "sdhi2_ds"; 607 function = "sdhi2"; 608 power-source = <3300>; 609 }; 610 611 sdhi2_pins_uhs: sd2_uhs { 612 groups = "sdhi2_data8", "sdhi2_ctrl", "sdhi2_ds"; 613 function = "sdhi2"; 614 power-source = <1800>; 615 }; 616 617 sdhi3_pins: sd3 { 618 groups = "sdhi3_data4", "sdhi3_ctrl"; 619 function = "sdhi3"; 620 power-source = <3300>; 621 }; 622 623 sdhi3_pins_uhs: sd3_uhs { 624 groups = "sdhi3_data4", "sdhi3_ctrl"; 625 function = "sdhi3"; 626 power-source = <1800>; 627 }; 628 629 sound_pins: sound { 630 groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; 631 function = "ssi"; 632 }; 633 634 sound_clk_pins: sound_clk { 635 groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a", 636 "audio_clkout_a", "audio_clkout3_a"; 637 function = "audio_clk"; 638 }; 639 640 usb0_pins: usb0 { 641 groups = "usb0"; 642 function = "usb0"; 643 }; 644 645 usb1_pins: usb1 { 646 mux { 647 groups = "usb1"; 648 function = "usb1"; 649 }; 650 651 ovc { 652 pins = "GP_6_27"; 653 bias-pull-up; 654 }; 655 656 pwen { 657 pins = "GP_6_26"; 658 bias-pull-down; 659 }; 660 }; 661 662 usb30_pins: usb30 { 663 groups = "usb30"; 664 function = "usb30"; 665 }; 666}; 667 668&pwm1 { 669 pinctrl-0 = <&pwm1_pins>; 670 pinctrl-names = "default"; 671 672 status = "okay"; 673}; 674 675&rcar_sound { 676 pinctrl-0 = <&sound_pins &sound_clk_pins>; 677 pinctrl-names = "default"; 678 679 /* Single DAI */ 680 #sound-dai-cells = <0>; 681 682 /* audio_clkout0/1/2/3 */ 683 #clock-cells = <1>; 684 clock-frequency = <12288000 11289600>; 685 686 status = "okay"; 687 688 /* update <audio_clk_b> to <cs2000> */ 689 clocks = <&cpg CPG_MOD 1005>, 690 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, 691 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, 692 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, 693 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, 694 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, 695 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, 696 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, 697 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, 698 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, 699 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, 700 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 701 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 702 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, 703 <&audio_clk_a>, <&cs2000>, 704 <&audio_clk_c>, 705 <&cpg CPG_CORE CPG_AUDIO_CLK_I>; 706 707 ports { 708 rsnd_port0: port@0 { 709 rsnd_endpoint0: endpoint { 710 remote-endpoint = <&ak4613_endpoint>; 711 712 dai-format = "left_j"; 713 bitclock-master = <&rsnd_endpoint0>; 714 frame-master = <&rsnd_endpoint0>; 715 716 playback = <&ssi0 &src0 &dvc0>; 717 capture = <&ssi1 &src1 &dvc1>; 718 }; 719 }; 720 }; 721}; 722 723&scif1 { 724 pinctrl-0 = <&scif1_pins>; 725 pinctrl-names = "default"; 726 727 uart-has-rtscts; 728 /* Please only enable hscif1 or scif1 */ 729 /* status = "okay"; */ 730}; 731 732&scif2 { 733 pinctrl-0 = <&scif2_pins>; 734 pinctrl-names = "default"; 735 736 status = "okay"; 737}; 738 739&scif_clk { 740 clock-frequency = <14745600>; 741}; 742 743&sdhi0 { 744 pinctrl-0 = <&sdhi0_pins>; 745 pinctrl-1 = <&sdhi0_pins_uhs>; 746 pinctrl-names = "default", "state_uhs"; 747 748 vmmc-supply = <&vcc_sdhi0>; 749 vqmmc-supply = <&vccq_sdhi0>; 750 cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 751 wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 752 bus-width = <4>; 753 sd-uhs-sdr50; 754 sd-uhs-sdr104; 755 status = "okay"; 756}; 757 758&sdhi2 { 759 /* used for on-board 8bit eMMC */ 760 pinctrl-0 = <&sdhi2_pins>; 761 pinctrl-1 = <&sdhi2_pins_uhs>; 762 pinctrl-names = "default", "state_uhs"; 763 764 vmmc-supply = <®_3p3v>; 765 vqmmc-supply = <®_1p8v>; 766 bus-width = <8>; 767 mmc-hs200-1_8v; 768 non-removable; 769 fixed-emmc-driver-type = <1>; 770 status = "okay"; 771}; 772 773&sdhi3 { 774 pinctrl-0 = <&sdhi3_pins>; 775 pinctrl-1 = <&sdhi3_pins_uhs>; 776 pinctrl-names = "default", "state_uhs"; 777 778 vmmc-supply = <&vcc_sdhi3>; 779 vqmmc-supply = <&vccq_sdhi3>; 780 cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; 781 wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; 782 bus-width = <4>; 783 sd-uhs-sdr50; 784 sd-uhs-sdr104; 785 status = "okay"; 786}; 787 788&ssi1 { 789 shared-pin; 790}; 791 792&usb_extal_clk { 793 clock-frequency = <50000000>; 794}; 795 796&usb2_phy0 { 797 pinctrl-0 = <&usb0_pins>; 798 pinctrl-names = "default"; 799 800 vbus-supply = <&vbus0_usb2>; 801 status = "okay"; 802}; 803 804&usb2_phy1 { 805 pinctrl-0 = <&usb1_pins>; 806 pinctrl-names = "default"; 807 808 status = "okay"; 809}; 810 811&usb3_peri0 { 812 phys = <&usb3_phy0>; 813 phy-names = "usb"; 814 815 status = "okay"; 816}; 817 818&usb3_phy0 { 819 status = "okay"; 820}; 821 822&usb3s0_clk { 823 clock-frequency = <100000000>; 824}; 825 826&vin0 { 827 status = "okay"; 828}; 829 830&vin1 { 831 status = "okay"; 832}; 833 834&vin2 { 835 status = "okay"; 836}; 837 838&vin3 { 839 status = "okay"; 840}; 841 842&vin4 { 843 status = "okay"; 844}; 845 846&vin5 { 847 status = "okay"; 848}; 849 850&vin6 { 851 status = "okay"; 852}; 853 854&vin7 { 855 status = "okay"; 856}; 857 858&rwdt { 859 timeout-sec = <60>; 860 status = "okay"; 861}; 862 863&xhci0 { 864 pinctrl-0 = <&usb30_pins>; 865 pinctrl-names = "default"; 866 867 status = "okay"; 868}; 869