blob: 38035e0db80be9c4829b67233ba5c4ce8a2baa21 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2022, Harry Austen <hpausten@protonmail.com>
*/
#include "msm8996.dtsi"
#include "pm8994.dtsi"
#include "pmi8994.dtsi"
#include "pmi8996.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/sound/qcom,q6afe.h>
#include <dt-bindings/sound/qcom,q6asm.h>
#include <dt-bindings/sound/qcom,wcd9335.h>
/ {
aliases {
serial0 = &blsp1_uart2;
serial1 = &blsp2_uart2;
};
battery: battery {
compatible = "simple-battery";
constant-charge-current-max-microamp = <3000000>;
voltage-min-design-microvolt = <3400000>;
};
chosen {
stdout-path = "serial1:115200n8";
};
clocks {
div1_mclk: div1-clk {
compatible = "gpio-gate-clock";
pinctrl-names = "default";
pinctrl-0 = <&audio_mclk>;
#clock-cells = <0>;
clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
enable-gpios = <&pm8994_gpios 15 GPIO_ACTIVE_HIGH>;
};
divclk4: div4-clk {
compatible = "fixed-clock";
pinctrl-names = "default";
pinctrl-0 = <&divclk4_pin_a>;
#clock-cells = <0>;
clock-frequency = <32768>;
clock-output-names = "divclk4";
};
};
reserved-memory {
ramoops@ac000000 {
compatible = "ramoops";
reg = <0 0xac000000 0 0x200000>;
record-size = <0x20000>;
console-size = <0x100000>;
pmsg-size = <0x80000>;
};
};
vph_pwr: vph-pwr-regulator {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
regulator-always-on;
regulator-boot-on;
};
wlan_en: wlan-en-regulator {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&wlan_en_gpios>;
regulator-name = "wlan-en-regulator";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&pm8994_gpios 8 GPIO_ACTIVE_HIGH>;
/* WLAN card specific delay */
startup-delay-us = <70000>;
enable-active-high;
};
};
&blsp1_i2c3 {
status = "okay";
tfa9890_amp: audio-codec@36 {
compatible = "nxp,tfa9890";
reg = <0x36>;
#sound-dai-cells = <0>;
};
};
&blsp1_i2c6 {
status = "okay";
bq27541: fuel-gauge@55 {
compatible = "ti,bq27541";
reg = <0x55>;
};
};
&blsp1_uart2 {
label = "BT-UART";
uart-has-rtscts;
status = "okay";
bluetooth {
compatible = "qcom,qca6174-bt";
pinctrl-names = "default";
pinctrl-0 = <&bt_en_gpios>;
enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
clocks = <&divclk4>;
};
};
&blsp2_i2c1 {
status = "okay";
};
&blsp2_i2c6 {
status = "okay";
synaptics_rmi4_i2c: touchscreen@20 {
compatible = "syna,rmi4-i2c";
reg = <0x20>;
#address-cells = <1>;
#size-cells = <0>;
interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&touch_default>;
pinctrl-1 = <&touch_suspend>;
vdd-supply = <&vreg_l22a_3p0>;
vio-supply = <&vreg_s4a_1p8>;
syna,reset-delay-ms = <200>;
syna,startup-delay-ms = <200>;
rmi4-f01@1 {
reg = <0x1>;
syna,nosleep-mode = <1>;
};
rmi4-f12@12 {
reg = <0x12>;
syna,sensor-type = <1>;
touchscreen-x-mm = <68>;
touchscreen-y-mm = <122>;
};
};
};
&blsp2_uart2 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&blsp2_uart2_2pins_default>;
pinctrl-1 = <&blsp2_uart2_2pins_sleep>;
status = "okay";
};
&camss {
vdda-supply = <&vreg_l2a_1p25>;
};
&hsusb_phy1 {
vdd-supply = <&vreg_l28a_0p925>;
vdda-pll-supply = <&vreg_l12a_1p8>;
vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
status = "okay";
};
&hsusb_phy2 {
vdd-supply = <&vreg_l28a_0p925>;
vdda-pll-supply = <&vreg_l12a_1p8>;
vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
status = "okay";
};
&mdp {
status = "okay";
};
&mdss {
status = "okay";
};
&mdss_dsi0 {
vdda-supply = <&vreg_l2a_1p25>;
vcca-supply = <&vreg_l22a_3p0>;
status = "okay";
};
&mdss_dsi0_out {
data-lanes = <0 1 2 3>;
};
&mdss_dsi0_phy {
vcca-supply = <&vreg_l28a_0p925>;
status = "okay";
};
&mmcc {
vdd-gfx-supply = <&vdd_gfx>;
};
&mss_pil {
pll-supply = <&vreg_l12a_1p8>;
};
&pcie0 {
perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
vddpe-3v3-supply = <&wlan_en>;
vdda-supply = <&vreg_l28a_0p925>;
status = "okay";
};
&pcie_phy {
vdda-phy-supply = <&vreg_l28a_0p925>;
vdda-pll-supply = <&vreg_l12a_1p8>;
status = "okay";
};
&pm8994_gpios {
bt_en_gpios: bt-en-gpios-state {
pins = "gpio19";
function = PMIC_GPIO_FUNC_NORMAL;
output-low;
power-source = <PM8994_GPIO_S4>;
qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
bias-pull-down;
};
wlan_en_gpios: wlan-en-gpios-state {
pins = "gpio8";
function = PMIC_GPIO_FUNC_NORMAL;
output-low;
power-source = <PM8994_GPIO_S4>;
qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
bias-pull-down;
};
audio_mclk: divclk1-state {
pins = "gpio15";
function = PMIC_GPIO_FUNC_FUNC1;
power-source = <PM8994_GPIO_S4>;
};
divclk4_pin_a: divclk4-state {
pins = "gpio18";
function = PMIC_GPIO_FUNC_FUNC2;
bias-disable;
power-source = <PM8994_GPIO_S4>;
};
};
&pm8994_spmi_regulators {
qcom,saw-reg = <&saw3>;
s9 {
qcom,saw-slave;
};
s10 {
qcom,saw-slave;
};
s11 {
qcom,saw-leader;
regulator-min-microvolt = <1140000>;
regulator-max-microvolt = <1140000>;
regulator-max-step-microvolt = <150000>;
regulator-always-on;
};
};
&pmi8994_spmi_regulators {
vdd_gfx: s2 {
regulator-name = "vdd-gfx";
regulator-min-microvolt = <980000>;
regulator-max-microvolt = <1230000>;
};
};
&q6asmdai {
#address-cells = <1>;
#size-cells = <0>;
dai@0 {
reg = <0>;
};
dai@1 {
reg = <1>;
};
dai@2 {
reg = <2>;
};
};
&rpm_requests {
regulators {
compatible = "qcom,rpm-pm8994-regulators";
vreg_s3a_1p3: s3 {
regulator-name = "vreg_s3a_1p3";
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1300000>;
};
vreg_s4a_1p8: s4 {
regulator-name = "vreg_s4a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
vreg_s5a_2p15: s5 {
regulator-name = "vreg_s5a_2p15";
regulator-min-microvolt = <2150000>;
regulator-max-microvolt = <2150000>;
};
vreg_s7a_0p8: s7 {
regulator-name = "vreg_s7a_0p8";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <800000>;
};
vreg_l1a_1p0: l1 {
regulator-name = "vreg_l1a_1p0";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
};
vreg_l2a_1p25: l2 {
regulator-name = "vreg_l2a_1p25";
regulator-min-microvolt = <1250000>;
regulator-max-microvolt = <1250000>;
regulator-allow-set-load;
};
vreg_l3a_1p1: l3 {
regulator-name = "vreg_l3a_1p1";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
};
vreg_l4a_1p225: l4 {
regulator-name = "vreg_l4a_1p225";
regulator-min-microvolt = <1225000>;
regulator-max-microvolt = <1225000>;
};
vreg_l6a_1p2: l6 {
regulator-name = "vreg_l6a_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
vreg_l7a_1p8: l7 {
regulator-name = "vreg_l7a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vreg_l9a_1p8: l9 {
regulator-name = "vreg_l9a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vreg_l10a_1p8: l10 {
regulator-name = "vreg_l10a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vreg_l11a_1p15: l11 {
regulator-name = "vreg_l11a_1p15";
regulator-min-microvolt = <1150000>;
regulator-max-microvolt = <1150000>;
};
vreg_l12a_1p8: l12 {
regulator-name = "vreg_l12a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-allow-set-load;
};
vreg_l13a_2p95: l13 {
regulator-name = "vreg_l13a_2p95";
regulator-min-microvolt = <2950000>;
regulator-max-microvolt = <2950000>;
};
vreg_l16a_2p7: l16 {
regulator-name = "vreg_l16a_2p7";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <2700000>;
};
vreg_l17a_2p6: l17 {
regulator-name = "vreg_l17a_2p6";
regulator-min-microvolt = <2600000>;
regulator-max-microvolt = <2600000>;
};
vreg_l18a_3p3: l18 {
regulator-name = "vreg_l18a_3p3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
vreg_l19a_3p0: l19 {
regulator-name = "vreg_l19a_3p0";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
vreg_l20a_2p95: l20 {
regulator-name = "vreg_l20a_2p95";
regulator-min-microvolt = <2950000>;
regulator-max-microvolt = <2950000>;
regulator-allow-set-load;
};
vreg_l21a_2p95: l21 {
regulator-name = "vreg_l21a_2p95";
regulator-min-microvolt = <2950000>;
regulator-max-microvolt = <2950000>;
regulator-allow-set-load;
regulator-system-load = <200000>;
};
vreg_l22a_3p0: l22 {
regulator-name = "vreg_l22a_3p0";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
};
vreg_l23a_2p8: l23 {
regulator-name = "vreg_l23a_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
vreg_l24a_3p075: l24 {
regulator-name = "vreg_l24a_3p075";
regulator-min-microvolt = <3075000>;
regulator-max-microvolt = <3075000>;
};
vreg_l25a_1p2: l25 {
regulator-name = "vreg_l25a_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-allow-set-load;
regulator-always-on;
};
vreg_l27a_1p2: l27 {
regulator-name = "vreg_l27a_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
vreg_l28a_0p925: l28 {
regulator-name = "vreg_l28a_0p925";
regulator-min-microvolt = <925000>;
regulator-max-microvolt = <925000>;
regulator-allow-set-load;
};
vreg_l29a_2p8: l29 {
regulator-name = "vreg_l29a_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
vreg_l30a_1p8: l30 {
regulator-name = "vreg_l30a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vreg_l32a_1p8: l32 {
regulator-name = "vreg_l32a_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
};
};
&slim_msm {
status = "okay";
slim@1 {
reg = <1>;
#address-cells = <2>;
#size-cells = <0>;
tasha_ifd: tas-ifd@0,0 {
compatible = "slim217,1a0";
reg = <0 0>;
};
wcd9335: codec@1,0 {
compatible = "slim217,1a0";
reg = <1 0>;
clock-names = "mclk", "slimbus";
clocks = <&div1_mclk>,
<&rpmcc RPM_SMD_BB_CLK1>;
interrupt-parent = <&tlmm>;
interrupts = <54 IRQ_TYPE_LEVEL_HIGH>,
<53 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "intr1", "intr2";
interrupt-controller;
#interrupt-cells = <1>;
pinctrl-0 = <&cdc_reset_active &wcd_intr_default>;
pinctrl-names = "default";
reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
slim-ifc-dev = <&tasha_ifd>;
#sound-dai-cells = <1>;
vdd-buck-supply = <&vreg_s4a_1p8>;
vdd-buck-sido-supply = <&vreg_s4a_1p8>;
vdd-tx-supply = <&vreg_s4a_1p8>;
vdd-rx-supply = <&vreg_s4a_1p8>;
vdd-io-supply = <&vreg_s4a_1p8>;
};
};
};
&sound {
compatible = "qcom,apq8096-sndcard";
model = "OnePlus3";
audio-routing = "RX_BIAS", "MCLK",
"AMIC2", "MIC BIAS2",
"MIC BIAS2", "Headset Mic",
"AMIC4", "MIC BIAS1",
"MIC BIAS1", "Primary Mic",
"AMIC5", "MIC BIAS3",
"MIC BIAS3", "Noise Mic";
mm1-dai-link {
link-name = "MultiMedia1";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
};
};
mm2-dai-link {
link-name = "MultiMedia2";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
};
};
mm3-dai-link {
link-name = "MultiMedia3";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
};
};
mm4-dai-link {
link-name = "MultiMedia4";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>;
};
};
mm5-dai-link {
link-name = "MultiMedia5";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA5>;
};
};
mm6-dai-link {
link-name = "MultiMedia6";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA6>;
};
};
mm7-dai-link {
link-name = "MultiMedia7";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA7>;
};
};
mm8-dai-link {
link-name = "MultiMedia8";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA8>;
};
};
mm9-dai-link {
link-name = "MultiMedia9";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA9>;
};
};
mm10-dai-link {
link-name = "MultiMedia10";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA10>;
};
};
mm11-dai-link {
link-name = "MultiMedia11";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA11>;
};
};
mm12-dai-link {
link-name = "MultiMedia12";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA12>;
};
};
mm13-dai-link {
link-name = "MultiMedia13";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA13>;
};
};
mm14-dai-link {
link-name = "MultiMedia14";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA14>;
};
};
mm15-dai-link {
link-name = "MultiMedia15";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA15>;
};
};
mm16-dai-link {
link-name = "MultiMedia16";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA16>;
};
};
slim-dai-link {
link-name = "SLIM Playback";
cpu {
sound-dai = <&q6afedai SLIMBUS_6_RX>;
};
platform {
sound-dai = <&q6routing>;
};
codec {
sound-dai = <&wcd9335 AIF4_PB>;
};
};
slimcap-dai-link {
link-name = "SLIM Capture";
cpu {
sound-dai = <&q6afedai SLIMBUS_0_TX>;
};
platform {
sound-dai = <&q6routing>;
};
codec {
sound-dai = <&wcd9335 AIF1_CAP>;
};
};
speaker-dai-link {
link-name = "Speaker";
cpu {
sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
};
codec {
sound-dai = <&tfa9890_amp>;
};
};
};
&tlmm {
gpio-reserved-ranges = <81 4>;
mdss_dsi_active: mdss-dsi-active-state {
pins = "gpio8";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
mdss_dsi_suspend: mdss-dsi-suspend-state {
pins = "gpio8";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
mdss_te_active: mdss-te-active-state {
pins = "gpio10";
function = "mdp_vsync";
drive-strength = <2>;
bias-pull-down;
};
mdss_te_suspend: mdss-te-suspend-state {
pins = "gpio10";
function = "mdp_vsync";
drive-strength = <2>;
bias-pull-down;
};
touch_default: touch-default-state {
pins = "gpio89", "gpio125", "gpio49";
function = "gpio";
drive-strength = <16>;
bias-pull-up;
};
touch_suspend: touch-suspend-state {
pins = "gpio89", "gpio125", "gpio49";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};
&ufsphy {
vdda-phy-supply = <&vreg_l28a_0p925>;
vdda-pll-supply = <&vreg_l12a_1p8>;
status = "okay";
};
&ufshc {
vcc-supply = <&vreg_l20a_2p95>;
vccq-supply = <&vreg_l25a_1p2>;
vccq2-supply = <&vreg_s4a_1p8>;
vdd-hba-supply = <&vreg_l25a_1p2>;
vcc-max-microamp = <600000>;
vccq-max-microamp = <450000>;
vccq2-max-microamp = <450000>;
status = "okay";
};
&usb3 {
status = "okay";
};
&usb3_dwc3 {
phys = <&hsusb_phy1>;
phy-names = "usb2-phy";
maximum-speed = "high-speed";
};