Files
msm-5.15/arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi
Marijn Suijten 141d87977b arm64: dts: qcom: sm8250-edo: Panel framebuffer is 2.5k instead of 4k
[ Upstream commit 223ce29c8b7e5b00f01a68387aabeefd77d97f06 ]

The framebuffer configuration for edo pdx203, written in edo dtsi (which
is overwritten in pdx206 dts for its smaller panel) has to use a
1096x2560 configuration as this is what the panel (and framebuffer area)
has been initialized to.  Downstream userspace also has access to (and
uses) this 2.5k mode by default, and only switches the panel to 4k when
requested.

This is similar to commit be8de06dc397 ("arm64: dts: qcom:
sm8150-kumano: Panel framebuffer is 2.5k instead of 4k") which fixed the
same for the previous generation Sony platform.

Fixes: 69cdb97ef6 ("arm64: dts: qcom: sm8250: Add support for SONY Xperia 1 II / 5 II (Edo platform)")
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230606211418.587676-1-marijn.suijten@somainline.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-07-23 13:47:07 +02:00

644 lines
14 KiB
Plaintext

// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
*/
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sm8250.dtsi"
#include "pm8150.dtsi"
#include "pm8150b.dtsi"
#include "pm8150l.dtsi"
#include "pm8009.dtsi"
/delete-node/ &adsp_mem;
/delete-node/ &spss_mem;
/delete-node/ &cdsp_secure_heap;
/ {
qcom,msm-id = <356 0x20001>; /* SM8250 v2.1 */
qcom,board-id = <0x10008 0>;
chosen {
#address-cells = <2>;
#size-cells = <2>;
ranges;
framebuffer: framebuffer@9c000000 {
compatible = "simple-framebuffer";
reg = <0 0x9c000000 0 0x2300000>;
/* pdx203 BL initializes in 2.5k mode, not 4k */
width = <1096>;
height = <2560>;
stride = <(1096 * 4)>;
format = "a8r8g8b8";
/*
* That's a lot of clocks, but it's necessary due
* to unused clk cleanup & no panel driver yet..
*/
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
<&gcc GCC_DISP_HF_AXI_CLK>,
<&gcc GCC_DISP_SF_AXI_CLK>,
<&dispcc DISP_CC_MDSS_VSYNC_CLK>,
<&dispcc DISP_CC_MDSS_MDP_CLK>,
<&dispcc DISP_CC_MDSS_BYTE0_CLK>,
<&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
<&dispcc DISP_CC_MDSS_PCLK0_CLK>,
<&dispcc DISP_CC_MDSS_ESC0_CLK>;
power-domains = <&dispcc MDSS_GDSC>;
};
};
gpio_keys: gpio-keys {
compatible = "gpio-keys";
/*
* Camera focus (light press) and camera snapshot (full press)
* seem not to work properly.. Adding the former one stalls the CPU
* and the latter kills the volume down key for whatever reason. In any
* case, they are both on &pm8150b_gpios: camera focus(2), camera snapshot(1).
*/
vol-down {
label = "Volume Down";
linux,code = <KEY_VOLUMEDOWN>;
gpios = <&pm8150_gpios 1 GPIO_ACTIVE_LOW>;
debounce-interval = <15>;
linux,can-disable;
gpio-key,wakeup;
};
};
vph_pwr: vph-pwr-regulator {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
};
/* S6c is really ebi.lvl but it's there for supply map completeness sake. */
vreg_s6c_0p88: smpc6-regulator {
compatible = "regulator-fixed";
regulator-name = "vreg_s6c_0p88";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <880000>;
regulator-always-on;
vin-supply = <&vph_pwr>;
};
reserved-memory {
adsp_mem: memory@8a100000 {
reg = <0x0 0x8a100000 0x0 0x2500000>;
no-map;
};
spss_mem: memory@8c600000 {
reg = <0x0 0x8c600000 0x0 0x100000>;
no-map;
};
cdsp_secure_heap: memory@8c700000 {
reg = <0x0 0x8c700000 0x0 0x4600000>;
no-map;
};
cont_splash_mem: memory@9c000000 {
reg = <0x0 0x9c000000 0x0 0x2300000>;
no-map;
};
ramoops@ffc00000 {
compatible = "ramoops";
reg = <0x0 0xffc00000 0x0 0x100000>;
record-size = <0x1000>;
console-size = <0x40000>;
msg-size = <0x20000 0x20000>;
ecc-size = <16>;
no-map;
};
};
};
&adsp {
status = "okay";
};
&apps_rsc {
pm8150-rpmh-regulators {
compatible = "qcom,pm8150-rpmh-regulators";
qcom,pmic-id = "a";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
vdd-s6-supply = <&vph_pwr>;
vdd-s7-supply = <&vph_pwr>;
vdd-s8-supply = <&vph_pwr>;
vdd-s9-supply = <&vph_pwr>;
vdd-s10-supply = <&vph_pwr>;
vdd-l1-l8-l11-supply = <&vreg_s6c_0p88>;
vdd-l2-l10-supply = <&vreg_bob>;
vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p6>;
vdd-l6-l9-supply = <&vreg_s8c_1p2>;
vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
vdd-l13-l16-l17-supply = <&vreg_bob>;
/* (S1+S2+S3) - cx.lvl (ARC) */
vreg_s4a_1p8: smps4 {
regulator-name = "vreg_s4a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1920000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s5a_1p9: smps5 {
regulator-name = "vreg_s5a_1p9";
regulator-min-microvolt = <1824000>;
regulator-max-microvolt = <2040000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s6a_0p6: smps6 {
regulator-name = "vreg_s6a_0p6";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1128000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2a_3p1: ldo2 {
regulator-name = "vreg_l2a_3p1";
regulator-min-microvolt = <3072000>;
regulator-max-microvolt = <3072000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3a_0p9: ldo3 {
regulator-name = "vreg_l3a_0p9";
regulator-min-microvolt = <928000>;
regulator-max-microvolt = <932000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
/* L4 - lmx.lvl (ARC) */
vreg_l5a_0p88: ldo5 {
regulator-name = "vreg_l5a_0p88";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <880000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6a_1p2: ldo6 {
regulator-name = "vreg_l6a_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
/* L7 is unused. */
vreg_l9a_1p2: ldo9 {
regulator-name = "vreg_l9a_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
/* L10 is unused, L11 - lcx.lvl (ARC) */
vreg_l12a_1p8: ldo12 {
regulator-name = "vreg_l12a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
/* L13 is unused. */
vreg_l14a_1p8: ldo14 {
regulator-name = "vreg_l14a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1880000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
/* L15 & L16 are unused. */
vreg_l17a_3p0: ldo17 {
regulator-name = "vreg_l17a_3p0";
regulator-min-microvolt = <2496000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l18a_0p9: ldo18 {
regulator-name = "vreg_l18a_0p9";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <920000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
/*
* Remaining regulators that are not yet supported:
* OLEDB: 4925000-8100000
* ab: 4600000-6100000
* ibb: 800000-5400000
*/
pm8150l-rpmh-regulators {
compatible = "qcom,pm8150l-rpmh-regulators";
qcom,pmic-id = "c";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
vdd-s6-supply = <&vph_pwr>;
vdd-s7-supply = <&vph_pwr>;
vdd-s8-supply = <&vph_pwr>;
vdd-l1-l8-supply = <&vreg_s4a_1p8>;
vdd-l2-l3-supply = <&vreg_s8c_1p2>;
vdd-l4-l5-l6-supply = <&vreg_bob>;
vdd-l7-l11-supply = <&vreg_bob>;
vdd-l9-l10-supply = <&vreg_bob>;
vdd-bob-supply = <&vph_pwr>;
vreg_bob: bob {
regulator-name = "vreg_bob";
regulator-min-microvolt = <3350000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
};
/*
* S1-S6 are ARCs:
* (S1+S2) - gfx.lvl,
* S3 - mx.lvl,
* (S4+S5) - mmcx.lvl,
* S6 - ebi.lvl
*/
vreg_s7c_0p35: smps7 {
regulator-name = "vreg_s7c_0p35";
regulator-min-microvolt = <348000>;
regulator-max-microvolt = <1000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s8c_1p2: smps8 {
regulator-name = "vreg_s8c_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1400000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l1c_1p8: ldo1 {
regulator-name = "vreg_l1c_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
/* L2-4 are unused. */
vreg_l5c_1p8: ldo5 {
regulator-name = "vreg_l5c_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6c_2p9: ldo6 {
regulator-name = "vreg_l6c_2p9";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes =
<RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7c_2p85: ldo7 {
regulator-name = "vreg_l7c_2p85";
regulator-min-microvolt = <2856000>;
regulator-max-microvolt = <3104000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8c_1p8: ldo8 {
regulator-name = "vreg_l8c_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9c_2p9: ldo9 {
regulator-name = "vreg_l9c_2p9";
regulator-min-microvolt = <2704000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes =
<RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l10c_3p3: ldo10 {
regulator-name = "vreg_l10c_3p3";
regulator-min-microvolt = <3296000>;
regulator-max-microvolt = <3296000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11c_3p0: ldo11 {
regulator-name = "vreg_l11c_3p0";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
pm8009-rpmh-regulators {
compatible = "qcom,pm8009-rpmh-regulators";
qcom,pmic-id = "f";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vreg_bob>;
vdd-l2-supply = <&vreg_s8c_1p2>;
vdd-l5-l6-supply = <&vreg_bob>;
vdd-l7-supply = <&vreg_s4a_1p8>;
vreg_s1f_1p2: smps1 {
regulator-name = "vreg_s1f_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s2f_0p5: smps2 {
regulator-name = "vreg_s2f_0p5";
regulator-min-microvolt = <512000>;
regulator-max-microvolt = <1100000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
/* L1 is unused. */
vreg_l2f_1p3: ldo2 {
regulator-name = "vreg_l2f_1p3";
regulator-min-microvolt = <1304000>;
regulator-max-microvolt = <1304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
/* L3 & L4 are unused. */
vreg_l5f_2p8: ldo5 {
regulator-name = "vreg_l5f_2p85";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6f_2p8: ldo6 {
regulator-name = "vreg_l6f_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7f_1p8: ldo7 {
regulator-name = "vreg_l7f_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
};
&cdsp {
status = "okay";
};
&gpi_dma0 {
status = "okay";
};
&gpi_dma1 {
status = "okay";
};
&gpi_dma2 {
status = "okay";
};
&i2c1 {
status = "okay";
clock-frequency = <400000>;
/* NXP PN553 NFC @ 28 */
};
&i2c2 {
status = "okay";
clock-frequency = <1000000>;
/* Dual Cirrus Logic CS35L41 amps @ 40, 41 */
};
&i2c5 {
status = "okay";
clock-frequency = <400000>;
/* Dialog SLG51000 CMIC @ 75 */
};
&i2c9 {
status = "okay";
clock-frequency = <400000>;
/* AMS TCS3490 RGB+IR color sensor @ 72 */
};
&i2c13 {
status = "okay";
clock-frequency = <400000>;
touchscreen@48 {
compatible = "samsung,s6sy761";
reg = <0x48>;
interrupt-parent = <&tlmm>;
interrupts = <39 0x2008>;
/* It's "vddio" downstream but it works anyway! */
vdd-supply = <&vreg_l1c_1p8>;
avdd-supply = <&vreg_l10c_3p3>;
pinctrl-names = "default";
pinctrl-0 = <&ts_int_default>;
};
};
&i2c15 {
status = "okay";
clock-frequency = <400000>;
/* Qcom SMB1390 @ 10 */
/* Silicon Labs SI4704 FM Radio Receiver @ 11 */
/* Qcom SMB1390_slave @ 18 */
/* HALO HL6111R Qi charger @ 25 */
/* Richwave RTC6226 FM Radio Receiver @ 64 */
};
&pcie0 {
status = "okay";
};
&pcie0_phy {
status = "okay";
vdda-phy-supply = <&vreg_l5a_0p88>;
vdda-pll-supply = <&vreg_l9a_1p2>;
};
&pcie2 {
status = "okay";
pinctrl-0 = <&pcie2_default_state &mdm2ap_default &ap2mdm_default>;
};
&pcie2_phy {
status = "okay";
vdda-phy-supply = <&vreg_l5a_0p88>;
vdda-pll-supply = <&vreg_l9a_1p2>;
};
&pon_pwrkey {
status = "okay";
};
&pon_resin {
status = "okay";
linux,code = <KEY_VOLUMEUP>;
};
&qupv3_id_0 {
status = "okay";
};
&qupv3_id_1 {
status = "okay";
};
&qupv3_id_2 {
status = "okay";
};
&sdhc_2 {
status = "okay";
cd-gpios = <&tlmm 77 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
pinctrl-1 = <&sdc2_sleep_state &sdc2_card_det_n>;
vmmc-supply = <&vreg_l9c_2p9>;
vqmmc-supply = <&vreg_l6c_2p9>;
bus-width = <4>;
no-sdio;
no-emmc;
};
&slpi {
status = "okay";
};
&tlmm {
gpio-reserved-ranges = <40 4>, <52 4>;
sdc2_default_state: sdc2-default {
clk {
pins = "sdc2_clk";
drive-strength = <16>;
bias-disable;
};
cmd {
pins = "sdc2_cmd";
drive-strength = <16>;
bias-pull-up;
};
data {
pins = "sdc2_data";
drive-strength = <16>;
bias-pull-up;
};
};
mdm2ap_default: mdm2ap-default {
pins = "gpio1", "gpio3";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
ts_int_default: ts-int-default {
pins = "gpio39";
function = "gpio";
drive-strength = <2>;
bias-disable;
input-enable;
};
ap2mdm_default: ap2mdm-default {
pins = "gpio56", "gpio57";
function = "gpio";
drive-strength = <16>;
bias-disable;
};
sdc2_card_det_n: sd-card-det-n {
pins = "gpio77";
function = "gpio";
bias-pull-up;
drive-strength = <2>;
};
};
&uart12 {
status = "okay";
};
/* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */
&ufs_mem_hc { status = "disabled"; };
&ufs_mem_phy { status = "disabled"; };
&usb_1 {
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "peripheral";
};
&usb_1_hsphy {
status = "okay";
vdda-pll-supply = <&vreg_l5a_0p88>;
vdda18-supply = <&vreg_l12a_1p8>;
vdda33-supply = <&vreg_l2a_3p1>;
};
&usb_1_qmpphy {
status = "okay";
vdda-phy-supply = <&vreg_l9a_1p2>;
vdda-pll-supply = <&vreg_l18a_0p9>;
};