1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4 * Copyright (c) 2018 Akash Gajjar <Akash_Gajjar@mentor.com>
5 */
6
7#include <dt-bindings/input/linux-event-codes.h>
8#include <dt-bindings/pwm/pwm.h>
9#include "rk3399.dtsi"
10#include "rk3399-opp.dtsi"
11
12/ {
13	chosen {
14		stdout-path = "serial2:1500000n8";
15	};
16
17	clkin_gmac: external-gmac-clock {
18		compatible = "fixed-clock";
19		clock-frequency = <125000000>;
20		clock-output-names = "clkin_gmac";
21		#clock-cells = <0>;
22	};
23
24	gpio-keys {
25		compatible = "gpio-keys";
26		autorepeat;
27		pinctrl-names = "default";
28		pinctrl-0 = <&pwrbtn>;
29
30		power {
31			debounce-interval = <100>;
32			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
33			label = "GPIO Key Power";
34			linux,code = <KEY_POWER>;
35			wakeup-source;
36		};
37	};
38
39	leds {
40		compatible = "gpio-leds";
41		pinctrl-names = "default";
42		pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>;
43
44		work-led {
45			label = "work";
46			default-state = "on";
47			gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
48		};
49
50		diy-led {
51			label = "diy";
52			default-state = "off";
53			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
54		};
55	};
56
57	fan: pwm-fan {
58		compatible = "pwm-fan";
59		#cooling-cells = <2>;
60		fan-supply = <&vcc12v_dcin>;
61		pwms = <&pwm1 0 50000 0>;
62	};
63
64	sdio_pwrseq: sdio-pwrseq {
65		compatible = "mmc-pwrseq-simple";
66		clocks = <&rk808 1>;
67		clock-names = "ext_clock";
68		pinctrl-names = "default";
69		pinctrl-0 = <&wifi_enable_h>;
70		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
71	};
72
73	sound {
74		compatible = "audio-graph-card";
75		label = "rockchip,rk3399";
76		dais = <&i2s1_p0>;
77	};
78
79	vcc12v_dcin: vcc12v-dcin {
80		compatible = "regulator-fixed";
81		regulator-name = "vcc12v_dcin";
82		regulator-always-on;
83		regulator-boot-on;
84		regulator-min-microvolt = <12000000>;
85		regulator-max-microvolt = <12000000>;
86	};
87
88	/* switched by pmic_sleep */
89	vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
90		compatible = "regulator-fixed";
91		regulator-name = "vcc1v8_s3";
92		regulator-always-on;
93		regulator-boot-on;
94		regulator-min-microvolt = <1800000>;
95		regulator-max-microvolt = <1800000>;
96		vin-supply = <&vcc_1v8>;
97	};
98
99	vcc3v3_pcie: vcc3v3-pcie-regulator {
100		compatible = "regulator-fixed";
101		enable-active-high;
102		gpio = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
103		pinctrl-names = "default";
104		pinctrl-0 = <&pcie_pwr_en>;
105		regulator-name = "vcc3v3_pcie";
106		regulator-always-on;
107		regulator-boot-on;
108		vin-supply = <&vcc12v_dcin>;
109	};
110
111	vcc3v3_sys: vcc3v3-sys {
112		compatible = "regulator-fixed";
113		regulator-name = "vcc3v3_sys";
114		regulator-always-on;
115		regulator-boot-on;
116		regulator-min-microvolt = <3300000>;
117		regulator-max-microvolt = <3300000>;
118		vin-supply = <&vcc5v0_sys>;
119	};
120
121	/* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
122	vcc5v0_host: vcc5v0-host-regulator {
123		compatible = "regulator-fixed";
124		enable-active-high;
125		gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
126		pinctrl-names = "default";
127		pinctrl-0 = <&vcc5v0_host_en>;
128		regulator-name = "vcc5v0_host";
129		regulator-always-on;
130		vin-supply = <&vcc5v0_usb>;
131	};
132
133	vcc5v0_typec: vcc5v0-typec-regulator {
134		compatible = "regulator-fixed";
135		enable-active-high;
136		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
137		pinctrl-names = "default";
138		pinctrl-0 = <&vcc5v0_typec_en>;
139		regulator-name = "vcc5v0_typec";
140		regulator-always-on;
141		vin-supply = <&vcc5v0_usb>;
142	};
143
144	vcc5v0_sys: vcc5v0-sys {
145		compatible = "regulator-fixed";
146		regulator-name = "vcc5v0_sys";
147		regulator-always-on;
148		regulator-boot-on;
149		regulator-min-microvolt = <5000000>;
150		regulator-max-microvolt = <5000000>;
151		vin-supply = <&vcc12v_dcin>;
152	};
153
154	vcc5v0_usb: vcc5v0-usb {
155		compatible = "regulator-fixed";
156		regulator-name = "vcc5v0_usb";
157		regulator-always-on;
158		regulator-boot-on;
159		regulator-min-microvolt = <5000000>;
160		regulator-max-microvolt = <5000000>;
161		vin-supply = <&vcc12v_dcin>;
162	};
163
164	vdd_log: vdd-log {
165		compatible = "pwm-regulator";
166		pwms = <&pwm2 0 25000 1>;
167		regulator-name = "vdd_log";
168		regulator-always-on;
169		regulator-boot-on;
170		regulator-min-microvolt = <800000>;
171		regulator-max-microvolt = <1700000>;
172		vin-supply = <&vcc5v0_sys>;
173	};
174};
175
176&cpu_l0 {
177	cpu-supply = <&vdd_cpu_l>;
178};
179
180&cpu_l1 {
181	cpu-supply = <&vdd_cpu_l>;
182};
183
184&cpu_l2 {
185	cpu-supply = <&vdd_cpu_l>;
186};
187
188&cpu_l3 {
189	cpu-supply = <&vdd_cpu_l>;
190};
191
192&cpu_b0 {
193	cpu-supply = <&vdd_cpu_b>;
194};
195
196&cpu_b1 {
197	cpu-supply = <&vdd_cpu_b>;
198};
199
200&emmc_phy {
201	status = "okay";
202};
203
204&gmac {
205	assigned-clocks = <&cru SCLK_RMII_SRC>;
206	assigned-clock-parents = <&clkin_gmac>;
207	clock_in_out = "input";
208	phy-supply = <&vcc_lan>;
209	phy-mode = "rgmii";
210	pinctrl-names = "default";
211	pinctrl-0 = <&rgmii_pins>;
212	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
213	snps,reset-active-low;
214	snps,reset-delays-us = <0 10000 50000>;
215	tx_delay = <0x28>;
216	rx_delay = <0x11>;
217	status = "okay";
218};
219
220&hdmi {
221	ddc-i2c-bus = <&i2c3>;
222	pinctrl-names = "default";
223	pinctrl-0 = <&hdmi_cec>;
224	status = "okay";
225};
226
227&hdmi_sound {
228	status = "okay";
229};
230
231&gpu {
232	mali-supply = <&vdd_gpu>;
233	status = "okay";
234};
235
236&i2c0 {
237	clock-frequency = <400000>;
238	i2c-scl-rising-time-ns = <168>;
239	i2c-scl-falling-time-ns = <4>;
240	status = "okay";
241
242	rk808: pmic@1b {
243		compatible = "rockchip,rk808";
244		reg = <0x1b>;
245		interrupt-parent = <&gpio3>;
246		interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
247		#clock-cells = <1>;
248		clock-output-names = "xin32k", "rk808-clkout2";
249		pinctrl-names = "default";
250		pinctrl-0 = <&pmic_int_l>;
251		rockchip,system-power-controller;
252		wakeup-source;
253
254		vcc1-supply = <&vcc5v0_sys>;
255		vcc2-supply = <&vcc5v0_sys>;
256		vcc3-supply = <&vcc5v0_sys>;
257		vcc4-supply = <&vcc5v0_sys>;
258		vcc6-supply = <&vcc5v0_sys>;
259		vcc7-supply = <&vcc5v0_sys>;
260		vcc8-supply = <&vcc3v3_sys>;
261		vcc9-supply = <&vcc5v0_sys>;
262		vcc10-supply = <&vcc5v0_sys>;
263		vcc11-supply = <&vcc5v0_sys>;
264		vcc12-supply = <&vcc3v3_sys>;
265		vddio-supply = <&vcca_1v8>;
266
267		regulators {
268			vdd_center: DCDC_REG1 {
269				regulator-name = "vdd_center";
270				regulator-always-on;
271				regulator-boot-on;
272				regulator-min-microvolt = <750000>;
273				regulator-max-microvolt = <1350000>;
274				regulator-ramp-delay = <6001>;
275				regulator-state-mem {
276					regulator-off-in-suspend;
277				};
278			};
279
280			vdd_cpu_l: DCDC_REG2 {
281				regulator-name = "vdd_cpu_l";
282				regulator-always-on;
283				regulator-boot-on;
284				regulator-min-microvolt = <750000>;
285				regulator-max-microvolt = <1350000>;
286				regulator-ramp-delay = <6001>;
287				regulator-state-mem {
288					regulator-off-in-suspend;
289				};
290			};
291
292			vcc_ddr: DCDC_REG3 {
293				regulator-name = "vcc_ddr";
294				regulator-always-on;
295				regulator-boot-on;
296				regulator-state-mem {
297					regulator-on-in-suspend;
298				};
299			};
300
301			vcc_1v8: DCDC_REG4 {
302				regulator-name = "vcc_1v8";
303				regulator-always-on;
304				regulator-boot-on;
305				regulator-min-microvolt = <1800000>;
306				regulator-max-microvolt = <1800000>;
307				regulator-state-mem {
308					regulator-on-in-suspend;
309					regulator-suspend-microvolt = <1800000>;
310				};
311			};
312
313			vcc1v8_dvp: LDO_REG1 {
314				regulator-name = "vcc1v8_dvp";
315				regulator-always-on;
316				regulator-boot-on;
317				regulator-min-microvolt = <1800000>;
318				regulator-max-microvolt = <1800000>;
319				regulator-state-mem {
320					regulator-off-in-suspend;
321				};
322			};
323
324			vcc3v0_touch: LDO_REG2 {
325				regulator-name = "vcc3v0_touch";
326				regulator-always-on;
327				regulator-boot-on;
328				regulator-min-microvolt = <3000000>;
329				regulator-max-microvolt = <3000000>;
330				regulator-state-mem {
331					regulator-off-in-suspend;
332				};
333			};
334
335			vcca_1v8: LDO_REG3 {
336				regulator-name = "vcca_1v8";
337				regulator-always-on;
338				regulator-boot-on;
339				regulator-min-microvolt = <1800000>;
340				regulator-max-microvolt = <1800000>;
341				regulator-state-mem {
342					regulator-on-in-suspend;
343					regulator-suspend-microvolt = <1800000>;
344				};
345			};
346
347			vcc_sdio: LDO_REG4 {
348				regulator-name = "vcc_sdio";
349				regulator-always-on;
350				regulator-boot-on;
351				regulator-min-microvolt = <1800000>;
352				regulator-max-microvolt = <3000000>;
353				regulator-state-mem {
354					regulator-on-in-suspend;
355					regulator-suspend-microvolt = <3000000>;
356				};
357			};
358
359			vcca3v0_codec: LDO_REG5 {
360				regulator-name = "vcca3v0_codec";
361				regulator-always-on;
362				regulator-boot-on;
363				regulator-min-microvolt = <3000000>;
364				regulator-max-microvolt = <3000000>;
365				regulator-state-mem {
366					regulator-off-in-suspend;
367				};
368			};
369
370			vcc_1v5: LDO_REG6 {
371				regulator-name = "vcc_1v5";
372				regulator-always-on;
373				regulator-boot-on;
374				regulator-min-microvolt = <1500000>;
375				regulator-max-microvolt = <1500000>;
376				regulator-state-mem {
377					regulator-on-in-suspend;
378					regulator-suspend-microvolt = <1500000>;
379				};
380			};
381
382			vcca1v8_codec: LDO_REG7 {
383				regulator-name = "vcca1v8_codec";
384				regulator-always-on;
385				regulator-boot-on;
386				regulator-min-microvolt = <1800000>;
387				regulator-max-microvolt = <1800000>;
388				regulator-state-mem {
389					regulator-off-in-suspend;
390				};
391			};
392
393			vcc_3v0: LDO_REG8 {
394				regulator-name = "vcc_3v0";
395				regulator-always-on;
396				regulator-boot-on;
397				regulator-min-microvolt = <3000000>;
398				regulator-max-microvolt = <3000000>;
399				regulator-state-mem {
400					regulator-on-in-suspend;
401					regulator-suspend-microvolt = <3000000>;
402				};
403			};
404
405			vcc3v3_s3: vcc_lan: SWITCH_REG1 {
406				regulator-name = "vcc3v3_s3";
407				regulator-always-on;
408				regulator-boot-on;
409				regulator-state-mem {
410					regulator-off-in-suspend;
411				};
412			};
413
414			vcc3v3_s0: SWITCH_REG2 {
415				regulator-name = "vcc3v3_s0";
416				regulator-always-on;
417				regulator-boot-on;
418				regulator-state-mem {
419					regulator-off-in-suspend;
420				};
421			};
422		};
423	};
424
425	vdd_cpu_b: regulator@40 {
426		compatible = "silergy,syr827";
427		reg = <0x40>;
428		fcs,suspend-voltage-selector = <1>;
429		pinctrl-names = "default";
430		pinctrl-0 = <&vsel1_gpio>;
431		regulator-name = "vdd_cpu_b";
432		regulator-min-microvolt = <712500>;
433		regulator-max-microvolt = <1500000>;
434		regulator-ramp-delay = <1000>;
435		regulator-always-on;
436		regulator-boot-on;
437		vin-supply = <&vcc5v0_sys>;
438
439		regulator-state-mem {
440			regulator-off-in-suspend;
441		};
442	};
443
444	vdd_gpu: regulator@41 {
445		compatible = "silergy,syr828";
446		reg = <0x41>;
447		fcs,suspend-voltage-selector = <1>;
448		pinctrl-names = "default";
449		pinctrl-0 = <&vsel2_gpio>;
450		regulator-name = "vdd_gpu";
451		regulator-min-microvolt = <712500>;
452		regulator-max-microvolt = <1500000>;
453		regulator-ramp-delay = <1000>;
454		regulator-always-on;
455		regulator-boot-on;
456		vin-supply = <&vcc5v0_sys>;
457
458		regulator-state-mem {
459			regulator-off-in-suspend;
460		};
461	};
462};
463
464&i2c1 {
465	i2c-scl-rising-time-ns = <300>;
466	i2c-scl-falling-time-ns = <15>;
467	status = "okay";
468};
469
470&i2c3 {
471	i2c-scl-rising-time-ns = <450>;
472	i2c-scl-falling-time-ns = <15>;
473	status = "okay";
474};
475
476&i2c4 {
477	i2c-scl-rising-time-ns = <600>;
478	i2c-scl-falling-time-ns = <20>;
479	status = "okay";
480
481	fusb0: typec-portc@22 {
482		compatible = "fcs,fusb302";
483		reg = <0x22>;
484		interrupt-parent = <&gpio1>;
485		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
486		pinctrl-names = "default";
487		pinctrl-0 = <&fusb0_int>;
488		vbus-supply = <&vcc5v0_typec>;
489		status = "okay";
490	};
491};
492
493&i2s0 {
494	rockchip,playback-channels = <8>;
495	rockchip,capture-channels = <8>;
496	status = "okay";
497};
498
499&i2s1 {
500	rockchip,playback-channels = <2>;
501	rockchip,capture-channels = <2>;
502	status = "okay";
503
504	i2s1_p0: port {
505		i2s1_p0_0: endpoint {
506			dai-format = "i2s";
507			mclk-fs = <256>;
508			remote-endpoint = <&es8316_p0_0>;
509		};
510	};
511};
512
513&i2s2 {
514	status = "okay";
515};
516
517&io_domains {
518	status = "okay";
519
520	bt656-supply = <&vcc1v8_dvp>;
521	audio-supply = <&vcc_3v0>;
522	sdmmc-supply = <&vcc_sdio>;
523	gpio1830-supply = <&vcc_3v0>;
524};
525
526&pcie0 {
527	ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
528	num-lanes = <4>;
529	pinctrl-names = "default";
530	pinctrl-0 = <&pcie_perst>;
531	vpcie12v-supply = <&vcc12v_dcin>;
532	vpcie3v3-supply = <&vcc3v3_pcie>;
533	status = "okay";
534};
535
536&pcie_phy {
537	status = "okay";
538};
539
540&pmu_io_domains {
541	pmu1830-supply = <&vcc_3v0>;
542	status = "okay";
543};
544
545&pinctrl {
546	bt {
547		bt_enable_h: bt-enable-h {
548			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
549		};
550
551		bt_host_wake_l: bt-host-wake-l {
552			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
553		};
554
555		bt_wake_l: bt-wake-l {
556			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
557		};
558	};
559
560	buttons {
561		pwrbtn: pwrbtn {
562			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
563		};
564	};
565
566	fusb302x {
567		fusb0_int: fusb0-int {
568			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
569		};
570	};
571
572	leds {
573		work_led_gpio: work_led-gpio {
574			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
575		};
576
577		diy_led_gpio: diy_led-gpio {
578			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
579		};
580	};
581
582	pcie {
583		pcie_perst: pcie-perst {
584			rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
585		};
586
587		pcie_pwr_en: pcie-pwr-en {
588			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
589		};
590	};
591
592	pmic {
593		pmic_int_l: pmic-int-l {
594			rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
595		};
596
597		vsel1_gpio: vsel1-gpio {
598			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
599		};
600
601		vsel2_gpio: vsel2-gpio {
602			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
603		};
604	};
605
606	sdio-pwrseq {
607		wifi_enable_h: wifi-enable-h {
608			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
609		};
610	};
611
612	usb-typec {
613		vcc5v0_typec_en: vcc5v0_typec_en {
614			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
615		};
616	};
617
618	usb2 {
619		vcc5v0_host_en: vcc5v0-host-en {
620			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
621		};
622	};
623};
624
625&pwm0 {
626	status = "okay";
627};
628
629&pwm1 {
630	status = "okay";
631};
632
633&pwm2 {
634	status = "okay";
635};
636
637&saradc {
638	vref-supply = <&vcca1v8_s3>;
639	status = "okay";
640};
641
642&sdio0 {
643	bus-width = <4>;
644	cap-sd-highspeed;
645	cap-sdio-irq;
646	disable-wp;
647	keep-power-in-suspend;
648	mmc-pwrseq = <&sdio_pwrseq>;
649	non-removable;
650	pinctrl-names = "default";
651	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
652	sd-uhs-sdr104;
653	status = "okay";
654};
655
656&sdmmc {
657	bus-width = <4>;
658	cap-sd-highspeed;
659	cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
660	disable-wp;
661	max-frequency = <150000000>;
662	pinctrl-names = "default";
663	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
664	status = "okay";
665};
666
667&sdhci {
668	bus-width = <8>;
669	mmc-hs200-1_8v;
670	non-removable;
671	status = "okay";
672};
673
674&spi1 {
675	status = "okay";
676
677	flash@0 {
678		compatible = "jedec,spi-nor";
679		reg = <0>;
680		spi-max-frequency = <10000000>;
681	};
682};
683
684&tcphy0 {
685	status = "okay";
686};
687
688&tcphy1 {
689	status = "okay";
690};
691
692&tsadc {
693	/* tshut mode 0:CRU 1:GPIO */
694	rockchip,hw-tshut-mode = <1>;
695	/* tshut polarity 0:LOW 1:HIGH */
696	rockchip,hw-tshut-polarity = <1>;
697	status = "okay";
698};
699
700&u2phy0 {
701	status = "okay";
702
703	u2phy0_otg: otg-port {
704		status = "okay";
705	};
706
707	u2phy0_host: host-port {
708		phy-supply = <&vcc5v0_host>;
709		status = "okay";
710	};
711};
712
713&u2phy1 {
714	status = "okay";
715
716	u2phy1_otg: otg-port {
717		status = "okay";
718	};
719
720	u2phy1_host: host-port {
721		phy-supply = <&vcc5v0_host>;
722		status = "okay";
723	};
724};
725
726&uart0 {
727	pinctrl-names = "default";
728	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
729	status = "okay";
730
731	bluetooth {
732		compatible = "brcm,bcm43438-bt";
733		clocks = <&rk808 1>;
734		clock-names = "lpo";
735		device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
736		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
737		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
738		pinctrl-names = "default";
739		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
740		vbat-supply = <&vcc3v3_sys>;
741		vddio-supply = <&vcc_1v8>;
742	};
743};
744
745&uart2 {
746	status = "okay";
747};
748
749&usb_host0_ehci {
750	status = "okay";
751};
752
753&usb_host0_ohci {
754	status = "okay";
755};
756
757&usb_host1_ehci {
758	status = "okay";
759};
760
761&usb_host1_ohci {
762	status = "okay";
763};
764
765&usbdrd3_0 {
766	status = "okay";
767};
768
769&usbdrd_dwc3_0 {
770	status = "okay";
771	dr_mode = "otg";
772};
773
774&usbdrd3_1 {
775	status = "okay";
776};
777
778&usbdrd_dwc3_1 {
779	status = "okay";
780	dr_mode = "host";
781};
782
783&vopb {
784	status = "okay";
785};
786
787&vopb_mmu {
788	status = "okay";
789};
790
791&vopl {
792	status = "okay";
793};
794
795&vopl_mmu {
796	status = "okay";
797};
798