Below pull request for ARM32 DeviceTree updates for v6.7 was posted to late to make it into v6.7, merge it into the branch for v6.8. More Qualcomm Arm32 DeviceTree updates for v6.7 This introduces new DeviceTree source for Microsoft Lumia 640, Microsoft Lumia 640 XL, Nokia Lumia 735, and Nokia Lumia 830, built on MSM8226 and MSM8926. A few stylistic issues are corrected on MSM8974.
327 lines
6.3 KiB
Text
327 lines
6.3 KiB
Text
// SPDX-License-Identifier: BSD-3-Clause
|
|
/*
|
|
* Common Board Device Tree for Microsoft MSM8x26-based Lumias
|
|
*
|
|
* Copyright (c) 2023, Jack Matthews <jm5112356@gmail.com>
|
|
* Copyright (c) 2023, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
|
|
* Copyright (c) 2023, Dominik Kobinski <dominikkobinski314@gmail.com>
|
|
* Copyright (c) 2023, Rayyan Ansari <rayyan@ansari.sh>
|
|
*/
|
|
|
|
#include "qcom-msm8226.dtsi"
|
|
#include "pm8226.dtsi"
|
|
#include <dt-bindings/input/input.h>
|
|
|
|
/*
|
|
* 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 = <KEY_VOLUMEUP>;
|
|
};
|
|
};
|
|
|
|
/*
|
|
* 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_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 = <KEY_VOLUMEDOWN>;
|
|
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";
|
|
};
|
|
|
|
&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;
|
|
};
|
|
};
|
|
};
|