162306a36Sopenharmony_ci// SPDX-License-Identifier: BSD-3-Clause
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * SC7180 IDP board device tree source
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2019, The Linux Foundation. All rights reserved.
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci/dts-v1/;
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
1162306a36Sopenharmony_ci#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
1262306a36Sopenharmony_ci#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
1362306a36Sopenharmony_ci#include "sc7180.dtsi"
1462306a36Sopenharmony_ci#include "sc7180-firmware-tfa.dtsi"
1562306a36Sopenharmony_ci#include "pm6150.dtsi"
1662306a36Sopenharmony_ci#include "pm6150l.dtsi"
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci/ {
1962306a36Sopenharmony_ci	model = "Qualcomm Technologies, Inc. SC7180 IDP";
2062306a36Sopenharmony_ci	compatible = "qcom,sc7180-idp", "qcom,sc7180";
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci	aliases {
2362306a36Sopenharmony_ci		bluetooth0 = &bluetooth;
2462306a36Sopenharmony_ci		hsuart0 = &uart3;
2562306a36Sopenharmony_ci		serial0 = &uart8;
2662306a36Sopenharmony_ci		wifi0 = &wifi;
2762306a36Sopenharmony_ci	};
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	chosen {
3062306a36Sopenharmony_ci		stdout-path = "serial0:115200n8";
3162306a36Sopenharmony_ci	};
3262306a36Sopenharmony_ci};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci/*
3562306a36Sopenharmony_ci * Reserved memory changes
3662306a36Sopenharmony_ci *
3762306a36Sopenharmony_ci * Delete all unused memory nodes and define the peripheral memory regions
3862306a36Sopenharmony_ci * required by the board dts.
3962306a36Sopenharmony_ci *
4062306a36Sopenharmony_ci */
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci/delete-node/ &hyp_mem;
4362306a36Sopenharmony_ci/delete-node/ &xbl_mem;
4462306a36Sopenharmony_ci/delete-node/ &aop_mem;
4562306a36Sopenharmony_ci/delete-node/ &sec_apps_mem;
4662306a36Sopenharmony_ci/delete-node/ &tz_mem;
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci/* Increase the size from 2MB to 8MB */
4962306a36Sopenharmony_ci&rmtfs_mem {
5062306a36Sopenharmony_ci	reg = <0x0 0x94600000 0x0 0x800000>;
5162306a36Sopenharmony_ci};
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci/ {
5462306a36Sopenharmony_ci	reserved-memory {
5562306a36Sopenharmony_ci		atf_mem: memory@80b00000 {
5662306a36Sopenharmony_ci			reg = <0x0 0x80b00000 0x0 0x100000>;
5762306a36Sopenharmony_ci			no-map;
5862306a36Sopenharmony_ci		};
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci		mpss_mem: memory@86000000 {
6162306a36Sopenharmony_ci			reg = <0x0 0x86000000 0x0 0x8c00000>;
6262306a36Sopenharmony_ci			no-map;
6362306a36Sopenharmony_ci		};
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci		camera_mem: memory@8ec00000 {
6662306a36Sopenharmony_ci			reg = <0x0 0x8ec00000 0x0 0x500000>;
6762306a36Sopenharmony_ci			no-map;
6862306a36Sopenharmony_ci		};
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci		venus_mem: memory@8f600000 {
7162306a36Sopenharmony_ci			reg = <0 0x8f600000 0 0x500000>;
7262306a36Sopenharmony_ci			no-map;
7362306a36Sopenharmony_ci		};
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci		wlan_mem: memory@94100000 {
7662306a36Sopenharmony_ci			reg = <0x0 0x94100000 0x0 0x200000>;
7762306a36Sopenharmony_ci			no-map;
7862306a36Sopenharmony_ci		};
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci		mba_mem: memory@94400000 {
8162306a36Sopenharmony_ci			reg = <0x0 0x94400000 0x0 0x200000>;
8262306a36Sopenharmony_ci			no-map;
8362306a36Sopenharmony_ci		};
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci		mdata_mem: mpss-metadata {
8662306a36Sopenharmony_ci			alloc-ranges = <0x0 0xa0000000 0x0 0x20000000>;
8762306a36Sopenharmony_ci			size = <0x0 0x4000>;
8862306a36Sopenharmony_ci			no-map;
8962306a36Sopenharmony_ci		};
9062306a36Sopenharmony_ci	};
9162306a36Sopenharmony_ci};
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci&apps_rsc {
9462306a36Sopenharmony_ci	regulators-0 {
9562306a36Sopenharmony_ci		compatible = "qcom,pm6150-rpmh-regulators";
9662306a36Sopenharmony_ci		qcom,pmic-id = "a";
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci		vreg_s1a_1p1: smps1 {
9962306a36Sopenharmony_ci			regulator-min-microvolt = <1128000>;
10062306a36Sopenharmony_ci			regulator-max-microvolt = <1128000>;
10162306a36Sopenharmony_ci		};
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci		vreg_s4a_1p0: smps4 {
10462306a36Sopenharmony_ci			regulator-min-microvolt = <824000>;
10562306a36Sopenharmony_ci			regulator-max-microvolt = <1120000>;
10662306a36Sopenharmony_ci		};
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci		vreg_s5a_2p0: smps5 {
10962306a36Sopenharmony_ci			regulator-min-microvolt = <1744000>;
11062306a36Sopenharmony_ci			regulator-max-microvolt = <2040000>;
11162306a36Sopenharmony_ci		};
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci		vreg_l1a_1p2: ldo1 {
11462306a36Sopenharmony_ci			regulator-min-microvolt = <1178000>;
11562306a36Sopenharmony_ci			regulator-max-microvolt = <1256000>;
11662306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
11762306a36Sopenharmony_ci		};
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci		vreg_l2a_1p0: ldo2 {
12062306a36Sopenharmony_ci			regulator-min-microvolt = <944000>;
12162306a36Sopenharmony_ci			regulator-max-microvolt = <1056000>;
12262306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
12362306a36Sopenharmony_ci		};
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci		vreg_l3a_1p0: ldo3 {
12662306a36Sopenharmony_ci			regulator-min-microvolt = <968000>;
12762306a36Sopenharmony_ci			regulator-max-microvolt = <1064000>;
12862306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
12962306a36Sopenharmony_ci		};
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci		vreg_l4a_0p8: ldo4 {
13262306a36Sopenharmony_ci			regulator-min-microvolt = <824000>;
13362306a36Sopenharmony_ci			regulator-max-microvolt = <928000>;
13462306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
13562306a36Sopenharmony_ci		};
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci		vreg_l5a_2p7: ldo5 {
13862306a36Sopenharmony_ci			regulator-min-microvolt = <2496000>;
13962306a36Sopenharmony_ci			regulator-max-microvolt = <3000000>;
14062306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
14162306a36Sopenharmony_ci		};
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci		vreg_l6a_0p6: ldo6 {
14462306a36Sopenharmony_ci			regulator-min-microvolt = <568000>;
14562306a36Sopenharmony_ci			regulator-max-microvolt = <648000>;
14662306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
14762306a36Sopenharmony_ci		};
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci		vreg_l9a_0p6: ldo9 {
15062306a36Sopenharmony_ci			regulator-min-microvolt = <488000>;
15162306a36Sopenharmony_ci			regulator-max-microvolt = <800000>;
15262306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
15362306a36Sopenharmony_ci		};
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci		vreg_l10a_1p8: ldo10 {
15662306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
15762306a36Sopenharmony_ci			regulator-max-microvolt = <1832000>;
15862306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
15962306a36Sopenharmony_ci		};
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci		vreg_l11a_1p8: ldo11 {
16262306a36Sopenharmony_ci			regulator-min-microvolt = <1696000>;
16362306a36Sopenharmony_ci			regulator-max-microvolt = <1904000>;
16462306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
16562306a36Sopenharmony_ci		};
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci		vreg_l12a_1p8: ldo12 {
16862306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
16962306a36Sopenharmony_ci			regulator-max-microvolt = <1800000>;
17062306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
17162306a36Sopenharmony_ci		};
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ci		vreg_l13a_1p8: ldo13 {
17462306a36Sopenharmony_ci			regulator-min-microvolt = <1696000>;
17562306a36Sopenharmony_ci			regulator-max-microvolt = <1904000>;
17662306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
17762306a36Sopenharmony_ci		};
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ci		vreg_l14a_1p8: ldo14 {
18062306a36Sopenharmony_ci			regulator-min-microvolt = <1728000>;
18162306a36Sopenharmony_ci			regulator-max-microvolt = <1832000>;
18262306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
18362306a36Sopenharmony_ci		};
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ci		vreg_l15a_1p8: ldo15 {
18662306a36Sopenharmony_ci			regulator-min-microvolt = <1696000>;
18762306a36Sopenharmony_ci			regulator-max-microvolt = <1904000>;
18862306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
18962306a36Sopenharmony_ci		};
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci		vreg_l16a_2p7: ldo16 {
19262306a36Sopenharmony_ci			regulator-min-microvolt = <2496000>;
19362306a36Sopenharmony_ci			regulator-max-microvolt = <3304000>;
19462306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
19562306a36Sopenharmony_ci		};
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_ci		vreg_l17a_3p0: ldo17 {
19862306a36Sopenharmony_ci			regulator-min-microvolt = <2920000>;
19962306a36Sopenharmony_ci			regulator-max-microvolt = <3232000>;
20062306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
20162306a36Sopenharmony_ci		};
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ci		vreg_l18a_2p8: ldo18 {
20462306a36Sopenharmony_ci			regulator-min-microvolt = <2496000>;
20562306a36Sopenharmony_ci			regulator-max-microvolt = <3304000>;
20662306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
20762306a36Sopenharmony_ci		};
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ci		vreg_l19a_2p9: ldo19 {
21062306a36Sopenharmony_ci			regulator-min-microvolt = <2960000>;
21162306a36Sopenharmony_ci			regulator-max-microvolt = <2960000>;
21262306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
21362306a36Sopenharmony_ci		};
21462306a36Sopenharmony_ci	};
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci	regulators-1 {
21762306a36Sopenharmony_ci		compatible = "qcom,pm6150l-rpmh-regulators";
21862306a36Sopenharmony_ci		qcom,pmic-id = "c";
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ci		vreg_s8c_1p3: smps8 {
22162306a36Sopenharmony_ci			regulator-min-microvolt = <1120000>;
22262306a36Sopenharmony_ci			regulator-max-microvolt = <1408000>;
22362306a36Sopenharmony_ci		};
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ci		vreg_l1c_1p8: ldo1 {
22662306a36Sopenharmony_ci			regulator-min-microvolt = <1616000>;
22762306a36Sopenharmony_ci			regulator-max-microvolt = <1984000>;
22862306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
22962306a36Sopenharmony_ci		};
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ci		vreg_l2c_1p3: ldo2 {
23262306a36Sopenharmony_ci			regulator-min-microvolt = <1168000>;
23362306a36Sopenharmony_ci			regulator-max-microvolt = <1304000>;
23462306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
23562306a36Sopenharmony_ci		};
23662306a36Sopenharmony_ci
23762306a36Sopenharmony_ci		vreg_l3c_1p2: ldo3 {
23862306a36Sopenharmony_ci			regulator-min-microvolt = <1144000>;
23962306a36Sopenharmony_ci			regulator-max-microvolt = <1304000>;
24062306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
24162306a36Sopenharmony_ci		};
24262306a36Sopenharmony_ci
24362306a36Sopenharmony_ci		vreg_l4c_1p8: ldo4 {
24462306a36Sopenharmony_ci			regulator-min-microvolt = <1648000>;
24562306a36Sopenharmony_ci			regulator-max-microvolt = <3304000>;
24662306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
24762306a36Sopenharmony_ci		};
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ci		vreg_l5c_1p8: ldo5 {
25062306a36Sopenharmony_ci			regulator-min-microvolt = <1648000>;
25162306a36Sopenharmony_ci			regulator-max-microvolt = <3304000>;
25262306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
25362306a36Sopenharmony_ci		};
25462306a36Sopenharmony_ci
25562306a36Sopenharmony_ci		vreg_l6c_2p9: ldo6 {
25662306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
25762306a36Sopenharmony_ci			regulator-max-microvolt = <2950000>;
25862306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
25962306a36Sopenharmony_ci		};
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ci		vreg_l7c_3p0: ldo7 {
26262306a36Sopenharmony_ci			regulator-min-microvolt = <3000000>;
26362306a36Sopenharmony_ci			regulator-max-microvolt = <3312000>;
26462306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
26562306a36Sopenharmony_ci		};
26662306a36Sopenharmony_ci
26762306a36Sopenharmony_ci		vreg_l8c_1p8: ldo8 {
26862306a36Sopenharmony_ci			regulator-min-microvolt = <1800000>;
26962306a36Sopenharmony_ci			regulator-max-microvolt = <1904000>;
27062306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
27162306a36Sopenharmony_ci		};
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci		vreg_l9c_2p9: ldo9 {
27462306a36Sopenharmony_ci			regulator-min-microvolt = <2960000>;
27562306a36Sopenharmony_ci			regulator-max-microvolt = <2960000>;
27662306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
27762306a36Sopenharmony_ci		};
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_ci		vreg_l10c_3p3: ldo10 {
28062306a36Sopenharmony_ci			regulator-min-microvolt = <3000000>;
28162306a36Sopenharmony_ci			regulator-max-microvolt = <3400000>;
28262306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
28362306a36Sopenharmony_ci		};
28462306a36Sopenharmony_ci
28562306a36Sopenharmony_ci		vreg_l11c_3p3: ldo11 {
28662306a36Sopenharmony_ci			regulator-min-microvolt = <3000000>;
28762306a36Sopenharmony_ci			regulator-max-microvolt = <3400000>;
28862306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
28962306a36Sopenharmony_ci		};
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_ci		vreg_bob: bob {
29262306a36Sopenharmony_ci			regulator-min-microvolt = <3008000>;
29362306a36Sopenharmony_ci			regulator-max-microvolt = <3960000>;
29462306a36Sopenharmony_ci			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
29562306a36Sopenharmony_ci		};
29662306a36Sopenharmony_ci	};
29762306a36Sopenharmony_ci};
29862306a36Sopenharmony_ci
29962306a36Sopenharmony_ci&mdss {
30062306a36Sopenharmony_ci	status = "okay";
30162306a36Sopenharmony_ci};
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ci&mdss_dsi0 {
30462306a36Sopenharmony_ci	status = "okay";
30562306a36Sopenharmony_ci
30662306a36Sopenharmony_ci	vdda-supply = <&vreg_l3c_1p2>;
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_ci	panel@0 {
30962306a36Sopenharmony_ci		compatible = "visionox,rm69299-1080p-display";
31062306a36Sopenharmony_ci		reg = <0>;
31162306a36Sopenharmony_ci
31262306a36Sopenharmony_ci		vdda-supply = <&vreg_l8c_1p8>;
31362306a36Sopenharmony_ci		vdd3p3-supply = <&vreg_l18a_2p8>;
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ci		pinctrl-names = "default";
31662306a36Sopenharmony_ci		pinctrl-0 = <&disp_pins>;
31762306a36Sopenharmony_ci
31862306a36Sopenharmony_ci		reset-gpios = <&pm6150l_gpios 3 GPIO_ACTIVE_HIGH>;
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_ci		port {
32162306a36Sopenharmony_ci			panel0_in: endpoint {
32262306a36Sopenharmony_ci				remote-endpoint = <&mdss_dsi0_out>;
32362306a36Sopenharmony_ci			};
32462306a36Sopenharmony_ci		};
32562306a36Sopenharmony_ci	};
32662306a36Sopenharmony_ci
32762306a36Sopenharmony_ci	ports {
32862306a36Sopenharmony_ci		port@1 {
32962306a36Sopenharmony_ci			endpoint {
33062306a36Sopenharmony_ci				remote-endpoint = <&panel0_in>;
33162306a36Sopenharmony_ci				data-lanes = <0 1 2 3>;
33262306a36Sopenharmony_ci			};
33362306a36Sopenharmony_ci		};
33462306a36Sopenharmony_ci	};
33562306a36Sopenharmony_ci};
33662306a36Sopenharmony_ci
33762306a36Sopenharmony_ci&mdss_dsi0_phy {
33862306a36Sopenharmony_ci	status = "okay";
33962306a36Sopenharmony_ci	vdds-supply = <&vreg_l4a_0p8>;
34062306a36Sopenharmony_ci};
34162306a36Sopenharmony_ci
34262306a36Sopenharmony_ci&qfprom {
34362306a36Sopenharmony_ci	vcc-supply = <&vreg_l11a_1p8>;
34462306a36Sopenharmony_ci};
34562306a36Sopenharmony_ci
34662306a36Sopenharmony_ci&qspi {
34762306a36Sopenharmony_ci	status = "okay";
34862306a36Sopenharmony_ci	pinctrl-names = "default";
34962306a36Sopenharmony_ci	pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data0>, <&qspi_data1>;
35062306a36Sopenharmony_ci
35162306a36Sopenharmony_ci	flash@0 {
35262306a36Sopenharmony_ci		compatible = "jedec,spi-nor";
35362306a36Sopenharmony_ci		reg = <0>;
35462306a36Sopenharmony_ci		spi-max-frequency = <25000000>;
35562306a36Sopenharmony_ci		spi-tx-bus-width = <2>;
35662306a36Sopenharmony_ci		spi-rx-bus-width = <2>;
35762306a36Sopenharmony_ci	};
35862306a36Sopenharmony_ci};
35962306a36Sopenharmony_ci
36062306a36Sopenharmony_ci&qupv3_id_0 {
36162306a36Sopenharmony_ci	status = "okay";
36262306a36Sopenharmony_ci};
36362306a36Sopenharmony_ci
36462306a36Sopenharmony_ci&qupv3_id_1 {
36562306a36Sopenharmony_ci	status = "okay";
36662306a36Sopenharmony_ci};
36762306a36Sopenharmony_ci
36862306a36Sopenharmony_ci&remoteproc_mpss {
36962306a36Sopenharmony_ci	status = "okay";
37062306a36Sopenharmony_ci	compatible = "qcom,sc7180-mss-pil";
37162306a36Sopenharmony_ci	reg = <0 0x04080000 0 0x4040>, <0 0x04180000 0 0x48>;
37262306a36Sopenharmony_ci	reg-names = "qdsp6", "rmb";
37362306a36Sopenharmony_ci
37462306a36Sopenharmony_ci	clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
37562306a36Sopenharmony_ci		 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
37662306a36Sopenharmony_ci		 <&gcc GCC_MSS_NAV_AXI_CLK>,
37762306a36Sopenharmony_ci		 <&gcc GCC_MSS_SNOC_AXI_CLK>,
37862306a36Sopenharmony_ci		 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
37962306a36Sopenharmony_ci		 <&rpmhcc RPMH_CXO_CLK>;
38062306a36Sopenharmony_ci	clock-names = "iface", "bus", "nav", "snoc_axi", "mnoc_axi", "xo";
38162306a36Sopenharmony_ci
38262306a36Sopenharmony_ci	iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
38362306a36Sopenharmony_ci	memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>;
38462306a36Sopenharmony_ci
38562306a36Sopenharmony_ci	resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
38662306a36Sopenharmony_ci		 <&pdc_reset PDC_MODEM_SYNC_RESET>;
38762306a36Sopenharmony_ci	reset-names = "mss_restart", "pdc_reset";
38862306a36Sopenharmony_ci
38962306a36Sopenharmony_ci	qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
39062306a36Sopenharmony_ci	qcom,spare-regs = <&tcsr_regs_2 0xb3e4>;
39162306a36Sopenharmony_ci};
39262306a36Sopenharmony_ci
39362306a36Sopenharmony_ci&scm {
39462306a36Sopenharmony_ci	/* TF-A firmware maps memory cached so mark dma-coherent to match. */
39562306a36Sopenharmony_ci	dma-coherent;
39662306a36Sopenharmony_ci};
39762306a36Sopenharmony_ci
39862306a36Sopenharmony_ci&sdhc_1 {
39962306a36Sopenharmony_ci	status = "okay";
40062306a36Sopenharmony_ci
40162306a36Sopenharmony_ci	pinctrl-names = "default", "sleep";
40262306a36Sopenharmony_ci	pinctrl-0 = <&sdc1_on>;
40362306a36Sopenharmony_ci	pinctrl-1 = <&sdc1_off>;
40462306a36Sopenharmony_ci	vmmc-supply = <&vreg_l19a_2p9>;
40562306a36Sopenharmony_ci	vqmmc-supply = <&vreg_l12a_1p8>;
40662306a36Sopenharmony_ci};
40762306a36Sopenharmony_ci
40862306a36Sopenharmony_ci&sdhc_2 {
40962306a36Sopenharmony_ci	status = "okay";
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_ci	pinctrl-names = "default","sleep";
41262306a36Sopenharmony_ci	pinctrl-0 = <&sdc2_on>;
41362306a36Sopenharmony_ci	pinctrl-1 = <&sdc2_off>;
41462306a36Sopenharmony_ci	vmmc-supply = <&vreg_l9c_2p9>;
41562306a36Sopenharmony_ci	vqmmc-supply = <&vreg_l6c_2p9>;
41662306a36Sopenharmony_ci
41762306a36Sopenharmony_ci	cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
41862306a36Sopenharmony_ci};
41962306a36Sopenharmony_ci
42062306a36Sopenharmony_ci&uart3 {
42162306a36Sopenharmony_ci	status = "okay";
42262306a36Sopenharmony_ci
42362306a36Sopenharmony_ci	/delete-property/interrupts;
42462306a36Sopenharmony_ci	interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
42562306a36Sopenharmony_ci				<&tlmm 41 IRQ_TYPE_EDGE_FALLING>;
42662306a36Sopenharmony_ci
42762306a36Sopenharmony_ci	pinctrl-names = "default", "sleep";
42862306a36Sopenharmony_ci	pinctrl-1 = <&qup_uart3_sleep>;
42962306a36Sopenharmony_ci
43062306a36Sopenharmony_ci	bluetooth: bluetooth {
43162306a36Sopenharmony_ci		compatible = "qcom,wcn3990-bt";
43262306a36Sopenharmony_ci		vddio-supply = <&vreg_l10a_1p8>;
43362306a36Sopenharmony_ci		vddxo-supply = <&vreg_l1c_1p8>;
43462306a36Sopenharmony_ci		vddrf-supply = <&vreg_l2c_1p3>;
43562306a36Sopenharmony_ci		vddch0-supply = <&vreg_l10c_3p3>;
43662306a36Sopenharmony_ci		max-speed = <3200000>;
43762306a36Sopenharmony_ci	};
43862306a36Sopenharmony_ci};
43962306a36Sopenharmony_ci
44062306a36Sopenharmony_ci&uart8 {
44162306a36Sopenharmony_ci	status = "okay";
44262306a36Sopenharmony_ci};
44362306a36Sopenharmony_ci
44462306a36Sopenharmony_ci&usb_1 {
44562306a36Sopenharmony_ci	status = "okay";
44662306a36Sopenharmony_ci};
44762306a36Sopenharmony_ci
44862306a36Sopenharmony_ci&usb_1_dwc3 {
44962306a36Sopenharmony_ci	dr_mode = "host";
45062306a36Sopenharmony_ci};
45162306a36Sopenharmony_ci
45262306a36Sopenharmony_ci&usb_1_hsphy {
45362306a36Sopenharmony_ci	status = "okay";
45462306a36Sopenharmony_ci	vdd-supply = <&vreg_l4a_0p8>;
45562306a36Sopenharmony_ci	vdda-pll-supply = <&vreg_l11a_1p8>;
45662306a36Sopenharmony_ci	vdda-phy-dpdm-supply = <&vreg_l17a_3p0>;
45762306a36Sopenharmony_ci	qcom,imp-res-offset-value = <8>;
45862306a36Sopenharmony_ci	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>;
45962306a36Sopenharmony_ci	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
46062306a36Sopenharmony_ci	qcom,bias-ctrl-value = <0x22>;
46162306a36Sopenharmony_ci	qcom,charge-ctrl-value = <3>;
46262306a36Sopenharmony_ci	qcom,hsdisc-trim-value = <0>;
46362306a36Sopenharmony_ci};
46462306a36Sopenharmony_ci
46562306a36Sopenharmony_ci&usb_1_qmpphy {
46662306a36Sopenharmony_ci	status = "okay";
46762306a36Sopenharmony_ci	vdda-phy-supply = <&vreg_l3c_1p2>;
46862306a36Sopenharmony_ci	vdda-pll-supply = <&vreg_l4a_0p8>;
46962306a36Sopenharmony_ci};
47062306a36Sopenharmony_ci
47162306a36Sopenharmony_ci&venus {
47262306a36Sopenharmony_ci	video-firmware {
47362306a36Sopenharmony_ci		iommus = <&apps_smmu 0x0c42 0x0>;
47462306a36Sopenharmony_ci	};
47562306a36Sopenharmony_ci};
47662306a36Sopenharmony_ci
47762306a36Sopenharmony_ci&wifi {
47862306a36Sopenharmony_ci	status = "okay";
47962306a36Sopenharmony_ci	vdd-0.8-cx-mx-supply = <&vreg_l9a_0p6>;
48062306a36Sopenharmony_ci	vdd-1.8-xo-supply = <&vreg_l1c_1p8>;
48162306a36Sopenharmony_ci	vdd-1.3-rfa-supply = <&vreg_l2c_1p3>;
48262306a36Sopenharmony_ci	vdd-3.3-ch0-supply = <&vreg_l10c_3p3>;
48362306a36Sopenharmony_ci	vdd-3.3-ch1-supply = <&vreg_l11c_3p3>;
48462306a36Sopenharmony_ci	wifi-firmware {
48562306a36Sopenharmony_ci		iommus = <&apps_smmu 0xc2 0x1>;
48662306a36Sopenharmony_ci	};
48762306a36Sopenharmony_ci};
48862306a36Sopenharmony_ci
48962306a36Sopenharmony_ci/* PINCTRL - additions to nodes defined in sc7180.dtsi */
49062306a36Sopenharmony_ci
49162306a36Sopenharmony_ci&pm6150l_gpios {
49262306a36Sopenharmony_ci	disp_pins: disp-state {
49362306a36Sopenharmony_ci		pinconf {
49462306a36Sopenharmony_ci			pins = "gpio3";
49562306a36Sopenharmony_ci			function = PMIC_GPIO_FUNC_FUNC1;
49662306a36Sopenharmony_ci			qcom,drive-strength = <PMIC_GPIO_STRENGTH_MED>;
49762306a36Sopenharmony_ci			power-source = <0>;
49862306a36Sopenharmony_ci			bias-disable;
49962306a36Sopenharmony_ci			output-low;
50062306a36Sopenharmony_ci		};
50162306a36Sopenharmony_ci	};
50262306a36Sopenharmony_ci};
50362306a36Sopenharmony_ci
50462306a36Sopenharmony_ci&qspi_clk {
50562306a36Sopenharmony_ci	bias-disable;
50662306a36Sopenharmony_ci};
50762306a36Sopenharmony_ci
50862306a36Sopenharmony_ci&qspi_cs0 {
50962306a36Sopenharmony_ci	bias-disable;
51062306a36Sopenharmony_ci};
51162306a36Sopenharmony_ci
51262306a36Sopenharmony_ci&qspi_data0 {
51362306a36Sopenharmony_ci	bias-pull-up;
51462306a36Sopenharmony_ci};
51562306a36Sopenharmony_ci
51662306a36Sopenharmony_ci&qspi_data1 {
51762306a36Sopenharmony_ci	bias-pull-up;
51862306a36Sopenharmony_ci};
51962306a36Sopenharmony_ci
52062306a36Sopenharmony_ci&qup_i2c2_default {
52162306a36Sopenharmony_ci	drive-strength = <2>;
52262306a36Sopenharmony_ci
52362306a36Sopenharmony_ci	/* Has external pullup */
52462306a36Sopenharmony_ci	bias-disable;
52562306a36Sopenharmony_ci};
52662306a36Sopenharmony_ci
52762306a36Sopenharmony_ci&qup_i2c4_default {
52862306a36Sopenharmony_ci	drive-strength = <2>;
52962306a36Sopenharmony_ci
53062306a36Sopenharmony_ci	/* Has external pullup */
53162306a36Sopenharmony_ci	bias-disable;
53262306a36Sopenharmony_ci};
53362306a36Sopenharmony_ci
53462306a36Sopenharmony_ci&qup_i2c7_default {
53562306a36Sopenharmony_ci	drive-strength = <2>;
53662306a36Sopenharmony_ci
53762306a36Sopenharmony_ci	/* Has external pullup */
53862306a36Sopenharmony_ci	bias-disable;
53962306a36Sopenharmony_ci};
54062306a36Sopenharmony_ci
54162306a36Sopenharmony_ci&qup_i2c9_default {
54262306a36Sopenharmony_ci	drive-strength = <2>;
54362306a36Sopenharmony_ci
54462306a36Sopenharmony_ci	/* Has external pullup */
54562306a36Sopenharmony_ci	bias-disable;
54662306a36Sopenharmony_ci};
54762306a36Sopenharmony_ci
54862306a36Sopenharmony_ci&qup_uart3_cts {
54962306a36Sopenharmony_ci	/*
55062306a36Sopenharmony_ci	 * Configure a pull-down on CTS to match the pull of
55162306a36Sopenharmony_ci	 * the Bluetooth module.
55262306a36Sopenharmony_ci	 */
55362306a36Sopenharmony_ci	bias-pull-down;
55462306a36Sopenharmony_ci};
55562306a36Sopenharmony_ci
55662306a36Sopenharmony_ci&qup_uart3_rts {
55762306a36Sopenharmony_ci	/* We'll drive RTS, so no pull */
55862306a36Sopenharmony_ci	drive-strength = <2>;
55962306a36Sopenharmony_ci	bias-disable;
56062306a36Sopenharmony_ci};
56162306a36Sopenharmony_ci
56262306a36Sopenharmony_ci&qup_uart3_tx {
56362306a36Sopenharmony_ci	/* We'll drive TX, so no pull */
56462306a36Sopenharmony_ci	drive-strength = <2>;
56562306a36Sopenharmony_ci	bias-disable;
56662306a36Sopenharmony_ci};
56762306a36Sopenharmony_ci
56862306a36Sopenharmony_ci&qup_uart3_rx {
56962306a36Sopenharmony_ci	/*
57062306a36Sopenharmony_ci	 * Configure a pull-up on RX. This is needed to avoid
57162306a36Sopenharmony_ci	 * garbage data when the TX pin of the Bluetooth module is
57262306a36Sopenharmony_ci	 * in tri-state (module powered off or not driving the
57362306a36Sopenharmony_ci	 * signal yet).
57462306a36Sopenharmony_ci	 */
57562306a36Sopenharmony_ci	bias-pull-up;
57662306a36Sopenharmony_ci};
57762306a36Sopenharmony_ci
57862306a36Sopenharmony_ci&qup_uart8_tx {
57962306a36Sopenharmony_ci	drive-strength = <2>;
58062306a36Sopenharmony_ci	bias-disable;
58162306a36Sopenharmony_ci};
58262306a36Sopenharmony_ci
58362306a36Sopenharmony_ci&qup_uart8_rx {
58462306a36Sopenharmony_ci	drive-strength = <2>;
58562306a36Sopenharmony_ci	bias-pull-up;
58662306a36Sopenharmony_ci};
58762306a36Sopenharmony_ci
58862306a36Sopenharmony_ci&qup_spi0_spi {
58962306a36Sopenharmony_ci	drive-strength = <2>;
59062306a36Sopenharmony_ci	bias-disable;
59162306a36Sopenharmony_ci};
59262306a36Sopenharmony_ci
59362306a36Sopenharmony_ci&qup_spi0_cs {
59462306a36Sopenharmony_ci	drive-strength = <2>;
59562306a36Sopenharmony_ci	bias-disable;
59662306a36Sopenharmony_ci};
59762306a36Sopenharmony_ci
59862306a36Sopenharmony_ci&qup_spi6_spi {
59962306a36Sopenharmony_ci	drive-strength = <2>;
60062306a36Sopenharmony_ci	bias-disable;
60162306a36Sopenharmony_ci};
60262306a36Sopenharmony_ci
60362306a36Sopenharmony_ci&qup_spi6_cs {
60462306a36Sopenharmony_ci	drive-strength = <2>;
60562306a36Sopenharmony_ci	bias-disable;
60662306a36Sopenharmony_ci};
60762306a36Sopenharmony_ci
60862306a36Sopenharmony_ci&qup_spi10_spi {
60962306a36Sopenharmony_ci	drive-strength = <2>;
61062306a36Sopenharmony_ci	bias-disable;
61162306a36Sopenharmony_ci};
61262306a36Sopenharmony_ci
61362306a36Sopenharmony_ci&qup_spi10_cs {
61462306a36Sopenharmony_ci	drive-strength = <2>;
61562306a36Sopenharmony_ci	bias-disable;
61662306a36Sopenharmony_ci};
61762306a36Sopenharmony_ci
61862306a36Sopenharmony_ci&tlmm {
61962306a36Sopenharmony_ci	qup_uart3_sleep: qup-uart3-sleep-state {
62062306a36Sopenharmony_ci		cts-pins {
62162306a36Sopenharmony_ci			/*
62262306a36Sopenharmony_ci			 * Configure a pull-down on CTS to match the pull of
62362306a36Sopenharmony_ci			 * the Bluetooth module.
62462306a36Sopenharmony_ci			 */
62562306a36Sopenharmony_ci			pins = "gpio38";
62662306a36Sopenharmony_ci			function = "gpio";
62762306a36Sopenharmony_ci			bias-pull-down;
62862306a36Sopenharmony_ci		};
62962306a36Sopenharmony_ci
63062306a36Sopenharmony_ci		rts-pins {
63162306a36Sopenharmony_ci			/*
63262306a36Sopenharmony_ci			 * Configure pull-down on RTS. As RTS is active low
63362306a36Sopenharmony_ci			 * signal, pull it low to indicate the BT SoC that it
63462306a36Sopenharmony_ci			 * can wakeup the system anytime from suspend state by
63562306a36Sopenharmony_ci			 * pulling RX low (by sending wakeup bytes).
63662306a36Sopenharmony_ci			 */
63762306a36Sopenharmony_ci			pins = "gpio39";
63862306a36Sopenharmony_ci			function = "gpio";
63962306a36Sopenharmony_ci			bias-pull-down;
64062306a36Sopenharmony_ci		};
64162306a36Sopenharmony_ci
64262306a36Sopenharmony_ci		tx-pins {
64362306a36Sopenharmony_ci			/*
64462306a36Sopenharmony_ci			 * Configure pull-up on TX when it isn't actively driven
64562306a36Sopenharmony_ci			 * to prevent BT SoC from receiving garbage during sleep.
64662306a36Sopenharmony_ci			 */
64762306a36Sopenharmony_ci			pins = "gpio40";
64862306a36Sopenharmony_ci			function = "gpio";
64962306a36Sopenharmony_ci			bias-pull-up;
65062306a36Sopenharmony_ci		};
65162306a36Sopenharmony_ci
65262306a36Sopenharmony_ci		rx-pins {
65362306a36Sopenharmony_ci			/*
65462306a36Sopenharmony_ci			 * Configure a pull-up on RX. This is needed to avoid
65562306a36Sopenharmony_ci			 * garbage data when the TX pin of the Bluetooth module
65662306a36Sopenharmony_ci			 * is floating which may cause spurious wakeups.
65762306a36Sopenharmony_ci			 */
65862306a36Sopenharmony_ci			pins = "gpio41";
65962306a36Sopenharmony_ci			function = "gpio";
66062306a36Sopenharmony_ci			bias-pull-up;
66162306a36Sopenharmony_ci		};
66262306a36Sopenharmony_ci	};
66362306a36Sopenharmony_ci
66462306a36Sopenharmony_ci	sdc1_on: sdc1-on-state {
66562306a36Sopenharmony_ci		clk-pins {
66662306a36Sopenharmony_ci			pins = "sdc1_clk";
66762306a36Sopenharmony_ci			bias-disable;
66862306a36Sopenharmony_ci			drive-strength = <16>;
66962306a36Sopenharmony_ci		};
67062306a36Sopenharmony_ci
67162306a36Sopenharmony_ci		cmd-pins {
67262306a36Sopenharmony_ci			pins = "sdc1_cmd";
67362306a36Sopenharmony_ci			bias-pull-up;
67462306a36Sopenharmony_ci			drive-strength = <10>;
67562306a36Sopenharmony_ci		};
67662306a36Sopenharmony_ci
67762306a36Sopenharmony_ci		data-pins {
67862306a36Sopenharmony_ci			pins = "sdc1_data";
67962306a36Sopenharmony_ci			bias-pull-up;
68062306a36Sopenharmony_ci			drive-strength = <10>;
68162306a36Sopenharmony_ci		};
68262306a36Sopenharmony_ci
68362306a36Sopenharmony_ci		rclk-pins {
68462306a36Sopenharmony_ci			pins = "sdc1_rclk";
68562306a36Sopenharmony_ci			bias-pull-down;
68662306a36Sopenharmony_ci		};
68762306a36Sopenharmony_ci	};
68862306a36Sopenharmony_ci
68962306a36Sopenharmony_ci	sdc1_off: sdc1-off-state {
69062306a36Sopenharmony_ci		clk-pins {
69162306a36Sopenharmony_ci			pins = "sdc1_clk";
69262306a36Sopenharmony_ci			bias-disable;
69362306a36Sopenharmony_ci			drive-strength = <2>;
69462306a36Sopenharmony_ci		};
69562306a36Sopenharmony_ci
69662306a36Sopenharmony_ci		cmd-pins {
69762306a36Sopenharmony_ci			pins = "sdc1_cmd";
69862306a36Sopenharmony_ci			bias-pull-up;
69962306a36Sopenharmony_ci			drive-strength = <2>;
70062306a36Sopenharmony_ci		};
70162306a36Sopenharmony_ci
70262306a36Sopenharmony_ci		data-pins {
70362306a36Sopenharmony_ci			pins = "sdc1_data";
70462306a36Sopenharmony_ci			bias-pull-up;
70562306a36Sopenharmony_ci			drive-strength = <2>;
70662306a36Sopenharmony_ci		};
70762306a36Sopenharmony_ci
70862306a36Sopenharmony_ci		rclk-pins {
70962306a36Sopenharmony_ci			pins = "sdc1_rclk";
71062306a36Sopenharmony_ci			bias-pull-down;
71162306a36Sopenharmony_ci		};
71262306a36Sopenharmony_ci	};
71362306a36Sopenharmony_ci
71462306a36Sopenharmony_ci	sdc2_on: sdc2-on-state {
71562306a36Sopenharmony_ci		clk-pins {
71662306a36Sopenharmony_ci			pins = "sdc2_clk";
71762306a36Sopenharmony_ci			bias-disable;
71862306a36Sopenharmony_ci			drive-strength = <16>;
71962306a36Sopenharmony_ci		};
72062306a36Sopenharmony_ci
72162306a36Sopenharmony_ci		cmd-pins {
72262306a36Sopenharmony_ci			pins = "sdc2_cmd";
72362306a36Sopenharmony_ci			bias-pull-up;
72462306a36Sopenharmony_ci			drive-strength = <10>;
72562306a36Sopenharmony_ci		};
72662306a36Sopenharmony_ci
72762306a36Sopenharmony_ci		data-pins {
72862306a36Sopenharmony_ci			pins = "sdc2_data";
72962306a36Sopenharmony_ci			bias-pull-up;
73062306a36Sopenharmony_ci			drive-strength = <10>;
73162306a36Sopenharmony_ci		};
73262306a36Sopenharmony_ci
73362306a36Sopenharmony_ci		sd-cd-pins {
73462306a36Sopenharmony_ci			pins = "gpio69";
73562306a36Sopenharmony_ci			function = "gpio";
73662306a36Sopenharmony_ci			bias-pull-up;
73762306a36Sopenharmony_ci			drive-strength = <2>;
73862306a36Sopenharmony_ci		};
73962306a36Sopenharmony_ci	};
74062306a36Sopenharmony_ci
74162306a36Sopenharmony_ci	sdc2_off: sdc2-off-state {
74262306a36Sopenharmony_ci		clk-pins {
74362306a36Sopenharmony_ci			pins = "sdc2_clk";
74462306a36Sopenharmony_ci			bias-disable;
74562306a36Sopenharmony_ci			drive-strength = <2>;
74662306a36Sopenharmony_ci		};
74762306a36Sopenharmony_ci
74862306a36Sopenharmony_ci		cmd-pins {
74962306a36Sopenharmony_ci			pins = "sdc2_cmd";
75062306a36Sopenharmony_ci			bias-pull-up;
75162306a36Sopenharmony_ci			drive-strength = <2>;
75262306a36Sopenharmony_ci		};
75362306a36Sopenharmony_ci
75462306a36Sopenharmony_ci		data-pins {
75562306a36Sopenharmony_ci			pins = "sdc2_data";
75662306a36Sopenharmony_ci			bias-pull-up;
75762306a36Sopenharmony_ci			drive-strength = <2>;
75862306a36Sopenharmony_ci		};
75962306a36Sopenharmony_ci
76062306a36Sopenharmony_ci		sd-cd-pins {
76162306a36Sopenharmony_ci			pins = "gpio69";
76262306a36Sopenharmony_ci			function = "gpio";
76362306a36Sopenharmony_ci			bias-pull-up;
76462306a36Sopenharmony_ci			drive-strength = <2>;
76562306a36Sopenharmony_ci		};
76662306a36Sopenharmony_ci	};
76762306a36Sopenharmony_ci};
768