forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
arm64: dts: qcom: sc8180x: Introduce Lenovo Flex 5G
Introduce support for the Lenovo Flex 5G laptop, built on the Qualcomm SC8180X platform. Supported peripherals includes keyboard, touchpad, UFS storage, external USB and WiFi. Signed-off-by: Bjorn Andersson <[email protected]> Signed-off-by: Vinod Koul <[email protected]> Signed-off-by: Bjorn Andersson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
Showing
2 changed files
with
584 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,583 @@ | ||
// SPDX-License-Identifier: BSD-3-Clause | ||
/* | ||
* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. | ||
* Copyright (c) 2020-2023, Linaro Limited | ||
*/ | ||
|
||
/dts-v1/; | ||
|
||
#include <dt-bindings/gpio/gpio.h> | ||
#include <dt-bindings/input/gpio-keys.h> | ||
#include <dt-bindings/input/input.h> | ||
#include <dt-bindings/regulator/qcom,rpmh-regulator.h> | ||
#include "sc8180x.dtsi" | ||
#include "sc8180x-pmics.dtsi" | ||
|
||
/ { | ||
model = "Lenovo Flex 5G"; | ||
compatible = "lenovo,flex-5g", "qcom,sc8180x"; | ||
|
||
aliases { | ||
serial0 = &uart13; | ||
}; | ||
|
||
backlight: backlight { | ||
compatible = "pwm-backlight"; | ||
pwms = <&pmc8180c_lpg 4 1000000>; | ||
enable-gpios = <&pmc8180c_gpios 8 GPIO_ACTIVE_HIGH>; | ||
|
||
pinctrl-0 = <&bl_pwm_default>; | ||
pinctrl-names = "default"; | ||
}; | ||
|
||
gpio-keys { | ||
compatible = "gpio-keys"; | ||
|
||
pinctrl-0 = <&hall_int_active_state>; | ||
pinctrl-names = "default"; | ||
|
||
lid { | ||
gpios = <&tlmm 121 GPIO_ACTIVE_LOW>; | ||
linux,input-type = <EV_SW>; | ||
linux,code = <SW_LID>; | ||
wakeup-source; | ||
wakeup-event-action = <EV_ACT_DEASSERTED>; | ||
}; | ||
}; | ||
|
||
reserved-memory { | ||
rmtfs_mem: rmtfs-region@85500000 { | ||
compatible = "qcom,rmtfs-mem"; | ||
reg = <0x0 0x85500000 0x0 0x200000>; | ||
no-map; | ||
|
||
qcom,client-id = <1>; | ||
qcom,vmid = <15>; | ||
}; | ||
|
||
wlan_mem: wlan-region@8bc00000 { | ||
reg = <0x0 0x8bc00000 0x0 0x180000>; | ||
no-map; | ||
}; | ||
|
||
mpss_mem: mpss-region@8d800000 { | ||
reg = <0x0 0x8d800000 0x0 0x3000000>; | ||
no-map; | ||
}; | ||
|
||
adsp_mem: adsp-region@90800000 { | ||
reg = <0x0 0x90800000 0x0 0x1c00000>; | ||
no-map; | ||
}; | ||
|
||
gpu_mem: gpu-region@98715000 { | ||
reg = <0x0 0x98715000 0x0 0x2000>; | ||
no-map; | ||
}; | ||
|
||
cdsp_mem: cdsp-region@98900000 { | ||
reg = <0x0 0x98900000 0x0 0x1400000>; | ||
no-map; | ||
}; | ||
}; | ||
|
||
vph_pwr: vph-pwr-regulator { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "vph_pwr"; | ||
regulator-min-microvolt = <3700000>; | ||
regulator-max-microvolt = <3700000>; | ||
}; | ||
|
||
vreg_s4a_1p8: pm8150-s4-regulator { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "vreg_s4a_1p8"; | ||
|
||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
|
||
regulator-always-on; | ||
regulator-boot-on; | ||
|
||
vin-supply = <&vph_pwr>; | ||
}; | ||
}; | ||
|
||
&apps_rsc { | ||
regulators-0 { | ||
compatible = "qcom,pmc8180-rpmh-regulators"; | ||
qcom,pmic-id = "a"; | ||
|
||
vdd-s5-supply = <&vph_pwr>; | ||
vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>; | ||
|
||
vreg_s5a_2p0: smps5 { | ||
regulator-min-microvolt = <2040000>; | ||
regulator-max-microvolt = <2100000>; | ||
}; | ||
|
||
vreg_l7a_1p8: ldo7 { | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
|
||
vreg_l9a_1p3: ldo9 { | ||
regulator-min-microvolt = <1296000>; | ||
regulator-max-microvolt = <1304000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
|
||
vreg_l12a_1p8: ldo12 { | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
}; | ||
|
||
regulators-1 { | ||
compatible = "qcom,pmc8180c-rpmh-regulators"; | ||
qcom,pmic-id = "c"; | ||
|
||
vdd-s6-supply = <&vph_pwr>; | ||
vdd-l2-l3-supply = <&vreg_s6c_1p35>; | ||
vdd-bob-supply = <&vph_pwr>; | ||
|
||
vreg_s6c_1p35: smps6 { | ||
regulator-min-microvolt = <1350000>; | ||
regulator-max-microvolt = <1372000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
|
||
vreg_l3c_1p2: ldo3 { | ||
regulator-min-microvolt = <1200000>; | ||
regulator-max-microvolt = <1200000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
|
||
vreg_l10c_3p3: ldo10 { | ||
regulator-min-microvolt = <3000000>; | ||
regulator-max-microvolt = <3312000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
|
||
vreg_l11c_3p3: ldo11 { | ||
regulator-min-microvolt = <3296000>; | ||
regulator-max-microvolt = <3304000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
|
||
vreg_bob: bob { | ||
regulator-min-microvolt = <3296000>; | ||
regulator-max-microvolt = <3350000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
}; | ||
|
||
regulators-2 { | ||
compatible = "qcom,pmc8180-rpmh-regulators"; | ||
qcom,pmic-id = "e"; | ||
|
||
vdd-s4-supply = <&vph_pwr>; | ||
vdd-s5-supply = <&vph_pwr>; | ||
vdd-l2-l10-supply = <&vreg_bob>; | ||
vdd-l3-l4-l5-l18-supply = <&vreg_s4e_0p98>; | ||
vdd-l7-l12-l14-l15-supply = <&vreg_s5e_2p05>; | ||
vdd-l13-l16-l17-supply = <&vreg_bob>; | ||
|
||
vreg_s4e_0p98: smps4 { | ||
regulator-min-microvolt = <992000>; | ||
regulator-max-microvolt = <992000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
|
||
vreg_s5e_2p05: smps5 { | ||
regulator-min-microvolt = <2040000>; | ||
regulator-max-microvolt = <2040000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
|
||
vreg_l1e_0p75: ldo1 { | ||
regulator-min-microvolt = <752000>; | ||
regulator-max-microvolt = <752000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
|
||
vreg_l5e_0p88: ldo5 { | ||
regulator-min-microvolt = <880000>; | ||
regulator-max-microvolt = <880000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
|
||
vreg_l7e_1p8: ldo7 { | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
|
||
vreg_l10e_2p9: ldo10 { | ||
regulator-min-microvolt = <2904000>; | ||
regulator-max-microvolt = <2904000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
|
||
vreg_l16e_3p0: ldo16 { | ||
regulator-min-microvolt = <3072000>; | ||
regulator-max-microvolt = <3072000>; | ||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; | ||
}; | ||
}; | ||
}; | ||
|
||
&gpu { | ||
status = "okay"; | ||
|
||
zap-shader { | ||
memory-region = <&gpu_mem>; | ||
firmware-name = "qcom/sc8180x/qcdxkmsuc8180.mbn"; | ||
}; | ||
}; | ||
|
||
&i2c1 { | ||
clock-frequency = <100000>; | ||
|
||
pinctrl-0 = <&i2c1_active>, <&i2c1_hid_active>; | ||
pinctrl-names = "default"; | ||
|
||
status = "okay"; | ||
|
||
hid@10 { | ||
compatible = "hid-over-i2c"; | ||
reg = <0x10>; | ||
hid-descr-addr = <0x1>; | ||
|
||
interrupts-extended = <&tlmm 122 IRQ_TYPE_LEVEL_LOW>; | ||
}; | ||
}; | ||
|
||
&i2c7 { | ||
clock-frequency = <100000>; | ||
|
||
pinctrl-0 = <&i2c7_active>, <&i2c7_hid_active>; | ||
pinctrl-names = "default"; | ||
|
||
status = "okay"; | ||
|
||
hid@5 { | ||
compatible = "hid-over-i2c"; | ||
reg = <0x5>; | ||
hid-descr-addr = <0x20>; | ||
|
||
interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_LOW>; | ||
}; | ||
|
||
hid@2c { | ||
compatible = "hid-over-i2c"; | ||
reg = <0x2c>; | ||
hid-descr-addr = <0x20>; | ||
|
||
interrupts-extended = <&tlmm 24 IRQ_TYPE_LEVEL_LOW>; | ||
}; | ||
}; | ||
|
||
&mdss { | ||
status = "okay"; | ||
}; | ||
|
||
&mdss_edp { | ||
data-lanes = <0 1 2 3>; | ||
|
||
pinctrl-0 = <&edp_hpd_active>; | ||
pinctrl-names = "default"; | ||
|
||
status = "okay"; | ||
|
||
aux-bus { | ||
panel { | ||
compatible = "edp-panel"; | ||
no-hpd; | ||
|
||
backlight = <&backlight>; | ||
|
||
ports { | ||
port { | ||
auo_b140han06_in: endpoint { | ||
remote-endpoint = <&mdss_edp_out>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
ports { | ||
port@1 { | ||
reg = <1>; | ||
mdss_edp_out: endpoint { | ||
remote-endpoint = <&auo_b140han06_in>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
&pcie3 { | ||
perst-gpio = <&tlmm 178 GPIO_ACTIVE_LOW>; | ||
wake-gpio = <&tlmm 180 GPIO_ACTIVE_HIGH>; | ||
pinctrl-0 = <&pcie3_default_state>; | ||
pinctrl-names = "default"; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&pcie3_phy { | ||
vdda-phy-supply = <&vreg_l5e_0p88>; | ||
vdda-pll-supply = <&vreg_l3c_1p2>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&pmc8180c_lpg { | ||
status = "okay"; | ||
}; | ||
|
||
&qupv3_id_0 { | ||
status = "okay"; | ||
}; | ||
|
||
&qupv3_id_1 { | ||
status = "okay"; | ||
}; | ||
|
||
&qupv3_id_2 { | ||
status = "okay"; | ||
}; | ||
|
||
&remoteproc_adsp { | ||
memory-region = <&adsp_mem>; | ||
firmware-name = "qcom/sc8180x/LENOVO/82AK/qcadsp8180.mbn"; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&remoteproc_cdsp { | ||
memory-region = <&cdsp_mem>; | ||
firmware-name = "qcom/sc8180x/LENOVO/82AK/qccdsp8180.mbn"; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&remoteproc_mpss { | ||
memory-region = <&mpss_mem>; | ||
firmware-name = "qcom/sc8180x/LENOVO/82AK/qcmpss8180_nm.mbn"; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&uart13 { | ||
pinctrl-0 = <&uart13_state>; | ||
pinctrl-names = "default"; | ||
|
||
status = "okay"; | ||
|
||
bluetooth { | ||
compatible = "qcom,wcn3998-bt"; | ||
|
||
vddio-supply = <&vreg_s4a_1p8>; | ||
vddxo-supply = <&vreg_l7a_1p8>; | ||
vddrf-supply = <&vreg_l9a_1p3>; | ||
vddch0-supply = <&vreg_l11c_3p3>; | ||
max-speed = <3200000>; | ||
}; | ||
}; | ||
|
||
&ufs_mem_hc { | ||
reset-gpios = <&tlmm 190 GPIO_ACTIVE_LOW>; | ||
|
||
vcc-supply = <&vreg_l10e_2p9>; | ||
vcc-max-microamp = <155000>; | ||
|
||
vccq2-supply = <&vreg_l7e_1p8>; | ||
vccq2-max-microamp = <425000>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&ufs_mem_phy { | ||
vdda-phy-supply = <&vreg_l5e_0p88>; | ||
vdda-pll-supply = <&vreg_l3c_1p2>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_prim_hsphy { | ||
vdda-pll-supply = <&vreg_l5e_0p88>; | ||
vdda18-supply = <&vreg_l12a_1p8>; | ||
vdda33-supply = <&vreg_l16e_3p0>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_prim_qmpphy { | ||
vdda-phy-supply = <&vreg_l3c_1p2>; | ||
vdda-pll-supply = <&vreg_l5e_0p88>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_prim { | ||
status = "okay"; | ||
}; | ||
|
||
&usb_prim_dwc3 { | ||
dr_mode = "host"; | ||
}; | ||
|
||
&usb_sec_hsphy { | ||
vdda-pll-supply = <&vreg_l5e_0p88>; | ||
vdda18-supply = <&vreg_l12a_1p8>; | ||
vdda33-supply = <&vreg_l16e_3p0>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_sec_qmpphy { | ||
vdda-phy-supply = <&vreg_l3c_1p2>; | ||
vdda-pll-supply = <&vreg_l5e_0p88>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&usb_sec { | ||
status = "okay"; | ||
}; | ||
|
||
&usb_sec_dwc3 { | ||
dr_mode = "host"; | ||
}; | ||
|
||
&wifi { | ||
memory-region = <&wlan_mem>; | ||
|
||
vdd-0.8-cx-mx-supply = <&vreg_l1e_0p75>; | ||
vdd-1.8-xo-supply = <&vreg_l7a_1p8>; | ||
vdd-1.3-rfa-supply = <&vreg_l9a_1p3>; | ||
vdd-3.3-ch0-supply = <&vreg_l11c_3p3>; | ||
vdd-3.3-ch1-supply = <&vreg_l10c_3p3>; | ||
|
||
status = "okay"; | ||
}; | ||
|
||
&xo_board_clk { | ||
clock-frequency = <38400000>; | ||
}; | ||
|
||
/* PINCTRL */ | ||
|
||
&pmc8180c_gpios { | ||
bl_pwm_default: bl-pwm-default-state { | ||
en-pins { | ||
pins = "gpio8"; | ||
function = "normal"; | ||
}; | ||
|
||
pwm-pins { | ||
pins = "gpio10"; | ||
function = "func1"; | ||
}; | ||
}; | ||
}; | ||
|
||
&tlmm { | ||
gpio-reserved-ranges = <0 4>, <47 4>, <126 4>; | ||
|
||
edp_hpd_active: epd-hpd-active-state { | ||
pins = "gpio10"; | ||
function = "edp_hot"; | ||
}; | ||
|
||
hall_int_active_state: hall-int-active-state { | ||
pins = "gpio121"; | ||
function = "gpio"; | ||
|
||
input-enable; | ||
bias-disable; | ||
}; | ||
|
||
i2c1_active: i2c1-active-state { | ||
pins = "gpio114", "gpio115"; | ||
function = "qup1"; | ||
|
||
bias-pull-up = <1>; | ||
drive-strength = <2>; | ||
}; | ||
|
||
i2c1_hid_active: i2c1-hid-active-state { | ||
pins = "gpio122"; | ||
function = "gpio"; | ||
|
||
input-enable; | ||
bias-pull-up; | ||
drive-strength = <2>; | ||
}; | ||
|
||
i2c7_active: i2c7-active-state { | ||
pins = "gpio98", "gpio99"; | ||
function = "qup7"; | ||
|
||
bias-pull-up; | ||
drive-strength = <2>; | ||
}; | ||
|
||
i2c7_hid_active: i2c7-hid-active-state { | ||
pins = "gpio37", "gpio24"; | ||
function = "gpio"; | ||
|
||
input-enable; | ||
bias-pull-up; | ||
drive-strength = <2>; | ||
}; | ||
|
||
pcie3_default_state: pcie3-default-state { | ||
clkreq-pins { | ||
pins = "gpio179"; | ||
function = "pci_e3"; | ||
bias-pull-up; | ||
}; | ||
|
||
reset-n-pins { | ||
pins = "gpio178"; | ||
function = "gpio"; | ||
|
||
drive-strength = <2>; | ||
output-low; | ||
bias-pull-down; | ||
}; | ||
|
||
wake-n-pins { | ||
pins = "gpio180"; | ||
function = "gpio"; | ||
|
||
drive-strength = <2>; | ||
bias-pull-up; | ||
}; | ||
}; | ||
|
||
uart13_state: uart13-state { | ||
cts-pins { | ||
pins = "gpio43"; | ||
function = "qup13"; | ||
bias-pull-down; | ||
}; | ||
|
||
rts-tx-pins { | ||
pins = "gpio44", "gpio45"; | ||
function = "qup13"; | ||
drive-strength = <2>; | ||
bias-disable; | ||
}; | ||
|
||
rx-pins { | ||
pins = "gpio46"; | ||
function = "qup13"; | ||
bias-pull-up; | ||
}; | ||
}; | ||
}; |