Update sm8250: kernel add legacy and edge branch

This commit is contained in:
FantasyGmm
2024-04-14 15:02:33 +08:00
committed by 青菜萝 卜冬瓜
parent 8b9431b8f6
commit 3f928f799c
20 changed files with 8956 additions and 138 deletions

View File

@@ -69,6 +69,9 @@ function post_family_tweaks__ayn-odin2_enable_services() {
do_with_retries 3 chroot_sdcard_apt_get_install mesa-vulkan-drivers qbootctl qrtr-tools protection-domain-mapper tqftpserv
# Kernel postinst script to update abl boot partition
install -Dm655 $SRC/packages/bsp/ayn-odin2/zz-update-abl-kernel $destination/etc/kernel/postinst.d/
return 0
}

View File

@@ -1,9 +1,9 @@
# Generate kernel and rootfs image for Qcom ABL booting
declare -g BOARD_NAME="Xiaomi Elish"
declare -g BOARD_MAINTAINER="amazingfate"
declare -g BOARDFAMILY="qcom-abl"
declare -g KERNEL_TARGET="sm8250"
declare -g KERNELPATCHDIR="arm64-sm8250"
declare -g BOARDFAMILY="sm8250"
declare -g KERNEL_TARGET="current,edge"
declare -g KERNEL_TEST_TARGET="edge"
declare -g EXTRAWIFI="no"
declare -g MODULES="spi-geni-qcom nt36523_ts"
declare -g BOOTCONFIG="none"
@@ -13,12 +13,6 @@ declare -g -a ABL_DTB_LIST=("sm8250-xiaomi-elish-boe" "sm8250-xiaomi-elish-csot"
# Use the full firmware, complete linux-firmware plus Armbian's (for qcom/a650_sqe.fw)
declare -g BOARD_FIRMWARE_INSTALL="-full"
function post_family_config_branch_sm8250__pmos_kernel() {
display_alert "Setting up kernel for" "${BOARD}" "info"
declare -g KERNEL_MAJOR_MINOR="6.7" # Major and minor versions of this kernel.
declare -g KERNELBRANCH='tag:v6.7.5'
}
function xiaomi-elish_is_userspace_supported() {
[[ "${RELEASE}" == "jammy" ]] && return 0
[[ "${RELEASE}" == "trixie" ]] && return 0

View File

@@ -1,25 +1,19 @@
# Generate kernel and rootfs image for Qcom ABL booting
declare -g BOARD_NAME="Xiaomi Umi"
declare -g BOARD_MAINTAINER="FantasyGmm"
declare -g BOARDFAMILY="qcom-abl"
declare -g KERNEL_TARGET="sm8250"
declare -g KERNELPATCHDIR="arm64-sm8250"
declare -g BOARDFAMILY="sm8250"
declare -g KERNEL_TARGET="current,edge"
declare -g KERNEL_TEST_TARGET="edge"
declare -g EXTRAWIFI="no"
declare -g MODULES="spi-geni-qcom"
declare -g BOOTCONFIG="none"
declare -g BOOTIMG_CMDLINE_EXTRA="clk_ignore_unused pd_ignore_unused"
declare -g IMAGE_PARTITION_TABLE="gpt"
declare -g -a ABL_DTB_LIST=("sm8250-xiaomi-umi")
declare -g -a ABL_DTB_LIST=("sm8250-xiaomi-umi-csot" "sm8250-xiaomi-umi-sms")
# Use the full firmware, complete linux-firmware plus Armbian's (for qcom/a650_sqe.fw)
declare -g BOARD_FIRMWARE_INSTALL="-full"
function post_family_config_branch_sm8250__pmos_kernel() {
display_alert "Setting up kernel for" "${BOARD}" "info"
declare -g KERNEL_MAJOR_MINOR="6.7" # Major and minor versions of this kernel.
declare -g KERNELBRANCH='branch:linux-6.7.y'
}
function xiaomi-umi_is_userspace_supported() {
[[ "${RELEASE}" == "jammy" ]] && return 0
[[ "${RELEASE}" == "trixie" ]] && return 0

View File

@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 6.7.0 Kernel Configuration
# Linux/arm64 6.7.5 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="aarch64-linux-gnu-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
CONFIG_CC_IS_GCC=y
@@ -373,7 +373,9 @@ CONFIG_ARM64_ERRATUM_2067961=y
CONFIG_ARM64_ERRATUM_2441009=y
CONFIG_ARM64_ERRATUM_2457168=y
CONFIG_ARM64_ERRATUM_2645198=y
CONFIG_ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD=y
CONFIG_ARM64_ERRATUM_2966298=y
CONFIG_ARM64_ERRATUM_3117295=y
CONFIG_CAVIUM_ERRATUM_22375=y
CONFIG_CAVIUM_ERRATUM_23144=y
CONFIG_CAVIUM_ERRATUM_23154=y
@@ -1718,7 +1720,6 @@ CONFIG_PCI_EPF_TEST=m
#
# Generic Driver Options
#
CONFIG_AUXILIARY_BUS=y
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH=""
CONFIG_DEVTMPFS=y
@@ -2715,6 +2716,7 @@ CONFIG_MOUSE_PS2_SMBUS=y
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_ST_FTS_V521 is not set
CONFIG_TOUCHSCREEN_NT36523_SPI=m
# CONFIG_TOUCHSCREEN_ADS7846 is not set
# CONFIG_TOUCHSCREEN_AD7877 is not set
@@ -3021,7 +3023,7 @@ CONFIG_I2C_GPIO=m
CONFIG_I2C_QCOM_CCI=m
CONFIG_I2C_QCOM_GENI=y
CONFIG_I2C_QUP=y
CONFIG_I2C_RK3X=y
# CONFIG_I2C_RK3X is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_THUNDERX is not set
# CONFIG_I2C_XILINX is not set
@@ -3210,7 +3212,6 @@ CONFIG_GPIOLIB_FASTPATH_LIMIT=512
CONFIG_OF_GPIO=y
CONFIG_GPIO_ACPI=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_OF_GPIO_MM_GPIOCHIP=y
CONFIG_GPIO_CDEV=y
CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_GENERIC=y
@@ -3219,7 +3220,7 @@ CONFIG_GPIO_GENERIC=y
# Memory mapped GPIO drivers
#
# CONFIG_GPIO_74XX_MMIO is not set
CONFIG_GPIO_ALTERA=m
# CONFIG_GPIO_ALTERA is not set
# CONFIG_GPIO_AMDPT is not set
# CONFIG_GPIO_CADENCE is not set
CONFIG_GPIO_DWAPB=y
@@ -3229,12 +3230,12 @@ CONFIG_GPIO_DWAPB=y
# CONFIG_GPIO_HISI is not set
# CONFIG_GPIO_HLWD is not set
# CONFIG_GPIO_LOGICVC is not set
CONFIG_GPIO_MB86S7X=y
CONFIG_GPIO_PL061=y
# CONFIG_GPIO_MB86S7X is not set
# CONFIG_GPIO_PL061 is not set
# CONFIG_GPIO_SIFIVE is not set
# CONFIG_GPIO_SYSCON is not set
CONFIG_GPIO_WCD934X=m
CONFIG_GPIO_XGENE=y
# CONFIG_GPIO_XGENE is not set
# CONFIG_GPIO_XILINX is not set
# CONFIG_GPIO_AMD_FCH is not set
# end of Memory mapped GPIO drivers
@@ -3247,10 +3248,8 @@ CONFIG_GPIO_XGENE=y
# CONFIG_GPIO_DS4520 is not set
# CONFIG_GPIO_GW_PLD is not set
# CONFIG_GPIO_MAX7300 is not set
CONFIG_GPIO_MAX732X=y
# CONFIG_GPIO_MAX732X_IRQ is not set
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCA953X_IRQ=y
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCA9570 is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_TPIC2810 is not set
@@ -3708,7 +3707,6 @@ CONFIG_MFD_SEC_CORE=y
# CONFIG_MFD_SKY81452 is not set
# CONFIG_MFD_STMPE is not set
CONFIG_MFD_SYSCON=y
# CONFIG_MFD_TI_AM335X_TSCADC is not set
# CONFIG_MFD_LP3943 is not set
# CONFIG_MFD_LP8788 is not set
# CONFIG_MFD_TI_LMU is not set
@@ -3859,7 +3857,6 @@ CONFIG_REGULATOR_VCTRL=m
# CONFIG_REGULATOR_VQMMC_IPQ4019 is not set
# CONFIG_REGULATOR_QCOM_LABIBB is not set
# CONFIG_RC_CORE is not set
CONFIG_CEC_CORE=m
#
# CEC support
@@ -4125,6 +4122,7 @@ CONFIG_DRM_PANEL=y
#
# Display Panels
#
# CONFIG_DRM_PANEL_XIAOMI_UMI_CSOT is not set
# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set
@@ -4249,14 +4247,12 @@ CONFIG_DRM_THINE_THC63LVD1024=m
# CONFIG_DRM_TI_DLPC3433 is not set
# CONFIG_DRM_TI_TFP410 is not set
# CONFIG_DRM_TI_SN65DSI83 is not set
CONFIG_DRM_TI_SN65DSI86=m
# CONFIG_DRM_TI_SN65DSI86 is not set
# CONFIG_DRM_TI_TPD12S015 is not set
# CONFIG_DRM_ANALOGIX_ANX6345 is not set
# CONFIG_DRM_ANALOGIX_ANX78XX is not set
# CONFIG_DRM_ANALOGIX_ANX7625 is not set
CONFIG_DRM_I2C_ADV7511=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_I2C_ADV7511_CEC=y
# CONFIG_DRM_I2C_ADV7511 is not set
# CONFIG_DRM_CDNS_DSI is not set
# CONFIG_DRM_CDNS_MHDP8546 is not set
# end of Display Interface Bridges

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,34 @@
#
# SPDX-License-Identifier: GPL-2.0
#
# Copyright (c) 2013-2023 Igor Pecovnik, igor@armbian.com
#
# This file is a part of the Armbian Build Framework
# https://github.com/armbian/build/
#
declare -g LINUXFAMILY="sm8250"
declare -g ARCH="arm64"
declare -g BOOTENV_FILE="qcom-abl.txt"
enable_extension "image-output-abl"
case $BRANCH in
current)
declare -g KERNEL_MAJOR_MINOR="6.7" # Major and minor versions of this kernel.
declare -g KERNELBRANCH='tag:v6.7.5'
declare -g KERNELPATCHDIR='sm8250-current'
declare -g -i KERNEL_GIT_CACHE_TTL=120 # 2 minutes; this is a high-traffic repo
;;
edge)
declare -g KERNEL_MAJOR_MINOR="6.8" # Major and minor versions of this kernel.
declare -g KERNELBRANCH='tag:v6.8.6'
declare -g KERNELPATCHDIR='sm8250-edge'
;;
esac
family_tweaks_bsp() {
:
}

View File

@@ -0,0 +1,20 @@
#!/bin/bash
set -ex
new_rootfs_image_uuid=$(sed -e 's/^.*root=UUID=//' -e 's/ .*$//' < /proc/cmdline)
gzip -c /boot/vmlinuz-*-sm8550-arm64 > /tmp/Image.gz
cat /tmp/Image.gz /usr/lib/linux-image-*-sm8550-arm64/qcom/qcs8550-ayn-odin2-hypdtbo.dtb > /tmp/Image.gz-dtb
source /boot/armbianEnv.txt
/usr/bin/mkbootimg \
--kernel /tmp/Image.gz-dtb \
--ramdisk /boot/initrd.img-*-sm8550-arm64 \
--base 0x0 \
--second_offset 0x00f00000 \
--cmdline "clk_ignore_unused pd_ignore_unused panic=30 audit=0 allow_mismatched_32bit_el0 rw mem_sleep_default=s2idle root=UUID=${new_rootfs_image_uuid}" \
--kernel_offset 0x8000 \
--ramdisk_offset 0x1000000 \
--tags_offset 0x100 \
--pagesize 4096 \
-o /boot/armbian-kernel.img
rm -f /tmp/Image.gz /tmp/Image.gz-dtb

View File

@@ -14,14 +14,14 @@ case $machine_model in
;;
esac
new_rootfs_image_uuid=$(sed -e 's/^.*root=UUID=//' -e 's/ .*$//' < /proc/cmdline)
gzip -c /boot/vmlinuz-*-sm8250-arm64 > /tmp/Image.gz
gzip -c /boot/vmlinuz-*-sm8250 > /tmp/Image.gz
cat /tmp/Image.gz /usr/lib/linux-image-*-sm8250-arm64/qcom/sm8250-xiaomi-elish-${panel_type}.dtb > /tmp/Image.gz-dtb-${panel_type}
cat /tmp/Image.gz /usr/lib/linux-image-*-sm8250/qcom/sm8250-xiaomi-elish-${panel_type}.dtb > /tmp/Image.gz-dtb-${panel_type}
source /boot/armbianEnv.txt
/usr/bin/mkbootimg \
--kernel /tmp/Image.gz-dtb-${panel_type} \
--ramdisk /boot/initrd.img-*-sm8250-arm64 \
--ramdisk /boot/initrd.img-*-sm8250 \
--base 0x0 \
--second_offset 0x00f00000 \
--cmdline "root=UUID=${new_rootfs_image_uuid} slot_suffix=${abl_boot_partition_label#boot}" \

View File

@@ -1,26 +1,42 @@
SectionVerb {
EnableSequence [
cset "name='TLH DSP1 Preload Switch' 1"
cset "name='TLH DRE Switch' 1"
cset "name='TLH PCM Soft Ramp' 4ms"
cset "name='TLH Analog PCM Volume' 18"
cset "name='TLH ASP TX1 Source' DSPTX1"
cset "name='TLH DSP RX1 Source' ASPRX1"
cset "name='TLH DSP RX2 Source' ASPTX2"
cset "name='BRH DSP1 Preload Switch' 1"
cset "name='BRH DRE Switch' 1"
cset "name='BRH PCM Soft Ramp' 4ms"
cset "name='BRH Analog PCM Volume' 18"
cset "name='BRH ASP TX1 Source' DSPTX1"
cset "name='BRH DSP RX1 Source' ASPRX1"
cset "name='BRH DSP RX2 Source' ASPTX2"
cset "name='TERT_TDM_RX_0 Audio Mixer MultiMedia1' 1"
cset "name='BLH DSP1 Preload Switch' 1"
cset "name='BLH DRE Switch' 1"
cset "name='BLH PCM Soft Ramp' 4ms"
cset "name='BLH Analog PCM Volume' 18"
cset "name='BLH ASP TX1 Source' DSPTX1"
cset "name='BLH DSP RX1 Source' ASPRX1"
cset "name='BLH DSP RX2 Source' ASPTX2"
cset "name='TERT_MI2S_RX Audio Mixer MultiMedia1' 1"
]
DisableSequence [
cset "name='TLH DSP1 Preload Switch' 0"
cset "name='TLH DRE Switch' 0"
cset "name='TLH PCM Soft Ramp' zero"
cset "name='TLH Analog PCM Volume' 0"
cset "name='TLH ASP TX1 Source' zero"
cset "name='TLH DSP RX1 Source' zero"
cset "name='TLH DSP RX2 Source' zero"
cset "name='BRH DSP1 Preload Switch' 0"
cset "name='BRH DRE Switch' 0"
cset "name='BRH PCM Soft Ramp' zero"
cset "name='BRH Analog PCM Volume' 0"
cset "name='BRH ASP TX1 Source' zero"
cset "name='BRH DSP RX1 Source' zero"
cset "name='BRH DSP RX2 Source' zero"
cset "name='TERT_TDM_RX_0 Audio Mixer MultiMedia1' 0"
cset "name='BLH DSP1 Preload Switch' 0"
cset "name='BLH DRE Switch' 0"
cset "name='BLH PCM Soft Ramp' zero"
cset "name='BLH Analog PCM Volume' 0"
cset "name='BLH ASP TX1 Source' zero"
cset "name='BLH DSP RX1 Source' zero"
cset "name='BLH DSP RX2 Source' zero"
cset "name='TERT_MI2S_RX Audio Mixer MultiMedia1' 0"
]
Value {
@@ -32,25 +48,13 @@ SectionDevice."Speaker" {
Comment "Speaker playback"
EnableSequence [
cset "name='TLH PCM Source' DSP"
cset "name='TLL PCM Source' DSP"
cset "name='TRH PCM Source' DSP"
cset "name='TRL PCM Source' DSP"
cset "name='BLH PCM Source' DSP"
cset "name='BLL PCM Source' DSP"
cset "name='BRH PCM Source' DSP"
cset "name='BRL PCM Source' DSP"
cset "name='BLH PCM Source' DSP"
]
DisableSequence [
cset "name='TLH PCM Source' zero"
cset "name='TLL PCM Source' zero"
cset "name='TRH PCM Source' zero"
cset "name='TRL PCM Source' zero"
cset "name='BLH PCM Source' zero"
cset "name='BLL PCM Source' zero"
cset "name='BRH PCM Source' zero"
cset "name='BRL PCM Source' zero"
cset "name='BLH PCM Source' zero"
]
Value {

View File

@@ -9,20 +9,19 @@ case $machine_model in
panel_type=csot
;;
*)
# echo "$machine_model is not supported, exit"
# exit
panel_type=csot
echo "$machine_model is not supported, exit"
exit
;;
esac
new_rootfs_image_uuid=$(sed -e 's/^.*root=UUID=//' -e 's/ .*$//' < /proc/cmdline)
gzip -c /boot/vmlinuz-*-sm8250-arm64 > /tmp/Image.gz
gzip -c /boot/vmlinuz-*-sm8250 > /tmp/Image.gz
cat /tmp/Image.gz /usr/lib/linux-image-*-sm8250-arm64/qcom/sm8250-xiaomi-umi-${panel_type}.dtb > /tmp/Image.gz-dtb-${panel_type}
cat /tmp/Image.gz /usr/lib/linux-image-*-sm8250/qcom/sm8250-xiaomi-umi-${panel_type}.dtb > /tmp/Image.gz-dtb-${panel_type}
source /boot/armbianEnv.txt
/usr/bin/mkbootimg \
--kernel /tmp/Image.gz-dtb-${panel_type} \
--ramdisk /boot/initrd.img-*-sm8250-arm64 \
--ramdisk /boot/initrd.img-*-sm8250 \
--base 0x0 \
--second_offset 0x00f00000 \
--cmdline "clk_ignore_unused pd_ignore_unused root=UUID=${new_rootfs_image_uuid}" \

View File

@@ -28,12 +28,10 @@
/delete-node/ &xbl_aop_mem;
/ {
model = "Xiaomi Mi 10 (umi)";
compatible = "xiaomi,umi", "qcom,kona", "qcom,sm8250";
chassis-type = "handset";
qcom,msm-id = <0x164 0x20001>;
qcom,board-id = <0x2b 0x00>;
qcom,msm-id = <QCOM_ID_SM8250 0x20001>;
qcom,board-id = <0x2b 0>;
aliases {
hsuart0 = &uart6;
@@ -524,39 +522,37 @@
&i2c3 {
clock-frequency = <400000>;
status = "okay";
/* Speaker */
cs35l41_spk: speaker@40 {
cs35l41_brh: speaker-amp@40 {
compatible = "cirrus,cs35l41";
reg = <0x40>;
interrupt-parent = <&tlmm>;
interrupts = <113 IRQ_TYPE_LEVEL_LOW>;
reset-gpios = <&tlmm 114 GPIO_ACTIVE_HIGH>;
cirrus,boost-type = <0>;
cirrus,temp-warn_threshold = <3>;
cirrus,boost-peak-milliamp = <4000>;
cirrus,boost-ind-nanohenry = <1000>;
cirrus,boost-cap-microfarad = <15>;
cirrus,asp-sdout-hiz = <1>;
cirrus,right-channel-amp;
cirrus,gpio2-src-select = <4>;
cirrus,gpio2-output-enable;
sound-name-prefix = "BRH";
#sound-dai-cells = <1>;
};
/* Receiver */
cs35l41_rcv: receiver@42 {
cs35l41_blh: speaker-amp@42 {
compatible = "cirrus,cs35l41";
reg = <0x42>;
interrupt-parent = <&tlmm>;
interrupts = <112 IRQ_TYPE_LEVEL_LOW>;
reset-gpios = <&tlmm 114 GPIO_ACTIVE_HIGH>;
cirrus,boost-type = <0>;
cirrus,boost-peak-milliamp = <4000>;
cirrus,boost-ind-nanohenry = <1000>;
cirrus,boost-cap-microfarad = <15>;
cirrus,asp-sdout-hiz = <1>;
cirrus,gpio2-src-select = <4>;
cirrus,gpio2-output-enable;
sound-name-prefix = "RCV";
sound-name-prefix = "BLH";
#sound-dai-cells = <1>;
};
};
@@ -698,7 +694,6 @@
// status = "okay";
// display_panel: panel@0 {
// compatible = "mdss,xiaomi-umi-csot";
// reg = <0>;
// vddio-supply = <&vreg_l14a_1p88>;
// reset-gpios = <&tlmm 12 0>;
@@ -759,14 +754,9 @@
};
&q6afedai {
dai@56 {
reg = <TERTIARY_TDM_RX_0>;
qcom,tdm-sync-mode = <1>;
qcom,tdm-sync-src = <1>;
qcom,tdm-data-out = <0>;
qcom,tdm-invert-sync = <1>;
qcom,tdm-data-delay = <1>;
qcom,tdm-data-align = <0>;
dai@20 {
reg = <TERTIARY_MI2S_RX>;
qcom,sd-lines = <0>;
};
};
@@ -800,13 +790,21 @@
compatible = "qcom,sm8250-sndcard";
model = "Xiaomi Mi 10";
pinctrl-names = "default";
pinctrl-0 = <&tert_tdm_active>;
pinctrl-0 = <&tert_mi2s_active>;
mm1-dai-link {
link-name = "MultiMedia1";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
};
};
speaker-dai-link {
link-name = "Tertiary TDM Playback";
link-name = "Tertiary MI2S Playback";
cpu {
sound-dai = <&q6afedai TERTIARY_TDM_RX_0>;
sound-dai = <&q6afedai TERTIARY_MI2S_RX>;
};
platform {
@@ -814,7 +812,7 @@
};
codec {
sound-dai = <&cs35l41_spk 0>, <&cs35l41_rcv 0>;
sound-dai = <&cs35l41_brh 0>, <&cs35l41_blh 0>;
};
};
};
@@ -829,38 +827,6 @@
bias-pull-down;
};
tert_tdm_active: tert-tdm-active-state {
sck-pins {
pins = "gpio133";
function = "mi2s2_sck";
drive-strength = <8>;
bias-disable;
output-high;
};
din-pins {
pins = "gpio134";
function = "mi2s2_data0";
drive-strength = <8>;
bias-disable;
};
ws-pins {
pins = "gpio135";
function = "mi2s2_ws";
drive-strength = <8>;
bias-disable;
output-high;
};
dout-pins {
pins = "gpio137";
function = "mi2s2_data1";
drive-strength = <8>;
bias-disable;
};
};
bt_en_state: bt-default-state {
bt-en-pins {
pins = "gpio21";
@@ -943,11 +909,6 @@
status = "okay";
};
&venus {
firmware-name = "qcom/sm8250/xiaomi/elish/venus.mbn";
status = "okay";
};
&usb_1 {
/* USB 2.0 only */
qcom,select-utmi-as-pipe-clk;

View File

@@ -0,0 +1,13 @@
/dts-v1/;
#include "sm8250-xiaomi-umi-common.dtsi"
/ {
model = "Xiaomi Mi 10 (CSOT)";
compatible = "xiaomi,umi", "qcom,sm8250";
};
// &display_panel {
// compatible = "xiaomi-umi-csot";
// status = "okay";
// };

View File

@@ -0,0 +1,13 @@
/dts-v1/;
#include "sm8250-xiaomi-umi-common.dtsi"
/ {
model = "Xiaomi Mi 10 (SMS)";
compatible = "xiaomi,umi", "qcom,sm8250";
};
// &display_panel {
// compatible = "xiaomi-umi-sms";
// status = "okay";
// };

View File

@@ -0,0 +1,29 @@
config: # This is file 'patch/kernel/archive/sm8250-6.7/0000.patching_config.yaml'
# Just some info stuff; not used by the patching scripts
name: sm8250-6.8
kind: kernel
type: mainline # or: vendor
branch: linux-6.8.y
last-known-good-tag: v6.8.0
maintainers:
- { github: rpardini, name: Ricardo Pardini, email: ricardo@pardini.net, armbian-forum: rpardini }
# .dts files in these directories will be copied as-is to the build tree; later ones overwrite earlier ones.
# This is meant to provide a way to "add a board DTS" without having to null-patch them in.
dts-directories:
- { source: "dt", target: "arch/arm64/boot/dts/qcom" }
# the Makefile in each of these directories will be magically patched to include the dts files copied
# or patched-in; overlay subdir will be included "-y" if it exists.
# No more Makefile patching needed, yay!
auto-patch-dt-makefile:
- { directory: "arch/arm64/boot/dts/qcom", config-var: "CONFIG_ARCH_QCOM" }
# configuration for when applying patches to git / auto-rewriting patches (development cycle helpers)
patches-to-git:
do-not-commit-files:
- "MAINTAINERS" # constant churn, drop them. sorry.
do-not-commit-regexes: # Python-style regexes
- "^arch/([a-zA-Z0-9]+)/boot/dts/([a-zA-Z0-9]+)/Makefile$" # ignore DT Makefile patches, we've an auto-patcher now

View File

@@ -0,0 +1 @@
../../arm64-sm8550/0001-tools-Makefile-delete-missing-cgroup_clean.patch

View File

@@ -0,0 +1,938 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
*/
/dts-v1/;
#include <dt-bindings/arm/qcom,ids.h>
#include <dt-bindings/phy/phy.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include <dt-bindings/sound/qcom,q6afe.h>
#include <dt-bindings/sound/qcom,q6asm.h>
#include <dt-bindings/usb/pd.h>
#include "sm8250.dtsi"
#include "pm8150.dtsi"
#include "pm8150b.dtsi"
#include "pm8150l.dtsi"
#include "pm8009.dtsi"
/*
* Delete following upstream (sm8250.dtsi) reserved
* memory mappings which are different on this device.
*/
/delete-node/ &adsp_mem;
/delete-node/ &cdsp_secure_heap;
/delete-node/ &slpi_mem;
/delete-node/ &spss_mem;
/delete-node/ &xbl_aop_mem;
/ {
chassis-type = "handset";
qcom,msm-id = <QCOM_ID_SM8250 0x20001>;
qcom,board-id = <0x2b 0>;
aliases {
hsuart0 = &uart6;
};
chosen {
#address-cells = <2>;
#size-cells = <2>;
ranges;
framebuffer: framebuffer@9c000000 {
compatible = "simple-framebuffer";
reg = <0x0 0x9c000000 0x0 0x2300000>;
width = <1080>;
height = <2340>;
stride = <(1080 * 4)>;
format = "a8r8g8b8";
};
};
// battery: battery {
// compatible = "simple-battery";
// voltage-min-design-microvolt = <3870000>;
// energy-full-design-microwatt-hours = <16600000>;
// charge-full-design-microamp-hours = <4300000>;
// };
gpio_keys: gpio-keys {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&vol_up_n>;
vol_up {
label = "Volume Up";
gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
debounce-interval = <15>;
linux,can-disable;
wakeup-source;
};
hall_key {
label = "Hall Key";
gpios = <&tlmm 14 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESERVED>;
debounce-interval = <15>;
linux,can-disable;
wakeup-source;
};
};
vph_pwr: vph-pwr-regulator {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
};
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>;
};
vreg_touch_vddio: vreg-touch-vddio{
compatible = "regulator-fixed";
regulator-name = "vreg_touch_vddio";
enable-active-high;
/*regulator-boot-on*/
gpio = <&tlmm 69 0>;
};
wcd938x: audio-codec {
compatible = "qcom,wcd9380-codec";
reset-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
vdd-buck-supply = <&vreg_s4a_1p8>;
vdd-rxtx-supply = <&vreg_s4a_1p8>;
vdd-io-supply = <&vreg_s4a_1p8>;
vdd-mic-bias-supply = <&vreg_bob>;
qcom,micbias1-microvolt = <2750000>;
qcom,micbias2-microvolt = <2750000>;
qcom,micbias3-microvolt = <2750000>;
qcom,micbias4-microvolt = <2750000>;
qcom,rx-device = <&wcd_rx>;
qcom,tx-device = <&wcd_tx>;
#sound-dai-cells = <1>;
};
qca639x: qca639x {
compatible = "qcom,qca6390";
#power-domain-cells = <0>;
vddaon-supply = <&vreg_s6a_0p95>;
vddpmu-supply = <&vreg_s2f_0p95>;
vddrfa1-supply = <&vreg_s2f_0p95>;
vddrfa2-supply = <&vreg_s8c_1p35>;
vddrfa3-supply = <&vreg_s5a_1p9>;
vddpcie1-supply = <&vreg_s8c_1p35>;
vddpcie2-supply = <&vreg_s5a_1p9>;
vddio-supply = <&vreg_s4a_1p8>;
pinctrl-names = "default";
pinctrl-0 = <&wlan_en_state>;
wlan-en-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
};
reserved-memory {
xbl_aop_mem: xbl-aop@80600000 {
reg = <0x0 0x80600000 0x0 0x260000>;
no-map;
};
slpi_mem: slpi@88c00000 {
reg = <0x0 0x88c00000 0x0 0x2f00000>;
no-map;
};
adsp_mem: adsp@8bb00000 {
reg = <0x0 0x8bb00000 0x0 0x2500000>;
no-map;
};
spss_mem: spss@8e000000 {
reg = <0x0 0x8e000000 0x0 0x100000>;
no-map;
};
cdsp_secure_heap: cdsp-secure-heap@8e100000 {
reg = <0x0 0x8e100000 0x0 0x4600000>;
no-map;
};
cont_splash_mem: cont-splash@9c000000 {
reg = <0x0 0x9c000000 0x0 0x2300000>;
no-map;
};
};
};
&adsp {
firmware-name = "qcom/sm8250/xiaomi/elish/adsp.mbn";
status = "okay";
};
&apps_rsc {
regulators-0 {
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_0p95>;
vdd-l6-l9-supply = <&vreg_s8c_1p35>;
vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
vdd-l13-l16-l17-supply = <&vreg_bob>;
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 = <1900000>;
regulator-max-microvolt = <2040000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s6a_0p95: smps6 {
regulator-name = "vreg_s6a_0p95";
regulator-min-microvolt = <950000>;
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>;
};
vreg_l13a_3p0: ldo13 {
regulator-name = "vreg_l13a_3p0";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l14a_1p88: ldo14 {
regulator-name = "vreg_l14a_1p88";
regulator-min-microvolt = <1880000>;
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 = <2856000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l18a_0p9: ldo18 {
regulator-name = "vreg_l18a_0p9";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-1 {
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_1p35>;
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 = <3008000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
};
vreg_s8c_1p35: smps8 {
regulator-name = "vreg_s8c_1p35";
regulator-min-microvolt = <1350000>;
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>;
};
vreg_l2c_1p2: ldo2 {
regulator-name = "vreg_l2c_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3c_0p92: ldo3 {
regulator-name = "vreg_l3c_0p92";
regulator-min-microvolt = <920000>;
regulator-max-microvolt = <920000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4c_1p7: ldo4 {
regulator-name = "vreg_l4c_1p7";
regulator-min-microvolt = <1704000>;
regulator-max-microvolt = <2928000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5c_1p8: ldo5 {
regulator-name = "vreg_l5c_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2928000>;
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>;
};
vreg_l7c_cam_vcm0_2p85: ldo7 {
regulator-name = "vreg_l7c_cam_vcm0_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>;
};
vreg_l10c_3p0: ldo10 {
regulator-name = "vreg_l10c_3p0";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11c_3p3: ldo11 {
regulator-name = "vreg_l11c_3p3";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3312000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-2 {
compatible = "qcom,pm8009-rpmh-regulators";
qcom,pmic-id = "f";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vreg_bob>;
vdd-l2-supply = <&vreg_s8c_1p35>;
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_0p95: smps2 {
regulator-name = "vreg_s2f_0p95";
regulator-min-microvolt = <950000>;
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 {
firmware-name = "qcom/sm8250/xiaomi/elish/cdsp.mbn";
status = "okay";
};
&gmu {
status = "okay";
};
&gpu {
tatus = "okay";
zap-shader {
memory-region = <&gpu_mem>;
firmware-name = "qcom/sm8250/xiaomi/elish/a650_zap.mbn";
};
};
&qupv3_id_0 {
status = "okay";
};
&qupv3_id_1 {
status = "okay";
};
&qupv3_id_2 {
status = "okay";
};
&gpi_dma0 {
status = "okay";
};
&gpi_dma1 {
status = "okay";
};
&gpi_dma2 {
status = "okay";
};
&i2c3 {
clock-frequency = <400000>;
status = "okay";
cs35l41_brh: speaker-amp@40 {
compatible = "cirrus,cs35l41";
reg = <0x40>;
interrupt-parent = <&tlmm>;
interrupts = <113 IRQ_TYPE_LEVEL_LOW>;
reset-gpios = <&tlmm 114 GPIO_ACTIVE_HIGH>;
cirrus,temp-warn_threshold = <3>;
cirrus,boost-peak-milliamp = <4000>;
cirrus,boost-ind-nanohenry = <1000>;
cirrus,boost-cap-microfarad = <15>;
cirrus,asp-sdout-hiz = <1>;
cirrus,gpio2-src-select = <4>;
cirrus,gpio2-output-enable;
sound-name-prefix = "BRH";
#sound-dai-cells = <1>;
};
cs35l41_blh: speaker-amp@42 {
compatible = "cirrus,cs35l41";
reg = <0x42>;
interrupt-parent = <&tlmm>;
interrupts = <112 IRQ_TYPE_LEVEL_LOW>;
reset-gpios = <&tlmm 114 GPIO_ACTIVE_HIGH>;
cirrus,boost-peak-milliamp = <4000>;
cirrus,boost-ind-nanohenry = <1000>;
cirrus,boost-cap-microfarad = <15>;
cirrus,asp-sdout-hiz = <1>;
cirrus,gpio2-src-select = <4>;
cirrus,gpio2-output-enable;
sound-name-prefix = "BLH";
#sound-dai-cells = <1>;
};
};
&i2c13 {
clock-frequency = <400000>;
status = "okay";
touchscreen: fts@49 {
status = "okay";
compatible = "st,fts";
reg = <0x49>;
interrupt-parent = <&tlmm>;
interrupts = <39 0x2008>;
pinctrl-names = "pmx_ts_active", "pmx_ts_suspend";
pinctrl-0 = <&ts_active>;
pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>;
avdd-supply = <&vreg_touch_vddio>;
vdd-supply = <&vreg_l1c_1p8>;
fts,pwr-reg-name = "avdd";
fts,bus-reg-name = "vdd";
fts,irq-gpio = <&tlmm 39 0x2008>;
fts,irq-gpio-name = "fts_irq";
fts,reset-gpio-enable;
fts,reset-gpio = <&tlmm 38 0x00>;
fts,reset-gpio-name = "fts_rst";
fts,irq-flags = <0x2008>; /* IRQF_ONESHOT | IRQF_TRIGGER_LOW */
fts,x-max = <1080>;
fts,y-max = <2340>;
// fts,fod-lx = <421>;
// fts,fod-ly = <1788>;
// fts,fod-x-size = <238>;
// fts,fod-y-size = <238>;
fts,default-fw-name = "st_fts_j2.ftb";
fts,config-array-size = <2>;
fts,dump-click-count;
// fts,support-fod;
fts,touch-up-threshold-min = <40>;
fts,touch-up-threshold-max = <120>;
fts,touch-up-threshold-def = <80>;
fts,touch-tolerance-min = <5>;
fts,touch-tolerance-max = <35>;
fts,touch-tolerance-def = <25>;
fts,touch-idletime-min = <0>;
fts,touch-idletime-max = <12750>;
fts,touch-idletime-def = <12450>;
/*edge filter rects in gamemode*/
fts,cornerfilter-area-step1 = <100>;
fts,cornerfilter-area-step2 = <170>;
fts,cornerfilter-area-step3 = <250>;
fts,touch-deadzone-filter-ver = <2 0 0 0 0 0 0 0
2 1 0 0 0 0 0 0
2 2 0 0 5 2339 0 0
2 3 1074 0 1079 2339 0 0>;
fts,touch-deadzone-filter-hor = <2 0 0 0 1079 5 0 0
2 1 0 2334 1079 2339 0 0
2 2 0 0 5 2339 0 0
2 3 1074 0 1079 2339 0 0>;
fts,touch-edgezone-filter-ver = <1 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0
1 2 0 0 40 2339 0 0
1 3 1039 0 1079 2339 0 0>;
fts,touch-edgezone-filter-hor = <1 0 0 0 1079 40 0 0
1 1 0 2299 1079 2339 0 0
1 2 0 0 40 2339 0 0
1 3 1039 0 1079 2339 0 0>;
fts,touch-cornerzone-filter-ver = <0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 2 0 2039 150 2339 0 0
0 3 929 2039 1079 2339 0 0>;
fts,touch-cornerzone-filter-hor1 = <0 0 0 0 170 170 0 0
0 1 0 0 0 0 0 0
0 2 0 2169 170 2339 0 0
0 3 0 0 0 0 0 0>;
fts,touch-cornerzone-filter-hor2 = <0 0 0 0 0 0 0 0
0 1 909 0 1079 170 0 0
0 2 0 0 0 0 0 0
0 3 909 2169 1079 2339 0 0>;
fts,cfg_0 {
fts,tp-vendor = <0x38>;
fts,tp-module = <0>;
fts,fw-name = "st_fts_j2_1.ftb";
fts,limit-name = "stm_fts_production_limits_1.csv";
};
fts,cfg_1 {
fts,tp-vendor = <0x42>;
fts,tp-module = <1>;
fts,fw-name = "st_fts_j2_2.ftb";
fts,limit-name = "stm_fts_production_limits_2.csv";
};
};
};
//TODO: Port the CHARGER Driver
&i2c15{
status = "disabled";
// bq25970: bq25970-standalone@66 {
// compatible = "ti,bq2597x-standalone";
// reg = <0x66>;
// interrupt-parent = <&tlmm>;
// interrupts = <68 0x2002>;
// pinctrl-names = "default";
// pinctrl-0 = <&bq2597x_master_int_default>;
// ti,bq2597x,bat-ovp-alarm-disable;
// ti,bq2597x,bat-ocp-disable;
// ti,bq2597x,bat-ocp-alarm-disable;
// ti,bq2597x,bat-ucp-alarm-disable;
// ti,bq2597x,bat-ucp-disable;
// ti,bq2597x,bat-therm-disable;
// ti,bq2597x,bus-therm-disable;
// ti,bq2597x,die-therm-disable;
// ti,bq2597x,bat-ovp-threshold = <4550>;
// ti,bq2597x,bat-ovp-alarm-threshold = <4525>;
// ti,bq2597x,bus-ovp-threshold = <12000>;
// ti,bq2597x,bus-ovp-alarm-threshold = <11000>;
// ti,bq2597x,bus-ocp-threshold = <3750>;
// ti,bq2597x,bus-ocp-alarm-threshold = <3500>;
// ti,bq2597x,bat-therm-threshold = <0x15>;/*4.1%*/
// ti,bq2597x,bus-therm-threshold = <0x15>;/*4.1%*/
// ti,bq2597x,die-therm-threshold = <145>;
// ti,bq2597x,ac-ovp-threshold = <14>;
// };
};
//TODO: There are some issues with DSC CMD Mode that need to be fixed,https://gitlab.freedesktop.org/drm/msm/-/issues/42
// &mdss {
// status = "okay";
// };
// &mdss_dsi0 {
// vdda-supply = <&vreg_l9a_1p2>;
// qcom,master-dsi;
// status = "okay";
// display_panel: panel@0 {
// reg = <0>;
// vddio-supply = <&vreg_l14a_1p88>;
// reset-gpios = <&tlmm 12 0>;
// port {
// panel_in: endpoint {
// remote-endpoint = <&mdss_dsi0_out>;
// };
// };
// };
// };
// &mdss_dsi0_out {
// data-lanes = <0 1 2 3>;
// remote-endpoint = <&panel_in>;
// };
// &mdss_dsi0_phy {
// vdds-supply = <&vreg_l5a_0p88>;
// status = "okay";
// };
&pcie0 {
status = "okay";
};
&pcie0_phy {
vdda-phy-supply = <&vreg_l5a_0p88>;
vdda-pll-supply = <&vreg_l9a_1p2>;
status = "okay";
/* Power on QCA639x chip, otherwise PCIe bus timeouts */
power-domains = <&qca639x>;
};
&pm8150_gpios {
vol_up_n: vol-up-n-state {
pins = "gpio6";
function = "normal";
power-source = <1>;
input-enable;
bias-pull-up;
};
};
&pon_pwrkey {
status = "okay";
};
&pon_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
};
&slpi {
firmware-name = "qcom/sm8250/xiaomi/elish/slpi.mbn";
status = "disabled";
};
&q6afedai {
dai@20 {
reg = <TERTIARY_MI2S_RX>;
qcom,sd-lines = <0>;
};
};
&q6asmdai {
dai@0 {
reg = <0>;
};
};
&swr1 {
status = "okay";
wcd_rx: wcd9380-rx@0,4 {
compatible = "sdw20217010d00";
reg = <0x0d 0x1170224>;
qcom,rx-port-mapping = <1 2 3 4 5>;
};
};
&swr2 {
status = "okay";
wcd_tx: wcd9380-tx@0,3 {
compatible = "sdw20217010d00";
reg = <0x0d 0x1170223>;
qcom,tx-port-mapping = <2 3 4 5>;
};
};
&sound {
compatible = "qcom,sm8250-sndcard";
model = "Xiaomi Mi 10";
pinctrl-names = "default";
pinctrl-0 = <&tert_mi2s_active>;
mm1-dai-link {
link-name = "MultiMedia1";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
};
};
speaker-dai-link {
link-name = "Tertiary MI2S Playback";
cpu {
sound-dai = <&q6afedai TERTIARY_MI2S_RX>;
};
platform {
sound-dai = <&q6routing>;
};
codec {
sound-dai = <&cs35l41_brh 0>, <&cs35l41_blh 0>;
};
};
};
&tlmm {
gpio-reserved-ranges = <28 4>, <40 4>, <52 4>;
mdss_te_default: mdss-te-default-state {
pins = "gpio66";
function = "mdp_vsync";
drive-strength = <2>;
bias-pull-down;
};
bt_en_state: bt-default-state {
bt-en-pins {
pins = "gpio21";
function = "gpio";
drive-strength = <16>;
output-low;
bias-pull-up;
};
};
wlan_en_state: wlan-default-state {
wlan-en-pins {
pins = "gpio20";
function = "gpio";
drive-strength = <16>;
output-low;
bias-pull-up;
};
};
key_confirm: key_confirm_default {
pins = "gpio7";
function = "normal";
input-enable;
bias-pull-up;
};
ts_active: ts-active {
pins = "gpio38", "gpio39";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
ts_int_suspend: ts-int-suspend {
pins = "gpio39";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
ts_reset_suspend: ts-reset-suspend {
pins = "gpio38";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
};
&uart6 {
status = "okay";
bluetooth {
compatible = "qcom,qca6390-bt";
pinctrl-names = "default";
pinctrl-0 = <&bt_en_state>;
power-domains = <&qca639x>;
enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
swctrl-gpios = <&tlmm 124 GPIO_ACTIVE_HIGH>;
};
};
&ufs_mem_hc {
vcc-supply = <&vreg_l17a_3p0>;
vcc-max-microamp = <800000>;
vccq-supply = <&vreg_l6a_1p2>;
vccq-max-microamp = <800000>;
vccq2-supply = <&vreg_s4a_1p8>;
vccq2-max-microamp = <800000>;
status = "okay";
};
&ufs_mem_phy {
vdda-phy-supply = <&vreg_l5a_0p88>;
vdda-pll-supply = <&vreg_l9a_1p2>;
status = "okay";
};
&usb_1 {
/* USB 2.0 only */
qcom,select-utmi-as-pipe-clk;
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "otg";
maximum-speed = "high-speed";
/* Remove USB3 phy */
phys = <&usb_1_hsphy>;
phy-names = "usb2-phy";
usb-role-switch;
};
&usb_1_hsphy {
vdda-pll-supply = <&vreg_l5a_0p88>;
vdda18-supply = <&vreg_l12a_1p8>;
vdda33-supply = <&vreg_l2a_3p1>;
status = "okay";
};
&venus {
firmware-name = "qcom/sm8250/xiaomi/elish/venus.mbn";
status = "okay";
};

View File

@@ -0,0 +1,13 @@
/dts-v1/;
#include "sm8250-xiaomi-umi-common.dtsi"
/ {
model = "Xiaomi Mi 10 (CSOT)";
compatible = "xiaomi,umi", "qcom,sm8250";
};
// &display_panel {
// compatible = "xiaomi-umi-csot";
// status = "okay";
// };

View File

@@ -0,0 +1,13 @@
/dts-v1/;
#include "sm8250-xiaomi-umi-common.dtsi"
/ {
model = "Xiaomi Mi 10 (SMS)";
compatible = "xiaomi,umi", "qcom,sm8250";
};
// &display_panel {
// compatible = "xiaomi-umi-sms";
// status = "okay";
// };

1
patch/kernel/sm8250-edge Symbolic link
View File

@@ -0,0 +1 @@
archive/sm8250-6.8