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