Merge branch 'arm64-for-6.15' into arm64-for-6.16

Changes queued for v6.15 would have had the potential to break
bisectability and was therefor not accepted. Merge the whole set towards
v6.16, as this is no longer a concern.
This commit is contained in:
Bjorn Andersson
2025-04-07 14:11:36 -05:00
98 changed files with 11719 additions and 4147 deletions

View File

@@ -1020,6 +1020,7 @@ properties:
- items:
- enum:
- sony,pdx201
- xiaomi,ginkgo
- xiaomi,laurel-sprout
- const: qcom,sm6125
@@ -1123,7 +1124,9 @@ properties:
- items:
- enum:
- lenovo,thinkpad-t14s
- lenovo,thinkpad-t14s-lcd
- lenovo,thinkpad-t14s-oled
- const: lenovo,thinkpad-t14s
- const: qcom,x1e78100
- const: qcom,x1e80100

View File

@@ -116,6 +116,10 @@ dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs615-ride.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2.dtb
qcs6490-rb3gen2-vision-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-vision-mezzanine.dtbo
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-vision-mezzanine.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs8300-ride.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs8550-aim300-aiot.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride.dtb
@@ -246,6 +250,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm4450-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6115-fxtec-pro1x.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6115p-lenovo-j606f.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6125-sony-xperia-seine-pdx201.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6125-xiaomi-ginkgo.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6125-xiaomi-laurel-sprout.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6350-sony-xperia-lena-pdx213.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6375-sony-xperia-murray-pdx225.dtb
@@ -290,6 +295,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8750-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8750-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e001de-devkit.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e78100-lenovo-thinkpad-t14s.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e78100-lenovo-thinkpad-t14s-oled.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-asus-vivobook-s15.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-crd.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-dell-xps13-9345.dtb
@@ -298,3 +304,4 @@ dtb-$(CONFIG_ARCH_QCOM) += x1e80100-lenovo-yoga-slim7x.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus13.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus15.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-qcp.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1p42100-crd.dtb

View File

