From 7993c6a88741a95a8f9b12d10a1dcfd652a44ac7 Mon Sep 17 00:00:00 2001 From: hao Date: Wed, 18 Mar 2026 11:05:39 +0800 Subject: [PATCH 1/3] martini: fix:display+touch --- .../dsi-panel-martini-amoled-dsi0-video.dtsi | 89 +++++++ arch/arm/boot/dts/msm8974-martini-panel.dtsi | 25 ++ arch/arm/boot/dts/msm8974-martini-touch.dtsi | 30 +++ arch/arm/boot/dts/msm8974-martini.dtsi | 229 ++++++++---------- arch/arm/boot/dts/msm8974.dtsi | 1 + arch/arm/configs/msm8974_defconfig | 5 +- build.sh | 9 + 7 files changed, 258 insertions(+), 130 deletions(-) create mode 100644 arch/arm/boot/dts/dsi-panel-martini-amoled-dsi0-video.dtsi create mode 100644 arch/arm/boot/dts/msm8974-martini-panel.dtsi create mode 100644 arch/arm/boot/dts/msm8974-martini-touch.dtsi create mode 100755 build.sh diff --git a/arch/arm/boot/dts/dsi-panel-martini-amoled-dsi0-video.dtsi b/arch/arm/boot/dts/dsi-panel-martini-amoled-dsi0-video.dtsi new file mode 100644 index 000000000000..ad2ba4e8678d --- /dev/null +++ b/arch/arm/boot/dts/dsi-panel-martini-amoled-dsi0-video.dtsi @@ -0,0 +1,89 @@ +/* Copyright (c) 2017, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_martini_amoled_dsi0_video: qcom,mdss_dsi_martini_amoled_dsi0_video { + qcom,mdss-dsi-panel-name = "Martini 1080p video mode panel2"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <1920>; + qcom,mdss-dsi-h-front-porch = <46>; + qcom,mdss-dsi-h-back-porch = <30>; + qcom,mdss-dsi-h-pulse-width = <20>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <2>; + qcom,mdss-dsi-v-front-porch = <13>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <32>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-lane-hs = <1>; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,cmd-sync-wait-broadcast; + qcom,cont-splash-enabled; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + + qcom,mdss-dsi-panel-timings = [D5 9A 1E 00 66 5E 36 9E 55 03 04 00]; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 200>, <1 20>; + qcom,mdss-dsi-t-clk-pre = <0x36>; + qcom,mdss-dsi-t-clk-post = <0x00>; + + qcom,mdss-dsi-bl-min-level = <0x1>; + qcom,mdss-dsi-bl-max-level = <0x80>; + qcom,mdss-dsi-bl-default-level = <0xFF>; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-on-command = [ + 05 01 00 00 78 00 02 11 00 + 39 01 00 00 00 00 03 F0 5A 5A + 39 01 00 00 00 00 0E CB 16 00 01 01 DE 01 00 00 03 00 06 00 08 + 39 01 00 00 00 00 02 F7 03 + 39 01 00 00 65 00 03 F0 A5 A5 + 15 01 00 00 00 00 02 53 2C + 15 01 00 00 00 00 02 51 FF + 05 01 00 00 00 00 02 29 00 + ]; + qcom,mdss-dsi-off-command = [ + 05 01 00 00 00 00 02 28 00 + 15 01 00 00 00 00 02 53 00 + 05 01 00 00 78 00 02 10 00 + ]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-pan-physical-width-dimension = <65>; + qcom,mdss-pan-physical-height-dimension = <115>; + }; +}; diff --git a/arch/arm/boot/dts/msm8974-martini-panel.dtsi b/arch/arm/boot/dts/msm8974-martini-panel.dtsi new file mode 100644 index 000000000000..dee80a3f29f9 --- /dev/null +++ b/arch/arm/boot/dts/msm8974-martini-panel.dtsi @@ -0,0 +1,25 @@ +/* Copyright (c) 2015, LGE Inc. All rights reserved. + * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_martini_amoled_dsi0_video>; + + qcom,platform-reset-gpio = <&pm8941_gpios 19 0>; + vdd-supply = <&pm8941_l22>; + vddio-supply = <&pm8941_l12>; +}; diff --git a/arch/arm/boot/dts/msm8974-martini-touch.dtsi b/arch/arm/boot/dts/msm8974-martini-touch.dtsi new file mode 100644 index 000000000000..398938a7cd53 --- /dev/null +++ b/arch/arm/boot/dts/msm8974-martini-touch.dtsi @@ -0,0 +1,30 @@ +/* Copyright (c) 2015, LGE Inc. All rights reserved. + * Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&i2c_2 { + status = "okay"; + + synaptics@4b { + compatible = "synaptics,rmi4"; + reg = <0x4b>; + + synaptics,reset-gpio = <&msmgpio 60 0x00>; + synaptics,irq-gpio = <&msmgpio 61 0x2008>; + interrupt-parent = <&msmgpio>; + interrupts = <61 0x2008>; + reset-gpios = <&msmgpio 60 0x00>; + vdd-supply = <&pm8941_l22>; + vcc_i2c-supply = <&pm8941_l22>; + synaptics,display-coords = <0 0 1079 1919>; + }; +}; diff --git a/arch/arm/boot/dts/msm8974-martini.dtsi b/arch/arm/boot/dts/msm8974-martini.dtsi index e4d50c584f1c..47970bdb87c2 100644 --- a/arch/arm/boot/dts/msm8974-martini.dtsi +++ b/arch/arm/boot/dts/msm8974-martini.dtsi @@ -10,15 +10,27 @@ * GNU General Public License for more details. */ -/include/ "msm8974-camera-sensor-mtp.dtsi" -/include/ "msm8974-leds.dtsi" +// /include/ "msm8974-camera-sensor-mtp.dtsi" +// /include/ "msm8974-leds.dtsi" +/include/ "dsi-panel-martini-amoled-dsi0-video.dtsi" /include/ "msm8974-martini-regulator.dtsi" -/include/ "dsi-panel-aurora-1080p-video.dtsi" +/include/ "msm8974-martini-panel.dtsi" +/include/ "msm8974-martini-touch.dtsi" / { aliases { serial0 = &blsp1_uart1; }; + + chosen { + stdout-path = "serial0:115200n8"; + }; +}; + +&gdsc_mdss { + qcom,clock-names = "core_clk", "lut_clk"; + status = "ok"; + regulator-always-on; }; &soc { @@ -26,58 +38,9 @@ status = "ok"; }; - qcom,mdss_dsi@fd922800 { - qcom,dsi-pref-prim-pan = <&dsi_aurora_1080p_video>; - }; - qcom,mdss_mdp@fd900000 { - qcom,mdss-pref-prim-intf = "dsi"; - batfet-supply = <&pm8941_chg_batif>; - }; - - qcom,hdmi_tx@fd922100 { - status = "disabled"; - }; - - i2c@f9924000 { - synaptics@20 { - compatible = "synaptics,rmi4"; - reg = <0x20>; - interrupt-parent = <&msmgpio>; - interrupts = <61 0x2008>; - vdd-supply = <&pm8941_l18>; - vcc_i2c-supply = <&pm8941_lvs1>; - synaptics,reset-gpio = <&msmgpio 60 0x00>; - synaptics,irq-gpio = <&msmgpio 61 0x2008>; - synaptics,display-coords = <0 0 1079 1919>; - synaptics,i2c-pull-up; - synaptics,power-down; - synaptics,disable-gpios; - synaptics,do-lockdown; - }; - - }; - - i2c@f9967000 { - isa1200@48 { - status = "okay"; - reg = <0x48>; - vcc_i2c-supply = <&pm8941_s3>; - compatible = "imagis,isa1200"; - label = "vibrator"; - imagis,chip-en; - imagis,need-pwm-clk; - imagis,ext-clk-en; - imagis,hap-en-gpio = <&msmgpio 86 0x00>; - imagis,max-timeout = <15000>; - imagis,pwm-div = <256>; - imagis,mode-ctrl = <2>; - imagis,regulator { - regulator-name = "vcc_i2c"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-max-microamp = <9360>; - }; + qcom,mdss_fb_primary { + qcom,memory-reservation-size = <0x00800000>; }; }; @@ -113,83 +76,91 @@ }; }; - spi@f9923000 { - ethernet-switch@2 { - compatible = "micrel,ks8851"; - reg = <2>; - interrupt-parent = <&msmgpio>; - interrupts = <94 0>; - spi-max-frequency = <4800000>; - rst-gpio = <&pm8941_mpps 6 0>; - vdd-io-supply = <&spi_eth_vreg>; - vdd-phy-supply = <&spi_eth_vreg>; - }; - }; - - sound { - qcom,model = "msm8974-taiko-mtp-snd-card"; - qcom,cdc-micbias2-headset-only; - qcom,mbhc-audio-jack-type = "6-pole-jack"; - }; + // spi@f9923000 { + // ethernet-switch@2 { + // compatible = "micrel,ks8851"; + // reg = <2>; + // interrupt-parent = <&msmgpio>; + // interrupts = <94 0>; + // spi-max-frequency = <4800000>; + // rst-gpio = <&pm8941_mpps 6 0>; + // vdd-io-supply = <&spi_eth_vreg>; + // vdd-phy-supply = <&spi_eth_vreg>; + // }; + // }; + + // sound { + // qcom,model = "msm8974-taiko-mtp-snd-card"; + // qcom,cdc-micbias2-headset-only; + // qcom,mbhc-audio-jack-type = "6-pole-jack"; + // }; }; -&pm8941_lsid1 { - qcom,leds@d800 { - status = "okay"; - qcom,wled_0 { - label = "wled"; - linux,name = "wled:backlight"; - linux,default-trigger = "bkl-trigger"; - qcom,cs-out-en; - qcom,op-fdbck = <1>; - qcom,default-state = "on"; - qcom,max-current = <25>; - qcom,ctrl-delay-us = <0>; - qcom,boost-curr-lim = <5>; - qcom,cp-sel = <0>; - qcom,switch-freq = <11>; - qcom,ovp-val = <2>; - qcom,num-strings = <3>; - qcom,id = <0>; - }; - }; - - qcom,leds@d900 { - status = "disabled"; - }; - - qcom,leds@da00 { - status = "disabled"; - }; - - qcom,leds@db00 { - status = "disabled"; - }; - - qcom,leds@dc00 { - status = "disabled"; - }; - - qcom,leds@dd00 { - status = "disabled"; - }; - - qcom,leds@de00 { - status = "disabled"; - }; - - qcom,leds@df00 { - status = "disabled"; - }; - - qcom,leds@e000 { - status = "disabled"; - }; - - qcom,leds@e100 { - status = "disabled"; - }; -}; +// &pm8941_lsid1 { +// qcom,leds@d800 { +// status = "okay"; +// qcom,vib-timeout-ms = <12000>; +// }; +// }; + + +// &pm8941_lsid1 { +// qcom,leds@d800 { +// status = "okay"; +// qcom,wled_0 { +// label = "wled"; +// linux,name = "wled:backlight"; +// linux,default-trigger = "bkl-trigger"; +// qcom,cs-out-en; +// qcom,op-fdbck = <1>; +// qcom,default-state = "on"; +// qcom,max-current = <25>; +// qcom,ctrl-delay-us = <0>; +// qcom,boost-curr-lim = <5>; +// qcom,cp-sel = <0>; +// qcom,switch-freq = <11>; +// qcom,ovp-val = <2>; +// qcom,num-strings = <3>; +// qcom,id = <0>; +// }; +// }; + +// qcom,leds@d900 { +// status = "disabled"; +// }; + +// qcom,leds@da00 { +// status = "disabled"; +// }; + +// qcom,leds@db00 { +// status = "disabled"; +// }; + +// qcom,leds@dc00 { +// status = "disabled"; +// }; + +// qcom,leds@dd00 { +// status = "disabled"; +// }; + +// qcom,leds@de00 { +// status = "disabled"; +// }; + +// qcom,leds@df00 { +// status = "disabled"; +// }; + +// qcom,leds@e000 { +// status = "disabled"; +// }; + +// qcom,leds@e100 { +// status = "disabled"; +// }; +// }; &sdcc1 { status = "disabled"; diff --git a/arch/arm/boot/dts/msm8974.dtsi b/arch/arm/boot/dts/msm8974.dtsi index db2191e9765c..48a85b53b487 100644 --- a/arch/arm/boot/dts/msm8974.dtsi +++ b/arch/arm/boot/dts/msm8974.dtsi @@ -2603,6 +2603,7 @@ &gdsc_mdss { qcom,clock-names = "core_clk", "lut_clk"; status = "ok"; + regulator-always-on; }; &gdsc_jpeg { diff --git a/arch/arm/configs/msm8974_defconfig b/arch/arm/configs/msm8974_defconfig index dd006a51494b..93b576cb7efd 100755 --- a/arch/arm/configs/msm8974_defconfig +++ b/arch/arm/configs/msm8974_defconfig @@ -1,4 +1,5 @@ # CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_ARM_PATCH_PHYS_VIRT=y CONFIG_EXPERIMENTAL=y CONFIG_SYSVIPC=y CONFIG_AUDIT=y @@ -487,6 +488,7 @@ CONFIG_QPNP_POWER_ON=y CONFIG_QPNP_CLKDIV=y CONFIG_QPNP_REVID=y CONFIG_QPNP_COINCELL=y +CONFIG_QPNP_VIBRATOR=y CONFIG_MSM_AVTIMER=y CONFIG_MSM_IOMMU_V1=y CONFIG_MSM_IOMMU_PMON=y @@ -537,6 +539,7 @@ CONFIG_PANIC_ON_DATA_CORRUPTION=y CONFIG_DEBUG_USER=y CONFIG_DEBUG_LL=y CONFIG_EARLY_PRINTK=y +CONFIG_DEBUG_MSM_UART=y CONFIG_PID_IN_CONTEXTIDR=y CONFIG_DEBUG_SET_MODULE_RONX=y CONFIG_KEYS=y @@ -551,5 +554,5 @@ CONFIG_MSM_RDBG=m CONFIG_MSM_AVTIMER=y CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y CONFIG_UID_CPUTIME=y -CONFIG_CMDLINE="earlyprintk console=ttyHSL0,115200" CONFIG_CMDLINE_FROM_BOOTLOADER=y +CONFIG_ARM_APPENDED_DTB=y diff --git a/build.sh b/build.sh new file mode 100755 index 000000000000..e112646b5c4e --- /dev/null +++ b/build.sh @@ -0,0 +1,9 @@ +set -e +export PATH="$PATH:/home/zh/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin" +make clean&&make mrproper&&rm -rf out +mkdir out +ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make msm8974_defconfig O=out +ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -j16 O=out CONFIG_NO_ERROR_ON_MISMATCH=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y +sync +cat ./out/arch/arm/boot/zImage ./out/arch/arm/boot/msm8974-martini.dtb > ./out/arch/arm/boot/zImage-dtb +echo "编译完成" From cf2e57d386f6ae34984571893025de09576e88ba Mon Sep 17 00:00:00 2001 From: zh Date: Thu, 19 Mar 2026 10:17:59 +0800 Subject: [PATCH 2/3] martini:Fix zImage-dtb generation, drop build.sh, and tweak Makefil --- Makefile | 3 +++ arch/arm/configs/msm8974_defconfig | 1 - build.sh | 9 --------- 3 files changed, 3 insertions(+), 10 deletions(-) delete mode 100755 build.sh diff --git a/Makefile b/Makefile index 9c73338f8d98..66e06df26701 100644 --- a/Makefile +++ b/Makefile @@ -16,6 +16,9 @@ NAME = Saber-toothed Squirrel # o print "Entering directory ..."; MAKEFLAGS += -rR --no-print-directory +export CONFIG_NO_ERROR_ON_MISMATCH := y +export CONFIG_SECTION_MISMATCH_WARN_ONLY := y + # Avoid funny character set dependencies unexport LC_ALL LC_COLLATE=C diff --git a/arch/arm/configs/msm8974_defconfig b/arch/arm/configs/msm8974_defconfig index 93b576cb7efd..c75c6af8b623 100755 --- a/arch/arm/configs/msm8974_defconfig +++ b/arch/arm/configs/msm8974_defconfig @@ -41,7 +41,6 @@ CONFIG_IOSCHED_TEST=y CONFIG_DEFAULT_ROW=y CONFIG_ARCH_MSM=y CONFIG_ARCH_MSM8974=y -CONFIG_ARCH_MSMSAMARIUM=y CONFIG_MSM_KRAIT_TBB_ABORT_HANDLER=y # CONFIG_MSM_STACKED_MEMORY is not set CONFIG_CPU_HAS_L2_PMU=y diff --git a/build.sh b/build.sh deleted file mode 100755 index e112646b5c4e..000000000000 --- a/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -set -e -export PATH="$PATH:/home/zh/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin" -make clean&&make mrproper&&rm -rf out -mkdir out -ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make msm8974_defconfig O=out -ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -j16 O=out CONFIG_NO_ERROR_ON_MISMATCH=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y -sync -cat ./out/arch/arm/boot/zImage ./out/arch/arm/boot/msm8974-martini.dtb > ./out/arch/arm/boot/zImage-dtb -echo "编译完成" From 2f9de23afbe5410a8e74b4218ee36359f4fc9366 Mon Sep 17 00:00:00 2001 From: zh Date: Thu, 19 Mar 2026 19:51:45 +0800 Subject: [PATCH 3/3] Remove defconfig CONFIG_ARM_PATCH_PHYS_VIRT --- arch/arm/configs/msm8974_defconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm/configs/msm8974_defconfig b/arch/arm/configs/msm8974_defconfig index c75c6af8b623..d542afccd053 100755 --- a/arch/arm/configs/msm8974_defconfig +++ b/arch/arm/configs/msm8974_defconfig @@ -1,5 +1,4 @@ # CONFIG_ARM_PATCH_PHYS_VIRT is not set -CONFIG_ARM_PATCH_PHYS_VIRT=y CONFIG_EXPERIMENTAL=y CONFIG_SYSVIPC=y CONFIG_AUDIT=y