diff --git a/arch/arm/boot/dts/qcom/Makefile b/arch/arm/boot/dts/qcom/Makefile index b614c7dc43dd9..44f1dbe74dac9 100644 --- a/arch/arm/boot/dts/qcom/Makefile +++ b/arch/arm/boot/dts/qcom/Makefile @@ -211,9 +211,11 @@ dtb-$(CONFIG_ARCH_MSM8940) += msm8940-pmi8937-cdp.dtb \ msm8940-pmi8940-qrd-sku7.dtb ifeq ($(CONFIG_MACH_XIAOMI_MSM8953),y) -dtb-$(CONFIG_MACH_XIAOMI_MIDO) += msm8953-qrd-sku3.dtb +dtb-$(CONFIG_MACH_XIAOMI_MIDO) += \ + mido-msm8953-qrd-sku3.dtb else -dtb-$(CONFIG_ARCH_MSM8953) += msm8953-sim.dtb \ +dtb-$(CONFIG_ARCH_MSM8953) += \ + msm8953-sim.dtb \ msm8953-rumi.dtb \ msm8953-cdp.dtb \ msm8953-mtp.dtb \ @@ -227,6 +229,12 @@ dtb-$(CONFIG_ARCH_MSM8953) += msm8953-sim.dtb \ msm8953-cdp-1200p.dtb \ msm8953-iot-mtp.dtb \ apq8053-iot-mtp.dtb + +dtb-$(CONFIG_ARCH_MSM8916) += \ + msm8952-qrd-skum.dtb \ + msm8952-cdp.dtb \ + msm8952-ext-codec-cdp.dtb \ + msm8952-mtp.dtb endif dtb-$(CONFIG_ARCH_MDM9607) += mdm9607-rumi.dtb \ @@ -235,11 +243,6 @@ dtb-$(CONFIG_ARCH_MDM9607) += mdm9607-rumi.dtb \ mdm9607-rcm.dtb \ mdm9607-mtp-sdcard.dtb -dtb-$(CONFIG_ARCH_MSM8916) += msm8952-qrd-skum.dtb \ - msm8952-cdp.dtb \ - msm8952-ext-codec-cdp.dtb \ - msm8952-mtp.dtb - dtb-$(CONFIG_ARCH_MSM8909) += msm8909-pm8916-mtp.dtb \ msm8909w-wtp.dtb \ apq8009w-wtp.dtb \ diff --git a/arch/arm/boot/dts/qcom/mido-msm8953-qrd-sku3.dts b/arch/arm/boot/dts/qcom/mido-msm8953-qrd-sku3.dts new file mode 100644 index 0000000000000..8173a8bae753d --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido-msm8953-qrd-sku3.dts @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2015-2016, 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. + */ + +/dts-v1/; + +#include "mido/platform/msm8953/msm8953.dtsi" +#include "mido/platform/msm8953/msm8953-qrd-sku3.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM8953 QRD SKU3"; + compatible = "qcom,msm8953-qrd-sku3", + "qcom,msm8953-qrd", "qcom,msm8953", "qcom,qrd"; + qcom,board-id= <0x0b 0>; +}; + diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-coslight-4v4-4100mah.dtsi b/arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-coslight-4v4-4100mah.dtsi similarity index 100% rename from arch/arm/boot/dts/qcom/batterydata-qrd-coslight-4v4-4100mah.dtsi rename to arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-coslight-4v4-4100mah.dtsi diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-desay-4v4-4100mah.dtsi b/arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-desay-4v4-4100mah.dtsi similarity index 100% rename from arch/arm/boot/dts/qcom/batterydata-qrd-desay-4v4-4100mah.dtsi rename to arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-desay-4v4-4100mah.dtsi diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-desay-lisheng-4v4-4100mah.dtsi b/arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-desay-lisheng-4v4-4100mah.dtsi similarity index 100% rename from arch/arm/boot/dts/qcom/batterydata-qrd-desay-lisheng-4v4-4100mah.dtsi rename to arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-desay-lisheng-4v4-4100mah.dtsi diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-id1-4v4-4000mah.dtsi b/arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-id1-4v4-4000mah.dtsi similarity index 100% rename from arch/arm/boot/dts/qcom/batterydata-qrd-id1-4v4-4000mah.dtsi rename to arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-id1-4v4-4000mah.dtsi diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-id2-4v4-4000mah.dtsi b/arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-id2-4v4-4000mah.dtsi similarity index 100% rename from arch/arm/boot/dts/qcom/batterydata-qrd-id2-4v4-4000mah.dtsi rename to arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-id2-4v4-4000mah.dtsi diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-sku1-4v4-4000mah.dtsi b/arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-sku1-4v4-4000mah.dtsi similarity index 100% rename from arch/arm/boot/dts/qcom/batterydata-qrd-sku1-4v4-4000mah.dtsi rename to arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-sku1-4v4-4000mah.dtsi diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-sunwoda-4v4-4100mah.dtsi b/arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-sunwoda-4v4-4100mah.dtsi similarity index 100% rename from arch/arm/boot/dts/qcom/batterydata-qrd-sunwoda-4v4-4100mah.dtsi rename to arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-sunwoda-4v4-4100mah.dtsi diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-sunwoda-ATL-4v4-4100mah.dtsi b/arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-sunwoda-ATL-4v4-4100mah.dtsi similarity index 100% rename from arch/arm/boot/dts/qcom/batterydata-qrd-sunwoda-ATL-4v4-4100mah.dtsi rename to arch/arm/boot/dts/qcom/mido/device/batterydata-qrd-sunwoda-ATL-4v4-4100mah.dtsi diff --git a/arch/arm/boot/dts/qcom/dsi-panel-nt35532-fhd-video.dtsi b/arch/arm/boot/dts/qcom/mido/device/dsi-panel-nt35532-fhd-video.dtsi similarity index 100% rename from arch/arm/boot/dts/qcom/dsi-panel-nt35532-fhd-video.dtsi rename to arch/arm/boot/dts/qcom/mido/device/dsi-panel-nt35532-fhd-video.dtsi diff --git a/arch/arm/boot/dts/qcom/dsi-panel-nt35596-fhd-video.dtsi b/arch/arm/boot/dts/qcom/mido/device/dsi-panel-nt35596-fhd-video.dtsi similarity index 100% rename from arch/arm/boot/dts/qcom/dsi-panel-nt35596-fhd-video.dtsi rename to arch/arm/boot/dts/qcom/mido/device/dsi-panel-nt35596-fhd-video.dtsi diff --git a/arch/arm/boot/dts/qcom/dsi-panel-nt35596-tianma-fhd-video.dtsi b/arch/arm/boot/dts/qcom/mido/device/dsi-panel-nt35596-tianma-fhd-video.dtsi similarity index 100% rename from arch/arm/boot/dts/qcom/dsi-panel-nt35596-tianma-fhd-video.dtsi rename to arch/arm/boot/dts/qcom/mido/device/dsi-panel-nt35596-tianma-fhd-video.dtsi diff --git a/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-audio.dtsi b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-audio.dtsi new file mode 100644 index 0000000000000..12bf545db0668 --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-audio.dtsi @@ -0,0 +1,275 @@ +/* + * Copyright (c) 2015-2016, 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 "../../../msm8953-wsa881x.dtsi" + +&int_codec { + qcom,model = "msm8953-snd-card-mtp"; + qcom,msm-ext-pa = "primary"; + qcom,msm-spk-ext-pa = <&tlmm 96 0>; + qcom,cdc-us-euro-gpios = <&tlmm 63 0>; + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <0>; + qcom,msm-hs-micbias-type = "internal"; + qcom,msm-micbias1-ext-cap; + qcom,msm-mclk-freq = <9600000>; + qcom,audio-routing = + "RX_BIAS", "MCLK", + "SPK_RX_BIAS", "MCLK", + "INT_LDO_H", "MCLK", + "MIC BIAS External", "Handset Mic", + "MIC BIAS Internal2", "Headset Mic", + "MIC BIAS Internal1", "Secondary Mic", + "AMIC1", "MIC BIAS External", + "AMIC2", "MIC BIAS Internal2", + "AMIC3", "MIC BIAS Internal1"; + + qcom,msm-gpios = + "pri_i2s", + "us_eu_gpio", + "quin_i2s", + "comp_gpio"; + qcom,pinctrl-names = + "all_off", + "pri_i2s_act", + "us_eu_gpio_act", + "pri_i2s_us_eu_gpio_act", + "quin_act", + "quin_pri_i2s_act", + "quin_us_eu_gpio_act", + "quin_us_eu_gpio_pri_i2s_act", + "comp_gpio_act", + "comp_gpio_pri_i2s_act", + "comp_gpio_us_eu_gpio_act", + "comp_gpio_pri_i2s_us_eu_gpio_act", + "comp_gpio_quin_act", + "comp_gpio_quin_pri_i2s_act", + "comp_gpio_quin_us_eu_gpio_act", + "comp_gpio_quin_us_eu_gpio_pri_i2s_act"; + + pinctrl-names = + "all_off", + "pri_i2s_act", + "us_eu_gpio_act", + "pri_i2s_us_eu_gpio_act", + "quin_act", + "quin_pri_i2s_act", + "quin_us_eu_gpio_act", + "quin_us_eu_gpio_pri_i2s_act", + "comp_gpio_act", + "comp_gpio_pri_i2s_act", + "comp_gpio_us_eu_gpio_act", + "comp_gpio_pri_i2s_us_eu_gpio_act", + "comp_gpio_quin_act", + "comp_gpio_quin_pri_i2s_act", + "comp_gpio_quin_us_eu_gpio_act", + "comp_gpio_quin_us_eu_gpio_pri_i2s_act"; + + pinctrl-0 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_sus &cross_conn_det_sus + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-1 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_act &cross_conn_det_sus + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-2 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_sus &cross_conn_det_act + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-3 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_act &cross_conn_det_act + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-4 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_sus &cross_conn_det_sus + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-5 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_act &cross_conn_det_sus + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-6 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_sus &cross_conn_det_act + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-7 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_act &cross_conn_det_act + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-8 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_sus &cross_conn_det_sus + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-9 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_act &cross_conn_det_sus + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-10 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_sus &cross_conn_det_act + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-11 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_act &cross_conn_det_act + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-12 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_sus &cross_conn_det_sus + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-13 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_act &cross_conn_det_sus + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-14 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_sus &cross_conn_det_act + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-15 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_act &cross_conn_det_act + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + + asoc-codec = <&stub_codec>, <&pm8953_diangu_dig>, <&hdmi_dba>; + asoc-codec-names = "msm-stub-codec.1", "cajon_codec", + "msm-hdmi-dba-codec-rx"; +}; + +&pm8953_gpios { + gpio@c000 { + status = "ok"; + qcom,mode = <1>; + qcom,pull = <5>; + qcom,vin-sel = <0>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + qcom,out-strength = <2>; + }; +}; + +&ext_codec { + qcom,model = "msm8953-tasha-snd-card"; + + qcom,cdc-us-euro-gpios = <&tlmm 63 0>; + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <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"; +}; + +&wcd9xxx_intc { + interrupt-parent = <&tlmm>; + interrupts = <73 0>; + qcom,gpio-connect = <&tlmm 73 0>; +}; + +&clock_audio { + qcom,audio-ref-clk-gpio = <&pm8953_gpios 1 0>; + qcom,lpass-mclk-id = "pri_mclk"; + clocks = <&clock_gcc clk_div_clk2>; + pinctrl-names = "sleep", "active"; + pinctrl-0 = <&cdc_mclk2_sleep>; + pinctrl-1 = <&cdc_mclk2_active>; +}; + +&pm8953_1 { + pm8953_diangu_dig: 8953_wcd_codec@f000 { + compatible = "qcom,msm8x16_wcd_codec"; + reg = <0xf000 0x100>; + interrupt-parent = <&spmi_bus>; + interrupts = <0x1 0xf0 0x0>, + <0x1 0xf0 0x1>, + <0x1 0xf0 0x2>, + <0x1 0xf0 0x3>, + <0x1 0xf0 0x4>, + <0x1 0xf0 0x5>, + <0x1 0xf0 0x6>, + <0x1 0xf0 0x7>; + interrupt-names = "spk_cnp_int", + "spk_clip_int", + "spk_ocp_int", + "ins_rem_det1", + "but_rel_det", + "but_press_det", + "ins_rem_det", + "mbhc_int"; + + cdc-vdda-cp-supply = <&pm8953_s4>; + qcom,cdc-vdda-cp-voltage = <1900000 2050000>; + qcom,cdc-vdda-cp-current = <500000>; + + cdc-vdd-io-supply = <&pm8953_l5>; + qcom,cdc-vdd-io-voltage = <1800000 1800000>; + qcom,cdc-vdd-io-current = <5000>; + + cdc-vdd-pa-supply = <&pm8953_s4>; + qcom,cdc-vdd-pa-voltage = <1900000 2050000>; + qcom,cdc-vdd-pa-current = <260000>; + + cdc-vdd-mic-bias-supply = <&pm8953_l13>; + qcom,cdc-vdd-mic-bias-voltage = <3125000 3125000>; + qcom,cdc-vdd-mic-bias-current = <5000>; + + qcom,cdc-mclk-clk-rate = <9600000>; + + qcom,cdc-static-supplies = "cdc-vdd-io", + "cdc-vdd-pa", + "cdc-vdda-cp"; + + qcom,cdc-on-demand-supplies = "cdc-vdd-mic-bias"; + qcom,dig-cdc-base-addr = <0xc0f0000>; + }; + + pm8953_diangu_analog: 8953_wcd_codec@f100 { + compatible = "qcom,msm8x16_wcd_codec"; + reg = <0xf100 0x100>; + interrupt-parent = <&spmi_bus>; + interrupts = <0x1 0xf1 0x0>, + <0x1 0xf1 0x1>, + <0x1 0xf1 0x2>, + <0x1 0xf1 0x3>, + <0x1 0xf1 0x4>, + <0x1 0xf1 0x5>; + interrupt-names = "ear_ocp_int", + "hphr_ocp_int", + "hphl_ocp_det", + "ear_cnp_int", + "hphr_cnp_int", + "hphl_cnp_int"; + qcom,dig-cdc-base-addr = <0xc0f0000>; + }; +}; + +&wcd_rst_gpio { + qcom,cdc-rst-n-gpio = <&tlmm 67 0>; +}; + +&wcd9335 { + clock-names = "wcd_clk", "wcd_native_clk"; + clocks = <&clock_audio clk_audio_pmi_clk>, + <&clock_audio clk_audio_ap_clk2>; + + qcom,cdc-reset-gpio = <&tlmm 67 0>; + + cdc-vdd-buck-supply = <&eldo2_8953>; + qcom,cdc-vdd-buck-voltage = <1800000 1800000>; + qcom,cdc-vdd-buck-current = <650000>; + + cdc-buck-sido-supply = <&eldo2_8953>; + qcom,cdc-buck-sido-voltage = <1800000 1800000>; + qcom,cdc-buck-sido-current = <150000>; + + cdc-vdd-tx-h-supply = <&eldo2_8953>; + qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>; + qcom,cdc-vdd-tx-h-current = <25000>; + + cdc-vdd-rx-h-supply = <&eldo2_8953>; + qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>; + qcom,cdc-vdd-rx-h-current = <25000>; + + cdc-vdd-px-supply = <&eldo2_8953>; + qcom,cdc-vdd-px-voltage = <1800000 1800000>; + qcom,cdc-vdd-px-current = <10000>; + + cdc-vdd-mic-bias-supply = <&pm8953_l13>; + qcom,cdc-vdd-mic-bias-voltage = <3125000 3125000>; + qcom,cdc-vdd-mic-bias-current = <15000>; +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-camera-sensor-qrd.dtsi b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-camera-sensor-qrd.dtsi new file mode 100644 index 0000000000000..3e796a15bada0 --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-camera-sensor-qrd.dtsi @@ -0,0 +1,987 @@ +/* + * Copyright (c) 2015-2016, 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. + */ + +&soc { + led_flash0: qcom,camera-flash { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-type = <1>; + qcom,flash-source = <&pmi8950_flash0 &pmi8950_flash1>; + qcom,torch-source = <&pmi8950_torch0 &pmi8950_torch1>; + qcom,switch-source = <&pmi8950_switch>; + }; +}; + +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2850000>; + qcom,cam-vreg-max-voltage = <2850000>; + qcom,cam-vreg-op-mode = <80000>; + }; + + eeprom0: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + qcom,eeprom-name = "qtech_s5k3l8"; + compatible = "qcom,eeprom"; + + qcom,slave-addr = <0xA0>; + qcom,cci-master = <0>; + qcom,num-blocks = <6>; + + qcom,page0 = <0 0 0 0 0 0>; + qcom,poll0 = <0 0 0 0 0 0>; + qcom,saddr0 = <0xA0>; + qcom,mem0 = <5 0x0000 2 0 1 0>; + + qcom,page1 = <0 0 0 0 0 0>; + qcom,poll1 = <0 0 0 0 0 0>; + qcom,saddr1 = <0xA0>; + qcom,mem1 = <6 0x000C 2 0 1 0>; + + qcom,page2 = <0 0 0 0 0 0>; + qcom,poll2 = <0 0 0 0 0 0>; + qcom,saddr2 = <0xA0>; + qcom,mem2 = <13 0x0019 2 0 1 0>; + + qcom,page3 = <0 0 0 0 0 0>; + qcom,poll3 = <0 0 0 0 0 0>; + qcom,saddr3 = <0xA0>; + qcom,mem3 = <1769 0x0027 2 0 1 0>; + + qcom,page4 = <0 0 0 0 0 0>; + qcom,poll4 = <0 0 0 0 0 0>; + qcom,saddr4 = <0xA0>; + qcom,mem4 = <899 0x0711 2 0 1 0>; + + qcom,page5 = <0 0 0 0 0 0>; + qcom,poll5 = <0 0 0 0 0 0>; + qcom,saddr5 = <0xA0>; + qcom,mem5 = <3 0x0D99 2 0 1 0>; + + cam_vdig-supply = <&pm8953_l2>; + cam_vana-supply = <&pm8953_l22>; + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + gpios = <&tlmm 26 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", + "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; + + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom1: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + qcom,eeprom-name = "ofilm_s5k3l8"; + compatible = "qcom,eeprom"; + + qcom,slave-addr = <0xB0>; + qcom,cci-master = <0>; + qcom,num-blocks = <9>; + + qcom,page0 = <0 0 0 0 0 0>; + qcom,poll0 = <0 0 0 0 0 0>; + qcom,saddr0 = <0xB0>; + qcom,mem0 = <1 0x0000 2 0 1 0>; + + qcom,page1 = <0 0 0 0 0 0>; + qcom,poll1 = <0 0 0 0 0 0>; + qcom,saddr1 = <0xB0>; + qcom,mem1 = <1 0x000B 2 0 1 0>; + + qcom,page2 = <0 0 0 0 0 0>; + qcom,poll2 = <0 0 0 0 0 0>; + qcom,saddr2 = <0xB0>; + qcom,mem2 = <3 0x0015 2 0 1 0>; + + qcom,page3 = <0 0 0 0 0 0>; + qcom,poll3 = <0 0 0 0 0 0>; + qcom,saddr3 = <0xB0>; + qcom,mem3 = <5 0x0019 2 0 1 0>; + + qcom,page4 = <0 0 0 0 0 0>; + qcom,poll4 = <0 0 0 0 0 0>; + qcom,saddr4 = <0xB0>; + qcom,mem4 = <1 0x0021 2 0 1 0>; + + qcom,page5 = <0 0 0 0 0 0>; + qcom,poll5 = <0 0 0 0 0 0>; + qcom,saddr5 = <0xB0>; + qcom,mem5 = <6 0x002A 2 0 1 0>; + + qcom,page6 = <0 0 0 0 0 0>; + qcom,poll6 = <0 0 0 0 0 0>; + qcom,saddr6 = <0xB0>; + qcom,mem6 = <6 0x0038 2 0 1 0>; + + qcom,page7 = <0 0 0 0 0 0>; + qcom,poll7 = <0 0 0 0 0 0>; + qcom,saddr7 = <0xB0>; + qcom,mem7 = <1769 0x003F 2 0 1 0>; + + qcom,page8 = <0 0 0 0 0 0>; + qcom,poll8 = <0 0 0 0 0 0>; + qcom,saddr8 = <0xB0>; + qcom,mem8 = <901 0x0729 2 0 1 0>; + + cam_vdig-supply = <&pm8953_l2>; + cam_vana-supply = <&pm8953_l22>; + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + gpios = <&tlmm 26 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", + "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; + + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom2: qcom,eeprom@2 { + cell-index = <2>; + reg = <0x2>; + qcom,eeprom-name = "sunny_s5k3l8"; + compatible = "qcom,eeprom"; + + qcom,slave-addr = <0xB0>; + qcom,cci-master = <0>; + qcom,num-blocks = <7>; + + qcom,page0 = <0 0 0 0 0 0>; + qcom,poll0 = <0 0 0 0 0 0>; + qcom,saddr0 = <0xB0>; + qcom,mem0 = <2 0x0000 2 0 1 0>; + + qcom,page1 = <0 0 0 0 0 0>; + qcom,poll1 = <0 0 0 0 0 0>; + qcom,saddr1 = <0xB0>; + qcom,mem1 = <3 0x0005 2 0 1 0>; + + qcom,page2 = <0 0 0 0 0 0>; + qcom,poll2 = <0 0 0 0 0 0>; + qcom,saddr2 = <0xB0>; + qcom,mem2 = <5 0x000C 2 0 1 0>; + + qcom,page3 = <0 0 0 0 0 0>; + qcom,poll3 = <0 0 0 0 0 0>; + qcom,saddr3 = <0xB0>; + qcom,mem3 = <7 0x0019 2 0 1 0>; + + qcom,page4 = <0 0 0 0 0 0>; + qcom,poll4 = <0 0 0 0 0 0>; + qcom,saddr4 = <0xB0>; + qcom,mem4 = <1769 0x0027 2 0 1 0>; + + qcom,page5 = <0 0 0 0 0 0>; + qcom,poll5 = <0 0 0 0 0 0>; + qcom,saddr5 = <0xB0>; + qcom,mem5 = <899 0x0711 2 0 1 0>; + + qcom,page6 = <0 0 0 0 0 0>; + qcom,poll6 = <0 0 0 0 0 0>; + qcom,saddr6 = <0xB0>; + qcom,mem6 = <3 0x0D99 2 0 1 0>; + + cam_vdig-supply = <&pm8953_l2>; + cam_vana-supply = <&pm8953_l22>; + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + gpios = <&tlmm 26 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", + "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; + + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom3: qcom,eeprom@3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,eeprom"; + qcom,cci-master = <1>; + + qcom,eeprom-name = "qtech_s5k5e8"; + qcom,slave-addr = <0x20>; + qcom,num-blocks = <8>; + + qcom,page0 = <1 0x0A02 2 0x4 1 0>; + qcom,pageen0 = <1 0x0A00 2 0x1 1 0>; + qcom,poll0 = <0 0x0 2 0 1 0>; + qcom,mem0 = <64 0x0A04 2 0 1 0>; + + qcom,page1 = <1 0x0A02 2 0x5 1 0>; + qcom,pageen1 = <1 0x0A00 2 0x1 1 0>; + qcom,poll1 = <0 0x0 2 0 1 0>; + qcom,mem1 = <64 0x0A04 2 0 1 0>; + + qcom,page2 = <1 0x0A02 2 0x6 1 0>; + qcom,pageen2 = <1 0x0A00 2 0x1 1 0>; + qcom,poll2 = <0 0x0 2 0 1 0>; + qcom,mem2 = <64 0x0A04 2 0 1 0>; + + qcom,page3 = <1 0x0A02 2 0x7 1 0>; + qcom,pageen3 = <1 0x0A00 2 0x1 1 0>; + qcom,poll3 = <0 0x0 2 0 1 0>; + qcom,mem3 = <64 0x0A04 2 0 1 0>; + + qcom,page4 = <1 0x0A02 2 0x8 1 0>; + qcom,pageen4 = <1 0x0A00 2 0x1 1 0>; + qcom,poll4 = <0 0x0 2 0 1 0>; + qcom,mem4 = <64 0x0A04 2 0 1 0>; + + qcom,page5 = <1 0x0A02 2 0x9 1 0>; + qcom,pageen5 = <1 0x0A00 2 0x1 1 0>; + qcom,poll5 = <0 0x0 2 0 1 0>; + qcom,mem5 = <64 0x0A04 2 0 1 0>; + + qcom,page6 = <1 0x0A02 2 0xA 1 0>; + qcom,pageen6 = <1 0x0A00 2 0x1 1 0>; + qcom,poll6 = <0 0x0 2 0 1 0>; + qcom,mem6 = <64 0x0A04 2 0 1 0>; + + qcom,page7 = <1 0x0A02 2 0xE 1 0>; + qcom,pageen7 = <1 0x0A00 2 0x1 1 0>; + qcom,poll7 = <0 0x0 2 0 1 0>; + qcom,mem7 = <2 0x0A04 2 0 1 0>; + + cam_vdig-supply = <&pm8953_l23>; + cam_vana-supply = <&pm8953_l22>; + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_front1_sleep>; + gpios = <&tlmm 27 0>, + <&tlmm 129 0>, + <&tlmm 130 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", + "cam_vdig", "cam_vio", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <1 1 0 0 0 10 1 1>; + + status = "ok"; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom4: qcom,eeprom@4 { + cell-index = <4>; + reg = <0x4>; + compatible = "qcom,eeprom"; + qcom,cci-master = <1>; + + qcom,eeprom-name = "sunny_s5k5e8"; + qcom,slave-addr = <0x20>; + qcom,num-blocks = <8>; + + qcom,page0 = <1 0x0A02 2 0x4 1 0>; + qcom,pageen0 = <1 0x0A00 2 0x1 1 0>; + qcom,poll0 = <0 0x0 2 0 1 0>; + qcom,mem0 = <64 0x0A04 2 0 1 0>; + + qcom,page1 = <1 0x0A02 2 0x5 1 0>; + qcom,pageen1 = <1 0x0A00 2 0x1 1 0>; + qcom,poll1 = <0 0x0 2 0 1 0>; + qcom,mem1 = <64 0x0A04 2 0 1 0>; + + qcom,page2 = <1 0x0A02 2 0x6 1 0>; + qcom,pageen2 = <1 0x0A00 2 0x1 1 0>; + qcom,poll2 = <0 0x0 2 0 1 0>; + qcom,mem2 = <64 0x0A04 2 0 1 0>; + + qcom,page3 = <1 0x0A02 2 0x7 1 0>; + qcom,pageen3 = <1 0x0A00 2 0x1 1 0>; + qcom,poll3 = <0 0x0 2 0 1 0>; + qcom,mem3 = <64 0x0A04 2 0 1 0>; + + qcom,page4 = <1 0x0A02 2 0x8 1 0>; + qcom,pageen4 = <1 0x0A00 2 0x1 1 0>; + qcom,poll4 = <0 0x0 2 0 1 0>; + qcom,mem4 = <64 0x0A04 2 0 1 0>; + + qcom,page5 = <1 0x0A02 2 0x9 1 0>; + qcom,pageen5 = <1 0x0A00 2 0x1 1 0>; + qcom,poll5 = <0 0x0 2 0 1 0>; + qcom,mem5 = <64 0x0A04 2 0 1 0>; + + qcom,page6 = <1 0x0A02 2 0xA 1 0>; + qcom,pageen6 = <1 0x0A00 2 0x1 1 0>; + qcom,poll6 = <0 0x0 2 0 1 0>; + qcom,mem6 = <64 0x0A04 2 0 1 0>; + + qcom,page7 = <1 0x0A02 2 0xE 1 0>; + qcom,pageen7 = <1 0x0A00 2 0x1 1 0>; + qcom,poll7 = <0 0x0 2 0 1 0>; + qcom,mem7 = <2 0x0A04 2 0 1 0>; + + cam_vdig-supply = <&pm8953_l23>; + cam_vana-supply = <&pm8953_l22>; + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_front1_sleep>; + gpios = <&tlmm 27 0>, + <&tlmm 129 0>, + <&tlmm 130 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", + "cam_vdig", "cam_vio", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <1 1 0 0 0 10 1 1>; + + status = "ok"; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom5: qcom,eeprom@5 { + cell-index = <5>; + reg = <0x5>; + compatible = "qcom,eeprom"; + qcom,cci-master = <1>; + + qcom,eeprom-name = "ofilm_s5k5e8"; + qcom,slave-addr = <0x5A>; + qcom,num-blocks = <8>; + + qcom,page0 = <1 0x0A02 2 0x4 1 0>; + qcom,pageen0 = <1 0x0A00 2 0x1 1 0>; + qcom,poll0 = <0 0x0 2 0 1 0>; + qcom,mem0 = <64 0x0A04 2 0 1 0>; + + qcom,page1 = <1 0x0A02 2 0x5 1 0>; + qcom,pageen1 = <1 0x0A00 2 0x1 1 0>; + qcom,poll1 = <0 0x0 2 0 1 0>; + qcom,mem1 = <64 0x0A04 2 0 1 0>; + + qcom,page2 = <1 0x0A02 2 0x6 1 0>; + qcom,pageen2 = <1 0x0A00 2 0x1 1 0>; + qcom,poll2 = <0 0x0 2 0 1 0>; + qcom,mem2 = <64 0x0A04 2 0 1 0>; + + qcom,page3 = <1 0x0A02 2 0x7 1 0>; + qcom,pageen3 = <1 0x0A00 2 0x1 1 0>; + qcom,poll3 = <0 0x0 2 0 1 0>; + qcom,mem3 = <64 0x0A04 2 0 1 0>; + + qcom,page4 = <1 0x0A02 2 0x8 1 0>; + qcom,pageen4 = <1 0x0A00 2 0x1 1 0>; + qcom,poll4 = <0 0x0 2 0 1 0>; + qcom,mem4 = <64 0x0A04 2 0 1 0>; + + qcom,page5 = <1 0x0A02 2 0x9 1 0>; + qcom,pageen5 = <1 0x0A00 2 0x1 1 0>; + qcom,poll5 = <0 0x0 2 0 1 0>; + qcom,mem5 = <64 0x0A04 2 0 1 0>; + + qcom,page6 = <1 0x0A02 2 0xA 1 0>; + qcom,pageen6 = <1 0x0A00 2 0x1 1 0>; + qcom,poll6 = <0 0x0 2 0 1 0>; + qcom,mem6 = <64 0x0A04 2 0 1 0>; + + qcom,page7 = <1 0x0A02 2 0xE 1 0>; + qcom,pageen7 = <1 0x0A00 2 0x1 1 0>; + qcom,poll7 = <0 0x0 2 0 1 0>; + qcom,mem7 = <2 0x0A04 2 0 1 0>; + + cam_vdig-supply = <&pm8953_l23>; + cam_vana-supply = <&pm8953_l22>; + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_front1_sleep>; + gpios = <&tlmm 27 0>, + <&tlmm 129 0>, + <&tlmm 130 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", + "cam_vdig", "cam_vio", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <1 1 0 0 0 10 1 1>; + + status = "ok"; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom6: qcom,eeprom@6 { + cell-index = <6>; + reg = <0x6>; + qcom,eeprom-name = "ofilm_imx258"; + compatible = "qcom,eeprom"; + + qcom,slave-addr = <0xB0>; + qcom,cci-master = <0>; + qcom,num-blocks = <8>; + + qcom,page0 = <0 0 0 0 0 0>; + qcom,poll0 = <0 0 0 0 0 0>; + qcom,saddr0 = <0xB0>; + qcom,mem0 = <1024 0x0000 2 0 1 0>; + + qcom,page1 = <0 0 0 0 0 0>; + qcom,poll1 = <0 0 0 0 0 0>; + qcom,saddr1 = <0xB0>; + qcom,mem1 = <1024 0x0400 2 0 1 0>; + + qcom,page2 = <0 0 0 0 0 0>; + qcom,poll2 = <0 0 0 0 0 0>; + qcom,saddr2 = <0xB0>; + qcom,mem2 = <1024 0x0800 2 0 1 0>; + + qcom,page3 = <0 0 0 0 0 0>; + qcom,poll3 = <0 0 0 0 0 0>; + qcom,saddr3 = <0xB0>; + qcom,mem3 = <1024 0x0C00 2 0 1 0>; + + qcom,page4 = <0 0 0 0 0 0>; + qcom,poll4 = <0 0 0 0 0 0>; + qcom,saddr4 = <0xB0>; + qcom,mem4 = <1024 0x1000 2 0 1 0>; + + qcom,page5 = <0 0 0 0 0 0>; + qcom,poll5 = <0 0 0 0 0 0>; + qcom,saddr5 = <0xB0>; + qcom,mem5 = <1024 0x1400 2 0 1 0>; + + qcom,page6 = <0 0 0 0 0 0>; + qcom,poll6 = <0 0 0 0 0 0>; + qcom,saddr6 = <0xB0>; + qcom,mem6 = <1024 0x1800 2 0 1 0>; + + qcom,page7 = <0 0 0 0 0 0>; + qcom,poll7 = <0 0 0 0 0 0>; + qcom,saddr7 = <0xB0>; + qcom,mem7 = <1024 0x1C00 2 0 1 0>; + + cam_vdig-supply = <&pm8953_l2>; + cam_vana-supply = <&pm8953_l22>; + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + gpios = <&tlmm 26 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", + "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; + + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom7: qcom,eeprom@7 { + cell-index = <7>; + reg = <0x7>; + qcom,eeprom-name = "qtech_imx258"; + compatible = "qcom,eeprom"; + + qcom,slave-addr = <0xA0>; + qcom,cci-master = <0>; + qcom,num-blocks = <8>; + + qcom,page0 = <0 0 0 0 0 0>; + qcom,poll0 = <0 0 0 0 0 0>; + qcom,saddr0 = <0xA0>; + qcom,mem0 = <1024 0x0000 2 0 1 0>; + + qcom,page1 = <0 0 0 0 0 0>; + qcom,poll1 = <0 0 0 0 0 0>; + qcom,saddr1 = <0xA0>; + qcom,mem1 = <1024 0x0400 2 0 1 0>; + + qcom,page2 = <0 0 0 0 0 0>; + qcom,poll2 = <0 0 0 0 0 0>; + qcom,saddr2 = <0xA0>; + qcom,mem2 = <1024 0x0800 2 0 1 0>; + + qcom,page3 = <0 0 0 0 0 0>; + qcom,poll3 = <0 0 0 0 0 0>; + qcom,saddr3 = <0xA0>; + qcom,mem3 = <1024 0x0C00 2 0 1 0>; + + qcom,page4 = <0 0 0 0 0 0>; + qcom,poll4 = <0 0 0 0 0 0>; + qcom,saddr4 = <0xA0>; + qcom,mem4 = <1024 0x1000 2 0 1 0>; + + qcom,page5 = <0 0 0 0 0 0>; + qcom,poll5 = <0 0 0 0 0 0>; + qcom,saddr5 = <0xA0>; + qcom,mem5 = <1024 0x1400 2 0 1 0>; + + qcom,page6 = <0 0 0 0 0 0>; + qcom,poll6 = <0 0 0 0 0 0>; + qcom,saddr6 = <0xA0>; + qcom,mem6 = <1024 0x1800 2 0 1 0>; + + qcom,page7 = <0 0 0 0 0 0>; + qcom,poll7 = <0 0 0 0 0 0>; + qcom,saddr7 = <0xA0>; + qcom,mem7 = <1024 0x1C00 2 0 1 0>; + + cam_vdig-supply = <&pm8953_l2>; + cam_vana-supply = <&pm8953_l22>; + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + gpios = <&tlmm 26 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", + "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; + + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom8: qcom,eeprom@8 { + cell-index = <8>; + reg = <0x8>; + qcom,eeprom-name = "sunny_imx258"; + compatible = "qcom,eeprom"; + + qcom,slave-addr = <0xB0>; + qcom,cci-master = <0>; + qcom,num-blocks = <8>; + + qcom,page0 = <0 0 0 0 0 0>; + qcom,poll0 = <0 0 0 0 0 0>; + qcom,saddr0 = <0xB0>; + qcom,mem0 = <1024 0x0000 2 0 1 0>; + + qcom,page1 = <0 0 0 0 0 0>; + qcom,poll1 = <0 0 0 0 0 0>; + qcom,saddr1 = <0xB0>; + qcom,mem1 = <1024 0x0400 2 0 1 0>; + + qcom,page2 = <0 0 0 0 0 0>; + qcom,poll2 = <0 0 0 0 0 0>; + qcom,saddr2 = <0xB0>; + qcom,mem2 = <1024 0x0800 2 0 1 0>; + + qcom,page3 = <0 0 0 0 0 0>; + qcom,poll3 = <0 0 0 0 0 0>; + qcom,saddr3 = <0xB0>; + qcom,mem3 = <1024 0x0C00 2 0 1 0>; + + qcom,page4 = <0 0 0 0 0 0>; + qcom,poll4 = <0 0 0 0 0 0>; + qcom,saddr4 = <0xB0>; + qcom,mem4 = <1024 0x1000 2 0 1 0>; + + qcom,page5 = <0 0 0 0 0 0>; + qcom,poll5 = <0 0 0 0 0 0>; + qcom,saddr5 = <0xB0>; + qcom,mem5 = <1024 0x1400 2 0 1 0>; + + qcom,page6 = <0 0 0 0 0 0>; + qcom,poll6 = <0 0 0 0 0 0>; + qcom,saddr6 = <0xB0>; + qcom,mem6 = <1024 0x1800 2 0 1 0>; + + qcom,page7 = <0 0 0 0 0 0>; + qcom,poll7 = <0 0 0 0 0 0>; + qcom,saddr7 = <0xB0>; + qcom,mem7 = <1024 0x1C00 2 0 1 0>; + + cam_vdig-supply = <&pm8953_l2>; + cam_vana-supply = <&pm8953_l22>; + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + gpios = <&tlmm 26 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", + "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; + + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom9: qcom,eeprom@9 { + cell-index = <9>; + reg = <0x9>; + qcom,eeprom-name = "qtech_ov13855"; + compatible = "qcom,eeprom"; + + qcom,slave-addr = <0xA0>; + qcom,cci-master = <0>; + qcom,num-blocks = <8>; + + qcom,page0 = <0 0 0 0 0 0>; + qcom,poll0 = <0 0 0 0 0 0>; + qcom,saddr0 = <0xA0>; + qcom,mem0 = <1024 0x0000 2 0 1 0>; + + qcom,page1 = <0 0 0 0 0 0>; + qcom,poll1 = <0 0 0 0 0 0>; + qcom,saddr1 = <0xA0>; + qcom,mem1 = <1024 0x0400 2 0 1 0>; + + qcom,page2 = <0 0 0 0 0 0>; + qcom,poll2 = <0 0 0 0 0 0>; + qcom,saddr2 = <0xA0>; + qcom,mem2 = <1024 0x0800 2 0 1 0>; + + qcom,page3 = <0 0 0 0 0 0>; + qcom,poll3 = <0 0 0 0 0 0>; + qcom,saddr3 = <0xA0>; + qcom,mem3 = <1024 0x0C00 2 0 1 0>; + + qcom,page4 = <0 0 0 0 0 0>; + qcom,poll4 = <0 0 0 0 0 0>; + qcom,saddr4 = <0xA0>; + qcom,mem4 = <1024 0x1000 2 0 1 0>; + + qcom,page5 = <0 0 0 0 0 0>; + qcom,poll5 = <0 0 0 0 0 0>; + qcom,saddr5 = <0xA0>; + qcom,mem5 = <1024 0x1400 2 0 1 0>; + + qcom,page6 = <0 0 0 0 0 0>; + qcom,poll6 = <0 0 0 0 0 0>; + qcom,saddr6 = <0xA0>; + qcom,mem6 = <1024 0x1800 2 0 1 0>; + + qcom,page7 = <0 0 0 0 0 0>; + qcom,poll7 = <0 0 0 0 0 0>; + qcom,saddr7 = <0xA0>; + qcom,mem7 = <1024 0x1C00 2 0 1 0>; + + cam_vdig-supply = <&pm8953_l2>; + cam_vana-supply = <&pm8953_l22>; + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; + qcom,cam-vreg-type = <0 1 0 0>; + qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + gpios = <&tlmm 26 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", + "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; + + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <90>; + qcom,eeprom-src = <&eeprom0 &eeprom1 &eeprom2 &eeprom6 &eeprom7 &eeprom8 &eeprom9>; + qcom,actuator-src = <&actuator0>; + qcom,led-flash-src = <&led_flash0>; + cam_vdig-supply = <&pm8953_l2>; + cam_vio-supply = <&pm8953_l6>; + cam_vana-supply = <&pm8953_l22>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 0 2800000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000>; + qcom,cam-vreg-op-mode = <200000 0 80000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep + &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x02>; + qcom,csiphy-sd-index = <2>; + qcom,csid-sd-index = <2>; + qcom,mount-angle = <270>; + qcom,eeprom-src = <&eeprom3 &eeprom4 &eeprom5>; + cam_vdig-supply = <&pm8953_l23>; + cam_vana-supply = <&pm8953_l22>; + cam_vio-supply = <&pm8953_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 0 2800000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 27 0>, + <&tlmm 129 0>, + <&tlmm 130 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <1>; + status = "ok"; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-cdp.dtsi b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-cdp.dtsi new file mode 100644 index 0000000000000..ab36502b8f41e --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-cdp.dtsi @@ -0,0 +1,269 @@ +/* + * Copyright (c) 2015-2017, 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 "msm8953-pinctrl.dtsi" +#include "../../../msm8953-audio-cdp.dtsi" +#include "../../../msm8953-camera-sensor-cdp.dtsi" + +&spi_3 { /* BLSP1 QUP3 */ + spi-max-frequency = <8000000>; + maxim_sti@0 { + status = "disabled"; + compatible = "maxim,maxim_sti"; + reg = <0>; + interrupt-parent = <&tlmm>; + interrupts = <65 0>; + spi-max-frequency = <8000000>; + avdd-supply = <&pm8953_l10>; + dvdd-supply = <&pm8953_l5>; + maxim_sti,irq-gpio = <&tlmm 65 0x00>; + maxim_sti,reset-gpio = <&tlmm 64 0x00>; + maxim_sti,touch_fusion = "/vendor/bin/touch_fusion"; + maxim_sti,config_file = "/etc/firmware/qtc800s.cfg"; + maxim_sti,fw_name = "qtc800s.bin"; + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + }; +}; + +&i2c_5 { /* BLSP2 QUP1 (NFC) */ + nq@28 { + compatible = "qcom,nq-nci"; + reg = <0x28>; + qcom,nq-irq = <&tlmm 17 0x00>; + qcom,nq-ven = <&tlmm 16 0x00>; + qcom,nq-firm = <&tlmm 62 0x00>; + qcom,nq-clkreq = <&pm8953_gpios 2 0x00>; + interrupt-parent = <&tlmm>; + qcom,clk-src = "BBCLK2"; + interrupts = <17 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"; + }; +}; + +&pm8953_l10 { + regulator-max-microvolt = <2850000>; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + pinctrl-names = "tlmm_gpio_key_active","tlmm_gpio_key_suspend"; + pinctrl-0 = <&gpio_key_active>; + pinctrl-1 = <&gpio_key_suspend>; + + camera_focus { + label = "camera_focus"; + gpios = <&tlmm 87 0x1>; + linux,input-type = <1>; + linux,code = <0x210>; + debounce-interval = <15>; + }; + + camera_snapshot { + label = "camera_snapshot"; + gpios = <&tlmm 86 0x1>; + linux,input-type = <1>; + linux,code = <0x2fe>; + debounce-interval = <15>; + }; + + vol_up { + label = "volume_up"; + gpios = <&tlmm 85 0x1>; + linux,input-type = <1>; + linux,code = <115>; + debounce-interval = <15>; + }; + + home { + label = "home"; + gpios = <&tlmm 88 0x1>; + linux,input-type = <1>; + linux,code = <102>; + debounce-interval = <15>; + }; + }; + + hbtp { + compatible = "qcom,hbtp-input"; + vcc_ana-supply = <&pm8953_l10>; + vcc_dig-supply = <&pm8953_l5>; + qcom,afe-load = <50000>; + qcom,afe-vtg-min = <2850000>; + qcom,afe-vtg-max = <2850000>; + qcom,dig-load = <15000>; + qcom,dig-vtg-min = <1800000>; + qcom,dig-vtg-max = <1800000>; + }; +}; + +&tlmm { + tlmm_gpio_key { + gpio_key_active: gpio_key_active { + mux { + pins = "gpio85", "gpio86", "gpio87", "gpio88"; + function = "gpio"; + }; + + config { + pins = "gpio85", "gpio86", "gpio87", "gpio88"; + }; + }; + + gpio_key_suspend: gpio_key_suspend { + mux { + pins = "gpio85", "gpio86", "gpio87", "gpio88"; + function = "gpio"; + }; + + config { + pins = "gpio85", "gpio86", "gpio87", "gpio88"; + }; + }; + }; +}; + +&pmi_haptic{ + qcom,actuator-type = "lra"; + qcom,lra-auto-res-mode="qwd"; + qcom,lra-high-z="opt1"; + qcom,lra-res-cal-period = <0>; + qcom,wave-play-rate-us = <4165>; +}; + +&wled { + qcom,cons-sync-write-delay-us = <1000>; +}; + +&flash_led { + compatible = "qcom,qpnp-flash-led"; + reg = <0xd300 0x100>; + qcom,follow-otst2-rb-disabled; +}; + +#include "msm8953-mdss-panels.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "dual_dsi"; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&blsp1_uart0 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&sdhc_1 { + /* device core power supply */ + vdd-supply = <&pm8953_l8>; + qcom,vdd-voltage-level = <2900000 2900000>; + qcom,vdd-current-level = <200 570000>; + + /* device communication power supply */ + vdd-io-supply = <&pm8953_l5>; + qcom,vdd-io-always-on; + qcom,vdd-io-lpm-sup; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <200 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 100000000 192000000 + 384000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + /* device core power supply */ + vdd-supply = <&pm8953_l11>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <15000 800000>; + + /* device communication power supply */ + vdd-io-supply = <&pm8953_l12>; + 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>; + + #address-cells = <0>; + interrupt-parent = <&sdhc_2>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 125 0 + 1 &intc 0 221 0 + 2 &tlmm 133 0>; + interrupt-names = "hc_irq", "pwr_irq", "status_irq"; + cd-gpios = <&tlmm 133 0x1>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 + 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + status = "ok"; +}; + +&pmi8950_charger { +}; + +&pm8953_gpios { + /* GPIO 2 (NFC_CLK_REQ) */ + gpio@c100 { + qcom,mode = <0>; + qcom,output-type = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,out-strength = <3>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; + + /* GPIO 5 (ADV7533 DSI2HDMI) */ + gpio@c400 { + status = "ok"; + qcom,mode = <1>; + qcom,vin-sel = <0>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + qcom,out-strength = <2>; + }; + +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-mdss-panels.dtsi b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-mdss-panels.dtsi new file mode 100644 index 0000000000000..978ec5f91c9dc --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-mdss-panels.dtsi @@ -0,0 +1,83 @@ +/* Copyright (c) 2015-2017, 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 "../../device/dsi-panel-nt35532-fhd-video.dtsi" +#include "../../device/dsi-panel-nt35596-fhd-video.dtsi" +#include "../../device/dsi-panel-nt35596-tianma-fhd-video.dtsi" + +&soc { + dsi_panel_pwr_supply: dsi_panel_pwr_supply { + #address-cells = <1>; + #size-cells = <0>; + + qcom,panel-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vdd"; + qcom,supply-min-voltage = <2850000>; + qcom,supply-max-voltage = <2850000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + }; + + qcom,panel-supply-entry@1 { + reg = <1>; + qcom,supply-name = "vddio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + }; + + qcom,panel-supply-entry@2 { + reg = <2>; + qcom,supply-name = "lab"; + qcom,supply-min-voltage = <4600000>; + qcom,supply-max-voltage = <6000000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + }; + + qcom,panel-supply-entry@3 { + reg = <3>; + qcom,supply-name = "ibb"; + qcom,supply-min-voltage = <4600000>; + qcom,supply-max-voltage = <6000000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + qcom,supply-post-on-sleep = <10>; + }; + }; +}; + +&dsi_nt35532_fhd_vid { + qcom,mdss-dsi-panel-timings-phy-v2 = [24 1f 08 09 05 03 04 a0 + 24 1f 08 09 05 03 04 a0 + 24 1f 08 09 05 03 04 a0 + 24 1f 08 09 05 03 04 a0 + 24 1b 08 09 05 03 04 a0]; +}; + +&dsi_nt35596_fhd_vid { + qcom,mdss-dsi-panel-timings-phy-v2 = [24 1f 08 09 05 03 04 a0 + 24 1f 08 09 05 03 04 a0 + 24 1f 08 09 05 03 04 a0 + 24 1f 08 09 05 03 04 a0 + 24 1b 08 08 05 03 04 a0]; +}; + +&dsi_nt35596_tianma_fhd_vid { + qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 08 09 05 03 04 a0 + 23 1e 08 09 05 03 04 a0 + 23 1e 08 09 05 03 04 a0 + 23 1e 08 09 05 03 04 a0 + 23 1a 08 09 05 03 04 a0]; +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-mdss-pll.dtsi b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-mdss-pll.dtsi new file mode 100644 index 0000000000000..f291a4caa0334 --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-mdss-pll.dtsi @@ -0,0 +1,80 @@ +/* Copyright (c) 2015-2016, 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. + */ + +&soc { + mdss_dsi0_pll: qcom,mdss_dsi_pll@994400 { + compatible = "qcom,mdss_dsi_pll_8953"; + label = "MDSS DSI 0 PLL"; + cell-index = <0>; + #clock-cells = <1>; + + reg = <0x01a94400 0x588>, + <0x0184d074 0x8>, + <0x01a94200 0x98>; + reg-names = "pll_base", "gdsc_base", "dynamic_pll_base"; + + gdsc-supply = <&gdsc_mdss>; + + clocks = <&clock_gcc clk_gcc_mdss_ahb_clk>; + clock-names = "iface_clk"; + clock-rate = <0>; + + /* Memory region for passing dynamic refresh pll codes */ + memory-region = <&dfps_data_mem>; + + qcom,platform-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,platform-supply-entry@0 { + reg = <0>; + qcom,supply-name = "gdsc"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + }; + }; + + mdss_dsi1_pll: qcom,mdss_dsi_pll@996400 { + compatible = "qcom,mdss_dsi_pll_8953"; + label = "MDSS DSI 1 PLL"; + cell-index = <1>; + #clock-cells = <1>; + + reg = <0x01a96400 0x588>, + <0x0184d074 0x8>, + <0x01a96200 0x98>; + reg-names = "pll_base", "gdsc_base", "dynamic_pll_base"; + + gdsc-supply = <&gdsc_mdss>; + + clocks = <&clock_gcc clk_gcc_mdss_ahb_clk>; + clock-names = "iface_clk"; + clock-rate = <0>; + + qcom,platform-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,platform-supply-entry@0 { + reg = <0>; + qcom,supply-name = "gdsc"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-mtp.dtsi b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-mtp.dtsi new file mode 100644 index 0000000000000..8eca934501a65 --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-mtp.dtsi @@ -0,0 +1,233 @@ +/* + * Copyright (c) 2015-2017, 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 "msm8953-pinctrl.dtsi" +#include "../../../msm8953-audio-mtp.dtsi" +#include "../../../msm8953-camera-sensor-mtp.dtsi" + +&spi_3 { /* BLSP1 QUP3 */ + spi-max-frequency = <16000000>; + maxim_sti@0 { + status = "disabled"; + compatible = "maxim,maxim_sti"; + reg = <0>; + interrupt-parent = <&tlmm>; + interrupts = <65 0>; + spi-max-frequency = <16000000>; + avdd-supply = <&pm8953_l10>; + dvdd-supply = <&pm8953_l5>; + maxim_sti,irq-gpio = <&tlmm 65 0x00>; + maxim_sti,reset-gpio = <&tlmm 64 0x00>; + maxim_sti,touch_fusion = "/vendor/bin/touch_fusion"; + maxim_sti,config_file = "/etc/firmware/qtc800s.cfg"; + maxim_sti,fw_name = "qtc800s.bin"; + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + }; +}; + +&i2c_5 { /* BLSP2 QUP1 (NFC) */ + nq@28 { + compatible = "qcom,nq-nci"; + reg = <0x28>; + qcom,nq-irq = <&tlmm 17 0x00>; + qcom,nq-ven = <&tlmm 16 0x00>; + qcom,nq-firm = <&tlmm 62 0x00>; + qcom,nq-clkreq = <&pm8953_gpios 2 0x00>; + interrupt-parent = <&tlmm>; + qcom,clk-src = "BBCLK2"; + interrupts = <17 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"; + }; +}; + +&pm8953_l10 { + regulator-max-microvolt = <2850000>; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + pinctrl-names = "tlmm_gpio_key_active","tlmm_gpio_key_suspend"; + pinctrl-0 = <&gpio_key_active>; + pinctrl-1 = <&gpio_key_suspend>; + + camera_focus { + label = "camera_focus"; + gpios = <&tlmm 87 0x1>; + linux,input-type = <1>; + linux,code = <0x210>; + debounce-interval = <15>; + }; + + camera_snapshot { + label = "camera_snapshot"; + gpios = <&tlmm 86 0x1>; + linux,input-type = <1>; + linux,code = <0x2fe>; + debounce-interval = <15>; + }; + + vol_up { + label = "volume_up"; + gpios = <&tlmm 85 0x1>; + linux,input-type = <1>; + linux,code = <115>; + debounce-interval = <15>; + }; + }; + + hbtp { + compatible = "qcom,hbtp-input"; + vcc_ana-supply = <&pm8953_l10>; + vcc_dig-supply = <&pm8953_l5>; + qcom,afe-load = <50000>; + qcom,afe-vtg-min = <2850000>; + qcom,afe-vtg-max = <2850000>; + qcom,dig-load = <15000>; + qcom,dig-vtg-min = <1800000>; + qcom,dig-vtg-max = <1800000>; + }; +}; + +&pmi_haptic{ + qcom,actuator-type = "lra"; + qcom,lra-auto-res-mode="qwd"; + qcom,lra-high-z="opt1"; + qcom,lra-res-cal-period = <0>; + qcom,wave-play-rate-us = <4165>; +}; + +&wled { + qcom,cons-sync-write-delay-us = <1000>; +}; + +&flash_led { + compatible = "qcom,qpnp-flash-led"; + reg = <0xd300 0x100>; + qcom,follow-otst2-rb-disabled; +}; + +#include "msm8953-mdss-panels.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "single_dsi"; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&blsp1_uart0 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&mem_client_3_size { + qcom,peripheral-size = <0x500000>; +}; + +&sdhc_1 { + /* device core power supply */ + vdd-supply = <&pm8953_l8>; + qcom,vdd-voltage-level = <2900000 2900000>; + qcom,vdd-current-level = <200 570000>; + + /* device communication power supply */ + vdd-io-supply = <&pm8953_l5>; + qcom,vdd-io-always-on; + qcom,vdd-io-lpm-sup; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <200 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 100000000 192000000 + 384000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + /* device core power supply */ + vdd-supply = <&pm8953_l11>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <15000 800000>; + + /* device communication power supply */ + vdd-io-supply = <&pm8953_l12>; + 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>; + + #address-cells = <0>; + interrupt-parent = <&sdhc_2>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 125 0 + 1 &intc 0 221 0 + 2 &tlmm 133 0>; + interrupt-names = "hc_irq", "pwr_irq", "status_irq"; + cd-gpios = <&tlmm 133 0x1>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 + 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + status = "ok"; +}; + +&pmi8950_fg { + qcom,battery-data = <&mtp_batterydata>; +}; + +&pmi8950_charger { + qcom,battery-data = <&mtp_batterydata>; +}; + +&pm8953_gpios { + /* GPIO 2 (NFC_CLK_REQ) */ + gpio@c100 { + qcom,mode = <0>; + qcom,output-type = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,out-strength = <3>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-pinctrl.dtsi b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-pinctrl.dtsi new file mode 100644 index 0000000000000..9f6f43b900f7a --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-pinctrl.dtsi @@ -0,0 +1,1604 @@ +/* + * Copyright (c) 2015-2016, 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. + */ + +&soc { + tlmm: pinctrl@1000000 { + compatible = "qcom,msm8953-pinctrl"; + reg = <0x1000000 0x300000>; + interrupts = <0 208 0>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + + pmx-uartconsole { + uart_console_active: uart_console_active { + mux { + pins = "gpio4", "gpio5"; + function = "blsp_uart2"; + }; + + config { + pins = "gpio4", "gpio5"; + drive-strength = <2>; + bias-disable; + }; + }; + + uart_console_sleep: uart_console_sleep { + mux { + pins = "gpio4", "gpio5"; + function = "blsp_uart2"; + }; + + config { + pins = "gpio4", "gpio5"; + drive-strength = <2>; + bias-pull-down; + }; + }; + + }; + cci { + cci0_active: cci0_active { + /* cci0 active state */ + mux { + /* CLK, DATA */ + pins = "gpio29", "gpio30"; + function = "cci_i2c"; + }; + + config { + pins = "gpio29", "gpio30"; + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cci0_suspend: cci0_suspend { + /* cci0 suspended state */ + mux { + /* CLK, DATA */ + pins = "gpio29", "gpio30"; + function = "cci_i2c"; + }; + + config { + pins = "gpio29", "gpio30"; + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cci1_active: cci1_active { + /* cci1 active state */ + mux { + /* CLK, DATA */ + pins = "gpio31", "gpio32"; + function = "cci_i2c"; + }; + + config { + pins = "gpio31", "gpio32"; + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cci1_suspend: cci1_suspend { + /* cci1 suspended state */ + mux { + /* CLK, DATA */ + pins = "gpio31", "gpio32"; + function = "cci_i2c"; + }; + + config { + pins = "gpio31", "gpio32"; + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + }; + + /*sensors */ + cam_sensor_mclk0_default: cam_sensor_mclk0_default { + /* MCLK0 */ + mux { + /* CLK, DATA */ + pins = "gpio26"; + function = "cam_mclk"; + }; + + config { + pins = "gpio26"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_sleep: cam_sensor_mclk0_sleep { + /* MCLK0 */ + mux { + /* CLK, DATA */ + pins = "gpio26"; + function = "cam_mclk"; + }; + + config { + pins = "gpio26"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_rear_default: cam_sensor_rear_default { + /* RESET, STANDBY */ + mux { + pins = "gpio40", "gpio39"; + function = "gpio"; + }; + + config { + pins = "gpio40","gpio39"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_rear_sleep: cam_sensor_rear_sleep { + /* RESET, STANDBY */ + mux { + pins = "gpio40","gpio39"; + function = "gpio"; + }; + + config { + pins = "gpio40","gpio39"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_rear_vana: cam_sensor_rear_vdig { + /* VDIG */ + mux { + pins = "gpio134"; + function = "gpio"; + }; + + config { + pins = "gpio134"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_rear_vana_sleep: cam_sensor_rear_vdig_sleep { + /* VDIG */ + mux { + pins = "gpio134"; + function = "gpio"; + }; + + config { + pins = "gpio134"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_default: cam_sensor_mclk1_default { + /* MCLK1 */ + mux { + /* CLK, DATA */ + pins = "gpio27"; + function = "cam_mclk"; + }; + + config { + pins = "gpio27"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_sleep: cam_sensor_mclk1_sleep { + /* MCLK1 */ + mux { + /* CLK, DATA */ + pins = "gpio27"; + function = "cam_mclk"; + }; + + config { + pins = "gpio27"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_default: cam_sensor_front_default { + /* RESET, STANDBY */ + mux { + pins = "gpio131","gpio132"; + function = "gpio"; + }; + + config { + pins = "gpio131","gpio132"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_sleep: cam_sensor_front_sleep { + /* RESET, STANDBY */ + mux { + pins = "gpio131","gpio132"; + function = "gpio"; + }; + + config { + pins = "gpio131","gpio132"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk2_default: cam_sensor_mclk2_default { + /* MCLK2 */ + mux { + /* CLK, DATA */ + pins = "gpio28"; + function = "cam_mclk"; + }; + + config { + pins = "gpio28"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk2_sleep: cam_sensor_mclk2_sleep { + /* MCLK2 */ + mux { + /* CLK, DATA */ + pins = "gpio28"; + function = "cam_mclk"; + }; + + config { + pins = "gpio28"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front1_default: cam_sensor_front1_default { + /* RESET, STANDBY */ + mux { + pins = "gpio129", "gpio130"; + function = "gpio"; + }; + + config { + pins = "gpio129", "gpio130"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front1_sleep: cam_sensor_front1_sleep { + /* RESET, STANDBY */ + mux { + pins = "gpio129", "gpio130"; + function = "gpio"; + }; + + config { + pins = "gpio129", "gpio130"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + pmx_adv7533_int: pmx_adv7533_int { + adv7533_int_active: adv7533_int_active { + mux { + pins = "gpio90"; + function = "gpio"; + }; + + config { + pins = "gpio90"; + drive-strength = <16>; + bias-disable; + }; + }; + + adv7533_int_suspend: adv7533_int_suspend { + mux { + pins = "gpio90"; + function = "gpio"; + }; + + config { + pins = "gpio90"; + drive-strength = <16>; + bias-disable; + }; + }; + + }; + + pmx_mdss: pmx_mdss { + mdss_dsi_active: mdss_dsi_active { + mux { + pins = "gpio61", "gpio59"; + function = "gpio"; + }; + + config { + pins = "gpio61", "gpio59"; + drive-strength = <8>; /* 8 mA */ + bias-disable = <0>; /* no pull */ + output-high; + }; + }; + + mdss_dsi_suspend: mdss_dsi_suspend { + mux { + pins = "gpio61", "gpio59"; + function = "gpio"; + }; + + config { + pins = "gpio61", "gpio59"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + }; + + pmx_mdss_te { + mdss_te_active: mdss_te_active { + mux { + pins = "gpio24"; + function = "gpio"; + }; + config { + pins = "gpio24"; + drive-strength = <2>; /* 8 mA */ + bias-pull-down; /* pull down*/ + }; + }; + + mdss_te_suspend: mdss_te_suspend { + mux { + pins = "gpio24"; + function = "gpio"; + }; + config { + pins = "gpio24"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + }; + + hsuart_active: default { + mux { + pins = "gpio12", "gpio13", "gpio14", "gpio15"; + function = "blsp_uart4"; + }; + + config { + pins = "gpio12", "gpio13", "gpio14", "gpio15"; + drive-strength = <16>; + bias-disable; + }; + }; + + hsuart_sleep: sleep { + mux { + pins = "gpio12", "gpio13", "gpio14", "gpio15"; + function = "gpio"; + }; + + config { + pins = "gpio12", "gpio13", "gpio14", "gpio15"; + drive-strength = <2>; + bias-disable; + }; + }; + + /* SDC pin type */ + sdc1_clk_on: sdc1_clk_on { + config { + pins = "sdc1_clk"; + bias-disable; /* NO pull */ + drive-strength = <16>; /* 16 MA */ + }; + }; + + sdc1_clk_off: sdc1_clk_off { + config { + pins = "sdc1_clk"; + bias-disable; /* NO pull */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc1_cmd_on: sdc1_cmd_on { + config { + pins = "sdc1_cmd"; + bias-pull-up; /* pull up */ + drive-strength = <10>; /* 10 MA */ + }; + }; + + sdc1_cmd_off: sdc1_cmd_off { + config { + pins = "sdc1_cmd"; + num-grp-pins = <1>; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc1_data_on: sdc1_data_on { + config { + pins = "sdc1_data"; + bias-pull-up; /* pull up */ + drive-strength = <10>; /* 10 MA */ + }; + }; + + sdc1_data_off: sdc1_data_off { + config { + pins = "sdc1_data"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc1_rclk_on: sdc1_rclk_on { + config { + pins = "sdc1_rclk"; + bias-pull-down; /* pull down */ + }; + }; + + sdc1_rclk_off: sdc1_rclk_off { + config { + pins = "sdc1_rclk"; + bias-pull-down; /* pull down */ + }; + }; + + sdc2_clk_on: sdc2_clk_on { + config { + pins = "sdc2_clk"; + drive-strength = <16>; /* 16 MA */ + bias-disable; /* NO pull */ + }; + }; + + sdc2_clk_off: sdc2_clk_off { + config { + pins = "sdc2_clk"; + bias-disable; /* NO pull */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc2_cmd_on: sdc2_cmd_on { + config { + pins = "sdc2_cmd"; + bias-pull-up; /* pull up */ + drive-strength = <10>; /* 10 MA */ + }; + }; + + sdc2_cmd_off: sdc2_cmd_off { + config { + pins = "sdc2_cmd"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc2_data_on: sdc2_data_on { + config { + pins = "sdc2_data"; + bias-pull-up; /* pull up */ + drive-strength = <10>; /* 10 MA */ + }; + }; + + sdc2_data_off: sdc2_data_off { + config { + pins = "sdc2_data"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc2_cd_on: cd_on { + mux { + pins = "gpio133"; + function = "gpio"; + }; + + config { + pins = "gpio133"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + sdc2_cd_off: cd_off { + mux { + pins = "gpio133"; + function = "gpio"; + }; + + config { + pins = "gpio133"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_2 { + i2c_2_active: i2c_2_active { + /* active state */ + mux { + pins = "gpio6", "gpio7"; + function = "blsp_i2c2"; + }; + + config { + pins = "gpio6", "gpio7"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_2_sleep: i2c_2_sleep { + /* suspended state */ + mux { + pins = "gpio6", "gpio7"; + function = "gpio"; + }; + + config { + pins = "gpio6", "gpio7"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + i2c_3 { + i2c_3_active: i2c_3_active { + /* active state */ + mux { + pins = "gpio10", "gpio11"; + function = "blsp_i2c3"; + }; + + config { + pins = "gpio10", "gpio11"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_3_sleep: i2c_3_sleep { + /* suspended state */ + mux { + pins = "gpio10", "gpio11"; + function = "gpio"; + }; + + config { + pins = "gpio10", "gpio11"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + i2c_5 { + i2c_5_active: i2c_5_active { + /* active state */ + mux { + pins = "gpio18", "gpio19"; + function = "blsp_i2c5"; + }; + + config { + pins = "gpio18", "gpio19"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_5_sleep: i2c_5_sleep { + /* suspended state */ + mux { + pins = "gpio18", "gpio19"; + function = "gpio"; + }; + + config { + pins = "gpio18", "gpio19"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + goodix_spi_active: goodix_spi_active{ + mux { + pins = "gpio135", "gpio136", "gpio137", "gpio138"; + function = "blsp_spi6"; + }; + config { + pins = "gpio135", "gpio136", "gpio137", "gpio138"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + goodix_reset_reset: goodix_reset_reset{ + mux { + pins = "gpio140"; + function = "gpio"; + }; + config { + pins = "gpio140"; + drive-strength = <2>; + bias-disable = <0>; + output-low; + }; + }; + goodix_reset_active: goodix_reset_active{ + mux { + pins = "gpio140"; + function = "gpio"; + }; + config { + pins = "gpio140"; + drive-strength = <2>; + bias-disable = <0>; + output-high; + }; + }; + goodix_irq_active: goodix_irq_active { + mux { + pins = "gpio48"; + function = "gpio"; + }; + config { + pins = "gpio48"; + drive-strength = <2>; + bias-disable = <0>; + input-enable; + }; + }; + + /* fingerprint pin function */ + fpc_spi_active: fpc_spi_active { + mux { + pins = "gpio135", "gpio136", "gpio137", "gpio138"; + function = "blsp_spi7"; + }; + + config { + pins = "gpio135", "gpio136", "gpio137", "gpio138"; + drive-strength = <2>; + bias-disable; + }; + }; + fpc_reset_reset: fpc_reset_reset { + mux { + pins = "gpio140"; + function = "gpio"; + }; + config { + pins = "gpio140"; + drive-strength = <2>; + bias-disable; + output-low; + }; + }; + fpc_reset_active: fpc_reset_active { + mux { + pins = "gpio140"; + function = "gpio"; + }; + config { + pins = "gpio140"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; + fpc_irq_active: fpc_irq_active { + mux { + pins = "gpio48"; + function = "gpio"; + }; + config { + pins = "gpio48"; + drive-strength = <2>; + bias-disable; + input-enable; + }; + }; + + pmx_rd_nfc_int { + /*qcom,pins = <&gp 17>;*/ + pins = "gpio17"; + qcom,pin-func = <0>; + qcom,num-grp-pins = <1>; + label = "pmx_nfc_int"; + + nfc_int_active: active { + drive-strength = <6>; + bias-pull-up; + }; + + nfc_int_suspend: suspend { + drive-strength = <6>; + bias-pull-up; + }; + }; + + pmx_nfc_reset { + /*qcom,pins = <&gp 16>;*/ + pins = "gpio16"; + qcom,pin-func = <0>; + qcom,num-grp-pins = <1>; + label = "pmx_nfc_disable"; + + nfc_disable_active: active { + drive-strength = <6>; + bias-pull-up; + }; + + nfc_disable_suspend: suspend { + drive-strength = <6>; + bias-disable; + }; + }; + + wcnss_pmux_5wire { + /* Active configuration of bus pins */ + wcnss_default: wcnss_default { + wcss_wlan2 { + pins = "gpio76"; + function = "wcss_wlan2"; + }; + wcss_wlan1 { + pins = "gpio77"; + function = "wcss_wlan1"; + }; + wcss_wlan0 { + pins = "gpio78"; + function = "wcss_wlan0"; + }; + wcss_wlan { + pins = "gpio79", "gpio80"; + function = "wcss_wlan"; + }; + + config { + pins = "gpio76", "gpio77", + "gpio78", "gpio79", + "gpio80"; + drive-strength = <6>; /* 6 MA */ + bias-pull-up; /* PULL UP */ + }; + }; + + wcnss_sleep: wcnss_sleep { + wcss_wlan2 { + pins = "gpio76"; + function = "wcss_wlan2"; + }; + wcss_wlan1 { + pins = "gpio77"; + function = "wcss_wlan1"; + }; + wcss_wlan0 { + pins = "gpio78"; + function = "wcss_wlan0"; + }; + wcss_wlan { + pins = "gpio79", "gpio80"; + function = "wcss_wlan"; + }; + + config { + pins = "gpio76", "gpio77", + "gpio78", "gpio79", + "gpio80"; + drive-strength = <2>; /* 2 MA */ + bias-pull-down; /* PULL Down */ + }; + }; + }; + + wcnss_pmux_gpio: wcnss_pmux_gpio { + wcnss_gpio_default: wcnss_gpio_default { + /* Active configuration of bus pins */ + mux { + /* Uses general purpose pins */ + pins = "gpio76", "gpio77", + "gpio78", "gpio79", + "gpio80"; + function = "gpio"; + }; + + config { + pins = "gpio76", "gpio77", + "gpio78", "gpio79", + "gpio80"; + drive-strength = <6>; /* 6 MA */ + bias-pull-up; /* PULL UP */ + }; + }; + }; + + wcd9xxx_intr { + wcd_intr_default: wcd_intr_default{ + mux { + pins = "gpio73"; + function = "gpio"; + }; + + config { + pins = "gpio73"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + input-enable; + }; + }; + }; + + cdc_reset_ctrl { + cdc_reset_sleep: cdc_reset_sleep { + mux { + pins = "gpio67"; + function = "gpio"; + }; + config { + pins = "gpio67"; + drive-strength = <16>; + bias-disable; + output-low; + }; + }; + cdc_reset_active:cdc_reset_active { + mux { + pins = "gpio67"; + function = "gpio"; + }; + config { + pins = "gpio67"; + drive-strength = <16>; + bias-pull-down; + output-high; + }; + }; + }; + + cdc_mclk2_pin { + cdc_mclk2_sleep: cdc_mclk2_sleep { + mux { + pins = "gpio66"; + function = "pri_mi2s"; + }; + config { + pins = "gpio66"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + cdc_mclk2_active: cdc_mclk2_active { + mux { + pins = "gpio66"; + function = "pri_mi2s"; + }; + config { + pins = "gpio66"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + }; + + cdc-pdm-2-lines { + cdc_pdm_lines_2_act: pdm_lines_2_on { + mux { + pins = "gpio70", "gpio71", "gpio72"; + function = "cdc_pdm0"; + }; + + config { + pins = "gpio70", "gpio71", "gpio72"; + drive-strength = <8>; + }; + }; + + cdc_pdm_lines_2_sus: pdm_lines_2_off { + mux { + pins = "gpio70", "gpio71", "gpio72"; + function = "cdc_pdm0"; + }; + + config { + pins = "gpio70", "gpio71", "gpio72"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + cdc-pdm-lines { + cdc_pdm_lines_act: pdm_lines_on { + mux { + pins = "gpio69", "gpio73", "gpio74"; + function = "cdc_pdm0"; + }; + + config { + pins = "gpio69", "gpio73", "gpio74"; + drive-strength = <8>; + }; + }; + cdc_pdm_lines_sus: pdm_lines_off { + mux { + pins = "gpio69", "gpio73", "gpio74"; + function = "cdc_pdm0"; + }; + + config { + pins = "gpio69", "gpio73", "gpio74"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + cdc-pdm-comp-lines { + cdc_pdm_comp_lines_act: pdm_comp_lines_on { + mux { + pins = "gpio67", "gpio68"; + function = "cdc_pdm0"; + }; + + config { + pins = "gpio67", "gpio68"; + drive-strength = <8>; + }; + }; + + cdc_pdm_comp_lines_sus: pdm_comp_lines_off { + mux { + pins = "gpio67", "gpio68"; + function = "cdc_pdm0"; + }; + + config { + pins = "gpio67", "gpio68"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + cross-conn-det { + cross_conn_det_act: lines_on { + mux { + pins = "gpio63"; + function = "gpio"; + }; + + config { + pins = "gpio63"; + drive-strength = <8>; + output-low; + bias-pull-down; + }; + }; + + cross_conn_det_sus: lines_off { + mux { + pins = "gpio63"; + function = "gpio"; + }; + + config { + pins = "gpio63"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + /* WSA VI sense */ + wsa-vi { + wsa_vi_on: wsa_vi_on { + mux { + pins = "gpio94", "gpio95"; + function = "wsa_io"; + }; + + config { + pins = "gpio94", "gpio95"; + drive-strength = <8>; /* 8 MA */ + bias-disable; /* NO pull */ + }; + }; + + wsa_vi_off: wsa_vi_off { + mux { + pins = "gpio94", "gpio95"; + function = "wsa_io"; + }; + + config { + pins = "gpio94", "gpio95"; + drive-strength = <2>; /* 2 MA */ + bias-pull-down; + }; + }; + }; + + /* WSA Reset */ + wsa_reset { + wsa_reset_on: wsa_reset_on { + mux { + pins = "gpio96"; + function = "gpio"; + }; + + config { + pins = "gpio96"; + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + + wsa_reset_off: wsa_reset_off { + mux { + pins = "gpio96"; + function = "gpio"; + }; + + config { + pins = "gpio96"; + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + }; + + /* WSA CLK */ + wsa_clk { + wsa_clk_on: wsa_clk_on { + mux { + pins = "gpio25"; + function = "pri_mi2s_mclk_a"; + }; + + config { + pins = "gpio25"; + drive-strength = <8>; /* 8 MA */ + output-high; + }; + }; + + wsa_clk_off: wsa_clk_off { + mux { + pins = "gpio25"; + function = "pri_mi2s_mclk_a"; + }; + + config { + pins = "gpio25"; + drive-strength = <2>; /* 2 MA */ + output-low; + bias-pull-down; + }; + }; + }; + + pri-tlmm-lines { + pri_tlmm_lines_act: pri_tlmm_lines_act { + mux { + pins = "gpio91", "gpio93"; + function = "pri_mi2s"; + }; + + config { + pins = "gpio91", "gpio93"; + drive-strength = <8>; + }; + }; + + pri_tlmm_lines_sus: pri_tlmm_lines_sus { + mux { + pins = "gpio91", "gpio93"; + function = "pri_mi2s"; + }; + + config { + pins = "gpio91", "gpio93"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + pri-tlmm-ws-lines { + pri_tlmm_ws_act: pri_tlmm_ws_act { + mux { + pins = "gpio92"; + function = "pri_mi2s_ws"; + }; + + config { + pins = "gpio92"; + drive-strength = <8>; + }; + }; + + pri_tlmm_ws_sus: pri_tlmm_ws_sus { + mux { + pins = "gpio92"; + function = "pri_mi2s_ws"; + }; + + config { + pins = "gpio92"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + spi3 { + spi3_default: spi3_default { + /* active state */ + mux { + /* MOSI, MISO, CLK */ + pins = "gpio8", "gpio9", "gpio11"; + function = "blsp_spi3"; + }; + + config { + pins = "gpio8", "gpio9", "gpio11"; + drive-strength = <12>; /* 12 MA */ + bias-disable = <0>; /* No PULL */ + }; + }; + + spi3_sleep: spi3_sleep { + /* suspended state */ + mux { + /* MOSI, MISO, CLK */ + pins = "gpio8", "gpio9", "gpio11"; + function = "gpio"; + }; + + config { + pins = "gpio8", "gpio9", "gpio11"; + drive-strength = <2>; /* 2 MA */ + bias-pull-down; /* PULL Down */ + }; + }; + + spi3_cs0_active: cs0_active { + /* CS */ + mux { + pins = "gpio10"; + function = "blsp_spi3"; + }; + + config { + pins = "gpio10"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + + spi3_cs0_sleep: cs0_sleep { + /* CS */ + mux { + pins = "gpio10"; + function = "gpio"; + }; + + config { + pins = "gpio10"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + }; + + /* add pingrp for touchscreen */ + pmx_ts_int_active { + ts_int_active: ts_int_active { + mux { + pins = "gpio65"; + function = "gpio"; + }; + + config { + pins = "gpio65"; + drive-strength = <8>; + bias-pull-up; + }; + }; + }; + + pmx_ts_int_suspend { + ts_int_suspend: ts_int_suspend { + mux { + pins = "gpio65"; + function = "gpio"; + }; + + config { + pins = "gpio65"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + pmx_ts_reset_active { + ts_reset_active: ts_reset_active { + mux { + pins = "gpio64"; + function = "gpio"; + }; + + config { + pins = "gpio64"; + drive-strength = <8>; + bias-pull-up; + }; + }; + }; + + pmx_ts_reset_suspend { + ts_reset_suspend: ts_reset_suspend { + mux { + pins = "gpio64"; + function = "gpio"; + }; + + config { + pins = "gpio64"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + pmx_ts_release { + ts_release: ts_release { + mux { + pins = "gpio65", "gpio64"; + function = "gpio"; + }; + + config { + pins = "gpio65", "gpio64"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + tlmm_gpio_key { + gpio_key_active: gpio_key_active { + mux { + pins = "gpio85", "gpio86", "gpio87"; + function = "gpio"; + }; + + config { + pins = "gpio85", "gpio86", "gpio87"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + gpio_key_suspend: gpio_key_suspend { + mux { + pins = "gpio85", "gpio86", "gpio87"; + function = "gpio"; + }; + + config { + pins = "gpio85", "gpio86", "gpio87"; + drive-strength = <2>; + bias-pull-up; + }; + }; + }; + pmx_qdsd_clk { + qdsd_clk_sdcard: clk_sdcard { + config { + pins = "qdsd_clk"; + bias-disable;/* NO pull */ + drive-strength = <16>; /* 16 MA */ + }; + }; + qdsd_clk_trace: clk_trace { + config { + pins = "qdsd_clk"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_clk_swdtrc: clk_swdtrc { + config { + pins = "qdsd_clk"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_clk_spmi: clk_spmi { + config { + pins = "qdsd_clk"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + }; + + pmx_qdsd_cmd { + qdsd_cmd_sdcard: cmd_sdcard { + config { + pins = "qdsd_cmd"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_cmd_trace: cmd_trace { + config { + pins = "qdsd_cmd"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_cmd_swduart: cmd_uart { + config { + pins = "qdsd_cmd"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_cmd_swdtrc: cmd_swdtrc { + config { + pins = "qdsd_cmd"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_cmd_jtag: cmd_jtag { + config { + pins = "qdsd_cmd"; + bias-disable; /* NO pull */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_cmd_spmi: cmd_spmi { + config { + pins = "qdsd_cmd"; + bias-pull-down; /* pull down */ + drive-strength = <10>; /* 10 MA */ + }; + }; + }; + + pmx_qdsd_data0 { + qdsd_data0_sdcard: data0_sdcard { + config { + pins = "qdsd_data0"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data0_trace: data0_trace { + config { + pins = "qdsd_data0"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data0_swduart: data0_uart { + config { + pins = "qdsd_data0"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data0_swdtrc: data0_swdtrc { + config { + pins = "qdsd_data0"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data0_jtag: data0_jtag { + config { + pins = "qdsd_data0"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data0_spmi: data0_spmi { + config { + pins = "qdsd_data0"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + }; + + pmx_qdsd_data1 { + qdsd_data1_sdcard: data1_sdcard { + config { + pins = "qdsd_data1"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data1_trace: data1_trace { + config { + pins = "qdsd_data1"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data1_swduart: data1_uart { + config { + pins = "qdsd_data1"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data1_swdtrc: data1_swdtrc { + config { + pins = "qdsd_data1"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data1_jtag: data1_jtag { + config { + pins = "qdsd_data1"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + }; + + pmx_qdsd_data2 { + qdsd_data2_sdcard: data2_sdcard { + config { + pins = "qdsd_data2"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data2_trace: data2_trace { + config { + pins = "qdsd_data2"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data2_swduart: data2_uart { + config { + pins = "qdsd_data2"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data2_swdtrc: data2_swdtrc { + config { + pins = "qdsd_data2"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data2_jtag: data2_jtag { + config { + pins = "qdsd_data2"; + bias-pull-up; /* pull up */ + drive-strength = <8>; /* 8 MA */ + }; + }; + }; + + pmx_qdsd_data3 { + qdsd_data3_sdcard: data3_sdcard { + config { + pins = "qdsd_data3"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data3_trace: data3_trace { + config { + pins = "qdsd_data3"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data3_swduart: data3_uart { + config { + pins = "qdsd_data3"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data3_swdtrc: data3_swdtrc { + config { + pins = "qdsd_data3"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data3_jtag: data3_jtag { + config { + pins = "qdsd_data3"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data3_spmi: data3_spmi { + config { + pins = "qdsd_data3"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + }; + + typec_ssmux_config: typec_ssmux_config { + mux { + pins = "gpio139"; + function = "gpio"; + }; + + config { + pins = "gpio139"; + drive-strength = <2>; + bias-disable; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-pm.dtsi b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-pm.dtsi new file mode 100644 index 0000000000000..d30fe282fb356 --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-pm.dtsi @@ -0,0 +1,513 @@ +/* Copyright (c) 2015-2016, 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 + +&soc { + qcom,spm@b1d2000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0xb1d2000 0x1000>; + reg-names = "saw-base"; + qcom,name = "system-cci"; + qcom,saw2-ver-reg = <0xfd0>; + qcom,saw2-cfg = <0x14>; + qcom,saw2-spm-dly= <0x3C102800>; + qcom,saw2-spm-ctl = <0xe>; + qcom,saw2-avs-ctl = <0x10>; + qcom,cpu-vctl-list = <&CPU0 &CPU1 &CPU2 &CPU3 + &CPU4 &CPU5 &CPU6 &CPU7>; + qcom,vctl-timeout-us = <500>; + qcom,vctl-port = <0x0>; + qcom,phase-port = <0x1>; + qcom,pfm-port = <0x2>; + }; + + qcom,lpm-levels { + compatible = "qcom,lpm-levels"; + qcom,use-psci; + #address-cells = <1>; + #size-cells = <0>; + clock-names = "l2_clk", "cpu0_clk", "cpu1_clk", + "cpu2_clk", "cpu3_clk", "cpu4_clk", + "cpu5_clk", "cpu6_clk", "cpu7_clk"; + clocks = <&clock_cpu clk_cci_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>; + + qcom,pm-cluster@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + label = "system"; + qcom,spm-device-names = "cci"; + qcom,default-level=<0>; + qcom,psci-mode-shift = <8>; + qcom,psci-mode-mask = <0xf>; + + qcom,pm-cluster-level@0{ + reg = <0>; + label = "system-active"; + qcom,psci-mode = <0>; + qcom,latency-us = <423>; + qcom,ss-power = <349>; + qcom,energy-overhead = <299110>; + qcom,time-overhead = <719>; + }; + + qcom,pm-cluster-level@1{ + reg = <1>; + label = "system-wfi"; + qcom,psci-mode = <1>; + qcom,latency-us = <480>; + qcom,ss-power = <348>; + qcom,energy-overhead = <313989>; + qcom,time-overhead = <753>; + qcom,min-child-idx = <3>; + }; + + qcom,pm-cluster-level@2{ + reg = <2>; + label = "system-pc"; + qcom,psci-mode = <3>; + qcom,latency-us = <11027>; + qcom,ss-power = <340>; + qcom,energy-overhead = <616035>; + qcom,time-overhead = <1495>; + qcom,min-child-idx = <3>; + qcom,notify-rpm; + qcom,is-reset; + qcom,reset-level = ; + }; + + qcom,pm-cluster@0{ + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + label = "pwr"; + qcom,spm-device-names = "l2"; + qcom,default-level=<0>; + qcom,cpu = <&CPU0 &CPU1 &CPU2 &CPU3>; + qcom,psci-mode-shift = <4>; + qcom,psci-mode-mask = <0xf>; + + qcom,pm-cluster-level@0{ + reg = <0>; + label = "pwr-l2-wfi"; + qcom,psci-mode = <1>; + qcom,latency-us = <180>; + qcom,ss-power = <361>; + qcom,energy-overhead = <113215>; + qcom,time-overhead = <270>; + }; + + qcom,pm-cluster-level@1{ + reg = <1>; + label = "pwr-l2-retention"; + qcom,psci-mode = <3>; + qcom,latency-us = <188>; + qcom,ss-power = <360>; + qcom,energy-overhead = <121271>; + qcom,time-overhead = <307>; + qcom,min-child-idx = <1>; + qcom,reset-level = + ; + }; + + qcom,pm-cluster-level@2{ + reg = <2>; + label = "pwr-l2-gdhs"; + qcom,psci-mode = <4>; + qcom,latency-us = <212>; + qcom,ss-power = <354>; + qcom,energy-overhead = <150748>; + qcom,time-overhead = <363>; + qcom,min-child-idx = <1>; + qcom,reset-level = + ; + }; + + qcom,pm-cluster-level@3{ + reg = <3>; + label = "pwr-l2-pc"; + qcom,psci-mode = <5>; + qcom,latency-us = <421>; + qcom,ss-power = <350>; + qcom,energy-overhead = <277479>; + qcom,time-overhead = <690>; + qcom,min-child-idx = <1>; + qcom,is-reset; + qcom,reset-level = + ; + }; + + qcom,pm-cpu { + #address-cells = <1>; + #size-cells = <0>; + qcom,psci-mode-shift = <0>; + qcom,psci-mode-mask = <0xf>; + + qcom,pm-cpu-level@0 { + reg = <0>; + qcom,spm-cpu-mode = "wfi"; + qcom,psci-cpu-mode = <1>; + qcom,latency-us = <1>; + qcom,ss-power = <395>; + qcom,energy-overhead = <30424>; + qcom,time-overhead = <61>; + }; + + qcom,pm-cpu-level@1 { + reg = <1>; + qcom,spm-cpu-mode = "pc"; + qcom,psci-cpu-mode = <3>; + qcom,latency-us = <180>; + qcom,ss-power = <361>; + qcom,energy-overhead = <113215>; + qcom,time-overhead = <270>; + qcom,use-broadcast-timer; + qcom,is-reset; + qcom,reset-level = + ; + }; + }; + }; + + qcom,pm-cluster@1{ + reg = <1>; + #address-cells = <1>; + #size-cells = <0>; + label = "perf"; + qcom,spm-device-names = "l2"; + qcom,default-level=<0>; + qcom,cpu = <&CPU4 &CPU5 &CPU6 &CPU7>; + qcom,psci-mode-shift = <4>; + qcom,psci-mode-mask = <0xf>; + + qcom,pm-cluster-level@0{ + reg = <0>; + label = "perf-l2-wfi"; + qcom,psci-mode = <1>; + qcom,latency-us = <179>; + qcom,ss-power = <362>; + qcom,energy-overhead = <113242>; + qcom,time-overhead = <268>; + }; + + qcom,pm-cluster-level@1{ + reg = <1>; + label = "perf-l2-retention"; + qcom,psci-mode = <3>; + qcom,latency-us = <186>; + qcom,ss-power = <361>; + qcom,energy-overhead = <125982>; + qcom,time-overhead = <306>; + qcom,min-child-idx = <1>; + qcom,reset-level = + ; + }; + + qcom,pm-cluster-level@2{ + reg = <2>; + label = "perf-l2-gdhs"; + qcom,psci-mode = <4>; + qcom,latency-us = <210>; + qcom,ss-power = <355>; + qcom,energy-overhead = <155728>; + qcom,time-overhead = <361>; + qcom,min-child-idx = <1>; + qcom,reset-level = + ; + }; + + qcom,pm-cluster-level@3{ + reg = <3>; + label = "perf-l2-pc"; + qcom,psci-mode = <5>; + qcom,latency-us = <423>; + qcom,ss-power = <349>; + qcom,energy-overhead = <299110>; + qcom,time-overhead = <719>; + qcom,min-child-idx = <1>; + qcom,is-reset; + qcom,reset-level = + ; + }; + + qcom,pm-cpu { + #address-cells = <1>; + #size-cells = <0>; + qcom,psci-mode-shift = <0>; + qcom,psci-mode-mask = <0xf>; + + qcom,pm-cpu-level@0 { + reg = <0>; + qcom,spm-cpu-mode = "wfi"; + qcom,psci-cpu-mode = <1>; + qcom,latency-us = <1>; + qcom,ss-power = <397>; + qcom,energy-overhead = <30424>; + qcom,time-overhead = <61>; + }; + + qcom,pm-cpu-level@1 { + reg = <1>; + qcom,spm-cpu-mode = "pc"; + qcom,psci-cpu-mode = <3>; + qcom,latency-us = <179>; + qcom,ss-power = <362>; + qcom,energy-overhead = <113242>; + qcom,time-overhead = <268>; + qcom,use-broadcast-timer; + qcom,is-reset; + qcom,reset-level = + ; + }; + }; + }; + }; + }; + + qcom,mpm@601d4 { + compatible = "qcom,mpm-v2"; + reg = <0x601d4 0x1000>, /* MSM_RPM_MPM_BASE 4K */ + <0xb011008 0x4>; + reg-names = "vmpm", "ipc"; + interrupts = <0 171 1>; + clocks = <&clock_gcc clk_xo_lpm_clk>; + clock-names = "xo"; + qcom,ipc-bit-offset = <1>; + qcom,gic-parent = <&intc>; + qcom,num-mpm-irqs = <96>; + qcom,gic-map = <2 216>, /* tsens_upper_lower_int */ + <58 168>, /* qusb2phy_dmse_hv -> hs_phy_irq*/ + <49 168>, /* qusb2phy_dpse_hv -> hs_phy_irq*/ + <37 252>, /* qmp_usb3_lfps_rxterm_irq -> ss_phy_irq */ + <53 104>, /* mdss_irq */ + <88 222>, /* ee0_krait_hlos_spmi_periph_irq */ + <0xff 18>, /* APC_qgicQTmrSecPhysIrptReq */ + <0xff 19>, /* APC_qgicQTmrNonSecPhysIrptReq */ + <0xff 20>, /* qgicQTmrVirtIrptReq */ + <0xff 23>, /* apss_hm */ + <0xff 35>, /* WDT_barkInt */ + <0xff 39>, /* arch_mem_timer */ + <0xff 40>, /* qtmr_phy_irq[0] */ + <0xff 47>, /* rbif_irq[0] */ + <0xff 54>, /* gladiator-error */ + <0xff 56>, /* q6_wdog_expired_irq */ + <0xff 57>, /* mss_to_apps_irq(0) */ + <0xff 58>, /* mss_to_apps_irq(1) */ + <0xff 59>, /* mss_to_apps_irq(2) */ + <0xff 60>, /* mss_to_apps_irq(3) */ + <0xff 61>, /* mss_a2_bam_irq */ + <0xff 65>, /* o_gc_sys_irq[0] */ + <0xff 69>, /* vbif_irpt */ + <0xff 73>, /* app_tcu_gbl_flt_irpt_ns */ + <0xff 74>, /* smmu_bus_intr[2] */ + <0xff 75>, /* smmu_bus_intr[3] */ + <0xff 78>, /* smmu_bus_intr[5] */ + <0xff 79>, /* smmu_bus_intr[6] */ + <0xff 85>, /* smmu_bus_intr[31] */ + <0xff 86>, /* smmu_bus_intr[32] */ + <0xff 90>, /* smmu_bus_intr[33] */ + <0xff 92>, /* smmu_bus_intr[34] */ + <0xff 93>, /* smmu_bus_intr[35] */ + <0xff 97>, /* smmu_bus_intr[10] */ + <0xff 102>, /* smmu_bus_intr[14] */ + <0xff 108>, /* smmu_bus_intr[36] */ + <0xff 109>, /* smmu_bus_intr[37] */ + <0xff 112>, /* smmu_bus_intr[38] */ + <0xff 114>, /* qdsd_intr_out */ + <0xff 126>, /* app_tcu_cxt_irpt_vec[11] */ + <0xff 128>, /* blsp1_peripheral_irq[3] */ + <0xff 131>, /* qup_irq */ + <0xff 136>, /* app_tcu_cxt_irpt_vec[15] */ + <0xff 137>, /* app_tcu_cxt_irpt_vec[16] */ + <0xff 138>, /* app_tcu_cxt_irpt_vec[17] */ + <0xff 139>, /* uart_dm_intr */ + <0xff 140>, /* uart_dm_intr */ + <0xff 141>, /* app_tcu_cxt_irpt_vec[18] */ + <0xff 142>, /* smmu_bus_intr[47] */ + <0xff 143>, /* smmu_bus_intr[48] */ + <0xff 144>, /* smmu_bus_intr[49] */ + <0xff 145>, /* smmu_bus_intr[50] */ + <0xff 146>, /* smmu_bus_intr[51] */ + <0xff 147>, /* smmu_bus_intr[52] */ + <0xff 148>, /* smmu_bus_intr[53] */ + <0xff 149>, /* smmu_bus_intr[54] */ + <0xff 150>, /* smmu_bus_intr[55] */ + <0xff 151>, /* smmu_bus_intr[56] */ + <0xff 152>, /* smmu_bus_intr[57] */ + <0xff 153>, /* smmu_bus_intr[58] */ + <0xff 155>, /* sdc1_irq(0) */ + <0xff 157>, /* sdc2_irq(0) */ + <0xff 166>, /* usb30_pwr_evnt_irq */ + <0xff 167>, /* usb30_bam_irq[0] */ + <0xff 170>, /* sdc1_pwr_cmd_irq */ + <0xff 172>, /* usb30_ctrl_irq[0] */ + <0xff 173>, /* o_wcss_apss_smd_hi */ + <0xff 174>, /* o_wcss_apss_smd_med */ + <0xff 175>, /* o_wcss_apss_smd_low */ + <0xff 176>, /* o_wcss_apss_smsm_irq */ + <0xff 177>, /* o_wcss_apss_wlan_data_xfer_done */ + <0xff 178>, /* o_wcss_apss_wlan_rx_data_avail */ + <0xff 179>, /* o_wcss_apss_asic_intr */ + <0xff 181>, /* o_wcss_apss_wdog_bite_and_reset_rdy */ + <0xff 188>, /* lpass_irq_out_apcs(0) */ + <0xff 189>, /* lpass_irq_out_apcs(1) */ + <0xff 190>, /* lpass_irq_out_apcs(2) */ + <0xff 191>, /* lpass_irq_out_apcs(3) */ + <0xff 192>, /* lpass_irq_out_apcs(4) */ + <0xff 193>, /* lpass_irq_out_apcs(5) */ + <0xff 194>, /* lpass_irq_out_apcs(6) */ + <0xff 195>, /* lpass_irq_out_apcs(7) */ + <0xff 196>, /* lpass_irq_out_apcs(8) */ + <0xff 197>, /* lpass_irq_out_apcs(9) */ + <0xff 198>, /* coresight-tmc-etr interrupt */ + <0xff 200>, /* rpm_ipc(4) */ + <0xff 201>, /* rpm_ipc(5) */ + <0xff 202>, /* rpm_ipc(6) */ + <0xff 203>, /* rpm_ipc(7) */ + <0xff 204>, /* rpm_ipc(24) */ + <0xff 205>, /* rpm_ipc(25) */ + <0xff 206>, /* rpm_ipc(26) */ + <0xff 207>, /* rpm_ipc(27) */ + <0xff 212>, /* lpass_slimbus_bam_ee1_irq */ + <0xff 215>, /* o_bimc_intr[0] */ + <0xff 224>, /* spdm_realtime_irq[1] */ + <0xff 231>, /* arm-smmu global fault */ + <0xff 239>, /* crypto_bam_irq[1]*/ + <0xff 240>, /* summary_irq_kpss */ + <0xff 253>, /* sdc2_pwr_cmd_irq */ + <0xff 257>, /* osmmu_Cirpt[0] */ + <0xff 260>, /* ipa_irq[0] */ + <0xff 262>, /* ipa_bam_irq[0] */ + <0xff 263>, /* ipa_bam_irq[2] */ + <0xff 264>, /* arm-smmu context fault */ + <0xff 269>, /* rpm_wdog_expired_irq */ + <0xff 270>, /* blsp1_bam_irq[0] */ + <0xff 273>, /* smmu_bus_intr[18] */ + <0xff 274>, /* smmu_bus_intr[19] */ + <0xff 275>, /* rpm_ipc(30) */ + <0xff 276>, /* rpm_ipc(31) */ + <0xff 285>, /* app_tcu_cxt_irpt_vec[0] */ + <0xff 286>, /* app_tcu_cxt_irpt_vec[1] */ + <0xff 287>, /* app_tcu_cxt_irpt_vec[2] */ + <0xff 305>, /* L2_EXTERRIRQ_C0 */ + <0xff 306>, /* L2_EXTERRIRQ_C1 */ + <0xff 307>, /* L2_INTERRIRQ_C0 */ + <0xff 308>, /* L2_INTERRIRQ_C1 */ + <0xff 314>, /* CCISAW_svicInt */ + <0xff 321>, /* q6ss_irq_out(4) */ + <0xff 322>, /* q6ss_irq_out(5) */ + <0xff 323>, /* q6ss_irq_out(6) */ + <0xff 325>, /* q6ss_wdog_exp_irq */ + <0xff 344>, /* sdcc_ice_nonsec_level_irq */ + <0xff 346>; /* tsens_critical_int */ + + qcom,gpio-parent = <&tlmm>; + qcom,gpio-map = <3 38 >, + <4 1 >, + <5 5 >, + <6 9 >, + <8 37>, + <9 36>, + <10 13>, + <11 35>, + <12 17>, + <13 21>, + <14 54>, + <15 34>, + <16 31>, + <17 58>, + <18 28>, + <19 42>, + <20 25>, + <21 12>, + <22 43>, + <23 44>, + <24 45>, + <25 46>, + <26 48>, + <27 65>, + <28 93>, + <29 97>, + <30 63>, + <31 70>, + <32 71>, + <33 72>, + <34 81>, + <35 85>, + <36 90>, + <50 67>, + <51 73>, + <52 74>, + <53 62>, + <59 59>, + <60 60>, + <61 61>, + <62 86>, + <63 87>, + <64 91>, + <65 129>, + <66 130>, + <67 131>, + <68 132>, + <69 133>, + <70 137>, + <71 138>, + <72 139>, + <73 140>, + <74 141>, + <0xff 88>; + }; + + qcom,cpu-sleep-status{ + compatible = "qcom,cpu-sleep-status"; + }; + + qcom,rpm-log@29fc00 { + compatible = "qcom,rpm-log"; + reg = <0x29fc00 0x4000>; + qcom,rpm-addr-phys = <0x200000>; + qcom,offset-version = <4>; + qcom,offset-page-buffer-addr = <36>; + qcom,offset-log-len = <40>; + qcom,offset-log-len-mask = <44>; + qcom,offset-page-indices = <56>; + }; + + qcom,rpm-stats@200000 { + compatible = "qcom,rpm-stats"; + reg = <0x200000 0x1000>, + <0x290014 0x4>, + <0x29001c 0x4>; + reg-names = "phys_addr_base", "offset_addr", + "heap_phys_addrbase"; + qcom,sleep-stats-version = <2>; + }; + + qcom,rpm-master-stats@60150 { + compatible = "qcom,rpm-master-stats"; + reg = <0x60150 0x5000>; + qcom,masters = "APSS", "MPSS", "PRONTO", "TZ", "LPASS"; + qcom,master-stats-version = <2>; + qcom,master-offset = <4096>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-qrd-sku3.dtsi b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-qrd-sku3.dtsi new file mode 100644 index 0000000000000..89758f1525395 --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-qrd-sku3.dtsi @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2015-2016, 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 "msm8953-qrd.dtsi" + +&spmi_bus { + qcom,pmi8950@3 { + labibb: qpnp-labibb-regulator { + ibb_regulator: qcom,ibb@dc00 { + /delete-property/ + qcom,qpnp-ibb-use-default-voltage; + qcom,qpnp-ibb-init-lcd-voltage = <5700000>; + }; + + lab_regulator: qcom,lab@de00 { + /delete-property/ + qcom,qpnp-ibb-use-default-voltage; + qcom,qpnp-ibb-init-lcd-voltage = <5700000>; + }; + }; + }; +}; + +#include "msm8953-mdss-panels.dtsi" + +&tlmm { + pmx_mdss { + mdss_dsi_active: mdss_dsi_active { + mux { + pins = "gpio61"; + }; + config { + pins = "gpio61"; + }; + }; + mdss_dsi_suspend: mdss_dsi_suspend { + mux { + pins = "gpio61"; + }; + config { + pins = "gpio61"; + }; + }; + }; +}; + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "single_dsi"; +}; + +&mdss_dsi0 { + lab-supply = <&lab_regulator>; + ibb-supply = <&ibb_regulator>; + /delete-property/ vdd-supply; + + qcom,dsi-pref-prim-pan = <&dsi_nt35596_fhd_vid>; + 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 24 0>; + qcom,platform-reset-gpio = <&tlmm 61 0>; +}; + +&mdss_dsi1 { + status = "disabled"; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&dsi_nt35532_fhd_vid { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + +}; + +&dsi_nt35596_fhd_vid { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + +}; + +&dsi_nt35596_tianma_fhd_vid { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + +}; + +&int_codec { + status = "ok"; +}; + +&pm8953_diangu_dig { + status = "ok"; +}; + +&pm8953_diangu_analog { + status = "ok"; +}; + +&ext_codec { + status = "disabled"; + qcom,model = "msm8953-sku3-tasha-snd-card"; + + qcom,audio-routing = + "AIF4 VI", "MCLK", + "RX_BIAS", "MCLK", + "DMIC0", "MIC BIAS1", + "MIC BIAS1", "Digital Mic0", + "AMIC2", "MIC BIAS2", + "MIC BIAS2", "Headset Mic", + "DMIC2", "MIC BIAS3", + "MIC BIAS3", "Digital Mic2", + "MIC BIAS1", "MICBIAS_REGULATOR", + "MIC BIAS2", "MICBIAS_REGULATOR", + "MIC BIAS3", "MICBIAS_REGULATOR", + "SpkrLeft IN", "SPK1 OUT"; + + qcom,cdc-us-euro-gpios; + + qcom,msm-mbhc-hphl-swh = <1>; + + qcom,wsa-max-devs = <1>; + qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_213>; + qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrLeft"; +}; + +&slim_msm { + status = "disabled"; +}; + +&dai_slim { + status = "disabled"; +}; + +&clock_audio { + status = "disabled"; +}; + +&wcd9335 { + status = "disabled"; +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-qrd.dtsi b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-qrd.dtsi new file mode 100644 index 0000000000000..f85e8b86e6c9c --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953-qrd.dtsi @@ -0,0 +1,436 @@ +/* + * Copyright (c) 2015-2016, 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 "msm8953-pinctrl.dtsi" +#include "msm8953-camera-sensor-qrd.dtsi" + +&soc { + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + pinctrl-names = "tlmm_gpio_key_active","tlmm_gpio_key_suspend"; + pinctrl-0 = <&gpio_key_active>; + pinctrl-1 = <&gpio_key_suspend>; + + vol_up { + label = "volume_up"; + gpios = <&tlmm 85 0x1>; + linux,input-type = <1>; + linux,code = <115>; + debounce-interval = <15>; + }; + }; + + pwm_ir { + compatible = "pwm-ir"; + pwms = <&pmi8950_pwm 0 0>; + reg-id = "vdd"; + vdd-supply = <&pm8953_l8>; + }; + + goodix_fp { + compatible = "goodix,fingerprint"; + spi-max-frequency = <1000000>; + input-device-name = "gf3208"; + interrupt-parent = <&tlmm>; + interrupts = <9 0x0>; + + goodix,gpio_reset = <&tlmm 140 0>; + goodix,gpio_irq = <&tlmm 48 0>; + + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup1_spi_apps_clk>; + + pinctrl-names = "goodixfp_spi_active", + "goodixfp_reset_reset", + "goodixfp_reset_active", + "goodixfp_irq_active"; + + pinctrl-0 = <&goodix_spi_active>; + pinctrl-1 = <&goodix_reset_reset>; + pinctrl-2 = <&goodix_reset_active>; + pinctrl-3 = <&goodix_irq_active>; + }; + + fpc1020 { + compatible = "fpc,fpc1020"; + spi-max-frequency = <1000000>; + input-device-name = "fpc1020"; + interrupt-parent = <&tlmm>; + interrupts = <9 0x0>; + + fpc,gpio_rst = <&tlmm 140 0>; + fpc,gpio_irq = <&tlmm 48 0>; + + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup1_spi_apps_clk>; + + pinctrl-names = "fpc1020_spi_active", + "fpc1020_reset_reset", + "fpc1020_reset_active", + "fpc1020_irq_active"; + + pinctrl-0 = <&fpc_spi_active>; + pinctrl-1 = <&fpc_reset_reset>; + pinctrl-2 = <&fpc_reset_active>; + pinctrl-3 = <&fpc_irq_active>; + }; + + i2c@78b7000 { /* BLSP1 QUP3 */ + status = "okay"; + synaptics@4b { + compatible = "synaptics,dsx-i2c"; + reg = <0x4b>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2008>; + vdd_ana-supply = <&vdd_vreg>; + vcc_i2c-supply = <&pm8953_l6>; + synaptics,pwr-reg-name = "vdd_ana"; + synaptics,bus-reg-name = "vcc_i2c"; + synaptics,irq-gpio = <&tlmm 65 0x2008>; + synaptics,irq-on-state = <0>; + synaptics,irq-flags = <0x2008>; + synaptics,power-delay-ms = <200>; + synaptics,reset-delay-ms = <200>; + synaptics,max-y-for-2d = <1919>; + synaptics,cap-button-codes = <139 158 172>; + synaptics,vir-button-codes = <139 180 2000 320 160 + 158 540 2000 320 160 + 172 900 2000 320 160>; + synaptics,resume-in-workqueue; + /* Underlying clocks used by secure touch */ + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup3_i2c_apps_clk>; + }; + focaltech@38 { + compatible = "focaltech,5435"; + reg = <0x38>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2>; + vdd-supply = <&pm8953_l10>; + vcc_i2c-supply = <&pm8953_l6>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + focaltech,name = "ft5435"; + focaltech,family-id = <0x54>; + focaltech,reset-gpio = <&tlmm 64 0x0>; + focaltech,irq-gpio = <&tlmm 65 0x2008>; + focaltech,display-coords = <0 0 1080 1920>; + focaltech,panel-coords = <0 0 1080 1920>; + focaltech,no-force-update; + focaltech,i2c-pull-up; + focaltech,group-id = <1>; + focaltech,hard-reset-delay-ms = <200>; + focaltech,soft-reset-delay-ms = <200>; + focaltech,num-max-touches = <10>; + focaltech,fw-delay-aa-ms = <2>; + focaltech,fw-delay-55-ms = <2>; + focaltech,fw-upgrade-id1 = <0x54>; + focaltech,fw-upgrade-id2 = <0x2c>; + focaltech,fw-delay-readid-ms = <10>; + focaltech,fw-delay-era-flsh-ms = <2000>; + focaltech,fw-auto-cal; + focaltech,fw-vkey-support; + focaltech,resume-in-workqueue; + focaltech,num-virtual-key = <3>; + focal,virtual_key_1 = <172 500 2040>;/*home*/ + focal,virtual_key_2 = <139 200 2040>;/*menu*/ + focal,virtual_key_3 = <158 800 2040>;/*back*/ + }; + imagis@50 { + compatible = "imagis,ist30xx-ts"; + reg = <0x50>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2>; + vdd-supply = <&pm8953_l10>; + vcc_i2c-supply = <&pm8953_l6>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + imagis,reset-gpio = <&tlmm 64 0x0>; + imagis,irq-gpio = <&tlmm 65 0x2008>; + imagis,i2c-pull-up; + }; + goodix_ts@14 { + compatible = "goodix,gt9xx"; + reg = <0x14>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x0>; + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + vdd_ana-supply = <&pm8953_l10>; + vcc_i2c-supply = <&pm8953_l6>; + goodix,rst-gpio = <&tlmm 64 0x0>; + goodix,irq-gpio = <&tlmm 65 0x2008>; + goodix,cfg-group0 = [45 38 04 80 07 0A 35 41 01 0A + 26 0B 5A 32 05 05 00 00 00 00 + 00 00 05 14 14 26 14 8C 2E 0E + 4A 4C F4 0A F4 0A 00 BA 33 11 + 00 00 00 00 00 05 03 28 78 96 + 3A 1E 5A 8F 90 03 00 00 00 04 + CE 21 00 B0 29 28 98 34 00 87 + 41 60 7B 51 00 7B 18 38 60 00 + F0 55 40 AA A0 27 00 04 53 00 + 00 00 00 00 00 02 00 00 00 00 + 00 00 00 00 00 00 3C 00 00 00 + 00 28 02 04 06 08 0A 0C 0E 10 + 12 14 16 18 1A 1C 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 + 00 00 00 02 04 06 08 0A 0C 0F + 10 12 13 14 16 18 1C 1D 1E 1F + 20 21 22 24 26 28 29 2A 00 00 + 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 23 01]; + }; + + }; + + i2c@78b6000 { /* BLSP1 QUP3 */ + aw2013@45 { + compatible = "awinic,aw2013"; + reg = <0x45>; + vdd-supply = <&pm8953_l10>; + vcc-supply = <&pm8953_l5>; + + aw2013,red { + aw2013,name = "red"; + aw2013,id = <0>; + aw2013,max-brightness = <255>; + aw2013,max-current = <1>; + aw2013,rise-time-ms = <3>; + aw2013,hold-time-ms = <1>; + aw2013,fall-time-ms = <3>; + aw2013,off-time-ms = <3>; + }; + + aw2013,green { + aw2013,name = "green"; + aw2013,id = <1>; + aw2013,max-brightness = <255>; + aw2013,max-current = <1>; + aw2013,rise-time-ms = <3>; + aw2013,hold-time-ms = <1>; + aw2013,fall-time-ms = <3>; + aw2013,off-time-ms = <3>; + }; + + aw2013,blue { + aw2013,name = "blue"; + aw2013,id = <2>; + aw2013,max-brightness = <255>; + aw2013,max-current = <1>; + aw2013,rise-time-ms = <3>; + aw2013,hold-time-ms = <1>; + aw2013,fall-time-ms = <3>; + aw2013,off-time-ms = <3>; + }; + }; + }; + vdd_vreg: vdd_vreg { + compatible = "regulator-fixed"; + status = "ok"; + regulator-name = "vdd_vreg"; + }; +}; + +&wled { + qcom,cons-sync-write-delay-us = <1000>; +}; + +&spmi_bus { + qcom,pm8953@0 { + qcom,leds@a100 { + status = "okay"; + compatible = "qcom,leds-qpnp"; + reg = <0xa100 0x100>; + label = "mpp"; + qcom,led_mpp_2 { + label = "mpp"; + linux,name = "button-backlight"; + linux,default-trigger = "none"; + qcom,default-state = "off"; + qcom,max-current = <5>; + qcom,current-setting = <5>; + qcom,id = <6>; + qcom,mode = "manual"; + qcom,source-sel = <1>; + qcom,mode-ctrl = <0x61>; + }; + }; + }; +}; + +/ { + qrd_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <5>; + #include "../../device/batterydata-qrd-sunwoda-4v4-4100mah.dtsi" + #include "../../device/batterydata-qrd-sunwoda-ATL-4v4-4100mah.dtsi" + #include "../../device/batterydata-qrd-coslight-4v4-4100mah.dtsi" + #include "../../device/batterydata-qrd-desay-lisheng-4v4-4100mah.dtsi" + #include "../../device/batterydata-qrd-desay-4v4-4100mah.dtsi" + }; +}; + +&pmi8950_charger { + qcom,battery-data = <&qrd_batterydata>; + qcom,float-voltage-mv = <4400>; + qcom,thermal-mitigation = <3000 2500 2000 1500 1000 500 0>; + status = "okay"; +}; + +&pmi8950_fg { + qcom,battery-data = <&qrd_batterydata>; + qcom,thermal-coefficients = [c8 86 c1 50 d3 37]; + qcom,cold-bat-decidegc = <0>; + qcom,cool-bat-decidegc = <100>; + qcom,warm-bat-decidegc = <500>; + qcom,hot-bat-decidegc = <550>; + qcom,bad-battery-detection-enable; + qcom,hold-soc-while-full; +}; + +&blsp1_uart0 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&sdhc_1 { + /* device core power supply */ + vdd-supply = <&pm8953_l8>; + qcom,vdd-voltage-level = <2900000 2900000>; + qcom,vdd-current-level = <200 570000>; + + /* device communication power supply */ + vdd-io-supply = <&pm8953_l5>; + qcom,vdd-io-always-on; + qcom,vdd-io-lpm-sup; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <200 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 100000000 192000000 + 384000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + /* device core power supply */ + vdd-supply = <&pm8953_l11>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <15000 800000>; + + /* device communication power supply */ + vdd-io-supply = <&pm8953_l12>; + 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>; + + #address-cells = <0>; + interrupt-parent = <&sdhc_2>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 125 0 + 1 &intc 0 221 0 + 2 &tlmm 133 0>; + interrupt-names = "hc_irq", "pwr_irq", "status_irq"; + cd-gpios = <&tlmm 133 0x1>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 + 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + status = "ok"; +}; + +&i2c_5 { /* BLSP2 QUP1 (NFC) */ + nq@28 { + compatible = "nxp,nfc-548"; + reg = <0x28>; + nxp-nfc-548,irq-gpio = <&tlmm 17 0x00>; + nxp-nfc-548,firm-gpio = <&tlmm 62 0x00>; + nxp-nfc-548,ven-gpio = <&tlmm 16 0x00>; + #qcom,nq-clkreq = <&pm8953_gpios 2 0x00>; + interrupt-parent = <&tlmm>; + #qcom,clk-src = "BBCLK2"; + interrupts = <17 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"; + }; +}; + +&pm8953_gpios { + /* GPIO 2 (NFC_CLK_REQ) */ + gpio@c100 { + qcom,mode = <0>; + qcom,output-type = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,out-strength = <3>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; +}; + +&i2c_3 { + status = "ok"; +}; + +&led_flash0{ + qcom,flash-source = <&pmi8950_flash0 &pmi8950_flash1>; + qcom,torch-source = <&pmi8950_torch0 &pmi8950_torch1>; +}; + +&pm8953_vadc { + /delete-node/ chan@11; +}; + +&sdc2_cmd_on { + config { + drive-strength=<12>; + }; +}; + +&sdc2_data_on { + config { + drive-strength=<12>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953.dtsi b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953.dtsi new file mode 100644 index 0000000000000..85ce4ac8de233 --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/msm8953/msm8953.dtsi @@ -0,0 +1,2527 @@ +/* + * Copyright (c) 2015-2016, 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 "../../../skeleton64.dtsi" +#include +#include +#include + +/ { + model = "Qualcomm Technologies, Inc. MSM 8953"; + compatible = "qcom,msm8953"; + qcom,msm-id = <293 0x0>; + interrupt-parent = <&intc>; + + chosen { + bootargs = "sched_enable_hmp=1 sched_enable_power_aware=1"; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + other_ext_mem: other_ext_region@0 { + compatible = "removed-dma-pool"; + no-map; + reg = <0x0 0x84A00000 0x0 0x1E00000>; + }; + + modem_mem: modem_region@0 { + compatible = "removed-dma-pool"; + no-map-fixup; + reg = <0x0 0x86c00000 0x0 0x6a00000>; + }; + + adsp_fw_mem: adsp_fw_region@0 { + compatible = "removed-dma-pool"; + no-map; + reg = <0x0 0x8d600000 0x0 0x1100000>; + }; + + wcnss_fw_mem: wcnss_fw_region@0 { + compatible = "removed-dma-pool"; + no-map; + reg = <0x0 0x8e700000 0x0 0x700000>; + }; + + venus_mem: venus_region@0 { + compatible = "shared-dma-pool"; + reusable; + alloc-ranges = <0x0 0x80000000 0x0 0x10000000>; + alignment = <0 0x400000>; + size = <0 0x0800000>; + }; + + secure_mem: secure_region@0 { + compatible = "shared-dma-pool"; + reusable; + alignment = <0 0x400000>; + size = <0 0x09800000>; + }; + + qseecom_mem: qseecom_region@0 { + compatible = "shared-dma-pool"; + reusable; + alignment = <0 0x400000>; + size = <0 0x1000000>; + }; + + adsp_mem: adsp_region@0 { + compatible = "shared-dma-pool"; + reusable; + size = <0 0x400000>; + }; + + dfps_data_mem: dfps_data_mem@90000000 { + reg = <0 0x90000000 0 0x1000>; + label = "dfps_data_mem"; + }; + + cont_splash_mem: splash_region@0x90001000 { + reg = <0x0 0x90001000 0x0 0x13ff000>; + label = "cont_splash_mem"; + }; + + gpu_mem: gpu_region@0 { + compatible = "shared-dma-pool"; + reusable; + alloc-ranges = <0x0 0x80000000 0x0 0x10000000>; + alignment = <0 0x400000>; + size = <0 0x800000>; + }; + + pstore_reserve_mem: pstore_reserve_mem_region@0 { + linux,reserve-contiguous-region; + linux,reserve-region; + linux,remove-completely; + reg = <0x0 0x9ff00000 0x0 0x00100000>; + label = "pstore_reserve_mem"; + }; + }; + + aliases { + /* smdtty devices */ + smd1 = &smdtty_apps_fm; + smd2 = &smdtty_apps_riva_bt_acl; + smd3 = &smdtty_apps_riva_bt_cmd; + smd4 = &smdtty_mbalbridge; + smd5 = &smdtty_apps_riva_ant_cmd; + smd6 = &smdtty_apps_riva_ant_data; + smd7 = &smdtty_data1; + smd8 = &smdtty_data4; + smd11 = &smdtty_data11; + smd21 = &smdtty_data21; + smd36 = &smdtty_loopback; + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + sdhc2 = &sdhc_2; /* SDC2 for SD card */ + i2c2 = &i2c_2; + i2c3 = &i2c_3; + i2c5 = &i2c_5; + spi3 = &spi_3; + }; + + soc: soc { }; + +}; + +#include "msm8953-pinctrl.dtsi" +#include "../../../msm8953-cpu.dtsi" +#include "../../../msm8953-gpu.dtsi" +#include "../../../msm8953-ion.dtsi" +#include "../../../msm8953-smp2p.dtsi" +#include "../../../msm-arm-smmu-8953.dtsi" +#include "../../../msm8953-coresight.dtsi" +#include "../../../msm8953-bus.dtsi" +#include "../../../msm8953-iommu-domains.dtsi" +#include "../../../msm8953-vidc.dtsi" +#include "msm8953-pm.dtsi" + +&soc { + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0xffffffff>; + compatible = "simple-bus"; + + apc_apm: apm@b111000 { + compatible = "qcom,msm8953-apm"; + reg = <0xb111000 0x1000>; + reg-names = "pm-apcc-glb"; + qcom,apm-post-halt-delay = <0x2>; + qcom,apm-halt-clk-delay = <0x11>; + qcom,apm-resume-clk-delay = <0x10>; + qcom,apm-sel-switch-delay = <0x01>; + }; + + intc: interrupt-controller@b000000 { + compatible = "qcom,msm-qgic2"; + interrupt-controller; + #interrupt-cells = <3>; + reg = <0x0b000000 0x1000>, + <0x0b002000 0x1000>; + }; + + arm64-cpu-erp { + compatible = "arm,arm64-cpu-erp"; + interrupts = <0 275 0>, + <0 276 0>, + <0 273 0>, + <0 274 0>; + interrupt-names = "pri-dbe-irq", + "sec-dbe-irq", + "pri-ext-irq", + "sec-ext-irq"; + poll-delay-ms = <5000>; + }; + + qcom,msm-gladiator@b1c0000 { + compatible = "qcom,msm-gladiator"; + reg = <0x0b1c0000 0x4000>; + reg-names = "gladiator_base"; + interrupts = <0 22 0>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <1 2 0xff08>, + <1 3 0xff08>, + <1 4 0xff08>, + <1 1 0xff08>; + clock-frequency = <19200000>; + }; + + timer@b120000 { + #address-cells = <1>; + #size-cells = <1>; + ranges; + compatible = "arm,armv7-timer-mem"; + reg = <0xb120000 0x1000>; + clock-frequency = <19200000>; + + frame@b121000 { + frame-number = <0>; + interrupts = <0 8 0x4>, + <0 7 0x4>; + reg = <0xb121000 0x1000>, + <0xb122000 0x1000>; + }; + + frame@b123000 { + frame-number = <1>; + interrupts = <0 9 0x4>; + reg = <0xb123000 0x1000>; + status = "disabled"; + }; + + frame@b124000 { + frame-number = <2>; + interrupts = <0 10 0x4>; + reg = <0xb124000 0x1000>; + status = "disabled"; + }; + + frame@b125000 { + frame-number = <3>; + interrupts = <0 11 0x4>; + reg = <0xb125000 0x1000>; + status = "disabled"; + }; + + frame@b126000 { + frame-number = <4>; + interrupts = <0 12 0x4>; + reg = <0xb126000 0x1000>; + status = "disabled"; + }; + + frame@b127000 { + frame-number = <5>; + interrupts = <0 13 0x4>; + reg = <0xb127000 0x1000>; + status = "disabled"; + }; + + frame@b128000 { + frame-number = <6>; + interrupts = <0 14 0x4>; + reg = <0xb128000 0x1000>; + status = "disabled"; + }; + }; + qcom,rmtfs_sharedmem@00000000 { + compatible = "qcom,sharedmem-uio"; + reg = <0x00000000 0x00180000>; + reg-names = "rmtfs"; + qcom,client-id = <0x00000001>; + }; + + restart@4ab000 { + compatible = "qcom,pshold"; + reg = <0x4ab000 0x4>, + <0x193d100 0x4>; + reg-names = "pshold-base", "tcsr-boot-misc-detect"; + }; + + qcom,mpm2-sleep-counter@4a3000 { + compatible = "qcom,mpm2-sleep-counter"; + reg = <0x4a3000 0x1000>; + clock-frequency = <32768>; + }; + + cpu-pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <1 7 0xff00>; + }; + + qcom,sps { + compatible = "qcom,msm_sps_4k"; + qcom,pipe-attr-ee; + }; + + tsens: tsens@4a8000 { + compatible = "qcom,msm8953-tsens"; + reg = <0x4a8000 0x2000>, + <0xa4000 0x1000>; + reg-names = "tsens_physical", "tsens_eeprom_physical"; + interrupts = <0 184 0>, <0 314 0>; + interrupt-names = "tsens-upper-lower", "tsens-critical"; + qcom,client-id = <1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>; + qcom,sensor-id = <1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>; + qcom,sensors = <15>; + qcom,slope = <3200 3200 3200 3200 3200 3200 3200 3200 + 3200 3200 3200 3200 3200 3200 3200>; + qcom,valid-status-check; + }; + + qcom,sensor-information { + compatible = "qcom,sensor-information"; + sensor_information0: qcom,sensor-information-0 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor0"; + qcom,scaling-factor = <10>; + }; + + sensor_information1: qcom,sensor-information-1 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor1"; + qcom,scaling-factor = <10>; + }; + + sensor_information2: qcom,sensor-information-2 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor2"; + qcom,alias-name = "pop_mem"; + qcom,scaling-factor = <10>; + }; + + sensor_information3: qcom,sensor-information-3 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor3"; + qcom,scaling-factor = <10>; + }; + + sensor_information4: qcom,sensor-information-4 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor4"; + qcom,scaling-factor = <10>; + }; + + sensor_information5: qcom,sensor-information-5 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor5"; + qcom,scaling-factor = <10>; + }; + + sensor_information6: qcom,sensor-information-6 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor6"; + qcom,scaling-factor = <10>; + }; + + sensor_information7: qcom,sensor-information-7 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor7"; + qcom,scaling-factor = <10>; + }; + + sensor_information8: qcom,sensor-information-8 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor8"; + qcom,scaling-factor = <10>; + qcom,alias-name = "L2_cache_1"; + }; + + sensor_information9: qcom,sensor-information-9 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor9"; + qcom,scaling-factor = <10>; + }; + + sensor_information10: qcom,sensor-information-10 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor10"; + qcom,scaling-factor = <10>; + }; + + sensor_information11: qcom,sensor-information-11 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor11"; + qcom,scaling-factor = <10>; + }; + + sensor_information12: qcom,sensor-information-12 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor12"; + qcom,scaling-factor = <10>; + }; + + sensor_information13: qcom,sensor-information-13 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor13"; + qcom,scaling-factor = <10>; + qcom,alias-name = "L2_cache_0"; + }; + + sensor_information14: qcom,sensor-information-14 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor14"; + qcom,scaling-factor = <10>; + }; + + sensor_information15: qcom,sensor-information-15 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor15"; + qcom,alias-name = "gpu"; + qcom,scaling-factor = <10>; + }; + + sensor_information16: qcom,sensor-information-16 { + qcom,sensor-type = "alarm"; + qcom,sensor-name = "pm8953_tz"; + qcom,scaling-factor = <1000>; + }; + + sensor_information17: qcom,sensor-information-17 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "pa_therm0"; + }; + + sensor_information18: qcom,sensor-information-18 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "pa_therm1"; + }; + + sensor_information19: qcom,sensor-information-19 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "xo_therm"; + }; + + sensor_information20: qcom,sensor-information-20 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "xo_therm_buf"; + }; + + sensor_information21: qcom,sensor-information-21 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "case_therm"; + }; + }; + + mitigation_profile0: qcom,limit_info-0 { + qcom,temperature-sensor = <&sensor_information9>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile1: qcom,limit_info-1 { + qcom,temperature-sensor = <&sensor_information10>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile2: qcom,limit_info-2 { + qcom,temperature-sensor = <&sensor_information11>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile3: qcom,limit_info-3 { + qcom,temperature-sensor = <&sensor_information12>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile4: qcom,limit_info-4 { + qcom,temperature-sensor = <&sensor_information4>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile5: qcom,limit_info-5 { + qcom,temperature-sensor = <&sensor_information5>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile6: qcom,limit_info-6 { + qcom,temperature-sensor = <&sensor_information6>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile7: qcom,limit_info-7 { + qcom,temperature-sensor = <&sensor_information7>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + qcom,msm-thermal { + compatible = "qcom,msm-thermal"; + qcom,sensor-id = <9>; + qcom,poll-ms = <250>; + qcom,limit-temp = <60>; + qcom,temp-hysteresis = <10>; + qcom,freq-step = <2>; + qcom,core-limit-temp = <80>; + qcom,core-temp-hysteresis = <10>; + qcom,hotplug-temp = <105>; + qcom,hotplug-temp-hysteresis = <15>; + qcom,freq-mitigation-temp = <105>; + qcom,freq-mitigation-temp-hysteresis = <15>; + qcom,freq-mitigation-value = <1036800>; + qcom,therm-reset-temp = <115>; + qcom,online-hotplug-core; + qcom,synchronous-cluster-id = <0 1>; + qcom,synchronous-cluster-map = <0 4 &CPU0 &CPU1 &CPU2 &CPU3>, + <1 4 &CPU4 &CPU5 &CPU6 &CPU7>; + qcom,disable-cx-phase-ctrl; + qcom,disable-gfx-phase-ctrl; + qcom,disable-vdd-mx; + qcom,disable-psm; + qcom,disable-ocr; + qcom,vdd-restriction-temp = <5>; + qcom,vdd-restriction-temp-hysteresis = <10>; + vdd-dig-supply = <&pm8953_s2_floor_level>; + vdd-gfx-supply = <&gfx_vreg_corner>; + + qcom,vdd-dig-rstr { + qcom,vdd-rstr-reg = "vdd-dig"; + qcom,levels = ; + qcom,min-level = ; + }; + + qcom,vdd-gfx-rstr { + qcom,vdd-rstr-reg = "vdd-gfx"; + qcom,levels = <5 7 7>; /* Nominal, Turbo, Turbo */ + qcom,min-level = <1>; /* No Request */ + }; + + msm_thermal_freq: qcom,vdd-apps-rstr { + qcom,vdd-rstr-reg = "vdd-apps"; + qcom,levels = <1689600>; + qcom,freq-req; + }; + }; + + qcom,bcl { + compatible = "qcom,bcl"; + qcom,bcl-enable; + qcom,bcl-framework-interface; + qcom,bcl-freq-control-list = <&CPU0 &CPU1 &CPU2 &CPU3 + &CPU4 &CPU5 &CPU6 &CPU7>; + qcom,bcl-hotplug-list = <&CPU6 &CPU7>; + qcom,bcl-soc-hotplug-list = <&CPU4 &CPU5 &CPU6 &CPU7>; + qcom,ibat-monitor { + qcom,low-threshold-uamp = <3400000>; + qcom,high-threshold-uamp = <4200000>; + qcom,mitigation-freq-khz = <1689600>; + qcom,vph-high-threshold-uv = <3500000>; + qcom,vph-low-threshold-uv = <3200000>; + qcom,soc-low-threshold = <10>; + qcom,thermal-handle = <&msm_thermal_freq>; + }; + }; + + qcom,msm-core@a0000 { + compatible = "qcom,apss-core-ea"; + reg = <0xa0000 0x1000>; + qcom,low-hyst-temp = <10>; + qcom,high-hyst-temp = <5>; + + ea0: ea0 { + sensor = <&sensor_information9>; + }; + + ea1: ea1 { + sensor = <&sensor_information10>; + }; + + ea2: ea2 { + sensor = <&sensor_information11>; + }; + + ea3: ea3 { + sensor = <&sensor_information12>; + }; + + ea4: ea4 { + sensor = <&sensor_information4>; + }; + + ea5: ea5 { + sensor = <&sensor_information5>; + }; + + ea6: ea6 { + sensor = <&sensor_information6>; + }; + + ea7: ea7 { + sensor = <&sensor_information7>; + }; + }; + + blsp1_uart0: serial@78af000 { + compatible = "qcom,msm-lsuart-v14"; + reg = <0x78af000 0x200>; + interrupts = <0 107 0>; + status = "disabled"; + clocks = <&clock_gcc clk_gcc_blsp1_uart1_apps_clk>, + <&clock_gcc clk_gcc_blsp1_ahb_clk>; + clock-names = "core_clk", "iface_clk"; + }; + + blsp1_uart1: uart@78b0000 { + compatible = "qcom,msm-hsuart-v14"; + reg = <0x78b0000 0x200>, + <0x7884000 0x1f000>; + reg-names = "core_mem", "bam_mem"; + + interrupt-names = "core_irq", "bam_irq", "wakeup_irq"; + #address-cells = <0>; + interrupt-parent = <&blsp1_uart1>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 108 0 + 1 &intc 0 238 0 + 2 &tlmm 13 0>; + + qcom,inject-rx-on-wakeup; + qcom,rx-char-to-inject = <0xFD>; + qcom,master-id = <86>; + clock-names = "core_clk", "iface_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_uart2_apps_clk>, + <&clock_gcc clk_gcc_blsp1_ahb_clk>; + pinctrl-names = "sleep", "default"; + pinctrl-0 = <&hsuart_sleep>; + pinctrl-1 = <&hsuart_active>; + qcom,bam-tx-ep-pipe-index = <2>; + qcom,bam-rx-ep-pipe-index = <3>; + qcom,msm-bus,name = "blsp1_uart1"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <86 512 0 0>, + <86 512 500 800>; + status = "disabled"; + }; + + dma_blsp1: qcom,sps-dma@7884000 { /* BLSP1 */ + #dma-cells = <4>; + compatible = "qcom,sps-dma"; + reg = <0x7884000 0x1f000>; + interrupts = <0 238 0>; + qcom,summing-threshold = <10>; + }; + + dma_blsp2: qcom,sps-dma@7ac4000 { /* BLSP2 */ + #dma-cells = <4>; + compatible = "qcom,sps-dma"; + reg = <0x7ac4000 0x1f000>; + interrupts = <0 239 0>; + qcom,summing-threshold = <10>; + }; + + spi_3: spi@78b7000 { /* BLSP1 QUP3 */ + compatible = "qcom,spi-qup-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "spi_physical", "spi_bam_physical"; + reg = <0x78b7000 0x600>, + <0x7884000 0x1f000>; + interrupt-names = "spi_irq", "spi_bam_irq"; + interrupts = <0 97 0>, <0 238 0>; + spi-max-frequency = <19200000>; + pinctrl-names = "spi_default", "spi_sleep"; + pinctrl-0 = <&spi3_default &spi3_cs0_active>; + pinctrl-1 = <&spi3_sleep &spi3_cs0_sleep>; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup3_spi_apps_clk>; + clock-names = "iface_clk", "core_clk"; + qcom,infinite-mode = <0>; + qcom,use-bam; + qcom,use-pinctrl; + qcom,ver-reg-exists; + qcom,bam-consumer-pipe-index = <8>; + qcom,bam-producer-pipe-index = <9>; + qcom,master-id = <86>; + }; + + i2c_2: i2c@78b6000 { /* BLSP1 QUP2 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr"; + reg = <0x78b6000 0x600>; + interrupt-names = "qup_irq"; + interrupts = <0 96 0>; + qcom,clk-freq-out = <400000>; + qcom,clk-freq-in = <19200000>; + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup2_i2c_apps_clk>; + + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_2_active>; + pinctrl-1 = <&i2c_2_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,master-id = <86>; + dmas = <&dma_blsp1 6 64 0x20000020 0x20>, + <&dma_blsp1 7 32 0x20000020 0x20>; + dma-names = "tx", "rx"; + + /* DSI_TO_HDMI I2C configuration */ + adv7533@39 { + compatible = "adv7533"; + reg = <0x39>; + instance_id = <0>; + adi,video-mode = <3>; /* 3 = 1080p */ + adi,main-addr = <0x39>; + adi,cec-dsi-addr = <0x3C>; + adi,enable-audio; + pinctrl-names = "pmx_adv7533_active", + "pmx_adv7533_suspend"; + pinctrl-0 = <&adv7533_int_active>; + pinctrl-1 = <&adv7533_int_suspend>; + adi,irq-gpio = <&tlmm 90 0x2002>; + hpd-5v-en-supply = <&adv_vreg>; + qcom,supply-names = "hpd-5v-en"; + qcom,min-voltage-level = <0>; + qcom,max-voltage-level = <0>; + qcom,enable-load = <0>; + qcom,disable-load = <0>; + }; + }; + + i2c_3: i2c@78b7000 { /* BLSP1 QUP3 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr"; + reg = <0x78b7000 0x600>; + interrupt-names = "qup_irq"; + interrupts = <0 97 0>; + qcom,clk-freq-out = <400000>; + qcom,clk-freq-in = <19200000>; + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup3_i2c_apps_clk>; + + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_3_active>; + pinctrl-1 = <&i2c_3_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,master-id = <86>; + dmas = <&dma_blsp1 8 64 0x20000020 0x20>, + <&dma_blsp1 9 32 0x20000020 0x20>; + dma-names = "tx", "rx"; + status = "disabled"; + }; + + i2c_5: i2c@7af5000 { /* BLSP2 QUP1 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr"; + reg = <0x7af5000 0x600>; + interrupt-names = "qup_irq"; + interrupts = <0 299 0>; + qcom,clk-freq-out = <400000>; + qcom,clk-freq-in = <19200000>; + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup1_i2c_apps_clk>; + + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_5_active>; + pinctrl-1 = <&i2c_5_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,master-id = <84>; + dmas = <&dma_blsp2 4 64 0x20000020 0x20>, + <&dma_blsp2 5 32 0x20000020 0x20>; + dma-names = "tx", "rx"; + }; + + slim_msm: slim@c140000{ + cell-index = <1>; + compatible = "qcom,slim-ngd"; + reg = <0xc140000 0x2c000>, + <0xc104000 0x2a000>; + reg-names = "slimbus_physical", "slimbus_bam_physical"; + interrupts = <0 163 0>, <0 180 0>; + interrupt-names = "slimbus_irq", "slimbus_bam_irq"; + qcom,apps-ch-pipes = <0x600000>; + qcom,ea-pc = <0x200>; + status = "disabled"; + }; + + dcc: dcc@b3000 { + compatible = "qcom,dcc"; + reg = <0xb3000 0x1000>, + <0xb4000 0x800>; + reg-names = "dcc-base", "dcc-ram-base"; + + clocks = <&clock_gcc clk_gcc_dcc_clk>; + clock-names = "dcc_clk"; + + qcom,save-reg; + }; + + clock_gcc: qcom,gcc@1800000 { + compatible = "qcom,gcc-8953"; + reg = <0x1800000 0x80000>; + reg-names = "cc_base"; + vdd_dig-supply = <&pm8953_s2_level>; + #clock-cells = <1>; + }; + + clock_gcc_mdss: qcom,gcc-mdss@1800000 { + compatible = "qcom,gcc-mdss-8953"; + reg = <0x1800000 0x80000>; + reg-names = "cc_base"; + clock-names = "pclk0_src", "pclk1_src", + "byte0_src", "byte1_src"; + clocks = <&mdss_dsi0_pll clk_dsi0pll_pixel_clk_mux>, + <&mdss_dsi1_pll clk_dsi1pll_pixel_clk_mux>, + <&mdss_dsi0_pll clk_dsi0pll_byte_clk_mux>, + <&mdss_dsi1_pll clk_dsi1pll_byte_clk_mux>; + #clock-cells = <1>; + }; + + clock_debug: qcom,cc-debug@1874000 { + compatible = "qcom,cc-debug-8953"; + reg = <0x1874000 0x4>; + reg-names = "cc_base"; + clocks = <&clock_cpu clk_cpu_debug_pri_mux>; + clock-names = "debug_cpu_clk"; + #clock-cells = <1>; + }; + + clock_gcc_gfx: qcom,gcc-gfx@1800000 { + compatible = "qcom,gcc-gfx-8953"; + reg = <0x1800000 0x80000>; + reg-names = "cc_base"; + vdd_gfx-supply = <&gfx_vreg_corner>; + qcom,gfxfreq-corner = + < 0 0 >, + < 133330000 1 >, /* Min SVS */ + < 216000000 2 >, /* Low SVS */ + < 320000000 3 >, /* SVS */ + < 400000000 4 >, /* SVS Plus */ + < 510000000 5 >, /* NOM */ + < 560000000 6 >, /* Nom Plus */ + < 650000000 7 >; /* Turbo */ + #clock-cells = <1>; + }; + + clock_cpu: qcom,cpu-clock-8953@b116000 { + compatible = "qcom,cpu-clock-8953"; + reg = <0xb114000 0x68>, + <0xb014000 0x68>, + <0xb116000 0x400>, + <0xb111050 0x08>, + <0xb011050 0x08>, + <0xb1d1050 0x08>, + <0x00a4124 0x08>; + reg-names = "rcgwr-c0-base", "rcgwr-c1-base", + "c0-pll", "c0-mux", "c1-mux", + "cci-mux", "efuse"; + vdd-mx-supply = <&pm8953_s7_level_ao>; + vdd-cl-supply = <&apc_vreg>; + clocks = <&clock_gcc clk_xo_a_clk_src>; + clock-names = "xo_a"; + qcom,num-clusters = <2>; + qcom,speed0-bin-v0-cl = + < 0 0>, + < 652800000 1>, + < 1036800000 2>, + < 1401600000 3>, + < 1689600000 4>, + < 1804800000 5>, + < 1958400000 6>, + < 2016000000 7>; + qcom,speed0-bin-v0-cci = + < 0 0>, + < 261120000 1>, + < 414720000 2>, + < 560640000 3>, + < 675840000 4>, + < 721920000 5>, + < 783360000 6>, + < 806400000 7>; + qcom,speed2-bin-v0-cl = + < 0 0>, + < 652800000 1>, + < 1036800000 2>, + < 1401600000 3>, + < 1689600000 4>, + < 1804800000 5>, + < 1958400000 6>, + < 2016000000 7>; + qcom,speed2-bin-v0-cci = + < 0 0>, + < 261120000 1>, + < 414720000 2>, + < 560640000 3>, + < 675840000 4>, + < 721920000 5>, + < 783360000 6>, + < 806400000 7>; + qcom,speed7-bin-v0-cl = + < 0 0>, + < 652800000 1>, + < 1036800000 2>, + < 1401600000 3>, + < 1689600000 4>, + < 1804800000 5>, + < 1958400000 6>, + < 2016000000 7>, + < 2150400000 8>, + < 2208000000 9>; + qcom,speed7-bin-v0-cci = + < 0 0>, + < 261120000 1>, + < 414720000 2>, + < 560640000 3>, + < 675840000 4>, + < 721920000 5>, + < 783360000 6>, + < 806400000 7>, + < 860160000 8>, + < 883200000 9>; + qcom,speed6-bin-v0-cl = + < 0 0>, + < 652800000 1>, + < 1036800000 2>, + < 1401600000 3>, + < 1689600000 4>, + < 1804800000 5>; + qcom,speed6-bin-v0-cci = + < 0 0>, + < 261120000 1>, + < 414720000 2>, + < 560640000 3>, + < 675840000 4>, + < 721920000 5>; + #clock-cells = <1>; + }; + + msm_cpufreq: qcom,msm-cpufreq { + compatible = "qcom,msm-cpufreq"; + clock-names = "l2_clk", "cpu0_clk", "cpu1_clk", "cpu2_clk", + "cpu3_clk", "cpu4_clk", "cpu5_clk", + "cpu6_clk", "cpu7_clk"; + clocks = <&clock_cpu clk_cci_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>; + + qcom,cpufreq-table = + < 652800 >, + < 1036800 >, + < 1401600 >, + < 1689600 >, + < 1804800 >, + < 1958400 >, + < 2016000 >, + < 2150400 >, + < 2208000 >; + }; + + cpubw: qcom,cpubw { + compatible = "qcom,devbw"; + governor = "cpufreq"; + qcom,src-dst-ports = <1 512>; + qcom,active-only; + qcom,bw-tbl = + < 769 /* 100.8 MHz */ >, + < 1611 /* 211.2 MHz */ >, /*Low SVS*/ + < 2124 /* 278.4 MHz */ >, + < 2929 /* 384 MHz */ >, + < 3221 /* 422.4 MHz */ >, /* SVS */ + < 4248 /* 556.8 MHz */ >, + < 5126 /* 672 MHz */ >, + < 5859 /* 768 MHz */ >, /* SVS+ */ + < 6152 /* 806.4 MHz */ >, + < 6445 /* 844.8 MHz */ >, /* NOM */ + < 7104 /* 931.2 MHz */ >; /* TURBO */ + }; + + mincpubw: qcom,mincpubw { + compatible = "qcom,devbw"; + governor = "cpufreq"; + qcom,src-dst-ports = <1 512>; + qcom,active-only; + qcom,bw-tbl = + < 769 /* 100.8 MHz */ >, + < 1611 /* 211.2 MHz */ >, /*Low SVS*/ + < 2124 /* 278.4 MHz */ >, + < 2929 /* 384 MHz */ >, + < 3221 /* 422.4 MHz */ >, /* SVS */ + < 4248 /* 556.8 MHz */ >, + < 5126 /* 672 MHz */ >, + < 5859 /* 768 MHz */ >, /* SVS+ */ + < 6152 /* 806.4 MHz */ >, + < 6445 /* 844.8 MHz */ >, /* NOM */ + < 7104 /* 931.2 MHz */ >; /* TURBO */ + }; + + qcom,cpu-bwmon { + compatible = "qcom,bimc-bwmon2"; + reg = <0x408000 0x300>, <0x401000 0x200>; + reg-names = "base", "global_base"; + interrupts = <0 183 4>; + qcom,mport = <0>; + qcom,target-dev = <&cpubw>; + }; + + devfreq-cpufreq { + cpubw-cpufreq { + target-dev = <&cpubw>; + cpu-to-dev-map = + < 652800 1611>, + < 1036800 3221>, + < 1401600 5859>, + < 1689600 6445>, + < 1804800 7104>, + < 1958400 7104>, + < 2208000 7104>; + }; + + mincpubw-cpufreq { + target-dev = <&mincpubw>; + cpu-to-dev-map = + < 652800 1611 >, + < 1401600 3221 >, + < 2208000 5859 >; + }; + }; + + rpm_bus: qcom,rpm-smd { + compatible = "qcom,rpm-smd"; + rpm-channel-name = "rpm_requests"; + rpm-channel-type = <15>; /* SMD_APPS_RPM */ + }; + + qcom,ipc-spinlock@1905000 { + compatible = "qcom,ipc-spinlock-sfpb"; + reg = <0x1905000 0x8000>; + qcom,num-locks = <8>; + }; + + qcom,smem@86300000 { + compatible = "qcom,smem"; + reg = <0x86300000 0x100000>, + <0x0b011008 0x4>, + <0x60000 0x8000>, + <0x193d000 0x8>; + reg-names = "smem", "irq-reg-base", + "aux-mem1", "smem_targ_info_reg"; + qcom,mpu-enabled; + + qcom,smd-modem { + compatible = "qcom,smd"; + qcom,smd-edge = <0>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x1000>; + interrupts = <0 25 1>; + label = "modem"; + qcom,not-loadable; + }; + + qcom,smsm-modem { + compatible = "qcom,smsm"; + qcom,smsm-edge = <0>; + qcom,smsm-irq-offset = <0x0>; + qcom,smsm-irq-bitmask = <0x2000>; + interrupts = <0 26 1>; + }; + + qcom,smd-wcnss { + compatible = "qcom,smd"; + qcom,smd-edge = <6>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x20000>; + interrupts = <0 142 1>; + label = "wcnss"; + }; + + qcom,smsm-wcnss { + compatible = "qcom,smsm"; + qcom,smsm-edge = <6>; + qcom,smsm-irq-offset = <0x0>; + qcom,smsm-irq-bitmask = <0x80000>; + interrupts = <0 144 1>; + }; + + qcom,smd-adsp { + compatible = "qcom,smd"; + qcom,smd-edge = <1>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x100>; + interrupts = <0 289 1>; + label = "adsp"; + }; + + qcom,smsm-adsp { + compatible = "qcom,smsm"; + qcom,smsm-edge = <1>; + qcom,smsm-irq-offset = <0x0>; + qcom,smsm-irq-bitmask = <0x200>; + interrupts = <0 290 1>; + }; + + qcom,smd-rpm { + compatible = "qcom,smd"; + qcom,smd-edge = <15>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x1>; + interrupts = <0 168 1>; + label = "rpm"; + qcom,irq-no-suspend; + qcom,not-loadable; + }; + }; + + qcom,wdt@b017000 { + compatible = "qcom,msm-watchdog"; + reg = <0xb017000 0x1000>; + reg-names = "wdt-base"; + interrupts = <0 3 0>, <0 4 0>; + qcom,bark-time = <11000>; + qcom,pet-time = <10000>; + qcom,ipi-ping; + qcom,wakeup-enable; + }; + + qcom,chd { + compatible = "qcom,core-hang-detect"; + qcom,threshold-arr = <0xb1880b0 0xb1980b0 0xb1a80b0 + 0xb1b80b0 0xb0880b0 0xb0980b0 0xb0a80b0 0xb0b80b0>; + qcom,config-arr = <0xb1880b8 0xb1980b8 0xb1a80b8 + 0xb1b80b8 0xb0880b8 0xb0980b8 0xb0a80b8 0xb0b80b8>; + }; + + qcom,msm-rtb { + compatible = "qcom,msm-rtb"; + qcom,rtb-size = <0x100000>; + }; + + qcom,msm-imem@8600000 { + compatible = "qcom,msm-imem"; + reg = <0x08600000 0x1000>; + ranges = <0x0 0x08600000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + + mem_dump_table@10 { + compatible = "qcom,msm-imem-mem_dump_table"; + reg = <0x10 8>; + }; + + dload_type@18 { + compatible = "qcom,msm-imem-dload-type"; + reg = <0x18 4>; + }; + + restart_reason@65c { + compatible = "qcom,msm-imem-restart_reason"; + reg = <0x65c 4>; + }; + + boot_stats@6b0 { + compatible = "qcom,msm-imem-boot_stats"; + reg = <0x6b0 32>; + }; + + pil@94c { + compatible = "qcom,msm-imem-pil"; + reg = <0x94c 200>; + + }; + }; + + qcom,memshare { + compatible = "qcom,memshare"; + + qcom,client_1 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <0x200000>; + qcom,client-id = <0>; + qcom,allocate-boot-time; + label = "modem"; + }; + + qcom,client_2 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <0x300000>; + qcom,client-id = <2>; + label = "modem"; + }; + + mem_client_3_size: qcom,client_3 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <0x0>; + qcom,client-id = <1>; + label = "modem"; + }; + }; + + jtag_fuse: jtagfuse@a601c { + compatible = "qcom,jtag-fuse-v2"; + reg = <0xa601c 0x8>; + reg-names = "fuse-base"; + }; + + sn_fuse: snfuse@0xa4128 { + compatible = "qcom,sn-fuse"; + reg = <0xa4128 0x4>; + reg-names = "sn-base"; + }; + + jtag_mm0: jtagmm@619c000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x619c000 0x1000>, + <0x6190000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm1: jtagmm@619d000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x619d000 0x1000>, + <0x6192000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm2: jtagmm@619e000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x619e000 0x1000>, + <0x6194000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU2>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm3: jtagmm@619f000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x619f000 0x1000>, + <0x6196000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU3>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm4: jtagmm@61bc000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x61bc000 0x1000>, + <0x61b0000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU4>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm5: jtagmm@61bd000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x61bd000 0x1000>, + <0x61b2000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU5>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm6: jtagmm@61be000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x61be000 0x1000>, + <0x61b4000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU6>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm7: jtagmm@61bf000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x61bf000 0x1000>, + <0x61b6000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU7>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + ipa_hw: qcom,ipa@07900000 { + compatible = "qcom,ipa"; + reg = <0x07900000 0x4effc>, <0x07904000 0x26934>; + reg-names = "ipa-base", "bam-base"; + interrupts = <0 228 0>, + <0 230 0>; + interrupt-names = "ipa-irq", "bam-irq"; + qcom,ipa-hw-ver = <6>; /* IPA core version = IPAv2.6L */ + qcom,ipa-hw-mode = <0>; /* IPA hw type = Normal */ + qcom,wan-rx-ring-size = <192>; /* IPA WAN-rx-ring-size*/ + qcom,lan-rx-ring-size = <192>; /* IPA LAN-rx-ring-size*/ + clock-names = "core_clk"; + clocks = <&clock_gcc clk_ipa_clk>; + qcom,ee = <0>; + qcom,use-ipa-tethering-bridge; + qcom,modem-cfg-emb-pipe-flt; + qcom,msm-bus,name = "ipa"; + qcom,msm-bus,num-cases = <3>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <90 512 0 0>, /* No BIMC vote (ab=0 Mbps, ib=0 Mbps ~ 0MHZ) */ + <90 512 100000 800000>, /* SVS (ab=100, ib=800 ~ 50MHz) */ + <90 512 100000 1200000>; /* PERF (ab=100, ib=1200 ~ 75MHz) */ + qcom,bus-vector-names = "MIN", "SVS", "PERF"; + }; + + qcom,rmnet-ipa { + compatible = "qcom,rmnet-ipa"; + qcom,rmnet-ipa-ssr; + qcom,ipa-loaduC; + qcom,ipa-advertise-sg-support; + }; + + qcom,smdtty { + compatible = "qcom,smdtty"; + + smdtty_apps_fm: qcom,smdtty-apps-fm { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_FM"; + }; + + smdtty_apps_riva_bt_acl: smdtty-apps-riva-bt-acl { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_RIVA_BT_ACL"; + }; + + smdtty_apps_riva_bt_cmd: qcom,smdtty-apps-riva-bt-cmd { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_RIVA_BT_CMD"; + }; + + smdtty_mbalbridge: qcom,smdtty-mbalbridge { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "MBALBRIDGE"; + }; + + smdtty_apps_riva_ant_cmd: smdtty-apps-riva-ant-cmd { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_RIVA_ANT_CMD"; + }; + + smdtty_apps_riva_ant_data: smdtty-apps-riva-ant-data { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_RIVA_ANT_DATA"; + }; + + smdtty_data1: qcom,smdtty-data1 { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "DATA1"; + }; + + smdtty_data4: qcom,smdtty-data4 { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "DATA4"; + }; + + smdtty_data11: qcom,smdtty-data11 { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "DATA11"; + }; + + smdtty_data21: qcom,smdtty-data21 { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "DATA21"; + }; + + smdtty_loopback: smdtty-loopback { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "LOOPBACK"; + qcom,smdtty-dev-name = "LOOPBACK_TTY"; + }; + }; + + qcom,smdpkt { + compatible = "qcom,smdpkt"; + + qcom,smdpkt-data5-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA5_CNTL"; + qcom,smdpkt-dev-name = "smdcntl0"; + }; + + qcom,smdpkt-data22 { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA22"; + qcom,smdpkt-dev-name = "smd22"; + }; + + qcom,smdpkt-data40-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA40_CNTL"; + qcom,smdpkt-dev-name = "smdcntl8"; + }; + + qcom,smdpkt-apr-apps2 { + qcom,smdpkt-remote = "adsp"; + qcom,smdpkt-port-name = "apr_apps2"; + qcom,smdpkt-dev-name = "apr_apps2"; + }; + + qcom,smdpkt-loopback { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "LOOPBACK"; + qcom,smdpkt-dev-name = "smd_pkt_loopback"; + }; + }; + + qcom,iris-fm { + compatible = "qcom,iris_fm"; + }; + + qcom,wcnss-wlan@0a000000 { + compatible = "qcom,wcnss_wlan"; + reg = <0x0a000000 0x280000>, + <0x0b011008 0x04>, + <0x0a21b000 0x3000>, + <0x03204000 0x00000100>, + <0x03200800 0x00000200>, + <0x0a100400 0x00000200>, + <0x0a205050 0x00000200>, + <0x0a219000 0x00000020>, + <0x0a080488 0x00000008>, + <0x0a080fb0 0x00000008>, + <0x0a08040c 0x00000008>, + <0x0a0120a8 0x00000008>, + <0x0a012448 0x00000008>, + <0x0a080c00 0x00000001>; + + reg-names = "wcnss_mmio", "wcnss_fiq", + "pronto_phy_base", "riva_phy_base", + "riva_ccu_base", "pronto_a2xb_base", + "pronto_ccpu_base", "pronto_saw2_base", + "wlan_tx_phy_aborts","wlan_brdg_err_source", + "wlan_tx_status", "alarms_txctl", + "alarms_tactl", "pronto_mcu_base"; + + interrupts = <0 145 0 0 146 0>; + interrupt-names = "wcnss_wlantx_irq", "wcnss_wlanrx_irq"; + + qcom,pronto-vddmx-supply = <&pm8953_s7_level_ao>; + qcom,pronto-vddcx-supply = <&pm8953_s2_level>; + qcom,pronto-vddpx-supply = <&pm8953_l5>; + qcom,iris-vddxo-supply = <&pm8953_l7>; + qcom,iris-vddrfa-supply = <&pm8953_l19>; + qcom,iris-vddpa-supply = <&pm8953_l9>; + qcom,iris-vdddig-supply = <&pm8953_l5>; + + qcom,iris-vddxo-voltage-level = <1800000 0 1800000>; + qcom,iris-vddrfa-voltage-level = <1300000 0 1300000>; + qcom,iris-vddpa-voltage-level = <3300000 0 3300000>; + qcom,iris-vdddig-voltage-level = <1800000 0 1800000>; + + qcom,vddmx-voltage-level = ; + qcom,vddcx-voltage-level = ; + qcom,vddpx-voltage-level = <1800000 0 1800000>; + + qcom,iris-vddxo-current = <10000>; + qcom,iris-vddrfa-current = <100000>; + qcom,iris-vddpa-current = <515000>; + qcom,iris-vdddig-current = <10000>; + + qcom,pronto-vddmx-current = <0>; + qcom,pronto-vddcx-current = <0>; + qcom,pronto-vddpx-current = <0>; + + pinctrl-names = "wcnss_default", "wcnss_sleep", + "wcnss_gpio_default"; + pinctrl-0 = <&wcnss_default>; + pinctrl-1 = <&wcnss_sleep>; + pinctrl-2 = <&wcnss_gpio_default>; + + gpios = <&tlmm 76 0>, <&tlmm 77 0>, <&tlmm 78 0>, + <&tlmm 79 0>, <&tlmm 80 0>; + + clocks = <&clock_gcc clk_xo_wlan_clk>, + <&clock_gcc clk_rf_clk2>, + <&clock_debug clk_gcc_debug_mux>, + <&clock_gcc clk_wcnss_m_clk>; + + clock-names = "xo", "rf_clk", "measure", "wcnss_debug"; + + qcom,has-autodetect-xo; + qcom,is-pronto-v3; + qcom,has-pronto-hw; + qcom,has-vsys-adc-channel; + qcom,has-a2xb-split-reg; + qcom,wcnss-adc_tm = <&pm8953_adc_tm>; + }; + + qcom_rng: qrng@e3000 { + compatible = "qcom,msm-rng"; + reg = <0xe3000 0x1000>; + qcom,msm-rng-iface-clk; + qcom,no-qrng-config; + qcom,msm-bus,name = "msm-rng-noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <1 618 0 0>, /* No vote */ + <1 618 0 800>; /* 100 MB/s */ + clocks = <&clock_gcc clk_gcc_prng_ahb_clk>; + clock-names = "iface_clk"; + }; + + qcom_tzlog: tz-log@08600720 { + compatible = "qcom,tz-log"; + reg = <0x08600720 0x2000>; + }; + + qcom_crypto: qcrypto@720000 { + compatible = "qcom,qcrypto"; + reg = <0x720000 0x20000>, + <0x704000 0x20000>; + reg-names = "crypto-base","crypto-bam-base"; + interrupts = <0 207 0>; + qcom,bam-pipe-pair = <2>; + qcom,ce-hw-instance = <0>; + qcom,ce-device = <0>; + qcom,ce-hw-shared; + qcom,clk-mgmt-sus-res; + qcom,msm-bus,name = "qcrypto-noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 393600 393600>; + clocks = <&clock_gcc clk_crypto_clk_src>, + <&clock_gcc clk_gcc_crypto_clk>, + <&clock_gcc clk_gcc_crypto_ahb_clk>, + <&clock_gcc clk_gcc_crypto_axi_clk>; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + qcom,use-sw-aes-cbc-ecb-ctr-algo; + qcom,use-sw-aes-xts-algo; + qcom,use-sw-aes-ccm-algo; + qcom,use-sw-ahash-algo; + qcom,use-sw-hmac-algo; + qcom,use-sw-aead-algo; + qcom,ce-opp-freq = <100000000>; + }; + + qcom_cedev: qcedev@720000 { + compatible = "qcom,qcedev"; + reg = <0x720000 0x20000>, + <0x704000 0x20000>; + reg-names = "crypto-base","crypto-bam-base"; + interrupts = <0 207 0>; + qcom,bam-pipe-pair = <1>; + qcom,ce-hw-instance = <0>; + qcom,ce-device = <0>; + qcom,ce-hw-shared; + qcom,msm-bus,name = "qcedev-noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 393600 393600>; + clocks = <&clock_gcc clk_crypto_clk_src>, + <&clock_gcc clk_gcc_crypto_clk>, + <&clock_gcc clk_gcc_crypto_ahb_clk>, + <&clock_gcc clk_gcc_crypto_axi_clk>; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + qcom,ce-opp-freq = <100000000>; + }; + + qcom_seecom: qseecom@84a00000 { + compatible = "qcom,qseecom"; + reg = <0x84a00000 0x1900000>; + reg-names = "secapp-region"; + qcom,hlos-num-ce-hw-instances = <1>; + qcom,hlos-ce-hw-instance = <0>; + qcom,qsee-ce-hw-instance = <0>; + qcom,disk-encrypt-pipe-pair = <2>; + qcom,support-fde; + qcom,msm-bus,name = "qseecom-noc"; + qcom,msm-bus,num-cases = <4>; + qcom,msm-bus,num-paths = <1>; + qcom,detect-dpdm-floating; + qcom,support-bus-scaling; + qcom,appsbl-qseecom-support; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 0 0>, + <55 512 120000 1200000>, + <55 512 393600 3936000>; + clocks = <&clock_gcc clk_crypto_clk_src>, + <&clock_gcc clk_gcc_crypto_clk>, + <&clock_gcc clk_gcc_crypto_ahb_clk>, + <&clock_gcc clk_gcc_crypto_axi_clk>; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + qcom,ce-opp-freq = <100000000>; + }; + + qcom,ipc_router { + compatible = "qcom,ipc_router"; + qcom,node-id = <1>; + }; + + qcom,ipc_router_modem_xprt { + compatible = "qcom,ipc_router_smd_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "modem"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + qcom,disable-pil-loading; + }; + + qcom,ipc_router_q6_xprt { + compatible = "qcom,ipc_router_smd_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "adsp"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + }; + + qcom,ipc_router_wcnss_xprt { + compatible = "qcom,ipc_router_smd_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "wcnss"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + }; + + qcom,adsprpc-mem { + compatible = "qcom,msm-adsprpc-mem-region"; + memory-region = <&adsp_mem>; + }; + + qcom,adsprpc_domains { + compatible = "qcom,msm-fastrpc-legacy-compute-cb"; + qcom,msm_fastrpc_compute_cb { + qcom,adsp-shared-phandle = <&adsp_shared>; + qcom,adsp-shared-sids = + <0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf>; + qcom,virtual-addr-pool = <0x80000000 0x7FFFFFFF>; + }; + }; + + sdcc1_ice: sdcc1ice@7803000 { + compatible = "qcom,ice"; + reg = <0x7803000 0x8000>; + interrupt-names = "sdcc_ice_nonsec_level_irq", + "sdcc_ice_sec_level_irq"; + interrupts = <0 312 0>, <0 313 0>; + qcom,enable-ice-clk; + clock-names = "ice_core_clk_src", "ice_core_clk", + "bus_clk", "iface_clk"; + clocks = <&clock_gcc clk_sdcc1_ice_core_clk_src>, + <&clock_gcc clk_gcc_sdcc1_ice_core_clk>, + <&clock_gcc clk_gcc_sdcc1_apps_clk>, + <&clock_gcc clk_gcc_sdcc1_ahb_clk>; + qcom,op-freq-hz = <270000000>, <0>, <0>, <0>; + qcom,msm-bus,name = "sdcc_ice_noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <78 512 0 0>, /* No vote */ + <78 512 1000 0>; /* Max. bandwidth */ + qcom,bus-vector-names = "MIN", "MAX"; + qcom,instance-type = "sdcc"; + }; + + sdhc_1: sdhci@7824900 { + compatible = "qcom,sdhci-msm"; + reg = <0x7824900 0x500>, <0x7824000 0x800>, <0x7824e00 0x200>; + reg-names = "hc_mem", "core_mem", "cmdq_mem"; + + interrupts = <0 123 0>, <0 138 0>; + interrupt-names = "hc_irq", "pwr_irq"; + + sdhc-msm-crypto = <&sdcc1_ice>; + qcom,bus-width = <8>; + + qcom,devfreq,freq-table = <50000000 200000000>; + + qcom,pm-qos-irq-type = "affine_irq"; + qcom,pm-qos-irq-latency = <2 213>; + + qcom,pm-qos-cpu-groups = <0x0f 0xf0>; + qcom,pm-qos-cmdq-latency-us = <2 213>, <2 213>; + + qcom,pm-qos-legacy-latency-us = <2 213>, <2 213>; + + qcom,msm-bus,name = "sdhc1"; + qcom,msm-bus,num-cases = <9>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = <78 512 0 0>, /* No vote */ + <78 512 1046 3200>, /* 400 KB/s*/ + <78 512 52286 160000>, /* 20 MB/s */ + <78 512 65360 200000>, /* 25 MB/s */ + <78 512 130718 400000>, /* 50 MB/s */ + <78 512 130718 400000>, /* 100 MB/s */ + <78 512 261438 800000>, /* 200 MB/s */ + <78 512 261438 800000>, /* 400 MB/s */ + <78 512 1338562 4096000>; /* Max. bandwidth */ + qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000 + 100000000 200000000 400000000 4294967295>; + + clocks = <&clock_gcc clk_gcc_sdcc1_ahb_clk>, + <&clock_gcc clk_gcc_sdcc1_apps_clk>, + <&clock_gcc clk_gcc_sdcc1_ice_core_clk>; + clock-names = "iface_clk", "core_clk", "ice_core_clk"; + qcom,ice-clk-rates = <270000000 160000000>; + qcom,large-address-bus; + + status = "disabled"; + }; + + sdhc_2: sdhci@7864900 { + compatible = "qcom,sdhci-msm"; + reg = <0x7864900 0x500>, <0x7864000 0x800>; + reg-names = "hc_mem", "core_mem"; + + interrupts = <0 125 0>, <0 221 0>; + interrupt-names = "hc_irq", "pwr_irq"; + + qcom,bus-width = <4>; + + qcom,pm-qos-irq-type = "affine_irq"; + qcom,pm-qos-irq-latency = <2 213>; + + qcom,pm-qos-cpu-groups = <0x0f 0xf0>; + qcom,pm-qos-legacy-latency-us = <2 213>, <2 213>; + + qcom,devfreq,freq-table = <50000000 200000000>; + + qcom,msm-bus,name = "sdhc2"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = <81 512 0 0>, /* No vote */ + <81 512 1046 3200>, /* 400 KB/s*/ + <81 512 52286 160000>, /* 20 MB/s */ + <81 512 65360 200000>, /* 25 MB/s */ + <81 512 130718 400000>, /* 50 MB/s */ + <81 512 261438 800000>, /* 100 MB/s */ + <81 512 261438 800000>, /* 200 MB/s */ + <81 512 1338562 4096000>; /* Max. bandwidth */ + qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000 + 100000000 200000000 4294967295>; + + clocks = <&clock_gcc clk_gcc_sdcc2_ahb_clk>, + <&clock_gcc clk_gcc_sdcc2_apps_clk>; + clock-names = "iface_clk", "core_clk"; + + qcom,large-address-bus; + status = "disabled"; + }; + + spmi_bus: qcom,spmi@200f000 { + compatible = "qcom,spmi-pmic-arb"; + reg = <0x200f000 0x1000>, + <0x2400000 0x800000>, + <0x2c00000 0x800000>, + <0x3800000 0x200000>, + <0x200a000 0x2100>; + reg-names = "core", "chnls", "obsrvr", "intr", "cnfg"; + interrupts = <0 190 0>; + qcom,pmic-arb-channel = <0>; + qcom,pmic-arb-max-peripherals = <256>; + qcom,pmic-arb-max-periph-interrupts = <256>; + qcom,pmic-arb-ee = <0>; + #interrupt-cells = <3>; + interrupt-controller; + #address-cells = <1>; + #size-cells = <0>; + cell-index = <0>; + }; + + qcom,memshare { + compatible = "qcom,memshare"; + + qcom,client_1 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <0x200000>; + qcom,client-id = <0>; + qcom,allocate-boot-time; + label = "modem"; + }; + + qcom,client_2 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <0x300000>; + qcom,client-id = <2>; + label = "modem"; + }; + + qcom,client_3 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <0x0>; + qcom,client-id = <1>; + label = "modem"; + }; + }; + + qcom,mss@4080000 { + compatible = "qcom,pil-q6v55-mss"; + reg = <0x04080000 0x100>, + <0x0194f000 0x010>, + <0x01950000 0x008>, + <0x01951000 0x008>, + <0x04020000 0x040>, + <0x01871000 0x004>; + reg-names = "qdsp6_base", "halt_q6", "halt_modem", "halt_nc", + "rmb_base", "restart_reg"; + + interrupts = <0 24 1>; + vdd_mss-supply = <&pm8953_s1>; + vdd_cx-supply = <&pm8953_s2_level>; + vdd_cx-voltage = ; + vdd_mx-supply = <&pm8953_s7_level_ao>; + vdd_mx-uV = ; + vdd_pll-supply = <&pm8953_l7>; + qcom,vdd_pll = <1800000>; + + clocks = <&clock_gcc clk_xo_pil_mss_clk>, + <&clock_gcc clk_gcc_mss_cfg_ahb_clk>, + <&clock_gcc clk_gcc_mss_q6_bimc_axi_clk>, + <&clock_gcc clk_gcc_boot_rom_ahb_clk>; + clock-names = "xo", "iface_clk", "bus_clk", "mem_clk"; + qcom,proxy-clock-names = "xo"; + qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk"; + + qcom,pas-id = <5>; + qcom,pil-mss-memsetup; + qcom,firmware-name = "modem"; + qcom,pil-self-auth; + qcom,sysmon-id = <0>; + qcom,ssctl-instance-id = <0x12>; + qcom,qdsp6v56-1-10; + + /* GPIO inputs from mss */ + qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_1_in 0 0>; + qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_1_in 1 0>; + qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_1_in 2 0>; + qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_1_in 3 0>; + qcom,gpio-shutdown-ack = <&smp2pgpio_ssr_smp2p_1_in 7 0>; + + /* GPIO output to mss */ + qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_1_out 0 0>; + memory-region = <&modem_mem>; + }; + + qcom,lpass@c200000 { + compatible = "qcom,pil-tz-generic"; + reg = <0xc200000 0x00100>; + interrupts = <0 293 1>; + + vdd_cx-supply = <&pm8953_s2_level>; + qcom,proxy-reg-names = "vdd_cx"; + qcom,vdd_cx-uV-uA = ; + + clocks = <&clock_gcc clk_xo_pil_lpass_clk>, + <&clock_gcc clk_gcc_crypto_clk>, + <&clock_gcc clk_gcc_crypto_ahb_clk>, + <&clock_gcc clk_gcc_crypto_axi_clk>, + <&clock_gcc clk_crypto_clk_src>; + clock-names = "xo", "scm_core_clk", "scm_iface_clk", + "scm_bus_clk", "scm_core_clk_src"; + qcom,proxy-clock-names = "xo", "scm_core_clk", "scm_iface_clk", + "scm_bus_clk", "scm_core_clk_src"; + qcom,scm_core_clk_src-freq = <80000000>; + + qcom,pas-id = <1>; + qcom,complete-ramdump; + qcom,proxy-timeout-ms = <10000>; + qcom,smem-id = <423>; + qcom,sysmon-id = <1>; + qcom,ssctl-instance-id = <0x14>; + qcom,firmware-name = "adsp"; + + /* GPIO inputs from lpass */ + qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_2_in 0 0>; + qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_2_in 2 0>; + qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_2_in 1 0>; + qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_2_in 3 0>; + + /* GPIO output to lpass */ + qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_2_out 0 0>; + + memory-region = <&adsp_fw_mem>; + }; + + qcom,venus@1de0000 { + compatible = "qcom,pil-tz-generic"; + reg = <0x1de0000 0x4000>; + + vdd-supply = <&gdsc_venus>; + qcom,proxy-reg-names = "vdd"; + + clocks = <&clock_gcc clk_gcc_venus0_vcodec0_clk>, + <&clock_gcc clk_gcc_venus0_ahb_clk>, + <&clock_gcc clk_gcc_venus0_axi_clk>, + <&clock_gcc clk_gcc_crypto_clk>, + <&clock_gcc clk_gcc_crypto_ahb_clk>, + <&clock_gcc clk_gcc_crypto_axi_clk>, + <&clock_gcc clk_crypto_clk_src>; + + clock-names = "core_clk", "iface_clk", "bus_clk", + "scm_core_clk", "scm_iface_clk", + "scm_bus_clk", "scm_core_clk_src"; + + qcom,proxy-clock-names = "core_clk", "iface_clk", + "bus_clk", "scm_core_clk", + "scm_iface_clk", "scm_bus_clk", + "scm_core_clk_src"; + qcom,scm_core_clk_src-freq = <80000000>; + + qcom,msm-bus,name = "pil-venus"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <63 512 0 0>, + <63 512 0 304000>; + + qcom,pas-id = <9>; + qcom,proxy-timeout-ms = <100>; + qcom,firmware-name = "venus"; + memory-region = <&venus_mem>; + }; + + qcom,msm-ssc-sensors { + compatible = "qcom,msm-ssc-sensors"; + }; + + qcom,pronto@a21b000 { + compatible = "qcom,pil-tz-generic"; + reg = <0x0a21b000 0x3000>; + interrupts = <0 149 1>; + + vdd_pronto_pll-supply = <&pm8953_l7>; + proxy-reg-names = "vdd_pronto_pll"; + vdd_pronto_pll-uV-uA = <1800000 18000>; + clocks = <&clock_gcc clk_xo_pil_pronto_clk>, + <&clock_gcc clk_gcc_crypto_clk>, + <&clock_gcc clk_gcc_crypto_ahb_clk>, + <&clock_gcc clk_gcc_crypto_axi_clk>, + <&clock_gcc clk_crypto_clk_src>; + + clock-names = "xo", "scm_core_clk", "scm_iface_clk", + "scm_bus_clk", "scm_core_clk_src"; + qcom,proxy-clock-names = "xo", "scm_core_clk", "scm_iface_clk", + "scm_bus_clk", "scm_core_clk_src"; + qcom,scm_core_clk_src = <80000000>; + + qcom,pas-id = <6>; + qcom,proxy-timeout-ms = <10000>; + qcom,smem-id = <422>; + qcom,sysmon-id = <6>; + qcom,ssctl-instance-id = <0x13>; + qcom,firmware-name = "wcnss"; + + /* GPIO inputs from wcnss */ + qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_4_in 0 0>; + qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_4_in 1 0>; + qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_4_in 2 0>; + qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_4_in 3 0>; + + /* GPIO output to wcnss */ + qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_4_out 0 0>; + memory-region = <&wcnss_fw_mem>; + }; + + usb3: ssusb@7000000{ + compatible = "qcom,dwc-usb3-msm"; + reg = <0x07000000 0xfc000>, + <0x0007e000 0x400>; + reg-names = "core_base", + "ahb2phy_base"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + interrupts = <0 136 0>, <0 220 0>, <0 134 0>; + interrupt-names = "hs_phy_irq", "ss_phy_irq", "pwr_event_irq"; + + USB3_GDSC-supply = <&gdsc_usb30>; + vbus_dwc3-supply = <&smbcharger_charger_otg>; + qcom,usb-dbm = <&dbm_1p5>; + qcom,msm-bus,name = "usb3"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <61 512 0 0>, + <61 512 240000 800000>; + + qcom,dwc-usb3-msm-tx-fifo-size = <21288>; + + clocks = <&clock_gcc clk_gcc_usb30_master_clk>, + <&clock_gcc clk_gcc_pcnoc_usb3_axi_clk>, + <&clock_gcc clk_gcc_usb30_mock_utmi_clk>, + <&clock_gcc clk_gcc_usb30_sleep_clk>, + <&clock_gcc clk_xo_dwc3_clk>, + <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>; + + clock-names = "core_clk", "iface_clk", "utmi_clk", + "sleep_clk", "xo", "cfg_ahb_clk"; + + dwc3@7000000 { + compatible = "snps,dwc3"; + reg = <0x07000000 0xc8d0>; + interrupt-parent = <&intc>; + interrupts = <0 140 0>; + usb-phy = <&qusb_phy>, <&ssphy>; + tx-fifo-resize; + snps,usb3-u1u2-disable; + snps,nominal-elastic-buffer; + snps,is-utmi-l1-suspend; + snps,hird-threshold = /bits/ 8 <0x0>; + }; + + qcom,usbbam@7104000 { + compatible = "qcom,usb-bam-msm"; + reg = <0x07104000 0x1a934>; + interrupt-parent = <&intc>; + interrupts = <0 135 0>; + + qcom,bam-type = <0>; + qcom,usb-bam-fifo-baseaddr = <0x08605000>; + qcom,usb-bam-num-pipes = <8>; + qcom,ignore-core-reset-ack; + qcom,disable-clk-gating; + qcom,usb-bam-override-threshold = <0x4001>; + qcom,usb-bam-max-mbps-highspeed = <400>; + qcom,usb-bam-max-mbps-superspeed = <3600>; + qcom,reset-bam-on-connect; + + qcom,pipe0 { + label = "ssusb-ipa-out-0"; + qcom,usb-bam-mem-type = <1>; + qcom,dir = <0>; + qcom,pipe-num = <0>; + qcom,peer-bam = <1>; + qcom,src-bam-pipe-index = <1>; + qcom,data-fifo-size = <0x8000>; + qcom,descriptor-fifo-size = <0x2000>; + }; + + qcom,pipe1 { + label = "ssusb-ipa-in-0"; + qcom,usb-bam-mem-type = <1>; + qcom,dir = <1>; + qcom,pipe-num = <0>; + qcom,peer-bam = <1>; + qcom,dst-bam-pipe-index = <0>; + qcom,data-fifo-size = <0x8000>; + qcom,descriptor-fifo-size = <0x2000>; + }; + + qcom,pipe2 { + label = "ssusb-qdss-in-0"; + qcom,usb-bam-mem-type = <2>; + qcom,dir = <1>; + qcom,pipe-num = <0>; + qcom,peer-bam = <0>; + qcom,peer-bam-physical-address = <0x06044000>; + qcom,src-bam-pipe-index = <0>; + qcom,dst-bam-pipe-index = <2>; + qcom,data-fifo-offset = <0x0>; + qcom,data-fifo-size = <0xe00>; + qcom,descriptor-fifo-offset = <0xe00>; + qcom,descriptor-fifo-size = <0x200>; + }; + + qcom,pipe3 { + label = "ssusb-dpl-ipa-in-1"; + qcom,usb-bam-mem-type = <1>; + qcom,dir = <1>; + qcom,pipe-num = <1>; + qcom,peer-bam = <1>; + qcom,dst-bam-pipe-index = <2>; + qcom,data-fifo-size = <0x8000>; + qcom,descriptor-fifo-size = <0x2000>; + }; + }; + }; + + qusb_phy: qusb@79000 { + compatible = "qcom,qusb2phy"; + reg = <0x079000 0x180>, + <0x070f8800 0x400>, + <0x01841030 0x4>, + <0x0193f044 0x4>, + <0x0193f020 0x4>; + reg-names = "qusb_phy_base", + "qscratch_base", + "ref_clk_addr", + "tcsr_phy_clk_scheme_sel", + "tcsr_phy_level_shift_keeper"; + + USB3_GDSC-supply = <&gdsc_usb30>; + vdd-supply = <&pm8953_l3>; + vdda18-supply = <&pm8953_l7>; + vdda33-supply = <&pm8953_l13>; + qcom,vdd-voltage-level = <0 925000 925000>; + + qcom,qusb-phy-init-seq = <0xF8 0x80 + 0x53 0x84 + 0x93 0x88 + 0xCf 0x8C + 0x14 0x9C + 0x30 0x08 + 0x79 0x0C + 0x21 0x10 + 0x00 0x90 + 0x9F 0x1C + 0x00 0x18>; + phy_type= "utmi"; + + clocks = <&clock_gcc clk_bb_clk1>, + <&clock_gcc clk_gcc_qusb_ref_clk>, + <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>, + <&clock_gcc clk_gcc_qusb2_phy_reset>, + <&clock_gcc clk_gcc_pcnoc_usb3_axi_clk>, + <&clock_gcc clk_gcc_usb30_master_clk>; + + clock-names = "ref_clk_src", "ref_clk", "cfg_ahb_clk", + "phy_reset", "iface_clk", "core_clk"; + + }; + + usb_nop_phy: usb_nop_phy { + status = "disabled"; + compatible = "usb-nop-xceiv"; + }; + + + ssphy: ssphy@78000 { + compatible = "qcom,usb-ssphy-qmp"; + reg = <0x78000 0x9f8>, + <0x0193f244 0x4>, + <0x0193f044 0x4>; + reg-names = "qmp_phy_base", + "vls_clamp_reg", + "tcsr_phy_clk_scheme_sel"; + qcom,qmp-phy-init-seq = <0xac 0x14 0x1a 0x00 + 0x34 0x08 0x08 0x00 + 0x174 0x30 0x30 0x00 + 0x3c 0x06 0x06 0x00 + 0xb4 0x00 0x00 0x00 + 0xb8 0x08 0x08 0x00 + 0x194 0x06 0x06 0x3e8 + 0x19c 0x01 0x01 0x00 + 0x178 0x00 0x00 0x00 + 0xd0 0x82 0x82 0x00 + 0xdc 0x55 0x55 0x00 + 0xe0 0x55 0x55 0x00 + 0xe4 0x03 0x03 0x00 + 0x78 0x0b 0x0b 0x00 + 0x84 0x16 0x16 0x00 + 0x90 0x28 0x28 0x00 + 0x108 0x80 0x80 0x00 + 0x10c 0x00 0x00 0x00 + 0x184 0x0a 0x0a 0x00 + 0x4c 0x15 0x15 0x00 + 0x50 0x34 0x34 0x00 + 0x54 0x00 0x00 0x00 + 0xc8 0x00 0x00 0x00 + 0x18c 0x00 0x00 0x00 + 0xcc 0x00 0x00 0x00 + 0x128 0x00 0x00 0x00 + 0x0c 0x0a 0x0a 0x00 + 0x10 0x01 0x01 0x00 + 0x1c 0x31 0x31 0x00 + 0x20 0x01 0x01 0x00 + 0x14 0x00 0x00 0x00 + 0x18 0x00 0x00 0x00 + 0x24 0xde 0xde 0x00 + 0x28 0x07 0x07 0x00 + 0x48 0x0f 0x0f 0x00 + 0x70 0x0f 0x0f 0x00 + 0x100 0x80 0x80 0x00 + 0x440 0x0b 0x0b 0x00 + 0x4d8 0x02 0x02 0x00 + 0x4dc 0x6c 0x6c 0x00 + 0x4e0 0xbb 0xbb 0x00 + 0x508 0x77 0x77 0x00 + 0x50c 0x80 0x80 0x00 + 0x514 0x03 0x03 0x00 + 0x51c 0x16 0x16 0x00 + 0x448 0x75 0x75 0x00 + 0x454 0x00 0x00 0x00 + 0x40c 0x0a 0x0a 0x00 + 0x41c 0x06 0x06 0x00 + 0x510 0x00 0x00 0x00 + 0x268 0x45 0x45 0x00 + 0x2ac 0x12 0x12 0x00 + 0x294 0x06 0x06 0x00 + 0x254 0x00 0x00 0x00 + 0x8c8 0x83 0x83 0x00 + 0x8c4 0x02 0x02 0x00 + 0x8cc 0x09 0x09 0x00 + 0x8d0 0xa2 0xa2 0x00 + 0x8d4 0x85 0x85 0x00 + 0x880 0xd1 0xd1 0x00 + 0x884 0x1f 0x1f 0x00 + 0x888 0x47 0x47 0x00 + 0x80c 0x9f 0x9f 0x00 + 0x824 0x17 0x17 0x00 + 0x828 0x0f 0x0f 0x00 + 0x8b8 0x75 0x75 0x00 + 0x8bc 0x13 0x13 0x00 + 0x8b0 0x86 0x86 0x00 + 0x8a0 0x04 0x04 0x00 + 0x88c 0x44 0x44 0x00 + 0x870 0xe7 0xe7 0x00 + 0x874 0x03 0x03 0x00 + 0x878 0x40 0x40 0x00 + 0x87c 0x00 0x00 0x00 + 0x9d8 0x88 0x88 0x00 + 0xffffffff 0xffffffff 0x00 0x00>; + qcom,qmp-phy-reg-offset = <0x988 0x98c 0x990 0x994 + 0x974 0x8d8 0x8dc 0x804 0x800 + 0x808>; + vdd-supply = <&pm8953_l3>; + vdda18-supply = <&pm8953_l7>; + qcom,vdd-voltage-level = <0 925000 925000>; + qcom,vbus-valid-override; + + clocks = <&clock_gcc clk_gcc_usb3_aux_clk>, + <&clock_gcc clk_gcc_usb3_pipe_clk>, + <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>, + <&clock_gcc clk_gcc_usb3_phy_reset>, + <&clock_gcc clk_gcc_usb3phy_phy_reset>, + <&clock_gcc clk_bb_clk1>, + <&clock_gcc clk_gcc_usb_ss_ref_clk>; + + clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk", "phy_reset", + "phy_phy_reset", "ref_clk_src", "ref_clk"; + + }; + + usb_audio_qmi_dev { + compatible = "qcom,usb-audio-qmi-dev"; + qcom,usb-audio-intr-num = <2>; + }; + + dbm_1p5: dbm@70f8000 { + compatible = "qcom,usb-dbm-1p5"; + reg = <0x070f8000 0x300>; + qcom,reset-ep-after-lpm-resume; + }; + + android_usb@86000c8 { + compatible = "qcom,android-usb"; + reg = <0x086000c8 0xc8>; + qcom,pm-qos-latency = <2 213 11028>; + }; +}; + +#include "../../../msm-pm8953-rpm-regulator.dtsi" +#include "../qcom/msm-pm8953.dtsi" +#include "../../../msm8953-regulator.dtsi" +#include "../qcom/msm-pmi8950.dtsi" +#include "../qcom/msm-audio.dtsi" +#include "msm8953-audio.dtsi" +#include "../../../msm-gdsc-8916.dtsi" +#include "../../../msm8953-camera.dtsi" +#include "../../../msm8953-mdss.dtsi" +#include "msm8953-mdss-pll.dtsi" + +&gdsc_venus { + clock-names = "bus_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_venus0_axi_clk>, + <&clock_gcc clk_gcc_venus0_vcodec0_clk>; + status = "okay"; +}; + +&gdsc_venus_core0 { + qcom,support-hw-trigger; + clock-names ="core0_clk"; + clocks = <&clock_gcc clk_gcc_venus0_core0_vcodec0_clk>; + status = "okay"; +}; + +&gdsc_mdss { + clock-names = "core_clk", "bus_clk"; + clocks = <&clock_gcc clk_gcc_mdss_mdp_clk>, + <&clock_gcc clk_gcc_mdss_axi_clk>; + proxy-supply = <&gdsc_mdss>; + qcom,proxy-consumer-enable; + status = "okay"; +}; + +&gdsc_oxili_gx { + clock-names = "core_root_clk"; + clocks =<&clock_gcc_gfx clk_gfx3d_clk_src>; + qcom,force-enable-root-clk; + parent-supply = <&gfx_vreg_corner>; + status = "okay"; +}; + +&gdsc_jpeg { + clock-names = "core_clk", "bus_clk"; + clocks = <&clock_gcc clk_gcc_camss_jpeg0_clk>, + <&clock_gcc clk_gcc_camss_jpeg_axi_clk>; + status = "okay"; +}; + +&gdsc_vfe { + clock-names = "core_clk", "bus_clk", "micro_clk", + "csi_clk"; + clocks = <&clock_gcc clk_gcc_camss_vfe0_clk>, + <&clock_gcc clk_gcc_camss_vfe_axi_clk>, + <&clock_gcc clk_gcc_camss_micro_ahb_clk>, + <&clock_gcc clk_gcc_camss_csi_vfe0_clk>; + status = "okay"; +}; + +&gdsc_vfe1 { + clock-names = "core_clk", "bus_clk", "micro_clk", + "csi_clk"; + clocks = <&clock_gcc clk_gcc_camss_vfe1_clk>, + <&clock_gcc clk_gcc_camss_vfe1_axi_clk>, + <&clock_gcc clk_gcc_camss_micro_ahb_clk>, + <&clock_gcc clk_gcc_camss_csi_vfe1_clk>; + status = "okay"; +}; + +&gdsc_cpp { + clock-names = "core_clk", "bus_clk"; + clocks = <&clock_gcc clk_gcc_camss_cpp_clk>, + <&clock_gcc clk_gcc_camss_cpp_axi_clk>; + status = "okay"; +}; + +&gdsc_oxili_cx { + clock-names = "core_clk"; + clocks = <&clock_gcc_gfx clk_gcc_oxili_gfx3d_clk>; + status = "okay"; +}; + +&gdsc_usb30 { + status = "okay"; +}; + +&pm8953_mpps { + mpp@a100 { + /* MPP2 - PA_THERM config */ + qcom,mode = <4>; /* AIN input */ + qcom,invert = <1>; /* Enable MPP */ + qcom,ain-route = <1>; /* AMUX 6 */ + qcom,master-en = <1>; + qcom,src-sel = <0>; /* Function constant */ + }; + + mpp@a300 { + /* MPP4 - CASE_THERM config */ + qcom,mode = <4>; /* AIN input */ + qcom,invert = <1>; /* Enable MPP */ + qcom,ain-route = <3>; /* AMUX 8 */ + qcom,master-en = <1>; + qcom,src-sel = <0>; /* Function constant */ + }; +}; + +&pm8953_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@36 { + label = "pa_therm0"; + reg = <0x36>; + 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@11 { + label = "pa_therm1"; + reg = <0x11>; + 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,vadc-thermal-node; + }; + + chan@32 { + label = "xo_therm"; + reg = <0x32>; + 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,vadc-thermal-node; + }; + + chan@3c { + label = "xo_therm_buf"; + reg = <0x3c>; + 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,vadc-thermal-node; + }; + + chan@13 { + label = "case_therm"; + reg = <0x13>; + 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,vadc-thermal-node; + }; +}; + +&pm8953_adc_tm { + chan@36 { + label = "pa_therm0"; + reg = <0x36>; + 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@7 { + label = "vph_pwr"; + reg = <0x7>; + 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>; + qcom,btm-channel-number = <0x68>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/qcom/msm-audio.dtsi b/arch/arm/boot/dts/qcom/mido/platform/qcom/msm-audio.dtsi new file mode 100644 index 0000000000000..f5dfcba48301c --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/qcom/msm-audio.dtsi @@ -0,0 +1,690 @@ +/* + * Copyright (c) 2015-2016, 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. + */ + +&soc { + + pcm0: qcom,msm-pcm { + compatible = "qcom,msm-pcm-dsp"; + qcom,msm-pcm-dsp-id = <0>; + }; + + routing: qcom,msm-pcm-routing { + compatible = "qcom,msm-pcm-routing"; + }; + + pcm2: qcom,msm-ultra-low-latency { + compatible = "qcom,msm-pcm-dsp"; + qcom,msm-pcm-dsp-id = <2>; + qcom,msm-pcm-low-latency; + qcom,latency-level = "ultra"; + }; + + pcm1: qcom,msm-pcm-low-latency { + compatible = "qcom,msm-pcm-dsp"; + qcom,msm-pcm-dsp-id = <1>; + qcom,msm-pcm-low-latency; + qcom,latency-level = "regular"; + }; + + pcm2: qcom,msm-ultra-low-latency { + compatible = "qcom,msm-pcm-dsp"; + qcom,msm-pcm-dsp-id = <2>; + qcom,msm-pcm-low-latency; + qcom,latency-level = "ultra"; + }; + + cpe: qcom,msm-cpe-lsm { + compatible = "qcom,msm-cpe-lsm"; + }; + + lpa: qcom,msm-pcm-lpa { + compatible = "qcom,msm-pcm-lpa"; + }; + + compress: qcom,msm-compress-dsp { + compatible = "qcom,msm-compress-dsp"; + }; + + voip: qcom,msm-voip-dsp { + compatible = "qcom,msm-voip-dsp"; + }; + + voice: qcom,msm-pcm-voice { + compatible = "qcom,msm-pcm-voice"; + qcom,destroy-cvd; + }; + + stub_codec: qcom,msm-stub-codec { + compatible = "qcom,msm-stub-codec"; + }; + + qcom,msm-dai-fe { + compatible = "qcom,msm-dai-fe"; + }; + + afe: qcom,msm-pcm-afe { + compatible = "qcom,msm-pcm-afe"; + }; + + loopback: qcom,msm-pcm-loopback { + compatible = "qcom,msm-pcm-loopback"; + }; + + qcom,msm-dai-mi2s { + compatible = "qcom,msm-dai-mi2s"; + dai_mi2s0: qcom,msm-dai-q6-mi2s-prim { + compatible = "qcom,msm-dai-q6-mi2s"; + qcom,msm-dai-q6-mi2s-dev-id = <0>; + qcom,msm-mi2s-rx-lines = <3>; + qcom,msm-mi2s-tx-lines = <0>; + }; + + dai_mi2s1: qcom,msm-dai-q6-mi2s-sec { + compatible = "qcom,msm-dai-q6-mi2s"; + qcom,msm-dai-q6-mi2s-dev-id = <1>; + qcom,msm-mi2s-rx-lines = <1>; + qcom,msm-mi2s-tx-lines = <0>; + }; + + dai_mi2s3: qcom,msm-dai-q6-mi2s-quat { + compatible = "qcom,msm-dai-q6-mi2s"; + qcom,msm-dai-q6-mi2s-dev-id = <3>; + qcom,msm-mi2s-rx-lines = <1>; + qcom,msm-mi2s-tx-lines = <2>; + }; + + dai_mi2s2: qcom,msm-dai-q6-mi2s-tert { + compatible = "qcom,msm-dai-q6-mi2s"; + qcom,msm-dai-q6-mi2s-dev-id = <2>; + qcom,msm-mi2s-rx-lines = <0>; + qcom,msm-mi2s-tx-lines = <3>; + }; + + dai_mi2s5: qcom,msm-dai-q6-mi2s-quin { + compatible = "qcom,msm-dai-q6-mi2s"; + qcom,msm-dai-q6-mi2s-dev-id = <5>; + qcom,msm-mi2s-rx-lines = <1>; + qcom,msm-mi2s-tx-lines = <2>; + }; + + dai_mi2s6: qcom,msm-dai-q6-mi2s-senary { + compatible = "qcom,msm-dai-q6-mi2s"; + qcom,msm-dai-q6-mi2s-dev-id = <6>; + qcom,msm-mi2s-rx-lines = <0>; + qcom,msm-mi2s-tx-lines = <3>; + }; + }; + + lsm: qcom,msm-lsm-client { + compatible = "qcom,msm-lsm-client"; + }; + + qcom,msm-dai-q6 { + compatible = "qcom,msm-dai-q6"; + sb_0_rx: qcom,msm-dai-q6-sb-0-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16384>; + }; + + sb_0_tx: qcom,msm-dai-q6-sb-0-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16385>; + }; + + sb_1_rx: qcom,msm-dai-q6-sb-1-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16386>; + }; + + sb_1_tx: qcom,msm-dai-q6-sb-1-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16387>; + }; + + sb_2_rx: qcom,msm-dai-q6-sb-2-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16388>; + }; + + sb_2_tx: qcom,msm-dai-q6-sb-2-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16389>; + }; + + + sb_3_rx: qcom,msm-dai-q6-sb-3-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16390>; + }; + + sb_3_tx: qcom,msm-dai-q6-sb-3-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16391>; + }; + + sb_4_rx: qcom,msm-dai-q6-sb-4-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16392>; + }; + + sb_4_tx: qcom,msm-dai-q6-sb-4-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16393>; + }; + + sb_5_tx: qcom,msm-dai-q6-sb-5-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16395>; + }; + + sb_5_rx: qcom,msm-dai-q6-sb-5-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16394>; + }; + + bt_sco_rx: qcom,msm-dai-q6-bt-sco-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <12288>; + }; + + bt_sco_tx: qcom,msm-dai-q6-bt-sco-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <12289>; + }; + + int_fm_rx: qcom,msm-dai-q6-int-fm-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <12292>; + }; + + int_fm_tx: qcom,msm-dai-q6-int-fm-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <12293>; + }; + + afe_pcm_rx: qcom,msm-dai-q6-be-afe-pcm-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <224>; + }; + + afe_pcm_tx: qcom,msm-dai-q6-be-afe-pcm-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <225>; + }; + + afe_proxy_rx: qcom,msm-dai-q6-afe-proxy-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <241>; + }; + + afe_proxy_tx: qcom,msm-dai-q6-afe-proxy-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <240>; + }; + + incall_record_rx: qcom,msm-dai-q6-incall-record-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32771>; + }; + + incall_record_tx: qcom,msm-dai-q6-incall-record-tx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32772>; + }; + + incall_music_rx: qcom,msm-dai-q6-incall-music-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32773>; + }; + + incall_music_2_rx: qcom,msm-dai-q6-incall-music-2-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32770>; + }; + + sb_6_rx: qcom,msm-dai-q6-sb-6-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16396>; + }; + }; + + hostless: qcom,msm-pcm-hostless { + compatible = "qcom,msm-pcm-hostless"; + }; + + dai_pri_auxpcm: qcom,msm-pri-auxpcm { + compatible = "qcom,msm-auxpcm-dev"; + qcom,msm-cpudai-auxpcm-mode = <0>, <0>; + qcom,msm-cpudai-auxpcm-sync = <1>, <1>; + qcom,msm-cpudai-auxpcm-frame = <5>, <4>; + qcom,msm-cpudai-auxpcm-quant = <2>, <2>; + qcom,msm-cpudai-auxpcm-num-slots = <1>, <1>; + qcom,msm-cpudai-auxpcm-slot-mapping = <1>, <1>; + qcom,msm-cpudai-auxpcm-data = <0>, <0>; + qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>; + qcom,msm-auxpcm-interface = "primary"; + }; + + hdmi_dba: qcom,msm-hdmi-dba-codec-rx { + compatible = "qcom,msm-hdmi-dba-codec-rx"; + qcom,dba-bridge-chip = "adv7533"; + }; + + qcom,msm-audio-ion { + compatible = "qcom,msm-audio-ion"; + qcom,smmu-version = <1>; + qcom,smmu-enabled; + iommus = <&adsp_io 1>; + }; + + qcom,msm-adsp-loader { + compatible = "qcom,adsp-loader"; + qcom,adsp-state = <0>; + }; + + qcom,avtimer@c0a300c { + compatible = "qcom,avtimer"; + reg = <0x0c0a300c 0x4>, + <0x0c0a3010 0x4>; + reg-names = "avtimer_lsb_addr", "avtimer_msb_addr"; + qcom,clk-div = <27>; + }; + + int_codec: sound { + status = "ok"; + compatible = "qcom,msm8952-audio-codec"; + qcom,model = "msm8952-snd-card-mtp"; + reg = <0xc051000 0x4>, + <0xc051004 0x4>, + <0xc055000 0x4>, + <0xc052000 0x4>; + reg-names = "csr_gp_io_mux_mic_ctl", + "csr_gp_io_mux_spkr_ctl", + "csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel", + "csr_gp_io_mux_quin_ctl"; + + qcom,msm-ext-pa = "primary"; + qcom,msm-mclk-freq = <9600000>; + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <0>; + qcom,msm-hs-micbias-type = "internal"; + qcom,msm-micbias1-ext-cap; + qcom,audio-routing = + "RX_BIAS", "MCLK", + "SPK_RX_BIAS", "MCLK", + "INT_LDO_H", "MCLK", + "MIC BIAS External", "Handset Mic", + "MIC BIAS Internal2", "Headset Mic", + "MIC BIAS Internal1", "Secondary Mic", + "AMIC1", "MIC BIAS External", + "AMIC2", "MIC BIAS Internal2", + "AMIC3", "MIC BIAS Internal1"; + + qcom,hdmi-dba-codec-rx; + + qcom,msm-gpios = + "pri_i2s", + "us_eu_gpio", + "quin_i2s"; + qcom,pinctrl-names = + "all_off", + "pri_i2s_act", + "us_eu_gpio_act", + "pri_i2s_us_eu_gpio_act", + "quin_act", + "quin_pri_i2s_act", + "quin_us_eu_gpio_act", + "quin_us_eu_gpio_pri_i2s_act"; + pinctrl-names = + "all_off", + "pri_i2s_act", + "us_eu_gpio_act", + "pri_i2s_us_eu_gpio_act", + "quin_act", + "quin_pri_i2s_act", + "quin_us_eu_gpio_act", + "quin_us_eu_gpio_pri_i2s_act"; + pinctrl-0 = <&cdc_pdm_lines_sus + &cdc_pdm_lines_2_sus &cross_conn_det_sus + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-1 = <&cdc_pdm_lines_act + &cdc_pdm_lines_2_act &cross_conn_det_sus + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-2 = <&cdc_pdm_lines_sus + &cdc_pdm_lines_2_sus &cross_conn_det_act + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-3 = <&cdc_pdm_lines_act + &cdc_pdm_lines_2_act &cross_conn_det_act + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-4 = <&cdc_pdm_lines_sus + &cdc_pdm_lines_2_sus &cross_conn_det_sus + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-5 = <&cdc_pdm_lines_act + &cdc_pdm_lines_2_act &cross_conn_det_sus + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-6 = <&cdc_pdm_lines_sus + &cdc_pdm_lines_2_sus &cross_conn_det_act + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-7 = <&cdc_pdm_lines_act + &cdc_pdm_lines_2_act &cross_conn_det_act + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + + asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>, + <&loopback>, <&compress>, <&hostless>, + <&afe>, <&lsm>, <&routing>, <&lpa>; + asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1", + "msm-pcm-dsp.2", "msm-voip-dsp", + "msm-pcm-voice", "msm-pcm-loopback", + "msm-compress-dsp", "msm-pcm-hostless", + "msm-pcm-afe", "msm-lsm-client", + "msm-pcm-routing", "msm-pcm-lpa"; + asoc-cpu = <&dai_pri_auxpcm>, + <&dai_mi2s0>, <&dai_mi2s1>, + <&dai_mi2s2>, <&dai_mi2s3>, + <&dai_mi2s5>, <&dai_mi2s6>, + <&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>, + <&sb_3_rx>, <&sb_3_tx>, <&sb_4_rx>, <&sb_4_tx>, + <&bt_sco_rx>, <&bt_sco_tx>, + <&int_fm_rx>, <&int_fm_tx>, + <&afe_pcm_rx>, <&afe_pcm_tx>, + <&afe_proxy_rx>, <&afe_proxy_tx>, + <&incall_record_rx>, <&incall_record_tx>, + <&incall_music_rx>, <&incall_music_2_rx>; + asoc-cpu-names = "msm-dai-q6-auxpcm.1", + "msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1", + "msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3", + "msm-dai-q6-mi2s.5", "msm-dai-q6-mi2s.6", + "msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385", + "msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387", + "msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391", + "msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393", + "msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289", + "msm-dai-q6-dev.12292", "msm-dai-q6-dev.12293", + "msm-dai-q6-dev.224", "msm-dai-q6-dev.225", + "msm-dai-q6-dev.241", "msm-dai-q6-dev.240", + "msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772", + "msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770"; + }; + + ext_codec: sound-9335 { + status = "disabled"; + compatible = "qcom,msm8952-audio-slim-codec"; + qcom,model = "msm8952-tasha-snd-card"; + reg = <0xc051000 0x4>, + <0xc051004 0x4>, + <0xc055000 0x4>, + <0xc052000 0x4>; + + reg-names = "csr_gp_io_mux_mic_ctl", + "csr_gp_io_mux_spkr_ctl", + "csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel", + "csr_gp_io_mux_quin_ctl"; + + qcom,audio-routing = + "AIF4 VI", "MCLK", + "AIF4 VI", "MICBIAS_REGULATOR", + "RX_BIAS", "MCLK", + "MADINPUT", "MCLK", + "AIF4 MAD", "MICBIAS_REGULATOR", + "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", + "MIC BIAS1", "MICBIAS_REGULATOR", + "MIC BIAS2", "MICBIAS_REGULATOR", + "MIC BIAS3", "MICBIAS_REGULATOR", + "MIC BIAS4", "MICBIAS_REGULATOR", + "SpkrLeft IN", "SPK1 OUT", + "SpkrRight IN", "SPK2 OUT"; + + qcom,hdmi-dba-codec-rx; + + qcom,msm-gpios = + "quin_i2s", + "us_eu_gpio"; + qcom,pinctrl-names = + "all_off", + "quin_act", + "us_eu_gpio_act", + "quin_us_eu_gpio_act"; + pinctrl-names = + "all_off", + "quin_act", + "us_eu_gpio_act", + "quin_us_eu_gpio_act"; + pinctrl-0 = <&pri_tlmm_lines_sus &pri_tlmm_ws_sus + &cross_conn_det_sus>; + pinctrl-1 = <&pri_tlmm_lines_act &pri_tlmm_ws_act + &cross_conn_det_sus>; + pinctrl-2 = <&pri_tlmm_lines_sus &pri_tlmm_ws_sus + &cross_conn_det_act>; + pinctrl-3 = <&pri_tlmm_lines_act &pri_tlmm_ws_act + &cross_conn_det_act>; + + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <0>; + qcom,tasha-mclk-clk-freq = <9600000>; + asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>, + <&loopback>, <&compress>, <&hostless>, + <&afe>, <&lsm>, <&routing>, <&cpe>, <&lpa>; + asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1", + "msm-pcm-dsp.2", "msm-voip-dsp", + "msm-pcm-voice", "msm-pcm-loopback", + "msm-compress-dsp", "msm-pcm-hostless", + "msm-pcm-afe", "msm-lsm-client", + "msm-pcm-routing", "msm-cpe-lsm", + "msm-pcm-lpa"; + asoc-cpu = <&dai_pri_auxpcm>, + <&dai_mi2s2>, <&dai_mi2s3>, <&dai_mi2s5>, + <&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>, + <&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>, + <&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>, + <&afe_pcm_rx>, <&afe_pcm_tx>, + <&afe_proxy_rx>, <&afe_proxy_tx>, + <&incall_record_rx>, <&incall_record_tx>, + <&incall_music_rx>, <&incall_music_2_rx>, + <&sb_5_rx>, <&bt_sco_rx>, + <&bt_sco_tx>, <&int_fm_rx>, <&int_fm_tx>, + <&sb_6_rx>; + asoc-cpu-names = "msm-dai-q6-auxpcm.1", + "msm-dai-q6-mi2s.2", + "msm-dai-q6-mi2s.3", "msm-dai-q6-mi2s.5", + "msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385", + "msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387", + "msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389", + "msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391", + "msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393", + "msm-dai-q6-dev.16395", "msm-dai-q6-dev.224", + "msm-dai-q6-dev.225", "msm-dai-q6-dev.241", + "msm-dai-q6-dev.240", "msm-dai-q6-dev.32771", + "msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773", + "msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394", + "msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289", + "msm-dai-q6-dev.12292", "msm-dai-q6-dev.12293", + "msm-dai-q6-dev.16396"; + asoc-codec = <&stub_codec>, <&hdmi_dba>; + asoc-codec-names = "msm-stub-codec.1", "msm-hdmi-dba-codec-rx"; + }; + + i2c@78b6000 { + wsa881x_i2c_e: wsa881x-i2c-codec@e { + status = "disabled"; + compatible = "qcom,wsa881x-i2c-codec"; + reg = <0x0e>; + qcom,msm-gpios = "wsa_clk", + "wsa_reset", + "wsa_vi"; + qcom,pinctrl-names = "all_off", + "wsa_clk", + "wsa_active", + "wsa_clk_active", + "wsa_vi", + "wsa_clk_vi", + "wsa_active_vi", + "wsa_all"; + pinctrl-names = "all_off", + "wsa_clk", + "wsa_active", + "wsa_clk_active", + "wsa_vi", + "wsa_clk_vi", + "wsa_active_vi", + "wsa_all"; + pinctrl-0 = <&wsa_clk_off &wsa_reset_off &wsa_vi_off>; + pinctrl-1 = <&wsa_clk_on &wsa_reset_off &wsa_vi_off>; + pinctrl-2 = <&wsa_clk_off &wsa_reset_on &wsa_vi_off>; + pinctrl-3 = <&wsa_clk_on &wsa_reset_on &wsa_vi_off>; + pinctrl-4 = <&wsa_clk_off &wsa_reset_off &wsa_vi_on>; + pinctrl-5 = <&wsa_clk_on &wsa_reset_off &wsa_vi_on>; + pinctrl-6 = <&wsa_clk_off &wsa_reset_on &wsa_vi_on>; + pinctrl-7 = <&wsa_clk_on &wsa_reset_on &wsa_vi_on>; + }; + wsa881x_i2c_44: wsa881x-i2c-codec@44 { + status = "disabled"; + + compatible = "qcom,wsa881x-i2c-codec"; + reg = <0x44>; + }; + wsa881x_i2c_f: wsa881x-i2c-codec@f { + status = "disabled"; + + compatible = "qcom,wsa881x-i2c-codec"; + reg = <0x0f>; + qcom,msm-gpios = "wsa_clk", + "wsa_reset", + "wsa_vi"; + qcom,pinctrl-names = "all_off", + "wsa_clk", + "wsa_active", + "wsa_clk_active", + "wsa_vi", + "wsa_clk_vi", + "wsa_active_vi", + "wsa_all"; + pinctrl-names = "all_off", + "wsa_clk", + "wsa_active", + "wsa_clk_active", + "wsa_vi", + "wsa_clk_vi", + "wsa_active_vi", + "wsa_all"; + pinctrl-0 = <&wsa_clk_off &wsa_reset_off &wsa_vi_off>; + pinctrl-1 = <&wsa_clk_on &wsa_reset_off &wsa_vi_off>; + pinctrl-2 = <&wsa_clk_off &wsa_reset_on &wsa_vi_off>; + pinctrl-3 = <&wsa_clk_on &wsa_reset_on &wsa_vi_off>; + pinctrl-4 = <&wsa_clk_off &wsa_reset_off &wsa_vi_on>; + pinctrl-5 = <&wsa_clk_on &wsa_reset_off &wsa_vi_on>; + pinctrl-6 = <&wsa_clk_off &wsa_reset_on &wsa_vi_on>; + pinctrl-7 = <&wsa_clk_on &wsa_reset_on &wsa_vi_on>; + }; + wsa881x_i2c_45: wsa881x-i2c-codec@45 { + status = "disabled"; + compatible = "qcom,wsa881x-i2c-codec"; + reg = <0x45>; + }; + }; + + wcd9xxx_intc: wcd9xxx-irq { + status = "disabled"; + compatible = "qcom,wcd9xxx-irq"; + interrupt-controller; + #interrupt-cells = <1>; + interrupt-names = "cdc-int"; + pinctrl-names = "default"; + pinctrl-0 = <&wcd_intr_default>; + }; + + wcd_rst_gpio: wcd_gpio_ctrl { + status = "disabled"; + compatible = "qcom,wcd-gpio-ctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&cdc_reset_active>; + pinctrl-1 = <&cdc_reset_sleep>; + }; + + clock_audio: audio_ext_clk { + status = "disabled"; + compatible = "qcom,audio-ref-clk"; + clock-names = "osr_clk"; + qcom,node_has_rpm_clock; + #clock-cells = <1>; + }; +}; + +&adsp_io { + qcom,virtual-addr-pool = <0x10000000 0x0fffffff>; + #iommu-cells = <1>; +}; + +&slim_msm { + status = "disabled"; + dai_slim: msm_dai_slim { + status = "disabled"; + compatible = "qcom,msm-dai-slim"; + elemental-addr = [ff ff ff fe 17 02]; + }; + + wcd9335: tasha_codec { + status = "disabled"; + compatible = "qcom,tasha-slim-pgd"; + elemental-addr = [00 01 A0 01 17 02]; + + interrupt-parent = <&wcd9xxx_intc>; + interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 17 18 19 20 21 22 23 24 25 26 27 28 29 + 30>; + + qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>; + + clock-names = "wcd_clk"; + clocks = <&clock_audio clk_audio_pmi_clk>; + + qcom,cdc-static-supplies = + "cdc-vdd-buck", + "cdc-buck-sido", + "cdc-vdd-tx-h", + "cdc-vdd-rx-h", + "cdc-vdd-px"; + + qcom,cdc-on-demand-supplies = "cdc-vdd-mic-bias"; + + qcom,cdc-micbias1-mv = <1800>; + qcom,cdc-micbias2-mv = <1800>; + qcom,cdc-micbias3-mv = <1800>; + qcom,cdc-micbias4-mv = <1800>; + + qcom,cdc-mclk-clk-rate = <9600000>; + qcom,cdc-slim-ifd = "tasha-slim-ifd"; + qcom,cdc-slim-ifd-elemental-addr = [00 00 A0 01 17 02]; + qcom,cdc-dmic-sample-rate = <2400000>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/qcom/msm-pm8953.dtsi b/arch/arm/boot/dts/qcom/mido/platform/qcom/msm-pm8953.dtsi new file mode 100644 index 0000000000000..0137fab66f07f --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/qcom/msm-pm8953.dtsi @@ -0,0 +1,279 @@ +/* + * Copyright (c) 2015-2016, 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. + */ + +&spmi_bus { + + qcom,pm8953@0 { + spmi-slave-container; + reg = <0x0>; + #address-cells = <1>; + #size-cells = <1>; + + pm8953_revid: qcom,revid@100 { + compatible = "qcom,qpnp-revid"; + reg = <0x100 0x100>; + }; + + qcom,power-on@800 { + compatible = "qcom,qpnp-power-on"; + reg = <0x800 0x100>; + interrupts = <0x0 0x8 0x0>, + <0x0 0x8 0x1>, + <0x0 0x8 0x4>, + <0x0 0x8 0x5>; + interrupt-names = "kpdpwr", "resin", + "resin-bark", "kpdpwr-resin-bark"; + qcom,pon-dbc-delay = <15625>; + qcom,store-hard-reset-reason; + qcom,system-reset; + + qcom,pon_1 { + qcom,pon-type = <0>; + qcom,pull-up = <1>; + qcom,support-reset = <1>; + qcom,s1-timer = <6720>; + qcom,s2-timer = <0>; + qcom,s2-type = <7>; + linux,code = <116>; + }; + + qcom,pon_2 { + qcom,pon-type = <1>; + qcom,pull-up = <1>; + linux,code = <114>; + }; + + qcom,pon_3 { + qcom,pon-type = <3>; + qcom,support-reset = <1>; + qcom,s1-timer = <6720>; + qcom,s2-timer = <2000>; + qcom,s2-type = <7>; + qcom,pull-up = <1>; + }; + }; + + pm8953_temp_alarm: qcom,temp-alarm@2400 { + compatible = "qcom,qpnp-temp-alarm"; + reg = <0x2400 0x100>; + interrupts = <0x0 0x24 0x0>; + label = "pm8953_tz"; + qcom,channel-num = <8>; + qcom,threshold-set = <0>; + qcom,temp_alarm-vadc = <&pm8953_vadc>; + }; + + pm8953_coincell: qcom,coincell@2800 { + compatible = "qcom,qpnp-coincell"; + reg = <0x2800 0x100>; + }; + + pm8953_mpps: mpps { + compatible = "qcom,qpnp-pin"; + spmi-dev-container; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pm8953-mpp"; + + mpp@a000 { + reg = <0xa000 0x100>; + qcom,pin-num = <1>; + status = "disabled"; + }; + + mpp@a100 { + reg = <0xa100 0x100>; + qcom,pin-num = <2>; + }; + + mpp@a200 { + reg = <0xa200 0x100>; + qcom,pin-num = <3>; + status = "disabled"; + }; + + mpp@a300 { + reg = <0xa300 0x100>; + qcom,pin-num = <4>; + }; + }; + + pm8953_gpios: gpios { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pm8953-gpio"; + + gpio@c000 { + reg = <0xc000 0x100>; + qcom,pin-num = <1>; + status = "disabled"; + }; + + gpio@c100 { + reg = <0xc100 0x100>; + qcom,pin-num = <2>; + status = "disabled"; + }; + + gpio@c200 { + reg = <0xc200 0x100>; + qcom,pin-num = <3>; + status = "disabled"; + }; + + gpio@c300 { + reg = <0xc300 0x100>; + qcom,pin-num = <4>; + status = "disabled"; + }; + + gpio@c400 { + reg = <0xc400 0x100>; + qcom,pin-num = <5>; + status = "disabled"; + }; + + gpio@c500 { + reg = <0xc500 0x100>; + qcom,pin-num = <6>; + status = "disabled"; + }; + + gpio@c600 { + reg = <0xc600 0x100>; + qcom,pin-num = <7>; + status = "disabled"; + }; + + gpio@c700 { + reg = <0xc700 0x100>; + qcom,pin-num = <8>; + qcom,master-en = <0>; + }; + }; + + pm8953_vadc: vadc@3100 { + compatible = "qcom,qpnp-vadc"; + reg = <0x3100 0x100>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <0x0 0x31 0x0>; + interrupt-names = "eoc-int-en-set"; + qcom,adc-bit-resolution = <15>; + qcom,adc-vdd-reference = <1800>; + qcom,vadc-poll-eoc; + + chan@8 { + label = "die_temp"; + reg = <8>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <3>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@9 { + label = "ref_625mv"; + reg = <9>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@a { + label = "ref_1250v"; + reg = <0xa>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@c { + label = "ref_buf_625mv"; + reg = <0xc>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + }; + + pm8953_adc_tm: vadc@3400 { + compatible = "qcom,qpnp-adc-tm"; + reg = <0x3400 0x100>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <0x0 0x34 0x0>, + <0x0 0x34 0x3>, + <0x0 0x34 0x4>; + interrupt-names = "eoc-int-en-set", + "high-thr-en-set", + "low-thr-en-set"; + qcom,adc-bit-resolution = <15>; + qcom,adc-vdd-reference = <1800>; + qcom,adc_tm-vadc = <&pm8953_vadc>; + + }; + + pm8953_rtc: qcom,pm8953_rtc { + spmi-dev-container; + compatible = "qcom,qpnp-rtc"; + #address-cells = <1>; + #size-cells = <1>; + qcom,qpnp-rtc-write = <0>; + qcom,qpnp-rtc-alarm-pwrup = <0>; + + qcom,pm8953_rtc_rw@6000 { + reg = <0x6000 0x100>; + }; + + qcom,pm8953_rtc_alarm@6100 { + reg = <0x6100 0x100>; + interrupts = <0x0 0x61 0x1>; + }; + }; + }; + + pm8953_1: qcom,pm8953@1 { + spmi-slave-container; + reg = <0x1>; + #address-cells = <1>; + #size-cells = <1>; + + pm8953_pwm: pwm@bc00 { + status = "disabled"; + compatible = "qcom,qpnp-pwm"; + reg = <0xbc00 0x100>; + reg-names = "qpnp-lpg-channel-base"; + qcom,channel-id = <0>; + qcom,supported-sizes = <6>, <9>; + #pwm-cells = <2>; + }; + }; +}; diff --git a/arch/arm/boot/dts/qcom/mido/platform/qcom/msm-pmi8950.dtsi b/arch/arm/boot/dts/qcom/mido/platform/qcom/msm-pmi8950.dtsi new file mode 100644 index 0000000000000..3fa4d3cadbff6 --- /dev/null +++ b/arch/arm/boot/dts/qcom/mido/platform/qcom/msm-pmi8950.dtsi @@ -0,0 +1,657 @@ +/* Copyright (c) 2015-2016, 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 + +&spmi_bus { + + qcom,pmi8950@2 { + spmi-slave-container; + reg = <0x2>; + #address-cells = <1>; + #size-cells = <1>; + + pmi8950_revid: qcom,revid@100 { + compatible = "qcom,qpnp-revid"; + reg = <0x100 0x100>; + }; + + qcom,power-on@800 { + compatible = "qcom,qpnp-power-on"; + reg = <0x800 0x100>; + qcom,secondary-pon-reset; + qcom,hard-reset-poweroff-type = + ; + + pon_perph_reg: qcom,pon_perph_reg { + regulator-name = "pon_spare_reg"; + qcom,pon-spare-reg-addr = <0x8c>; + qcom,pon-spare-reg-bit = <1>; + }; + }; + + pmi8950_vadc: vadc@3100 { + compatible = "qcom,qpnp-vadc"; + reg = <0x3100 0x100>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <0x2 0x31 0x0>; + interrupt-names = "eoc-int-en-set"; + qcom,adc-bit-resolution = <15>; + qcom,adc-vdd-reference = <1800>; + qcom,vadc-poll-eoc; + + 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@3 { + label = "vchg_sns"; + reg = <3>; + 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@9 { + label = "ref_625mv"; + reg = <9>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@a { + label = "ref_1250v"; + reg = <0xa>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@d { + label = "chg_temp"; + reg = <0xd>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <16>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + qcom,vadc-thermal-node; + }; + + 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>; + }; + }; + + pmi8950_gpios: gpios { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pmi8950-gpio"; + + gpio@c000 { + reg = <0xc000 0x100>; + qcom,pin-num = <1>; + qcom,mode = <1>; + qcom,pull = <4>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + qcom,out-strength = <2>; + status = "okay"; + }; + + gpio@c100 { + reg = <0xc100 0x100>; + qcom,pin-num = <2>; + status = "disabled"; + }; + }; + + pmi8950_mpps: mpps { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pmi8950-mpp"; + + mpp@a000 { + reg = <0xa000 0x100>; + qcom,pin-num = <1>; + status = "disabled"; + }; + + mpp@a100 { + reg = <0xa100 0x100>; + qcom,pin-num = <2>; + status = "disabled"; + }; + + mpp@a200 { + reg = <0xa200 0x100>; + qcom,pin-num = <3>; + status = "disabled"; + }; + + mpp@a300 { + reg = <0xa300 0x100>; + qcom,pin-num = <4>; + status = "disabled"; + }; + }; + + pmi8950_charger: qcom,qpnp-smbcharger { + spmi-dev-container; + compatible = "qcom,qpnp-smbcharger"; + #address-cells = <1>; + #size-cells = <1>; + + qcom,iterm-ma = <100>; + qcom,float-voltage-mv = <4400>; + qcom,resume-delta-mv = <50>; + qcom,chg-inhibit-fg; + qcom,charge-unknown-battery; + qcom,rparasitic-uohm = <100000>; + qcom,bms-psy-name = "bms"; + qcom,thermal-mitigation = <1500 700 600 0>; + qcom,pmic-revid = <&pmi8950_revid>; + qcom,force-aicl-rerun; + qcom,aicl-rerun-period-s = <180>; + qcom,autoadjust-vfloat; + qcom,fastchg-current-comp = <900>; + qcom,float-voltage-comp = <11>; + + qcom,chgr@1000 { + reg = <0x1000 0x100>; + interrupts = <0x2 0x10 0x0>, + <0x2 0x10 0x1>, + <0x2 0x10 0x2>, + <0x2 0x10 0x3>, + <0x2 0x10 0x4>, + <0x2 0x10 0x5>, + <0x2 0x10 0x6>, + <0x2 0x10 0x7>; + + interrupt-names = "chg-error", + "chg-inhibit", + "chg-prechg-sft", + "chg-complete-chg-sft", + "chg-p2f-thr", + "chg-rechg-thr", + "chg-taper-thr", + "chg-tcc-thr"; + }; + + qcom,otg@1100 { + reg = <0x1100 0x100>; + interrupts = <0x2 0x11 0x0>, + <0x2 0x11 0x1>, + <0x2 0x11 0x3>; + interrupt-names = "otg-fail", + "otg-oc", + "usbid-change"; + }; + + qcom,bat-if@1200 { + reg = <0x1200 0x100>; + interrupts = <0x2 0x12 0x0>, + <0x2 0x12 0x1>, + <0x2 0x12 0x2>, + <0x2 0x12 0x3>, + <0x2 0x12 0x4>, + <0x2 0x12 0x5>, + <0x2 0x12 0x6>, + <0x2 0x12 0x7>; + + interrupt-names = "batt-hot", + "batt-warm", + "batt-cold", + "batt-cool", + "batt-ov", + "batt-low", + "batt-missing", + "batt-term-missing"; + }; + + qcom,usb-chgpth@1300 { + reg = <0x1300 0x100>; + interrupts = <0x2 0x13 0x0>, + <0x2 0x13 0x1>, + <0x2 0x13 0x2>, + <0x2 0x13 0x5>; + + interrupt-names = "usbin-uv", + "usbin-ov", + "usbin-src-det", + "aicl-done"; + }; + + qcom,dc-chgpth@1400 { + reg = <0x1400 0x100>; + interrupts = <0x2 0x14 0x0>, + <0x2 0x14 0x1>; + interrupt-names = "dcin-uv", + "dcin-ov"; + }; + + qcom,chgr-misc@1600 { + reg = <0x1600 0x100>; + interrupts = <0x2 0x16 0x0>, + <0x2 0x16 0x1>, + <0x2 0x16 0x2>, + <0x2 0x16 0x3>, + <0x2 0x16 0x4>, + <0x2 0x16 0x5>; + + interrupt-names = "power-ok", + "temp-shutdown", + "wdog-timeout", + "flash-fail", + "otst2", + "otst3"; + }; + + smbcharger_charger_otg: qcom,smbcharger-boost-otg { + regulator-name = "smbcharger_charger_otg"; + }; + }; + + pmi8950_fg: qcom,fg { + spmi-dev-container; + compatible = "qcom,qpnp-fg"; + #address-cells = <1>; + #size-cells = <1>; + qcom,resume-soc = <99>; + status = "okay"; + qcom,bcl-lm-threshold-ma = <127>; + qcom,bcl-mh-threshold-ma = <405>; + qcom,fg-iterm-ma = <150>; + qcom,fg-chg-iterm-ma = <100>; + qcom,pmic-revid = <&pmi8950_revid>; + qcom,fg-cutoff-voltage-mv = <3400>; + qcom,cycle-counter-en; + qcom,capacity-learning-on; + qcom,fg-cc-cv-threshold-mv = <4380>; + qcom,fg-vbat-estimate-diff-mv = <200>; + + qcom,fg-soc@4000 { + status = "okay"; + reg = <0x4000 0x100>; + interrupts = <0x2 0x40 0x0>, + <0x2 0x40 0x1>, + <0x2 0x40 0x2>, + <0x2 0x40 0x3>, + <0x2 0x40 0x4>, + <0x2 0x40 0x5>, + <0x2 0x40 0x6>; + + interrupt-names = "high-soc", + "low-soc", + "full-soc", + "empty-soc", + "delta-soc", + "first-est-done", + "update-soc"; + }; + + qcom,fg-batt@4100 { + reg = <0x4100 0x100>; + interrupts = <0x2 0x41 0x0>, + <0x2 0x41 0x1>, + <0x2 0x41 0x2>, + <0x2 0x41 0x3>, + <0x2 0x41 0x4>, + <0x2 0x41 0x5>, + <0x2 0x41 0x6>, + <0x2 0x41 0x7>; + + interrupt-names = "soft-cold", + "soft-hot", + "vbatt-low", + "batt-ided", + "batt-id-req", + "batt-unknown", + "batt-missing", + "batt-match"; + }; + + qcom,revid-tp-rev@1f1 { + reg = <0x1f1 0x1>; + }; + + qcom,fg-memif@4400 { + status = "okay"; + reg = <0x4400 0x100>; + interrupts = <0x2 0x44 0x0>, + <0x2 0x44 0x2>; + + interrupt-names = "mem-avail", + "data-rcvry-sug"; + }; + }; + + bcl@4200 { + compatible = "qcom,msm-bcl"; + reg = <0x4200 0xFF 0x88E 0x2>; + reg-names = "fg_user_adc", "pon_spare"; + interrupts = <0x2 0x42 0x0>, + <0x2 0x42 0x1>; + interrupt-names = "bcl-high-ibat-int", + "bcl-low-vbat-int"; + qcom,vbat-scaling-factor = <39000>; + qcom,vbat-gain-numerator = <1>; + qcom,vbat-gain-denominator = <128>; + qcom,vbat-polling-delay-ms = <100>; + qcom,ibat-scaling-factor = <39000>; + qcom,ibat-gain-numerator = <1>; + qcom,ibat-gain-denominator = <128>; + qcom,ibat-offset-numerator = <1200>; + qcom,ibat-offset-denominator = <1>; + qcom,ibat-polling-delay-ms = <100>; + qcom,inhibit-derating-ua = <550000>; + }; + + qcom,leds@a100 { + compatible = "qcom,leds-qpnp"; + reg = <0xa100 0x100>; + label = "mpp"; + }; + }; + + qcom,pmi8950@3 { + spmi-slave-container; + reg = <0x3>; + #address-cells = <1>; + #size-cells = <1>; + + pmi8950_pwm: pwm@b000 { + status = "okay"; + compatible = "qcom,qpnp-pwm"; + reg = <0xb000 0x100>; + reg-names = "qpnp-lpg-channel-base"; + qcom,channel-id = <0>; + qcom,supported-sizes = <6>, <9>; + #pwm-cells = <2>; + }; + + labibb: qpnp-labibb-regulator { + status = "disabled"; + spmi-dev-container; + compatible = "qcom,qpnp-labibb-regulator"; + #address-cells = <1>; + #size-cells = <1>; + qcom,pmic-revid = <&pmi8950_revid>; + + ibb_regulator: qcom,ibb@dc00 { + reg = <0xdc00 0x100>; + reg-names = "ibb_reg"; + regulator-name = "ibb_reg"; + + regulator-min-microvolt = <4600000>; + regulator-max-microvolt = <6000000>; + + qcom,qpnp-ibb-min-voltage = <1400000>; + qcom,qpnp-ibb-step-size = <100000>; + qcom,qpnp-ibb-slew-rate = <2000000>; + qcom,qpnp-ibb-use-default-voltage; + qcom,qpnp-ibb-init-voltage = <5500000>; + qcom,qpnp-ibb-init-amoled-voltage = <4000000>; + qcom,qpnp-ibb-init-lcd-voltage = <5500000>; + + qcom,qpnp-ibb-soft-start = <1000>; + + qcom,qpnp-ibb-discharge-resistor = <32>; + qcom,qpnp-ibb-lab-pwrup-delay = <8000>; + qcom,qpnp-ibb-lab-pwrdn-delay = <8000>; + qcom,qpnp-ibb-en-discharge; + + qcom,qpnp-ibb-full-pull-down; + qcom,qpnp-ibb-pull-down-enable; + qcom,qpnp-ibb-switching-clock-frequency = <1480>; + qcom,qpnp-ibb-limit-maximum-current = <1550>; + qcom,qpnp-ibb-debounce-cycle = <16>; + qcom,qpnp-ibb-limit-max-current-enable; + qcom,qpnp-ibb-ps-enable; + }; + + lab_regulator: qcom,lab@de00 { + reg = <0xde00 0x100>; + reg-names = "lab"; + regulator-name = "lab_reg"; + + regulator-min-microvolt = <4600000>; + regulator-max-microvolt = <6000000>; + + qcom,qpnp-lab-min-voltage = <4600000>; + qcom,qpnp-lab-step-size = <100000>; + qcom,qpnp-lab-slew-rate = <5000>; + qcom,qpnp-lab-use-default-voltage; + qcom,qpnp-lab-init-voltage = <5500000>; + qcom,qpnp-lab-init-amoled-voltage = <4600000>; + qcom,qpnp-lab-init-lcd-voltage = <5500000>; + + qcom,qpnp-lab-soft-start = <800>; + + qcom,qpnp-lab-full-pull-down; + qcom,qpnp-lab-pull-down-enable; + qcom,qpnp-lab-switching-clock-frequency = + <1600>; + qcom,qpnp-lab-limit-maximum-current = <800>; + qcom,qpnp-lab-limit-max-current-enable; + qcom,qpnp-lab-ps-threshold = <40>; + qcom,qpnp-lab-ps-enable; + qcom,qpnp-lab-nfet-size = <100>; + qcom,qpnp-lab-pfet-size = <100>; + qcom,qpnp-lab-max-precharge-time = <500>; + }; + + }; + + wled: qcom,leds@d800 { + compatible = "qcom,qpnp-wled"; + reg = <0xd800 0x100>, + <0xd900 0x100>, + <0xdc00 0x100>, + <0xde00 0x100>; + reg-names = "qpnp-wled-ctrl-base", + "qpnp-wled-sink-base", + "qpnp-wled-ibb-base", + "qpnp-wled-lab-base"; + interrupts = <0x3 0xd8 0x2>; + interrupt-names = "sc-irq"; + status = "okay"; + linux,name = "wled"; + linux,default-trigger = "bkl-trigger"; + qcom,fdbk-output = "auto"; + qcom,vref-mv = <350>; + qcom,switch-freq-khz = <800>; + qcom,ovp-mv = <29500>; + qcom,ilim-ma = <980>; + qcom,boost-duty-ns = <26>; + qcom,mod-freq-khz = <9600>; + qcom,dim-mode = "hybrid"; + qcom,dim-method = "linear"; + qcom,hyb-thres = <625>; + qcom,sync-dly-us = <800>; + qcom,fs-curr-ua = <20000>; + qcom,led-strings-list = [00 01]; + qcom,en-cabc; + qcom,cons-sync-write-delay-us = <1000>; + }; + + flash_led: qcom,leds@d300 { + compatible = "qcom,qpnp-flash-led"; + status = "okay"; + reg = <0xd300 0x100>; + label = "flash"; + qcom,headroom = <500>; + qcom,startup-dly = <128>; + qcom,clamp-curr = <200>; + qcom,pmic-charger-support; + qcom,self-check-enabled; + qcom,thermal-derate-enabled; + qcom,thermal-derate-threshold = <100>; + qcom,thermal-derate-rate = "5_PERCENT"; + qcom,current-ramp-enabled; + qcom,ramp_up_step = "6P7_US"; + qcom,ramp_dn_step = "6P7_US"; + qcom,vph-pwr-droop-enabled; + qcom,vph-pwr-droop-threshold = <3000>; + qcom,vph-pwr-droop-debounce-time = <10>; + qcom,headroom-sense-ch0-enabled; + qcom,headroom-sense-ch1-enabled; + qcom,pmic-revid = <&pmi8950_revid>; + + pmi8950_flash0: qcom,flash_0 { + label = "flash"; + qcom,led-name = "led:flash_0"; + qcom,default-led-trigger = + "flash0_trigger"; + qcom,max-current = <1000>; + qcom,duration = <1280>; + qcom,id = <0>; + qcom,current = <625>; + }; + + pmi8950_flash1: qcom,flash_1 { + label = "flash"; + qcom,led-name = "led:flash_1"; + qcom,default-led-trigger = + "flash1_trigger"; + qcom,max-current = <1000>; + qcom,duration = <1280>; + qcom,id = <1>; + qcom,current = <625>; + }; + + pmi8950_flashlight: qcom,flashlight { + label = "torch"; + qcom,led-name = "flashlight"; + qcom,default-led-trigger = + "torch0_trigger"; + qcom,max-current = <200>; + qcom,id = <0>; + qcom,current = <120>; + }; + + pmi8950_torch0: qcom,torch_0 { + label = "torch"; + qcom,led-name = "led:torch_0"; + qcom,default-led-trigger = + "torch0_trigger"; + qcom,max-current = <200>; + qcom,id = <0>; + qcom,current = <120>; + }; + + pmi8950_torch1: qcom,torch_1 { + label = "torch"; + qcom,led-name = "led:torch_1"; + qcom,default-led-trigger = + "torch1_trigger"; + qcom,max-current = <200>; + qcom,id = <1>; + qcom,current = <120>; + }; + + pmi8950_switch: qcom,switch { + label = "switch"; + qcom,led-name = "led:switch"; + qcom,default-led-trigger = + "switch_trigger"; + qcom,max-current = <1000>; + qcom,duration = <1280>; + qcom,id = <2>; + qcom,current = <625>; + reg0 { + regulator-name = "pon_spare_reg"; + }; + }; + }; + + pmi_haptic: qcom,haptic@c000 { + compatible = "qcom,qpnp-haptic"; + reg = <0xc000 0x100>; + interrupts = <0x3 0xc0 0x0>, + <0x3 0xc0 0x1>; + interrupt-names = "sc-irq", "play-irq"; + vcc_pon-supply = <&pon_perph_reg>; + qcom,play-mode = "direct"; + qcom,wave-play-rate-us = <5263>; + qcom,actuator-type = "erm"; + qcom,wave-shape = "square"; + qcom,vmax-mv = <3000>; + qcom,ilim-ma = <800>; + qcom,sc-deb-cycles = <8>; + qcom,int-pwm-freq-khz = <505>; + qcom,en-brake; + qcom,brake-pattern = [03 03 00 00]; + qcom,use-play-irq; + qcom,use-sc-irq; + qcom,wave-samples = [3e 3e 3e 3e 3e 3e 3e 3e]; + qcom,wave-rep-cnt = <1>; + qcom,wave-samp-rep-cnt = <1>; + }; + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm-audio.dtsi b/arch/arm/boot/dts/qcom/msm-audio.dtsi index 3ea3d675481bd..ee732f71cce41 100644 --- a/arch/arm/boot/dts/qcom/msm-audio.dtsi +++ b/arch/arm/boot/dts/qcom/msm-audio.dtsi @@ -301,7 +301,7 @@ }; int_codec: sound { - status = "ok"; + status = "disabled"; compatible = "qcom,msm8952-audio-codec"; qcom,model = "msm8952-snd-card-mtp"; reg = <0xc051000 0x4>, @@ -317,19 +317,20 @@ qcom,msm-mclk-freq = <9600000>; qcom,msm-mbhc-hphl-swh = <0>; qcom,msm-mbhc-gnd-swh = <0>; - qcom,msm-hs-micbias-type = "internal"; + qcom,msm-hs-micbias-type = "external"; qcom,msm-micbias1-ext-cap; qcom,audio-routing = "RX_BIAS", "MCLK", "SPK_RX_BIAS", "MCLK", "INT_LDO_H", "MCLK", "MIC BIAS External", "Handset Mic", - "MIC BIAS Internal2", "Headset Mic", - "MIC BIAS Internal1", "Secondary Mic", + "MIC BIAS External2", "Headset Mic", + "MIC BIAS External", "Secondary Mic", "AMIC1", "MIC BIAS External", - "AMIC2", "MIC BIAS Internal2", - "AMIC3", "MIC BIAS Internal1"; - + "AMIC2", "MIC BIAS External2", + "AMIC3", "MIC BIAS External", + "WSA_SPK OUT", "VDD_WSA_SWITCH", + "SpkrMono WSA_IN", "WSA_SPK OUT"; qcom,hdmi-dba-codec-rx; diff --git a/arch/arm/boot/dts/qcom/msm-pm8953.dtsi b/arch/arm/boot/dts/qcom/msm-pm8953.dtsi index 990590a420da9..7fad9be18b27d 100644 --- a/arch/arm/boot/dts/qcom/msm-pm8953.dtsi +++ b/arch/arm/boot/dts/qcom/msm-pm8953.dtsi @@ -1,6 +1,5 @@ /* * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. - * Copyright (C) 2017 XiaoMi, Inc. * * 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 @@ -35,16 +34,11 @@ interrupt-names = "kpdpwr", "resin", "resin-bark", "kpdpwr-resin-bark"; qcom,pon-dbc-delay = <15625>; - qcom,store-hard-reset-reason; qcom,system-reset; qcom,pon_1 { qcom,pon-type = <0>; qcom,pull-up = <1>; - qcom,support-reset = <1>; - qcom,s1-timer = <6720>; - qcom,s2-timer = <0>; - qcom,s2-type = <7>; linux,code = <116>; }; @@ -53,15 +47,6 @@ qcom,pull-up = <1>; linux,code = <114>; }; - - qcom,pon_3 { - qcom,pon-type = <3>; - qcom,support-reset = <1>; - qcom,s1-timer = <6720>; - qcom,s2-timer = <2000>; - qcom,s2-type = <7>; - qcom,pull-up = <1>; - }; }; pm8953_temp_alarm: qcom,temp-alarm@2400 { @@ -165,7 +150,7 @@ gpio@c700 { reg = <0xc700 0x100>; qcom,pin-num = <8>; - qcom,master-en = <0>; + status = "disabled"; }; }; @@ -260,6 +245,25 @@ }; }; + pm8953_typec: qcom,pm8953_typec@bf00 { + compatible = "qcom,qpnp-typec"; + reg = <0xbf00 0x100>; + interrupts = <0x0 0xbf 0x0>, + <0x0 0xbf 0x1>, + <0x0 0xbf 0x2>, + <0x0 0xbf 0x3>, + <0x0 0xbf 0x4>, + <0x0 0xbf 0x6>, + <0x0 0xbf 0x7>; + + interrupt-names = "vrd-change", + "ufp-detect", + "ufp-detach", + "dfp-detect", + "dfp-detach", + "vbus-err", + "vconn-oc"; + }; }; pm8953_1: qcom,pm8953@1 { diff --git a/arch/arm/boot/dts/qcom/msm-pmi8950.dtsi b/arch/arm/boot/dts/qcom/msm-pmi8950.dtsi index a0cf85064579e..25244c0506e53 100644 --- a/arch/arm/boot/dts/qcom/msm-pmi8950.dtsi +++ b/arch/arm/boot/dts/qcom/msm-pmi8950.dtsi @@ -152,12 +152,7 @@ gpio@c000 { reg = <0xc000 0x100>; qcom,pin-num = <1>; - qcom,mode = <1>; - qcom,pull = <4>; - qcom,src-sel = <2>; - qcom,master-en = <1>; - qcom,out-strength = <2>; - status = "okay"; + status = "disabled"; }; gpio@c100 { @@ -208,19 +203,19 @@ #size-cells = <1>; qcom,iterm-ma = <100>; - qcom,float-voltage-mv = <4400>; - qcom,resume-delta-mv = <50>; + qcom,float-voltage-mv = <4200>; + qcom,resume-delta-mv = <200>; qcom,chg-inhibit-fg; - qcom,charge-unknown-battery; qcom,rparasitic-uohm = <100000>; qcom,bms-psy-name = "bms"; qcom,thermal-mitigation = <1500 700 600 0>; + qcom,parallel-usb-min-current-ma = <1400>; + qcom,parallel-usb-9v-min-current-ma = <900>; + qcom,parallel-allowed-lowering-ma = <500>; qcom,pmic-revid = <&pmi8950_revid>; qcom,force-aicl-rerun; qcom,aicl-rerun-period-s = <180>; qcom,autoadjust-vfloat; - qcom,fastchg-current-comp = <900>; - qcom,float-voltage-comp = <11>; qcom,chgr@1000 { reg = <0x1000 0x100>; @@ -322,18 +317,16 @@ compatible = "qcom,qpnp-fg"; #address-cells = <1>; #size-cells = <1>; - qcom,resume-soc = <99>; + qcom,resume-soc = <95>; status = "okay"; qcom,bcl-lm-threshold-ma = <127>; qcom,bcl-mh-threshold-ma = <405>; qcom,fg-iterm-ma = <150>; qcom,fg-chg-iterm-ma = <100>; qcom,pmic-revid = <&pmi8950_revid>; - qcom,fg-cutoff-voltage-mv = <3400>; + qcom,fg-cutoff-voltage-mv = <3500>; qcom,cycle-counter-en; qcom,capacity-learning-on; - qcom,fg-cc-cv-threshold-mv = <4380>; - qcom,fg-vbat-estimate-diff-mv = <200>; qcom,fg-soc@4000 { status = "okay"; @@ -426,7 +419,7 @@ #size-cells = <1>; pmi8950_pwm: pwm@b000 { - status = "okay"; + status = "disabled"; compatible = "qcom,qpnp-pwm"; reg = <0xb000 0x100>; reg-names = "qpnp-lpg-channel-base"; @@ -536,6 +529,7 @@ qcom,sync-dly-us = <800>; qcom,fs-curr-ua = <20000>; qcom,led-strings-list = [00 01]; + qcom,en-ext-pfet-sc-pro; qcom,cons-sync-write-delay-us = <1000>; }; @@ -584,16 +578,6 @@ qcom,current = <625>; }; - pmi8950_flashlight: qcom,flashlight { - label = "torch"; - qcom,led-name = "flashlight"; - qcom,default-led-trigger = - "torch0_trigger"; - qcom,max-current = <200>; - qcom,id = <0>; - qcom,current = <120>; - }; - pmi8950_torch0: qcom,torch_0 { label = "torch"; qcom,led-name = "led:torch_0"; @@ -640,7 +624,7 @@ qcom,wave-play-rate-us = <5263>; qcom,actuator-type = "erm"; qcom,wave-shape = "square"; - qcom,vmax-mv = <3000>; + qcom,vmax-mv = <2000>; qcom,ilim-ma = <800>; qcom,sc-deb-cycles = <8>; qcom,int-pwm-freq-khz = <505>; diff --git a/arch/arm/boot/dts/qcom/msm8953-audio.dtsi b/arch/arm/boot/dts/qcom/msm8953-audio.dtsi index 0bd875b83beea..386bc5fc7b578 100644 --- a/arch/arm/boot/dts/qcom/msm8953-audio.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-audio.dtsi @@ -15,24 +15,12 @@ &int_codec { qcom,model = "msm8953-snd-card-mtp"; - qcom,msm-ext-pa = "primary"; + qcom,cdc-us-euro-gpios = <&tlmm 63 0>; - qcom,msm-spk-ext-pa = <&tlmm 96 0>; qcom,msm-mbhc-hphl-swh = <0>; qcom,msm-mbhc-gnd-swh = <0>; qcom,msm-hs-micbias-type = "internal"; qcom,msm-micbias1-ext-cap; - qcom,msm-mclk-freq = <9600000>; - qcom,audio-routing = - "RX_BIAS", "MCLK", - "SPK_RX_BIAS", "MCLK", - "INT_LDO_H", "MCLK", - "MIC BIAS External", "Handset Mic", - "MIC BIAS Internal2", "Headset Mic", - "MIC BIAS Internal1", "Secondary Mic", - "AMIC1", "MIC BIAS External", - "AMIC2", "MIC BIAS Internal2", - "AMIC3", "MIC BIAS Internal1"; qcom,msm-gpios = "pri_i2s", @@ -127,6 +115,12 @@ asoc-codec = <&stub_codec>, <&pm8953_diangu_dig>, <&hdmi_dba>; asoc-codec-names = "msm-stub-codec.1", "cajon_codec", "msm-hdmi-dba-codec-rx"; + asoc-wsa-codec-names = "wsa881x-i2c-codec.2-000f"; + asoc-wsa-codec-prefixes = "SpkrMono"; + + msm-vdd-wsa-switch-supply = <&pm8953_l5>; + qcom,msm-vdd-wsa-switch-voltage = <1800000>; + qcom,msm-vdd-wsa-switch-current = <10000>; }; &pm8953_gpios { diff --git a/arch/arm/boot/dts/qcom/msm8953-camera-sensor-qrd.dtsi b/arch/arm/boot/dts/qcom/msm8953-camera-sensor-qrd.dtsi index 3e796a15bada0..66bf97249a8bf 100644 --- a/arch/arm/boot/dts/qcom/msm8953-camera-sensor-qrd.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-camera-sensor-qrd.dtsi @@ -16,8 +16,8 @@ cell-index = <0>; compatible = "qcom,camera-flash"; qcom,flash-type = <1>; - qcom,flash-source = <&pmi8950_flash0 &pmi8950_flash1>; - qcom,torch-source = <&pmi8950_torch0 &pmi8950_torch1>; + qcom,flash-source = <&pmi8950_flash0>; + qcom,torch-source = <&pmi8950_torch0>; qcom,switch-source = <&pmi8950_switch>; }; }; @@ -37,147 +37,20 @@ eeprom0: qcom,eeprom@0 { cell-index = <0>; - reg = <0x0>; - qcom,eeprom-name = "qtech_s5k3l8"; compatible = "qcom,eeprom"; - - qcom,slave-addr = <0xA0>; qcom,cci-master = <0>; - qcom,num-blocks = <6>; - - qcom,page0 = <0 0 0 0 0 0>; - qcom,poll0 = <0 0 0 0 0 0>; - qcom,saddr0 = <0xA0>; - qcom,mem0 = <5 0x0000 2 0 1 0>; - - qcom,page1 = <0 0 0 0 0 0>; - qcom,poll1 = <0 0 0 0 0 0>; - qcom,saddr1 = <0xA0>; - qcom,mem1 = <6 0x000C 2 0 1 0>; - - qcom,page2 = <0 0 0 0 0 0>; - qcom,poll2 = <0 0 0 0 0 0>; - qcom,saddr2 = <0xA0>; - qcom,mem2 = <13 0x0019 2 0 1 0>; - - qcom,page3 = <0 0 0 0 0 0>; - qcom,poll3 = <0 0 0 0 0 0>; - qcom,saddr3 = <0xA0>; - qcom,mem3 = <1769 0x0027 2 0 1 0>; - - qcom,page4 = <0 0 0 0 0 0>; - qcom,poll4 = <0 0 0 0 0 0>; - qcom,saddr4 = <0xA0>; - qcom,mem4 = <899 0x0711 2 0 1 0>; - - qcom,page5 = <0 0 0 0 0 0>; - qcom,poll5 = <0 0 0 0 0 0>; - qcom,saddr5 = <0xA0>; - qcom,mem5 = <3 0x0D99 2 0 1 0>; - - cam_vdig-supply = <&pm8953_l2>; - cam_vana-supply = <&pm8953_l22>; + reg = <0x0>; cam_vio-supply = <&pm8953_l6>; + cam_vdig-supply = <&pm8953_l2>; cam_vaf-supply = <&pm8953_l17>; - qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; - qcom,cam-vreg-type = <0 1 0 0>; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <105000 0 80000 100000>; - qcom,gpio-no-mux = <0>; - gpios = <&tlmm 26 0>, - <&tlmm 40 0>, - <&tlmm 39 0>; - qcom,gpio-reset = <1>; - qcom,gpio-standby = <2>; - qcom,gpio-req-tbl-num = <0 1 2>; - qcom,gpio-req-tbl-flags = <1 0 0>; - qcom,gpio-req-tbl-label = "CAMIF_MCLK0", - "CAM_RESET0", - "CAM_STANDBY0"; - qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", - "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; - qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", - "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; - qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; - qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; - + qcom,cam-vreg-name = "cam_vio", "cam_vdig", "cam_vaf"; + qcom,cam-vreg-min-voltage = <0 1100000 2850000>; + qcom,cam-vreg-max-voltage = <0 1100000 2850000>; + qcom,cam-vreg-op-mode = <0 105000 100000>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; - status = "ok"; - clocks = <&clock_gcc clk_mclk0_clk_src>, - <&clock_gcc clk_gcc_camss_mclk0_clk>; - clock-names = "cam_src_clk", "cam_clk"; - qcom,clock-rates = <19200000 0>; - }; - - eeprom1: qcom,eeprom@1 { - cell-index = <1>; - reg = <0x1>; - qcom,eeprom-name = "ofilm_s5k3l8"; - compatible = "qcom,eeprom"; - - qcom,slave-addr = <0xB0>; - qcom,cci-master = <0>; - qcom,num-blocks = <9>; - - qcom,page0 = <0 0 0 0 0 0>; - qcom,poll0 = <0 0 0 0 0 0>; - qcom,saddr0 = <0xB0>; - qcom,mem0 = <1 0x0000 2 0 1 0>; - - qcom,page1 = <0 0 0 0 0 0>; - qcom,poll1 = <0 0 0 0 0 0>; - qcom,saddr1 = <0xB0>; - qcom,mem1 = <1 0x000B 2 0 1 0>; - - qcom,page2 = <0 0 0 0 0 0>; - qcom,poll2 = <0 0 0 0 0 0>; - qcom,saddr2 = <0xB0>; - qcom,mem2 = <3 0x0015 2 0 1 0>; - - qcom,page3 = <0 0 0 0 0 0>; - qcom,poll3 = <0 0 0 0 0 0>; - qcom,saddr3 = <0xB0>; - qcom,mem3 = <5 0x0019 2 0 1 0>; - - qcom,page4 = <0 0 0 0 0 0>; - qcom,poll4 = <0 0 0 0 0 0>; - qcom,saddr4 = <0xB0>; - qcom,mem4 = <1 0x0021 2 0 1 0>; - - qcom,page5 = <0 0 0 0 0 0>; - qcom,poll5 = <0 0 0 0 0 0>; - qcom,saddr5 = <0xB0>; - qcom,mem5 = <6 0x002A 2 0 1 0>; - - qcom,page6 = <0 0 0 0 0 0>; - qcom,poll6 = <0 0 0 0 0 0>; - qcom,saddr6 = <0xB0>; - qcom,mem6 = <6 0x0038 2 0 1 0>; - - qcom,page7 = <0 0 0 0 0 0>; - qcom,poll7 = <0 0 0 0 0 0>; - qcom,saddr7 = <0xB0>; - qcom,mem7 = <1769 0x003F 2 0 1 0>; - - qcom,page8 = <0 0 0 0 0 0>; - qcom,poll8 = <0 0 0 0 0 0>; - qcom,saddr8 = <0xB0>; - qcom,mem8 = <901 0x0729 2 0 1 0>; - - cam_vdig-supply = <&pm8953_l2>; - cam_vana-supply = <&pm8953_l22>; - cam_vio-supply = <&pm8953_l6>; - cam_vaf-supply = <&pm8953_l17>; - qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; - qcom,cam-vreg-type = <0 1 0 0>; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <105000 0 80000 100000>; - qcom,gpio-no-mux = <0>; gpios = <&tlmm 26 0>, <&tlmm 40 0>, <&tlmm 39 0>; @@ -188,17 +61,6 @@ qcom,gpio-req-tbl-label = "CAMIF_MCLK0", "CAM_RESET0", "CAM_STANDBY0"; - qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", - "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; - qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", - "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; - qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; - qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; - - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_sensor_mclk0_default - &cam_sensor_rear_default>; - pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; status = "ok"; clocks = <&clock_gcc clk_mclk0_clk_src>, <&clock_gcc clk_gcc_camss_mclk0_clk>; @@ -209,318 +71,15 @@ eeprom2: qcom,eeprom@2 { cell-index = <2>; reg = <0x2>; - qcom,eeprom-name = "sunny_s5k3l8"; - compatible = "qcom,eeprom"; - - qcom,slave-addr = <0xB0>; - qcom,cci-master = <0>; - qcom,num-blocks = <7>; - - qcom,page0 = <0 0 0 0 0 0>; - qcom,poll0 = <0 0 0 0 0 0>; - qcom,saddr0 = <0xB0>; - qcom,mem0 = <2 0x0000 2 0 1 0>; - - qcom,page1 = <0 0 0 0 0 0>; - qcom,poll1 = <0 0 0 0 0 0>; - qcom,saddr1 = <0xB0>; - qcom,mem1 = <3 0x0005 2 0 1 0>; - - qcom,page2 = <0 0 0 0 0 0>; - qcom,poll2 = <0 0 0 0 0 0>; - qcom,saddr2 = <0xB0>; - qcom,mem2 = <5 0x000C 2 0 1 0>; - - qcom,page3 = <0 0 0 0 0 0>; - qcom,poll3 = <0 0 0 0 0 0>; - qcom,saddr3 = <0xB0>; - qcom,mem3 = <7 0x0019 2 0 1 0>; - - qcom,page4 = <0 0 0 0 0 0>; - qcom,poll4 = <0 0 0 0 0 0>; - qcom,saddr4 = <0xB0>; - qcom,mem4 = <1769 0x0027 2 0 1 0>; - - qcom,page5 = <0 0 0 0 0 0>; - qcom,poll5 = <0 0 0 0 0 0>; - qcom,saddr5 = <0xB0>; - qcom,mem5 = <899 0x0711 2 0 1 0>; - - qcom,page6 = <0 0 0 0 0 0>; - qcom,poll6 = <0 0 0 0 0 0>; - qcom,saddr6 = <0xB0>; - qcom,mem6 = <3 0x0D99 2 0 1 0>; - - cam_vdig-supply = <&pm8953_l2>; - cam_vana-supply = <&pm8953_l22>; - cam_vio-supply = <&pm8953_l6>; - cam_vaf-supply = <&pm8953_l17>; - qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; - qcom,cam-vreg-type = <0 1 0 0>; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <105000 0 80000 100000>; - qcom,gpio-no-mux = <0>; - gpios = <&tlmm 26 0>, - <&tlmm 40 0>, - <&tlmm 39 0>; - qcom,gpio-reset = <1>; - qcom,gpio-standby = <2>; - qcom,gpio-req-tbl-num = <0 1 2>; - qcom,gpio-req-tbl-flags = <1 0 0>; - qcom,gpio-req-tbl-label = "CAMIF_MCLK0", - "CAM_RESET0", - "CAM_STANDBY0"; - qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", - "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; - qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", - "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; - qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; - qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; - - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_sensor_mclk0_default - &cam_sensor_rear_default>; - pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; - status = "ok"; - clocks = <&clock_gcc clk_mclk0_clk_src>, - <&clock_gcc clk_gcc_camss_mclk0_clk>; - clock-names = "cam_src_clk", "cam_clk"; - qcom,clock-rates = <19200000 0>; - }; - - eeprom3: qcom,eeprom@3 { - cell-index = <3>; - reg = <0x3>; compatible = "qcom,eeprom"; qcom,cci-master = <1>; - - qcom,eeprom-name = "qtech_s5k5e8"; - qcom,slave-addr = <0x20>; - qcom,num-blocks = <8>; - - qcom,page0 = <1 0x0A02 2 0x4 1 0>; - qcom,pageen0 = <1 0x0A00 2 0x1 1 0>; - qcom,poll0 = <0 0x0 2 0 1 0>; - qcom,mem0 = <64 0x0A04 2 0 1 0>; - - qcom,page1 = <1 0x0A02 2 0x5 1 0>; - qcom,pageen1 = <1 0x0A00 2 0x1 1 0>; - qcom,poll1 = <0 0x0 2 0 1 0>; - qcom,mem1 = <64 0x0A04 2 0 1 0>; - - qcom,page2 = <1 0x0A02 2 0x6 1 0>; - qcom,pageen2 = <1 0x0A00 2 0x1 1 0>; - qcom,poll2 = <0 0x0 2 0 1 0>; - qcom,mem2 = <64 0x0A04 2 0 1 0>; - - qcom,page3 = <1 0x0A02 2 0x7 1 0>; - qcom,pageen3 = <1 0x0A00 2 0x1 1 0>; - qcom,poll3 = <0 0x0 2 0 1 0>; - qcom,mem3 = <64 0x0A04 2 0 1 0>; - - qcom,page4 = <1 0x0A02 2 0x8 1 0>; - qcom,pageen4 = <1 0x0A00 2 0x1 1 0>; - qcom,poll4 = <0 0x0 2 0 1 0>; - qcom,mem4 = <64 0x0A04 2 0 1 0>; - - qcom,page5 = <1 0x0A02 2 0x9 1 0>; - qcom,pageen5 = <1 0x0A00 2 0x1 1 0>; - qcom,poll5 = <0 0x0 2 0 1 0>; - qcom,mem5 = <64 0x0A04 2 0 1 0>; - - qcom,page6 = <1 0x0A02 2 0xA 1 0>; - qcom,pageen6 = <1 0x0A00 2 0x1 1 0>; - qcom,poll6 = <0 0x0 2 0 1 0>; - qcom,mem6 = <64 0x0A04 2 0 1 0>; - - qcom,page7 = <1 0x0A02 2 0xE 1 0>; - qcom,pageen7 = <1 0x0A00 2 0x1 1 0>; - qcom,poll7 = <0 0x0 2 0 1 0>; - qcom,mem7 = <2 0x0A04 2 0 1 0>; - cam_vdig-supply = <&pm8953_l23>; cam_vana-supply = <&pm8953_l22>; cam_vio-supply = <&pm8953_l6>; - cam_vaf-supply = <&pm8953_l17>; - qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <105000 0 80000 100000>; - qcom,gpio-no-mux = <0>; - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_sensor_mclk1_default - &cam_sensor_front1_default>; - pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_front1_sleep>; - gpios = <&tlmm 27 0>, - <&tlmm 129 0>, - <&tlmm 130 0>; - qcom,gpio-reset = <1>; - qcom,gpio-standby = <2>; - qcom,gpio-req-tbl-num = <0 1 2>; - qcom,gpio-req-tbl-flags = <1 0 0>; - qcom,gpio-req-tbl-label = "CAMIF_MCLK2", - "CAM_RESET2", - "CAM_STANDBY2"; - qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", - "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; - qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", - "cam_vdig", "cam_vio", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; - qcom,cam-power-seq-cfg-val = <0 0 1 1 1 24000000 1 1>; - qcom,cam-power-seq-delay = <1 1 0 0 0 10 1 1>; - - status = "ok"; - clocks = <&clock_gcc clk_mclk1_clk_src>, - <&clock_gcc clk_gcc_camss_mclk1_clk>; - clock-names = "cam_src_clk", "cam_clk"; - qcom,clock-rates = <19200000 0>; - }; - - eeprom4: qcom,eeprom@4 { - cell-index = <4>; - reg = <0x4>; - compatible = "qcom,eeprom"; - qcom,cci-master = <1>; - - qcom,eeprom-name = "sunny_s5k5e8"; - qcom,slave-addr = <0x20>; - qcom,num-blocks = <8>; - - qcom,page0 = <1 0x0A02 2 0x4 1 0>; - qcom,pageen0 = <1 0x0A00 2 0x1 1 0>; - qcom,poll0 = <0 0x0 2 0 1 0>; - qcom,mem0 = <64 0x0A04 2 0 1 0>; - - qcom,page1 = <1 0x0A02 2 0x5 1 0>; - qcom,pageen1 = <1 0x0A00 2 0x1 1 0>; - qcom,poll1 = <0 0x0 2 0 1 0>; - qcom,mem1 = <64 0x0A04 2 0 1 0>; - - qcom,page2 = <1 0x0A02 2 0x6 1 0>; - qcom,pageen2 = <1 0x0A00 2 0x1 1 0>; - qcom,poll2 = <0 0x0 2 0 1 0>; - qcom,mem2 = <64 0x0A04 2 0 1 0>; - - qcom,page3 = <1 0x0A02 2 0x7 1 0>; - qcom,pageen3 = <1 0x0A00 2 0x1 1 0>; - qcom,poll3 = <0 0x0 2 0 1 0>; - qcom,mem3 = <64 0x0A04 2 0 1 0>; - - qcom,page4 = <1 0x0A02 2 0x8 1 0>; - qcom,pageen4 = <1 0x0A00 2 0x1 1 0>; - qcom,poll4 = <0 0x0 2 0 1 0>; - qcom,mem4 = <64 0x0A04 2 0 1 0>; - - qcom,page5 = <1 0x0A02 2 0x9 1 0>; - qcom,pageen5 = <1 0x0A00 2 0x1 1 0>; - qcom,poll5 = <0 0x0 2 0 1 0>; - qcom,mem5 = <64 0x0A04 2 0 1 0>; - - qcom,page6 = <1 0x0A02 2 0xA 1 0>; - qcom,pageen6 = <1 0x0A00 2 0x1 1 0>; - qcom,poll6 = <0 0x0 2 0 1 0>; - qcom,mem6 = <64 0x0A04 2 0 1 0>; - - qcom,page7 = <1 0x0A02 2 0xE 1 0>; - qcom,pageen7 = <1 0x0A00 2 0x1 1 0>; - qcom,poll7 = <0 0x0 2 0 1 0>; - qcom,mem7 = <2 0x0A04 2 0 1 0>; - - cam_vdig-supply = <&pm8953_l23>; - cam_vana-supply = <&pm8953_l22>; - cam_vio-supply = <&pm8953_l6>; - cam_vaf-supply = <&pm8953_l17>; - qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <105000 0 80000 100000>; - qcom,gpio-no-mux = <0>; - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_sensor_mclk1_default - &cam_sensor_front1_default>; - pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_front1_sleep>; - gpios = <&tlmm 27 0>, - <&tlmm 129 0>, - <&tlmm 130 0>; - qcom,gpio-reset = <1>; - qcom,gpio-standby = <2>; - qcom,gpio-req-tbl-num = <0 1 2>; - qcom,gpio-req-tbl-flags = <1 0 0>; - qcom,gpio-req-tbl-label = "CAMIF_MCLK2", - "CAM_RESET2", - "CAM_STANDBY2"; - qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", - "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; - qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", - "cam_vdig", "cam_vio", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; - qcom,cam-power-seq-cfg-val = <0 0 1 1 1 24000000 1 1>; - qcom,cam-power-seq-delay = <1 1 0 0 0 10 1 1>; - - status = "ok"; - clocks = <&clock_gcc clk_mclk1_clk_src>, - <&clock_gcc clk_gcc_camss_mclk1_clk>; - clock-names = "cam_src_clk", "cam_clk"; - qcom,clock-rates = <19200000 0>; - }; - - eeprom5: qcom,eeprom@5 { - cell-index = <5>; - reg = <0x5>; - compatible = "qcom,eeprom"; - qcom,cci-master = <1>; - - qcom,eeprom-name = "ofilm_s5k5e8"; - qcom,slave-addr = <0x5A>; - qcom,num-blocks = <8>; - - qcom,page0 = <1 0x0A02 2 0x4 1 0>; - qcom,pageen0 = <1 0x0A00 2 0x1 1 0>; - qcom,poll0 = <0 0x0 2 0 1 0>; - qcom,mem0 = <64 0x0A04 2 0 1 0>; - - qcom,page1 = <1 0x0A02 2 0x5 1 0>; - qcom,pageen1 = <1 0x0A00 2 0x1 1 0>; - qcom,poll1 = <0 0x0 2 0 1 0>; - qcom,mem1 = <64 0x0A04 2 0 1 0>; - - qcom,page2 = <1 0x0A02 2 0x6 1 0>; - qcom,pageen2 = <1 0x0A00 2 0x1 1 0>; - qcom,poll2 = <0 0x0 2 0 1 0>; - qcom,mem2 = <64 0x0A04 2 0 1 0>; - - qcom,page3 = <1 0x0A02 2 0x7 1 0>; - qcom,pageen3 = <1 0x0A00 2 0x1 1 0>; - qcom,poll3 = <0 0x0 2 0 1 0>; - qcom,mem3 = <64 0x0A04 2 0 1 0>; - - qcom,page4 = <1 0x0A02 2 0x8 1 0>; - qcom,pageen4 = <1 0x0A00 2 0x1 1 0>; - qcom,poll4 = <0 0x0 2 0 1 0>; - qcom,mem4 = <64 0x0A04 2 0 1 0>; - - qcom,page5 = <1 0x0A02 2 0x9 1 0>; - qcom,pageen5 = <1 0x0A00 2 0x1 1 0>; - qcom,poll5 = <0 0x0 2 0 1 0>; - qcom,mem5 = <64 0x0A04 2 0 1 0>; - - qcom,page6 = <1 0x0A02 2 0xA 1 0>; - qcom,pageen6 = <1 0x0A00 2 0x1 1 0>; - qcom,poll6 = <0 0x0 2 0 1 0>; - qcom,mem6 = <64 0x0A04 2 0 1 0>; - - qcom,page7 = <1 0x0A02 2 0xE 1 0>; - qcom,pageen7 = <1 0x0A00 2 0x1 1 0>; - qcom,poll7 = <0 0x0 2 0 1 0>; - qcom,mem7 = <2 0x0A04 2 0 1 0>; - - cam_vdig-supply = <&pm8953_l23>; - cam_vana-supply = <&pm8953_l22>; - cam_vio-supply = <&pm8953_l6>; - cam_vaf-supply = <&pm8953_l17>; - qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 0 2800000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; qcom,gpio-no-mux = <0>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_sensor_mclk1_default @@ -536,13 +95,7 @@ qcom,gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET2", "CAM_STANDBY2"; - qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", - "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; - qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", - "cam_vdig", "cam_vio", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; - qcom,cam-power-seq-cfg-val = <0 0 1 1 1 24000000 1 1>; - qcom,cam-power-seq-delay = <1 1 0 0 0 10 1 1>; - + qcom,sensor-mode = <0>; status = "ok"; clocks = <&clock_gcc clk_mclk1_clk_src>, <&clock_gcc clk_gcc_camss_mclk1_clk>; @@ -550,358 +103,6 @@ qcom,clock-rates = <19200000 0>; }; - eeprom6: qcom,eeprom@6 { - cell-index = <6>; - reg = <0x6>; - qcom,eeprom-name = "ofilm_imx258"; - compatible = "qcom,eeprom"; - - qcom,slave-addr = <0xB0>; - qcom,cci-master = <0>; - qcom,num-blocks = <8>; - - qcom,page0 = <0 0 0 0 0 0>; - qcom,poll0 = <0 0 0 0 0 0>; - qcom,saddr0 = <0xB0>; - qcom,mem0 = <1024 0x0000 2 0 1 0>; - - qcom,page1 = <0 0 0 0 0 0>; - qcom,poll1 = <0 0 0 0 0 0>; - qcom,saddr1 = <0xB0>; - qcom,mem1 = <1024 0x0400 2 0 1 0>; - - qcom,page2 = <0 0 0 0 0 0>; - qcom,poll2 = <0 0 0 0 0 0>; - qcom,saddr2 = <0xB0>; - qcom,mem2 = <1024 0x0800 2 0 1 0>; - - qcom,page3 = <0 0 0 0 0 0>; - qcom,poll3 = <0 0 0 0 0 0>; - qcom,saddr3 = <0xB0>; - qcom,mem3 = <1024 0x0C00 2 0 1 0>; - - qcom,page4 = <0 0 0 0 0 0>; - qcom,poll4 = <0 0 0 0 0 0>; - qcom,saddr4 = <0xB0>; - qcom,mem4 = <1024 0x1000 2 0 1 0>; - - qcom,page5 = <0 0 0 0 0 0>; - qcom,poll5 = <0 0 0 0 0 0>; - qcom,saddr5 = <0xB0>; - qcom,mem5 = <1024 0x1400 2 0 1 0>; - - qcom,page6 = <0 0 0 0 0 0>; - qcom,poll6 = <0 0 0 0 0 0>; - qcom,saddr6 = <0xB0>; - qcom,mem6 = <1024 0x1800 2 0 1 0>; - - qcom,page7 = <0 0 0 0 0 0>; - qcom,poll7 = <0 0 0 0 0 0>; - qcom,saddr7 = <0xB0>; - qcom,mem7 = <1024 0x1C00 2 0 1 0>; - - cam_vdig-supply = <&pm8953_l2>; - cam_vana-supply = <&pm8953_l22>; - cam_vio-supply = <&pm8953_l6>; - cam_vaf-supply = <&pm8953_l17>; - qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; - qcom,cam-vreg-type = <0 1 0 0>; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <105000 0 80000 100000>; - qcom,gpio-no-mux = <0>; - gpios = <&tlmm 26 0>, - <&tlmm 40 0>, - <&tlmm 39 0>; - qcom,gpio-reset = <1>; - qcom,gpio-standby = <2>; - qcom,gpio-req-tbl-num = <0 1 2>; - qcom,gpio-req-tbl-flags = <1 0 0>; - qcom,gpio-req-tbl-label = "CAMIF_MCLK0", - "CAM_RESET0", - "CAM_STANDBY0"; - qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", - "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; - qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", - "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; - qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; - qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; - - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_sensor_mclk0_default - &cam_sensor_rear_default>; - pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; - status = "ok"; - clocks = <&clock_gcc clk_mclk0_clk_src>, - <&clock_gcc clk_gcc_camss_mclk0_clk>; - clock-names = "cam_src_clk", "cam_clk"; - qcom,clock-rates = <19200000 0>; - }; - - eeprom7: qcom,eeprom@7 { - cell-index = <7>; - reg = <0x7>; - qcom,eeprom-name = "qtech_imx258"; - compatible = "qcom,eeprom"; - - qcom,slave-addr = <0xA0>; - qcom,cci-master = <0>; - qcom,num-blocks = <8>; - - qcom,page0 = <0 0 0 0 0 0>; - qcom,poll0 = <0 0 0 0 0 0>; - qcom,saddr0 = <0xA0>; - qcom,mem0 = <1024 0x0000 2 0 1 0>; - - qcom,page1 = <0 0 0 0 0 0>; - qcom,poll1 = <0 0 0 0 0 0>; - qcom,saddr1 = <0xA0>; - qcom,mem1 = <1024 0x0400 2 0 1 0>; - - qcom,page2 = <0 0 0 0 0 0>; - qcom,poll2 = <0 0 0 0 0 0>; - qcom,saddr2 = <0xA0>; - qcom,mem2 = <1024 0x0800 2 0 1 0>; - - qcom,page3 = <0 0 0 0 0 0>; - qcom,poll3 = <0 0 0 0 0 0>; - qcom,saddr3 = <0xA0>; - qcom,mem3 = <1024 0x0C00 2 0 1 0>; - - qcom,page4 = <0 0 0 0 0 0>; - qcom,poll4 = <0 0 0 0 0 0>; - qcom,saddr4 = <0xA0>; - qcom,mem4 = <1024 0x1000 2 0 1 0>; - - qcom,page5 = <0 0 0 0 0 0>; - qcom,poll5 = <0 0 0 0 0 0>; - qcom,saddr5 = <0xA0>; - qcom,mem5 = <1024 0x1400 2 0 1 0>; - - qcom,page6 = <0 0 0 0 0 0>; - qcom,poll6 = <0 0 0 0 0 0>; - qcom,saddr6 = <0xA0>; - qcom,mem6 = <1024 0x1800 2 0 1 0>; - - qcom,page7 = <0 0 0 0 0 0>; - qcom,poll7 = <0 0 0 0 0 0>; - qcom,saddr7 = <0xA0>; - qcom,mem7 = <1024 0x1C00 2 0 1 0>; - - cam_vdig-supply = <&pm8953_l2>; - cam_vana-supply = <&pm8953_l22>; - cam_vio-supply = <&pm8953_l6>; - cam_vaf-supply = <&pm8953_l17>; - qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; - qcom,cam-vreg-type = <0 1 0 0>; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <105000 0 80000 100000>; - qcom,gpio-no-mux = <0>; - gpios = <&tlmm 26 0>, - <&tlmm 40 0>, - <&tlmm 39 0>; - qcom,gpio-reset = <1>; - qcom,gpio-standby = <2>; - qcom,gpio-req-tbl-num = <0 1 2>; - qcom,gpio-req-tbl-flags = <1 0 0>; - qcom,gpio-req-tbl-label = "CAMIF_MCLK0", - "CAM_RESET0", - "CAM_STANDBY0"; - qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", - "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; - qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", - "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; - qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; - qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; - - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_sensor_mclk0_default - &cam_sensor_rear_default>; - pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; - status = "ok"; - clocks = <&clock_gcc clk_mclk0_clk_src>, - <&clock_gcc clk_gcc_camss_mclk0_clk>; - clock-names = "cam_src_clk", "cam_clk"; - qcom,clock-rates = <19200000 0>; - }; - - eeprom8: qcom,eeprom@8 { - cell-index = <8>; - reg = <0x8>; - qcom,eeprom-name = "sunny_imx258"; - compatible = "qcom,eeprom"; - - qcom,slave-addr = <0xB0>; - qcom,cci-master = <0>; - qcom,num-blocks = <8>; - - qcom,page0 = <0 0 0 0 0 0>; - qcom,poll0 = <0 0 0 0 0 0>; - qcom,saddr0 = <0xB0>; - qcom,mem0 = <1024 0x0000 2 0 1 0>; - - qcom,page1 = <0 0 0 0 0 0>; - qcom,poll1 = <0 0 0 0 0 0>; - qcom,saddr1 = <0xB0>; - qcom,mem1 = <1024 0x0400 2 0 1 0>; - - qcom,page2 = <0 0 0 0 0 0>; - qcom,poll2 = <0 0 0 0 0 0>; - qcom,saddr2 = <0xB0>; - qcom,mem2 = <1024 0x0800 2 0 1 0>; - - qcom,page3 = <0 0 0 0 0 0>; - qcom,poll3 = <0 0 0 0 0 0>; - qcom,saddr3 = <0xB0>; - qcom,mem3 = <1024 0x0C00 2 0 1 0>; - - qcom,page4 = <0 0 0 0 0 0>; - qcom,poll4 = <0 0 0 0 0 0>; - qcom,saddr4 = <0xB0>; - qcom,mem4 = <1024 0x1000 2 0 1 0>; - - qcom,page5 = <0 0 0 0 0 0>; - qcom,poll5 = <0 0 0 0 0 0>; - qcom,saddr5 = <0xB0>; - qcom,mem5 = <1024 0x1400 2 0 1 0>; - - qcom,page6 = <0 0 0 0 0 0>; - qcom,poll6 = <0 0 0 0 0 0>; - qcom,saddr6 = <0xB0>; - qcom,mem6 = <1024 0x1800 2 0 1 0>; - - qcom,page7 = <0 0 0 0 0 0>; - qcom,poll7 = <0 0 0 0 0 0>; - qcom,saddr7 = <0xB0>; - qcom,mem7 = <1024 0x1C00 2 0 1 0>; - - cam_vdig-supply = <&pm8953_l2>; - cam_vana-supply = <&pm8953_l22>; - cam_vio-supply = <&pm8953_l6>; - cam_vaf-supply = <&pm8953_l17>; - qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; - qcom,cam-vreg-type = <0 1 0 0>; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <105000 0 80000 100000>; - qcom,gpio-no-mux = <0>; - gpios = <&tlmm 26 0>, - <&tlmm 40 0>, - <&tlmm 39 0>; - qcom,gpio-reset = <1>; - qcom,gpio-standby = <2>; - qcom,gpio-req-tbl-num = <0 1 2>; - qcom,gpio-req-tbl-flags = <1 0 0>; - qcom,gpio-req-tbl-label = "CAMIF_MCLK0", - "CAM_RESET0", - "CAM_STANDBY0"; - qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", - "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; - qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", - "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; - qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; - qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; - - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_sensor_mclk0_default - &cam_sensor_rear_default>; - pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; - status = "ok"; - clocks = <&clock_gcc clk_mclk0_clk_src>, - <&clock_gcc clk_gcc_camss_mclk0_clk>; - clock-names = "cam_src_clk", "cam_clk"; - qcom,clock-rates = <19200000 0>; - }; - - eeprom9: qcom,eeprom@9 { - cell-index = <9>; - reg = <0x9>; - qcom,eeprom-name = "qtech_ov13855"; - compatible = "qcom,eeprom"; - - qcom,slave-addr = <0xA0>; - qcom,cci-master = <0>; - qcom,num-blocks = <8>; - - qcom,page0 = <0 0 0 0 0 0>; - qcom,poll0 = <0 0 0 0 0 0>; - qcom,saddr0 = <0xA0>; - qcom,mem0 = <1024 0x0000 2 0 1 0>; - - qcom,page1 = <0 0 0 0 0 0>; - qcom,poll1 = <0 0 0 0 0 0>; - qcom,saddr1 = <0xA0>; - qcom,mem1 = <1024 0x0400 2 0 1 0>; - - qcom,page2 = <0 0 0 0 0 0>; - qcom,poll2 = <0 0 0 0 0 0>; - qcom,saddr2 = <0xA0>; - qcom,mem2 = <1024 0x0800 2 0 1 0>; - - qcom,page3 = <0 0 0 0 0 0>; - qcom,poll3 = <0 0 0 0 0 0>; - qcom,saddr3 = <0xA0>; - qcom,mem3 = <1024 0x0C00 2 0 1 0>; - - qcom,page4 = <0 0 0 0 0 0>; - qcom,poll4 = <0 0 0 0 0 0>; - qcom,saddr4 = <0xA0>; - qcom,mem4 = <1024 0x1000 2 0 1 0>; - - qcom,page5 = <0 0 0 0 0 0>; - qcom,poll5 = <0 0 0 0 0 0>; - qcom,saddr5 = <0xA0>; - qcom,mem5 = <1024 0x1400 2 0 1 0>; - - qcom,page6 = <0 0 0 0 0 0>; - qcom,poll6 = <0 0 0 0 0 0>; - qcom,saddr6 = <0xA0>; - qcom,mem6 = <1024 0x1800 2 0 1 0>; - - qcom,page7 = <0 0 0 0 0 0>; - qcom,poll7 = <0 0 0 0 0 0>; - qcom,saddr7 = <0xA0>; - qcom,mem7 = <1024 0x1C00 2 0 1 0>; - - cam_vdig-supply = <&pm8953_l2>; - cam_vana-supply = <&pm8953_l22>; - cam_vio-supply = <&pm8953_l6>; - cam_vaf-supply = <&pm8953_l17>; - qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; - qcom,cam-vreg-type = <0 1 0 0>; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <105000 0 80000 100000>; - qcom,gpio-no-mux = <0>; - gpios = <&tlmm 26 0>, - <&tlmm 40 0>, - <&tlmm 39 0>; - qcom,gpio-reset = <1>; - qcom,gpio-standby = <2>; - qcom,gpio-req-tbl-num = <0 1 2>; - qcom,gpio-req-tbl-flags = <1 0 0>; - qcom,gpio-req-tbl-label = "CAMIF_MCLK0", - "CAM_RESET0", - "CAM_STANDBY0"; - qcom,cam-power-seq-type = "sensor_gpio", "sensor_gpio", "sensor_vreg", - "sensor_vreg", "sensor_vreg", "sensor_vreg", "sensor_clk" , "sensor_gpio", "sensor_gpio"; - qcom,cam-power-seq-val = "sensor_gpio_reset", "sensor_gpio_standby", "cam_vana", - "cam_vdig", "cam_vio","cam_vaf", "sensor_cam_mclk", "sensor_gpio_reset", "sensor_gpio_standby"; - qcom,cam-power-seq-cfg-val = <0 0 1 1 1 1 24000000 1 1>; - qcom,cam-power-seq-delay = <1 1 0 0 0 1 1 1 1>; - - pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_sensor_mclk0_default - &cam_sensor_rear_default>; - pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; - status = "ok"; - clocks = <&clock_gcc clk_mclk0_clk_src>, - <&clock_gcc clk_gcc_camss_mclk0_clk>; - clock-names = "cam_src_clk", "cam_clk"; - qcom,clock-rates = <19200000 0>; - }; - qcom,camera@0 { cell-index = <0>; compatible = "qcom,camera"; @@ -909,7 +110,7 @@ qcom,csiphy-sd-index = <0>; qcom,csid-sd-index = <0>; qcom,mount-angle = <90>; - qcom,eeprom-src = <&eeprom0 &eeprom1 &eeprom2 &eeprom6 &eeprom7 &eeprom8 &eeprom9>; + qcom,eeprom-src = <&eeprom0>; qcom,actuator-src = <&actuator0>; qcom,led-flash-src = <&led_flash0>; cam_vdig-supply = <&pm8953_l2>; @@ -943,6 +144,46 @@ clock-names = "cam_src_clk", "cam_clk"; qcom,clock-rates = <24000000 0>; }; + qcom,camera@1 { + cell-index = <1>; + compatible = "qcom,camera"; + reg = <0x1>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,mount-angle = <90>; + cam_vdig-supply = <&pm8953_l23>; + cam_vana-supply = <&pm8953_l22>; + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 0 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 131 0>, + <&tlmm 132 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1", + "CAM_STANDBY1"; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "disabled"; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; qcom,camera@2 { cell-index = <2>; @@ -951,7 +192,7 @@ qcom,csiphy-sd-index = <2>; qcom,csid-sd-index = <2>; qcom,mount-angle = <270>; - qcom,eeprom-src = <&eeprom3 &eeprom4 &eeprom5>; + qcom,eeprom-src = <&eeprom2>; cam_vdig-supply = <&pm8953_l23>; cam_vana-supply = <&pm8953_l22>; cam_vio-supply = <&pm8953_l6>; diff --git a/arch/arm/boot/dts/qcom/msm8953-cdp.dtsi b/arch/arm/boot/dts/qcom/msm8953-cdp.dtsi index b7752c9db7298..b04c1b9a37439 100644 --- a/arch/arm/boot/dts/qcom/msm8953-cdp.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-cdp.dtsi @@ -286,7 +286,16 @@ status = "ok"; }; +&pm8953_typec { + ss-mux-supply = <&pm8953_l13>; + qcom,ssmux-gpio = <&tlmm 139 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&typec_ssmux_config>; +}; + &pmi8950_charger { + qcom,external-typec; + qcom,typec-psy-name = "typec"; }; &pm8953_gpios { diff --git a/arch/arm/boot/dts/qcom/msm8953-mdss-panels.dtsi b/arch/arm/boot/dts/qcom/msm8953-mdss-panels.dtsi index 98b3edc8b237e..14d742d19996f 100644 --- a/arch/arm/boot/dts/qcom/msm8953-mdss-panels.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-mdss-panels.dtsi @@ -1,5 +1,4 @@ /* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. - * Copyright (C) 2017 XiaoMi, Inc. * * 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 @@ -10,9 +9,7 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ -#include "dsi-panel-nt35532-fhd-video.dtsi" -#include "dsi-panel-nt35596-fhd-video.dtsi" -#include "dsi-panel-nt35596-tianma-fhd-video.dtsi" + #include "dsi-panel-sim-video.dtsi" #include "dsi-panel-sim-dualmipi-video.dtsi" #include "dsi-panel-sim-cmd.dtsi" @@ -69,34 +66,6 @@ }; }; -/* Rain bow lcd nt35532 */ - -&dsi_nt35532_fhd_vid { - qcom,mdss-dsi-panel-timings-phy-v2 = [24 1f 08 09 05 03 04 a0 - 24 1f 08 09 05 03 04 a0 - 24 1f 08 09 05 03 04 a0 - 24 1f 08 09 05 03 04 a0 - 24 1b 08 09 05 03 04 a0]; -}; - -&dsi_nt35596_fhd_vid { - qcom,mdss-dsi-panel-timings-phy-v2 = [24 1f 08 09 05 03 04 a0 - 24 1f 08 09 05 03 04 a0 - 24 1f 08 09 05 03 04 a0 - 24 1f 08 09 05 03 04 a0 - 24 1b 08 08 05 03 04 a0]; -}; - -&dsi_nt35596_tianma_fhd_vid { - qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 08 09 05 03 04 a0 - 23 1e 08 09 05 03 04 a0 - 23 1e 08 09 05 03 04 a0 - 23 1e 08 09 05 03 04 a0 - 23 1a 08 09 05 03 04 a0]; -}; - - - &dsi_truly_1080_vid { qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 08 09 05 03 04 a0 23 1e 08 09 05 03 04 a0 diff --git a/arch/arm/boot/dts/qcom/msm8953-mdss-pll.dtsi b/arch/arm/boot/dts/qcom/msm8953-mdss-pll.dtsi index f291a4caa0334..a279453a1c74f 100644 --- a/arch/arm/boot/dts/qcom/msm8953-mdss-pll.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-mdss-pll.dtsi @@ -28,6 +28,8 @@ clock-names = "iface_clk"; clock-rate = <0>; + qcom,dsi-pll-ssc-en; + qcom,dsi-pll-ssc-mode = "down-spread"; /* Memory region for passing dynamic refresh pll codes */ memory-region = <&dfps_data_mem>; @@ -59,6 +61,8 @@ gdsc-supply = <&gdsc_mdss>; + qcom,dsi-pll-ssc-en; + qcom,dsi-pll-ssc-mode = "down-spread"; clocks = <&clock_gcc clk_gcc_mdss_ahb_clk>; clock-names = "iface_clk"; clock-rate = <0>; diff --git a/arch/arm/boot/dts/qcom/msm8953-mtp.dtsi b/arch/arm/boot/dts/qcom/msm8953-mtp.dtsi index 495edacf519a4..e9d1e325d0567 100644 --- a/arch/arm/boot/dts/qcom/msm8953-mtp.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-mtp.dtsi @@ -247,6 +247,12 @@ status = "ok"; }; +&pm8953_typec { + ss-mux-supply = <&pm8953_l13>; + qcom,ssmux-gpio = <&tlmm 139 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&typec_ssmux_config>; +}; /{ mtp_batterydata: qcom,battery-data { @@ -262,6 +268,10 @@ &pmi8950_charger { qcom,battery-data = <&mtp_batterydata>; + qcom,chg-led-sw-controls; + qcom,chg-led-support; + qcom,external-typec; + qcom,typec-psy-name = "typec"; }; &pm8953_gpios { diff --git a/arch/arm/boot/dts/qcom/msm8953-pinctrl.dtsi b/arch/arm/boot/dts/qcom/msm8953-pinctrl.dtsi index aade453ee3e99..a3126b204e5d5 100644 --- a/arch/arm/boot/dts/qcom/msm8953-pinctrl.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-pinctrl.dtsi @@ -376,7 +376,7 @@ mdss_te_active: mdss_te_active { mux { pins = "gpio24"; - function = "gpio"; + function = "mdp_vsync"; }; config { pins = "gpio24"; @@ -388,7 +388,7 @@ mdss_te_suspend: mdss_te_suspend { mux { pins = "gpio24"; - function = "gpio"; + function = "mdp_vsync"; }; config { pins = "gpio24"; @@ -652,104 +652,6 @@ }; }; - goodix_spi_active: goodix_spi_active{ - mux { - pins = "gpio135", "gpio136", "gpio137", "gpio138"; - function = "blsp_spi6"; - }; - config { - pins = "gpio135", "gpio136", "gpio137", "gpio138"; - drive-strength = <2>; - bias-disable = <0>; - }; - }; - goodix_reset_reset: goodix_reset_reset{ - mux { - pins = "gpio140"; - function = "gpio"; - }; - config { - pins = "gpio140"; - drive-strength = <2>; - bias-disable = <0>; - output-low; - }; - }; - goodix_reset_active: goodix_reset_active{ - mux { - pins = "gpio140"; - function = "gpio"; - }; - config { - pins = "gpio140"; - drive-strength = <2>; - bias-disable = <0>; - output-high; - }; - }; - goodix_irq_active: goodix_irq_active { - mux { - pins = "gpio48"; - function = "gpio"; - }; - config { - pins = "gpio48"; - drive-strength = <2>; - bias-disable = <0>; - input-enable; - }; - }; - - /* fingerprint pin function */ - fpc_spi_active: fpc_spi_active { - mux { - pins = "gpio135", "gpio136", "gpio137", "gpio138"; - function = "blsp_spi7"; - }; - - config { - pins = "gpio135", "gpio136", "gpio137", "gpio138"; - drive-strength = <2>; - bias-disable; - }; - }; - fpc_reset_reset: fpc_reset_reset { - mux { - pins = "gpio140"; - function = "gpio"; - }; - config { - pins = "gpio140"; - drive-strength = <2>; - bias-disable; - output-low; - }; - }; - fpc_reset_active: fpc_reset_active { - mux { - pins = "gpio140"; - function = "gpio"; - }; - config { - pins = "gpio140"; - drive-strength = <2>; - bias-disable; - output-high; - }; - }; - fpc_irq_active: fpc_irq_active { - mux { - pins = "gpio48"; - function = "gpio"; - }; - config { - pins = "gpio48"; - drive-strength = <2>; - bias-disable; - input-enable; - }; - }; - pmx_rd_nfc_int { /*qcom,pins = <&gp 17>;*/ pins = "gpio17"; diff --git a/arch/arm/boot/dts/qcom/msm8953-pm.dtsi b/arch/arm/boot/dts/qcom/msm8953-pm.dtsi index 76b9f37f9bae6..d30fe282fb356 100644 --- a/arch/arm/boot/dts/qcom/msm8953-pm.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-pm.dtsi @@ -475,7 +475,6 @@ <72 139>, <73 140>, <74 141>, - <0xff 24>, <0xff 88>; }; diff --git a/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dts b/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dts index 98785a77d7428..dd65115017ebe 100644 --- a/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dts +++ b/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dts @@ -20,6 +20,6 @@ model = "Qualcomm Technologies, Inc. MSM8953 QRD SKU3"; compatible = "qcom,msm8953-qrd-sku3", "qcom,msm8953-qrd", "qcom,msm8953", "qcom,qrd"; - qcom,board-id= <0x0b 0>; + qcom,board-id= <0x2000b 0>; }; diff --git a/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dtsi b/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dtsi index a1087c6928276..871e7f2867034 100644 --- a/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-qrd-sku3.dtsi @@ -70,7 +70,8 @@ lab-supply = <&lab_regulator>; ibb-supply = <&ibb_regulator>; /delete-property/ vdd-supply; - qcom,dsi-pref-prim-pan = <&dsi_nt35596_fhd_vid>; + + qcom,dsi-pref-prim-pan = <&dsi_r69006_1080p_cmd>; pinctrl-names = "mdss_default", "mdss_sleep"; pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; @@ -87,21 +88,6 @@ qpnp,qpnp-labibb-mode = "lcd"; }; -&dsi_nt35532_fhd_vid { - qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; - -}; - -&dsi_nt35596_fhd_vid { - qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; - -}; - -&dsi_nt35596_tianma_fhd_vid { - qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; - -}; - &dsi_r69006_1080p_cmd { qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; }; @@ -111,19 +97,19 @@ }; &int_codec { - status = "ok"; + status = "disabled"; }; &pm8953_diangu_dig { - status = "ok"; + status = "disabled"; }; &pm8953_diangu_analog { - status = "ok"; + status = "disabled"; }; &ext_codec { - status = "disabled"; + status = "ok"; qcom,model = "msm8953-sku3-tasha-snd-card"; qcom,audio-routing = @@ -150,18 +136,25 @@ }; &slim_msm { - status = "disabled"; + status = "ok"; }; &dai_slim { - status = "disabled"; + status = "ok"; +}; + +&wcd9xxx_intc { + status = "ok"; }; &clock_audio { - status = "disabled"; + status = "ok"; }; &wcd9335 { - status = "disabled"; + status = "ok"; }; +&wcd_rst_gpio { + status = "ok"; +}; diff --git a/arch/arm/boot/dts/qcom/msm8953-qrd.dtsi b/arch/arm/boot/dts/qcom/msm8953-qrd.dtsi index b23bf270f88b2..c081a1c30822d 100644 --- a/arch/arm/boot/dts/qcom/msm8953-qrd.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-qrd.dtsi @@ -1,6 +1,5 @@ /* * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. - * Copyright (C) 2017 XiaoMi, Inc. * * 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 @@ -32,63 +31,6 @@ }; }; - pwm_ir { - compatible = "pwm-ir"; - pwms = <&pmi8950_pwm 0 0>; - reg-id = "vdd"; - vdd-supply = <&pm8953_l8>; - }; - - goodix_fp { - compatible = "goodix,fingerprint"; - spi-max-frequency = <1000000>; - input-device-name = "gf3208"; - interrupt-parent = <&tlmm>; - interrupts = <9 0x0>; - - goodix,gpio_reset = <&tlmm 140 0>; - goodix,gpio_irq = <&tlmm 48 0>; - - clock-names = "iface_clk", "core_clk"; - clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, - <&clock_gcc clk_gcc_blsp1_qup1_spi_apps_clk>; - - pinctrl-names = "goodixfp_spi_active", - "goodixfp_reset_reset", - "goodixfp_reset_active", - "goodixfp_irq_active"; - - pinctrl-0 = <&goodix_spi_active>; - pinctrl-1 = <&goodix_reset_reset>; - pinctrl-2 = <&goodix_reset_active>; - pinctrl-3 = <&goodix_irq_active>; - }; - - fpc1020 { - compatible = "fpc,fpc1020"; - spi-max-frequency = <1000000>; - input-device-name = "fpc1020"; - interrupt-parent = <&tlmm>; - interrupts = <9 0x0>; - - fpc,gpio_rst = <&tlmm 140 0>; - fpc,gpio_irq = <&tlmm 48 0>; - - clock-names = "iface_clk", "core_clk"; - clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, - <&clock_gcc clk_gcc_blsp1_qup1_spi_apps_clk>; - - pinctrl-names = "fpc1020_spi_active", - "fpc1020_reset_reset", - "fpc1020_reset_active", - "fpc1020_irq_active"; - - pinctrl-0 = <&fpc_spi_active>; - pinctrl-1 = <&fpc_reset_reset>; - pinctrl-2 = <&fpc_reset_active>; - pinctrl-3 = <&fpc_irq_active>; - }; - i2c@78b7000 { /* BLSP1 QUP3 */ status = "okay"; synaptics@4b { @@ -116,105 +58,6 @@ clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, <&clock_gcc clk_gcc_blsp1_qup3_i2c_apps_clk>; }; - focaltech@38 { - compatible = "focaltech,5435"; - reg = <0x38>; - interrupt-parent = <&tlmm>; - interrupts = <65 0x2>; - vdd-supply = <&pm8953_l10>; - vcc_i2c-supply = <&pm8953_l6>; - /* pins used by touchscreen */ - pinctrl-names = "pmx_ts_active","pmx_ts_suspend", - "pmx_ts_release"; - pinctrl-0 = <&ts_int_active &ts_reset_active>; - pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; - pinctrl-2 = <&ts_release>; - focaltech,name = "ft5435"; - focaltech,family-id = <0x54>; - focaltech,reset-gpio = <&tlmm 64 0x0>; - focaltech,irq-gpio = <&tlmm 65 0x2008>; - focaltech,display-coords = <0 0 1080 1920>; - focaltech,panel-coords = <0 0 1080 1920>; - focaltech,no-force-update; - focaltech,i2c-pull-up; - focaltech,group-id = <1>; - focaltech,hard-reset-delay-ms = <200>; - focaltech,soft-reset-delay-ms = <200>; - focaltech,num-max-touches = <10>; - focaltech,fw-delay-aa-ms = <2>; - focaltech,fw-delay-55-ms = <2>; - focaltech,fw-upgrade-id1 = <0x54>; - focaltech,fw-upgrade-id2 = <0x2c>; - focaltech,fw-delay-readid-ms = <10>; - focaltech,fw-delay-era-flsh-ms = <2000>; - focaltech,fw-auto-cal; - focaltech,fw-vkey-support; - focaltech,resume-in-workqueue; - focaltech,num-virtual-key = <3>; - focal,virtual_key_1 = <172 500 2040>;/*home*/ - focal,virtual_key_2 = <139 200 2040>;/*menu*/ - focal,virtual_key_3 = <158 800 2040>;/*back*/ - }; - imagis@50 { - compatible = "imagis,ist30xx-ts"; - reg = <0x50>; - interrupt-parent = <&tlmm>; - interrupts = <65 0x2>; - vdd-supply = <&pm8953_l10>; - vcc_i2c-supply = <&pm8953_l6>; - /* pins used by touchscreen */ - pinctrl-names = "pmx_ts_active","pmx_ts_suspend", - "pmx_ts_release"; - pinctrl-0 = <&ts_int_active &ts_reset_active>; - pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; - pinctrl-2 = <&ts_release>; - imagis,reset-gpio = <&tlmm 64 0x0>; - imagis,irq-gpio = <&tlmm 65 0x2008>; - imagis,i2c-pull-up; - }; - - }; - - i2c@78b6000 { /* BLSP1 QUP3 */ - aw2013@45 { - compatible = "awinic,aw2013"; - reg = <0x45>; - vdd-supply = <&pm8953_l10>; - vcc-supply = <&pm8953_l5>; - - aw2013,red { - aw2013,name = "red"; - aw2013,id = <0>; - aw2013,max-brightness = <255>; - aw2013,max-current = <1>; - aw2013,rise-time-ms = <3>; - aw2013,hold-time-ms = <1>; - aw2013,fall-time-ms = <3>; - aw2013,off-time-ms = <3>; - }; - - aw2013,green { - aw2013,name = "green"; - aw2013,id = <1>; - aw2013,max-brightness = <255>; - aw2013,max-current = <1>; - aw2013,rise-time-ms = <3>; - aw2013,hold-time-ms = <1>; - aw2013,fall-time-ms = <3>; - aw2013,off-time-ms = <3>; - }; - - aw2013,blue { - aw2013,name = "blue"; - aw2013,id = <2>; - aw2013,max-brightness = <255>; - aw2013,max-current = <1>; - aw2013,rise-time-ms = <3>; - aw2013,hold-time-ms = <1>; - aw2013,fall-time-ms = <3>; - aw2013,off-time-ms = <3>; - }; - }; }; vdd_vreg: vdd_vreg { @@ -229,52 +72,55 @@ }; &spmi_bus { - qcom,pm8953@0 { + qcom,pmi8950@2 { qcom,leds@a100 { status = "okay"; - compatible = "qcom,leds-qpnp"; - reg = <0xa100 0x100>; - label = "mpp"; qcom,led_mpp_2 { label = "mpp"; - linux,name = "button-backlight"; + linux,name = "green"; linux,default-trigger = "none"; qcom,default-state = "off"; - qcom,max-current = <5>; + qcom,max-current = <40>; qcom,current-setting = <5>; qcom,id = <6>; qcom,mode = "manual"; qcom,source-sel = <1>; - qcom,mode-ctrl = <0x61>; + qcom,mode-ctrl = <0x60>; }; }; - }; }; / { qrd_batterydata: qcom,battery-data { - qcom,batt-id-range-pct = <5>; - #include "batterydata-qrd-sunwoda-4v4-4100mah.dtsi" - #include "batterydata-qrd-sunwoda-ATL-4v4-4100mah.dtsi" - #include "batterydata-qrd-coslight-4v4-4100mah.dtsi" - #include "batterydata-qrd-desay-lisheng-4v4-4100mah.dtsi" - #include "batterydata-qrd-desay-4v4-4100mah.dtsi" + qcom,batt-id-range-pct = <15>; + #include "batterydata-qrd-sku1-4v4-2800mah.dtsi" }; }; +&pm8953_typec { + ss-mux-supply = <&pm8953_l6>; + qcom,ssmux-gpio = <&tlmm 139 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&typec_ssmux_config>; +}; + &pmi8950_charger { qcom,battery-data = <&qrd_batterydata>; qcom,float-voltage-mv = <4400>; + qcom,chg-led-sw-controls; + qcom,chg-led-support; + qcom,external-typec; + qcom,typec-psy-name = "typec"; qcom,thermal-mitigation = <3000 2500 2000 1500 1000 500 0>; status = "okay"; }; + &pmi8950_fg { qcom,battery-data = <&qrd_batterydata>; - qcom,thermal-coefficients = [c8 86 c1 50 d3 37]; - qcom,cold-bat-decidegc = <0>; - qcom,cool-bat-decidegc = <100>; - qcom,warm-bat-decidegc = <500>; + qcom,cold-bat-decidegc = <(-100)>; + qcom,cool-bat-decidegc = <0>; + qcom,warm-bat-decidegc = <550>; qcom,hot-bat-decidegc = <550>; qcom,bad-battery-detection-enable; qcom,hold-soc-while-full; @@ -382,10 +228,14 @@ status = "ok"; }; +&flash_led { + /delete-node/ qcom,flash_1; + /delete-node/ qcom,torch_1; +}; &led_flash0{ - qcom,flash-source = <&pmi8950_flash0 &pmi8950_flash1>; - qcom,torch-source = <&pmi8950_torch0 &pmi8950_torch1>; + qcom,flash-source = <&pmi8950_flash0>; + qcom,torch-source = <&pmi8950_torch0>; }; &pm8953_vadc { diff --git a/arch/arm/boot/dts/qcom/msm8953.dtsi b/arch/arm/boot/dts/qcom/msm8953.dtsi index 2262c3388ba32..f0fec6afd3afd 100644 --- a/arch/arm/boot/dts/qcom/msm8953.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953.dtsi @@ -1,6 +1,5 @@ /* * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. - * Copyright (C) 2017 XiaoMi, Inc. * * 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 @@ -35,7 +34,7 @@ other_ext_mem: other_ext_region@0 { compatible = "removed-dma-pool"; no-map; - reg = <0x0 0x84A00000 0x0 0x1E00000>; + reg = <0x0 0x85b00000 0x0 0xd00000>; }; modem_mem: modem_region@0 { @@ -101,14 +100,6 @@ alignment = <0 0x400000>; size = <0 0x800000>; }; - - pstore_reserve_mem: pstore_reserve_mem_region@0 { - linux,reserve-contiguous-region; - linux,reserve-region; - linux,remove-completely; - reg = <0x0 0x9ff00000 0x0 0x00100000>; - label = "pstore_reserve_mem"; - }; }; aliases { @@ -1221,12 +1212,6 @@ reg-names = "fuse-base"; }; - sn_fuse: snfuse@0xa4128 { - compatible = "qcom,sn-fuse"; - reg = <0xa4128 0x4>; - reg-names = "sn-base"; - }; - jtag_mm0: jtagmm@619c000 { compatible = "qcom,jtagv8-mm"; reg = <0x619c000 0x1000>, @@ -1621,9 +1606,9 @@ qcom,ce-opp-freq = <100000000>; }; - qcom_seecom: qseecom@84a00000 { + qcom_seecom: qseecom@85b00000 { compatible = "qcom,qseecom"; - reg = <0x84a00000 0x1900000>; + reg = <0x85b00000 0x800000>; reg-names = "secapp-region"; qcom,hlos-num-ce-hw-instances = <1>; qcom,hlos-ce-hw-instance = <0>; @@ -2040,7 +2025,6 @@ qcom,msm-bus,name = "usb3"; qcom,msm-bus,num-cases = <2>; qcom,msm-bus,num-paths = <1>; - qcom,detect-dpdm-floating; qcom,msm-bus,vectors-KBps = <61 512 0 0>, <61 512 240000 800000>; @@ -2156,9 +2140,9 @@ qcom,vdd-voltage-level = <0 925000 925000>; qcom,qusb-phy-init-seq = <0xF8 0x80 - 0x53 0x84 - 0x93 0x88 - 0xCf 0x8C + 0xB3 0x84 + 0x83 0x88 + 0xC0 0x8C 0x14 0x9C 0x30 0x08 0x79 0x0C diff --git a/drivers/staging/android/ion/Makefile b/drivers/staging/android/ion/Makefile index 2bd8a564251aa..4e59221e9827f 100644 --- a/drivers/staging/android/ion/Makefile +++ b/drivers/staging/android/ion/Makefile @@ -1,3 +1,4 @@ +EXTRA_CFLAGS +=-Wno-logical-not-parentheses obj-$(CONFIG_ION) += ion.o ion_heap.o ion_page_pool.o ion_system_heap.o \ ion_carveout_heap.o ion_chunk_heap.o ion_system_secure_heap.o ifeq ($(CONFIG_CMA),y)