blob: 6a28cab971891d327bf7fa5558a382799c178e6e [file] [log] [blame]
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2022, Linaro Limited
*/
/dts-v1/;
#include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sc8280xp.dtsi"
#include "sc8280xp-pmics.dtsi"
/ {
model = "Lenovo ThinkPad X13s";
compatible = "lenovo,thinkpad-x13s", "qcom,sc8280xp";
aliases {
i2c4 = &i2c4;
i2c21 = &i2c21;
serial1 = &uart2;
};
wcd938x: audio-codec {
compatible = "qcom,wcd9380-codec";
pinctrl-names = "default";
pinctrl-0 = <&wcd_default>;
reset-gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
vdd-buck-supply = <&vreg_s10b>;
vdd-rxtx-supply = <&vreg_s10b>;
vdd-io-supply = <&vreg_s10b>;
vdd-mic-bias-supply = <&vreg_bob>;
qcom,micbias1-microvolt = <1800000>;
qcom,micbias2-microvolt = <1800000>;
qcom,micbias3-microvolt = <1800000>;
qcom,micbias4-microvolt = <1800000>;
qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
qcom,rx-device = <&wcd_rx>;
qcom,tx-device = <&wcd_tx>;
#sound-dai-cells = <1>;
};
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pmc8280c_lpg 3 1000000>;
enable-gpios = <&pmc8280_1_gpios 8 GPIO_ACTIVE_HIGH>;
power-supply = <&vreg_edp_bl>;
pinctrl-names = "default";
pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>;
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&hall_int_n_default>;
switch-lid {
gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
linux,input-type = <EV_SW>;
linux,code = <SW_LID>;
wakeup-source;
wakeup-event-action = <EV_ACT_DEASSERTED>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&cam_indicator_en>;
led-camera-indicator {
label = "white:camera-indicator";
function = LED_FUNCTION_INDICATOR;
color = <LED_COLOR_ID_WHITE>;
gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "none";
default-state = "off";
/* Reuse as a panic indicator until we get a "camera on" trigger */
panic-indicator;
};
};
pmic-glink {
compatible = "qcom,sc8280xp-pmic-glink", "qcom,pmic-glink";
#address-cells = <1>;
#size-cells = <0>;
orientation-gpios = <&tlmm 166 GPIO_ACTIVE_HIGH>,
<&tlmm 49 GPIO_ACTIVE_HIGH>;
connector@0 {
compatible = "usb-c-connector";
reg = <0>;
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
pmic_glink_con0_hs: endpoint {
remote-endpoint = <&usb_0_dwc3_hs>;
};
};
port@1 {
reg = <1>;
pmic_glink_con0_ss: endpoint {
remote-endpoint = <&usb_0_qmpphy_out>;
};
};
port@2 {
reg = <2>;
pmic_glink_con0_sbu: endpoint {
remote-endpoint = <&usb0_sbu_mux>;
};
};
};
};
connector@1 {
compatible = "usb-c-connector";
reg = <1>;
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
pmic_glink_con1_hs: endpoint {
remote-endpoint = <&usb_1_dwc3_hs>;
};
};
port@1 {
reg = <1>;
pmic_glink_con1_ss: endpoint {
remote-endpoint = <&usb_1_qmpphy_out>;
};
};
port@2 {
reg = <2>;
pmic_glink_con1_sbu: endpoint {
remote-endpoint = <&usb1_sbu_mux>;
};
};
};
};
};
vreg_edp_3p3: regulator-edp-3p3 {
compatible = "regulator-fixed";
regulator-name = "VCC3LCD";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&tlmm 25 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&edp_reg_en>;
regulator-boot-on;
};
vreg_edp_bl: regulator-edp-bl {
compatible = "regulator-fixed";
regulator-name = "VBL9";
regulator-min-microvolt = <3600000>;
regulator-max-microvolt = <3600000>;
gpio = <&pmc8280_1_gpios 9 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&edp_bl_reg_en>;
regulator-boot-on;
};
vreg_misc_3p3: regulator-misc-3p3 {
compatible = "regulator-fixed";
regulator-name = "VCC3B";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&pmc8280_1_gpios 1 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&misc_3p3_reg_en>;
regulator-boot-on;
regulator-always-on;
};
vreg_nvme: regulator-nvme {
compatible = "regulator-fixed";
regulator-name = "VCC3_SSD";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&tlmm 135 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&nvme_reg_en>;
regulator-boot-on;
};
vreg_vph_pwr: regulator-vph-pwr {
compatible = "regulator-fixed";
regulator-name = "VPH_VCC3R9";
regulator-min-microvolt = <3900000>;
regulator-max-microvolt = <3900000>;
regulator-always-on;
};
vreg_wlan: regulator-wlan {
compatible = "regulator-fixed";
regulator-name = "VCC_WLAN_3R9";
regulator-min-microvolt = <3900000>;
regulator-max-microvolt = <3900000>;
gpio = <&pmr735a_gpios 1 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&hastings_reg_en>;
regulator-boot-on;
};
vreg_wwan: regulator-wwan {
compatible = "regulator-fixed";
regulator-name = "VCC3B_WAN";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&pmc8280_2_gpios 1 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&wwan_sw_en>;
regulator-boot-on;
};
reserved-memory {
gpu_mem: gpu-mem@8bf00000 {
reg = <0 0x8bf00000 0 0x2000>;
no-map;
};
linux,cma {
compatible = "shared-dma-pool";
size = <0x0 0x8000000>;
reusable;
linux,cma-default;
};
};
thermal-zones {
pm8008-thermal {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-sensors = <&pm8008>;
trips {
trip0 {
temperature = <95000>;
hysteresis = <0>;
type = "passive";
};
trip1 {
temperature = <115000>;
hysteresis = <0>;
type = "critical";
};
};
};
skin-temp-thermal {
polling-delay-passive = <250>;
thermal-sensors = <&pmk8280_adc_tm 5>;
trips {
skin_temp_alert0: trip-point0 {
temperature = <55000>;
hysteresis = <1000>;
type = "passive";
};
skin_temp_alert1: trip-point1 {
temperature = <58000>;
hysteresis = <1000>;
type = "passive";
};
skin-temp-crit {
temperature = <73000>;
hysteresis = <1000>;
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&skin_temp_alert0>;
cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
map1 {
trip = <&skin_temp_alert1>;
cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
<&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};
};
usb0-sbu-mux {
compatible = "pericom,pi3usb102", "gpio-sbu-mux";
enable-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
select-gpios = <&tlmm 164 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&usb0_sbu_default>;
mode-switch;
orientation-switch;
port {
usb0_sbu_mux: endpoint {
remote-endpoint = <&pmic_glink_con0_sbu>;
};
};
};
usb1-sbu-mux {
compatible = "pericom,pi3usb102", "gpio-sbu-mux";
enable-gpios = <&tlmm 48 GPIO_ACTIVE_LOW>;
select-gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&usb1_sbu_default>;
mode-switch;
orientation-switch;
port {
usb1_sbu_mux: endpoint {
remote-endpoint = <&pmic_glink_con1_sbu>;
};
};
};
};
&apps_rsc {
regulators-0 {
compatible = "qcom,pm8350-rpmh-regulators";
qcom,pmic-id = "b";
vdd-l1-l4-supply = <&vreg_s12b>;
vdd-l2-l7-supply = <&vreg_bob>;
vdd-l3-l5-supply = <&vreg_s11b>;
vdd-l6-l9-l10-supply = <&vreg_s12b>;
vdd-l8-supply = <&vreg_s12b>;
vreg_s10b: smps10 {
regulator-name = "vreg_s10b";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_s11b: smps11 {
regulator-name = "vreg_s11b";
regulator-min-microvolt = <1272000>;
regulator-max-microvolt = <1272000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_s12b: smps12 {
regulator-name = "vreg_s12b";
regulator-min-microvolt = <984000>;
regulator-max-microvolt = <984000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l1b: ldo1 {
regulator-name = "vreg_l1b";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3b: ldo3 {
regulator-name = "vreg_l3b";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-boot-on;
};
vreg_l4b: ldo4 {
regulator-name = "vreg_l4b";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6b: ldo6 {
regulator-name = "vreg_l6b";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <880000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-boot-on;
};
};
regulators-1 {
compatible = "qcom,pm8350c-rpmh-regulators";
qcom,pmic-id = "c";
vdd-bob-supply = <&vreg_vph_pwr>;
vdd-l1-l12-supply = <&vreg_s1c>;
vdd-l2-l8-supply = <&vreg_s1c>;
vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
vdd-l6-l9-l11-supply = <&vreg_bob>;
vdd-l10-supply = <&vreg_s11b>;
vreg_s1c: smps1 {
regulator-name = "vreg_s1c";
regulator-min-microvolt = <1880000>;
regulator-max-microvolt = <1900000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-always-on;
};
vreg_l1c: ldo1 {
regulator-name = "vreg_l1c";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8c: ldo8 {
regulator-name = "vreg_l8c";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l12c: ldo12 {
regulator-name = "vreg_l12c";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13c: ldo13 {
regulator-name = "vreg_l13c";
regulator-min-microvolt = <3072000>;
regulator-max-microvolt = <3072000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_bob: bob {
regulator-name = "vreg_bob";
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
regulator-always-on;
};
};
regulators-2 {
compatible = "qcom,pm8350-rpmh-regulators";
qcom,pmic-id = "d";
vdd-l1-l4-supply = <&vreg_s11b>;
vdd-l2-l7-supply = <&vreg_bob>;
vdd-l3-l5-supply = <&vreg_s11b>;
vdd-l6-l9-l10-supply = <&vreg_s12b>;
vdd-l8-supply = <&vreg_s12b>;
vreg_l2d: ldo2 {
regulator-name = "vreg_l2d";
regulator-min-microvolt = <3072000>;
regulator-max-microvolt = <3072000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3d: ldo3 {
regulator-name = "vreg_l3d";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4d: ldo4 {
regulator-name = "vreg_l4d";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6d: ldo6 {
regulator-name = "vreg_l6d";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <880000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7d: ldo7 {
regulator-name = "vreg_l7d";
regulator-min-microvolt = <3072000>;
regulator-max-microvolt = <3072000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8d: ldo8 {
regulator-name = "vreg_l8d";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9d: ldo9 {
regulator-name = "vreg_l9d";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l10d: ldo10 {
regulator-name = "vreg_l10d";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <912000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
};
&camss {
vdda-phy-supply = <&vreg_l6d>;
vdda-pll-supply = <&vreg_l4d>;
status = "okay";
ports {
port@0 {
csiphy0_lanes01_ep: endpoint@0 {
reg = <0>;
clock-lanes = <7>;
data-lanes = <0 1>;
remote-endpoint = <&ov5675_ep>;
};
};
};
};
&cci2 {
status = "okay";
};
&cci2_i2c1 {
camera@10 {
compatible = "ovti,ov5675";
reg = <0x10>;
reset-gpios = <&tlmm 15 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&cam_rgb_default>;
clocks = <&camcc CAMCC_MCLK3_CLK>;
orientation = <0>; /* Front facing */
avdd-supply = <&vreg_l6q>;
dvdd-supply = <&vreg_l2q>;
dovdd-supply = <&vreg_l7q>;
port {
ov5675_ep: endpoint {
clock-lanes = <0>;
data-lanes = <1 2>;
link-frequencies = /bits/ 64 <450000000>;
remote-endpoint = <&csiphy0_lanes01_ep>;
};
};
};
};
&dispcc0 {
status = "okay";
};
&gpu {
status = "okay";
zap-shader {
memory-region = <&gpu_mem>;
firmware-name = "qcom/sc8280xp/LENOVO/21BX/qcdxkmsuc8280.mbn";
};
};
&mdss0 {
status = "okay";
};
&mdss0_dp0 {
status = "okay";
};
&mdss0_dp0_out {
data-lanes = <0 1>;
remote-endpoint = <&usb_0_qmpphy_dp_in>;
};
&mdss0_dp1 {
status = "okay";
};
&mdss0_dp1_out {
data-lanes = <0 1>;
remote-endpoint = <&usb_1_qmpphy_dp_in>;
};
&mdss0_dp3 {
compatible = "qcom,sc8280xp-edp";
/delete-property/ #sound-dai-cells;
data-lanes = <0 1 2 3>;
status = "okay";
aux-bus {
panel {
compatible = "edp-panel";
backlight = <&backlight>;
power-supply = <&vreg_edp_3p3>;
port {
edp_panel_in: endpoint {
remote-endpoint = <&mdss0_dp3_out>;
};
};
};
};
ports {
port@1 {
reg = <1>;
mdss0_dp3_out: endpoint {
remote-endpoint = <&edp_panel_in>;
};
};
};
};
&mdss0_dp3_phy {
compatible = "qcom,sc8280xp-edp-phy";
vdda-phy-supply = <&vreg_l6b>;
vdda-pll-supply = <&vreg_l3b>;
status = "okay";
};
&i2c4 {
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&i2c4_default>;
status = "okay";
touchscreen@10 {
compatible = "elan,ekth5015m", "elan,ekth6915";
reg = <0x10>;
interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>;
reset-gpios = <&tlmm 99 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
no-reset-on-power-off;
vcc33-supply = <&vreg_misc_3p3>;
vccio-supply = <&vreg_misc_3p3>;
pinctrl-names = "default";
pinctrl-0 = <&ts0_default>;
};
};
&i2c11 {
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&i2c11_default>;
status = "okay";
pm8008: pmic@c {
compatible = "qcom,pm8008";
reg = <0xc>;
interrupts-extended = <&tlmm 41 IRQ_TYPE_EDGE_RISING>;
reset-gpios = <&tlmm 42 GPIO_ACTIVE_LOW>;
vdd-l1-l2-supply = <&vreg_s11b>;
vdd-l3-l4-supply = <&vreg_bob>;
vdd-l5-supply = <&vreg_bob>;
vdd-l6-supply = <&vreg_bob>;
vdd-l7-supply = <&vreg_bob>;
pinctrl-names = "default";
pinctrl-0 = <&pm8008_default>;
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&pm8008 0 0 2>;
interrupt-controller;
#interrupt-cells = <2>;
#thermal-sensor-cells = <0>;
regulators {
vreg_l1q: ldo1 {
regulator-name = "vreg_l1q";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
vreg_l2q: ldo2 {
regulator-name = "vreg_l2q";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
vreg_l3q: ldo3 {
regulator-name = "vreg_l3q";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
vreg_l4q: ldo4 {
regulator-name = "vreg_l4q";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
vreg_l5q: ldo5 {
regulator-name = "vreg_l5q";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vreg_l6q: ldo6 {
regulator-name = "vreg_l6q";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vreg_l7q: ldo7 {
regulator-name = "vreg_l7q";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
};
};
};
&i2c21 {
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&i2c21_default>, <&tpad_default>;
status = "okay";
touchpad@15 {
compatible = "hid-over-i2c";
reg = <0x15>;
hid-descr-addr = <0x1>;
interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
vdd-supply = <&vreg_misc_3p3>;
vddl-supply = <&vreg_s10b>;
wakeup-source;
};
touchpad@2c {
compatible = "hid-over-i2c";
reg = <0x2c>;
hid-descr-addr = <0x20>;
interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
vdd-supply = <&vreg_misc_3p3>;
vddl-supply = <&vreg_s10b>;
wakeup-source;
};
keyboard@68 {
compatible = "hid-over-i2c";
reg = <0x68>;
hid-descr-addr = <0x1>;
interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>;
vdd-supply = <&vreg_misc_3p3>;
vddl-supply = <&vreg_s10b>;
pinctrl-names = "default";
pinctrl-0 = <&kybd_default>;
wakeup-source;
};
};
&pcie2a {
perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
vddpe-3v3-supply = <&vreg_nvme>;
pinctrl-names = "default";
pinctrl-0 = <&pcie2a_default>;
status = "okay";
};
&pcie2a_phy {
vdda-phy-supply = <&vreg_l6d>;
vdda-pll-supply = <&vreg_l4d>;
status = "okay";
};
&pcie3a {
perst-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
vddpe-3v3-supply = <&vreg_wwan>;
pinctrl-names = "default";
pinctrl-0 = <&pcie3a_default>;
status = "okay";
};
&pcie3a_phy {
vdda-phy-supply = <&vreg_l6d>;
vdda-pll-supply = <&vreg_l4d>;
status = "okay";
};
&pcie4 {
max-link-speed = <2>;
perst-gpios = <&tlmm 141 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 139 GPIO_ACTIVE_LOW>;
vddpe-3v3-supply = <&vreg_wlan>;
pinctrl-names = "default";
pinctrl-0 = <&pcie4_default>;
status = "okay";
};
&pcie4_port0 {
wifi@0 {
compatible = "pci17cb,1103";
reg = <0x10000 0x0 0x0 0x0 0x0>;
qcom,ath11k-calibration-variant = "LE_X13S";
};
};
&pcie4_phy {
vdda-phy-supply = <&vreg_l6d>;
vdda-pll-supply = <&vreg_l4d>;
status = "okay";
};
&pmc8280c_lpg {
status = "okay";
};
&pmk8280_adc_tm {
status = "okay";
sys-therm@0 {
reg = <0>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM1_100K_PU(1)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@1 {
reg = <1>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM2_100K_PU(1)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@2 {
reg = <2>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM3_100K_PU(1)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@3 {
reg = <3>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@4 {
reg = <4>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM1_100K_PU(3)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@5 {
reg = <5>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM2_100K_PU(3)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@6 {
reg = <6>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM3_100K_PU(3)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
sys-therm@7 {
reg = <7>;
io-channels = <&pmk8280_vadc PM8350_ADC7_AMUX_THM4_100K_PU(3)>;
qcom,hw-settle-time-us = <200>;
qcom,avg-samples = <2>;
qcom,ratiometric;
};
};
&pmk8280_pon_pwrkey {
status = "okay";
};
&pmk8280_pon_resin {
status = "okay";
};
&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)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm1";
};
channel@145 {
reg = <PM8350_ADC7_AMUX_THM2_100K_PU(1)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm2";
};
channel@146 {
reg = <PM8350_ADC7_AMUX_THM3_100K_PU(1)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm3";
};
channel@147 {
reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm4";
};
channel@344 {
reg = <PM8350_ADC7_AMUX_THM1_100K_PU(3)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm5";
};
channel@345 {
reg = <PM8350_ADC7_AMUX_THM2_100K_PU(3)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm6";
};
channel@346 {
reg = <PM8350_ADC7_AMUX_THM3_100K_PU(3)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm7";
};
channel@347 {
reg = <PM8350_ADC7_AMUX_THM4_100K_PU(3)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "sys_therm8";
};
};
&qup0 {
status = "okay";
};
&qup1 {
status = "okay";
};
&qup2 {
status = "okay";
};
&remoteproc_adsp {
firmware-name = "qcom/sc8280xp/LENOVO/21BX/qcadsp8280.mbn";
status = "okay";
};
&remoteproc_nsp0 {
firmware-name = "qcom/sc8280xp/LENOVO/21BX/qccdsp8280.mbn";
status = "okay";
};
&rxmacro {
status = "okay";
};
&sound {
compatible = "qcom,sc8280xp-sndcard";
model = "SC8280XP-LENOVO-X13S";
audio-routing =
"SpkrLeft IN", "WSA_SPK1 OUT",
"SpkrRight IN", "WSA_SPK2 OUT",
"IN1_HPHL", "HPHL_OUT",
"IN2_HPHR", "HPHR_OUT",
"AMIC2", "MIC BIAS2",
"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 {
link-name = "WCD Playback";
cpu {
sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
};
codec {
sound-dai = <&wcd938x 0>, <&swr1 0>, <&rxmacro 0>;
};
platform {
sound-dai = <&q6apm>;
};
};
wcd-capture-dai-link {
link-name = "WCD Capture";
cpu {
sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
};
codec {
sound-dai = <&wcd938x 1>, <&swr2 0>, <&txmacro 0>;
};
platform {
sound-dai = <&q6apm>;
};
};
wsa-dai-link {
link-name = "WSA Playback";
cpu {
sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
};
codec {
sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro 0>;
};
platform {
sound-dai = <&q6apm>;
};
};
va-dai-link {
link-name = "VA Capture";
cpu {
sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
};
platform {
sound-dai = <&q6apm>;
};
codec {
sound-dai = <&vamacro 0>;
};
};
};
&swr0 {
status = "okay";
left_spkr: wsa8830-left@0,1 {
compatible = "sdw10217020200";
reg = <0 1>;
pinctrl-names = "default";
pinctrl-0 = <&spkr_1_sd_n_default>;
powerdown-gpios = <&tlmm 178 GPIO_ACTIVE_LOW>;
#thermal-sensor-cells = <0>;
sound-name-prefix = "SpkrLeft";
#sound-dai-cells = <0>;
vdd-supply = <&vreg_s10b>;
};
right_spkr: wsa8830-right@0,2 {
compatible = "sdw10217020200";
reg = <0 2>;
pinctrl-names = "default";
pinctrl-0 = <&spkr_2_sd_n_default>;
powerdown-gpios = <&tlmm 179 GPIO_ACTIVE_LOW>;
#thermal-sensor-cells = <0>;
sound-name-prefix = "SpkrRight";
#sound-dai-cells = <0>;
vdd-supply = <&vreg_s10b>;
};
};
&swr1 {
status = "okay";
wcd_rx: wcd9380-rx@0,4 {
compatible = "sdw20217010d00";
reg = <0 4>;
qcom,rx-port-mapping = <1 2 3 4 5>;
};
};
&swr2 {
status = "okay";
wcd_tx: wcd9380-tx@0,3 {
compatible = "sdw20217010d00";
reg = <0 3>;
qcom,tx-port-mapping = <1 1 2 3>;
};
};
&txmacro {
status = "okay";
};
&uart2 {
pinctrl-0 = <&uart2_default>;
pinctrl-names = "default";
status = "okay";
bluetooth {
compatible = "qcom,wcn6855-bt";
vddio-supply = <&vreg_s10b>;
vddbtcxmx-supply = <&vreg_s12b>;
vddrfacmn-supply = <&vreg_s12b>;
vddrfa0p8-supply = <&vreg_s12b>;
vddrfa1p2-supply = <&vreg_s11b>;
vddrfa1p7-supply = <&vreg_s1c>;
max-speed = <3200000>;
enable-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
swctrl-gpios = <&tlmm 132 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&bt_default>;
pinctrl-names = "default";
};
};
&usb_0 {
status = "okay";
};
&usb_0_dwc3 {
dr_mode = "host";
};
&usb_0_dwc3_hs {
remote-endpoint = <&pmic_glink_con0_hs>;
};
&usb_0_hsphy {
vdda-pll-supply = <&vreg_l9d>;
vdda18-supply = <&vreg_l1c>;
vdda33-supply = <&vreg_l7d>;
status = "okay";
};
&usb_0_qmpphy {
vdda-phy-supply = <&vreg_l9d>;
vdda-pll-supply = <&vreg_l4d>;
orientation-switch;
status = "okay";
};
&usb_0_qmpphy_dp_in {
remote-endpoint = <&mdss0_dp0_out>;
};
&usb_0_qmpphy_out {
remote-endpoint = <&pmic_glink_con0_ss>;
};
&usb_1 {
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "host";
};
&usb_1_dwc3_hs {
remote-endpoint = <&pmic_glink_con1_hs>;
};
&usb_1_hsphy {
vdda-pll-supply = <&vreg_l4b>;
vdda18-supply = <&vreg_l1c>;
vdda33-supply = <&vreg_l13c>;
status = "okay";
};
&usb_1_qmpphy {
vdda-phy-supply = <&vreg_l4b>;
vdda-pll-supply = <&vreg_l3b>;
orientation-switch;
status = "okay";
};
&usb_1_qmpphy_dp_in {
remote-endpoint = <&mdss0_dp1_out>;
};
&usb_1_qmpphy_out {
remote-endpoint = <&pmic_glink_con1_ss>;
};
&usb_2 {
status = "okay";
};
&usb_2_hsphy0 {
vdda-pll-supply = <&vreg_l1b>;
vdda18-supply = <&vreg_l1c>;
vdda33-supply = <&vreg_l7d>;
status = "okay";
};
&usb_2_hsphy1 {
vdda-pll-supply = <&vreg_l8d>;
vdda18-supply = <&vreg_l1c>;
vdda33-supply = <&vreg_l7d>;
status = "okay";
};
&usb_2_hsphy2 {
vdda-pll-supply = <&vreg_l10d>;
vdda18-supply = <&vreg_l8c>;
vdda33-supply = <&vreg_l2d>;
status = "okay";
};
&usb_2_hsphy3 {
vdda-pll-supply = <&vreg_l10d>;
vdda18-supply = <&vreg_l8c>;
vdda33-supply = <&vreg_l2d>;
status = "okay";
};
&usb_2_qmpphy0 {
vdda-phy-supply = <&vreg_l1b>;
vdda-pll-supply = <&vreg_l4d>;
status = "okay";
};
&usb_2_qmpphy1 {
vdda-phy-supply = <&vreg_l8d>;
vdda-pll-supply = <&vreg_l4d>;
status = "okay";
};
&vamacro {
pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
pinctrl-names = "default";
vdd-micb-supply = <&vreg_s10b>;
qcom,dmic-sample-rate = <4800000>;
status = "okay";
};
&wsamacro {
status = "okay";
};
&xo_board_clk {
clock-frequency = <38400000>;
};
/* PINCTRL */
&lpass_tlmm {
status = "okay";
};
&pmc8280_1_gpios {
edp_bl_en: edp-bl-en-state {
pins = "gpio8";
function = "normal";
};
edp_bl_reg_en: edp-bl-reg-en-state {
pins = "gpio9";
function = "normal";
};
misc_3p3_reg_en: misc-3p3-reg-en-state {
pins = "gpio1";
function = "normal";
};
};
&pmc8280_2_gpios {
wwan_sw_en: wwan-sw-en-state {
pins = "gpio1";
function = "normal";
};
};
&pmc8280c_gpios {
edp_bl_pwm: edp-bl-pwm-state {
pins = "gpio8";
function = "func1";
};
};
&pmr735a_gpios {
hastings_reg_en: hastings-reg-en-state {
pins = "gpio1";
function = "normal";
};
};
&tlmm {
gpio-reserved-ranges = <70 2>, <74 6>, <125 2>, <128 2>, <154 4>;
bt_default: bt-default-state {
hstp-bt-en-pins {
pins = "gpio133";
function = "gpio";
drive-strength = <16>;
bias-disable;
};
hstp-sw-ctrl-pins {
pins = "gpio132";
function = "gpio";
bias-pull-down;
};
};
cam_indicator_en: cam-indicator-en-state {
pins = "gpio28";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
cam_rgb_default: cam-rgb-default-state {
mclk-pins {
pins = "gpio17";
function = "cam_mclk";
drive-strength = <16>;
bias-disable;
};
sc-rgb-xshut-n-pins {
pins = "gpio15";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};
edp_reg_en: edp-reg-en-state {
pins = "gpio25";
function = "gpio";
drive-strength = <16>;
bias-disable;
};
hall_int_n_default: hall-int-n-state {
pins = "gpio107";
function = "gpio";
bias-disable;
};
i2c4_default: i2c4-default-state {
pins = "gpio171", "gpio172";
function = "qup4";
drive-strength = <16>;
bias-disable;
};
i2c11_default: i2c11-default-state {
pins = "gpio18", "gpio19";
function = "qup11";
drive-strength = <16>;
bias-disable;
};
i2c21_default: i2c21-default-state {
pins = "gpio81", "gpio82";
function = "qup21";
drive-strength = <16>;
bias-disable;
};
kybd_default: kybd-default-state {
disable-pins {
pins = "gpio102";
function = "gpio";
output-low;
};
int-n-pins {
pins = "gpio104";
function = "gpio";
bias-disable;
};
reset-pins {
pins = "gpio105";
function = "gpio";
bias-disable;
};
};
nvme_reg_en: nvme-reg-en-state {
pins = "gpio135";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
pcie2a_default: pcie2a-default-state {
clkreq-n-pins {
pins = "gpio142";
function = "pcie2a_clkreq";
drive-strength = <2>;
bias-pull-up;
};
perst-n-pins {
pins = "gpio143";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
wake-n-pins {
pins = "gpio145";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
};
pcie3a_default: pcie3a-default-state {
clkreq-n-pins {
pins = "gpio150";
function = "pcie3a_clkreq";
drive-strength = <2>;
bias-pull-up;
};
perst-n-pins {
pins = "gpio151";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
wake-n-pins {
pins = "gpio148";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
};
pcie4_default: pcie4-default-state {
clkreq-n-pins {
pins = "gpio140";
function = "pcie4_clkreq";
drive-strength = <2>;
bias-pull-up;
};
perst-n-pins {
pins = "gpio141";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
wake-n-pins {
pins = "gpio139";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
};
pm8008_default: pm8008-default-state {
int-pins {
pins = "gpio41";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
reset-n-pins {
pins = "gpio42";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};
spkr_1_sd_n_default: spkr-1-sd-n-default-state {
perst-n-pins {
pins = "gpio178";
function = "gpio";
drive-strength = <16>;
bias-disable;
output-high;
};
};
spkr_2_sd_n_default: spkr-2-sd-n-default-state {
perst-n-pins {
pins = "gpio179";
function = "gpio";
drive-strength = <16>;
bias-disable;
output-high;
};
};
tpad_default: tpad-default-state {
int-n-pins {
pins = "gpio182";
function = "gpio";
bias-disable;
};
};
ts0_default: ts0-default-state {
int-n-pins {
pins = "gpio175";
function = "gpio";
bias-disable;
};
reset-n-pins {
pins = "gpio99";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};
uart2_default: uart2-default-state {
cts-pins {
pins = "gpio121";
function = "qup2";
bias-bus-hold;
};
rts-pins {
pins = "gpio122";
function = "qup2";
drive-strength = <2>;
bias-disable;
};
rx-pins {
pins = "gpio124";
function = "qup2";
bias-pull-up;
};
tx-pins {
pins = "gpio123";
function = "qup2";
drive-strength = <2>;
bias-disable;
};
};
usb0_sbu_default: usb0-sbu-state {
oe-n-pins {
pins = "gpio101";
function = "gpio";
bias-disable;
drive-strength = <16>;
output-high;
};
sel-pins {
pins = "gpio164";
function = "gpio";
bias-disable;
drive-strength = <16>;
};
};
usb1_sbu_default: usb1-sbu-state {
oe-n-pins {
pins = "gpio48";
function = "gpio";
bias-disable;
drive-strength = <16>;
output-high;
};
sel-pins {
pins = "gpio47";
function = "gpio";
bias-disable;
drive-strength = <16>;
};
};
wcd_default: wcd-default-state {
reset-pins {
pins = "gpio106";
function = "gpio";
bias-disable;
};
};
};