/* 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-wsa881x.dtsi" / { 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>; }; }; &ufs_ice { status = "ok"; }; &sdcc1_ice { status = "ok"; }; &ufsphy1 { status = "ok"; }; &ufs1 { status = "ok"; }; &uartblsp2dm1 { status = "ok"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&uart_console_active>; pinctrl-1 = <&uart_console_sleep>; }; &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>; }; 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>; }; 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; }; }; &mdss_hdmi_pll { status = "disabled"; }; &mdss_hdmi_tx { status = "disabled"; }; #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,platform-te-gpio = <&tlmm 10 0>; qcom,platform-reset-gpio = <&tlmm 8 0>; qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>; }; &mdss_dsi1 { 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,platform-te-gpio = <&tlmm 10 0>; qcom,platform-reset-gpio = <&tlmm 8 0>; qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>; }; &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>; }; &dsi_dual_nt35597_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>; }; &dsi_dual_nt35597_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,partial-update-enabled; qcom,panel-roi-alignment = <720 128 720 64 720 64>; }; &dsi_nt35597_dsc_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>; }; &dsi_nt35597_dsc_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>; }; &dsi_dual_jdi_video { pwm-names = "backlight"; qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; qcom,mdss-dsi-bl-pwm-pmi; qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; }; &dsi_dual_jdi_cmd { pwm-names = "backlight"; qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; qcom,mdss-dsi-bl-pwm-pmi; qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; qcom,partial-update-enabled; qcom,panel-roi-alignment = <4 4 2 2 20 20>; }; &dsi_dual_jdi_4k_nofbc_video { pwm-names = "backlight"; qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; qcom,mdss-dsi-bl-pwm-pmi; qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; }; /{ mtp_batterydata: qcom,battery-data { qcom,batt-id-range-pct = <15>; #include "batterydata-itech-3000mah.dtsi" }; }; &usb_otg_switch { status = "disabled"; }; &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"; }; }; &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; synaptics,fw-name = "PR1702898-s3528t_00350002.img"; /* Underlying clocks used by secure touch */ clock-names = "iface_clk", "core_clk"; clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, <&clock_gcc clk_gcc_blsp2_qup6_i2c_apps_clk>; }; }; 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"; use-syscore; 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-mtp-snd-card"; qcom,audio-routing = "AIF4 VI", "MCLK", "RX_BIAS", "MCLK", "MADINPUT", "MCLK", "hifi amp", "LINEOUT1", "hifi amp", "LINEOUT2", "AMIC2", "MIC BIAS2", "MIC BIAS2", "Headset Mic", "AMIC3", "MIC BIAS2", "MIC BIAS2", "ANCRight Headset Mic", "AMIC4", "MIC BIAS2", "MIC BIAS2", "ANCLeft Headset Mic", "AMIC5", "MIC BIAS3", "MIC BIAS3", "Handset Mic", "AMIC6", "MIC BIAS4", "MIC BIAS4", "Analog Mic6", "DMIC0", "MIC BIAS1", "MIC BIAS1", "Digital Mic0", "DMIC1", "MIC BIAS1", "MIC BIAS1", "Digital Mic1", "DMIC2", "MIC BIAS3", "MIC BIAS3", "Digital Mic2", "DMIC3", "MIC BIAS3", "MIC BIAS3", "Digital Mic3", "DMIC4", "MIC BIAS4", "MIC BIAS4", "Digital Mic4", "DMIC5", "MIC BIAS4", "MIC BIAS4", "Digital Mic5", "SpkrLeft IN", "SPK1 OUT", "SpkrRight IN", "SPK2 OUT"; qcom,hdmi-audio-rx; asoc-codec = <&stub_codec>, <&hdmi_audio>; asoc-codec-names = "msm-stub-codec.1", "msm-hdmi-audio-codec-rx"; qcom,hph-en0-gpio = <&pm8994_gpios 13 0>; qcom,us-euro-gpios = <&pm8994_mpps 2 0>; qcom,wsa-max-devs = <2>; qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>, <&wsa881x_213>, <&wsa881x_214>; qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight", "SpkrLeft", "SpkrRight"; }; }; &pm8994_gpios { gpio@c600 { /* GPIO 7 - NFC DWL REQ */ qcom,mode = <1>; qcom,output-type = <0>; qcom,pull = <5>; qcom,vin-sel = <2>; qcom,out-strength = <3>; qcom,src-sel = <0>; qcom,master-en = <1>; status = "okay"; }; 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@c900 { /* GPIO 10 - NFC CLK _REQ*/ qcom,mode = <0>; qcom,vin-sel = <2>; qcom,src-sel = <0>; qcom,master-en = <1>; 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@cc00 { /* GPIO 13 - HPH_EN0 */ 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@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"; }; }; &blsp1_uart2 { status = "ok"; }; &i2c_6 { at24@51 { compatible = "atmel,24c32"; reg = <0x51>; }; }; &i2c_7 { silabs4705@11 { /* SiLabs FM chip, slave id 0x11*/ status = "ok"; compatible = "silabs,si4705"; reg = <0x11>; vdd-supply = <&pm8994_s4>; silabs,vdd-supply-voltage = <1800000 1800000>; va-supply = <&rome_vreg>; silabs,va-supply-voltage = <3300000 3300000>; pinctrl-names = "pmx_fm_active","pmx_fm_suspend"; pinctrl-0 = <&fm_int_active &fm_status_int_active &fm_rst_active>; pinctrl-1 = <&fm_int_suspend &fm_status_int_suspend &fm_rst_suspend>; silabs,reset-gpio = <&tlmm 39 0>; silabs,int-gpio = <&tlmm 38 0>; silabs,status-gpio = <&tlmm 78 0>; #address-cells = <0>; interrupts = <0 1>; #interrupt-cells = <1>; interrupt-map-mask = <0xffffffff>; interrupt-map = < 0 &tlmm 38 2 1 &tlmm 78 1 >; interrupt-names = "silabs_fm_int", "silabs_fm_status_int"; }; }; &i2c_8 { /* BLSP2 QUP2 */ nq@28 { compatible = "qcom,nq-nci"; reg = <0x28>; qcom,nq-irq = <&tlmm 9 0x00>; qcom,nq-ven = <&tlmm 12 0x00>; qcom,nq-firm = <&pm8994_gpios 7 0x00>; qcom,nq-clkreq = <&pm8994_gpios 10 0x00>; interrupt-parent = <&tlmm>; qcom,clk-src = "BBCLK2"; interrupts = <9 0>; interrupt-names = "nfc_irq"; pinctrl-names = "nfc_active", "nfc_suspend"; pinctrl-0 = <&nfc_int_active &nfc_disable_active>; pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>; clocks = <&clock_gcc clk_bb_clk2_pin>; clock-names = "ref_clk"; }; };