// SPDX-License-Identifier: BSD-3-Clause /* * Common Board Device Tree for Microsoft MSM8x26-based Lumias * * Copyright (c) 2023, Jack Matthews * Copyright (c) 2023, Ivaylo Ivanov * Copyright (c) 2023, Dominik Kobinski * Copyright (c) 2023, Rayyan Ansari */ #include "qcom-msm8226.dtsi" #include "pm8226.dtsi" #include /* * Delete all generic (msm8226.dtsi) reserved * memory mappings which are different on these devices. */ /delete-node/ &smem_region; / { aliases { mmc0 = &sdhc_1; /* eMMC */ mmc1 = &sdhc_2; /* microSD */ display0 = &framebuffer; }; chosen { #address-cells = <1>; #size-cells = <1>; ranges; stdout-path = "display0"; framebuffer: framebuffer@3200000 { compatible = "simple-framebuffer"; reg = <0x3200000 0x800000>; format = "a8r8g8b8"; width = <720>; height = <1280>; stride = <(720 * 4)>; clocks = <&mmcc MDSS_AHB_CLK>, <&mmcc MDSS_AXI_CLK>, <&mmcc MDSS_BYTE0_CLK>, <&mmcc MDSS_MDP_CLK>, <&mmcc MDSS_PCLK0_CLK>, <&mmcc MDSS_VSYNC_CLK>; power-domains = <&mmcc MDSS_GDSC>; }; }; gpio_keys: gpio-keys { compatible = "gpio-keys"; pinctrl-0 = <&gpio_keys_default>; pinctrl-names = "default"; label = "GPIO Buttons"; key-volume-up { label = "Volume Up"; gpios = <&tlmm 106 GPIO_ACTIVE_LOW>; linux,code = ; }; }; /* * This device being a WP platform has a different * memory layout than other Android based devices. * This smem memory region is directly copied from * the original UEFI firmware. */ reserved-memory { display_reserved: framebuffer@3200000 { reg = <0x03200000 0x800000>; no-map; }; smem_region: smem@fa00000 { reg = <0x0fa00000 0x100000>; no-map; }; }; }; &blsp1_i2c2 { status = "okay"; magnetometer: magnetometer@c { compatible = "asahi-kasei,ak09911"; reg = <0x0c>; vdd-supply = <&pm8226_l15>; vid-supply = <&pm8226_l6>; }; accelerometer: accelerometer@1e { compatible = "kionix,kx022-1020"; reg = <0x1e>; interrupts-extended = <&tlmm 63 IRQ_TYPE_EDGE_RISING>; vdd-supply = <&pm8226_l15>; vddio-supply = <&pm8226_l6>; mount-matrix = "1", "0", "0", "0", "-1", "0", "0", "0", "1"; }; }; &blsp1_i2c5 { status = "okay"; touchscreen: touchscreen@4b { compatible = "syna,rmi4-i2c"; reg = <0x4b>; interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>; vdd-supply = <&pm8226_l15>; vio-supply = <&pm8226_l6>; pinctrl-0 = <&touchscreen_default>; pinctrl-names = "default"; #address-cells = <1>; #size-cells = <0>; rmi4-f01@1 { reg = <0x01>; syna,nosleep-mode = <1>; }; rmi4-f11@11 { reg = <0x11>; syna,sensor-type = <1>; }; }; }; &blsp1_uart3 { status = "okay"; }; &pm8226_resin { linux,code = ; status = "okay"; }; &pm8226_vib { status = "okay"; }; &rpm_requests { regulators { compatible = "qcom,rpm-pm8226-regulators"; /* These values were taken from the original firmware DSDT */ pm8226_s1: s1 { regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1050000>; }; pm8226_s3: s3 { regulator-min-microvolt = <1300000>; regulator-max-microvolt = <1300000>; }; pm8226_s4: s4 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <2100000>; }; pm8226_s5: s5 { regulator-min-microvolt = <1150000>; regulator-max-microvolt = <1150000>; }; pm8226_l3: l3 { regulator-min-microvolt = <750000>; regulator-max-microvolt = <1150000>; }; pm8226_l4: l4 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; }; pm8226_l5: l5 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; }; pm8226_l6: l6 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; pm8226_l7: l7 { regulator-min-microvolt = <1850000>; regulator-max-microvolt = <1850000>; }; pm8226_l8: l8 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; pm8226_l9: l9 { regulator-min-microvolt = <2050000>; regulator-max-microvolt = <2050000>; }; pm8226_l10: l10 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; pm8226_l12: l12 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; pm8226_l14: l14 { regulator-min-microvolt = <2750000>; regulator-max-microvolt = <2750000>; }; pm8226_l15: l15 { regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; }; pm8226_l16: l16 { regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; }; pm8226_l17: l17 { regulator-min-microvolt = <2950000>; regulator-max-microvolt = <2950000>; regulator-system-load = <200000>; regulator-allow-set-load; }; pm8226_l18: l18 { regulator-min-microvolt = <2950000>; regulator-max-microvolt = <2950000>; regulator-system-load = <200000>; regulator-allow-set-load; }; pm8226_l19: l19 { regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; }; pm8226_l20: l20 { regulator-min-microvolt = <3075000>; regulator-max-microvolt = <3075000>; }; pm8226_l21: l21 { regulator-min-microvolt = <1850000>; regulator-max-microvolt = <2950000>; }; pm8226_l22: l22 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; pm8226_l23: l23 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; pm8226_l24: l24 { regulator-min-microvolt = <1300000>; regulator-max-microvolt = <1300000>; }; pm8226_l25: l25 { regulator-min-microvolt = <1775000>; regulator-max-microvolt = <2075000>; }; pm8226_l27: l27 { regulator-min-microvolt = <2050000>; regulator-max-microvolt = <2050000>; }; pm8226_l28: l28 { regulator-min-microvolt = <2000000>; regulator-max-microvolt = <3000000>; }; }; }; &sdhc_1 { vmmc-supply = <&pm8226_l17>; vqmmc-supply = <&pm8226_l6>; status = "okay"; }; &sdhc_2 { vmmc-supply = <&pm8226_l18>; vqmmc-supply = <&pm8226_l21>; status = "okay"; }; &smbb { status = "okay"; }; &usb { extcon = <&smbb>; dr_mode = "peripheral"; status = "okay"; }; &usb_hs_phy { extcon = <&smbb>; v1p8-supply = <&pm8226_l10>; v3p3-supply = <&pm8226_l20>; }; &tlmm { gpio_keys_default: gpio-keys-default-state { pins = "gpio106", "gpio107", "gpio108"; function = "gpio"; drive-strength = <2>; bias-pull-up; }; touchscreen_default: touchscreen-default-state { irq-pins { pins = "gpio17"; function = "gpio"; drive-strength = <8>; bias-pull-up; }; reset-pins { pins = "gpio16"; function = "gpio"; drive-strength = <8>; bias-disable; output-high; }; }; };