/* 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-mdss-panels.dtsi" #include "msm8996-camera-sensor-dtp.dtsi" #include "msm8996-wsa881x.dtsi" / { model = "Qualcomm Technologies, Inc. MSM8996 DTP"; compatible = "qcom,msm8996-dtp", "qcom,msm8996", "qcom,qrd"; 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-chip-pwd-voltage-level = <1300000 1300000>; qca,bt-vdd-io-voltage-level = <1800000 1800000>; qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; }; }; &uartblsp2dm1 { status = "ok"; pinctrl-names = "default"; pinctrl-0 = <&uart_console_active>; }; &blsp1_uart2 { status = "ok"; }; &i2c_6 { status = "disabled"; }; &i2c_7 { smb1351-charger@1d { compatible = "qcom,smb1351-charger"; reg = <0x1d>; qcom,parallel-charger; qcom,float-voltage-mv = <4450>; qcom,recharge-mv = <100>; }; }; / { qrd_batterydata: qcom,battery-data { qcom,batt-id-range-pct = <15>; #include "batterydata-qrd-skum-4v4-2920mah.dtsi" }; }; &pmi8994_charger { qcom,battery-data = <&qrd_batterydata>; }; &pmi8994_fg { qcom,battery-data = <&qrd_batterydata>; qcom,ext-sense-type; qcom,hold-soc-while-full; }; &pmi8994_gpios { gpio@c700 { /* GPIO 8, lcd_reg_en, 5V boost */ qcom,mode = <1>; qcom,vin-sel = <2>; qcom,src-sel = <0>; qcom,invert = <1>; /* need invert = 0 */ qcom,master-en = <1>; status = "okay"; }; 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@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"; }; }; &pmi8994_mpps { mpp@a000 { /* MPP 1 */ qcom,mode = <1>; /* Digital output */ qcom,output-type = <0>; /* CMOS logic */ qcom,vin-sel = <2>; /* 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"; }; }; &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@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"; }; }; &pm8994_mpps { mpp@a100 { /* MPP 2 */ 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 */ status = "okay"; }; 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_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>; }; }; &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>; }; chan@7c { label = "xo_therm_buf"; reg = <0x7c>; qcom,decimation = <0>; qcom,pre-div-channel-scaling = <0>; qcom,calibration-type = "ratiometric"; qcom,scale-function = <4>; 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; }; chan@7c { label = "xo_therm_buf"; reg = <0x7c>; qcom,decimation = <0>; qcom,pre-div-channel-scaling = <0>; qcom,calibration-type = "ratiometric"; qcom,scale-function = <4>; qcom,hw-settle-time = <2>; qcom,fast-avg-setup = <0>; qcom,btm-channel-number = <0x88>; qcom,thermal-node; }; }; &labibb { status = "ok"; qpnp,qpnp-labibb-mode = "lcd"; }; &mdss_mdp { qcom,mdss-pref-prim-intf = "dsi"; }; &mdss_fb2 { status = "disabled"; }; &mdss_hdmi_tx { status = "disabled"; }; &mdss_dsi { hw-config = "split_dsi"; }; &mdss_dsi0 { qcom,dsi-pref-prim-pan = <&dsi_r69007_wqxga_cmd>; pinctrl-names = "mdss_default", "mdss_sleep"; pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; qcom,platform-te-gpio = <&tlmm 10 0>; qcom,platform-reset-gpio = <&tlmm 8 0>; }; &mdss_dsi1 { qcom,dsi-pref-prim-pan = <&dsi_r69007_wqxga_cmd>; pinctrl-names = "mdss_default", "mdss_sleep"; pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; qcom,platform-te-gpio = <&tlmm 10 0>; qcom,platform-reset-gpio = <&tlmm 8 0>; }; &ufs_ice { status = "ok"; }; &sdcc1_ice { status = "ok"; }; &ufsphy1 { status = "ok"; }; &ufs1 { status = "ok"; }; &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>; qcom,nonremovable; qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; status = "ok"; }; &dsi_r69007_wqxga_cmd { 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>; qcom,dcs-cmd-by-left; }; &sdhc_2 { status = "disabled"; }; &pm8994_gpios { gpio@c100 { /* GPIO 2 */ qcom,mode = <0>; qcom,pull = <0>; qcom,vin-sel = <2>; qcom,src-sel = <0>; 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 1439 2559>; synaptics,panel-coords = <0 0 1439 2559>; synaptics,reset-gpio = <&tlmm 89 0x00>; synaptics,irq-gpio = <&tlmm 125 0x2008>; synaptics,disable-gpios; synaptics,button-map = <139 158 102>; }; }; gpio_keys { compatible = "gpio-keys"; input-name = "gpio-keys"; vol_up { label = "volume_up"; gpios = <&pm8994_gpios 2 0x1>; linux,input-type = <1>; linux,code = <115>; gpio-key,wakeup; debounce-interval = <15>; }; }; sound { status="disabled"; }; sound-9335 { qcom,model = "msm8996-dtp-tasha-snd-card"; qcom,audio-routing = "AIF4 VI", "MCLK", "RX_BIAS", "MCLK", "AMIC2", "MIC BIAS2", "MIC BIAS2", "Headset Mic", "DMIC0", "MIC BIAS1", "MIC BIAS1", "Digital Mic0", "DMIC2", "MIC BIAS3", "MIC BIAS3", "Digital Mic2", "DMIC3", "MIC BIAS3", "MIC BIAS3", "Digital Mic3", "SpkrLeft IN", "SPK1 OUT"; qcom,msm-mbhc-hphl-swh = <1>; qcom,msm-mbhc-gnd-swh = <0>; asoc-codec = <&stub_codec>; asoc-codec-names = "msm-stub-codec.1"; qcom,wsa-max-devs = <1>; qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_213>; qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrLeft"; }; }; &qusb_phy0 { qcom,qusb-phy-init-seq = <0xF8 0x80 0x53 0x84 0x83 0x88 0xC5 0x8C 0x30 0x08 0x79 0x0C 0x21 0x10 0x14 0x9C 0x80 0x04 0x9F 0x1C 0x00 0x18>; }; &pmi8994_haptics { status = "okay"; qcom,vmax-mv = <3000>; qcom,actuator-type = "erm"; }; &red_led { /delete-property/ linux,default-trigger; qcom,start-idx = <1>; qcom,idx-len = <10>; qcom,duty-pcts = [00 19 32 4B 64 64 4B 32 19 00]; qcom,lut-flags = <3>; qcom,pause-lo = <0>; qcom,pause-hi = <0>; qcom,ramp-step-ms = <255>; qcom,use-blink; }; &green_led { /delete-property/ linux,default-trigger; qcom,start-idx = <1>; qcom,idx-len = <10>; qcom,duty-pcts = [00 19 32 4B 64 64 4B 32 19 00]; qcom,lut-flags = <3>; qcom,pause-lo = <0>; qcom,pause-hi = <0>; qcom,ramp-step-ms = <255>; qcom,use-blink; }; &blue_led { /delete-property/ linux,default-trigger; qcom,start-idx = <1>; qcom,idx-len = <10>; qcom,duty-pcts = [00 19 32 4B 64 64 4B 32 19 00]; qcom,lut-flags = <3>; qcom,pause-lo = <0>; qcom,pause-hi = <0>; qcom,ramp-step-ms = <255>; qcom,use-blink; }; &pmi8994_wled { qcom,led-strings-list = [00 01]; }; &pm8994_l27{ regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; qcom,init-voltage = <1200000>; };