arm64: dts: qcom: msm8992-lg-h815: Initial support for LG G4 (H815)

To make it easier for downstream projects and avoid duplication of work.
Makes the device bootable and enables all buttons, hall sensor, eMMC and SD-Card.

Signed-off-by: Alexander Reimelt <alexander.reimelt@posteo.de>
Link: https://lore.kernel.org/r/20240727201413.114317-3-alexander.reimelt@posteo.de
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
Alexander Reimelt 2024-07-27 20:04:50 +00:00 committed by Bjorn Andersson
parent d2e577267c
commit ed3c955cab
2 changed files with 232 additions and 0 deletions

View File

@ -69,6 +69,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8956-sony-xperia-loire-kugo.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8956-sony-xperia-loire-suzu.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8992-lg-bullhead-rev-10.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8992-lg-bullhead-rev-101.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8992-lg-h815.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8992-msft-lumia-octagon-talkman.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8992-xiaomi-libra.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8994-huawei-angler-rev-101.dtb

View File

@ -0,0 +1,231 @@
// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
/*
* MSM8992 LG G4 (h815) device tree.
*
* Copyright (c) 2024, Alexander Reimelt <alexander.reimelt@posteo.de>
*/
/dts-v1/;
#include "msm8992.dtsi"
#include "pm8994.dtsi"
#include "pmi8994.dtsi"
#include <dt-bindings/leds/common.h>
/* different mapping */
/delete-node/ &cont_splash_mem;
/* disabled downstream */
/delete-node/ &dfps_data_mem;
/ {
model = "LG G4 (H815)";
compatible = "lg,h815", "qcom,msm8992";
chassis-type = "handset";
qcom,msm-id = <0xfb 0x0>;
qcom,pmic-id = <0x10009 0x1000a 0x0 0x0>;
qcom,board-id = <0xb64 0x0>;
/* psci is broken */
/delete-node/ psci;
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
spin-table@6000000 {
reg = <0x0 0x06000000 0x0 0x00001000>;
no-map;
};
ramoops@ff00000 {
compatible = "ramoops";
reg = <0x0 0x0ff00000 0x0 0x00100000>;
console-size = <0x20000>;
pmsg-size = <0x20000>;
record-size = <0x10000>;
ecc-size = <0x10>;
};
cont_splash_mem: fb@3400000 {
reg = <0x0 0x03400000 0x0 0x00c00000>;
no-map;
};
crash_fb_mem: crash-fb@4000000 {
reg = <0x0 0x04000000 0x0 0x00c00000>;
no-map;
};
};
gpio-hall-sensor {
compatible = "gpio-keys";
pinctrl-0 = <&hall_sensor_default>;
pinctrl-names = "default";
label = "Hall Effect Sensor";
event-hall-sensor {
gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
label = "hall effect sensor";
linux,input-type = <EV_SW>;
linux,code = <SW_LID>;
linux,can-disable;
wakeup-source;
};
};
gpio-keys {
compatible = "gpio-keys";
key-vol-up {
label = "volume up";
gpios = <&pm8994_gpios 3 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
wakeup-source;
debounce-interval = <15>;
};
};
};
&CPU0 {
enable-method = "spin-table";
};
&CPU1 {
enable-method = "spin-table";
};
&CPU2 {
enable-method = "spin-table";
};
&CPU3 {
enable-method = "spin-table";
};
&CPU4 {
enable-method = "spin-table";
};
&CPU5 {
enable-method = "spin-table";
};
&pm8994_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
};
&rpm_requests {
regulators-0 {
compatible = "qcom,rpm-pm8994-regulators";
vdd_s3-supply = <&vph_pwr>;
vdd_s4-supply = <&vph_pwr>;
vdd_s5-supply = <&vph_pwr>;
vdd_s7-supply = <&vph_pwr>;
vdd_l1-supply = <&pmi8994_s1>;
vdd_l2_26_28-supply = <&pm8994_s3>;
vdd_l3_11-supply = <&pm8994_s3>;
vdd_l4_27_31-supply = <&pm8994_s3>;
vdd_l5_7-supply = <&pm8994_s5>;
vdd_l6_12_32-supply = <&pm8994_s5>;
vdd_l8_16_30-supply = <&vph_pwr>;
vdd_l9_10_18_22-supply = <&pmi8994_bby>;
vdd_l13_19_23_24-supply = <&pmi8994_bby>;
vdd_l14_15-supply = <&pm8994_s5>;
vdd_l17_29-supply = <&pmi8994_bby>;
vdd_l20_21-supply = <&pmi8994_bby>;
vdd_l25-supply = <&pm8994_s5>;
vdd_lvs1_2-supply = <&pm8994_s4>;
pm8994_s3: s3 {
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1300000>;
};
/* sdhc1 vqmmc and bcm */
pm8994_s4: s4 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-system-load = <325000>;
regulator-allow-set-load;
};
pm8994_s5: s5 {
regulator-min-microvolt = <2150000>;
regulator-max-microvolt = <2150000>;
};
/* sdhc2 vqmmc */
pm8994_l13: l13 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2950000>;
regulator-system-load = <22000>;
regulator-allow-set-load;
};
/* sdhc1 vmmc */
pm8994_l20: l20 {
regulator-min-microvolt = <2950000>;
regulator-max-microvolt = <2950000>;
regulator-system-load = <570000>;
regulator-allow-set-load;
};
/* sdhc2 vmmc */
pm8994_l21: l21 {
regulator-min-microvolt = <2950000>;
regulator-max-microvolt = <2950000>;
regulator-system-load = <800000>;
regulator-allow-set-load;
};
};
regulators-1 {
compatible = "qcom,rpm-pmi8994-regulators";
vdd_s1-supply = <&vph_pwr>;
vdd_bst_byp-supply = <&vph_pwr>;
pmi8994_s1: s1 {
regulator-min-microvolt = <1025000>;
regulator-max-microvolt = <1025000>;
};
/* S2 & S3 - VDD_GFX */
pmi8994_bby: boost-bypass {
regulator-min-microvolt = <3150000>;
regulator-max-microvolt = <3600000>;
};
};
};
&sdhc1 {
mmc-hs400-1_8v;
vmmc-supply = <&pm8994_l20>;
vqmmc-supply = <&pm8994_s4>;
non-removable;
status = "okay";
};
&sdhc2 {
vmmc-supply = <&pm8994_l21>;
vqmmc-supply = <&pm8994_l13>;
cd-gpios = <&pm8994_gpios 8 GPIO_ACTIVE_LOW>;
status = "okay";
};
&tlmm {
hall_sensor_default: hall-sensor-default-state {
pins = "gpio75";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
};