162306a36Sopenharmony_ci// SPDX-License-Identifier: BSD-3-Clause
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci/dts-v1/;
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include "msm8996.dtsi"
662306a36Sopenharmony_ci#include "pm8994.dtsi"
762306a36Sopenharmony_ci#include "pmi8994.dtsi"
862306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
962306a36Sopenharmony_ci#include <dt-bindings/input/input.h>
1062306a36Sopenharmony_ci#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci/ {
1362306a36Sopenharmony_ci	model = "Inforce 6640 Single Board Computer";
1462306a36Sopenharmony_ci	compatible = "inforce,ifc6640", "qcom,apq8096-sbc", "qcom,apq8096";
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci	qcom,msm-id = <291 0x00030001>;
1762306a36Sopenharmony_ci	qcom,board-id = <0x00010018 0>;
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci	aliases {
2062306a36Sopenharmony_ci		serial0 = &blsp2_uart2;
2162306a36Sopenharmony_ci	};
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	chosen {
2462306a36Sopenharmony_ci		stdout-path = "serial0:115200n8";
2562306a36Sopenharmony_ci	};
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	v1p05: v1p05-regulator {
2862306a36Sopenharmony_ci		compatible = "regulator-fixed";
2962306a36Sopenharmony_ci		regulator-name = "v1p05";
3062306a36Sopenharmony_ci		regulator-always-on;
3162306a36Sopenharmony_ci		regulator-boot-on;
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci		regulator-min-microvolt = <1050000>;
3462306a36Sopenharmony_ci		regulator-max-microvolt = <1050000>;
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci		vin-supply = <&v5p0>;
3762306a36Sopenharmony_ci	};
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	v12_poe: v12-poe-regulator {
4062306a36Sopenharmony_ci		compatible = "regulator-fixed";
4162306a36Sopenharmony_ci		regulator-name = "v12_poe";
4262306a36Sopenharmony_ci		regulator-always-on;
4362306a36Sopenharmony_ci		regulator-boot-on;
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci		regulator-min-microvolt = <12000000>;
4662306a36Sopenharmony_ci		regulator-max-microvolt = <12000000>;
4762306a36Sopenharmony_ci	};
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	v3p3: v3p3-regulator {
5062306a36Sopenharmony_ci		compatible = "regulator-fixed";
5162306a36Sopenharmony_ci		regulator-name = "v3p3";
5262306a36Sopenharmony_ci		regulator-always-on;
5362306a36Sopenharmony_ci		regulator-boot-on;
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
5662306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci		vin-supply = <&v12_poe>;
5962306a36Sopenharmony_ci	};
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci	v5p0: v5p0-regulator {
6262306a36Sopenharmony_ci		compatible = "regulator-fixed";
6362306a36Sopenharmony_ci		regulator-name = "v5p0";
6462306a36Sopenharmony_ci		regulator-always-on;
6562306a36Sopenharmony_ci		regulator-boot-on;
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci		regulator-min-microvolt = <5000000>;
6862306a36Sopenharmony_ci		regulator-max-microvolt = <5000000>;
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci		vin-supply = <&v12_poe>;
7162306a36Sopenharmony_ci	};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci	vph_pwr: vph-pwr-regulator {
7462306a36Sopenharmony_ci		compatible = "regulator-fixed";
7562306a36Sopenharmony_ci		regulator-name = "vph_pwr";
7662306a36Sopenharmony_ci		regulator-always-on;
7762306a36Sopenharmony_ci		regulator-boot-on;
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci		regulator-min-microvolt = <3800000>;
8062306a36Sopenharmony_ci		regulator-max-microvolt = <3800000>;
8162306a36Sopenharmony_ci	};
8262306a36Sopenharmony_ci};
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci&blsp2_uart2 {
8562306a36Sopenharmony_ci	status = "okay";
8662306a36Sopenharmony_ci	pinctrl-names = "default", "sleep";
8762306a36Sopenharmony_ci	pinctrl-0 = <&blsp2_uart2_2pins_default>;
8862306a36Sopenharmony_ci	pinctrl-1 = <&blsp2_uart2_2pins_sleep>;
8962306a36Sopenharmony_ci};
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci&gpu {
9262306a36Sopenharmony_ci	status = "okay";
9362306a36Sopenharmony_ci};
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci&mdss {
9662306a36Sopenharmony_ci	status = "okay";
9762306a36Sopenharmony_ci};
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci&mdss_hdmi {
10062306a36Sopenharmony_ci	status = "okay";
10162306a36Sopenharmony_ci};
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci&mdss_hdmi_phy {
10462306a36Sopenharmony_ci	status = "okay";
10562306a36Sopenharmony_ci};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci&sdc2_state_on {
10862306a36Sopenharmony_ci	cd-pins {
10962306a36Sopenharmony_ci		pins = "gpio38";
11062306a36Sopenharmony_ci		function = "gpio";
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci		bias-pull-up;
11362306a36Sopenharmony_ci		drive-strength = <16>;
11462306a36Sopenharmony_ci	};
11562306a36Sopenharmony_ci};
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci&sdc2_state_off {
11862306a36Sopenharmony_ci	cd-pins {
11962306a36Sopenharmony_ci		pins = "gpio38";
12062306a36Sopenharmony_ci		function = "gpio";
12162306a36Sopenharmony_ci		bias-pull-up;
12262306a36Sopenharmony_ci		drive-strength = <2>;
12362306a36Sopenharmony_ci	};
12462306a36Sopenharmony_ci};
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci&rpm_requests {
12762306a36Sopenharmony_ci	regulators-0 {
12862306a36Sopenharmony_ci		compatible = "qcom,rpm-pm8994-regulators";
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci		vdd_s1-supply = <&vph_pwr>;
13162306a36Sopenharmony_ci		vdd_s2-supply = <&vph_pwr>;
13262306a36Sopenharmony_ci		vdd_s3-supply = <&vph_pwr>;
13362306a36Sopenharmony_ci		vdd_s4-supply = <&vph_pwr>;
13462306a36Sopenharmony_ci		vdd_s5-supply = <&vph_pwr>;
13562306a36Sopenharmony_ci		vdd_s6-supply = <&vph_pwr>;
13662306a36Sopenharmony_ci		vdd_s7-supply = <&vph_pwr>;
13762306a36Sopenharmony_ci		vdd_s8-supply = <&vph_pwr>;
13862306a36Sopenharmony_ci		vdd_s9-supply = <&vph_pwr>;
13962306a36Sopenharmony_ci		vdd_s10-supply = <&vph_pwr>;
14062306a36Sopenharmony_ci		vdd_s11-supply = <&vph_pwr>;
14162306a36Sopenharmony_ci		vdd_s12-supply = <&vph_pwr>;
14262306a36Sopenharmony_ci		vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>;
14362306a36Sopenharmony_ci		vdd_l3_l11-supply = <&vreg_s3a_1p3>;
14462306a36Sopenharmony_ci		vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>;
14562306a36Sopenharmony_ci		vdd_l5_l7-supply = <&vreg_s5a_2p15>;
14662306a36Sopenharmony_ci		vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>;
14762306a36Sopenharmony_ci		vdd_l8_l16_l30-supply = <&vph_pwr>;
14862306a36Sopenharmony_ci		vdd_l25-supply = <&vreg_s3a_1p3>;
14962306a36Sopenharmony_ci		vdd_lvs1_2-supply = <&vreg_s4a_1p8>;
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ci		vreg_s3a_1p3: s3 {
15262306a36Sopenharmony_ci			regulator-name = "vreg_s3a_1p3";
15362306a36Sopenharmony_ci			regulator-min-microvolt = <1300000>;
15462306a36Sopenharmony_ci			regulator-max-microvolt = <1300000>;
15562306a36Sopenharmony_ci		};
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci		vreg_s4a_1p8: s4 {
15862306a36Sopenharmony_ci			regulator-name = "vreg_s4a_1p8";
15962306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
16062306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
16162306a36Sopenharmony_ci			regulator-always-on;
16262306a36Sopenharmony_ci		};
16362306a36Sopenharmony_ci		vreg_s5a_2p15: s5 {
16462306a36Sopenharmony_ci			regulator-name = "vreg_s5a_2p15";
16562306a36Sopenharmony_ci			regulator-min-microvolt = <2150000>;
16662306a36Sopenharmony_ci			regulator-max-microvolt = <2150000>;
16762306a36Sopenharmony_ci		};
16862306a36Sopenharmony_ci		vreg_s7a_1p0: s7 {
16962306a36Sopenharmony_ci			regulator-name = "vreg_s7a_1p0";
17062306a36Sopenharmony_ci			regulator-min-microvolt = <800000>;
17162306a36Sopenharmony_ci			regulator-max-microvolt = <800000>;
17262306a36Sopenharmony_ci		};
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci		vreg_l1a_1p0: l1 {
17562306a36Sopenharmony_ci			regulator-name = "vreg_l1a_1p0";
17662306a36Sopenharmony_ci			regulator-min-microvolt = <1000000>;
17762306a36Sopenharmony_ci			regulator-max-microvolt = <1000000>;
17862306a36Sopenharmony_ci		};
17962306a36Sopenharmony_ci		vreg_l2a_1p25: l2 {
18062306a36Sopenharmony_ci			regulator-name = "vreg_l2a_1p25";
18162306a36Sopenharmony_ci			regulator-min-microvolt = <1250000>;
18262306a36Sopenharmony_ci			regulator-max-microvolt = <1250000>;
18362306a36Sopenharmony_ci		};
18462306a36Sopenharmony_ci		vreg_l3a_0p875: l3 {
18562306a36Sopenharmony_ci			regulator-name = "vreg_l3a_0p875";
18662306a36Sopenharmony_ci			regulator-min-microvolt = <850000>;
18762306a36Sopenharmony_ci			regulator-max-microvolt = <850000>;
18862306a36Sopenharmony_ci		};
18962306a36Sopenharmony_ci		vreg_l4a_1p225: l4 {
19062306a36Sopenharmony_ci			regulator-name = "vreg_l4a_1p225";
19162306a36Sopenharmony_ci			regulator-min-microvolt = <1225000>;
19262306a36Sopenharmony_ci			regulator-max-microvolt = <1225000>;
19362306a36Sopenharmony_ci		};
19462306a36Sopenharmony_ci		vreg_l6a_1p2: l6 {
19562306a36Sopenharmony_ci			regulator-name = "vreg_l6a_1p2";
19662306a36Sopenharmony_ci			regulator-min-microvolt = <1200000>;
19762306a36Sopenharmony_ci			regulator-max-microvolt = <1200000>;
19862306a36Sopenharmony_ci		};
19962306a36Sopenharmony_ci		vreg_l8a_1p8: l8 {
20062306a36Sopenharmony_ci			regulator-name = "vreg_l8a_1p8";
20162306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
20262306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
20362306a36Sopenharmony_ci		};
20462306a36Sopenharmony_ci		vreg_l9a_1p8: l9 {
20562306a36Sopenharmony_ci			regulator-name = "vreg_l9a_1p8";
20662306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
20762306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
20862306a36Sopenharmony_ci		};
20962306a36Sopenharmony_ci		vreg_l10a_1p8: l10 {
21062306a36Sopenharmony_ci			regulator-name = "vreg_l10a_1p8";
21162306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
21262306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
21362306a36Sopenharmony_ci		};
21462306a36Sopenharmony_ci		vreg_l11a_1p15: l11 {
21562306a36Sopenharmony_ci			regulator-name = "vreg_l11a_1p15";
21662306a36Sopenharmony_ci			regulator-min-microvolt = <1150000>;
21762306a36Sopenharmony_ci			regulator-max-microvolt = <1150000>;
21862306a36Sopenharmony_ci		};
21962306a36Sopenharmony_ci		vreg_l12a_1p8: l12 {
22062306a36Sopenharmony_ci			regulator-name = "vreg_l12a_1p8";
22162306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
22262306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
22362306a36Sopenharmony_ci		};
22462306a36Sopenharmony_ci		vreg_l13a_2p95: l13 {
22562306a36Sopenharmony_ci			regulator-name = "vreg_l13a_2p95";
22662306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
22762306a36Sopenharmony_ci			regulator-max-microvolt = <2950000>;
22862306a36Sopenharmony_ci		};
22962306a36Sopenharmony_ci		vreg_l14a_1p8: l14 {
23062306a36Sopenharmony_ci			regulator-name = "vreg_l14a_1p8";
23162306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
23262306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
23362306a36Sopenharmony_ci		};
23462306a36Sopenharmony_ci		vreg_l15a_1p8: l15 {
23562306a36Sopenharmony_ci			regulator-name = "vreg_l15a_1p8";
23662306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
23762306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
23862306a36Sopenharmony_ci		};
23962306a36Sopenharmony_ci		vreg_l16a_2p7: l16 {
24062306a36Sopenharmony_ci			regulator-name = "vreg_l16a_2p7";
24162306a36Sopenharmony_ci			regulator-min-microvolt = <2700000>;
24262306a36Sopenharmony_ci			regulator-max-microvolt = <2700000>;
24362306a36Sopenharmony_ci		};
24462306a36Sopenharmony_ci		vreg_l17a_2p8: l17 {
24562306a36Sopenharmony_ci			regulator-name = "vreg_l17a_2p8";
24662306a36Sopenharmony_ci			regulator-min-microvolt = <2500000>;
24762306a36Sopenharmony_ci			regulator-max-microvolt = <2500000>;
24862306a36Sopenharmony_ci		};
24962306a36Sopenharmony_ci		vreg_l18a_2p85: l18 {
25062306a36Sopenharmony_ci			regulator-name = "vreg_l18a_2p85";
25162306a36Sopenharmony_ci			regulator-min-microvolt = <2700000>;
25262306a36Sopenharmony_ci			regulator-max-microvolt = <2900000>;
25362306a36Sopenharmony_ci		};
25462306a36Sopenharmony_ci		vreg_l19a_2p8: l19 {
25562306a36Sopenharmony_ci			regulator-name = "vreg_l19a_2p8";
25662306a36Sopenharmony_ci			regulator-min-microvolt = <3000000>;
25762306a36Sopenharmony_ci			regulator-max-microvolt = <3000000>;
25862306a36Sopenharmony_ci		};
25962306a36Sopenharmony_ci		vreg_l20a_2p95: l20 {
26062306a36Sopenharmony_ci			regulator-name = "vreg_l20a_2p95";
26162306a36Sopenharmony_ci			regulator-min-microvolt = <2950000>;
26262306a36Sopenharmony_ci			regulator-max-microvolt = <2950000>;
26362306a36Sopenharmony_ci			regulator-allow-set-load;
26462306a36Sopenharmony_ci		};
26562306a36Sopenharmony_ci		vreg_l21a_2p95: l21 {
26662306a36Sopenharmony_ci			regulator-name = "vreg_l21a_2p95";
26762306a36Sopenharmony_ci			regulator-min-microvolt = <2950000>;
26862306a36Sopenharmony_ci			regulator-max-microvolt = <2950000>;
26962306a36Sopenharmony_ci		};
27062306a36Sopenharmony_ci		vreg_l22a_3p0: l22 {
27162306a36Sopenharmony_ci			regulator-name = "vreg_l22a_3p0";
27262306a36Sopenharmony_ci			regulator-min-microvolt = <3300000>;
27362306a36Sopenharmony_ci			regulator-max-microvolt = <3300000>;
27462306a36Sopenharmony_ci		};
27562306a36Sopenharmony_ci		vreg_l23a_2p8: l23 {
27662306a36Sopenharmony_ci			regulator-name = "vreg_l23a_2p8";
27762306a36Sopenharmony_ci			regulator-min-microvolt = <2800000>;
27862306a36Sopenharmony_ci			regulator-max-microvolt = <2800000>;
27962306a36Sopenharmony_ci		};
28062306a36Sopenharmony_ci		vreg_l24a_3p075: l24 {
28162306a36Sopenharmony_ci			regulator-name = "vreg_l24a_3p075";
28262306a36Sopenharmony_ci			regulator-min-microvolt = <3075000>;
28362306a36Sopenharmony_ci			regulator-max-microvolt = <3075000>;
28462306a36Sopenharmony_ci		};
28562306a36Sopenharmony_ci		vreg_l25a_1p2: l25 {
28662306a36Sopenharmony_ci			regulator-name = "vreg_l25a_1p2";
28762306a36Sopenharmony_ci			regulator-min-microvolt = <1200000>;
28862306a36Sopenharmony_ci			regulator-max-microvolt = <1200000>;
28962306a36Sopenharmony_ci			regulator-allow-set-load;
29062306a36Sopenharmony_ci		};
29162306a36Sopenharmony_ci		vreg_l26a_0p8: l27 {
29262306a36Sopenharmony_ci			regulator-name = "vreg_l26a_0p8";
29362306a36Sopenharmony_ci			regulator-min-microvolt = <1000000>;
29462306a36Sopenharmony_ci			regulator-max-microvolt = <1000000>;
29562306a36Sopenharmony_ci		};
29662306a36Sopenharmony_ci		vreg_l28a_0p925: l28 {
29762306a36Sopenharmony_ci			regulator-name = "vreg_l28a_0p925";
29862306a36Sopenharmony_ci			regulator-min-microvolt = <925000>;
29962306a36Sopenharmony_ci			regulator-max-microvolt = <925000>;
30062306a36Sopenharmony_ci			regulator-allow-set-load;
30162306a36Sopenharmony_ci		};
30262306a36Sopenharmony_ci		vreg_l29a_2p8: l29 {
30362306a36Sopenharmony_ci			regulator-name = "vreg_l29a_2p8";
30462306a36Sopenharmony_ci			regulator-min-microvolt = <2800000>;
30562306a36Sopenharmony_ci			regulator-max-microvolt = <2800000>;
30662306a36Sopenharmony_ci		};
30762306a36Sopenharmony_ci		vreg_l30a_1p8: l30 {
30862306a36Sopenharmony_ci			regulator-name = "vreg_l30a_1p8";
30962306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
31062306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
31162306a36Sopenharmony_ci		};
31262306a36Sopenharmony_ci		vreg_l32a_1p8: l32 {
31362306a36Sopenharmony_ci			regulator-name = "vreg_l32a_1p8";
31462306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
31562306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
31662306a36Sopenharmony_ci		};
31762306a36Sopenharmony_ci
31862306a36Sopenharmony_ci		vreg_lvs1a_1p8: lvs1 {
31962306a36Sopenharmony_ci			regulator-name = "vreg_lvs1a_1p8";
32062306a36Sopenharmony_ci		};
32162306a36Sopenharmony_ci
32262306a36Sopenharmony_ci		vreg_lvs2a_1p8: lvs2 {
32362306a36Sopenharmony_ci			regulator-name = "vreg_lvs2a_1p8";
32462306a36Sopenharmony_ci		};
32562306a36Sopenharmony_ci	};
32662306a36Sopenharmony_ci};
32762306a36Sopenharmony_ci
32862306a36Sopenharmony_ci&sdhc2 {
32962306a36Sopenharmony_ci	status = "okay";
33062306a36Sopenharmony_ci
33162306a36Sopenharmony_ci	bus-width = <4>;
33262306a36Sopenharmony_ci
33362306a36Sopenharmony_ci	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_ci	vmmc-supply = <&vreg_l21a_2p95>;
33662306a36Sopenharmony_ci	vqmmc-supply = <&vreg_l13a_2p95>;
33762306a36Sopenharmony_ci};
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_ci&ufshc {
34062306a36Sopenharmony_ci	status = "okay";
34162306a36Sopenharmony_ci
34262306a36Sopenharmony_ci	vcc-supply = <&vreg_l20a_2p95>;
34362306a36Sopenharmony_ci	vccq-supply = <&vreg_l25a_1p2>;
34462306a36Sopenharmony_ci	vccq2-supply = <&vreg_s4a_1p8>;
34562306a36Sopenharmony_ci
34662306a36Sopenharmony_ci	vcc-max-microamp = <600000>;
34762306a36Sopenharmony_ci	vccq-max-microamp = <450000>;
34862306a36Sopenharmony_ci	vccq2-max-microamp = <450000>;
34962306a36Sopenharmony_ci};
35062306a36Sopenharmony_ci
35162306a36Sopenharmony_ci&ufsphy {
35262306a36Sopenharmony_ci	status = "okay";
35362306a36Sopenharmony_ci
35462306a36Sopenharmony_ci	vdda-phy-supply = <&vreg_l28a_0p925>;
35562306a36Sopenharmony_ci	vdda-pll-supply = <&vreg_l12a_1p8>;
35662306a36Sopenharmony_ci};
35762306a36Sopenharmony_ci
35862306a36Sopenharmony_ci&venus {
35962306a36Sopenharmony_ci	status = "okay";
36062306a36Sopenharmony_ci};
361