mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
623 lines
12 KiB
623 lines
12 KiB
// SPDX-License-Identifier: GPL-2.0 |
|
/* |
|
* SDM845 OnePlus 6(T) (enchilada / fajita) common device tree source |
|
* |
|
* Copyright (c) 2020, The Linux Foundation. All rights reserved. |
|
*/ |
|
|
|
/dts-v1/; |
|
|
|
#include <dt-bindings/gpio/gpio.h> |
|
#include <dt-bindings/input/linux-event-codes.h> |
|
#include <dt-bindings/regulator/qcom,rpmh-regulator.h> |
|
|
|
#include "sdm845.dtsi" |
|
#include "pm8998.dtsi" |
|
#include "pmi8998.dtsi" |
|
|
|
/delete-node/ &rmtfs_mem; |
|
|
|
/ { |
|
aliases { |
|
hsuart0 = &uart6; |
|
}; |
|
|
|
gpio-keys { |
|
compatible = "gpio-keys"; |
|
label = "Volume keys"; |
|
autorepeat; |
|
|
|
pinctrl-names = "default"; |
|
pinctrl-0 = <&volume_down_gpio &volume_up_gpio>; |
|
|
|
vol-down { |
|
label = "Volume down"; |
|
linux,code = <KEY_VOLUMEDOWN>; |
|
gpios = <&pm8998_gpio 5 GPIO_ACTIVE_LOW>; |
|
debounce-interval = <15>; |
|
}; |
|
|
|
vol-up { |
|
label = "Volume up"; |
|
linux,code = <KEY_VOLUMEUP>; |
|
gpios = <&pm8998_gpio 6 GPIO_ACTIVE_LOW>; |
|
debounce-interval = <15>; |
|
}; |
|
}; |
|
|
|
reserved-memory { |
|
/* |
|
* The rmtfs memory region in downstream is 'dynamically allocated' |
|
* but given the same address every time. Hard code it as this address is |
|
* where the modem firmware expects it to be. |
|
*/ |
|
rmtfs_mem: memory@f5b01000 { |
|
compatible = "qcom,rmtfs-mem"; |
|
reg = <0 0xf5b01000 0 0x200000>; |
|
no-map; |
|
|
|
qcom,client-id = <1>; |
|
qcom,vmid = <15>; |
|
}; |
|
|
|
/* |
|
* It seems like reserving the old rmtfs_mem region is also needed to prevent |
|
* random crashes which are most likely modem related, more testing needed. |
|
*/ |
|
removed_region: memory@88f00000 { |
|
no-map; |
|
reg = <0 0x88f00000 0 0x200000>; |
|
}; |
|
|
|
ramoops: ramoops@ac300000 { |
|
compatible = "ramoops"; |
|
reg = <0 0xac300000 0 0x400000>; |
|
record-size = <0x40000>; |
|
console-size = <0x40000>; |
|
ftrace-size = <0x40000>; |
|
pmsg-size = <0x200000>; |
|
devinfo-size = <0x1000>; |
|
ecc-size = <16>; |
|
}; |
|
}; |
|
|
|
vph_pwr: vph-pwr-regulator { |
|
compatible = "regulator-fixed"; |
|
regulator-name = "vph_pwr"; |
|
regulator-min-microvolt = <3700000>; |
|
regulator-max-microvolt = <3700000>; |
|
}; |
|
|
|
/* |
|
* Apparently RPMh does not provide support for PM8998 S4 because it |
|
* is always-on; model it as a fixed regulator. |
|
*/ |
|
vreg_s4a_1p8: pm8998-smps4 { |
|
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>; |
|
}; |
|
|
|
/* |
|
* The touchscreen regulator seems to be controlled somehow by a gpio. |
|
* Model it as a fixed regulator and keep it on. Without schematics we |
|
* don't know how this is actually wired up... |
|
*/ |
|
ts_1p8_supply: ts-1p8-regulator { |
|
compatible = "regulator-fixed"; |
|
regulator-name = "ts_1p8_supply"; |
|
|
|
regulator-min-microvolt = <1800000>; |
|
regulator-max-microvolt = <1800000>; |
|
|
|
gpio = <&tlmm 88 0>; |
|
enable-active-high; |
|
regulator-boot-on; |
|
}; |
|
}; |
|
|
|
&adsp_pas { |
|
status = "okay"; |
|
firmware-name = "qcom/sdm845/oneplus6/adsp.mbn"; |
|
}; |
|
|
|
&apps_rsc { |
|
pm8998-rpmh-regulators { |
|
compatible = "qcom,pm8998-rpmh-regulators"; |
|
qcom,pmic-id = "a"; |
|
|
|
vdd-s1-supply = <&vph_pwr>; |
|
vdd-s2-supply = <&vph_pwr>; |
|
vdd-s3-supply = <&vph_pwr>; |
|
vdd-s4-supply = <&vph_pwr>; |
|
vdd-s5-supply = <&vph_pwr>; |
|
vdd-s6-supply = <&vph_pwr>; |
|
vdd-s7-supply = <&vph_pwr>; |
|
vdd-s8-supply = <&vph_pwr>; |
|
vdd-s9-supply = <&vph_pwr>; |
|
vdd-s10-supply = <&vph_pwr>; |
|
vdd-s11-supply = <&vph_pwr>; |
|
vdd-s12-supply = <&vph_pwr>; |
|
vdd-s13-supply = <&vph_pwr>; |
|
vdd-l1-l27-supply = <&vreg_s7a_1p025>; |
|
vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>; |
|
vdd-l3-l11-supply = <&vreg_s7a_1p025>; |
|
vdd-l4-l5-supply = <&vreg_s7a_1p025>; |
|
vdd-l6-supply = <&vph_pwr>; |
|
vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>; |
|
vdd-l9-supply = <&vreg_bob>; |
|
vdd-l10-l23-l25-supply = <&vreg_bob>; |
|
vdd-l13-l19-l21-supply = <&vreg_bob>; |
|
vdd-l16-l28-supply = <&vreg_bob>; |
|
vdd-l18-l22-supply = <&vreg_bob>; |
|
vdd-l20-l24-supply = <&vreg_bob>; |
|
vdd-l26-supply = <&vreg_s3a_1p35>; |
|
vin-lvs-1-2-supply = <&vreg_s4a_1p8>; |
|
|
|
vreg_s3a_1p35: smps3 { |
|
regulator-min-microvolt = <1352000>; |
|
regulator-max-microvolt = <1352000>; |
|
}; |
|
|
|
vreg_s5a_2p04: smps5 { |
|
regulator-min-microvolt = <1904000>; |
|
regulator-max-microvolt = <2040000>; |
|
}; |
|
|
|
vreg_s7a_1p025: smps7 { |
|
regulator-min-microvolt = <900000>; |
|
regulator-max-microvolt = <1028000>; |
|
}; |
|
|
|
vdda_mipi_dsi0_pll: |
|
vdda_qlink_lv: |
|
vdda_ufs1_core: |
|
vdda_usb1_ss_core: |
|
vreg_l1a_0p875: ldo1 { |
|
regulator-min-microvolt = <880000>; |
|
regulator-max-microvolt = <880000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
|
}; |
|
|
|
vreg_l2a_1p2: ldo2 { |
|
regulator-min-microvolt = <1200000>; |
|
regulator-max-microvolt = <1200000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
|
regulator-always-on; |
|
}; |
|
|
|
vreg_l5a_0p8: ldo5 { |
|
regulator-min-microvolt = <800000>; |
|
regulator-max-microvolt = <800000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
|
}; |
|
|
|
vreg_l7a_1p8: ldo7 { |
|
regulator-min-microvolt = <1800000>; |
|
regulator-max-microvolt = <1800000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
|
}; |
|
|
|
vdda_qusb_hs0_1p8: |
|
vreg_l12a_1p8: ldo12 { |
|
regulator-min-microvolt = <1800000>; |
|
regulator-max-microvolt = <1800000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
|
}; |
|
|
|
vreg_l14a_1p88: ldo14 { |
|
regulator-min-microvolt = <1800000>; |
|
regulator-max-microvolt = <1800000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
|
regulator-always-on; |
|
}; |
|
|
|
vreg_l17a_1p3: ldo17 { |
|
regulator-min-microvolt = <1304000>; |
|
regulator-max-microvolt = <1304000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
|
}; |
|
|
|
vreg_l20a_2p95: ldo20 { |
|
regulator-min-microvolt = <2704000>; |
|
regulator-max-microvolt = <2960000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
|
}; |
|
|
|
vdda_qusb_hs0_3p1: |
|
vreg_l24a_3p075: ldo24 { |
|
regulator-min-microvolt = <3088000>; |
|
regulator-max-microvolt = <3088000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
|
}; |
|
|
|
vreg_l25a_3p3: ldo25 { |
|
regulator-min-microvolt = <3300000>; |
|
regulator-max-microvolt = <3312000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
|
}; |
|
|
|
vdda_mipi_dsi0_1p2: |
|
vdda_ufs1_1p2: |
|
vreg_l26a_1p2: ldo26 { |
|
regulator-min-microvolt = <1200000>; |
|
regulator-max-microvolt = <1200000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
|
}; |
|
|
|
vreg_l28a_3p0: ldo28 { |
|
regulator-min-microvolt = <2856000>; |
|
regulator-max-microvolt = <3008000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; |
|
}; |
|
}; |
|
|
|
pmi8998-rpmh-regulators { |
|
compatible = "qcom,pmi8998-rpmh-regulators"; |
|
qcom,pmic-id = "b"; |
|
|
|
vdd-bob-supply = <&vph_pwr>; |
|
|
|
vreg_bob: bob { |
|
regulator-min-microvolt = <3312000>; |
|
regulator-max-microvolt = <3600000>; |
|
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; |
|
regulator-allow-bypass; |
|
}; |
|
}; |
|
|
|
pm8005-rpmh-regulators { |
|
compatible = "qcom,pm8005-rpmh-regulators"; |
|
qcom,pmic-id = "c"; |
|
|
|
vdd-s1-supply = <&vph_pwr>; |
|
vdd-s2-supply = <&vph_pwr>; |
|
vdd-s3-supply = <&vph_pwr>; |
|
vdd-s4-supply = <&vph_pwr>; |
|
|
|
vreg_s3c_0p6: smps3 { |
|
regulator-min-microvolt = <600000>; |
|
regulator-max-microvolt = <600000>; |
|
}; |
|
}; |
|
}; |
|
|
|
&cdsp_pas { |
|
status = "okay"; |
|
firmware-name = "qcom/sdm845/oneplus6/cdsp.mbn"; |
|
}; |
|
|
|
&dsi0 { |
|
status = "okay"; |
|
vdda-supply = <&vdda_mipi_dsi0_1p2>; |
|
|
|
#address-cells = <1>; |
|
#size-cells = <0>; |
|
|
|
/* |
|
* Both devices use different panels but all other properties |
|
* are common. Compatible line is declared in device dts. |
|
*/ |
|
display_panel: panel@0 { |
|
status = "disabled"; |
|
|
|
#address-cells = <1>; |
|
#size-cells = <0>; |
|
reg = <0>; |
|
|
|
vddio-supply = <&vreg_l14a_1p88>; |
|
|
|
reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>; |
|
|
|
pinctrl-names = "default"; |
|
pinctrl-0 = <&panel_reset_pins &panel_te_pin &panel_esd_pin>; |
|
|
|
port { |
|
panel_in: endpoint { |
|
remote-endpoint = <&dsi0_out>; |
|
}; |
|
}; |
|
}; |
|
}; |
|
|
|
&dsi0_out { |
|
remote-endpoint = <&panel_in>; |
|
data-lanes = <0 1 2 3>; |
|
}; |
|
|
|
&dsi0_phy { |
|
status = "okay"; |
|
vdds-supply = <&vdda_mipi_dsi0_pll>; |
|
}; |
|
|
|
&gcc { |
|
protected-clocks = <GCC_QSPI_CORE_CLK>, |
|
<GCC_QSPI_CORE_CLK_SRC>, |
|
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>, |
|
<GCC_LPASS_Q6_AXI_CLK>, |
|
<GCC_LPASS_SWAY_CLK>; |
|
}; |
|
|
|
&gpu { |
|
zap-shader { |
|
memory-region = <&gpu_mem>; |
|
firmware-name = "qcom/sdm845/oneplus6/a630_zap.mbn"; |
|
}; |
|
}; |
|
|
|
&i2c12 { |
|
status = "okay"; |
|
clock-frequency = <400000>; |
|
|
|
synaptics-rmi4-i2c@20 { |
|
compatible = "syna,rmi4-i2c"; |
|
reg = <0x20>; |
|
#address-cells = <1>; |
|
#size-cells = <0>; |
|
interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>; |
|
|
|
pinctrl-names = "default"; |
|
pinctrl-0 = <&ts_default_pins>; |
|
|
|
vdd-supply = <&vreg_l28a_3p0>; |
|
vio-supply = <&ts_1p8_supply>; |
|
|
|
syna,reset-delay-ms = <200>; |
|
syna,startup-delay-ms = <200>; |
|
|
|
rmi4-f01@1 { |
|
reg = <0x01>; |
|
syna,nosleep-mode = <1>; |
|
}; |
|
|
|
rmi4_f12: rmi4-f12@12 { |
|
reg = <0x12>; |
|
touchscreen-x-mm = <68>; |
|
touchscreen-y-mm = <144>; |
|
syna,sensor-type = <1>; |
|
syna,rezero-wait-ms = <200>; |
|
}; |
|
}; |
|
}; |
|
|
|
&mdss { |
|
status = "okay"; |
|
}; |
|
|
|
&mdss_mdp { |
|
status = "okay"; |
|
}; |
|
|
|
/* Modem/wifi*/ |
|
&mss_pil { |
|
status = "okay"; |
|
firmware-name = "qcom/sdm845/oneplus6/mba.mbn", "qcom/sdm845/oneplus6/modem.mbn"; |
|
}; |
|
|
|
&pm8998_gpio { |
|
volume_down_gpio: pm8998_gpio5 { |
|
pinconf { |
|
pins = "gpio5"; |
|
function = "normal"; |
|
input-enable; |
|
bias-pull-up; |
|
qcom,drive-strength = <0>; |
|
}; |
|
}; |
|
|
|
volume_up_gpio: pm8998_gpio6 { |
|
pinconf { |
|
pins = "gpio6"; |
|
function = "normal"; |
|
input-enable; |
|
bias-pull-up; |
|
qcom,drive-strength = <0>; |
|
}; |
|
}; |
|
}; |
|
|
|
&qupv3_id_1 { |
|
status = "okay"; |
|
}; |
|
|
|
&qupv3_id_0 { |
|
status = "okay"; |
|
}; |
|
|
|
&qup_i2c12_default { |
|
mux { |
|
pins = "gpio49", "gpio50"; |
|
function = "qup12"; |
|
drive-strength = <2>; |
|
bias-disable; |
|
}; |
|
}; |
|
|
|
&qup_i2c10_default { |
|
pinconf { |
|
pins = "gpio55", "gpio56"; |
|
drive-strength = <2>; |
|
bias-disable; |
|
}; |
|
}; |
|
|
|
&qup_uart9_default { |
|
pinconf-tx { |
|
pins = "gpio4"; |
|
drive-strength = <2>; |
|
bias-disable; |
|
}; |
|
|
|
pinconf-rx { |
|
pins = "gpio5"; |
|
drive-strength = <2>; |
|
bias-pull-up; |
|
}; |
|
}; |
|
|
|
/* |
|
* Prevent garbage data on bluetooth UART lines |
|
*/ |
|
&qup_uart6_default { |
|
pinmux { |
|
pins = "gpio45", "gpio46", "gpio47", "gpio48"; |
|
function = "qup6"; |
|
}; |
|
|
|
cts { |
|
pins = "gpio45"; |
|
bias-pull-down; |
|
}; |
|
|
|
rts-tx { |
|
pins = "gpio46", "gpio47"; |
|
drive-strength = <2>; |
|
bias-disable; |
|
}; |
|
|
|
rx { |
|
pins = "gpio48"; |
|
bias-pull-up; |
|
}; |
|
}; |
|
|
|
&uart6 { |
|
status = "okay"; |
|
|
|
bluetooth { |
|
compatible = "qcom,wcn3990-bt"; |
|
|
|
/* |
|
* This path is relative to the qca/ |
|
* subdir under lib/firmware. |
|
*/ |
|
firmware-name = "oneplus6/crnv21.bin"; |
|
|
|
vddio-supply = <&vreg_s4a_1p8>; |
|
vddxo-supply = <&vreg_l7a_1p8>; |
|
vddrf-supply = <&vreg_l17a_1p3>; |
|
vddch0-supply = <&vreg_l25a_3p3>; |
|
max-speed = <3200000>; |
|
}; |
|
}; |
|
|
|
&ufs_mem_hc { |
|
status = "okay"; |
|
|
|
reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>; |
|
|
|
vcc-supply = <&vreg_l20a_2p95>; |
|
vcc-max-microamp = <600000>; |
|
}; |
|
|
|
&ufs_mem_phy { |
|
status = "okay"; |
|
|
|
vdda-phy-supply = <&vdda_ufs1_core>; |
|
vdda-pll-supply = <&vdda_ufs1_1p2>; |
|
}; |
|
|
|
&usb_1 { |
|
status = "okay"; |
|
|
|
/* |
|
* disable USB3 clock requirement as the device only supports |
|
* USB2. |
|
*/ |
|
qcom,select-utmi-as-pipe-clk; |
|
}; |
|
|
|
&usb_1_dwc3 { |
|
/* |
|
* We don't have the capability to switch modes yet. |
|
*/ |
|
dr_mode = "peripheral"; |
|
|
|
/* fastest mode for USB 2 */ |
|
maximum-speed = "high-speed"; |
|
|
|
/* Remove USB3 phy as it's unused on this device. */ |
|
phys = <&usb_1_hsphy>; |
|
phy-names = "usb2-phy"; |
|
}; |
|
|
|
&usb_1_hsphy { |
|
status = "okay"; |
|
|
|
vdd-supply = <&vdda_usb1_ss_core>; |
|
vdda-pll-supply = <&vdda_qusb_hs0_1p8>; |
|
vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>; |
|
|
|
qcom,imp-res-offset-value = <8>; |
|
qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>; |
|
qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>; |
|
qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>; |
|
}; |
|
|
|
&tlmm { |
|
gpio-reserved-ranges = <0 4>, <81 4>; |
|
|
|
tri_state_key_default: tri_state_key_default { |
|
mux { |
|
pins = "gpio40", "gpio42", "gpio26"; |
|
function = "gpio"; |
|
drive-strength = <2>; |
|
bias-disable; |
|
}; |
|
}; |
|
|
|
ts_default_pins: ts-int { |
|
mux { |
|
pins = "gpio99", "gpio125"; |
|
function = "gpio"; |
|
drive-strength = <16>; |
|
bias-pull-up; |
|
}; |
|
}; |
|
|
|
panel_reset_pins: panel-reset { |
|
mux { |
|
pins = "gpio6", "gpio25", "gpio26"; |
|
function = "gpio"; |
|
drive-strength = <8>; |
|
bias-disable = <0>; |
|
}; |
|
}; |
|
|
|
panel_te_pin: panel-te { |
|
mux { |
|
pins = "gpio10"; |
|
function = "mdp_vsync"; |
|
drive-strength = <2>; |
|
bias-disable; |
|
input-enable; |
|
}; |
|
}; |
|
|
|
panel_esd_pin: panel-esd { |
|
mux { |
|
pins = "gpio30"; |
|
function = "gpio"; |
|
drive-strength = <2>; |
|
bias-pull-down; |
|
input-enable; |
|
}; |
|
}; |
|
}; |
|
|
|
&wifi { |
|
status = "okay"; |
|
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>; |
|
|
|
qcom,snoc-host-cap-8bit-quirk; |
|
};
|
|
|