M7350/kernel/arch/arm/boot/dts/qcom/msm8996-fluid.dtsi
2024-09-09 08:57:42 +00:00

647 lines
15 KiB
Plaintext

/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include "msm8996-pinctrl.dtsi"
#include "msm8996-camera-sensor-mtp.dtsi"
#include "msm8996-wsa881x.dtsi"
/ {
model = "Qualcomm Technologies, Inc. MSM 8996 FLUID";
compatible = "qcom,msm8996-fluid", "qcom,msm8996", "qcom,fluid";
qcom,board-id = <3 0>;
bluetooth: bt_qca6174 {
compatible = "qca,qca6174";
qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */
qca,bt-vdd-core-supply = <&pm8994_s3>;
qca,bt-vdd-pa-supply = <&rome_vreg>;
qca,bt-vdd-io-supply = <&pm8994_s4>;
qca,bt-vdd-xtal-supply = <&pm8994_l30>;
qca,bt-vdd-core-voltage-level = <1300000 1800000>;
qca,bt-vdd-io-voltage-level = <1800000 1800000>;
qca,bt-vdd-xtal-voltage-level = <1800000 1800000>;
};
};
&i2c_7 {
smb1351-charger@1d {
compatible = "qcom,smb1351-charger";
reg = <0x1d>;
qcom,parallel-charger;
qcom,float-voltage-mv = <4400>;
qcom,recharge-mv = <100>;
};
ina231@40 {
compatible = "ina231";
reg = <0x40>;
shunt-resistor = <5000>;
};
};
&ufs_ice {
status = "ok";
};
&ufsphy1 {
status = "ok";
};
&ufs1 {
status = "ok";
};
&uartblsp2dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
};
&sdhc_1 {
vdd-supply = <&pm8994_l20>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <200 570000>;
vdd-io-supply = <&pm8994_s4>;
qcom,vdd-io-always-on;
qcom,vdd-io-voltage-level = <1800000 1800000>;
qcom,vdd-io-current-level = <110 325000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;
qcom,clk-rates = <400000 20000000 25000000 50000000 96000000 192000000 384000000>;
qcom,ice-clk-rates = <300000000 150000000>;
qcom,nonremovable;
qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";
status = "ok";
};
&sdhc_2 {
vdd-supply = <&pm8994_l21>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <200 800000>;
vdd-io-supply = <&pm8994_l13>;
qcom,vdd-io-voltage-level = <1800000 2950000>;
qcom,vdd-io-current-level = <200 22000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 200000000>;
qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";
cd-gpios = <&tlmm 95 0x1>;
status = "ok";
};
&pm8994_vadc {
chan@5 {
label = "vcoin";
reg = <5>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <1>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
};
chan@7 {
label = "vph_pwr";
reg = <7>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <1>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
};
chan@73 {
label = "msm_therm";
reg = <0x73>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
};
chan@74 {
label = "emmc_therm";
reg = <0x74>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
};
chan@75 {
label = "pa_therm0";
reg = <0x75>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
};
chan@77 {
label = "pa_therm1";
reg = <0x77>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
};
chan@78 {
label = "quiet_therm";
reg = <0x78>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
};
};
&pm8994_adc_tm {
chan@73 {
label = "msm_therm";
reg = <0x73>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
qcom,btm-channel-number = <0x48>;
qcom,thermal-node;
};
chan@74 {
label = "emmc_therm";
reg = <0x74>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
qcom,btm-channel-number = <0x68>;
qcom,thermal-node;
};
chan@75 {
label = "pa_therm0";
reg = <0x75>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
qcom,btm-channel-number = <0x70>;
qcom,thermal-node;
};
chan@77 {
label = "pa_therm1";
reg = <0x77>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
qcom,btm-channel-number = <0x78>;
qcom,thermal-node;
};
chan@78 {
label = "quiet_therm";
reg = <0x78>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <0>;
qcom,calibration-type = "ratiometric";
qcom,scale-function = <2>;
qcom,hw-settle-time = <2>;
qcom,fast-avg-setup = <0>;
qcom,btm-channel-number = <0x80>;
qcom,thermal-node;
};
};
&mdss_hdmi_tx {
pinctrl-names = "hdmi_hpd_active", "hdmi_ddc_active", "hdmi_cec_active",
"hdmi_active", "hdmi_sleep";
pinctrl-0 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_suspend
&mdss_hdmi_cec_suspend>;
pinctrl-1 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active
&mdss_hdmi_cec_suspend>;
pinctrl-2 = <&mdss_hdmi_hpd_active &mdss_hdmi_cec_active
&mdss_hdmi_ddc_suspend>;
pinctrl-3 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active
&mdss_hdmi_cec_active>;
pinctrl-4 = <&mdss_hdmi_hpd_suspend &mdss_hdmi_ddc_suspend
&mdss_hdmi_cec_suspend>;
};
&pmi8994_charger {
qcom,dc-psy-type = "Wipower";
qcom,dcin-vadc = <&pmi8994_vadc>;
qcom,wipower-default-ilim-map = <4000000 20000000 550 700 300>;
qcom,wipower-pt-ilim-map = <4000000 7140000 550 700 300>,
<7140000 8140000 550 700 300>,
<8140000 9140000 500 700 300>,
<9140000 9950000 500 700 300>;
qcom,wipower-div2-ilim-map = <4000000 4820000 550 700 300>,
<4820000 5820000 550 700 300>,
<5820000 6820000 550 650 650>,
<6820000 7820000 550 700 600>,
<7820000 8500000 550 700 550>;
};
&pmi8994_vadc {
chan@0 {
label = "usbin";
reg = <0>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <4>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
};
chan@1 {
label = "dcin";
reg = <1>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <4>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
};
chan@43 {
label = "usb_dp";
reg = <0x43>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <1>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
};
chan@44 {
label = "usb_dm";
reg = <0x44>;
qcom,decimation = <0>;
qcom,pre-div-channel-scaling = <1>;
qcom,calibration-type = "absolute";
qcom,scale-function = <0>;
qcom,hw-settle-time = <0>;
qcom,fast-avg-setup = <0>;
};
};
/{
mtp_batterydata: qcom,battery-data {
qcom,batt-id-range-pct = <15>;
#include "batterydata-itech-3000mah.dtsi"
};
};
&pmi8994_fg {
qcom,battery-data = <&mtp_batterydata>;
qcom,ext-sense-type;
qcom,fg-vbatt-low-threshold = <3700>;
};
&usb_otg_switch {
status = "okay";
};
&pm8994_mpps {
mpp@a300 { /* MPP 4 */
/* HDMI_5v_vreg regulator enable */
qcom,mode = <1>; /* Digital output */
qcom,output-type = <0>; /* CMOS logic */
qcom,vin-sel = <2>; /* S4 1.8V */
qcom,src-sel = <0>; /* Constant */
qcom,master-en = <1>; /* Enable GPIO */
qcom,invert = <0>;
status = "okay";
};
};
&pmi8994_gpios {
gpio@c100 { /* GPIO 2 SPKR_SD_N */
qcom,mode = <1>; /* DIGITAL OUT */
qcom,pull = <5>; /* No Pull */
qcom,vin-sel = <2>; /* 1.8 */
qcom,src-sel = <0>; /* CONSTANT */
qcom,master-en = <1>; /* ENABLE GPIO */
status = "okay";
};
gpio@c200 { /* GPIO 3 SPKR_SD_N */
qcom,mode = <1>; /* DIGITAL OUT */
qcom,pull = <5>; /* No Pull */
qcom,vin-sel = <2>; /* 1.8 */
qcom,src-sel = <0>; /* CONSTANT */
qcom,master-en = <1>; /* ENABLE GPIO */
status = "okay";
};
gpio@c400 { /* GPIO 5 - USB3 OTG SWITCH EN */
qcom,mode = <1>; /* Digital output */
qcom,vin-sel = <2>; /* 1.8 */
qcom,src-sel = <0>; /* GPIO */
qcom,master-en = <1>; /* Enable GPIO */
qcom,invert = <0>; /* Output low initially */
status = "okay";
};
};
&soc {
i2c@75ba000 {
synaptics@20 {
compatible = "synaptics,dsx";
reg = <0x20>;
interrupt-parent = <&tlmm>;
interrupts = <125 0x2008>;
vdd-supply = <&pm8994_l14>;
avdd-supply = <&pm8994_l22>;
pinctrl-names = "pmx_ts_active", "pmx_ts_suspend";
pinctrl-0 = <&ts_active>;
pinctrl-1 = <&ts_suspend>;
synaptics,display-coords = <0 0 1599 2559>;
synaptics,panel-coords = <0 0 1599 2703>;
synaptics,reset-gpio = <&tlmm 89 0x00>;
synaptics,irq-gpio = <&tlmm 125 0x2008>;
synaptics,disable-gpios;
};
};
gen-vkeys {
compatible = "qcom,gen-vkeys";
label = "synaptics_dsx";
qcom,disp-maxx = <1599>;
qcom,disp-maxy = <2559>;
qcom,panel-maxx = <1599>;
qcom,panel-maxy = <2703>;
qcom,key-codes = <158 139 102 217>;
};
gpio_keys {
compatible = "gpio-keys";
input-name = "gpio-keys";
home {
label = "home";
gpios = <&pm8994_gpios 1 0x1>;
linux,input-type = <1>;
linux,code = <102>;
gpio-key,wakeup;
debounce-interval = <15>;
};
vol_up {
label = "volume_up";
gpios = <&pm8994_gpios 2 0x1>;
linux,input-type = <1>;
linux,code = <115>;
gpio-key,wakeup;
debounce-interval = <15>;
};
cam_snapshot {
label = "cam_snapshot";
gpios = <&pm8994_gpios 4 0x1>;
linux,input-type = <1>;
linux,code = <766>;
gpio-key,wakeup;
debounce-interval = <15>;
};
cam_focus {
label = "cam_focus";
gpios = <&pm8994_gpios 5 0x1>;
linux,input-type = <1>;
linux,code = <528>;
gpio-key,wakeup;
debounce-interval = <15>;
};
};
sound-9335 {
qcom,model = "msm8996-tasha-fluid-snd-card";
qcom,hdmi-audio-rx;
asoc-codec = <&stub_codec>, <&hdmi_audio>;
asoc-codec-names = "msm-stub-codec.1",
"msm-hdmi-audio-codec-rx";
qcom,wsa-max-devs = <1>;
qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_213>;
qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrLeft";
};
};
&pm8994_gpios {
gpio@c700 { /* GPIO 8 - WLAN_EN */
qcom,mode = <1>; /* Digital output*/
qcom,pull = <4>; /* Pulldown 10uA */
qcom,vin-sel = <2>; /* VIN2 */
qcom,src-sel = <0>; /* GPIO */
qcom,invert = <0>; /* Invert */
qcom,master-en = <1>; /* Enable GPIO */
status = "okay";
};
gpio@c800 { /* GPIO 9 - Rome 3.3V control */
qcom,mode = <1>; /* Digital output */
qcom,output-type = <0>; /* MOS logic */
qcom,invert = <1>; /* Output high */
qcom,vin-sel = <0>; /* VPH_PWR */
qcom,src-sel = <0>; /* Constant */
qcom,out-strength = <1>; /* High drive strength */
qcom,master-en = <1>; /* Enable GPIO */
status = "okay";
};
gpio@cd00 { /* GPIO 14 - lcd_bklt_reg_en */
qcom,mode = <1>; /* DIGITAL OUT */
qcom,output-type = <0>; /* CMOS logic */
qcom,invert = <1>; /* output hight initially */
qcom,vin-sel = <2>; /* 1.8 */
qcom,src-sel = <0>; /* CONSTANT */
qcom,out-strength = <1>; /* Low drive strength */
qcom,master-en = <1>; /* ENABLE GPIO */
status = "okay";
};
gpio@c000 { /* GPIO 1 */
qcom,mode = <0>;
qcom,pull = <0>;
qcom,vin-sel = <2>;
qcom,src-sel = <0>;
status = "okay";
};
gpio@c100 { /* GPIO 2 */
qcom,mode = <0>;
qcom,pull = <0>;
qcom,vin-sel = <2>;
qcom,src-sel = <0>;
status = "okay";
};
gpio@c300 { /* GPIO 4 */
qcom,mode = <0>;
qcom,pull = <0>;
qcom,vin-sel = <2>;
qcom,src-sel = <0>;
status = "okay";
};
gpio@c400 { /* GPIO 5 */
qcom,mode = <0>;
qcom,pull = <0>;
qcom,vin-sel = <2>;
qcom,src-sel = <0>;
status = "okay";
};
gpio@ce00 { /* GPIO 15 */
qcom,mode = <1>;
qcom,output-type = <0>;
qcom,pull = <5>;
qcom,vin-sel = <2>;
qcom,out-strength = <1>;
qcom,src-sel = <2>;
qcom,master-en = <1>;
status = "okay";
};
gpio@d100 { /* GPIO 18 - Rome Sleep Clock */
qcom,mode = <1>; /* Digital output */
qcom,output-type = <0>; /* CMOS logic */
qcom,invert = <0>; /* Output low initially */
qcom,vin-sel = <2>; /* VIN 2 */
qcom,src-sel = <3>; /* Function 2 */
qcom,out-strength = <2>; /* Medium */
qcom,master-en = <1>; /* Enable GPIO */
status = "okay";
};
gpio@d200 { /* GPIO 19 - Rome BT Reset */
qcom,mode = <1>; /* Digital output*/
qcom,pull = <4>; /* Pulldown 10uA */
qcom,vin-sel = <2>; /* VIN2 */
qcom,src-sel = <0>; /* GPIO */
qcom,invert = <0>; /* Invert */
qcom,master-en = <1>; /* Enable GPIO */
status = "okay";
};
};
&pmi8994_haptics {
status = "okay";
};
&flash_led {
qcom,follow-otst2-rb-disabled;
};
&blsp1_uart2 {
status = "ok";
};
#include "msm8996-mdss-panels.dtsi"
&mdss_mdp {
qcom,mdss-pref-prim-intf = "dsi";
};
&mdss_dsi {
hw-config = "split_dsi";
};
&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,dsi-panel-bias-vreg;
qcom,platform-reset-gpio = <&tlmm 8 0>;
};
&mdss_dsi1 {
qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video>;
};
&dsi_dual_sharp_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};
&labibb {
status = "ok";
qpnp,qpnp-labibb-mode = "lcd";
};
&pmi8994_mpps {
mpp@a000 { /* MPP 1 */
qcom,mode = <1>; /* Digital output */
qcom,output-type = <0>; /* CMOS logic */
qcom,vin-sel = <0>; /* S4 1.8V */
qcom,src-sel = <7>; /* DTEST4 */
qcom,master-en = <1>; /* Enable MPP */
status = "okay";
};
mpp@a300 { /* MPP 4 */
/* WLED FET */
qcom,mode = <1>; /* DIGITAL OUT */
qcom,vin-sel = <0>; /* VIN0 */
qcom,master-en = <1>;
status = "okay";
};
};
&wil6210 {
status = "ok";
};