@@ -177,6 +177,46 @@ cpu_speed_bin: cpu-speed-bin@1d {
reg = <0x1d 0x2>;
bits = <7 2>;
};
tsens_sens11_off: s11@3a5 {
reg = <0x3a5 0x1>;
bits = <4 4>;
};
tsens_sens12_off: s12@3a6 {
reg = <0x3a6 0x1>;
bits = <0 4>;
};
tsens_sens13_off: s13@3a6 {
reg = <0x3a6 0x1>;
bits = <4 4>;
};
tsens_sens14_off: s14@3ad {
reg = <0x3ad 0x2>;
bits = <7 4>;
};
tsens_sens15_off: s15@3ae {
reg = <0x3ae 0x1>;
bits = <3 4>;
};
tsens_mode: mode@3e1 {
reg = <0x3e1 0x1>;
bits = <0 3>;
};
tsens_base0: base0@3e1 {
reg = <0x3e1 0x2>;
bits = <3 10>;
};
tsens_base1: base1@3e2 {
reg = <0x3e2 0x2>;
bits = <5 10>;
};
};
rng: rng@e3000 {
@@ -186,6 +226,32 @@ rng: rng@e3000 {
clock-names = "core";
};
tsens: thermal-sensor@4a9000 {
compatible = "qcom,ipq5332-tsens";
reg = <0x004a9000 0x1000>,
<0x004a8000 0x1000>;
interrupts = <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "combined";
nvmem-cells = <&tsens_mode>,
<&tsens_base0>,
<&tsens_base1>,
<&tsens_sens11_off>,
<&tsens_sens12_off>,
<&tsens_sens13_off>,
<&tsens_sens14_off>,
<&tsens_sens15_off>;
nvmem-cell-names = "mode",
"base0",
"base1",
"tsens_sens11_off",
"tsens_sens12_off",
"tsens_sens13_off",
"tsens_sens14_off",
"tsens_sens15_off";
#qcom,sensors = <5>;
#thermal-sensor-cells = <1>;
};
tlmm: pinctrl@1000000 {
compatible = "qcom,ipq5332-tlmm";
reg = <0x01000000 0x300000>;
@@ -481,6 +547,75 @@ frame@b128000 {
};
};
thermal-zones {
rfa-0-thermal {
thermal-sensors = <&tsens 11>;
trips {
rfa-0-critical {
temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
};
};
rfa-1-thermal {
thermal-sensors = <&tsens 12>;
trips {
rfa-1-critical {
temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
};
};
misc-thermal {
thermal-sensors = <&tsens 13>;
trips {
misc-critical {
temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
};
};
cpu-top-thermal {
polling-delay-passive = <100>;
thermal-sensors = <&tsens 14>;
trips {
cpu-top-critical {
temperature = <115000>;
hysteresis = <1000>;
type = "critical";
};
cpu-passive {
temperature = <105000>;
hysteresis = <1000>;
type = "passive";
};
};
};
top-glue-thermal {
thermal-sensors = <&tsens 15>;
trips {
top-glue-critical {
temperature = <125000>;
hysteresis = <1000>;
type = "critical";
};
};
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,

View File

@@ -7,6 +7,8 @@
/dts-v1/;
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include "ipq5424.dtsi"
/ {
@@ -17,6 +19,33 @@ aliases {
serial0 = &uart1;
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&gpio_keys_default>;
pinctrl-names = "default";
button-wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&tlmm 19 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-0 = <&gpio_leds_default>;
pinctrl-names = "default";
led-0 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WLAN;
gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0tx";
default-state = "off";
};
};
vreg_misc_3p3: regulator-usb-3p3 {
compatible = "regulator-fixed";
regulator-min-microvolt = <3300000>;
@@ -69,6 +98,13 @@ &qusb_phy_1 {
status = "okay";
};
&sdhc {
pinctrl-0 = <&sdc_default_state>;
pinctrl-names = "default";
status = "okay";
};
&sleep_clk {
clock-frequency = <32000>;
};
@@ -95,6 +131,20 @@ &ssphy_0 {
};
&tlmm {
gpio_keys_default: gpio-keys-default-state {
pins = "gpio19";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
gpio_leds_default: gpio-leds-default-state {
pins = "gpio42";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
spi0_default_state: spi0-default-state {
clk-pins {
pins = "gpio6";

View File

@@ -132,6 +132,11 @@ reserved-memory {
#size-cells = <2>;
ranges;
bootloader@8a200000 {
reg = <0x0 0x8a200000 0x0 0x400000>;
no-map;
};
tz@8a600000 {
reg = <0x0 0x8a600000 0x0 0x200000>;
no-map;
@@ -152,6 +157,93 @@ soc@0 {
#size-cells = <2>;
ranges = <0 0 0 0 0x10 0>;
efuse@a4000 {
compatible = "qcom,ipq5424-qfprom", "qcom,qfprom";
reg = <0 0x000a4000 0 0x741>;
#address-cells = <1>;
#size-cells = <1>;
tsens_sens9_off: s9@3dc {
reg = <0x3dc 0x1>;
bits = <4 4>;
};
tsens_sens10_off: s10@3dd {
reg = <0x3dd 0x1>;
bits = <0 4>;
};
tsens_sens11_off: s11@3dd {
reg = <0x3dd 0x1>;
bits = <4 4>;
};
tsens_sens12_off: s12@3de {
reg = <0x3de 0x1>;
bits = <0 4>;
};
tsens_sens13_off: s13@3de {
reg = <0x3de 0x1>;
bits = <4 4>;
};
tsens_sens14_off: s14@3e5 {
reg = <0x3e5 0x2>;
bits = <7 4>;
};
tsens_sens15_off: s15@3e6 {
reg = <0x3e6 0x1>;
bits = <3 4>;
};
tsens_mode: mode@419 {
reg = <0x419 0x1>;
bits = <0 3>;
};
tsens_base0: base0@419 {
reg = <0x419 0x2>;
bits = <3 10>;
};
tsens_base1: base1@41a {
reg = <0x41a 0x2>;
bits = <5 10>;
};
};
tsens: thermal-sensor@4a9000 {
compatible = "qcom,ipq5424-tsens";
reg = <0 0x004a9000 0 0x1000>,
<0 0x004a8000 0 0x1000>;
interrupts = <GIC_SPI 105 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "combined";
nvmem-cells = <&tsens_mode>,
<&tsens_base0>,
<&tsens_base1>,
<&tsens_sens9_off>,
<&tsens_sens10_off>,
<&tsens_sens11_off>,
<&tsens_sens12_off>,
<&tsens_sens13_off>,
<&tsens_sens14_off>,
<&tsens_sens15_off>;
nvmem-cell-names = "mode",
"base0",
"base1",
"tsens_sens9_off",
"tsens_sens10_off",
"tsens_sens11_off",
"tsens_sens12_off",
"tsens_sens13_off",
"tsens_sens14_off",
"tsens_sens15_off";
#qcom,sensors = <7>;
#thermal-sensor-cells = <1>;
};
rng: rng@4c3000 {
compatible = "qcom,ipq5424-trng", "qcom,trng";
reg = <0 0x004c3000 0 0x1000>;
@@ -265,6 +357,8 @@ sdhc: mmc@7804000 {
<&xo_board>;
clock-names = "iface", "core", "xo";
supports-cqe;
status = "disabled";
};
@@ -508,6 +602,120 @@ frame@f42d000 {
};
thermal_zones: thermal-zones {
cpu0-thermal {
polling-delay-passive = <100>;
thermal-sensors = <&tsens 14>;
trips {
cpu-critical {
temperature = <120000>;
hysteresis = <9000>;
type = "critical";
};
cpu-passive {
temperature = <110000>;
hysteresis = <9000>;
type = "passive";
};
};
};
cpu1-thermal {
polling-delay-passive = <100>;
thermal-sensors = <&tsens 12>;
trips {
cpu-critical {
temperature = <120000>;
hysteresis = <9000>;
type = "critical";
};
cpu-passive {
temperature = <110000>;
hysteresis = <9000>;
type = "passive";
};
};
};
cpu2-thermal {
polling-delay-passive = <100>;
thermal-sensors = <&tsens 11>;
trips {
cpu-critical {
temperature = <120000>;
hysteresis = <9000>;
type = "critical";
};
cpu-passive {
temperature = <110000>;
hysteresis = <9000>;
type = "passive";
};
};
};
cpu3-thermal {
polling-delay-passive = <100>;
thermal-sensors = <&tsens 13>;
trips {
cpu-critical {
temperature = <120000>;
hysteresis = <9000>;
type = "critical";
};
cpu-passive {
temperature = <110000>;
hysteresis = <9000>;
type = "passive";
};
};
};
wcss-tile2-thermal {
thermal-sensors = <&tsens 9>;
trips {
wcss-tile2-critical {
temperature = <125000>;
hysteresis = <9000>;
type = "critical";
};
};
};
wcss-tile3-thermal {
thermal-sensors = <&tsens 10>;
trips {
wcss-tile3-critical {
temperature = <125000>;
hysteresis = <9000>;
type = "critical";
};
};
};
top-glue-thermal {
thermal-sensors = <&tsens 15>;
trips {
top-glue-critical {
temperature = <125000>;
hysteresis = <9000>;
type = "critical";
};
};
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,

View File

@@ -7,7 +7,7 @@
/dts-v1/;
#include "ipq6018.dtsi"
#include "ipq6018-mp5496.dtsi"
/ {
model = "Qualcomm Technologies, Inc. IPQ6018/AP-CP01-C1";

View File

@@ -0,0 +1,44 @@
// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
/*
* ipq6018-mp5496.dtsi describes common properties (e.g. regulators) that
* apply to most devices that make use of the IPQ6018 SoC and MP5496 PMIC.
*/
#include "ipq6018.dtsi"
&cpu0 {
cpu-supply = <&mp5496_s2>;
};
&cpu1 {
cpu-supply = <&mp5496_s2>;
};
&cpu2 {
cpu-supply = <&mp5496_s2>;
};
&cpu3 {
cpu-supply = <&mp5496_s2>;
};
&rpm_requests {
regulators {
compatible = "qcom,rpm-mp5496-regulators";
mp5496_s2: s2 {
regulator-min-microvolt = <725000>;
regulator-max-microvolt = <1062500>;
regulator-always-on;
};
mp5496_l2: l2 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
};
};
};
&sdhc {
vqmmc-supply = <&mp5496_l2>;
};

View File

@@ -43,7 +43,6 @@ cpu0: cpu@0 {
clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
clock-names = "cpu";
operating-points-v2 = <&cpu_opp_table>;
cpu-supply = <&ipq6018_s2>;
#cooling-cells = <2>;
};
@@ -56,7 +55,6 @@ cpu1: cpu@1 {
clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
clock-names = "cpu";
operating-points-v2 = <&cpu_opp_table>;
cpu-supply = <&ipq6018_s2>;
#cooling-cells = <2>;
};
@@ -69,7 +67,6 @@ cpu2: cpu@2 {
clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
clock-names = "cpu";
operating-points-v2 = <&cpu_opp_table>;
cpu-supply = <&ipq6018_s2>;
#cooling-cells = <2>;
};
@@ -82,7 +79,6 @@ cpu3: cpu@3 {
clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
clock-names = "cpu";
operating-points-v2 = <&cpu_opp_table>;
cpu-supply = <&ipq6018_s2>;
#cooling-cells = <2>;
};
@@ -119,6 +115,13 @@ opp-1056000000 {
clock-latency-ns = <200000>;
};
opp-1200000000 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <850000>;
opp-supported-hw = <0x4>;
clock-latency-ns = <200000>;
};
opp-1320000000 {
opp-hz = /bits/ 64 <1320000000>;
opp-microvolt = <862500>;
@@ -133,6 +136,13 @@ opp-1440000000 {
clock-latency-ns = <200000>;
};
opp-1512000000 {
opp-hz = /bits/ 64 <1512000000>;
opp-microvolt = <937500>;
opp-supported-hw = <0x2>;
clock-latency-ns = <200000>;
};
opp-1608000000 {
opp-hz = /bits/ 64 <1608000000>;
opp-microvolt = <987500>;
@@ -170,16 +180,6 @@ glink-edge {
rpm_requests: rpm-requests {
compatible = "qcom,rpm-ipq6018", "qcom,glink-smd-rpm";
qcom,glink-channels = "rpm_requests";
regulators {
compatible = "qcom,rpm-mp5496-regulators";
ipq6018_s2: s2 {
regulator-min-microvolt = <725000>;
regulator-max-microvolt = <1062500>;
regulator-always-on;
};
};
};
};
};

View File

@@ -111,6 +111,13 @@ mp5496_l2: l2 {
regulator-always-on;
regulator-boot-on;
};
mp5496_l5: l5 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
regulator-boot-on;
};
};
};
@@ -139,6 +146,50 @@ gpio_leds_default: gpio-leds-default-state {
drive-strength = <8>;
bias-pull-up;
};
qpic_snand_default_state: qpic-snand-default-state {
clock-pins {
pins = "gpio5";
function = "qspi_clk";
drive-strength = <8>;
bias-disable;
};
cs-pins {
pins = "gpio4";
function = "qspi_cs";
drive-strength = <8>;
bias-disable;
};
data-pins {
pins = "gpio0", "gpio1", "gpio2", "gpio3";
function = "qspi_data";
drive-strength = <8>;
bias-disable;
};
};
};
&qpic_bam {
status = "okay";
};
&qpic_nand {
pinctrl-0 = <&qpic_snand_default_state>;
pinctrl-names = "default";
status = "okay";
flash@0 {
compatible = "spi-nand";
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
nand-ecc-engine = <&qpic_nand>;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
};
};
&usb_0_dwc3 {
@@ -146,7 +197,7 @@ &usb_0_dwc3 {
};
&usb_0_qmpphy {
vdda-pll-supply = <&mp5496_l2>;
vdda-pll-supply = <&mp5496_l5>;
vdda-phy-supply = <&regulator_fixed_0p925>;
status = "okay";
@@ -154,7 +205,7 @@ &usb_0_qmpphy {
&usb_0_qusbphy {
vdd-supply = <&regulator_fixed_0p925>;
vdda-pll-supply = <&mp5496_l2>;
vdda-pll-supply = <&mp5496_l5>;
vdda-phy-dpdm-supply = <&regulator_fixed_3p3>;
status = "okay";

View File

@@ -55,18 +55,6 @@ &pcie3 {
status = "okay";
};
&sdhc_1 {
pinctrl-0 = <&sdc_default_state>;
pinctrl-names = "default";
mmc-ddr-1_8v;
mmc-hs200-1_8v;
mmc-hs400-1_8v;
mmc-hs400-enhanced-strobe;
max-frequency = <384000000>;
bus-width = <8>;
status = "okay";
};
&tlmm {
pcie1_default: pcie1-default-state {

View File

@@ -378,6 +378,8 @@ cryptobam: dma-controller@704000 {
interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
#dma-cells = <1>;
qcom,ee = <1>;
qcom,num-ees = <4>;
num-channels = <16>;
qcom,controlled-remotely;
};
@@ -673,6 +675,33 @@ blsp1_spi4: spi@78b9000 {
status = "disabled";
};
qpic_bam: dma-controller@7984000 {
compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
reg = <0x07984000 0x1c000>;
interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_QPIC_AHB_CLK>;
clock-names = "bam_clk";
#dma-cells = <1>;
qcom,ee = <0>;
status = "disabled";
};
qpic_nand: spi@79b0000 {
compatible = "qcom,ipq9574-snand";
reg = <0x079b0000 0x10000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_QPIC_CLK>,
<&gcc GCC_QPIC_AHB_CLK>,
<&gcc GCC_QPIC_IO_MACRO_CLK>;
clock-names = "core", "aon", "iom";
dmas = <&qpic_bam 0>,
<&qpic_bam 1>,
<&qpic_bam 2>;
dma-names = "tx", "rx", "cmd";
status = "disabled";
};
usb_0_qusbphy: phy@7b000 {
compatible = "qcom,ipq9574-qusb2-phy";
reg = <0x0007b000 0x180>;
@@ -876,11 +905,11 @@ frame@b128000 {
pcie1: pcie@10000000 {
compatible = "qcom,pcie-ipq9574";
reg = <0x10000000 0xf1d>,
<0x10000f20 0xa8>,
<0x10001000 0x1000>,
<0x000f8000 0x4000>,
<0x10100000 0x1000>;
reg = <0x10000000 0xf1d>,
<0x10000f20 0xa8>,
<0x10001000 0x1000>,
<0x000f8000 0x4000>,
<0x10100000 0x1000>;
reg-names = "dbi", "elbi", "atu", "parf", "config";
device_type = "pci";
linux,pci-domain = <1>;
@@ -956,11 +985,11 @@ pcie1: pcie@10000000 {
pcie3: pcie@18000000 {
compatible = "qcom,pcie-ipq9574";
reg = <0x18000000 0xf1d>,
<0x18000f20 0xa8>,
<0x18001000 0x1000>,
<0x000f0000 0x4000>,
<0x18100000 0x1000>;
reg = <0x18000000 0xf1d>,
<0x18000f20 0xa8>,
<0x18001000 0x1000>,
<0x000f0000 0x4000>,
<0x18100000 0x1000>;
reg-names = "dbi", "elbi", "atu", "parf", "config";
device_type = "pci";
linux,pci-domain = <3>;
@@ -972,14 +1001,14 @@ pcie3: pcie@18000000 {
ranges = <0x01000000 0x0 0x00000000 0x18200000 0x0 0x100000>,
<0x02000000 0x0 0x18300000 0x18300000 0x0 0x7d00000>;
interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 494 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 495 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "msi0",
"msi1",
"msi2",
@@ -1036,11 +1065,11 @@ pcie3: pcie@18000000 {
pcie2: pcie@20000000 {
compatible = "qcom,pcie-ipq9574";
reg = <0x20000000 0xf1d>,
<0x20000f20 0xa8>,
<0x20001000 0x1000>,
<0x00088000 0x4000>,
<0x20100000 0x1000>;
reg = <0x20000000 0xf1d>,
<0x20000f20 0xa8>,
<0x20001000 0x1000>,
<0x00088000 0x4000>,
<0x20100000 0x1000>;
reg-names = "dbi", "elbi", "atu", "parf", "config";
device_type = "pci";
linux,pci-domain = <2>;
@@ -1116,11 +1145,11 @@ pcie2: pcie@20000000 {
pcie0: pci@28000000 {
compatible = "qcom,pcie-ipq9574";
reg = <0x28000000 0xf1d>,
<0x28000f20 0xa8>,
<0x28001000 0x1000>,
<0x00080000 0x4000>,
<0x28100000 0x1000>;
reg = <0x28000000 0xf1d>,
<0x28000f20 0xa8>,
<0x28001000 0x1000>,
<0x00080000 0x4000>,
<0x28100000 0x1000>;
reg-names = "dbi", "elbi", "atu", "parf", "config";
device_type = "pci";
linux,pci-domain = <0>;
@@ -1193,6 +1222,35 @@ pcie0: pci@28000000 {
status = "disabled";
};
nsscc: clock-controller@39b00000 {
compatible = "qcom,ipq9574-nsscc";
reg = <0x39b00000 0x80000>;
clocks = <&xo_board_clk>,
<&cmn_pll NSS_1200MHZ_CLK>,
<&cmn_pll PPE_353MHZ_CLK>,
<&gcc GPLL0_OUT_AUX>,
<0>,
<0>,
<0>,
<0>,
<0>,
<0>,
<&gcc GCC_NSSCC_CLK>;
clock-names = "xo",
"nss_1200",
"ppe_353",
"gpll0_out",
"uniphy0_rx",
"uniphy0_tx",
"uniphy1_rx",
"uniphy1_tx",
"uniphy2_rx",
"uniphy2_tx",
"bus";
#clock-cells = <1>;
#reset-cells = <1>;
#interconnect-cells = <1>;
};
};
thermal-zones {

View File

@@ -20,6 +20,14 @@ / {
qcom,msm-id = <QCOM_ID_MSM8917 0>;
qcom,board-id = <0x1000b 2>, <0x2000b 2>;
pwm_backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pm8937_pwm 0 100000>;
brightness-levels = <0 255>;
num-interpolated-steps = <255>;
default-brightness-level = <128>;
};
battery: battery {
compatible = "simple-battery";
charge-full-design-microamp-hours = <3000000>;
@@ -119,7 +127,7 @@ bq27426@55 {
monitored-battery = <&battery>;
};
bq25601@6b{
bq25601@6b {
compatible = "ti,bq25601";
reg = <0x6b>;
interrupts-extended = <&tlmm 61 IRQ_TYPE_EDGE_FALLING>;
@@ -131,6 +139,23 @@ bq25601@6b{
};
};
&pm8937_gpios {
pwm_enable_default: pwm-enable-default-state {
pins = "gpio8";
function = "dtest2";
output-low;
bias-disable;
qcom,drive-strength = <2>;
};
};
&pm8937_pwm {
pinctrl-0 = <&pwm_enable_default>;
pinctrl-names = "default";
status = "okay";
};
&pm8937_resin {
linux,code = <KEY_VOLUMEDOWN>;

View File

@@ -587,7 +587,7 @@ tsens_s4_p2: s4-p2@217 {
bits = <1 6>;
};
tsens_s9_p1: s9-p1@230{
tsens_s9_p1: s9-p1@230 {
reg = <0x230 1>;
bits = <0 6>;
};

View File

@@ -101,5 +101,5 @@ i2c5_hid_active: i2c5-hid-active-state {
};
&wifi {
qcom,ath10k-calibration-variant = "Lenovo_Miix630";
qcom,calibration-variant = "Lenovo_Miix630";
};

View File

@@ -143,6 +143,14 @@ pmic@1 {
#address-cells = <1>;
#size-cells = <0>;
pm8937_pwm: pwm {
compatible = "qcom,pm8937-pwm", "qcom,pm8916-pwm";
#pwm-cells = <2>;
status = "disabled";
};
pm8937_spmi_regulators: regulators {
compatible = "qcom,pm8937-regulators";
};

View File

@@ -550,6 +550,13 @@ qup_uart0_default: qup-uart0-default-state {
bias-disable;
};
qup_uart3_default: qup-uart3-default-state {
pins = "gpio8", "gpio9", "gpio10", "gpio11";
function = "qup3";
drive-strength = <2>;
bias-disable;
};
qup_uart4_default: qup-uart4-default-state {
pins = "gpio12", "gpio13";
function = "qup4";
@@ -1239,6 +1246,23 @@ &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
status = "disabled";
};
uart3: serial@4a8c000 {
compatible = "qcom,geni-uart";
reg = <0x0 0x04a8c000 0x0 0x4000>;
interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
clock-names = "se";
pinctrl-0 = <&qup_uart3_default>;
pinctrl-names = "default";
interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
&qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
&config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
interconnect-names = "qup-core",
"qup-config";
status = "disabled";
};
i2c4: i2c@4a90000 {
compatible = "qcom,geni-i2c";
reg = <0x0 0x04a90000 0x0 0x4000>;

View File

@@ -138,6 +138,34 @@ vreg_ois_dvdd_1p1: regulator-ois-dvdd-1p1 {
vin-supply = <&vreg_s8b>;
};
vreg_oled_dvdd: regulator-oled-dvdd {
compatible = "regulator-fixed";
regulator-name = "oled_dvdd";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vreg_s1b>;
regulator-boot-on;
};
vreg_oled_vci: regulator-oled-vci {
compatible = "regulator-fixed";
regulator-name = "oled_vci";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
gpio = <&pm8350c_gpios 7 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vreg_l13c>;
regulator-boot-on;
};
reserved-memory {
cont_splash_mem: cont-splash@e1000000 {
reg = <0x0 0xe1000000 0x0 0x2300000>;
@@ -597,11 +625,6 @@ eeprom@51 {
};
};
&dispcc {
/* Disable for now so simple-framebuffer continues working */
status = "disabled";
};
&gcc {
protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
<GCC_EDP_CLKREF_EN>,
@@ -628,6 +651,14 @@ &gpi_dma1 {
status = "okay";
};
&gpu {
status = "okay";
};
&gpu_zap_shader {
firmware-name = "qcom/qcm6490/fairphone5/a660_zap.mbn";
};
&i2c1 {
status = "okay";
@@ -733,6 +764,46 @@ &ipa {
status = "okay";
};
&mdss {
status = "okay";
};
&mdss_dsi {
vdda-supply = <&vreg_l6b>;
status = "okay";
panel@0 {
compatible = "fairphone,fp5-rm692e5-boe", "raydium,rm692e5";
reg = <0>;
reset-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>;
vci-supply = <&vreg_oled_vci>;
vddio-supply = <&vreg_l12c>;
dvdd-supply = <&vreg_oled_dvdd>;
pinctrl-0 = <&disp_reset_n_active>, <&mdp_vsync>;
pinctrl-1 = <&disp_reset_n_suspend>, <&mdp_vsync>;
pinctrl-names = "default", "sleep";
port {
panel_in: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
};
};
&mdss_dsi0_out {
data-lanes = <0 1 2 3>;
remote-endpoint = <&panel_in>;
};
&mdss_dsi_phy {
vdds-supply = <&vreg_l10c>;
status = "okay";
};
&pm7250b_adc {
pinctrl-0 = <&pm7250b_adc_default>;
pinctrl-names = "default";
@@ -998,7 +1069,17 @@ &sdhc_2 {
&spi13 {
status = "okay";
/* Goodix touchscreen @ 0 */
touchscreen@0 {
compatible = "goodix,gt9897";
reg = <0>;
interrupts-extended = <&tlmm 81 IRQ_TYPE_LEVEL_LOW>;
reset-gpios = <&tlmm 105 GPIO_ACTIVE_LOW>;
avdd-supply = <&vreg_l3c>;
vddio-supply = <&vreg_l2c>;
spi-max-frequency = <1000000>;
touchscreen-size-x = <1224>;
touchscreen-size-y = <2700>;
};
};
&tlmm {
@@ -1015,6 +1096,20 @@ bluetooth_enable_default: bluetooth-enable-default-state {
bias-disable;
};
disp_reset_n_active: disp-reset-n-active-state {
pins = "gpio44";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
disp_reset_n_suspend: disp-reset-n-suspend-state {
pins = "gpio44";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
hall_sensor_default: hall-sensor-default-state {
pins = "gpio155";
function = "gpio";
@@ -1022,6 +1117,13 @@ hall_sensor_default: hall-sensor-default-state {
bias-pull-up;
};
mdp_vsync: mdp-vsync-state {
pins = "gpio80";
function = "mdp_vsync";
drive-strength = <2>;
bias-pull-down;
};
pm8008_int_default: pm8008-int-default-state {
pins = "gpio25";
function = "gpio";
@@ -1190,6 +1292,6 @@ &venus {
};
&wifi {
qcom,ath11k-calibration-variant = "Fairphone_5";
qcom,calibration-variant = "Fairphone_5";
status = "okay";
};

View File

@@ -507,6 +507,27 @@ vreg_bob_3p296: bob {
};
};
&gcc {
protected-clocks = <GCC_AGGRE_NOC_PCIE_1_AXI_CLK> ,<GCC_PCIE_1_AUX_CLK>,
<GCC_PCIE_1_AUX_CLK_SRC>, <GCC_PCIE_1_CFG_AHB_CLK>,
<GCC_PCIE_1_MSTR_AXI_CLK>, <GCC_PCIE_1_PHY_RCHNG_CLK_SRC>,
<GCC_PCIE_1_PIPE_CLK>, <GCC_PCIE_1_PIPE_CLK_SRC>,
<GCC_PCIE_1_SLV_AXI_CLK>, <GCC_PCIE_1_SLV_Q2A_AXI_CLK>,
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>, <GCC_QSPI_CORE_CLK>,
<GCC_QSPI_CORE_CLK_SRC>,<GCC_USB30_SEC_MASTER_CLK>,
<GCC_USB30_SEC_MASTER_CLK_SRC>, <GCC_USB30_SEC_MOCK_UTMI_CLK>,
<GCC_USB30_SEC_MOCK_UTMI_CLK_SRC>,
<GCC_USB30_SEC_MOCK_UTMI_POSTDIV_CLK_SRC>, <GCC_USB30_SEC_SLEEP_CLK>,
<GCC_USB3_SEC_PHY_AUX_CLK>, <GCC_USB3_SEC_PHY_AUX_CLK_SRC>,
<GCC_USB3_SEC_PHY_COM_AUX_CLK>, <GCC_USB3_SEC_PHY_PIPE_CLK>,
<GCC_USB3_SEC_PHY_PIPE_CLK_SRC>, <GCC_CFG_NOC_LPASS_CLK>,
<GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>, <GCC_MSS_CFG_AHB_CLK>,
<GCC_MSS_OFFLINE_AXI_CLK>, <GCC_MSS_SNOC_AXI_CLK>,
<GCC_MSS_Q6_MEMNOC_AXI_CLK>, <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
<GCC_SEC_CTRL_CLK_SRC>, <GCC_WPSS_AHB_CLK>,
<GCC_WPSS_AHB_BDG_MST_CLK>, <GCC_WPSS_RSCP_CLK>;
};
&gpu {
status = "okay";
};
@@ -755,7 +776,7 @@ &usb_1_qmpphy {
&wifi {
memory-region = <&wlan_fw_mem>;
qcom,ath11k-calibration-variant = "Qualcomm_qcm6490idp";
qcom,calibration-variant = "Qualcomm_qcm6490idp";
status = "okay";
};

View File

@@ -953,7 +953,7 @@ &usb_1_qmpphy {
};
&wifi {
qcom,ath11k-calibration-variant = "SHIFTphone_8";
qcom,calibration-variant = "SHIFTphone_8";
status = "okay";
};

View File

@@ -417,6 +417,12 @@ reserved-memory {
#size-cells = <2>;
ranges;
aop_cmd_db_mem: aop-cmd-db@85f20000 {
compatible = "qcom,cmd-db";
reg = <0x0 0x85f20000 0x0 0x20000>;
no-map;
};
smem_region: smem@86000000 {
compatible = "qcom,smem";
reg = <0x0 0x86000000 0x0 0x200000>;
@@ -453,6 +459,11 @@ qusb2_hstx_trim: hstx-trim@1f8 {
};
};
rng@793000 {
compatible = "qcom,qcs615-trng", "qcom,trng";
reg = <0x0 0x00793000 0x0 0x1000>;
};
sdhc_1: mmc@7c4000 {
compatible = "qcom,qcs615-sdhci", "qcom,sdhci-msm-v5";
reg = <0x0 0x007c4000 0x0 0x1000>,
@@ -1819,7 +1830,7 @@ replicator@6046000 {
in-ports {
port {
replicator0_in: endpoint {
remote-endpoint= <&tmc_etf_out>;
remote-endpoint = <&tmc_etf_out>;
};
};
};
@@ -1832,7 +1843,7 @@ port@1 {
reg = <1>;
replicator0_out1: endpoint {
remote-endpoint= <&replicator1_in>;
remote-endpoint = <&replicator1_in>;
};
};
};
@@ -1872,7 +1883,7 @@ replicator@604a000 {
in-ports {
port {
replicator1_in: endpoint {
remote-endpoint= <&replicator0_out1>;
remote-endpoint = <&replicator0_out1>;
};
};
};
@@ -1880,7 +1891,7 @@ replicator1_in: endpoint {
out-ports {
port {
replicator1_out: endpoint {
remote-endpoint= <&funnel_swao_in6>;
remote-endpoint = <&funnel_swao_in6>;
};
};
};
@@ -2311,7 +2322,7 @@ port@6 {
reg = <6>;
funnel_swao_in6: endpoint {
remote-endpoint= <&replicator1_out>;
remote-endpoint = <&replicator1_out>;
};
};
@@ -2319,7 +2330,7 @@ port@7 {
reg = <7>;
funnel_swao_in7: endpoint {
remote-endpoint= <&tpda_swao_out>;
remote-endpoint = <&tpda_swao_out>;
};
};
};
@@ -2343,7 +2354,7 @@ tmc@6b09000 {
in-ports {
port {
tmc_etf_swao_in: endpoint {
remote-endpoint= <&funnel_swao_out>;
remote-endpoint = <&funnel_swao_out>;
};
};
};
@@ -2351,7 +2362,7 @@ tmc_etf_swao_in: endpoint {
out-ports {
port {
tmc_etf_swao_out: endpoint {
remote-endpoint= <&replicator_swao_in>;
remote-endpoint = <&replicator_swao_in>;
};
};
};
@@ -3197,7 +3208,7 @@ pdc: interrupt-controller@b220000 {
interrupt-controller;
};
aoss_qmp: power-controller@c300000 {
aoss_qmp: power-management@c300000 {
compatible = "qcom,qcs615-aoss-qmp", "qcom,aoss-qmp";
reg = <0x0 0x0c300000 0x0 0x400>;
interrupts = <GIC_SPI 389 IRQ_TYPE_EDGE_RISING>;
@@ -3304,7 +3315,6 @@ spmi_bus: spmi@c440000 {
#interrupt-cells = <4>;
#address-cells = <2>;
#size-cells = <0>;
cell-index = <0>;
qcom,channel = <0>;
qcom,ee = <0>;
};

View File

@@ -0,0 +1,89 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2024-2025 Qualcomm Innovation Center, Inc. All rights reserved.
*/
/*
* Camera Sensor overlay on top of rb3gen2 core kit.
*/
/dts-v1/;
/plugin/;
#include <dt-bindings/clock/qcom,camcc-sc7280.h>
#include <dt-bindings/gpio/gpio.h>
&camss {
vdda-phy-supply = <&vreg_l10c_0p88>;
vdda-pll-supply = <&vreg_l6b_1p2>;
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
/* The port index denotes CSIPHY id i.e. csiphy3 */
port@3 {
reg = <3>;
csiphy3_ep: endpoint {
clock-lanes = <7>;
data-lanes = <0 1 2 3>;
remote-endpoint = <&imx577_ep>;
};
};
};
};
&cci1 {
status = "okay";
};
&cci1_i2c1 {
#address-cells = <1>;
#size-cells = <0>;
camera@1a {
compatible = "sony,imx577";
reg = <0x1a>;
reset-gpios = <&tlmm 78 GPIO_ACTIVE_LOW>;
pinctrl-names = "default", "suspend";
pinctrl-0 = <&cam2_default>;
pinctrl-1 = <&cam2_suspend>;
clocks = <&camcc CAM_CC_MCLK3_CLK>;
assigned-clocks = <&camcc CAM_CC_MCLK3_CLK>;
assigned-clock-rates = <24000000>;
dovdd-supply = <&vreg_l18b_1p8>;
avdd-supply = <&vph_pwr>;
dvdd-supply = <&vph_pwr>;
port {
imx577_ep: endpoint {
link-frequencies = /bits/ 64 <600000000>;
data-lanes = <1 2 3 4>;
remote-endpoint = <&csiphy3_ep>;
};
};
};
};
&tlmm {
cam2_default: cam2-default-state {
pins = "gpio67";
function = "cam_mclk";
drive-strength = <2>;
bias-disable;
};
cam2_suspend: cam2-suspend-state {
pins = "gpio67";
function = "cam_mclk";
drive-strength = <2>;
bias-pull-down;
};
};

View File

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
*/
/dts-v1/;
@@ -9,6 +9,8 @@
#define PM7250B_SID 8
#define PM7250B_SID1 9
#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
@@ -34,6 +36,7 @@ / {
aliases {
serial0 = &uart5;
serial1 = &uart7;
};
chosen {
@@ -174,6 +177,7 @@ pmic-glink {
#address-cells = <1>;
#size-cells = <0>;
orientation-gpios = <&tlmm 140 GPIO_ACTIVE_HIGH>;
connector@0 {
compatible = "usb-c-connector";
@@ -212,12 +216,107 @@ pmic_glink_sbu_in: endpoint {
};
};
thermal-zones {
sdm-skin-thermal {
thermal-sensors = <&pmk8350_adc_tm 3>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
quiet-thermal {
thermal-sensors = <&pmk8350_adc_tm 1>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
xo-thermal {
thermal-sensors = <&pmk8350_adc_tm 0>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
};
vph_pwr: vph-pwr-regulator {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
};
wcn6750-pmu {
compatible = "qcom,wcn6750-pmu";
pinctrl-0 = <&bt_en>;
pinctrl-names = "default";
vddaon-supply = <&vreg_s7b_0p972>;
vddasd-supply = <&vreg_l11c_2p8>;
vddpmu-supply = <&vreg_s7b_0p972>;
vddrfa0p8-supply = <&vreg_s7b_0p972>;
vddrfa1p2-supply = <&vreg_s8b_1p272>;
vddrfa1p7-supply = <&vreg_s1b_1p872>;
vddrfa2p2-supply = <&vreg_s1c_2p19>;
bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
regulators {
vreg_pmu_rfa_cmn: ldo0 {
regulator-name = "vreg_pmu_rfa_cmn";
};
vreg_pmu_aon_0p59: ldo1 {
regulator-name = "vreg_pmu_aon_0p59";
};
vreg_pmu_wlcx_0p8: ldo2 {
regulator-name = "vreg_pmu_wlcx_0p8";
};
vreg_pmu_wlmx_0p85: ldo3 {
regulator-name = "vreg_pmu_wlmx_0p85";
};
vreg_pmu_btcmx_0p85: ldo4 {
regulator-name = "vreg_pmu_btcmx_0p85";
};
vreg_pmu_rfa_0p8: ldo5 {
regulator-name = "vreg_pmu_rfa_0p8";
};
vreg_pmu_rfa_1p2: ldo6 {
regulator-name = "vreg_pmu_rfa_1p2";
};
vreg_pmu_rfa_1p7: ldo7 {
regulator-name = "vreg_pmu_rfa_1p7";
};
vreg_pmu_pcie_0p9: ldo8 {
regulator-name = "vreg_pmu_pcie_0p9";
};
vreg_pmu_pcie_1p8: ldo9 {
regulator-name = "vreg_pmu_pcie_1p8";
};
};
};
};
&apps_rsc {
@@ -745,6 +844,36 @@ kypd_vol_up_n: kypd-vol-up-n-state {
};
};
&pm7325_temp_alarm {
io-channels = <&pmk8350_vadc PM7325_ADC7_DIE_TEMP>;
io-channel-names = "thermal";
};
&pmk8350_adc_tm {
status = "okay";
xo-therm@0 {
reg = <0>;
io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
quiet-therm@1 {
reg = <1>;
io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
sdm-skin-therm@3 {
reg = <3>;
io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
};
&pm8350c_pwm {
nvmem = <&pmk8350_sdam_21>,
<&pmk8350_sdam_22>;
@@ -789,6 +918,44 @@ &pmk8350_rtc {
status = "okay";
};
&pmk8350_vadc {
channel@3 {
reg = <PMK8350_ADC7_DIE_TEMP>;
label = "pmk8350_die_temp";
qcom,pre-scaling = <1 1>;
};
channel@44 {
reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
label = "xo_therm";
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
qcom,ratiometric;
};
channel@103 {
reg = <PM7325_ADC7_DIE_TEMP>;
label = "pm7325_die_temp";
qcom,pre-scaling = <1 1>;
};
channel@144 {
reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
label = "pm7325_quiet_therm";
};
channel@146 {
reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
label = "pm7325_sdm_skin_therm";
};
};
&pon_pwrkey {
status = "okay";
};
@@ -799,6 +966,39 @@ &pon_resin {
status = "okay";
};
&qup_uart7_cts {
/*
* Configure a bias-bus-hold on CTS to lower power
* usage when Bluetooth is turned off. Bus hold will
* maintain a low power state regardless of whether
* the Bluetooth module drives the pin in either
* direction or leaves the pin fully unpowered.
*/
bias-bus-hold;
};
&qup_uart7_rts {
/* We'll drive RTS, so no pull */
drive-strength = <2>;
bias-disable;
};
&qup_uart7_rx {
/*
* Configure a pull-up on RX. This is needed to avoid
* garbage data when the TX pin of the Bluetooth module is
* in tri-state (module powered off or not driving the
* signal yet).
*/
bias-pull-up;
};
&qup_uart7_tx {
/* We'll drive TX, so no pull */
drive-strength = <2>;
bias-disable;
};
&qupv3_id_0 {
status = "okay";
};
@@ -842,12 +1042,90 @@ &sdhc_2 {
&tlmm {
gpio-reserved-ranges = <32 2>, /* ADSP */
<48 4>; /* NFC */
bt_en: bt-en-state {
pins = "gpio85";
function = "gpio";
output-low;
bias-disable;
};
qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
pins = "gpio28";
function = "gpio";
/*
* Configure a bias-bus-hold on CTS to lower power
* usage when Bluetooth is turned off. Bus hold will
* maintain a low power state regardless of whether
* the Bluetooth module drives the pin in either
* direction or leaves the pin fully unpowered.
*/
bias-bus-hold;
};
qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
pins = "gpio29";
function = "gpio";
/*
* Configure pull-down on RTS. As RTS is active low
* signal, pull it low to indicate the BT SoC that it
* can wakeup the system anytime from suspend state by
* pulling RX low (by sending wakeup bytes).
*/
bias-pull-down;
};
qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
pins = "gpio31";
function = "gpio";
/*
* Configure a pull-up on RX. This is needed to avoid
* garbage data when the TX pin of the Bluetooth module
* is floating which may cause spurious wakeups.
*/
bias-pull-up;
};
qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
pins = "gpio30";
function = "gpio";
/*
* Configure pull-up on TX when it isn't actively driven
* to prevent BT SoC from receiving garbage during sleep.
*/
bias-pull-up;
};
};
&uart5 {
status = "okay";
};
&uart7 {
/delete-property/ interrupts;
interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
<&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
pinctrl-1 = <&qup_uart7_sleep_cts>,
<&qup_uart7_sleep_rts>,
<&qup_uart7_sleep_tx>,
<&qup_uart7_sleep_rx>;
pinctrl-names = "default",
"sleep";
status = "okay";
bluetooth: bluetooth {
compatible = "qcom,wcn6750-bt";
vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
vddaon-supply = <&vreg_pmu_aon_0p59>;
vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>;
vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
max-speed = <3200000>;
};
};
&usb_1 {
status = "okay";
};
@@ -919,7 +1197,7 @@ &venus {
&wifi {
memory-region = <&wlan_fw_mem>;
qcom,ath11k-calibration-variant = "Qualcomm_rb3gen2";
qcom,calibration-variant = "Qualcomm_rb3gen2";
status = "okay";
};

View File

@@ -0,0 +1,51 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <dt-bindings/input/input.h>
#include <dt-bindings/spmi/spmi.h>
&spmi_bus {
pmm8620au_0: pmic@0 {
compatible = "qcom,pmm8654au", "qcom,spmi-pmic";
reg = <0x0 SPMI_USID>;
#address-cells = <1>;
#size-cells = <0>;
pmm8620au_0_rtc: rtc@6100 {
compatible = "qcom,pmk8350-rtc";
reg = <0x6100>, <0x6200>;
reg-names = "rtc", "alarm";
interrupts = <0x0 0x62 0x1 IRQ_TYPE_EDGE_RISING>;
allow-set-time;
};
pmm8620au_0_gpios: gpio@8800 {
compatible = "qcom,pmm8654au-gpio", "qcom,spmi-gpio";
reg = <0x8800>;
gpio-controller;
gpio-ranges = <&pmm8620au_0_gpios 0 0 12>;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
};
pmm8650au_1: pmic@2 {
compatible = "qcom,pmm8654au", "qcom,spmi-pmic";
reg = <0x2 SPMI_USID>;
#address-cells = <1>;
#size-cells = <0>;
pmm8650au_1_gpios: gpio@8800 {
compatible = "qcom,pmm8654au-gpio", "qcom,spmi-gpio";
reg = <0x8800>;
gpio-controller;
gpio-ranges = <&pmm8650au_1_gpios 0 0 12>;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
};
};

View File

@@ -9,6 +9,7 @@
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "qcs8300.dtsi"
#include "qcs8300-pmics.dtsi"
/ {
model = "Qualcomm Technologies, Inc. QCS8300 Ride";
compatible = "qcom,qcs8300-ride", "qcom,qcs8300";
@@ -21,6 +22,16 @@ aliases {
chosen {
stdout-path = "serial0:115200n8";
};
regulator-usb2-vbus {
compatible = "regulator-fixed";
regulator-name = "USB2_VBUS";
gpio = <&pmm8650au_1_gpios 7 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&usb2_en>;
pinctrl-names = "default";
enable-active-high;
regulator-always-on;
};
};
&apps_rsc {
@@ -257,7 +268,6 @@ queue3 {
mtl_tx_setup: tx-queues-config {
snps,tx-queues-to-use = <4>;
snps,tx-sched-sp;
queue0 {
snps,dcb-algorithm;
@@ -285,6 +295,15 @@ queue3 {
};
};
&pmm8650au_1_gpios {
usb2_en: usb2-en-state {
pins = "gpio7";
function = "normal";
output-enable;
power-source = <0>;
};
};
&qupv3_id_0 {
status = "okay";
};
@@ -354,6 +373,14 @@ &usb_1_hsphy {
status = "okay";
};
&usb_2_hsphy {
vdda-pll-supply = <&vreg_l7a>;
vdda18-supply = <&vreg_l7c>;
vdda33-supply = <&vreg_l9a>;
status = "okay";
};
&usb_qmpphy {
vdda-phy-supply = <&vreg_l7a>;
vdda-pll-supply = <&vreg_l5a>;
@@ -368,3 +395,11 @@ &usb_1 {
&usb_1_dwc3 {
dr_mode = "peripheral";
};
&usb_2 {
status = "okay";
};
&usb_2_dwc3 {
dr_mode = "host";
};

File diff suppressed because it is too large Load Diff

View File

@@ -620,7 +620,7 @@ &wifi {
vdd-1.8-xo-supply = <&pm4125_l13>;
vdd-1.3-rfa-supply = <&pm4125_l10>;
vdd-3.3-ch0-supply = <&pm4125_l22>;
qcom,ath10k-calibration-variant = "Thundercomm_RB1";
qcom,calibration-variant = "Thundercomm_RB1";
firmware-name = "qcm2290";
status = "okay";
};

View File

@@ -749,7 +749,7 @@ &wifi {
vdd-1.8-xo-supply = <&vreg_l16a_1p3>;
vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
vdd-3.3-ch0-supply = <&vreg_l23a_3p3>;
qcom,ath10k-calibration-variant = "Thundercomm_RB2";
qcom,calibration-variant = "Thundercomm_RB2";
firmware-name = "qrb4210";
status = "okay";

View File

@@ -9,17 +9,6 @@
#include <dt-bindings/clock/qcom,camcc-sm8250.h>
#include <dt-bindings/gpio/gpio.h>
/ {
reserved-memory {
linux,cma {
compatible = "shared-dma-pool";
size = <0x0 0x8000000>;
reusable;
linux,cma-default;
};
};
};
&camcc {
status = "okay";
};

View File

@@ -1018,6 +1018,12 @@ dai@1 {
dai@2 {
reg = <2>;
};
dai@3 {
direction = <Q6ASM_DAI_RX>;
is-compress-dai;
reg = <3>;
};
};
&sdhc_2 {
@@ -1032,6 +1038,12 @@ &sdhc_2 {
no-mmc;
};
&slpi {
firmware-name = "qcom/sm8250/Thundercomm/RB5/slpi.mbn";
status = "okay";
};
&sound {
compatible = "qcom,qrb5165-rb5-sndcard";
pinctrl-0 = <&tert_mi2s_active>;
@@ -1044,7 +1056,8 @@ &sound {
"VA DMIC1", "vdd-micb",
"MM_DL1", "MultiMedia1 Playback",
"MM_DL2", "MultiMedia2 Playback",
"MultiMedia3 Capture", "MM_UL3";
"MultiMedia3 Capture", "MM_UL3",
"MM_DL4", "MultiMedia4 Playback";
mm1-dai-link {
link-name = "MultiMedia1";
@@ -1067,6 +1080,14 @@ cpu {
};
};
mm4-dai-link {
link-name = "MultiMedia4";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>;
};
};
hdmi-dai-link {
link-name = "HDMI Playback";
cpu {

View File

@@ -383,12 +383,12 @@ &qupv3_id_1 {
&remoteproc_adsp {
status = "okay";
firmware-name = "qcom/sa8155p/adsp.mdt";
firmware-name = "qcom/sa8155p/adsp.mbn";
};
&remoteproc_cdsp {
status = "okay";
firmware-name = "qcom/sa8155p/cdsp.mdt";
firmware-name = "qcom/sa8155p/cdsp.mbn";
};
&sdhc_2 {

View File

@@ -225,7 +225,6 @@ queue3 {
ethernet0_mtl_tx_setup: tx-queues-config {
snps,tx-queues-to-use = <1>;
snps,tx-sched-sp;
queue0 {
snps,dcb-algorithm;
@@ -302,7 +301,6 @@ queue3 {
ethernet1_mtl_tx_setup: tx-queues-config {
snps,tx-queues-to-use = <1>;
snps,tx-sched-sp;
queue0 {
snps,dcb-algorithm;

View File

@@ -411,7 +411,6 @@ queue3 {
mtl_tx_setup: tx-queues-config {
snps,tx-queues-to-use = <4>;
snps,tx-sched-sp;
queue0 {
snps,dcb-algorithm;
@@ -480,7 +479,6 @@ queue3 {
mtl_tx_setup1: tx-queues-config {
snps,tx-queues-to-use = <4>;
snps,tx-sched-sp;
queue0 {
snps,dcb-algorithm;
@@ -878,7 +876,7 @@ wifi@0 {
compatible = "pci17cb,1101";
reg = <0x10000 0x0 0x0 0x0 0x0>;
qcom,ath11k-calibration-variant = "QC_SA8775P_Ride";
qcom,calibration-variant = "QC_SA8775P_Ride";
vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
vddaon-supply = <&vreg_pmu_aon_0p59>;
@@ -937,6 +935,7 @@ &uart17 {
bluetooth {
compatible = "qcom,wcn6855-bt";
firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
vddaon-supply = <&vreg_pmu_aon_0p59>;

View File

@@ -2413,20 +2413,40 @@ cryptobam: dma-controller@1dc4000 {
interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
#dma-cells = <1>;
qcom,ee = <0>;
qcom,num-ees = <4>;
num-channels = <20>;
qcom,controlled-remotely;
iommus = <&apps_smmu 0x480 0x00>,
<&apps_smmu 0x481 0x00>;
};
crypto: crypto@1dfa000 {
compatible = "qcom,sa8775p-qce", "qcom,qce";
reg = <0x0 0x01dfa000 0x0 0x6000>;
dmas = <&cryptobam 4>, <&cryptobam 5>;
dma-names = "rx", "tx";
iommus = <&apps_smmu 0x480 0x00>,
<&apps_smmu 0x481 0x00>;
interconnects = <&aggre2_noc MASTER_CRYPTO_CORE0 0 &mc_virt SLAVE_EBI1 0>;
interconnect-names = "memory";
ctcu@4001000 {
compatible = "qcom,sa8775p-ctcu";
reg = <0x0 0x04001000 0x0 0x1000>;
clocks = <&aoss_qmp>;
clock-names = "apb";
in-ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ctcu_in0: endpoint {
remote-endpoint = <&etr0_out>;
};
};
port@1 {
reg = <1>;
ctcu_in1: endpoint {
remote-endpoint = <&etr1_out>;
};
};
};
};
stm: stm@4002000 {
@@ -2633,6 +2653,122 @@ qdss_funnel_in1: endpoint {
};
};
replicator@4046000 {
compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
reg = <0x0 0x04046000 0x0 0x1000>;
clocks = <&aoss_qmp>;
clock-names = "apb_pclk";
in-ports {
port {
qdss_rep_in: endpoint {
remote-endpoint = <&swao_rep_out0>;
};
};
};
out-ports {
port {
qdss_rep_out0: endpoint {
remote-endpoint = <&etr_rep_in>;
};
};
};
};
tmc_etr: tmc@4048000 {
compatible = "arm,coresight-tmc", "arm,primecell";
reg = <0x0 0x04048000 0x0 0x1000>;
clocks = <&aoss_qmp>;
clock-names = "apb_pclk";
iommus = <&apps_smmu 0x04c0 0x00>;
arm,scatter-gather;
in-ports {
port {
etr0_in: endpoint {
remote-endpoint = <&etr_rep_out0>;
};
};
};
out-ports {
port {
etr0_out: endpoint {
remote-endpoint = <&ctcu_in0>;
};
};
};
};
replicator@404e000 {
compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
reg = <0x0 0x0404e000 0x0 0x1000>;
clocks = <&aoss_qmp>;
clock-names = "apb_pclk";
in-ports {
port {
etr_rep_in: endpoint {
remote-endpoint = <&qdss_rep_out0>;
};
};
};
out-ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
etr_rep_out0: endpoint {
remote-endpoint = <&etr0_in>;
};
};
port@1 {
reg = <1>;
etr_rep_out1: endpoint {
remote-endpoint = <&etr1_in>;
};
};
};
};
tmc_etr1: tmc@404f000 {
compatible = "arm,coresight-tmc", "arm,primecell";
reg = <0x0 0x0404f000 0x0 0x1000>;
clocks = <&aoss_qmp>;
clock-names = "apb_pclk";
iommus = <&apps_smmu 0x04a0 0x40>;
arm,scatter-gather;
arm,buffer-size = <0x400000>;
in-ports {
port {
etr1_in: endpoint {
remote-endpoint = <&etr_rep_out1>;
};
};
};
out-ports {
port {
etr1_out: endpoint {
remote-endpoint = <&ctcu_in1>;
};
};
};
};
funnel@4b04000 {
compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
reg = <0x0 0x4b04000 0x0 0x1000>;
@@ -2708,6 +2844,14 @@ out-ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
swao_rep_out0: endpoint {
remote-endpoint = <&qdss_rep_in>;
};
};
port@1 {
reg = <1>;
swao_rep_out1: endpoint {
@@ -4660,6 +4804,10 @@ cpufreq_hw: cpufreq@18591000 {
<0x0 0x18593000 0x0 0x1000>;
reg-names = "freq-domain0", "freq-domain1";
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "dcvsh-irq-0", "dcvsh-irq-1";
clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_GPLL0>;
clock-names = "xo", "alternate";

View File

@@ -1474,6 +1474,67 @@ pcie@0 {
};
};
pcie1_ep: pcie-ep@1c08000 {
compatible = "qcom,sar2130p-pcie-ep";
reg = <0x0 0x01c08000 0x0 0x3000>,
<0x0 0x40000000 0x0 0xf1d>,
<0x0 0x40000f20 0x0 0xa8>,
<0x0 0x40001000 0x0 0x1000>,
<0x0 0x40200000 0x0 0x1000000>,
<0x0 0x01c0b000 0x0 0x1000>,
<0x0 0x40002000 0x0 0x2000>;
reg-names = "parf",
"dbi",
"elbi",
"atu",
"addr_space",
"mmio",
"dma";
clocks = <&gcc GCC_PCIE_1_AUX_CLK>,
<&gcc GCC_PCIE_1_CFG_AHB_CLK>,
<&gcc GCC_PCIE_1_MSTR_AXI_CLK>,
<&gcc GCC_PCIE_1_SLV_AXI_CLK>,
<&gcc GCC_PCIE_1_SLV_Q2A_AXI_CLK>,
<&gcc GCC_DDRSS_PCIE_SF_CLK>,
<&gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>,
<&gcc GCC_CFG_NOC_PCIE_ANOC_AHB_CLK>,
<&gcc GCC_QMIP_PCIE_AHB_CLK>;
clock-names = "aux",
"cfg",
"bus_master",
"bus_slave",
"slave_q2a",
"ddrss_sf_tbu",
"aggre_noc_axi",
"cnoc_sf_axi",
"qmip_pcie_ahb";
interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "global",
"doorbell",
"dma";
interconnects = <&pcie_noc MASTER_PCIE_1 QCOM_ICC_TAG_ALWAYS
&mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
&config_noc SLAVE_PCIE_1 QCOM_ICC_TAG_ACTIVE_ONLY>;
interconnect-names = "pcie-mem",
"cpu-pcie";
iommus = <&apps_smmu 0x1e00 0x1>;
resets = <&gcc GCC_PCIE_1_BCR>;
reset-names = "core";
power-domains = <&gcc PCIE_1_GDSC>;
phys = <&pcie1_phy>;
phy-names = "pciephy";
num-lanes = <2>;
status = "disabled";
};
pcie1_phy: phy@1c0e000 {
compatible = "qcom,sar2130p-qmp-gen3x2-pcie-phy";
reg = <0x0 0x01c0e000 0x0 0x2000>;

View File

@@ -188,7 +188,7 @@ &sound_multimedia1_codec {
};
&wifi {
qcom,ath10k-calibration-variant = "GO_HOMESTAR";
qcom,calibration-variant = "GO_HOMESTAR";
};
/* PINCTRL - modifications to sc7180-trogdor.dtsi */

View File

@@ -79,7 +79,7 @@ &pp3300_dx_edp {
};
&wifi {
qcom,ath10k-calibration-variant = "GO_KINGOFTOWN";
qcom,calibration-variant = "GO_KINGOFTOWN";
};
/* PINCTRL - modifications to sc7180-trogdor.dtsi */

View File

@@ -69,7 +69,7 @@ &trackpad {
};
&wifi {
qcom,ath10k-calibration-variant = "GO_LAZOR";
qcom,calibration-variant = "GO_LAZOR";
};
/* PINCTRL - modifications to sc7180-trogdor.dtsi */

View File

@@ -59,5 +59,5 @@ CROS_STD_MAIN_KEYMAP
};
&wifi {
qcom,ath10k-calibration-variant = "GO_PAZQUEL360";
qcom,calibration-variant = "GO_PAZQUEL360";
};

View File

@@ -181,7 +181,7 @@ &usb_c1 {
};
&wifi {
qcom,ath10k-calibration-variant = "GO_POMPOM";
qcom,calibration-variant = "GO_POMPOM";
};
/* PINCTRL - board-specific pinctrl */

View File

@@ -196,7 +196,7 @@ &pp2800_wf_cam {
};
&wifi {
qcom,ath10k-calibration-variant = "GO_WORMDINGLER";
qcom,calibration-variant = "GO_WORMDINGLER";
};
/*

View File

@@ -4301,14 +4301,6 @@ venus: video-codec@aa00000 {
status = "disabled";
video-decoder {
compatible = "venus-decoder";
};
video-encoder {
compatible = "venus-encoder";
};
venus_opp_table: opp-table {
compatible = "operating-points-v2";
@@ -4430,6 +4422,184 @@ cci1_i2c1: i2c-bus@1 {
};
};
camss: isp@acb3000 {
compatible = "qcom,sc7280-camss";
reg = <0x0 0x0acb3000 0x0 0x1000>,
<0x0 0x0acba000 0x0 0x1000>,
<0x0 0x0acc1000 0x0 0x1000>,
<0x0 0x0acc8000 0x0 0x1000>,
<0x0 0x0accf000 0x0 0x1000>,
<0x0 0x0ace0000 0x0 0x2000>,
<0x0 0x0ace2000 0x0 0x2000>,
<0x0 0x0ace4000 0x0 0x2000>,
<0x0 0x0ace6000 0x0 0x2000>,
<0x0 0x0ace8000 0x0 0x2000>,
<0x0 0x0acaf000 0x0 0x4000>,
<0x0 0x0acb6000 0x0 0x4000>,
<0x0 0x0acbd000 0x0 0x4000>,
<0x0 0x0acc4000 0x0 0x4000>,
<0x0 0x0accb000 0x0 0x4000>;
reg-names = "csid0",
"csid1",
"csid2",
"csid_lite0",
"csid_lite1",
"csiphy0",
"csiphy1",
"csiphy2",
"csiphy3",
"csiphy4",
"vfe0",
"vfe1",
"vfe2",
"vfe_lite0",
"vfe_lite1";
clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
<&camcc CAM_CC_CPAS_AHB_CLK>,
<&camcc CAM_CC_CSIPHY0_CLK>,
<&camcc CAM_CC_CSI0PHYTIMER_CLK>,
<&camcc CAM_CC_CSIPHY1_CLK>,
<&camcc CAM_CC_CSI1PHYTIMER_CLK>,
<&camcc CAM_CC_CSIPHY2_CLK>,
<&camcc CAM_CC_CSI2PHYTIMER_CLK>,
<&camcc CAM_CC_CSIPHY3_CLK>,
<&camcc CAM_CC_CSI3PHYTIMER_CLK>,
<&camcc CAM_CC_CSIPHY4_CLK>,
<&camcc CAM_CC_CSI4PHYTIMER_CLK>,
<&gcc GCC_CAMERA_HF_AXI_CLK>,
<&gcc GCC_CAMERA_SF_AXI_CLK>,
<&camcc CAM_CC_ICP_AHB_CLK>,
<&camcc CAM_CC_IFE_0_CLK>,
<&camcc CAM_CC_IFE_0_AXI_CLK>,
<&camcc CAM_CC_IFE_0_CPHY_RX_CLK>,
<&camcc CAM_CC_IFE_0_CSID_CLK>,
<&camcc CAM_CC_IFE_1_CLK>,
<&camcc CAM_CC_IFE_1_AXI_CLK>,
<&camcc CAM_CC_IFE_1_CPHY_RX_CLK>,
<&camcc CAM_CC_IFE_1_CSID_CLK>,
<&camcc CAM_CC_IFE_2_CLK>,
<&camcc CAM_CC_IFE_2_AXI_CLK>,
<&camcc CAM_CC_IFE_2_CPHY_RX_CLK>,
<&camcc CAM_CC_IFE_2_CSID_CLK>,
<&camcc CAM_CC_IFE_LITE_0_CLK>,
<&camcc CAM_CC_IFE_LITE_0_CPHY_RX_CLK>,
<&camcc CAM_CC_IFE_LITE_0_CSID_CLK>,
<&camcc CAM_CC_IFE_LITE_1_CLK>,
<&camcc CAM_CC_IFE_LITE_1_CPHY_RX_CLK>,
<&camcc CAM_CC_IFE_LITE_1_CSID_CLK>;
clock-names = "camnoc_axi",
"cpas_ahb",
"csiphy0",
"csiphy0_timer",
"csiphy1",
"csiphy1_timer",
"csiphy2",
"csiphy2_timer",
"csiphy3",
"csiphy3_timer",
"csiphy4",
"csiphy4_timer",
"gcc_axi_hf",
"gcc_axi_sf",
"icp_ahb",
"vfe0",
"vfe0_axi",
"vfe0_cphy_rx",
"vfe0_csid",
"vfe1",
"vfe1_axi",
"vfe1_cphy_rx",
"vfe1_csid",
"vfe2",
"vfe2_axi",
"vfe2_cphy_rx",
"vfe2_csid",
"vfe_lite0",
"vfe_lite0_cphy_rx",
"vfe_lite0_csid",
"vfe_lite1",
"vfe_lite1_cphy_rx",
"vfe_lite1_csid";
interrupts = <GIC_SPI 464 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 466 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 640 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 468 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 359 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 477 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 478 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 479 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 448 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 122 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 465 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 467 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 641 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 469 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 360 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "csid0",
"csid1",
"csid2",
"csid_lite0",
"csid_lite1",
"csiphy0",
"csiphy1",
"csiphy2",
"csiphy3",
"csiphy4",
"vfe0",
"vfe1",
"vfe2",
"vfe_lite0",
"vfe_lite1";
interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
&cnoc2 SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
<&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
&mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
interconnect-names = "ahb",
"hf_0";
iommus = <&apps_smmu 0x800 0x4e0>;
power-domains = <&camcc CAM_CC_IFE_0_GDSC>,
<&camcc CAM_CC_IFE_1_GDSC>,
<&camcc CAM_CC_IFE_2_GDSC>,
<&camcc CAM_CC_TITAN_TOP_GDSC>;
power-domain-names = "ife0",
"ife1",
"ife2",
"top";
status = "disabled";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
};
port@1 {
reg = <1>;
};
port@2 {
reg = <2>;
};
port@3 {
reg = <3>;
};
port@4 {
reg = <4>;
};
};
};
camcc: clock-controller@ad00000 {
compatible = "qcom,sc7280-camcc";
reg = <0 0x0ad00000 0 0x10000>;

View File

@@ -3524,7 +3524,7 @@ tsens1: thermal-sensor@c265000 {
#thermal-sensor-cells = <1>;
};
aoss_qmp: power-controller@c300000 {
aoss_qmp: power-management@c300000 {
compatible = "qcom,sc8180x-aoss-qmp", "qcom,aoss-qmp";
reg = <0x0 0x0c300000 0x0 0x400>;
interrupts = <GIC_SPI 389 IRQ_TYPE_EDGE_RISING>;

View File

@@ -37,6 +37,20 @@ chosen {
stdout-path = "serial0:115200n8";
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&kypd_vol_up_n>;
pinctrl-names = "default";
key-vol-up {
label = "volume_up";
gpios = <&pmc8280_1_gpios 6 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
wakeup-source;
};
};
pmic-glink {
compatible = "qcom,sc8280xp-pmic-glink", "qcom,pmic-glink";
@@ -686,7 +700,7 @@ wifi@0 {
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
qcom,ath11k-calibration-variant = "QC_8280XP_CRD";
qcom,calibration-variant = "QC_8280XP_CRD";
};
};
@@ -885,6 +899,14 @@ edp_bl_reg_en: edp-bl-reg-en-state {
function = "normal";
};
kypd_vol_up_n: kypd-vol-up-n-state {
pins = "gpio6";
function = "normal";
power-source = <0>; /* 3.3 V */
bias-pull-up;
input-enable;
};
misc_3p3_reg_en: misc-3p3-reg-en-state {
pins = "gpio2";
function = "normal";

View File

@@ -998,7 +998,7 @@ wifi@0 {
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
qcom,ath11k-calibration-variant = "LE_X13S";
qcom,calibration-variant = "LE_X13S";
};
};
@@ -1090,20 +1090,9 @@ &pmk8280_pon_resin {
};
&pmk8280_rtc {
nvmem-cells = <&rtc_offset>;
nvmem-cell-names = "offset";
status = "okay";
};
&pmk8280_sdam_6 {
status = "okay";
rtc_offset: rtc-offset@bc {
reg = <0xbc 0x4>;
};
};
&pmk8280_vadc {
channel@144 {
reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>;
@@ -1202,9 +1191,6 @@ &sound {
"VA DMIC0", "MIC BIAS1",
"VA DMIC1", "MIC BIAS1",
"VA DMIC2", "MIC BIAS3",
"VA DMIC0", "VA MIC BIAS1",
"VA DMIC1", "VA MIC BIAS1",
"VA DMIC2", "VA MIC BIAS3",
"TX SWR_ADC1", "ADC2_OUTPUT";
wcd-playback-dai-link {

View File

@@ -536,7 +536,7 @@ wifi@0 {
compatible = "pci17cb,1103";
reg = <0x10000 0x0 0x0 0x0 0x0>;
qcom,ath11k-calibration-variant = "MS_SP9_5G";
qcom,calibration-variant = "MS_SP9_5G";
};
};

View File

@@ -670,7 +670,7 @@ wifi@0 {
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
qcom,ath11k-calibration-variant = "MS_Volterra";
qcom,calibration-variant = "MS_Volterra";
};
};

View File

@@ -32,6 +32,26 @@ trip1 {
};
};
pmc8280c_thermal: pmc8280c-thermal {
polling-delay-passive = <100>;
thermal-sensors = <&pmc8280c_temp_alarm>;
trips {
trip0 {
temperature = <95000>;
hysteresis = <0>;
type = "passive";
};
trip1 {
temperature = <115000>;
hysteresis = <0>;
type = "critical";
};
};
};
pm8280_2_thermal: pm8280-2-thermal {
polling-delay-passive = <100>;
@@ -51,6 +71,26 @@ trip1 {
};
};
};
pmr735a_thermal: pmr735a-thermal {
polling-delay-passive = <100>;
thermal-sensors = <&pmr735a_temp_alarm>;
trips {
trip0 {
temperature = <95000>;
hysteresis = <0>;
type = "passive";
};
trip1 {
temperature = <115000>;
hysteresis = <0>;
type = "critical";
};
};
};
};
};
@@ -181,6 +221,13 @@ pmc8280c: pmic@2 {
#address-cells = <1>;
#size-cells = <0>;
pmc8280c_temp_alarm: temp-alarm@a00 {
compatible = "qcom,spmi-temp-alarm";
reg = <0xa00>;
interrupts-extended = <&spmi_bus 0x2 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
#thermal-sensor-cells = <0>;
};
pmc8280c_gpios: gpio@8800 {
compatible = "qcom,pm8350c-gpio", "qcom,spmi-gpio";
reg = <0x8800>;
@@ -212,7 +259,7 @@ pmc8280_2: pmic@3 {
pm8280_2_temp_alarm: temp-alarm@a00 {
compatible = "qcom,spmi-temp-alarm";
reg = <0xa00>;
interrupts-extended = <&spmi_bus 0x2 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
interrupts-extended = <&spmi_bus 0x3 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
io-channels = <&pmk8280_vadc PM8350_ADC7_DIE_TEMP(3)>;
io-channel-names = "thermal";
#thermal-sensor-cells = <0>;
@@ -235,6 +282,15 @@ pmr735a: pmic@4 {
#address-cells = <1>;
#size-cells = <0>;
pmr735a_temp_alarm: temp-alarm@a00 {
compatible = "qcom,spmi-temp-alarm";
reg = <0xa00>;
interrupts-extended = <&spmi_bus 0x4 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
io-channels = <&pmk8280_vadc PMR735A_ADC7_DIE_TEMP>;
io-channel-names = "thermal";
#thermal-sensor-cells = <0>;
};
pmr735a_gpios: gpio@8800 {
compatible = "qcom,pmr735a-gpio", "qcom,spmi-gpio";
reg = <0x8800>;

View File

@@ -1221,7 +1221,7 @@ spi0: spi@980000 {
reg = <0 0x00980000 0 0x4000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
clock-names = "se";
interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&rpmhpd SC8280XP_CX>;
@@ -1253,7 +1253,7 @@ spi1: spi@984000 {
reg = <0 0x00984000 0 0x4000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
clock-names = "se";
interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&rpmhpd SC8280XP_CX>;
@@ -1285,7 +1285,7 @@ spi2: spi@988000 {
reg = <0 0x00988000 0 0x4000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
clock-names = "se";
interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&rpmhpd SC8280XP_CX>;
@@ -1331,7 +1331,7 @@ spi3: spi@98c000 {
reg = <0 0x0098c000 0 0x4000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
clock-names = "se";
interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&rpmhpd SC8280XP_CX>;
@@ -1363,7 +1363,7 @@ spi4: spi@990000 {
reg = <0 0x00990000 0 0x4000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
clock-names = "se";
interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&rpmhpd SC8280XP_CX>;
@@ -1395,7 +1395,7 @@ spi5: spi@994000 {
reg = <0 0x00994000 0 0x4000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
clock-names = "se";
interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&rpmhpd SC8280XP_CX>;
@@ -1427,7 +1427,7 @@ spi6: spi@998000 {
reg = <0 0x00998000 0 0x4000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_QUPV3_WRAP2_S6_CLK>;
clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
clock-names = "se";
interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&rpmhpd SC8280XP_CX>;
@@ -1459,7 +1459,7 @@ spi7: spi@99c000 {
reg = <0 0x0099c000 0 0x4000>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_QUPV3_WRAP2_S7_CLK>;
clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
clock-names = "se";
interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&rpmhpd SC8280XP_CX>;

View File

@@ -507,7 +507,7 @@ &wifi {
vdd-3.3-ch0-supply = <&vreg_l19a_3p3>;
vdd-3.3-ch1-supply = <&vreg_l8b_3p3>;
qcom,ath10k-calibration-variant = "Inforce_IFC6560";
qcom,calibration-variant = "Inforce_IFC6560";
status = "okay";
};

View File

@@ -157,7 +157,7 @@ extcon_usb: extcon-usb {
};
&adsp_pil {
firmware-name = "qcom/sdm630/Sony/nile/adsp.mdt";
firmware-name = "qcom/sdm630/Sony/nile/adsp.mbn";
};
&blsp_i2c1 {

View File

@@ -1379,6 +1379,7 @@ sdhc_2: mmc@c084000 {
<&xo_board>;
clock-names = "iface", "core", "xo";
resets = <&gcc GCC_SDCC2_BCR>;
interconnects = <&a2noc 3 &a2noc 10>,
<&gnoc 0 &cnoc 28>;
@@ -1433,6 +1434,8 @@ sdhc_1: mmc@c0c4000 {
<&gcc GCC_SDCC1_ICE_CORE_CLK>;
clock-names = "iface", "core", "xo", "ice";
resets = <&gcc GCC_SDCC1_BCR>;
interconnects = <&a2noc 2 &a2noc 10>,
<&gnoc 0 &cnoc 27>;
interconnect-names = "sdhc-ddr", "cpu-sdhc";

View File

@@ -45,10 +45,11 @@ vph_pwr: vph-pwr-regulator {
};
&hsusb_phy {
status = "okay";
vdd-supply = <&pm8953_l3>;
vdda-pll-supply = <&pm8953_l7>;
vdda-phy-dpdm-supply = <&pm8953_l13>;
status = "okay";
};
&i2c_3 {
@@ -81,12 +82,22 @@ nfc@28 {
};
&lpass {
firmware-name = "qcom/msm8953/fairphone/fp3/adsp.mbn";
status = "okay";
};
&mpss {
firmware-name = "qcom/msm8953/fairphone/fp3/mba.mbn",
"qcom/msm8953/fairphone/fp3/modem.mbn";
pll-supply = <&pm8953_l7>;
status = "okay";
};
&pm8953_resin {
status = "okay";
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
};
&pmi632_lpg {
@@ -148,17 +159,19 @@ &pmi632_vib {
};
&sdhc_1 {
status = "okay";
vmmc-supply = <&pm8953_l8>;
vqmmc-supply = <&pm8953_l5>;
status = "okay";
};
&sdhc_2 {
status = "okay";
vmmc-supply = <&pm8953_l11>;
vqmmc-supply = <&pm8953_l12>;
cd-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
status = "okay";
};
&rpm_requests {
@@ -175,10 +188,12 @@ pm8953_s3: s3 {
regulator-min-microvolt = <984000>;
regulator-max-microvolt = <1240000>;
};
pm8953_s4: s4 {
regulator-min-microvolt = <1036000>;
regulator-max-microvolt = <2040000>;
};
pm8953_s5: s5 {
regulator-min-microvolt = <1036000>;
regulator-max-microvolt = <2040000>;
@@ -188,66 +203,82 @@ pm8953_l1: l1 {
regulator-min-microvolt = <975000>;
regulator-max-microvolt = <1050000>;
};
pm8953_l2: l2 {
regulator-min-microvolt = <975000>;
regulator-max-microvolt = <1175000>;
};
pm8953_l3: l3 {
regulator-min-microvolt = <925000>;
regulator-max-microvolt = <925000>;
};
pm8953_l5: l5 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
pm8953_l6: l6 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
pm8953_l7: l7 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1900000>;
};
pm8953_l8: l8 {
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
};
pm8953_l9: l9 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
};
pm8953_l10: l10 {
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3000000>;
};
pm8953_l11: l11 {
regulator-min-microvolt = <2950000>;
regulator-max-microvolt = <2950000>;
};
pm8953_l12: l12 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2950000>;
};
pm8953_l13: l13 {
regulator-min-microvolt = <3125000>;
regulator-max-microvolt = <3125000>;
};
pm8953_l16: l16 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
pm8953_l17: l17 {
regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <2850000>;
};
pm8953_l19: l19 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1350000>;
};
pm8953_l22: l22 {
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
pm8953_l23: l23 {
regulator-min-microvolt = <975000>;
regulator-max-microvolt = <1225000>;
@@ -276,9 +307,14 @@ &usb_dwc3_hs {
};
&wcnss {
status = "okay";
firmware-name = "qcom/msm8953/fairphone/fp3/wcnss.mbn";
vddpx-supply = <&pm8953_l5>;
status = "okay";
};
&wcnss_ctrl {
firmware-name = "qcom/msm8953/fairphone/fp3/WCNSS_qcom_wlan_nv.bin";
};
&wcnss_iris {

View File

@@ -741,10 +741,6 @@ touchscreen@10 {
};
};
&gmu {
status = "okay";
};
&gpu {
status = "okay";
};

View File

@@ -9,17 +9,6 @@
#include <dt-bindings/clock/qcom,camcc-sdm845.h>
#include <dt-bindings/gpio/gpio.h>
/ {
reserved-memory {
linux,cma {
compatible = "shared-dma-pool";
size = <0x0 0x8000000>;
reusable;
linux,cma-default;
};
};
};
&camss {
vdda-phy-supply = <&vreg_l1a_0p875>;
vdda-pll-supply = <&vreg_l26a_1p2>;

View File

@@ -444,10 +444,6 @@ &gcc {
<GCC_LPASS_SWAY_CLK>;
};
&gmu {
status = "okay";
};
&gpi_dma0 {
status = "okay";
};
@@ -756,6 +752,12 @@ &sdhc_2 {
cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>;
};
&slpi_pas {
firmware-name = "qcom/sdm845/Thundercomm/db845c/slpi.mbn";
status = "okay";
};
&sound {
compatible = "qcom,db845c-sndcard", "qcom,sdm845-sndcard";
pinctrl-0 = <&quat_mi2s_active
@@ -1166,7 +1168,7 @@ &wifi {
vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
qcom,snoc-host-cap-8bit-quirk;
qcom,ath10k-calibration-variant = "Thundercomm_DB845C";
qcom,calibration-variant = "Thundercomm_DB845C";
};
/* PINCTRL - additions to nodes defined in sdm845.dtsi */

View File

@@ -414,10 +414,6 @@ &gcc {
<GCC_LPASS_SWAY_CLK>;
};
&gmu {
status = "okay";
};
&gpu {
status = "okay";
@@ -789,7 +785,7 @@ &wifi {
vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
qcom,snoc-host-cap-8bit-quirk;
qcom,ath10k-calibration-variant = "Qualcomm_sdm845mtp";
qcom,calibration-variant = "Qualcomm_sdm845mtp";
};
/* PINCTRL - additions to nodes defined in sdm845.dtsi */

View File

@@ -345,10 +345,6 @@ &gcc {
<GCC_LPASS_SWAY_CLK>;
};
&gmu {
status = "okay";
};
&gpu {
status = "okay";

View File

@@ -7,15 +7,28 @@
/dts-v1/;
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sdm845.dtsi"
#include "pm8998.dtsi"
/ {
chassis-type = "handset";
model = "Samsung Galaxy S9 SM-G9600";
compatible = "samsung,starqltechn", "qcom,sdm845";
battery: battery {
compatible = "simple-battery";
constant-charge-current-max-microamp = <2150000>;
charge-full-design-microamp-hours = <3000000>;
over-voltage-threshold-microvolt = <4500000>;
voltage-min-design-microvolt = <3400000>;
voltage-max-design-microvolt = <4350000>;
};
chosen {
#address-cells = <2>;
#size-cells = <2>;
@@ -27,9 +40,25 @@ framebuffer: framebuffer@9d400000 {
height = <2960>;
stride = <(1440 * 4)>;
format = "a8r8g8b8";
vci-supply = <&s2dos05_ldo4>;
vddr-supply = <&s2dos05_buck>;
vdd3-supply = <&s2dos05_ldo1>;
};
};
vib_regulator: gpio-regulator {
compatible = "regulator-fixed";
regulator-name = "haptic";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&pm8998_gpios 18 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-boot-on;
};
vph_pwr: vph-pwr-regulator {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
@@ -69,6 +98,96 @@ memory@a1300000 {
pmsg-size = <0x40000>;
};
};
i2c21 {
compatible = "i2c-gpio";
sda-gpios = <&tlmm 127 GPIO_ACTIVE_HIGH>;
scl-gpios = <&tlmm 128 GPIO_ACTIVE_HIGH>;
i2c-gpio,delay-us = <2>;
pinctrl-0 = <&i2c21_sda_state &i2c21_scl_state>;
pinctrl-names = "default";
#address-cells = <1>;
#size-cells = <0>;
pmic@60 {
compatible = "samsung,s2dos05";
reg = <0x60>;
regulators {
s2dos05_ldo1: ldo1 {
regulator-active-discharge = <1>;
regulator-enable-ramp-delay = <12000>;
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <2000000>;
regulator-name = "ldo1";
};
s2dos05_ldo2: ldo2 {
regulator-active-discharge = <1>;
regulator-boot-on;
regulator-enable-ramp-delay = <12000>;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-name = "ldo2";
};
s2dos05_ldo3: ldo3 {
regulator-active-discharge = <1>;
regulator-boot-on;
regulator-enable-ramp-delay = <12000>;
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-name = "ldo3";
};
s2dos05_ldo4: ldo4 {
regulator-active-discharge = <1>;
regulator-enable-ramp-delay = <12000>;
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3775000>;
regulator-name = "ldo4";
};
s2dos05_buck: buck {
regulator-active-discharge = <1>;
regulator-enable-ramp-delay = <12000>;
regulator-min-microvolt = <850000>;
regulator-max-microvolt = <2100000>;
regulator-name = "buck";
};
};
};
};
gpio-keys {
compatible = "gpio-keys";
autorepeat;
key-vol-up {
label = "Volume Up";
gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
debounce-interval = <15>;
};
key-wink {
label = "Bixby";
gpios = <&pm8998_gpios 19 GPIO_ACTIVE_LOW>;
linux,code = <KEY_ENTER>;
debounce-interval = <15>;
};
};
vib_pwm: pwm {
compatible = "clk-pwm";
#pwm-cells = <2>;
assigned-clock-parents = <&rpmhcc RPMH_CXO_CLK>;
assigned-clocks = <&gcc GCC_GP1_CLK_SRC>;
clocks = <&gcc GCC_GP1_CLK>;
pinctrl-0 = <&motor_pwm_default_state>;
pinctrl-1 = <&motor_pwm_suspend_state>;
pinctrl-names = "default", "suspend";
};
};
@@ -135,8 +254,6 @@ vdda_pll_cc_ebi23:
vdda_sp_sensor:
vdda_ufs1_core:
vdda_ufs2_core:
vdda_usb1_ss_core:
vdda_usb2_ss_core:
vreg_l1a_0p875: ldo1 {
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <880000>;
@@ -157,6 +274,7 @@ vreg_l3a_1p0: ldo3 {
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vdda_usb1_ss_core:
vdd_wcss_cx:
vdd_wcss_mx:
vdda_wcss_pll:
@@ -365,10 +483,79 @@ &qupv3_id_1 {
status = "okay";
};
&gpi_dma1 {
status = "okay";
};
&uart9 {
status = "okay";
};
&i2c14 {
status = "okay";
pmic@66 {
compatible = "maxim,max77705";
reg = <0x66>;
interrupt-parent = <&pm8998_gpios>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
pinctrl-0 = <&pmic_int_default>;
pinctrl-names = "default";
#address-cells = <1>;
#size-cells = <0>;
leds {
compatible = "maxim,max77705-rgb";
multi-led {
color = <LED_COLOR_ID_RGB>;
function = LED_FUNCTION_STATUS;
#address-cells = <1>;
#size-cells = <0>;
led@1 {
reg = <1>;
color = <LED_COLOR_ID_RED>;
};
led@2 {
reg = <2>;
color = <LED_COLOR_ID_GREEN>;
};
led@3 {
reg = <3>;
color = <LED_COLOR_ID_BLUE>;
};
};
};
haptic {
compatible = "maxim,max77705-haptic";
haptic-supply = <&vib_regulator>;
pwms = <&vib_pwm 0 52084>;
};
};
max77705_charger: charger@69 {
reg = <0x69>;
compatible = "maxim,max77705-charger";
monitored-battery = <&battery>;
interrupt-parent = <&pm8998_gpios>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
};
fuel-gauge@36 {
reg = <0x36>;
compatible = "maxim,max77705-battery";
power-supplies = <&max77705_charger>;
maxim,rsns-microohm = <5000>;
interrupt-parent = <&pm8998_gpios>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
};
};
&ufs_mem_hc {
reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l20a_2p95>;
@@ -383,14 +570,31 @@ &ufs_mem_phy {
};
&sdhc_2 {
pinctrl-names = "default";
pinctrl-0 = <&sdc2_clk_state &sdc2_cmd_state &sdc2_data_state &sd_card_det_n_state>;
pinctrl-names = "default";
cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>;
vmmc-supply = <&vreg_l21a_2p95>;
vqmmc-supply = <&vddpx_2>;
status = "okay";
};
&i2c11 {
clock-frequency = <400000>;
status = "okay";
touchscreen@48 {
compatible = "samsung,s6sy761";
reg = <0x48>;
interrupt-parent = <&tlmm>;
interrupts = <120 IRQ_TYPE_LEVEL_HIGH>;
vdd-supply = <&s2dos05_ldo2>;
avdd-supply = <&s2dos05_ldo3>;
pinctrl-0 = <&touch_irq_state>;
pinctrl-names = "default";
};
};
&usb_1 {
status = "okay";
};
@@ -418,16 +622,54 @@ &usb_1_qmpphy {
status = "okay";
};
&wifi {
vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
&pm8998_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
};
&pm8998_gpios {
pmic_int_default: pmic-int-default-state {
pins = "gpio11";
function = "normal";
input-enable;
bias-disable;
power-source = <0>;
};
};
&tlmm {
gpio-reserved-ranges = <0 4>, <27 4>, <81 4>, <85 4>;
gpio-reserved-ranges = <27 4>, /* SPI (eSE - embedded Secure Element) */
<85 4>; /* SPI (fingerprint reader) */
i2c21_sda_state: i2c21-sda-state {
pins = "gpio127";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
i2c21_scl_state: i2c21-scl-state {
pins = "gpio128";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
motor_pwm_default_state: motor-pwm-active-state {
pins = "gpio57";
function = "gcc_gp1";
drive-strength = <2>;
bias-disable;
output-high;
};
motor_pwm_suspend_state: motor-pwm-suspend-state {
pins = "gpio57";
function = "gpio";
drive-strength = <2>;
bias-disable;
output-low;
};
sdc2_clk_state: sdc2-clk-state {
pins = "sdc2_clk";
@@ -457,4 +699,15 @@ sd_card_det_n_state: sd-card-det-n-state {
function = "gpio";
bias-pull-up;
};
touch_irq_state: touch-irq-state {
pins = "gpio120";
function = "gpio";
bias-disable;
};
};
&qup_i2c11_default {
drive-strength = <2>;
bias-disable;
};

View File

@@ -419,10 +419,6 @@ &gcc {
<GCC_LPASS_SWAY_CLK>;
};
&gmu {
status = "okay";
};
&gpu {
status = "okay";

View File

@@ -415,10 +415,6 @@ &gcc {
<GCC_LPASS_SWAY_CLK>;
};
&gmu {
status = "okay";
};
&gpi_dma0 {
status = "okay";
};

View File

@@ -239,10 +239,6 @@ &gcc {
<GCC_LPASS_SWAY_CLK>;
};
&gmu {
status = "okay";
};
&gpu {
status = "okay";

View File

@@ -381,10 +381,6 @@ &gcc {
<GCC_LPASS_SWAY_CLK>;
};
&gmu {
status = "okay";
};
&gpi_dma0 {
status = "okay";
};

View File

@@ -4952,8 +4952,6 @@ gmu: gmu@506a000 {
operating-points-v2 = <&gmu_opp_table>;
status = "disabled";
gmu_opp_table: opp-table {
compatible = "operating-points-v2";

View File

@@ -355,10 +355,6 @@ &gcc {
<GCC_LPASS_SWAY_CLK>;
};
&gmu {
status = "okay";
};
&gpu {
status = "okay";
zap-shader {
@@ -910,7 +906,7 @@ &wifi {
vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
qcom,snoc-host-cap-8bit-quirk;
qcom,ath10k-calibration-variant = "Lenovo_C630";
qcom,calibration-variant = "Lenovo_C630";
};
&crypto {

View File

@@ -1008,14 +1008,16 @@ usb: usb@a6f8800 {
<&gcc GCC_USB30_MASTER_CLK>;
assigned-clock-rates = <19200000>, <200000000>;
interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
<&pdc 17 IRQ_TYPE_LEVEL_HIGH>,
interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
<&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
<&pdc 9 IRQ_TYPE_EDGE_RISING>,
<&pdc 10 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "hs_phy_irq",
"ss_phy_irq",
<&pdc 10 IRQ_TYPE_EDGE_RISING>,
<&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "pwr_event",
"hs_phy_irq",
"dm_hs_phy_irq",
"dp_hs_phy_irq";
"dp_hs_phy_irq",
"ss_phy_irq";
power-domains = <&gcc GCC_USB30_GDSC>;
@@ -1077,7 +1079,7 @@ pdc: interrupt-controller@b220000 {
interrupt-controller;
};
aoss_qmp: power-controller@c310000 {
aoss_qmp: power-management@c310000 {
compatible = "qcom,sdx75-aoss-qmp", "qcom,aoss-qmp";
reg = <0 0x0c310000 0 0x1000>;
interrupt-parent = <&ipcc>;

View File

@@ -566,7 +566,7 @@ &wifi {
vdd-1.3-rfa-supply = <&pm6125_l17a>;
vdd-3.3-ch0-supply = <&pm6125_l23a>;
qcom,ath10k-calibration-variant = "Fxtec_QX1050";
qcom,calibration-variant = "Fxtec_QX1050";
status = "okay";
};

View File

@@ -379,7 +379,7 @@ &wifi {
vdd-1.8-xo-supply = <&pm6125_l16>;
vdd-1.3-rfa-supply = <&pm6125_l17>;
vdd-3.3-ch0-supply = <&pm6125_l23>;
qcom,ath10k-calibration-variant = "Lenovo_P11";
qcom,calibration-variant = "Lenovo_P11";
status = "okay";
};

View File

@@ -0,0 +1,295 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2025, Gabriel Gonzales <semfault@disroot.org>
*/
/dts-v1/;
#include <dt-bindings/arm/qcom,ids.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include "sm6125.dtsi"
#include "pm6125.dtsi"
/ {
model = "Xiaomi Redmi Note 8";
compatible = "xiaomi,ginkgo", "qcom,sm6125";
chassis-type = "handset";
/* required for bootloader to select correct board */
qcom,msm-id = <QCOM_ID_SM6125>;
qcom,board-id = <22 0>;
chosen {
#address-cells = <2>;
#size-cells = <2>;
ranges;
framebuffer0: framebuffer@5c000000 {
compatible = "simple-framebuffer";
reg = <0 0x5c000000 0 (2340 * 1080 * 4)>;
width = <1080>;
height = <2340>;
stride = <(1080 * 4)>;
format = "a8r8g8b8";
};
};
reserved-memory {
debug_mem: debug@ffb00000 {
reg = <0x0 0xffb00000 0x0 0xc0000>;
no-map;
};
last_log_mem: lastlog@ffbc0000 {
reg = <0x0 0xffbc0000 0x0 0x80000>;
no-map;
};
pstore_mem: ramoops@ffc00000 {
compatible = "ramoops";
reg = <0x0 0xffc40000 0x0 0xc0000>;
record-size = <0x1000>;
console-size = <0x40000>;
pmsg-size = <0x20000>;
};
cmdline_mem: memory@ffd00000 {
reg = <0x0 0xffd40000 0x0 0x1000>;
no-map;
};
};
extcon_usb: extcon-usb {
compatible = "linux,extcon-usb-gpio";
id-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&vol_up_n>;
pinctrl-names = "default";
key-volume-up {
label = "Volume Up";
gpios = <&pm6125_gpios 6 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
debounce-interval = <15>;
linux,can-disable;
wakeup-source;
};
};
};
&pm6125_gpios {
vol_up_n: vol-up-n-state {
pins = "gpio6";
function = "normal";
power-source = <1>;
bias-pull-up;
input-enable;
};
};
&hsusb_phy1 {
vdd-supply = <&vreg_l7a>;
vdda-pll-supply = <&vreg_l10a>;
vdda-phy-dpdm-supply = <&vreg_l15a>;
status = "okay";
};
&pon_pwrkey {
status = "okay";
};
&pon_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
};
&rpm_requests {
regulators-0 {
compatible = "qcom,rpm-pm6125-regulators";
vreg_s6a: s6 {
regulator-min-microvolt = <936000>;
regulator-max-microvolt = <1422000>;
};
vreg_l1a: l1 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1256000>;
};
vreg_l2a: l2 {
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1056000>;
};
vreg_l3a: l3 {
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1064000>;
};
vreg_l4a: l4 {
regulator-min-microvolt = <872000>;
regulator-max-microvolt = <976000>;
regulator-allow-set-load;
};
vreg_l5a: l5 {
regulator-min-microvolt = <1648000>;
regulator-max-microvolt = <2950000>;
regulator-allow-set-load;
};
vreg_l6a: l6 {
regulator-min-microvolt = <576000>;
regulator-max-microvolt = <656000>;
};
vreg_l7a: l7 {
regulator-min-microvolt = <872000>;
regulator-max-microvolt = <976000>;
};
vreg_l8a: l8 {
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <728000>;
};
vreg_l9a: l9 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1896000>;
};
vreg_l10a: l10 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1896000>;
regulator-allow-set-load;
};
vreg_l11a: l11 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1952000>;
regulator-allow-set-load;
};
vreg_l12a: l12 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1996000>;
};
vreg_l13a: l13 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1832000>;
};
vreg_l14a: l14 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1904000>;
};
vreg_l15a: l15 {
regulator-min-microvolt = <3104000>;
regulator-max-microvolt = <3232000>;
};
vreg_l16a: l16 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1904000>;
};
vreg_l17a: l17 {
regulator-min-microvolt = <1248000>;
regulator-max-microvolt = <1304000>;
};
vreg_l18a: l18 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1264000>;
regulator-allow-set-load;
};
vreg_l19a: l19 {
regulator-min-microvolt = <1648000>;
regulator-max-microvolt = <2952000>;
};
vreg_l20a: l20 {
regulator-min-microvolt = <1648000>;
regulator-max-microvolt = <2952000>;
};
vreg_l21a: l21 {
regulator-min-microvolt = <2600000>;
regulator-max-microvolt = <2856000>;
};
vreg_l22a: l22 {
regulator-min-microvolt = <2944000>;
regulator-max-microvolt = <2950000>;
regulator-allow-set-load;
};
vreg_l23a: l23 {
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3400000>;
};
vreg_l24a: l24 {
regulator-min-microvolt = <2944000>;
regulator-max-microvolt = <2950000>;
regulator-allow-set-load;
};
};
};
&sdc2_off_state {
sd-cd-pins {
pins = "gpio98";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};
&sdc2_on_state {
sd-cd-pins {
pins = "gpio98";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
};
&sdhc_1 {
vmmc-supply = <&vreg_l24a>;
vqmmc-supply = <&vreg_l11a>;
status = "okay";
};
&sdhc_2 {
cd-gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>;
vmmc-supply = <&vreg_l22a>;
vqmmc-supply = <&vreg_l5a>;
no-sdio;
no-mmc;
status = "okay";
};
&tlmm {
gpio-reserved-ranges = <22 2>, <28 6>;
};
&usb3 {
status = "okay";
};
&usb3_dwc3 {
extcon = <&extcon_usb>;
};

View File

@@ -253,6 +253,124 @@ vph_pwr: vph-pwr-regulator {
regulator-max-microvolt = <3700000>;
};
vreg_cam_vio_1p8: regulator-cam-vio {
compatible = "regulator-fixed";
regulator-name = "vreg_cam_vio_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&tlmm 49 GPIO_ACTIVE_HIGH>;
enable-active-high;
/* Always-on prevents CCI bus timeouts */
regulator-always-on;
vin-supply = <&vreg_bob>;
};
vreg_camf_vana_2p8: regulator-camf-vana {
compatible = "regulator-fixed";
regulator-name = "vreg_camf_vana_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
gpio = <&tlmm 43 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vreg_bob>;
};
vreg_camf_vdig_1p1: regulator-camf-vdig {
compatible = "regulator-fixed";
regulator-name = "vreg_camf_vdig_1p1";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vreg_s8b_1p256>;
};
vreg_camu_vaf_1p8: regulator-camu-vaf {
compatible = "regulator-fixed";
regulator-name = "vreg_camu_vaf_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&tlmm 71 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vreg_bob>;
};
vreg_camu_vana_2p8: regulator-camu-vana {
compatible = "regulator-fixed";
regulator-name = "vreg_camu_vana_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
gpio = <&tlmm 68 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vreg_bob>;
};
vreg_camu_vdig_1p1: regulator-camu-vdig {
compatible = "regulator-fixed";
regulator-name = "vreg_camu_vdig_1p1";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
gpio = <&tlmm 50 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vreg_s8b_1p256>;
};
vreg_camw_vaf_1p8: regulator-camw-vaf {
compatible = "regulator-fixed";
regulator-name = "vreg_camw_vaf_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&tlmm 96 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vreg_bob>;
};
vreg_camw_vana_2p8: regulator-camw-vana {
compatible = "regulator-fixed";
regulator-name = "vreg_camw_vana_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
gpio = <&tlmm 79 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vreg_bob>;
};
vreg_camw_vdig_1p1: regulator-camw-vdig {
compatible = "regulator-fixed";
regulator-name = "vreg_camw_vdig_1p1";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
gpio = <&tlmm 108 GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vreg_s8b_1p256>;
};
// S2B is really ebi.lvl but it's there for supply map completeness sake.
vreg_s2b_0p7: smpa3-regulator {
compatible = "regulator-fixed";
@@ -714,11 +832,26 @@ vreg_bob: bob {
};
&cci0 {
/*
* cci0_i2c1 bus is unused and GPIO 71&72 are repurposed.
* So set only cci0_i2c0 pinctrl here.
*/
pinctrl-0 = <&cci0_default>;
pinctrl-1 = <&cci0_sleep>;
status = "okay";
};
&cci0_i2c0 {
/* sony,imx471 (Front) */
/* D-PHY sony,imx471 (Front) @ 0x1a */
camf_p24c64f: eeprom@52 {
compatible = "puya,p24c64f",
"atmel,24c64";
reg = <0x52>;
vcc-supply = <&vreg_cam_vio_1p8>;
read-only;
};
};
&cci1 {
@@ -726,11 +859,29 @@ &cci1 {
};
&cci1_i2c0 {
/* samsung,s5kjn1 (Rear-aux UW) */
/* actuator (For Ultra Wide sensor) @ 0xc */
/* D-PHY samsung,s5kjn1 (Ultra Wide) @ 0x2d */
camu_gt24p128e: eeprom@51 {
compatible = "giantec,gt24p128e",
"atmel,24c128";
reg = <0x51>;
vcc-supply = <&vreg_cam_vio_1p8>;
read-only;
};
};
&cci1_i2c1 {
/* sony,imx766 (Rear Wide) */
/* actuator (For Wide sensor) @ 0xc */
/* C-PHY sony,imx766 (Wide) @ 0x10 */
camw_gt24p128e: eeprom@50 {
compatible = "giantec,gt24p128e",
"atmel,24c128";
reg = <0x50>;
vcc-supply = <&vreg_cam_vio_1p8>;
read-only;
};
};
&gcc {
@@ -757,6 +908,10 @@ &gpi_dma1 {
status = "okay";
};
&gpu {
status = "okay";
};
&gpu_zap_shader {
firmware-name = "qcom/sm7325/nothing/spacewar/a660_zap.mbn";
};
@@ -823,15 +978,44 @@ &ipa {
status = "okay";
};
/* MDSS remains disabled until the panel driver is present. */
&mdss {
status = "okay";
};
&mdss_dsi {
vdda-supply = <&vdd_a_dsi_0_1p2>;
status = "okay";
/* Visionox RM692E5 panel */
panel: panel@0 {
compatible = "nothing,rm692e5-spacewar",
"visionox,rm692e5";
reg = <0>;
reset-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>;
vdd-supply = <&vdd_oled>;
vddio-supply = <&vdd_io_oled>;
pinctrl-0 = <&lcd_reset_n>,
<&mdp_vsync_p>;
pinctrl-names = "default";
port {
panel_in: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
};
};
&mdss_dsi0_out {
data-lanes = <0 1 2 3>;
remote-endpoint = <&panel_in>;
};
&mdss_dsi_phy {
vdds-supply = <&vdd_a_dsi_0_0p9>;
status = "okay";
};
&pm7325_gpios {
@@ -1147,6 +1331,20 @@ nfc_int_req: nfc-int-req-state {
bias-pull-down;
};
lcd_reset_n: lcd-reset-n-state {
pins = "gpio44";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
mdp_vsync_p: mdp-vsync-p-state {
pins = "gpio80";
function = "mdp_vsync";
drive-strength = <2>;
bias-pull-down;
};
hst_bt_en: hst-bt-en-state {
pins = "gpio85";
function = "gpio";

View File

@@ -719,5 +719,5 @@ &wifi {
vdd-1.3-rfa-supply = <&vreg_l2c_1p3>;
vdd-3.3-ch0-supply = <&vreg_l11c_3p3>;
qcom,ath10k-calibration-variant = "Qualcomm_sm8150hdk";
qcom,calibration-variant = "Qualcomm_sm8150hdk";
};

View File

@@ -453,22 +453,22 @@ &qupv3_id_2 {
&remoteproc_adsp {
status = "okay";
firmware-name = "qcom/sm8150/microsoft/adsp.mdt";
firmware-name = "qcom/sm8150/microsoft/adsp.mbn";
};
&remoteproc_cdsp {
status = "okay";
firmware-name = "qcom/sm8150/microsoft/cdsp.mdt";
firmware-name = "qcom/sm8150/microsoft/cdsp.mbn";
};
&remoteproc_mpss {
status = "okay";
firmware-name = "qcom/sm8150/microsoft/modem.mdt";
firmware-name = "qcom/sm8150/microsoft/modem.mbn";
};
&remoteproc_slpi {
status = "okay";
firmware-name = "qcom/sm8150/microsoft/slpi.mdt";
firmware-name = "qcom/sm8150/microsoft/slpi.mbn";
};
&pon_resin {

View File

@@ -379,22 +379,22 @@ &qupv3_id_1 {
&remoteproc_adsp {
status = "okay";
firmware-name = "qcom/sm8150/adsp.mdt";
firmware-name = "qcom/sm8150/adsp.mbn";
};
&remoteproc_cdsp {
status = "okay";
firmware-name = "qcom/sm8150/cdsp.mdt";
firmware-name = "qcom/sm8150/cdsp.mbn";
};
&remoteproc_mpss {
status = "okay";
firmware-name = "qcom/sm8150/modem.mdt";
firmware-name = "qcom/sm8150/modem.mbn";
};
&remoteproc_slpi {
status = "okay";
firmware-name = "qcom/sm8150/slpi.mdt";
firmware-name = "qcom/sm8150/slpi.mbn";
};
&tlmm {

View File

@@ -699,7 +699,7 @@ wifi@0 {
vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
qcom,ath11k-calibration-variant = "Xiaomi_Pad_5Pro";
qcom,calibration-variant = "Xiaomi_Pad_5Pro";
};
};

View File

@@ -606,7 +606,7 @@ cpu7_opp8: opp-1632000000 {
};
cpu7_opp9: opp-1747200000 {
opp-hz = /bits/ 64 <1708800000>;
opp-hz = /bits/ 64 <1747200000>;
opp-peak-kBps = <5412000 42393600>;
};

View File

@@ -1806,11 +1806,11 @@ cryptobam: dma-controller@1dc4000 {
interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
#dma-cells = <1>;
qcom,ee = <0>;
qcom,num-ees = <4>;
num-channels = <16>;
qcom,controlled-remotely;
iommus = <&apps_smmu 0x594 0x0011>,
<&apps_smmu 0x596 0x0011>;
/* FIXME: Probing BAM DMA causes some abort and system hang */
status = "fail";
};
crypto: crypto@1dfa000 {
@@ -1822,8 +1822,6 @@ crypto: crypto@1dfa000 {
<&apps_smmu 0x596 0x0011>;
interconnects = <&aggre2_noc MASTER_CRYPTO 0 &mc_virt SLAVE_EBI1 0>;
interconnect-names = "memory";
/* FIXME: dependency BAM DMA is disabled */
status = "disabled";
};
ipa: ipa@1e40000 {

View File

@@ -2262,6 +2262,68 @@ pcie@0 {
};
};
pcie1_ep: pcie-ep@1c08000 {
compatible = "qcom,sm8450-pcie-ep";
reg = <0x0 0x01c08000 0x0 0x3000>,
<0x0 0x40000000 0x0 0xf1d>,
<0x0 0x40000f20 0x0 0xa8>,
<0x0 0x40001000 0x0 0x1000>,
<0x0 0x40200000 0x0 0x1000000>,
<0x0 0x01c0b000 0x0 0x1000>,
<0x0 0x40002000 0x0 0x1000>;
reg-names = "parf",
"dbi",
"elbi",
"atu",
"addr_space",
"mmio",
"dma";
clocks = <&gcc GCC_PCIE_1_AUX_CLK>,
<&gcc GCC_PCIE_1_CFG_AHB_CLK>,
<&gcc GCC_PCIE_1_MSTR_AXI_CLK>,
<&gcc GCC_PCIE_1_SLV_AXI_CLK>,
<&gcc GCC_PCIE_1_SLV_Q2A_AXI_CLK>,
<&rpmhcc RPMH_CXO_CLK>,
<&gcc GCC_DDRSS_PCIE_SF_TBU_CLK>,
<&gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>;
clock-names = "aux",
"cfg",
"bus_master",
"bus_slave",
"slave_q2a",
"ref",
"ddrss_sf_tbu",
"aggre_noc_axi";
interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "global",
"doorbell",
"dma";
interconnects = <&pcie_noc MASTER_PCIE_1 QCOM_ICC_TAG_ALWAYS
&mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
&config_noc SLAVE_PCIE_1 QCOM_ICC_TAG_ACTIVE_ONLY>;
interconnect-names = "pcie-mem",
"cpu-pcie";
iommus = <&apps_smmu 0x1c80 0x7f>;
resets = <&gcc GCC_PCIE_1_BCR>;
reset-names = "core";
power-domains = <&gcc PCIE_1_GDSC>;
phys = <&pcie1_phy>;
phy-names = "pciephy";
num-lanes = <2>;
pinctrl-names = "default";
pinctrl-0 = <&pcie1_default_state>;
status = "disabled";
};
pcie1_phy: phy@1c0e000 {
compatible = "qcom,sm8450-qmp-gen4x2-pcie-phy";
reg = <0 0x01c0e000 0 0x2000>;
@@ -5283,6 +5345,8 @@ cryptobam: dma-controller@1dc4000 {
interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
#dma-cells = <1>;
qcom,ee = <0>;
qcom,num-ees = <4>;
num-channels = <16>;
qcom,controlled-remotely;
iommus = <&apps_smmu 0x584 0x11>,
<&apps_smmu 0x588 0x0>,

View File

@@ -547,20 +547,20 @@ &qupv3_id_0 {
};
&remoteproc_adsp {
firmware-name = "qcom/sm8550/adsp.mdt",
"qcom/sm8550/adsp_dtb.mdt";
firmware-name = "qcom/sm8550/adsp.mbn",
"qcom/sm8550/adsp_dtb.mbn";
status = "okay";
};
&remoteproc_cdsp {
firmware-name = "qcom/sm8550/cdsp.mdt",
"qcom/sm8550/cdsp_dtb.mdt";
firmware-name = "qcom/sm8550/cdsp.mbn",
"qcom/sm8550/cdsp_dtb.mbn";
status = "okay";
};
&remoteproc_mpss {
firmware-name = "qcom/sm8550/modem.mdt",
"qcom/sm8550/modem_dtb.mdt";
firmware-name = "qcom/sm8550/modem.mbn",
"qcom/sm8550/modem_dtb.mbn";
status = "okay";
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -784,6 +784,20 @@ &qupv3_1 {
status = "okay";
};
&remoteproc_adsp {
firmware-name = "qcom/sm8750/adsp.mbn",
"qcom/sm8750/adsp_dtb.mbn";
status = "okay";
};
&remoteproc_cdsp {
firmware-name = "qcom/sm8750/cdsp.mbn",
"qcom/sm8750/cdsp_dtb.mbn";
status = "okay";
};
&tlmm {
/* reserved for secure world */
gpio-reserved-ranges = <36 4>, <74 1>;

View File

@@ -782,6 +782,20 @@ &qupv3_1 {
status = "okay";
};
&remoteproc_adsp {
firmware-name = "qcom/sm8750/adsp.mbn",
"qcom/sm8750/adsp_dtb.mbn";
status = "okay";
};
&remoteproc_cdsp {
firmware-name = "qcom/sm8750/cdsp.mbn",
"qcom/sm8750/cdsp_dtb.mbn";
status = "okay";
};
&tlmm {
/* reserved for secure world */
gpio-reserved-ranges = <36 4>, <74 1>;

View File

@@ -10,9 +10,12 @@
#include <dt-bindings/interconnect/qcom,icc.h>
#include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/mailbox/qcom-ipcc.h>
#include <dt-bindings/power/qcom,rpmhpd.h>
#include <dt-bindings/power/qcom-rpmpd.h>
#include <dt-bindings/soc/qcom,gpr.h>
#include <dt-bindings/soc/qcom,rpmh-rsc.h>
#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
/ {
interrupt-parent = <&intc>;
@@ -95,11 +98,11 @@ cpu6: cpu@10000 {
compatible = "qcom,oryon";
reg = <0x0 0x10000>;
enable-method = "psci";
next-level-cache = <&L2_1>;
next-level-cache = <&l2_1>;
power-domains = <&cpu_pd6>;
power-domain-names = "psci";
L2_1: l2-cache {
l2_1: l2-cache {
compatible = "cache";
cache-level = <2>;
cache-unified;
@@ -111,7 +114,7 @@ cpu7: cpu@10100 {
compatible = "qcom,oryon";
reg = <0x0 0x10100>;
enable-method = "psci";
next-level-cache = <&L2_1>;
next-level-cache = <&l2_1>;
power-domains = <&cpu_pd7>;
power-domain-names = "psci";
};
@@ -233,53 +236,59 @@ psci {
cpu_pd0: power-domain-cpu0 {
#power-domain-cells = <0>;
power-domains = <&cluster_pd>;
power-domains = <&cluster0_pd>;
domain-idle-states = <&cluster0_c4>;
};
cpu_pd1: power-domain-cpu1 {
#power-domain-cells = <0>;
power-domains = <&cluster_pd>;
power-domains = <&cluster0_pd>;
domain-idle-states = <&cluster0_c4>;
};
cpu_pd2: power-domain-cpu2 {
#power-domain-cells = <0>;
power-domains = <&cluster_pd>;
power-domains = <&cluster0_pd>;
domain-idle-states = <&cluster0_c4>;
};
cpu_pd3: power-domain-cpu3 {
#power-domain-cells = <0>;
power-domains = <&cluster_pd>;
power-domains = <&cluster0_pd>;
domain-idle-states = <&cluster0_c4>;
};
cpu_pd4: power-domain-cpu4 {
#power-domain-cells = <0>;
power-domains = <&cluster_pd>;
power-domains = <&cluster0_pd>;
domain-idle-states = <&cluster0_c4>;
};
cpu_pd5: power-domain-cpu5 {
#power-domain-cells = <0>;
power-domains = <&cluster_pd>;
power-domains = <&cluster0_pd>;
domain-idle-states = <&cluster0_c4>;
};
cpu_pd6: power-domain-cpu6 {
#power-domain-cells = <0>;
power-domains = <&cluster_pd>;
power-domains = <&cluster1_pd>;
domain-idle-states = <&cluster1_c4>;
};
cpu_pd7: power-domain-cpu7 {
#power-domain-cells = <0>;
power-domains = <&cluster_pd>;
power-domains = <&cluster1_pd>;
domain-idle-states = <&cluster1_c4>;
};
cluster_pd: power-domain-cluster {
cluster0_pd: power-domain-cluster0 {
#power-domain-cells = <0>;
domain-idle-states = <&cluster_cl5>;
power-domains = <&system_pd>;
};
cluster1_pd: power-domain-cluster1 {
#power-domain-cells = <0>;
domain-idle-states = <&cluster_cl5>;
power-domains = <&system_pd>;
@@ -516,6 +525,58 @@ llcc_lpi_mem: llcc-lpi@ff800000 {
};
};
smp2p-adsp {
compatible = "qcom,smp2p";
interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
IPCC_MPROC_SIGNAL_SMP2P
IRQ_TYPE_EDGE_RISING>;
mboxes = <&ipcc IPCC_CLIENT_LPASS
IPCC_MPROC_SIGNAL_SMP2P>;
qcom,smem = <443>, <429>;
qcom,local-pid = <0>;
qcom,remote-pid = <2>;
smp2p_adsp_out: master-kernel {
qcom,entry-name = "master-kernel";
#qcom,smem-state-cells = <1>;
};
smp2p_adsp_in: slave-kernel {
qcom,entry-name = "slave-kernel";
interrupt-controller;
#interrupt-cells = <2>;
};
};
smp2p-cdsp {
compatible = "qcom,smp2p";
interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
IPCC_MPROC_SIGNAL_SMP2P
IRQ_TYPE_EDGE_RISING>;
mboxes = <&ipcc IPCC_CLIENT_CDSP
IPCC_MPROC_SIGNAL_SMP2P>;
qcom,smem = <94>, <432>;
qcom,local-pid = <0>;
qcom,remote-pid = <5>;
smp2p_cdsp_out: master-kernel {
qcom,entry-name = "master-kernel";
#qcom,smem-state-cells = <1>;
};
smp2p_cdsp_in: slave-kernel {
qcom,entry-name = "slave-kernel";
interrupt-controller;
#interrupt-cells = <2>;
};
};
soc: soc@0 {
compatible = "simple-bus";
@@ -542,6 +603,17 @@ gcc: clock-controller@100000 {
#power-domain-cells = <1>;
};
ipcc: mailbox@406000 {
compatible = "qcom,sm8750-ipcc", "qcom,ipcc";
reg = <0x0 0x00406000 0x0 0x1000>;
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
#interrupt-cells = <3>;
#mbox-cells = <2>;
};
gpi_dma2: dma-controller@800000 {
compatible = "qcom,sm8750-gpi-dma", "qcom,sm6350-gpi-dma";
reg = <0x0 0x00800000 0x0 0x60000>;
@@ -987,10 +1059,10 @@ uart14: serial@898000 {
interrupts = <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
clocks = <&gcc GCC_QUPV3_WRAP2_S6_CLK>;
clock-names = "se";
interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
interconnects = <&clk_virt MASTER_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS
&clk_virt SLAVE_QUP_CORE_2 QCOM_ICC_TAG_ALWAYS>,
<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
&config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ALWAYS>;
@@ -1883,6 +1955,11 @@ &clk_virt SLAVE_QUP_CORE_1 QCOM_ICC_TAG_ALWAYS>,
};
};
rng: rng@10c3000 {
compatible = "qcom,sm8750-trng", "qcom,trng";
reg = <0x0 0x010c3000 0x0 0x1000>;
};
cnoc_main: interconnect@1500000 {
compatible = "qcom,sm8750-cnoc-main";
reg = <0x0 0x01500000 0x0 0x16080>;
@@ -1939,12 +2016,206 @@ mmss_noc: interconnect@1780000 {
#interconnect-cells = <2>;
};
ice: crypto@1d88000 {
compatible = "qcom,sm8750-inline-crypto-engine",
"qcom,inline-crypto-engine";
reg = <0x0 0x01d88000 0x0 0x18000>;
clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
};
cryptobam: dma-controller@1dc4000 {
compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
reg = <0x0 0x01dc4000 0x0 0x28000>;
interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
#dma-cells = <1>;
iommus = <&apps_smmu 0x480 0>,
<&apps_smmu 0x481 0>;
qcom,ee = <0>;
qcom,controlled-remotely;
};
crypto: crypto@1dfa000 {
compatible = "qcom,sm8750-qce", "qcom,sm8150-qce", "qcom,qce";
reg = <0x0 0x01dfa000 0x0 0x6000>;
interconnects = <&aggre2_noc MASTER_CRYPTO QCOM_ICC_TAG_ALWAYS
&mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
interconnect-names = "memory";
dmas = <&cryptobam 4>, <&cryptobam 5>;
dma-names = "rx", "tx";
iommus = <&apps_smmu 0x480 0>,
<&apps_smmu 0x481 0>;
};
tcsr_mutex: hwlock@1f40000 {
compatible = "qcom,tcsr-mutex";
reg = <0x0 0x01f40000 0x0 0x20000>;
#hwlock-cells = <1>;
};
remoteproc_adsp: remoteproc@6800000 {
compatible = "qcom,sm8750-adsp-pas", "qcom,sm8550-adsp-pas";
reg = <0x0 0x06800000 0x0 0x10000>;
interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
<&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
<&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
<&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
<&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>,
<&smp2p_adsp_in 7 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "wdog",
"fatal",
"ready",
"handover",
"stop-ack",
"shutdown-ack";
clocks = <&rpmhcc RPMH_CXO_CLK>;
clock-names = "xo";
interconnects = <&lpass_lpicx_noc MASTER_LPASS_PROC QCOM_ICC_TAG_ALWAYS
&mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
power-domains = <&rpmhpd RPMHPD_LCX>,
<&rpmhpd RPMHPD_LMX>;
power-domain-names = "lcx",
"lmx";
memory-region = <&adspslpi_mem>, <&q6_adsp_dtb_mem>;
qcom,qmp = <&aoss_qmp>;
qcom,smem-states = <&smp2p_adsp_out 0>;
qcom,smem-state-names = "stop";
status = "disabled";
remoteproc_adsp_glink: glink-edge {
interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
IPCC_MPROC_SIGNAL_GLINK_QMP
IRQ_TYPE_EDGE_RISING>;
mboxes = <&ipcc IPCC_CLIENT_LPASS
IPCC_MPROC_SIGNAL_GLINK_QMP>;
qcom,remote-pid = <2>;
label = "lpass";
gpr {
compatible = "qcom,gpr";
qcom,glink-channels = "adsp_apps";
qcom,domain = <GPR_DOMAIN_ID_ADSP>;
qcom,intents = <512 20>;
#address-cells = <1>;
#size-cells = <0>;
q6apm: service@1 {
compatible = "qcom,q6apm";
reg = <GPR_APM_MODULE_IID>;
#sound-dai-cells = <0>;
qcom,protection-domain = "avs/audio",
"msm/adsp/audio_pd";
q6apmbedai: bedais {
compatible = "qcom,q6apm-lpass-dais";
#sound-dai-cells = <1>;
};
q6apmdai: dais {
compatible = "qcom,q6apm-dais";
iommus = <&apps_smmu 0x1001 0x80>,
<&apps_smmu 0x1041 0x20>;
};
};
q6prm: service@2 {
compatible = "qcom,q6prm";
reg = <GPR_PRM_MODULE_IID>;
qcom,protection-domain = "avs/audio",
"msm/adsp/audio_pd";
q6prmcc: clock-controller {
compatible = "qcom,q6prm-lpass-clocks";
#clock-cells = <2>;
};
};
};
};
};
lpass_wsa2macro: codec@6aa0000 {
compatible = "qcom,sm8750-lpass-wsa-macro", "qcom,sm8550-lpass-wsa-macro";
reg = <0x0 0x06aa0000 0x0 0x1000>;
clocks = <&q6prmcc LPASS_CLK_ID_WSA2_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&lpass_vamacro>;
clock-names = "mclk",
"macro",
"dcodec",
"fsgen";
#clock-cells = <0>;
clock-output-names = "wsa2-mclk";
#sound-dai-cells = <1>;
};
lpass_rxmacro: codec@6ac0000 {
compatible = "qcom,sm8750-lpass-rx-macro", "qcom,sm8550-lpass-rx-macro";
reg = <0x0 0x06ac0000 0x0 0x1000>;
clocks = <&q6prmcc LPASS_CLK_ID_RX_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&lpass_vamacro>;
clock-names = "mclk",
"macro",
"dcodec",
"fsgen";
#clock-cells = <0>;
clock-output-names = "mclk";
#sound-dai-cells = <1>;
};
lpass_txmacro: codec@6ae0000 {
compatible = "qcom,sm8750-lpass-tx-macro", "qcom,sm8550-lpass-tx-macro";
reg = <0x0 0x06ae0000 0x0 0x1000>;
clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&lpass_vamacro>;
clock-names = "mclk",
"macro",
"dcodec",
"fsgen";
#clock-cells = <0>;
clock-output-names = "mclk";
#sound-dai-cells = <1>;
};
lpass_wsamacro: codec@6b00000 {
compatible = "qcom,sm8750-lpass-wsa-macro", "qcom,sm8550-lpass-wsa-macro";
reg = <0x0 0x06b00000 0x0 0x1000>;
clocks = <&q6prmcc LPASS_CLK_ID_WSA_CORE_TX_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&lpass_vamacro>;
clock-names = "mclk",
"macro",
"dcodec",
"fsgen";
#clock-cells = <0>;
clock-output-names = "mclk";
#sound-dai-cells = <1>;
};
lpass_ag_noc: interconnect@7e40000 {
compatible = "qcom,sm8750-lpass-ag-noc";
reg = <0x0 0x07e40000 0x0 0xe080>;
@@ -1966,6 +2237,139 @@ lpass_lpicx_noc: interconnect@7420000 {
#interconnect-cells = <2>;
};
lpass_vamacro: codec@7660000 {
compatible = "qcom,sm8750-lpass-va-macro", "qcom,sm8550-lpass-va-macro";
reg = <0x0 0x07660000 0x0 0x2000>;
clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
clock-names = "mclk",
"macro",
"dcodec";
#clock-cells = <0>;
clock-output-names = "fsgen";
#sound-dai-cells = <1>;
};
lpass_tlmm: pinctrl@7760000 {
compatible = "qcom,sm8750-lpass-lpi-pinctrl",
"qcom,sm8650-lpass-lpi-pinctrl";
reg = <0x0 0x07760000 0x0 0x20000>;
clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
<&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
clock-names = "core", "audio";
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&lpass_tlmm 0 0 23>;
tx_swr_active: tx-swr-active-state {
clk-pins {
pins = "gpio0";
function = "swr_tx_clk";
drive-strength = <2>;
slew-rate = <1>;
bias-disable;
};
data-pins {
pins = "gpio1", "gpio2", "gpio14";
function = "swr_tx_data";
drive-strength = <2>;
slew-rate = <1>;
bias-bus-hold;
};
};
rx_swr_active: rx-swr-active-state {
clk-pins {
pins = "gpio3";
function = "swr_rx_clk";
drive-strength = <2>;
slew-rate = <1>;
bias-disable;
};
data-pins {
pins = "gpio4", "gpio5";
function = "swr_rx_data";
drive-strength = <2>;
slew-rate = <1>;
bias-bus-hold;
};
};
dmic01_default: dmic01-default-state {
clk-pins {
pins = "gpio6";
function = "dmic1_clk";
drive-strength = <8>;
output-high;
};
data-pins {
pins = "gpio7";
function = "dmic1_data";
drive-strength = <8>;
input-enable;
};
};
dmic23_default: dmic23-default-state {
clk-pins {
pins = "gpio8";
function = "dmic2_clk";
drive-strength = <8>;
output-high;
};
data-pins {
pins = "gpio9";
function = "dmic2_data";
drive-strength = <8>;
input-enable;
};
};
wsa_swr_active: wsa-swr-active-state {
clk-pins {
pins = "gpio10";
function = "wsa_swr_clk";
drive-strength = <2>;
slew-rate = <1>;
bias-disable;
};
data-pins {
pins = "gpio11";
function = "wsa_swr_data";
drive-strength = <2>;
slew-rate = <1>;
bias-bus-hold;
};
};
wsa2_swr_active: wsa2-swr-active-state {
clk-pins {
pins = "gpio15";
function = "wsa2_swr_clk";
drive-strength = <2>;
slew-rate = <1>;
bias-disable;
};
data-pins {
pins = "gpio16";
function = "wsa2_swr_data";
drive-strength = <2>;
slew-rate = <1>;
bias-bus-hold;
};
};
};
pdc: interrupt-controller@b220000 {
compatible = "qcom,sm8750-pdc", "qcom,pdc";
reg = <0x0 0x0b220000 0x0 0x10000>, <0x0 0x164400f0 0x0 0x64>;
@@ -1978,6 +2382,24 @@ pdc: interrupt-controller@b220000 {
interrupt-controller;
};
aoss_qmp: power-management@c300000 {
compatible = "qcom,sm8750-aoss-qmp", "qcom,aoss-qmp";
reg = <0x0 0x0c300000 0x0 0x400>;
interrupt-parent = <&ipcc>;
interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP
IRQ_TYPE_EDGE_RISING>;
mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
#clock-cells = <0>;
};
sram@c3f0000 {
compatible = "qcom,rpmh-stats";
reg = <0x0 0x0c3f0000 0x0 0x400>;
};
spmi_bus: spmi@c400000 {
compatible = "qcom,spmi-pmic-arb";
reg = <0x0 0x0c400000 0x0 0x3000>,
@@ -2894,6 +3316,174 @@ nsp_noc: interconnect@320c0000 {
qcom,bcm-voters = <&apps_bcm_voter>;
#interconnect-cells = <2>;
};
remoteproc_cdsp: remoteproc@32300000 {
compatible = "qcom,sm8750-cdsp-pas", "qcom,sm8650-cdsp-pas";
reg = <0x0 0x32300000 0x0 0x10000>;
interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
<&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
<&smp2p_cdsp_in 1 IRQ_TYPE_EDGE_RISING>,
<&smp2p_cdsp_in 2 IRQ_TYPE_EDGE_RISING>,
<&smp2p_cdsp_in 3 IRQ_TYPE_EDGE_RISING>,
<&smp2p_cdsp_in 7 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "wdog",
"fatal",
"ready",
"handover",
"stop-ack",
"shutdown-ack";
clocks = <&rpmhcc RPMH_CXO_CLK>;
clock-names = "xo";
interconnects = <&nsp_noc MASTER_CDSP_PROC QCOM_ICC_TAG_ALWAYS
&mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
power-domains = <&rpmhpd RPMHPD_CX>,
<&rpmhpd RPMHPD_MXC>,
<&rpmhpd RPMHPD_NSP>;
power-domain-names = "cx",
"mxc",
"nsp";
memory-region = <&cdsp_mem>, <&q6_cdsp_dtb_mem>, <&global_sync_mem>;
qcom,qmp = <&aoss_qmp>;
qcom,smem-states = <&smp2p_cdsp_out 0>;
qcom,smem-state-names = "stop";
status = "disabled";
glink-edge {
interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
IPCC_MPROC_SIGNAL_GLINK_QMP
IRQ_TYPE_EDGE_RISING>;
mboxes = <&ipcc IPCC_CLIENT_CDSP
IPCC_MPROC_SIGNAL_GLINK_QMP>;
qcom,remote-pid = <5>;
label = "cdsp";
fastrpc {
compatible = "qcom,fastrpc";
qcom,glink-channels = "fastrpcglink-apps-dsp";
label = "cdsp";
qcom,non-secure-domain;
#address-cells = <1>;
#size-cells = <0>;
compute-cb@1 {
compatible = "qcom,fastrpc-compute-cb";
reg = <1>;
iommus = <&apps_smmu 0x19c1 0x0>,
<&apps_smmu 0x0c21 0x0>,
<&apps_smmu 0x0c01 0x40>;
dma-coherent;
};
compute-cb@2 {
compatible = "qcom,fastrpc-compute-cb";
reg = <2>;
iommus = <&apps_smmu 0x1962 0x0>,
<&apps_smmu 0x0c02 0x20>,
<&apps_smmu 0x0c42 0x0>,
<&apps_smmu 0x19c2 0x0>;
dma-coherent;
};
compute-cb@3 {
compatible = "qcom,fastrpc-compute-cb";
reg = <3>;
iommus = <&apps_smmu 0x1963 0x0>,
<&apps_smmu 0x0c23 0x0>,
<&apps_smmu 0x0c03 0x40>,
<&apps_smmu 0x19c3 0x0>;
dma-coherent;
};
compute-cb@4 {
compatible = "qcom,fastrpc-compute-cb";
reg = <4>;
iommus = <&apps_smmu 0x1964 0x0>,
<&apps_smmu 0x0c24 0x0>,
<&apps_smmu 0x0c04 0x40>,
<&apps_smmu 0x19c4 0x0>;
dma-coherent;
};
compute-cb@5 {
compatible = "qcom,fastrpc-compute-cb";
reg = <5>;
iommus = <&apps_smmu 0x1965 0x0>,
<&apps_smmu 0x0c25 0x0>,
<&apps_smmu 0x0c05 0x40>,
<&apps_smmu 0x19c5 0x0>;
dma-coherent;
};
compute-cb@6 {
compatible = "qcom,fastrpc-compute-cb";
reg = <6>;
iommus = <&apps_smmu 0x1966 0x0>,
<&apps_smmu 0x0c06 0x20>,
<&apps_smmu 0x0c46 0x0>,
<&apps_smmu 0x19c6 0x0>;
dma-coherent;
};
compute-cb@7 {
compatible = "qcom,fastrpc-compute-cb";
reg = <7>;
iommus = <&apps_smmu 0x1967 0x0>,
<&apps_smmu 0x0c27 0x0>,
<&apps_smmu 0x0c07 0x40>,
<&apps_smmu 0x19c7 0x0>;
dma-coherent;
};
compute-cb@8 {
compatible = "qcom,fastrpc-compute-cb";
reg = <8>;
iommus = <&apps_smmu 0x1968 0x0>,
<&apps_smmu 0x0c08 0x20>,
<&apps_smmu 0x0c48 0x0>,
<&apps_smmu 0x19c8 0x0>;
dma-coherent;
};
/* note: secure cb9 in downstream */
compute-cb@12 {
compatible = "qcom,fastrpc-compute-cb";
reg = <12>;
iommus = <&apps_smmu 0x196c 0x0>,
<&apps_smmu 0x0c2c 0x20>,
<&apps_smmu 0x0c0c 0x40>,
<&apps_smmu 0x19cc 0x0>;
dma-coherent;
};
compute-cb@13 {
compatible = "qcom,fastrpc-compute-cb";
reg = <13>;
iommus = <&apps_smmu 0x196d 0x0>,
<&apps_smmu 0x0c0d 0x20>,
<&apps_smmu 0x0c2e 0x0>,
<&apps_smmu 0x0c4d 0x0>,
<&apps_smmu 0x19cd 0x0>;
dma-coherent;
};
compute-cb@14 {
compatible = "qcom,fastrpc-compute-cb";
reg = <14>;
iommus = <&apps_smmu 0x196e 0x0>,
<&apps_smmu 0x0c0e 0x20>,
<&apps_smmu 0x19ce 0x0>;
dma-coherent;
};
};
};
};
};
timer {

File diff suppressed because it is too large Load Diff

View File

@@ -507,6 +507,7 @@ vreg_l12b_1p2: ldo12 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l13b_3p0: ldo13 {
@@ -528,6 +529,7 @@ vreg_l15b_1p8: ldo15 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l16b_2p9: ldo16 {
@@ -777,7 +779,6 @@ typec-mux@8 {
reg = <0x08>;
clocks = <&rpmhcc RPMH_RF_CLK5>;
clock-names = "xo";
vdd-supply = <&vreg_rtmr2_1p15>;
vdd33-supply = <&vreg_rtmr2_3p3>;
@@ -786,7 +787,7 @@ typec-mux@8 {
vddat-supply = <&vreg_rtmr2_1p15>;
vddio-supply = <&vreg_rtmr2_1p8>;
reset-gpios = <&tlmm 185 GPIO_ACTIVE_HIGH>;
reset-gpios = <&tlmm 185 GPIO_ACTIVE_LOW>;
orientation-switch;
retimer-switch;
@@ -832,7 +833,6 @@ typec-mux@8 {
reg = <0x08>;
clocks = <&rpmhcc RPMH_RF_CLK3>;
clock-names = "xo";
vdd-supply = <&vreg_rtmr0_1p15>;
vdd33-supply = <&vreg_rtmr0_3p3>;
@@ -841,7 +841,7 @@ typec-mux@8 {
vddat-supply = <&vreg_rtmr0_1p15>;
vddio-supply = <&vreg_rtmr0_1p8>;
reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_HIGH>;
reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
retimer-switch;
orientation-switch;
@@ -887,7 +887,6 @@ typec-mux@8 {
reg = <0x8>;
clocks = <&rpmhcc RPMH_RF_CLK4>;
clock-names = "xo";
vdd-supply = <&vreg_rtmr1_1p15>;
vdd33-supply = <&vreg_rtmr1_3p3>;
@@ -896,7 +895,7 @@ typec-mux@8 {
vddat-supply = <&vreg_rtmr1_1p15>;
vddio-supply = <&vreg_rtmr1_1p8>;
reset-gpios = <&tlmm 176 GPIO_ACTIVE_HIGH>;
reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
retimer-switch;
orientation-switch;
@@ -942,6 +941,7 @@ &mdss_dp0 {
&mdss_dp0_out {
data-lanes = <0 1>;
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
&mdss_dp1 {
@@ -950,6 +950,7 @@ &mdss_dp1 {
&mdss_dp1_out {
data-lanes = <0 1>;
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
&mdss_dp2 {
@@ -958,6 +959,7 @@ &mdss_dp2 {
&mdss_dp2_out {
data-lanes = <0 1>;
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
&pcie4 {

View File

@@ -0,0 +1,12 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2025, Linaro Limited
*/
#include "x1e78100-lenovo-thinkpad-t14s.dtsi"
/ {
model = "Lenovo ThinkPad T14s Gen 6 (OLED)";
compatible = "lenovo,thinkpad-t14s-oled", "lenovo,thinkpad-t14s",
"qcom,x1e78100", "qcom,x1e80100";
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -192,6 +192,20 @@ vreg_l2b_3p0: ldo2 {
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4b_1p8: ldo4 {
regulator-name = "vreg_l4b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13b_3p0: ldo13 {
regulator-name = "vreg_l13b_3p0";
regulator-min-microvolt = <3072000>;
regulator-max-microvolt = <3072000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l14b_3p0: ldo14 {
regulator-name = "vreg_l14b_3p0";
regulator-min-microvolt = <3072000>;
@@ -209,6 +223,13 @@ regulators-1 {
vdd-l3-supply = <&vreg_s1f_0p7>;
vdd-s4-supply = <&vph_pwr>;
vreg_l3c_0p8: ldo3 {
regulator-name = "vreg_l3c_0p8";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s4c_1p8: smps4 {
regulator-name = "vreg_s4c_1p8";
regulator-min-microvolt = <1856000>;
@@ -401,7 +422,49 @@ keyboard@3a {
wakeup-source;
};
/* EC? @ 0x5b, 0x76 */
eusb5_repeater: redriver@43 {
compatible = "nxp,ptn3222";
reg = <0x43>;
#phy-cells = <0>;
vdd3v3-supply = <&vreg_l13b_3p0>;
vdd1v8-supply = <&vreg_l4b_1p8>;
reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&eusb5_reset_n>;
pinctrl-names = "default";
};
eusb3_repeater: redriver@47 {
compatible = "nxp,ptn3222";
reg = <0x47>;
#phy-cells = <0>;
vdd3v3-supply = <&vreg_l13b_3p0>;
vdd1v8-supply = <&vreg_l4b_1p8>;
reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&eusb3_reset_n>;
pinctrl-names = "default";
};
eusb6_repeater: redriver@4f {
compatible = "nxp,ptn3222";
reg = <0x4f>;
#phy-cells = <0>;
vdd3v3-supply = <&vreg_l13b_3p0>;
vdd1v8-supply = <&vreg_l4b_1p8>;
reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&eusb6_reset_n>;
pinctrl-names = "default";
};
/* EC @ 0x76 */
};
&i2c7 {
@@ -563,6 +626,30 @@ edp_reg_en: edp-reg-en-state {
bias-disable;
};
eusb3_reset_n: eusb3-reset-n-state {
pins = "gpio6";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
output-low;
};
eusb5_reset_n: eusb5-reset-n-state {
pins = "gpio7";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
output-low;
};
eusb6_reset_n: eusb6-reset-n-state {
pins = "gpio184";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
output-low;
};
hall_int_n_default: hall-int-n-state {
pins = "gpio92";
function = "gpio";
@@ -698,3 +785,56 @@ &usb_1_ss1_dwc3_hs {
&usb_1_ss1_qmpphy_out {
remote-endpoint = <&pmic_glink_ss1_ss_in>;
};
&usb_2 {
status = "okay";
};
&usb_2_dwc3 {
dr_mode = "host";
};
&usb_2_hsphy {
vdd-supply = <&vreg_l2e_0p8>;
vdda12-supply = <&vreg_l3e_1p2>;
phys = <&eusb5_repeater>;
status = "okay";
};
&usb_mp {
status = "okay";
};
&usb_mp_hsphy0 {
vdd-supply = <&vreg_l2e_0p8>;
vdda12-supply = <&vreg_l3e_1p2>;
phys = <&eusb6_repeater>;
status = "okay";
};
&usb_mp_hsphy1 {
vdd-supply = <&vreg_l2e_0p8>;
vdda12-supply = <&vreg_l3e_1p2>;
phys = <&eusb3_repeater>;
status = "okay";
};
&usb_mp_qmpphy0 {
vdda-phy-supply = <&vreg_l3e_1p2>;
vdda-pll-supply = <&vreg_l3c_0p8>;
status = "okay";
};
&usb_mp_qmpphy1 {
vdda-phy-supply = <&vreg_l3e_1p2>;
vdda-pll-supply = <&vreg_l3c_0p8>;
status = "okay";
};

File diff suppressed because it is too large Load Diff

View File

@@ -359,6 +359,7 @@ vreg_l12b_1p2: ldo12 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l13b_3p0: ldo13 {
@@ -380,6 +381,7 @@ vreg_l15b_1p8: ldo15 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l17b_2p5: ldo17 {
@@ -612,7 +614,6 @@ typec-mux@8 {
reg = <0x08>;
clocks = <&rpmhcc RPMH_RF_CLK3>;
clock-names = "xo";
vdd-supply = <&vreg_rtmr0_1p15>;
vdd33-supply = <&vreg_rtmr0_3p3>;
@@ -676,7 +677,6 @@ typec-mux@8 {
reg = <0x8>;
clocks = <&rpmhcc RPMH_RF_CLK4>;
clock-names = "xo";
vdd-supply = <&vreg_rtmr1_1p15>;
vdd33-supply = <&vreg_rtmr1_3p3>;
@@ -770,6 +770,24 @@ &mdss {
status = "okay";
};
&mdss_dp0 {
status = "okay";
};
&mdss_dp0_out {
data-lanes = <0 1>;
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
&mdss_dp1 {
status = "okay";
};
&mdss_dp1_out {
data-lanes = <0 1>;
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
&mdss_dp3 {
/delete-property/ #sound-dai-cells;

View File

@@ -633,6 +633,7 @@ vreg_l12b_1p2: ldo12 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l13b_3p0: ldo13 {
@@ -654,6 +655,7 @@ vreg_l15b_1p8: ldo15 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l16b_2p9: ldo16 {
@@ -1139,6 +1141,7 @@ &mdss_dp0 {
&mdss_dp0_out {
data-lanes = <0 1>;
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
&mdss_dp1 {
@@ -1147,6 +1150,7 @@ &mdss_dp1 {
&mdss_dp1_out {
data-lanes = <0 1>;
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
&mdss_dp3 {

View File

@@ -290,6 +290,7 @@ vreg_l12b_1p2: ldo12 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l14b_3p0: ldo14 {
@@ -304,8 +305,8 @@ vreg_l15b_1p8: ldo15 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
};
regulators-1 {
@@ -674,8 +675,6 @@ &pcie4_port0 {
wifi@0 {
compatible = "pci17cb,1107";
reg = <0x10000 0x0 0x0 0x0 0x0>;
qcom,ath12k-calibration-variant = "LES790";
};
};

View File

@@ -510,6 +510,7 @@ vreg_l12b: ldo12 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l13b: ldo13 {
@@ -531,6 +532,7 @@ vreg_l15b: ldo15 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l16b: ldo16 {
@@ -792,7 +794,6 @@ typec-mux@8 {
reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
clocks = <&rpmhcc RPMH_RF_CLK3>;
clock-names = "xo";
vdd-supply = <&vreg_rtmr0_1p15>;
vdd33-supply = <&vreg_rtmr0_3p3>;
@@ -878,7 +879,6 @@ typec-mux@8 {
reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
clocks = <&rpmhcc RPMH_RF_CLK4>;
clock-names = "xo";
vdd-supply = <&vreg_rtmr1_1p15>;
vdd33-supply = <&vreg_rtmr1_3p3>;

View File

@@ -110,7 +110,7 @@ trip1 {
};
};
pmc8380-6-thermal {
pmc8380_6_thermal: pmc8380-6-thermal {
polling-delay-passive = <100>;
thermal-sensors = <&pmc8380_6_temp_alarm>;
@@ -223,8 +223,7 @@ pmk8550_rtc: rtc@6100 {
reg = <0x6100>, <0x6200>;
reg-names = "rtc", "alarm";
interrupts = <0x0 0x62 0x1 IRQ_TYPE_EDGE_RISING>;
/* Not yet sure what blocks access */
status = "reserved";
qcom,no-alarm; /* alarm owned by ADSP */
};
pmk8550_sdam_2: nvram@7100 {

View File

@@ -17,6 +17,7 @@ / {
aliases {
serial0 = &uart21;
serial1 = &uart14;
};
wcd938x: audio-codec {
@@ -281,6 +282,42 @@ vreg_nvme: regulator-nvme {
regulator-boot-on;
};
vreg_wcn_0p95: regulator-wcn-0p95 {
compatible = "regulator-fixed";
regulator-name = "VREG_WCN_0P95";
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <950000>;
vin-supply = <&vreg_wcn_3p3>;
};
vreg_wcn_1p9: regulator-wcn-1p9 {
compatible = "regulator-fixed";
regulator-name = "VREG_WCN_1P9";
regulator-min-microvolt = <1900000>;
regulator-max-microvolt = <1900000>;
vin-supply = <&vreg_wcn_3p3>;
};
vreg_wcn_3p3: regulator-wcn-3p3 {
compatible = "regulator-fixed";
regulator-name = "VREG_WCN_3P3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&wcn_sw_en>;
pinctrl-names = "default";
regulator-boot-on;
};
usb-1-ss0-sbu-mux {
compatible = "onnn,fsusb42", "gpio-sbu-mux";
@@ -337,6 +374,65 @@ usb_1_ss2_sbu_mux: endpoint {
};
};
};
wcn7850-pmu {
compatible = "qcom,wcn7850-pmu";
vdd-supply = <&vreg_wcn_0p95>;
vddio-supply = <&vreg_l15b_1p8>;
vddaon-supply = <&vreg_wcn_0p95>;
vdddig-supply = <&vreg_wcn_0p95>;
vddrfa1p2-supply = <&vreg_wcn_1p9>;
vddrfa1p8-supply = <&vreg_wcn_1p9>;
wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&wcn_wlan_bt_en>;
pinctrl-names = "default";
regulators {
vreg_pmu_rfa_cmn: ldo0 {
regulator-name = "vreg_pmu_rfa_cmn";
};
vreg_pmu_aon_0p59: ldo1 {
regulator-name = "vreg_pmu_aon_0p59";
};
vreg_pmu_wlcx_0p8: ldo2 {
regulator-name = "vreg_pmu_wlcx_0p8";
};
vreg_pmu_wlmx_0p85: ldo3 {
regulator-name = "vreg_pmu_wlmx_0p85";
};
vreg_pmu_btcmx_0p85: ldo4 {
regulator-name = "vreg_pmu_btcmx_0p85";
};
vreg_pmu_rfa_0p8: ldo5 {
regulator-name = "vreg_pmu_rfa_0p8";
};
vreg_pmu_rfa_1p2: ldo6 {
regulator-name = "vreg_pmu_rfa_1p2";
};
vreg_pmu_rfa_1p8: ldo7 {
regulator-name = "vreg_pmu_rfa_1p8";
};
vreg_pmu_pcie_0p9: ldo8 {
regulator-name = "vreg_pmu_pcie_0p9";
};
vreg_pmu_pcie_1p8: ldo9 {
regulator-name = "vreg_pmu_pcie_1p8";
};
};
};
};
&apps_rsc {
@@ -437,6 +533,7 @@ vreg_l12b_1p2: ldo12 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l13b_3p0: ldo13 {
@@ -458,6 +555,7 @@ vreg_l15b_1p8: ldo15 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l16b_2p9: ldo16 {
@@ -751,6 +849,7 @@ &mdss_dp0 {
&mdss_dp0_out {
data-lanes = <0 1>;
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
&mdss_dp1 {
@@ -759,6 +858,7 @@ &mdss_dp1 {
&mdss_dp1_out {
data-lanes = <0 1>;
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
&mdss_dp2 {
@@ -767,6 +867,7 @@ &mdss_dp2 {
&mdss_dp2_out {
data-lanes = <0 1>;
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
&mdss_dp3 {
@@ -825,6 +926,23 @@ &pcie4_phy {
status = "okay";
};
&pcie4_port0 {
wifi@0 {
compatible = "pci17cb,1107";
reg = <0x10000 0x0 0x0 0x0 0x0>;
vddaon-supply = <&vreg_pmu_aon_0p59>;
vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
};
};
&pcie6a {
perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
@@ -1135,6 +1253,37 @@ wcd_default: wcd-reset-n-active-state {
bias-disable;
output-low;
};
wcn_wlan_bt_en: wcn-wlan-bt-en-state {
pins = "gpio116", "gpio117";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
wcn_sw_en: wcn-sw-en-state {
pins = "gpio214";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};
&uart14 {
status = "okay";
bluetooth {
compatible = "qcom,wcn7850-bt";
max-speed = <3200000>;
vddaon-supply = <&vreg_pmu_aon_0p59>;
vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
};
};
&uart21 {

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,17 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2025 Qualcomm Innovation Center, Inc. All rights reserved.
*/
/dts-v1/;
#include "x1p42100.dtsi"
#include "x1-crd.dtsi"
/delete-node/ &pmc8380_6;
/delete-node/ &pmc8380_6_thermal;
/ {
model = "Qualcomm Technologies, Inc. X1P42100 CRD";
compatible = "qcom,x1p42100-crd", "qcom,x1p42100";
};

View File

@@ -0,0 +1,81 @@
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2025 Qualcomm Innovation Center, Inc. All rights reserved.
*/
/* X1P42100 is heavily based on X1E80100, with some meaningful differences */
#include "x1e80100.dtsi"
/delete-node/ &bwmon_cluster0;
/delete-node/ &cluster_pd2;
/delete-node/ &cpu_map_cluster2;
/delete-node/ &cpu8;
/delete-node/ &cpu9;
/delete-node/ &cpu10;
/delete-node/ &cpu11;
/delete-node/ &cpu_pd8;
/delete-node/ &cpu_pd9;
/delete-node/ &cpu_pd10;
/delete-node/ &cpu_pd11;
/delete-node/ &pcie3_phy;
&gcc {
compatible = "qcom,x1p42100-gcc", "qcom,x1e80100-gcc";
};
/* The GPU is physically different and will be brought up later */
&gpu {
/delete-property/ compatible;
};
&gpucc {
compatible = "qcom,x1p42100-gpucc";
};
/* PCIe3 has half the lanes compared to X1E80100 */
&pcie3 {
num-lanes = <4>;
};
&pcie6a_phy {
compatible = "qcom,x1p42100-qmp-gen4x4-pcie-phy";
};
&soc {
/* The PCIe3 PHY on X1P42100 uses a different IP block */
pcie3_phy: phy@1bd4000 {
compatible = "qcom,x1p42100-qmp-gen4x4-pcie-phy";
reg = <0x0 0x01bd4000 0x0 0x2000>,
<0x0 0x01bd6000 0x0 0x2000>;
clocks = <&gcc GCC_PCIE_3_PHY_AUX_CLK>,
<&gcc GCC_PCIE_3_CFG_AHB_CLK>,
<&tcsr TCSR_PCIE_8L_CLKREF_EN>,
<&gcc GCC_PCIE_3_PHY_RCHNG_CLK>,
<&gcc GCC_PCIE_3_PIPE_CLK>,
<&gcc GCC_PCIE_3_PIPEDIV2_CLK>;
clock-names = "aux",
"cfg_ahb",
"ref",
"rchng",
"pipe",
"pipediv2";
resets = <&gcc GCC_PCIE_3_PHY_BCR>,
<&gcc GCC_PCIE_3_NOCSR_COM_PHY_BCR>;
reset-names = "phy",
"phy_nocsr";
assigned-clocks = <&gcc GCC_PCIE_3_PHY_RCHNG_CLK>;
assigned-clock-rates = <100000000>;
power-domains = <&gcc GCC_PCIE_3_PHY_GDSC>;
#clock-cells = <0>;
clock-output-names = "pcie3_pipe_clk";
#phy-cells = <0>;
status = "disabled";
};
};