xref: /openbmc/linux/arch/arm64/boot/dts/qcom/msm8953-xiaomi-daisy.dts (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
138d779c2SAlejandro Tafalla// SPDX-License-Identifier: BSD-3-Clause
238d779c2SAlejandro Tafalla/*
338d779c2SAlejandro Tafalla * Copyright (c) 2022, Alejandro Tafalla
438d779c2SAlejandro Tafalla */
538d779c2SAlejandro Tafalla/dts-v1/;
638d779c2SAlejandro Tafalla
738d779c2SAlejandro Tafalla#include "msm8953.dtsi"
838d779c2SAlejandro Tafalla#include "pm8953.dtsi"
938d779c2SAlejandro Tafalla#include "pmi8950.dtsi"
1038d779c2SAlejandro Tafalla
1138d779c2SAlejandro Tafalla/delete-node/ &adsp_fw_mem;
1238d779c2SAlejandro Tafalla/delete-node/ &qseecom_mem;
1338d779c2SAlejandro Tafalla/delete-node/ &wcnss_fw_mem;
1438d779c2SAlejandro Tafalla
1538d779c2SAlejandro Tafalla/ {
1638d779c2SAlejandro Tafalla	model = "Xiaomi Mi A2 Lite";
1738d779c2SAlejandro Tafalla	compatible = "xiaomi,daisy", "qcom,msm8953";
1838d779c2SAlejandro Tafalla	chassis-type = "handset";
1938d779c2SAlejandro Tafalla	qcom,msm-id = <293 0>;
2038d779c2SAlejandro Tafalla	qcom,board-id = <0x1000b 0x9>;
2138d779c2SAlejandro Tafalla
2238d779c2SAlejandro Tafalla	chosen {
2338d779c2SAlejandro Tafalla		#address-cells = <2>;
2438d779c2SAlejandro Tafalla		#size-cells = <2>;
2538d779c2SAlejandro Tafalla		ranges;
2638d779c2SAlejandro Tafalla
2738d779c2SAlejandro Tafalla		framebuffer@90001000 {
2838d779c2SAlejandro Tafalla			compatible = "simple-framebuffer";
2938d779c2SAlejandro Tafalla			reg = <0 0x90001000 0 (1920 * 2280 * 3)>;
3038d779c2SAlejandro Tafalla
3138d779c2SAlejandro Tafalla			width = <1080>;
3238d779c2SAlejandro Tafalla			height = <2280>;
3338d779c2SAlejandro Tafalla			stride = <(1080 * 3)>;
3438d779c2SAlejandro Tafalla			format = "r8g8b8";
3538d779c2SAlejandro Tafalla
3638d779c2SAlejandro Tafalla			power-domains = <&gcc MDSS_GDSC>;
3738d779c2SAlejandro Tafalla
3838d779c2SAlejandro Tafalla			clocks = <&gcc GCC_MDSS_AHB_CLK>,
3938d779c2SAlejandro Tafalla				 <&gcc GCC_MDSS_AXI_CLK>,
4038d779c2SAlejandro Tafalla				 <&gcc GCC_MDSS_VSYNC_CLK>,
4138d779c2SAlejandro Tafalla				 <&gcc GCC_MDSS_MDP_CLK>,
4238d779c2SAlejandro Tafalla				 <&gcc GCC_MDSS_BYTE0_CLK>,
4338d779c2SAlejandro Tafalla				 <&gcc GCC_MDSS_PCLK0_CLK>,
4438d779c2SAlejandro Tafalla				 <&gcc GCC_MDSS_ESC0_CLK>;
4538d779c2SAlejandro Tafalla		};
4638d779c2SAlejandro Tafalla	};
4738d779c2SAlejandro Tafalla
4838d779c2SAlejandro Tafalla	gpio-keys {
4938d779c2SAlejandro Tafalla		compatible = "gpio-keys";
5038d779c2SAlejandro Tafalla
5138d779c2SAlejandro Tafalla		pinctrl-names = "default";
5238d779c2SAlejandro Tafalla		pinctrl-0 = <&gpio_key_default>;
5338d779c2SAlejandro Tafalla
5438d779c2SAlejandro Tafalla		key-volume-up {
5538d779c2SAlejandro Tafalla			label = "Volume Up";
5638d779c2SAlejandro Tafalla			gpios = <&tlmm 85 GPIO_ACTIVE_LOW>;
5738d779c2SAlejandro Tafalla			linux,code = <KEY_VOLUMEUP>;
5838d779c2SAlejandro Tafalla		};
5938d779c2SAlejandro Tafalla	};
6038d779c2SAlejandro Tafalla
6138d779c2SAlejandro Tafalla	reserved-memory {
6238d779c2SAlejandro Tafalla		qseecom_mem: qseecom@84a00000 {
6338d779c2SAlejandro Tafalla			reg = <0x0 0x84a00000 0x0 0x1900000>;
6438d779c2SAlejandro Tafalla			no-map;
6538d779c2SAlejandro Tafalla		};
6638d779c2SAlejandro Tafalla
6738d779c2SAlejandro Tafalla		adsp_fw_mem: adsp@8d600000 {
6838d779c2SAlejandro Tafalla			reg = <0x0 0x8d600000 0x0 0x1200000>;
6938d779c2SAlejandro Tafalla			no-map;
7038d779c2SAlejandro Tafalla		};
7138d779c2SAlejandro Tafalla
7238d779c2SAlejandro Tafalla		wcnss_fw_mem: wcnss@8e800000 {
7338d779c2SAlejandro Tafalla			reg = <0x0 0x8e800000 0x0 0x700000>;
7438d779c2SAlejandro Tafalla			no-map;
7538d779c2SAlejandro Tafalla		};
7638d779c2SAlejandro Tafalla	};
7738d779c2SAlejandro Tafalla
7838d779c2SAlejandro Tafalla	/*
7938d779c2SAlejandro Tafalla	 * We bitbang on &i2c_4 because BLSP is protected by TZ as sensors are
8038d779c2SAlejandro Tafalla	 * normally proxied via ADSP firmware. GPIOs aren't protected.
8138d779c2SAlejandro Tafalla	 */
8238d779c2SAlejandro Tafalla	i2c-sensors {
8338d779c2SAlejandro Tafalla		compatible = "i2c-gpio";
8438d779c2SAlejandro Tafalla		sda-gpios = <&tlmm 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
8538d779c2SAlejandro Tafalla		scl-gpios = <&tlmm 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
8638d779c2SAlejandro Tafalla		i2c-gpio,delay-us = <2>; /* ~100 kHz */
8738d779c2SAlejandro Tafalla		#address-cells = <1>;
8838d779c2SAlejandro Tafalla		#size-cells = <0>;
8938d779c2SAlejandro Tafalla
9038d779c2SAlejandro Tafalla		imu@6a {
9138d779c2SAlejandro Tafalla			compatible = "st,lsm6dsl";
9238d779c2SAlejandro Tafalla			reg = <0x6a>;
9338d779c2SAlejandro Tafalla			vdd-supply = <&pm8953_l10>;
9438d779c2SAlejandro Tafalla			vddio-supply = <&pm8953_l6>;
9538d779c2SAlejandro Tafalla			mount-matrix = "-1", "0", "0",
9638d779c2SAlejandro Tafalla					"0", "-1", "0",
9738d779c2SAlejandro Tafalla					"0", "0", "1";
9838d779c2SAlejandro Tafalla		};
9938d779c2SAlejandro Tafalla	};
10038d779c2SAlejandro Tafalla
10138d779c2SAlejandro Tafalla	vph_pwr: vph-pwr-regulator {
10238d779c2SAlejandro Tafalla		compatible = "regulator-fixed";
10338d779c2SAlejandro Tafalla		regulator-name = "vph_pwr";
10438d779c2SAlejandro Tafalla		regulator-always-on;
10538d779c2SAlejandro Tafalla		regulator-boot-on;
10638d779c2SAlejandro Tafalla	};
10738d779c2SAlejandro Tafalla};
10838d779c2SAlejandro Tafalla
10938d779c2SAlejandro Tafalla&hsusb_phy {
11038d779c2SAlejandro Tafalla	vdd-supply = <&pm8953_l3>;
11138d779c2SAlejandro Tafalla	vdda-pll-supply = <&pm8953_l7>;
11238d779c2SAlejandro Tafalla	vdda-phy-dpdm-supply = <&pm8953_l13>;
11338d779c2SAlejandro Tafalla
11438d779c2SAlejandro Tafalla	status = "okay";
11538d779c2SAlejandro Tafalla};
11638d779c2SAlejandro Tafalla
11738d779c2SAlejandro Tafalla&i2c_2 {
11838d779c2SAlejandro Tafalla	status = "okay";
11938d779c2SAlejandro Tafalla
12038d779c2SAlejandro Tafalla	speaker_codec: audio-codec@3a {
12138d779c2SAlejandro Tafalla		compatible = "maxim,max98927";
12238d779c2SAlejandro Tafalla		reg = <0x3a>;
12338d779c2SAlejandro Tafalla
12438d779c2SAlejandro Tafalla		reset-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;
12538d779c2SAlejandro Tafalla
12638d779c2SAlejandro Tafalla		vmon-slot-no = <1>;
12738d779c2SAlejandro Tafalla		imon-slot-no = <1>;
128*b6866546SKrzysztof Kozlowski		maxim,interleave-mode;
12938d779c2SAlejandro Tafalla
13038d779c2SAlejandro Tafalla		#sound-dai-cells = <0>;
13138d779c2SAlejandro Tafalla	};
13238d779c2SAlejandro Tafalla};
13338d779c2SAlejandro Tafalla
13438d779c2SAlejandro Tafalla&i2c_3 {
13538d779c2SAlejandro Tafalla	status = "okay";
13638d779c2SAlejandro Tafalla
13738d779c2SAlejandro Tafalla	touchscreen@38 {
13838d779c2SAlejandro Tafalla		compatible = "edt,edt-ft5406";
13938d779c2SAlejandro Tafalla		reg = <0x38>;
14038d779c2SAlejandro Tafalla
14138d779c2SAlejandro Tafalla		interrupt-parent = <&tlmm>;
14238d779c2SAlejandro Tafalla		interrupts = <65 IRQ_TYPE_EDGE_FALLING>;
14338d779c2SAlejandro Tafalla
14438d779c2SAlejandro Tafalla		reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
14538d779c2SAlejandro Tafalla
14638d779c2SAlejandro Tafalla		vcc-supply = <&pm8953_l10>;
14738d779c2SAlejandro Tafalla
14838d779c2SAlejandro Tafalla		touchscreen-size-x = <1080>;
14938d779c2SAlejandro Tafalla		touchscreen-size-y = <2280>;
15038d779c2SAlejandro Tafalla	};
15138d779c2SAlejandro Tafalla};
15238d779c2SAlejandro Tafalla
15338d779c2SAlejandro Tafalla&pm8953_resin {
15438d779c2SAlejandro Tafalla	linux,code = <KEY_VOLUMEDOWN>;
15538d779c2SAlejandro Tafalla	status = "okay";
15638d779c2SAlejandro Tafalla};
15738d779c2SAlejandro Tafalla
15838d779c2SAlejandro Tafalla&pmi8950_wled {
15938d779c2SAlejandro Tafalla	qcom,current-limit-microamp = <20000>;
16038d779c2SAlejandro Tafalla	qcom,num-strings = <2>;
16138d779c2SAlejandro Tafalla
16238d779c2SAlejandro Tafalla	status = "okay";
16338d779c2SAlejandro Tafalla};
16438d779c2SAlejandro Tafalla
16538d779c2SAlejandro Tafalla&rpm_requests {
16638d779c2SAlejandro Tafalla	regulators {
16738d779c2SAlejandro Tafalla		compatible = "qcom,rpm-pm8953-regulators";
16838d779c2SAlejandro Tafalla
16938d779c2SAlejandro Tafalla		vdd_s1-supply = <&vph_pwr>;
17038d779c2SAlejandro Tafalla		vdd_s2-supply = <&vph_pwr>;
17138d779c2SAlejandro Tafalla		vdd_s3-supply = <&vph_pwr>;
17238d779c2SAlejandro Tafalla		vdd_s4-supply = <&vph_pwr>;
17338d779c2SAlejandro Tafalla		vdd_s5-supply = <&vph_pwr>;
17438d779c2SAlejandro Tafalla		vdd_s6-supply = <&vph_pwr>;
17538d779c2SAlejandro Tafalla		vdd_s7-supply = <&vph_pwr>;
17638d779c2SAlejandro Tafalla		vdd_l1-supply = <&pm8953_s3>;
17738d779c2SAlejandro Tafalla		vdd_l2_l3-supply = <&pm8953_s3>;
17838d779c2SAlejandro Tafalla		vdd_l4_l5_l6_l7_l16_l19-supply = <&pm8953_s4>;
17938d779c2SAlejandro Tafalla		vdd_l8_l11_l12_l13_l14_l15-supply = <&vph_pwr>;
18038d779c2SAlejandro Tafalla		vdd_l9_l10_l17_l18_l22-supply = <&vph_pwr>;
18138d779c2SAlejandro Tafalla
18238d779c2SAlejandro Tafalla		pm8953_s1: s1 {
18338d779c2SAlejandro Tafalla			regulator-min-microvolt = <863000>;
18438d779c2SAlejandro Tafalla			regulator-max-microvolt = <1152000>;
18538d779c2SAlejandro Tafalla		};
18638d779c2SAlejandro Tafalla
18738d779c2SAlejandro Tafalla		pm8953_s3: s3 {
18838d779c2SAlejandro Tafalla			regulator-min-microvolt = <1224000>;
18938d779c2SAlejandro Tafalla			regulator-max-microvolt = <1224000>;
19038d779c2SAlejandro Tafalla		};
19138d779c2SAlejandro Tafalla
19238d779c2SAlejandro Tafalla		pm8953_s4: s4 {
19338d779c2SAlejandro Tafalla			regulator-min-microvolt = <1896000>;
19438d779c2SAlejandro Tafalla			regulator-max-microvolt = <2048000>;
19538d779c2SAlejandro Tafalla		};
19638d779c2SAlejandro Tafalla
19738d779c2SAlejandro Tafalla		pm8953_l1: l1 {
19838d779c2SAlejandro Tafalla			regulator-min-microvolt = <1000000>;
19938d779c2SAlejandro Tafalla			regulator-max-microvolt = <1100000>;
20038d779c2SAlejandro Tafalla		};
20138d779c2SAlejandro Tafalla
20238d779c2SAlejandro Tafalla		pm8953_l2: l2 {
20338d779c2SAlejandro Tafalla			regulator-min-microvolt = <975000>;
20438d779c2SAlejandro Tafalla			regulator-max-microvolt = <1225000>;
20538d779c2SAlejandro Tafalla		};
20638d779c2SAlejandro Tafalla
20738d779c2SAlejandro Tafalla		pm8953_l3: l3 {
20838d779c2SAlejandro Tafalla			regulator-min-microvolt = <925000>;
20938d779c2SAlejandro Tafalla			regulator-max-microvolt = <925000>;
21038d779c2SAlejandro Tafalla			regulator-allow-set-load;
21138d779c2SAlejandro Tafalla		};
21238d779c2SAlejandro Tafalla
21338d779c2SAlejandro Tafalla		pm8953_l5: l5 {
21438d779c2SAlejandro Tafalla			regulator-min-microvolt = <1800000>;
21538d779c2SAlejandro Tafalla			regulator-max-microvolt = <1800000>;
21638d779c2SAlejandro Tafalla		};
21738d779c2SAlejandro Tafalla
21838d779c2SAlejandro Tafalla		pm8953_l6: l6 {
21938d779c2SAlejandro Tafalla			regulator-min-microvolt = <1800000>;
22038d779c2SAlejandro Tafalla			regulator-max-microvolt = <1800000>;
22138d779c2SAlejandro Tafalla			regulator-always-on;
22238d779c2SAlejandro Tafalla		};
22338d779c2SAlejandro Tafalla
22438d779c2SAlejandro Tafalla		pm8953_l7: l7 {
22538d779c2SAlejandro Tafalla			regulator-min-microvolt = <1800000>;
22638d779c2SAlejandro Tafalla			regulator-max-microvolt = <1900000>;
22738d779c2SAlejandro Tafalla		};
22838d779c2SAlejandro Tafalla
22938d779c2SAlejandro Tafalla		pm8953_l8: l8 {
23038d779c2SAlejandro Tafalla			regulator-min-microvolt = <2900000>;
23138d779c2SAlejandro Tafalla			regulator-max-microvolt = <2900000>;
23238d779c2SAlejandro Tafalla		};
23338d779c2SAlejandro Tafalla
23438d779c2SAlejandro Tafalla		pm8953_l9: l9 {
23538d779c2SAlejandro Tafalla			regulator-min-microvolt = <3000000>;
23638d779c2SAlejandro Tafalla			regulator-max-microvolt = <3300000>;
23738d779c2SAlejandro Tafalla		};
23838d779c2SAlejandro Tafalla
23938d779c2SAlejandro Tafalla		pm8953_l10: l10 {
24038d779c2SAlejandro Tafalla			regulator-min-microvolt = <2850000>;
24138d779c2SAlejandro Tafalla			regulator-max-microvolt = <2850000>;
24238d779c2SAlejandro Tafalla			regulator-always-on;
24338d779c2SAlejandro Tafalla		};
24438d779c2SAlejandro Tafalla
24538d779c2SAlejandro Tafalla		pm8953_l11: l11 {
24638d779c2SAlejandro Tafalla			regulator-min-microvolt = <2950000>;
24738d779c2SAlejandro Tafalla			regulator-max-microvolt = <2950000>;
24838d779c2SAlejandro Tafalla		};
24938d779c2SAlejandro Tafalla
25038d779c2SAlejandro Tafalla		pm8953_l12: l12 {
25138d779c2SAlejandro Tafalla			regulator-min-microvolt = <1800000>;
25238d779c2SAlejandro Tafalla			regulator-max-microvolt = <2950000>;
25338d779c2SAlejandro Tafalla		};
25438d779c2SAlejandro Tafalla
25538d779c2SAlejandro Tafalla		pm8953_l13: l13 {
25638d779c2SAlejandro Tafalla			regulator-min-microvolt = <3125000>;
25738d779c2SAlejandro Tafalla			regulator-max-microvolt = <3125000>;
25838d779c2SAlejandro Tafalla		};
25938d779c2SAlejandro Tafalla
26038d779c2SAlejandro Tafalla		pm8953_l16: l16 {
26138d779c2SAlejandro Tafalla			regulator-min-microvolt = <1800000>;
26238d779c2SAlejandro Tafalla			regulator-max-microvolt = <1800000>;
26338d779c2SAlejandro Tafalla		};
26438d779c2SAlejandro Tafalla
26538d779c2SAlejandro Tafalla		pm8953_l17: l17 {
26638d779c2SAlejandro Tafalla			regulator-min-microvolt = <2850000>;
26738d779c2SAlejandro Tafalla			regulator-max-microvolt = <2850000>;
26838d779c2SAlejandro Tafalla		};
26938d779c2SAlejandro Tafalla
27038d779c2SAlejandro Tafalla		pm8953_l19: l19 {
27138d779c2SAlejandro Tafalla			regulator-min-microvolt = <1200000>;
27238d779c2SAlejandro Tafalla			regulator-max-microvolt = <1350000>;
27338d779c2SAlejandro Tafalla		};
27438d779c2SAlejandro Tafalla
27538d779c2SAlejandro Tafalla		pm8953_l22: l22 {
27638d779c2SAlejandro Tafalla			regulator-min-microvolt = <2800000>;
27738d779c2SAlejandro Tafalla			regulator-max-microvolt = <2850000>;
27838d779c2SAlejandro Tafalla			regulator-always-on;
27938d779c2SAlejandro Tafalla		};
28038d779c2SAlejandro Tafalla
28138d779c2SAlejandro Tafalla		pm8953_l23: l23 {
28238d779c2SAlejandro Tafalla			regulator-min-microvolt = <975000>;
28338d779c2SAlejandro Tafalla			regulator-max-microvolt = <1225000>;
28438d779c2SAlejandro Tafalla		};
28538d779c2SAlejandro Tafalla	};
28638d779c2SAlejandro Tafalla};
28738d779c2SAlejandro Tafalla
28838d779c2SAlejandro Tafalla&sdhc_1 {
28938d779c2SAlejandro Tafalla	vmmc-supply = <&pm8953_l8>;
29038d779c2SAlejandro Tafalla	vqmmc-supply = <&pm8953_l5>;
29138d779c2SAlejandro Tafalla
29238d779c2SAlejandro Tafalla	status = "okay";
29338d779c2SAlejandro Tafalla};
29438d779c2SAlejandro Tafalla
29538d779c2SAlejandro Tafalla&sdhc_2 {
29638d779c2SAlejandro Tafalla	vmmc-supply = <&pm8953_l11>;
29738d779c2SAlejandro Tafalla	vqmmc-supply = <&pm8953_l12>;
29838d779c2SAlejandro Tafalla
29938d779c2SAlejandro Tafalla	cd-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
30038d779c2SAlejandro Tafalla
30138d779c2SAlejandro Tafalla	pinctrl-names = "default", "sleep";
30238d779c2SAlejandro Tafalla	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
30338d779c2SAlejandro Tafalla	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
30438d779c2SAlejandro Tafalla
30538d779c2SAlejandro Tafalla	status = "okay";
30638d779c2SAlejandro Tafalla};
30738d779c2SAlejandro Tafalla
30838d779c2SAlejandro Tafalla&tlmm {
30938d779c2SAlejandro Tafalla	gpio-reserved-ranges = <0 4>, <16 4>, <135 4>;
31038d779c2SAlejandro Tafalla};
31138d779c2SAlejandro Tafalla
31238d779c2SAlejandro Tafalla&uart_0 {
31338d779c2SAlejandro Tafalla	pinctrl-names = "default";
31438d779c2SAlejandro Tafalla	pinctrl-0 = <&uart_console_active>;
31538d779c2SAlejandro Tafalla
31638d779c2SAlejandro Tafalla	status = "okay";
31738d779c2SAlejandro Tafalla};
31838d779c2SAlejandro Tafalla
31938d779c2SAlejandro Tafalla&usb3 {
32038d779c2SAlejandro Tafalla	status = "okay";
32138d779c2SAlejandro Tafalla};
32238d779c2SAlejandro Tafalla
32338d779c2SAlejandro Tafalla&usb3_dwc3 {
32438d779c2SAlejandro Tafalla	dr_mode = "peripheral";
32538d779c2SAlejandro Tafalla};
326