/* 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-liquid.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-vdd-core-voltage-level = <1300000 1800000>; qca,bt-vdd-io-voltage-level = <1800000 1800000>; qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; }; }; &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,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_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>; }; }; #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_jdi_4k_nofbc_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-reset-gpio = <&tlmm 8 0>; qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>; }; &mdss_dsi1 { qcom,dsi-pref-prim-pan = <&dsi_dual_jdi_4k_nofbc_video>; }; &labibb { status = "ok"; qpnp,qpnp-labibb-mode = "lcd"; }; &dsi_dual_jdi_4k_nofbc_video { pwms = <&pmi8994_pwm_4 0 0>; 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>; }; &pmi8994_pwm_4 { qcom,channel-owner = "lcd_bl"; qcom,lpg-dtest-line = <4>; qcom,dtest-output = <1>; status = "okay"; }; /{ mtp_batterydata: qcom,battery-data { qcom,batt-id-range-pct = <15>; #include "batterydata-liquid-7650-sanyo.dtsi" }; }; &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>; qcom,skip-usb-notification; }; &pmi8994_fg { qcom,battery-data = <&mtp_batterydata>; qcom,ext-sense-type; }; &usb_otg_switch { status = "okay"; }; &usb3 { vbus_dwc3-supply = <&usb_otg_switch>; }; &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@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_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"; }; }; &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"; }; }; &soc { drv2667_vreg: drv2667_vdd_vreg { compatible = "regulator-fixed"; regulator-name = "vdd_drv2667"; }; 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>; }; }; ts_xvdd_vreg: ts_xvdd_vreg { compatible = "regulator-fixed"; regulator-name = "ts_xvdd_vreg"; startup-delay-us = <4000>; enable-active-high; gpio = <&pm8994_gpios 3 0>; status = "ok"; }; sound-9335 { qcom,model = "msm8996-tasha-mtp-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 = <2>; qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>, <&wsa881x_213>, <&wsa881x_214>; qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight", "SpkrLeft", "SpkrRight"; }; usb_detect { compatible = "qcom,gpio-usbdetect"; interrupt-parent = <&tlmm>; interrupts = <78 0>; interrupt-names = "vbus_det_irq"; }; }; &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@c200 { /* GPIO 3 - TS_XVDD_EN */ qcom,mode = <1>; /* Digital output*/ qcom,output-type = <0>; /* CMOS logic */ qcom,vin-sel = <2>; /* VIN2 */ qcom,src-sel = <0>; /* GPIO */ qcom,invert = <0>; /* Invert */ qcom,master-en = <1>; /* Enable GPIO */ 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"; }; &i2c_7 { ti-drv2667@59 { compatible = "ti,drv2667"; reg = <0x59>; vdd-supply = <&drv2667_vreg>; vdd-i2c-supply = <&pm8994_s4>; ti,label = "vibrator"; ti,gain = <2>; ti,idle-timeout-ms = <20>; ti,max-runtime-ms = <15000>; ti,mode = <2>; ti,wav-seq = [ /* wave form id */ 01 /* header size, start and stop bytes */ 05 80 06 00 09 /* repeat, amp, freq, duration, envelope */ 01 ff 19 02 00]; }; }; &i2c_12 { atmel_maxtouch_ts@4a { compatible = "atmel,maxtouch-ts"; reg = <0x4a>; interrupt-parent = <&tlmm>; interrupts = <125 0x2008>; vdd-supply = <&pm8994_l14>; avdd-supply = <&pm8994_l22>; xvdd-supply = <&ts_xvdd_vreg>; pinctrl-names = "pmx_ts_active","pmx_ts_suspend"; pinctrl-0 = <&ts_active>; pinctrl-1 = <&ts_suspend>; atmel,panel-coords = <0 0 3839 2159>; atmel,display-coords = <0 0 3839 2159>; atmel,irq-gpio = <&tlmm 125 0x2008>; atmel,reset-gpio = <&tlmm 89 0x00>; atmel,i2cmode-gpio = <&tlmm 86 0x00>; atmel,ignore-crc; /* 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>; atmel,cfg-name = "maxtouch_8996_liquid_cfg.raw"; atmel,cfg_1 { atmel,version = <0x10>; atmel,build = <0xaa>; atmel,fw-name = "maxtouch_8996_liquid_v1_1_AB.fw"; }; atmel,cfg_2 { atmel,version = <0x11>; atmel,build = <0xab>; }; }; };