18d13bc63SEmmanuel Vadot// SPDX-License-Identifier: BSD-3-Clause 28d13bc63SEmmanuel Vadot/* 38d13bc63SEmmanuel Vadot * Common Board Device Tree for Microsoft MSM8x26-based Lumias 48d13bc63SEmmanuel Vadot * 58d13bc63SEmmanuel Vadot * Copyright (c) 2023, Jack Matthews <jm5112356@gmail.com> 68d13bc63SEmmanuel Vadot * Copyright (c) 2023, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com> 78d13bc63SEmmanuel Vadot * Copyright (c) 2023, Dominik Kobinski <dominikkobinski314@gmail.com> 88d13bc63SEmmanuel Vadot * Copyright (c) 2023, Rayyan Ansari <rayyan@ansari.sh> 98d13bc63SEmmanuel Vadot */ 108d13bc63SEmmanuel Vadot 118d13bc63SEmmanuel Vadot#include "qcom-msm8226.dtsi" 128d13bc63SEmmanuel Vadot#include "pm8226.dtsi" 138d13bc63SEmmanuel Vadot#include <dt-bindings/input/input.h> 148d13bc63SEmmanuel Vadot 158d13bc63SEmmanuel Vadot/* 168d13bc63SEmmanuel Vadot * Delete all generic (msm8226.dtsi) reserved 178d13bc63SEmmanuel Vadot * memory mappings which are different on these devices. 188d13bc63SEmmanuel Vadot */ 198d13bc63SEmmanuel Vadot/delete-node/ &smem_region; 208d13bc63SEmmanuel Vadot 218d13bc63SEmmanuel Vadot/ { 228d13bc63SEmmanuel Vadot aliases { 238d13bc63SEmmanuel Vadot mmc0 = &sdhc_1; /* eMMC */ 248d13bc63SEmmanuel Vadot mmc1 = &sdhc_2; /* microSD */ 258d13bc63SEmmanuel Vadot display0 = &framebuffer; 268d13bc63SEmmanuel Vadot }; 278d13bc63SEmmanuel Vadot 288d13bc63SEmmanuel Vadot chosen { 298d13bc63SEmmanuel Vadot #address-cells = <1>; 308d13bc63SEmmanuel Vadot #size-cells = <1>; 318d13bc63SEmmanuel Vadot ranges; 328d13bc63SEmmanuel Vadot 338d13bc63SEmmanuel Vadot stdout-path = "display0"; 348d13bc63SEmmanuel Vadot 358d13bc63SEmmanuel Vadot framebuffer: framebuffer@3200000 { 368d13bc63SEmmanuel Vadot compatible = "simple-framebuffer"; 378d13bc63SEmmanuel Vadot reg = <0x3200000 0x800000>; 388d13bc63SEmmanuel Vadot format = "a8r8g8b8"; 398d13bc63SEmmanuel Vadot width = <720>; 408d13bc63SEmmanuel Vadot height = <1280>; 418d13bc63SEmmanuel Vadot stride = <(720 * 4)>; 428d13bc63SEmmanuel Vadot 438d13bc63SEmmanuel Vadot clocks = <&mmcc MDSS_AHB_CLK>, 448d13bc63SEmmanuel Vadot <&mmcc MDSS_AXI_CLK>, 458d13bc63SEmmanuel Vadot <&mmcc MDSS_BYTE0_CLK>, 468d13bc63SEmmanuel Vadot <&mmcc MDSS_MDP_CLK>, 478d13bc63SEmmanuel Vadot <&mmcc MDSS_PCLK0_CLK>, 488d13bc63SEmmanuel Vadot <&mmcc MDSS_VSYNC_CLK>; 498d13bc63SEmmanuel Vadot power-domains = <&mmcc MDSS_GDSC>; 508d13bc63SEmmanuel Vadot }; 518d13bc63SEmmanuel Vadot }; 528d13bc63SEmmanuel Vadot 538d13bc63SEmmanuel Vadot gpio_keys: gpio-keys { 548d13bc63SEmmanuel Vadot compatible = "gpio-keys"; 558d13bc63SEmmanuel Vadot 568d13bc63SEmmanuel Vadot pinctrl-0 = <&gpio_keys_default>; 578d13bc63SEmmanuel Vadot pinctrl-names = "default"; 588d13bc63SEmmanuel Vadot 598d13bc63SEmmanuel Vadot label = "GPIO Buttons"; 608d13bc63SEmmanuel Vadot 618d13bc63SEmmanuel Vadot key-volume-up { 628d13bc63SEmmanuel Vadot label = "Volume Up"; 638d13bc63SEmmanuel Vadot gpios = <&tlmm 106 GPIO_ACTIVE_LOW>; 648d13bc63SEmmanuel Vadot linux,code = <KEY_VOLUMEUP>; 658d13bc63SEmmanuel Vadot }; 668d13bc63SEmmanuel Vadot }; 678d13bc63SEmmanuel Vadot 688d13bc63SEmmanuel Vadot /* 698d13bc63SEmmanuel Vadot * This device being a WP platform has a different 708d13bc63SEmmanuel Vadot * memory layout than other Android based devices. 718d13bc63SEmmanuel Vadot * This smem memory region is directly copied from 728d13bc63SEmmanuel Vadot * the original UEFI firmware. 738d13bc63SEmmanuel Vadot */ 748d13bc63SEmmanuel Vadot reserved-memory { 758d13bc63SEmmanuel Vadot display_reserved: framebuffer@3200000 { 768d13bc63SEmmanuel Vadot reg = <0x03200000 0x800000>; 778d13bc63SEmmanuel Vadot no-map; 788d13bc63SEmmanuel Vadot }; 798d13bc63SEmmanuel Vadot 808d13bc63SEmmanuel Vadot smem_region: smem@fa00000 { 818d13bc63SEmmanuel Vadot reg = <0x0fa00000 0x100000>; 828d13bc63SEmmanuel Vadot no-map; 838d13bc63SEmmanuel Vadot }; 848d13bc63SEmmanuel Vadot }; 858d13bc63SEmmanuel Vadot}; 868d13bc63SEmmanuel Vadot 87*b2d2a78aSEmmanuel Vadot&blsp1_i2c2 { 88*b2d2a78aSEmmanuel Vadot status = "okay"; 89*b2d2a78aSEmmanuel Vadot 90*b2d2a78aSEmmanuel Vadot magnetometer: magnetometer@c { 91*b2d2a78aSEmmanuel Vadot compatible = "asahi-kasei,ak09911"; 92*b2d2a78aSEmmanuel Vadot reg = <0x0c>; 93*b2d2a78aSEmmanuel Vadot 94*b2d2a78aSEmmanuel Vadot vdd-supply = <&pm8226_l15>; 95*b2d2a78aSEmmanuel Vadot vid-supply = <&pm8226_l6>; 96*b2d2a78aSEmmanuel Vadot }; 97*b2d2a78aSEmmanuel Vadot 98*b2d2a78aSEmmanuel Vadot accelerometer: accelerometer@1e { 99*b2d2a78aSEmmanuel Vadot compatible = "kionix,kx022-1020"; 100*b2d2a78aSEmmanuel Vadot reg = <0x1e>; 101*b2d2a78aSEmmanuel Vadot 102*b2d2a78aSEmmanuel Vadot interrupts-extended = <&tlmm 63 IRQ_TYPE_EDGE_RISING>; 103*b2d2a78aSEmmanuel Vadot 104*b2d2a78aSEmmanuel Vadot vdd-supply = <&pm8226_l15>; 105*b2d2a78aSEmmanuel Vadot vddio-supply = <&pm8226_l6>; 106*b2d2a78aSEmmanuel Vadot 107*b2d2a78aSEmmanuel Vadot mount-matrix = "1", "0", "0", 108*b2d2a78aSEmmanuel Vadot "0", "-1", "0", 109*b2d2a78aSEmmanuel Vadot "0", "0", "1"; 110*b2d2a78aSEmmanuel Vadot }; 111*b2d2a78aSEmmanuel Vadot}; 112*b2d2a78aSEmmanuel Vadot 1138d13bc63SEmmanuel Vadot&blsp1_i2c5 { 1148d13bc63SEmmanuel Vadot status = "okay"; 1158d13bc63SEmmanuel Vadot 1168d13bc63SEmmanuel Vadot touchscreen: touchscreen@4b { 1178d13bc63SEmmanuel Vadot compatible = "syna,rmi4-i2c"; 1188d13bc63SEmmanuel Vadot reg = <0x4b>; 1198d13bc63SEmmanuel Vadot 1208d13bc63SEmmanuel Vadot interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>; 1218d13bc63SEmmanuel Vadot vdd-supply = <&pm8226_l15>; 1228d13bc63SEmmanuel Vadot vio-supply = <&pm8226_l6>; 1238d13bc63SEmmanuel Vadot 1248d13bc63SEmmanuel Vadot pinctrl-0 = <&touchscreen_default>; 1258d13bc63SEmmanuel Vadot pinctrl-names = "default"; 1268d13bc63SEmmanuel Vadot 1278d13bc63SEmmanuel Vadot #address-cells = <1>; 1288d13bc63SEmmanuel Vadot #size-cells = <0>; 1298d13bc63SEmmanuel Vadot 1308d13bc63SEmmanuel Vadot rmi4-f01@1 { 1318d13bc63SEmmanuel Vadot reg = <0x01>; 1328d13bc63SEmmanuel Vadot syna,nosleep-mode = <1>; 1338d13bc63SEmmanuel Vadot }; 1348d13bc63SEmmanuel Vadot 1358d13bc63SEmmanuel Vadot rmi4-f11@11 { 1368d13bc63SEmmanuel Vadot reg = <0x11>; 1378d13bc63SEmmanuel Vadot syna,sensor-type = <1>; 1388d13bc63SEmmanuel Vadot }; 1398d13bc63SEmmanuel Vadot }; 1408d13bc63SEmmanuel Vadot}; 1418d13bc63SEmmanuel Vadot 1428d13bc63SEmmanuel Vadot&blsp1_uart3 { 1438d13bc63SEmmanuel Vadot status = "okay"; 1448d13bc63SEmmanuel Vadot}; 1458d13bc63SEmmanuel Vadot 1468d13bc63SEmmanuel Vadot&pm8226_resin { 1478d13bc63SEmmanuel Vadot linux,code = <KEY_VOLUMEDOWN>; 1488d13bc63SEmmanuel Vadot status = "okay"; 1498d13bc63SEmmanuel Vadot}; 1508d13bc63SEmmanuel Vadot 1518d13bc63SEmmanuel Vadot&pm8226_vib { 1528d13bc63SEmmanuel Vadot status = "okay"; 1538d13bc63SEmmanuel Vadot}; 1548d13bc63SEmmanuel Vadot 1558d13bc63SEmmanuel Vadot&rpm_requests { 1568d13bc63SEmmanuel Vadot regulators { 1578d13bc63SEmmanuel Vadot compatible = "qcom,rpm-pm8226-regulators"; 1588d13bc63SEmmanuel Vadot 1598d13bc63SEmmanuel Vadot /* These values were taken from the original firmware DSDT */ 1608d13bc63SEmmanuel Vadot pm8226_s1: s1 { 1618d13bc63SEmmanuel Vadot regulator-min-microvolt = <1050000>; 1628d13bc63SEmmanuel Vadot regulator-max-microvolt = <1050000>; 1638d13bc63SEmmanuel Vadot }; 1648d13bc63SEmmanuel Vadot 1658d13bc63SEmmanuel Vadot pm8226_s3: s3 { 1668d13bc63SEmmanuel Vadot regulator-min-microvolt = <1300000>; 1678d13bc63SEmmanuel Vadot regulator-max-microvolt = <1300000>; 1688d13bc63SEmmanuel Vadot }; 1698d13bc63SEmmanuel Vadot 1708d13bc63SEmmanuel Vadot pm8226_s4: s4 { 1718d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 1728d13bc63SEmmanuel Vadot regulator-max-microvolt = <2100000>; 1738d13bc63SEmmanuel Vadot }; 1748d13bc63SEmmanuel Vadot 1758d13bc63SEmmanuel Vadot pm8226_s5: s5 { 1768d13bc63SEmmanuel Vadot regulator-min-microvolt = <1150000>; 1778d13bc63SEmmanuel Vadot regulator-max-microvolt = <1150000>; 1788d13bc63SEmmanuel Vadot }; 1798d13bc63SEmmanuel Vadot 1808d13bc63SEmmanuel Vadot pm8226_l3: l3 { 1818d13bc63SEmmanuel Vadot regulator-min-microvolt = <750000>; 1828d13bc63SEmmanuel Vadot regulator-max-microvolt = <1150000>; 1838d13bc63SEmmanuel Vadot }; 1848d13bc63SEmmanuel Vadot 1858d13bc63SEmmanuel Vadot pm8226_l4: l4 { 1868d13bc63SEmmanuel Vadot regulator-min-microvolt = <1200000>; 1878d13bc63SEmmanuel Vadot regulator-max-microvolt = <1200000>; 1888d13bc63SEmmanuel Vadot }; 1898d13bc63SEmmanuel Vadot 1908d13bc63SEmmanuel Vadot pm8226_l5: l5 { 1918d13bc63SEmmanuel Vadot regulator-min-microvolt = <1200000>; 1928d13bc63SEmmanuel Vadot regulator-max-microvolt = <1200000>; 1938d13bc63SEmmanuel Vadot }; 1948d13bc63SEmmanuel Vadot 1958d13bc63SEmmanuel Vadot pm8226_l6: l6 { 1968d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 1978d13bc63SEmmanuel Vadot regulator-max-microvolt = <1800000>; 1988d13bc63SEmmanuel Vadot }; 1998d13bc63SEmmanuel Vadot 2008d13bc63SEmmanuel Vadot pm8226_l7: l7 { 2018d13bc63SEmmanuel Vadot regulator-min-microvolt = <1850000>; 2028d13bc63SEmmanuel Vadot regulator-max-microvolt = <1850000>; 2038d13bc63SEmmanuel Vadot }; 2048d13bc63SEmmanuel Vadot 2058d13bc63SEmmanuel Vadot pm8226_l8: l8 { 2068d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 2078d13bc63SEmmanuel Vadot regulator-max-microvolt = <1800000>; 2088d13bc63SEmmanuel Vadot regulator-always-on; 2098d13bc63SEmmanuel Vadot }; 2108d13bc63SEmmanuel Vadot 2118d13bc63SEmmanuel Vadot pm8226_l9: l9 { 2128d13bc63SEmmanuel Vadot regulator-min-microvolt = <2050000>; 2138d13bc63SEmmanuel Vadot regulator-max-microvolt = <2050000>; 2148d13bc63SEmmanuel Vadot }; 2158d13bc63SEmmanuel Vadot 2168d13bc63SEmmanuel Vadot pm8226_l10: l10 { 2178d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 2188d13bc63SEmmanuel Vadot regulator-max-microvolt = <1800000>; 2198d13bc63SEmmanuel Vadot }; 2208d13bc63SEmmanuel Vadot 2218d13bc63SEmmanuel Vadot pm8226_l12: l12 { 2228d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 2238d13bc63SEmmanuel Vadot regulator-max-microvolt = <1800000>; 2248d13bc63SEmmanuel Vadot }; 2258d13bc63SEmmanuel Vadot 2268d13bc63SEmmanuel Vadot pm8226_l14: l14 { 2278d13bc63SEmmanuel Vadot regulator-min-microvolt = <2750000>; 2288d13bc63SEmmanuel Vadot regulator-max-microvolt = <2750000>; 2298d13bc63SEmmanuel Vadot }; 2308d13bc63SEmmanuel Vadot 2318d13bc63SEmmanuel Vadot pm8226_l15: l15 { 2328d13bc63SEmmanuel Vadot regulator-min-microvolt = <2850000>; 2338d13bc63SEmmanuel Vadot regulator-max-microvolt = <2850000>; 2348d13bc63SEmmanuel Vadot }; 2358d13bc63SEmmanuel Vadot 2368d13bc63SEmmanuel Vadot pm8226_l16: l16 { 2378d13bc63SEmmanuel Vadot regulator-min-microvolt = <3000000>; 2388d13bc63SEmmanuel Vadot regulator-max-microvolt = <3000000>; 2398d13bc63SEmmanuel Vadot }; 2408d13bc63SEmmanuel Vadot 2418d13bc63SEmmanuel Vadot pm8226_l17: l17 { 2428d13bc63SEmmanuel Vadot regulator-min-microvolt = <2950000>; 2438d13bc63SEmmanuel Vadot regulator-max-microvolt = <2950000>; 2448d13bc63SEmmanuel Vadot regulator-system-load = <200000>; 2458d13bc63SEmmanuel Vadot regulator-allow-set-load; 2468d13bc63SEmmanuel Vadot }; 2478d13bc63SEmmanuel Vadot 2488d13bc63SEmmanuel Vadot pm8226_l18: l18 { 2498d13bc63SEmmanuel Vadot regulator-min-microvolt = <2950000>; 2508d13bc63SEmmanuel Vadot regulator-max-microvolt = <2950000>; 2518d13bc63SEmmanuel Vadot regulator-system-load = <200000>; 2528d13bc63SEmmanuel Vadot regulator-allow-set-load; 2538d13bc63SEmmanuel Vadot }; 2548d13bc63SEmmanuel Vadot 2558d13bc63SEmmanuel Vadot pm8226_l19: l19 { 2568d13bc63SEmmanuel Vadot regulator-min-microvolt = <2850000>; 2578d13bc63SEmmanuel Vadot regulator-max-microvolt = <2850000>; 2588d13bc63SEmmanuel Vadot }; 2598d13bc63SEmmanuel Vadot 2608d13bc63SEmmanuel Vadot pm8226_l20: l20 { 2618d13bc63SEmmanuel Vadot regulator-min-microvolt = <3075000>; 2628d13bc63SEmmanuel Vadot regulator-max-microvolt = <3075000>; 2638d13bc63SEmmanuel Vadot }; 2648d13bc63SEmmanuel Vadot 2658d13bc63SEmmanuel Vadot pm8226_l21: l21 { 2668d13bc63SEmmanuel Vadot regulator-min-microvolt = <1850000>; 2678d13bc63SEmmanuel Vadot regulator-max-microvolt = <2950000>; 2688d13bc63SEmmanuel Vadot }; 2698d13bc63SEmmanuel Vadot 2708d13bc63SEmmanuel Vadot pm8226_l22: l22 { 2718d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 2728d13bc63SEmmanuel Vadot regulator-max-microvolt = <1800000>; 2738d13bc63SEmmanuel Vadot }; 2748d13bc63SEmmanuel Vadot 2758d13bc63SEmmanuel Vadot pm8226_l23: l23 { 2768d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 2778d13bc63SEmmanuel Vadot regulator-max-microvolt = <1800000>; 2788d13bc63SEmmanuel Vadot }; 2798d13bc63SEmmanuel Vadot 2808d13bc63SEmmanuel Vadot pm8226_l24: l24 { 2818d13bc63SEmmanuel Vadot regulator-min-microvolt = <1300000>; 2828d13bc63SEmmanuel Vadot regulator-max-microvolt = <1300000>; 2838d13bc63SEmmanuel Vadot }; 2848d13bc63SEmmanuel Vadot 2858d13bc63SEmmanuel Vadot pm8226_l25: l25 { 2868d13bc63SEmmanuel Vadot regulator-min-microvolt = <1775000>; 2878d13bc63SEmmanuel Vadot regulator-max-microvolt = <2075000>; 2888d13bc63SEmmanuel Vadot }; 2898d13bc63SEmmanuel Vadot 2908d13bc63SEmmanuel Vadot pm8226_l27: l27 { 2918d13bc63SEmmanuel Vadot regulator-min-microvolt = <2050000>; 2928d13bc63SEmmanuel Vadot regulator-max-microvolt = <2050000>; 2938d13bc63SEmmanuel Vadot }; 2948d13bc63SEmmanuel Vadot 2958d13bc63SEmmanuel Vadot pm8226_l28: l28 { 2968d13bc63SEmmanuel Vadot regulator-min-microvolt = <2000000>; 2978d13bc63SEmmanuel Vadot regulator-max-microvolt = <3000000>; 2988d13bc63SEmmanuel Vadot }; 2998d13bc63SEmmanuel Vadot }; 3008d13bc63SEmmanuel Vadot}; 3018d13bc63SEmmanuel Vadot 3028d13bc63SEmmanuel Vadot&sdhc_1 { 3038d13bc63SEmmanuel Vadot vmmc-supply = <&pm8226_l17>; 3048d13bc63SEmmanuel Vadot vqmmc-supply = <&pm8226_l6>; 3058d13bc63SEmmanuel Vadot 3068d13bc63SEmmanuel Vadot status = "okay"; 3078d13bc63SEmmanuel Vadot}; 3088d13bc63SEmmanuel Vadot 3098d13bc63SEmmanuel Vadot&sdhc_2 { 3108d13bc63SEmmanuel Vadot vmmc-supply = <&pm8226_l18>; 3118d13bc63SEmmanuel Vadot vqmmc-supply = <&pm8226_l21>; 3128d13bc63SEmmanuel Vadot 3138d13bc63SEmmanuel Vadot status = "okay"; 3148d13bc63SEmmanuel Vadot}; 3158d13bc63SEmmanuel Vadot 3160e8011faSEmmanuel Vadot&smbb { 3170e8011faSEmmanuel Vadot status = "okay"; 3180e8011faSEmmanuel Vadot}; 3190e8011faSEmmanuel Vadot 3208d13bc63SEmmanuel Vadot&usb { 3218d13bc63SEmmanuel Vadot extcon = <&smbb>; 3228d13bc63SEmmanuel Vadot dr_mode = "peripheral"; 3238d13bc63SEmmanuel Vadot 3248d13bc63SEmmanuel Vadot status = "okay"; 3258d13bc63SEmmanuel Vadot}; 3268d13bc63SEmmanuel Vadot 3278d13bc63SEmmanuel Vadot&usb_hs_phy { 3288d13bc63SEmmanuel Vadot extcon = <&smbb>; 3298d13bc63SEmmanuel Vadot v1p8-supply = <&pm8226_l10>; 3308d13bc63SEmmanuel Vadot v3p3-supply = <&pm8226_l20>; 3318d13bc63SEmmanuel Vadot}; 3328d13bc63SEmmanuel Vadot 3338d13bc63SEmmanuel Vadot&tlmm { 3348d13bc63SEmmanuel Vadot gpio_keys_default: gpio-keys-default-state { 3358d13bc63SEmmanuel Vadot pins = "gpio106", "gpio107", "gpio108"; 3368d13bc63SEmmanuel Vadot function = "gpio"; 3378d13bc63SEmmanuel Vadot drive-strength = <2>; 3388d13bc63SEmmanuel Vadot bias-pull-up; 3398d13bc63SEmmanuel Vadot }; 3408d13bc63SEmmanuel Vadot 3418d13bc63SEmmanuel Vadot touchscreen_default: touchscreen-default-state { 3428d13bc63SEmmanuel Vadot irq-pins { 3438d13bc63SEmmanuel Vadot pins = "gpio17"; 3448d13bc63SEmmanuel Vadot function = "gpio"; 3458d13bc63SEmmanuel Vadot drive-strength = <8>; 3468d13bc63SEmmanuel Vadot bias-pull-up; 3478d13bc63SEmmanuel Vadot }; 3488d13bc63SEmmanuel Vadot 3498d13bc63SEmmanuel Vadot reset-pins { 3508d13bc63SEmmanuel Vadot pins = "gpio16"; 3518d13bc63SEmmanuel Vadot function = "gpio"; 3528d13bc63SEmmanuel Vadot drive-strength = <8>; 3538d13bc63SEmmanuel Vadot bias-disable; 3548d13bc63SEmmanuel Vadot output-high; 3558d13bc63SEmmanuel Vadot }; 3568d13bc63SEmmanuel Vadot }; 3578d13bc63SEmmanuel Vadot}; 358