906 changes: 906 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm630-regulator.dtsi

Large diffs are not rendered by default.

158 changes: 158 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm630-rumi.dts
@@ -0,0 +1,158 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm630.dtsi"
#include "sdm660-pinctrl.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 630 PM660 + PM660L RUMI";
compatible = "qcom,sdm630-rumi", "qcom,sdm630", "qcom,rumi";
qcom,board-id = <15 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;

chosen {
bootargs = "lpm_levels.sleep_disabled=1";
};
};

&usb3 {
/delete-property/ USB3_GDSC-supply;
/delete-property/ extcon;
dwc3@a800000 {
maximum-speed = "high-speed";
};
};

&ssphy {
compatible = "usb-nop-xceiv";
};

&qusb_phy0 {
reg = <0x0a928000 0x8000>,
<0x0a8f8800 0x400>,
<0x0a920000 0x100>;
reg-names = "qusb_phy_base",
"qscratch_base",
"emu_phy_base";
qcom,emulation;
qcom,qusb-phy-init-seq = <0x19 0x1404
0x20 0x1414
0x79 0x1410
0x00 0x1418
0x99 0x1404
0x04 0x1408
0xd9 0x1404>;
qcom,emu-dcm-reset-seq = <0x100000 0x20
0x0 0x20
0x1a0 0x20
0x5 0x14>;
};

&uartblsp1dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
};

&ufsphy1 {
vdda-phy-supply = <&pm660l_l1>;
vdda-pll-supply = <&pm660_l10>;
vddp-ref-clk-supply = <&pm660_l1>;
vdda-phy-max-microamp = <51400>;
vdda-pll-max-microamp = <14200>;
vddp-ref-clk-max-microamp = <100>;
vddp-ref-clk-always-on;
status = "ok";
};

&ufs1 {
vdd-hba-supply = <&gdsc_ufs>;
vdd-hba-fixed-regulator;
vcc-supply = <&pm660l_l4>;
vccq2-supply = <&pm660_l8>;
vcc-max-microamp = <500000>;
vccq2-max-microamp = <600000>;
status = "ok";
};

&clock_gcc {
compatible = "qcom,dummycc";
clock-output-names = "gcc_clocks";
};

&clock_gfx {
compatible = "qcom,dummycc";
clock-output-names = "gfx_clocks";
};

&clock_mmss {
compatible = "qcom,dummycc";
clock-output-names = "mmss_clocks";
};

&clock_debug {
compatible = "qcom,dummycc";
clock-output-names = "debug_clocks";
};

&sdhc_1 {
/* device core power supply */
vdd-supply = <&pm660l_l4>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <200 570000>;

/* device communication power supply */
vdd-io-supply = <&pm660_l8>;
qcom,vdd-io-always-on;
qcom,vdd-io-lpm-sup;
qcom,vdd-io-voltage-level = <1800000 1800000>;
qcom,vdd-io-current-level = <110 325000>;

pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;

status = "ok";
};

&sdhc_2 {
/* device core power supply */
vdd-supply = <&pm660l_l5>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <15000 800000>;

/* device communication power supply */
vdd-io-supply = <&pm660l_l2>;
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 0 125 0
1 &intc 0 0 221 0
2 &tlmm 54 0>;
interrupt-names = "hc_irq", "pwr_irq", "status_irq";
cd-gpios = <&tlmm 54 0x1>;

status = "ok";
};
182 changes: 182 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm630-smp2p.dtsi
@@ -0,0 +1,182 @@
/* Copyright (c) 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 {
qcom,smp2p-modem@17911008 {
compatible = "qcom,smp2p";
reg = <0x17911008 0x4>;
qcom,remote-pid = <1>;
qcom,irq-bitmask = <0x4000>;
interrupts = <0 451 1>;
};

qcom,smp2p-adsp@17911008 {
compatible = "qcom,smp2p";
reg = <0x17911008 0x4>;
qcom,remote-pid = <2>;
qcom,irq-bitmask = <0x400>;
interrupts = <0 158 1>;
};

smp2pgpio_smp2p_15_in: qcom,smp2pgpio-smp2p-15-in {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <15>;
qcom,is-inbound;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};

qcom,smp2pgpio_test_smp2p_15_in {
compatible = "qcom,smp2pgpio_test_smp2p_15_in";
gpios = <&smp2pgpio_smp2p_15_in 0 0>;
};

smp2pgpio_smp2p_15_out: qcom,smp2pgpio-smp2p-15-out {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <15>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};

qcom,smp2pgpio_test_smp2p_15_out {
compatible = "qcom,smp2pgpio_test_smp2p_15_out";
gpios = <&smp2pgpio_smp2p_15_out 0 0>;
};

smp2pgpio_smp2p_1_in: qcom,smp2pgpio-smp2p-1-in {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <1>;
qcom,is-inbound;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};

qcom,smp2pgpio_test_smp2p_1_in {
compatible = "qcom,smp2pgpio_test_smp2p_1_in";
gpios = <&smp2pgpio_smp2p_1_in 0 0>;
};

smp2pgpio_smp2p_1_out: qcom,smp2pgpio-smp2p-1-out {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <1>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};

qcom,smp2pgpio_test_smp2p_1_out {
compatible = "qcom,smp2pgpio_test_smp2p_1_out";
gpios = <&smp2pgpio_smp2p_1_out 0 0>;
};

smp2pgpio_smp2p_2_in: qcom,smp2pgpio-smp2p-2-in {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <2>;
qcom,is-inbound;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};

qcom,smp2pgpio_test_smp2p_2_in {
compatible = "qcom,smp2pgpio_test_smp2p_2_in";
gpios = <&smp2pgpio_smp2p_2_in 0 0>;
};

smp2pgpio_smp2p_2_out: qcom,smp2pgpio-smp2p-2-out {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "smp2p";
qcom,remote-pid = <2>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};

qcom,smp2pgpio_test_smp2p_2_out {
compatible = "qcom,smp2pgpio_test_smp2p_2_out";
gpios = <&smp2pgpio_smp2p_2_out 0 0>;
};

smp2pgpio_sleepstate_2_out: qcom,smp2pgpio-sleepstate-gpio-2-out {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "sleepstate";
qcom,remote-pid = <2>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};

qcom,smp2pgpio-sleepstate-2-out {
compatible = "qcom,smp2pgpio-sleepstate-out";
gpios = <&smp2pgpio_sleepstate_2_out 0 0>;
};

/* ssr - inbound entry from mss */
smp2pgpio_ssr_smp2p_1_in: qcom,smp2pgpio-ssr-smp2p-1-in {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "slave-kernel";
qcom,remote-pid = <1>;
qcom,is-inbound;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};

/* ssr - outbound entry to mss */
smp2pgpio_ssr_smp2p_1_out: qcom,smp2pgpio-ssr-smp2p-1-out {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "master-kernel";
qcom,remote-pid = <1>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};

/* ssr - inbound entry from lpass */
smp2pgpio_ssr_smp2p_2_in: qcom,smp2pgpio-ssr-smp2p-2-in {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "slave-kernel";
qcom,remote-pid = <2>;
qcom,is-inbound;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};

/* ssr - outbound entry to lpass */
smp2pgpio_ssr_smp2p_2_out: qcom,smp2pgpio-ssr-smp2p-2-out {
compatible = "qcom,smp2pgpio";
qcom,entry-name = "master-kernel";
qcom,remote-pid = <2>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
};
31 changes: 31 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm630-usbc-audio-mtp.dts
@@ -0,0 +1,31 @@
/* Copyright (c) 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.
*/


/dts-v1/;

#include "sdm630.dtsi"
#include "sdm630-mtp.dtsi"
#include "sdm660-external-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 630 PM660 + PM660L, USBC Audio MTP";
compatible = "qcom,sdm630-mtp", "qcom,sdm630", "qcom,mtp";
qcom,board-id = <8 2>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};

&tavil_snd {
qcom,msm-mbhc-moist-cfg = <0>, <0>, <3>;
qcom,msm-mbhc-usbc-audio-supported = <1>;
};
30 changes: 30 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm630-usbc-audio-rcm.dts
@@ -0,0 +1,30 @@
/* Copyright (c) 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.
*/


/dts-v1/;

#include "sdm630.dtsi"
#include "sdm630-cdp.dtsi"
#include "sdm660-external-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 630 PM660 + PM660L, USBC Audio, RCM";
compatible = "qcom,sdm630-cdp", "qcom,sdm630", "qcom,cdp";
qcom,board-id = <21 3>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};

&tavil_snd {
qcom,msm-mbhc-usbc-audio-supported = <1>;
};
2,291 changes: 2,291 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm630.dtsi

Large diffs are not rendered by default.

280 changes: 280 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-audio.dtsi
@@ -0,0 +1,280 @@
/*
* 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 "sdm660-wsa881x.dtsi"
#include "sdm660-lpi.dtsi"

&slim_aud {
status = "okay";
dai_slim: msm_dai_slim {
compatible = "qcom,msm-dai-slim";
elemental-addr = [ff ff ff fe 17 02];
};

wcd9335: tasha_codec {
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", "wcd_native_clk";
clocks = <&clock_audio AUDIO_PMI_CLK>,
<&clock_audio AUDIO_LPASS_MCLK>;

cdc-vdd-mic-bias-supply = <&pm660l_bob>;
qcom,cdc-vdd-mic-bias-voltage = <3300000 3300000>;
qcom,cdc-vdd-mic-bias-current = <30400>;

qcom,cdc-static-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 = <4800000>;
qcom,cdc-mad-dmic-rate = <600000>;
};

wcd934x_cdc: tavil_codec {
compatible = "qcom,tavil-slim-pgd";
elemental-addr = [00 01 50 02 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 31>;

qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>;

clock-names = "wcd_clk";
clocks = <&clock_audio_lnbb AUDIO_PMIC_LNBB_CLK>;

cdc-vdd-mic-bias-supply = <&pm660l_bob>;
qcom,cdc-vdd-mic-bias-voltage = <3300000 3300000>;
qcom,cdc-vdd-mic-bias-current = <30400>;

qcom,cdc-static-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 = "tavil-slim-ifd";
qcom,cdc-slim-ifd-elemental-addr = [00 00 50 02 17 02];
qcom,cdc-dmic-sample-rate = <4800000>;
qcom,cdc-mad-dmic-rate = <600000>;

qcom,wdsp-cmpnt-dev-name = "tavil_codec";

wcd_spi_0: wcd_spi {
compatible = "qcom,wcd-spi-v2";
qcom,master-bus-num = <7>;
qcom,chip-select = <0>;
qcom,max-frequency = <24000000>;
qcom,mem-base-addr = <0x100000>;
};

wcd_usbc_analog_en1_gpio: msm_cdc_pinctrl_usbc_audio_en1 {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&wcd_usbc_analog_en1_active>;
pinctrl-1 = <&wcd_usbc_analog_en1_idle>;
};

wcd_usbc_analog_en2n_gpio: msm_cdc_pinctrl_usbc_audio_en2 {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&wcd_usbc_analog_en2n_active>;
pinctrl-1 = <&wcd_usbc_analog_en2n_idle>;
};
};
};

&pm660l_3 {
pmic_analog_codec: analog-codec@f000 {
status = "disabled";
compatible = "qcom,pmic-analog-codec";
reg = <0xf000 0x200>;
#address-cells = <2>;
#size-cells = <0>;
interrupt-parent = <&spmi_bus>;
interrupts = <0x3 0xf0 0x0 IRQ_TYPE_NONE>,
<0x3 0xf0 0x1 IRQ_TYPE_NONE>,
<0x3 0xf0 0x2 IRQ_TYPE_NONE>,
<0x3 0xf0 0x3 IRQ_TYPE_NONE>,
<0x3 0xf0 0x4 IRQ_TYPE_NONE>,
<0x3 0xf0 0x5 IRQ_TYPE_NONE>,
<0x3 0xf0 0x6 IRQ_TYPE_NONE>,
<0x3 0xf0 0x7 IRQ_TYPE_NONE>,
<0x3 0xf1 0x0 IRQ_TYPE_NONE>,
<0x3 0xf1 0x1 IRQ_TYPE_NONE>,
<0x3 0xf1 0x2 IRQ_TYPE_NONE>,
<0x3 0xf1 0x3 IRQ_TYPE_NONE>,
<0x3 0xf1 0x4 IRQ_TYPE_NONE>,
<0x3 0xf1 0x5 IRQ_TYPE_NONE>;
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",
"ear_ocp_int",
"hphr_ocp_int",
"hphl_ocp_det",
"ear_cnp_int",
"hphr_cnp_int",
"hphl_cnp_int";


cdc-vdda-cp-supply = <&pm660_s4>;
qcom,cdc-vdda-cp-voltage = <1900000 2050000>;
qcom,cdc-vdda-cp-current = <50000>;

cdc-vdd-pa-supply = <&pm660_s4>;
qcom,cdc-vdd-pa-voltage = <2040000 2040000>;
qcom,cdc-vdd-pa-current = <260000>;

cdc-vdd-mic-bias-supply = <&pm660l_l7>;
qcom,cdc-vdd-mic-bias-voltage = <3088000 3088000>;
qcom,cdc-vdd-mic-bias-current = <5000>;

qcom,cdc-mclk-clk-rate = <9600000>;

qcom,cdc-static-supplies = "cdc-vdda-cp",
"cdc-vdd-pa";

qcom,cdc-on-demand-supplies = "cdc-vdd-mic-bias";

/*
* Not marking address @ as driver searches this child
* with name msm-dig-codec
*/
msm_digital_codec: msm-dig-codec {
compatible = "qcom,msm-digital-codec";
reg = <0x152c0000 0x0>;
};
};
};

&soc {
cdc_pdm_gpios: cdc_pdm_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&cdc_pdm_gpios_active &cdc_pdm_2_gpios_active>;
pinctrl-1 = <&cdc_pdm_gpios_sleep &cdc_pdm_2_gpios_sleep>;
qcom,lpi-gpios;
};

cdc_comp_gpios: cdc_comp_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&cdc_comp_gpios_active>;
pinctrl-1 = <&cdc_comp_gpios_sleep>;
qcom,lpi-gpios;
};

cdc_dmic_gpios: cdc_dmic_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&cdc_dmic12_gpios_active
&cdc_dmic34_gpios_active>;
pinctrl-1 = <&cdc_dmic12_gpios_sleep
&cdc_dmic34_gpios_sleep>;
qcom,lpi-gpios;
};

cdc_sdw_gpios: sdw_clk_data_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&sdw_clk_active &sdw_data_active>;
pinctrl-1 = <&sdw_clk_sleep &sdw_data_sleep>;
};

wsa_spkr_en1: wsa_spkr_en1_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&spkr_1_sd_n_active>;
pinctrl-1 = <&spkr_1_sd_n_sleep>;
};

wsa_spkr_en2: wsa_spkr_en2_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&spkr_2_sd_n_active>;
pinctrl-1 = <&spkr_2_sd_n_sleep>;
};

msm_sdw_codec: msm-sdw-codec@152c1000 {
status = "disabled";
compatible = "qcom,msm-sdw-codec";
reg = <0x152c1000 0x0>;
interrupts = <0 161 0>;
interrupt-names = "swr_master_irq";
qcom,cdc-sdw-gpios = <&cdc_sdw_gpios>;

swr_master {
compatible = "qcom,swr-wcd";
#address-cells = <2>;
#size-cells = <0>;

wsa881x_211_en: wsa881x_en@20170211 {
compatible = "qcom,wsa881x";
reg = <0x0 0x20170211>;
qcom,spkr-sd-n-node = <&wsa_spkr_en1>;
};

wsa881x_212_en: wsa881x_en@20170212 {
compatible = "qcom,wsa881x";
reg = <0x0 0x20170212>;
qcom,spkr-sd-n-node = <&wsa_spkr_en2>;
};

wsa881x_213_en: wsa881x_en@21170213 {
compatible = "qcom,wsa881x";
reg = <0x0 0x21170213>;
qcom,spkr-sd-n-node = <&wsa_spkr_en1>;
};

wsa881x_214_en: wsa881x_en@21170214 {
compatible = "qcom,wsa881x";
reg = <0x0 0x21170214>;
qcom,spkr-sd-n-node = <&wsa_spkr_en2>;
};
};
};
};

&pm660_gpios {
gpio@c200 {
status = "ok";
qcom,mode = <1>;
qcom,pull = <4>;
qcom,vin-sel = <0>;
qcom,src-sel = <2>;
qcom,master-en = <1>;
qcom,out-strength = <2>;
};
};
570 changes: 570 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-blsp.dtsi

Large diffs are not rendered by default.

1,293 changes: 1,293 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-bus.dtsi

Large diffs are not rendered by default.

402 changes: 402 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-camera-sensor-cdp.dtsi

Large diffs are not rendered by default.

438 changes: 438 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-camera-sensor-mtp.dtsi

Large diffs are not rendered by default.

427 changes: 427 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-camera-sensor-qrd.dtsi

Large diffs are not rendered by default.

876 changes: 876 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-camera.dtsi

Large diffs are not rendered by default.

36 changes: 36 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-cdp.dts
@@ -0,0 +1,36 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "sdm660-external-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};

&tavil_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};

&tasha_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};
270 changes: 270 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-cdp.dtsi
@@ -0,0 +1,270 @@
/* Copyright (c) 2016-2018, 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 "sdm660-pinctrl.dtsi"
#include "sdm660-camera-sensor-cdp.dtsi"
/ {
};

&uartblsp1dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
};

&ufsphy1 {
vdda-phy-supply = <&pm660l_l1>;
vdda-pll-supply = <&pm660_l10>;
vdda-phy-max-microamp = <51400>;
vdda-pll-max-microamp = <14200>;
status = "ok";
};

&ufs1 {
vdd-hba-supply = <&gdsc_ufs>;
vdd-hba-fixed-regulator;
vcc-supply = <&pm660l_l4>;
vccq2-supply = <&pm660_l8>;
vcc-max-microamp = <500000>;
vccq2-max-microamp = <600000>;
qcom,vddp-ref-clk-supply = <&pm660_l1>;
qcom,vddp-ref-clk-max-microamp = <100>;

status = "ok";
};

&pm660_gpios {
/* GPIO 4 (NFC_CLK_REQ) */
gpio@c300 {
qcom,mode = <0>;
qcom,vin-sel = <1>;
qcom,src-sel = <0>;
qcom,master-en = <1>;
status = "okay";
};
};

&i2c_6 { /* BLSP1 QUP6 (NFC) */
status = "okay";
nq@28 {
compatible = "qcom,nq-nci";
reg = <0x28>;
qcom,nq-irq = <&tlmm 28 0x00>;
qcom,nq-ven = <&tlmm 29 0x00>;
qcom,nq-firm = <&tlmm 30 0x00>;
qcom,nq-clkreq = <&pm660_gpios 4 0x00>;
qcom,nq-esepwr = <&tlmm 31 0x00>;
interrupt-parent = <&tlmm>;
qcom,clk-src = "BBCLK3";
interrupts = <28 0>;
interrupt-names = "nfc_irq";
pinctrl-names = "nfc_active", "nfc_suspend";
pinctrl-0 = <&nfc_int_active &nfc_enable_active>;
pinctrl-1 = <&nfc_int_suspend &nfc_enable_suspend>;
clocks = <&clock_rpmcc RPM_LN_BB_CLK3_PIN>;
clock-names = "ref_clk";
};
};

&mdss_mdp {
qcom,mdss-pref-prim-intf = "dsi";
};

&mdss_dsi {
hw-config = "split_dsi";
};

&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_dual_nt35597_truly_video>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,platform-reset-gpio = <&tlmm 53 0>;
qcom,platform-te-gpio = <&tlmm 59 0>;
};

&mdss_dsi1 {
qcom,dsi-pref-prim-pan = <&dsi_dual_nt35597_truly_video>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,platform-reset-gpio = <&tlmm 53 0>;
qcom,platform-te-gpio = <&tlmm 59 0>;
};

&pm660l_wled {
qcom,led-strings-list = [01 02];
};

&dsi_dual_nt35597_truly_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_dual_nt35597_truly_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_dual_sharp_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_nt35597_truly_dsc_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_nt35597_truly_dsc_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_dual_nt35597_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_dual_nt35597_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <720 128 720 128 1440 128>;
};

&dsi_nt35695b_truly_fhd_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_nt35695b_truly_fhd_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_truly_1080_vid {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_truly_1080_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,partial-update-enabled = "single_roi";
qcom,panel-roi-alignment = <2 2 4 2 1080 2>;
};

&dsi_rm67195_amoled_fhd_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply_labibb_amoled>;
};

&dsi_lgd_incell_sw49106_fhd_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&mdss_dp_ctrl {
pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
pinctrl-0 = <&mdss_dp_aux_active &mdss_dp_usbplug_cc_active>;
pinctrl-1 = <&mdss_dp_aux_suspend &mdss_dp_usbplug_cc_suspend>;
qcom,aux-en-gpio = <&tlmm 55 0>;
qcom,aux-sel-gpio = <&tlmm 56 0>;
qcom,usbplug-cc-gpio = <&tlmm 58 0>;
};

&sdhc_1 {
/* device core power supply */
vdd-supply = <&pm660l_l4>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <200 570000>;

/* device communication power supply */
vdd-io-supply = <&pm660_l8>;
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 = <&pm660l_l5>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <15000 800000>;

/* device communication power supply */
vdd-io-supply = <&pm660l_l2>;
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 0 125 0
1 &intc 0 0 221 0
2 &tlmm 54 0>;
interrupt-names = "hc_irq", "pwr_irq", "status_irq";
cd-gpios = <&tlmm 54 0x1>;

qcom,clk-rates = <400000 20000000 25000000 50000000 100000000
200000000>;
qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";

status = "ok";
};

&soc {
qcom,msm-ssc-sensors {
compatible = "qcom,msm-ssc-sensors";
};
};

&pm660_charger {
qcom,batteryless-platform;
};
680 changes: 680 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-common.dtsi

Large diffs are not rendered by default.

1,684 changes: 1,684 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-coresight.dtsi

Large diffs are not rendered by default.

35 changes: 35 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-external-codec.dtsi
@@ -0,0 +1,35 @@
/* Copyright (c) 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.
*/

&cdc_pdm_gpios {
status = "disabled";
};

&cdc_comp_gpios {
status = "disabled";
};

&cdc_dmic_gpios {
status = "disabled";
};

&cdc_sdw_gpios {
status = "disabled";
};

&wsa_spkr_en1 {
status = "disabled";
};

&wsa_spkr_en2 {
status = "disabled";
};
640 changes: 640 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-gpu.dtsi

Large diffs are not rendered by default.

26 changes: 26 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-headset-jacktype-no-cdp.dts
@@ -0,0 +1,26 @@
/* Copyright (c) 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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "sdm660-external-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L, Headset Jacktype NO, CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 2>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};
26 changes: 26 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-headset-jacktype-no-rcm.dts
@@ -0,0 +1,26 @@
/* Copyright (c) 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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "sdm660-external-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L, Headset Jacktype NO, RCM";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <21 2>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};
26 changes: 26 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-internal-codec-cdp.dts
@@ -0,0 +1,26 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "sdm660-internal-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L Int. Audio Codec CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};
30 changes: 30 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-internal-codec-mtp.dts
@@ -0,0 +1,30 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-mtp.dtsi"
#include "sdm660-internal-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L Int. Audio Codec MTP";
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};

&int_codec {
qcom,model = "sdm660-snd-card-mtp";
};
26 changes: 26 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-internal-codec-pm660a-cdp.dts
@@ -0,0 +1,26 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-internal-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A Int. Audio Codec CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 1>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
};
31 changes: 31 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-internal-codec-pm660a-mtp.dts
@@ -0,0 +1,31 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-mtp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-internal-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A Int. Audio Codec MTP";
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 1>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
};

&int_codec {
qcom,model = "sdm660-snd-card-mtp";
status = "okay";
};
26 changes: 26 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-internal-codec-pm660a-rcm.dts
@@ -0,0 +1,26 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-internal-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A Int. Audio Codec RCM";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <21 1>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
};
26 changes: 26 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-internal-codec-rcm.dts
@@ -0,0 +1,26 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "sdm660-internal-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L Int. Audio Codec RCM";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <21 1>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};
83 changes: 83 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-internal-codec.dtsi
@@ -0,0 +1,83 @@
/* Copyright (c) 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.
*/

&slim_aud {
status = "disabled";
};

&dai_slim {
status = "disabled";
};

&wcd9335 {
status = "disabled";
};

&wcd934x_cdc {
status = "disabled";
};

&clock_audio {
status = "disabled";
};

&wcd_rst_gpio {
status = "disabled";
};

&wcd9xxx_intc {
status = "disabled";
};

&tasha_snd {
status = "disabled";
};

&tavil_snd {
status = "disabled";
};

&spi_7 {
status = "disabled";
};

&wdsp_mgr {
status = "disabled";
};

&wdsp_glink {
status = "disabled";
};

&glink_spi_xprt_wdsp {
status = "disabled";
};

&glink_fifo_wdsp {
status = "disabled";
};

&glink_qos_wdsp {
status = "disabled";
};

&int_codec {
status = "okay";
};

&pmic_analog_codec {
status = "okay";
};

&msm_sdw_codec {
status = "okay";
};
47 changes: 47 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-ion.dtsi
@@ -0,0 +1,47 @@
/* Copyright (c) 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 {
qcom,ion {
compatible = "qcom,msm-ion";
#address-cells = <1>;
#size-cells = <0>;

system_heap: qcom,ion-heap@25 {
reg = <25>;
qcom,ion-heap-type = "SYSTEM";
};

qcom,ion-heap@22 { /* ADSP HEAP */
reg = <22>;
memory-region = <&adsp_mem>;
qcom,ion-heap-type = "DMA";
};

qcom,ion-heap@27 { /* QSEECOM HEAP */
reg = <27>;
memory-region = <&qseecom_mem>;
qcom,ion-heap-type = "DMA";
};

qcom,ion-heap@10 { /* SECURE DISPLAY HEAP */
reg = <10>;
memory-region = <&secure_display_memory>;
qcom,ion-heap-type = "HYP_CMA";
};

qcom,ion-heap@9 {
reg = <9>;
qcom,ion-heap-type = "SYSTEM_SECURE";
};
};
};
212 changes: 212 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-lpi.dtsi
@@ -0,0 +1,212 @@
/* Copyright (c) 2016-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.
*/

&soc {
lpi_tlmm: lpi_pinctrl@15070000 {
compatible = "qcom,lpi-pinctrl";
reg = <0x15070000 0x0>;
qcom,num-gpios = <32>;
gpio-controller;
#gpio-cells = <2>;

lpi_mclk0_active: lpi_mclk0_active {
mux {
pins = "gpio18";
function = "func2";
};

config {
pins = "gpio18";
drive-strength = <8>;
bias-disable;
};
};

lpi_mclk0_sleep: lpi_mclk0_sleep {
mux {
pins = "gpio18";
function = "func2";
};

config {
pins = "gpio18";
drive-strength = <2>;
bias-pull-down;
};
};

cdc_pdm_gpios_active: cdc_pdm_gpios_active {
mux {
pins = "gpio18", "gpio19",
"gpio21", "gpio23",
"gpio25";
function = "func1";
};

config {
pins = "gpio18", "gpio19",
"gpio21", "gpio23",
"gpio25";
drive-strength = <8>;
output-high;
};
};

cdc_pdm_gpios_sleep: cdc_pdm_gpios_sleep {
mux {
pins = "gpio18", "gpio19",
"gpio21", "gpio23",
"gpio25";
function = "func1";
};

config {
pins = "gpio18", "gpio19",
"gpio21", "gpio23",
"gpio25";
drive-strength = <2>;
bias-disable;
output-low;
};
};

cdc_pdm_2_gpios_active: cdc_pdm_2_gpios_active {
mux {
pins = "gpio20";
function = "func1";
};

config {
pins = "gpio20";
drive-strength = <8>;
};
};

cdc_pdm_2_gpios_sleep: cdc_pdm_2_gpios_sleep {
mux {
pins = "gpio20";
function = "func1";
};

config {
pins = "gpio20";
drive-strength = <2>;
bias-disable;
};
};

cdc_comp_gpios_active: cdc_pdm_comp_gpios_active {
mux {
pins = "gpio22", "gpio24";
function = "func1";
};

config {
pins = "gpio22", "gpio24";
drive-strength = <8>;
};
};

cdc_comp_gpios_sleep: cdc_pdm_comp_gpios_sleep {
mux {
pins = "gpio22", "gpio24";
function = "func1";
};

config {
pins = "gpio22", "gpio24";
drive-strength = <2>;
bias-disable;
};
};

lpi_cdc_reset_active: lpi_cdc_reset_active {
mux {
pins = "gpio24";
function = "gpio";
};
config {
pins = "gpio24";
drive-strength = <16>;
output-high;
};
};

lpi_cdc_reset_sleep: lpi_cdc_reset_sleep {
mux {
pins = "gpio24";
function = "gpio";
};

config {
pins = "gpio24";
drive-strength = <16>;
bias-disable;
output-low;
};
};

cdc_dmic12_gpios_active: dmic12_gpios_active {
mux {
pins = "gpio26", "gpio28";
function = "func1";
};

config {
pins = "gpio26", "gpio28";
drive-strength = <8>;
output-high;
};
};

cdc_dmic12_gpios_sleep: dmic12_gpios_sleep {
mux {
pins = "gpio26", "gpio28";
function = "func1";
};

config {
pins = "gpio26", "gpio28";
drive-strength = <2>;
bias-disable;
output-low;
};
};

cdc_dmic34_gpios_active: dmic34_gpios_active {
mux {
pins = "gpio27", "gpio29";
function = "func1";
};

config {
pins = "gpio27", "gpio29";
drive-strength = <8>;
input-enable;
};
};

cdc_dmic34_gpios_sleep: dmic34_gpios_sleep {
mux {
pins = "gpio27", "gpio29";
function = "func1";
};

config {
pins = "gpio27", "gpio29";
drive-strength = <2>;
pull-down;
input-enable;
};
};
};
};
339 changes: 339 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-mdss-panels.dtsi
@@ -0,0 +1,339 @@
/* Copyright (c) 2016-2018, 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 "dsi-panel-sim-video.dtsi"
#include "dsi-panel-sim-dualmipi-video.dtsi"
#include "dsi-panel-nt35597-truly-dualmipi-wqxga-video.dtsi"
#include "dsi-panel-nt35597-truly-dualmipi-wqxga-cmd.dtsi"
#include "dsi-panel-nt36850-truly-dualmipi-wqhd-cmd.dtsi"
#include "dsi-panel-sharp-dualmipi-wqxga-video.dtsi"
#include "dsi-panel-nt35597-truly-dsc-wqxga-video.dtsi"
#include "dsi-panel-nt35597-truly-dsc-wqxga-cmd.dtsi"
#include "dsi-panel-nt35597-dualmipi-wqxga-video.dtsi"
#include "dsi-panel-nt35597-dualmipi-wqxga-cmd.dtsi"
#include "dsi-panel-nt35695b-truly-fhd-video.dtsi"
#include "dsi-panel-nt35695b-truly-fhd-cmd.dtsi"
#include "dsi-panel-truly-1080p-cmd.dtsi"
#include "dsi-panel-truly-1080p-video.dtsi"
#include "dsi-panel-rm67195-amoled-fhd-cmd.dtsi"
#include "dsi-panel-lgd-incell-sw49106-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 = "wqhd-vddio";
qcom,supply-min-voltage = <1800000>;
qcom,supply-max-voltage = <1950000>;
qcom,supply-enable-load = <32000>;
qcom,supply-disable-load = <80>;
};

qcom,panel-supply-entry@1 {
reg = <1>;
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@2 {
reg = <2>;
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_panel_pwr_supply_labibb_amoled:
dsi_panel_pwr_supply_labibb_amoled {
#address-cells = <1>;
#size-cells = <0>;

qcom,panel-supply-entry@0 {
reg = <0>;
qcom,supply-name = "wqhd-vddio";
qcom,supply-min-voltage = <1800000>;
qcom,supply-max-voltage = <1950000>;
qcom,supply-enable-load = <32000>;
qcom,supply-disable-load = <80>;
};

qcom,panel-supply-entry@1 {
reg = <1>;
qcom,supply-name = "vdda-3p3";
qcom,supply-min-voltage = <3300000>;
qcom,supply-max-voltage = <3300000>;
qcom,supply-enable-load = <13200>;
qcom,supply-disable-load = <80>;
};

qcom,panel-supply-entry@2 {
reg = <2>;
qcom,supply-name = "lab";
qcom,supply-min-voltage = <4600000>;
qcom,supply-max-voltage = <6100000>;
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 = <4000000>;
qcom,supply-max-voltage = <6300000>;
qcom,supply-enable-load = <100000>;
qcom,supply-disable-load = <100>;
};

qcom,panel-supply-entry@4 {
reg = <4>;
qcom,supply-name = "oledb";
qcom,supply-min-voltage = <5000000>;
qcom,supply-max-voltage = <8100000>;
qcom,supply-enable-load = <100000>;
qcom,supply-disable-load = <100>;
};
};

dsi_panel_pwr_supply_no_labibb: dsi_panel_pwr_supply_no_labibb {
#address-cells = <1>;
#size-cells = <0>;

qcom,panel-supply-entry@0 {
reg = <0>;
qcom,supply-name = "wqhd-vddio";
qcom,supply-min-voltage = <1800000>;
qcom,supply-max-voltage = <1950000>;
qcom,supply-enable-load = <32000>;
qcom,supply-disable-load = <80>;
};
};
};

&dsi_dual_nt35597_truly_video {
qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 18 07 08 04 03 04 a0];
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x9c>;
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
qcom,mdss-dsi-min-refresh-rate = <53>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
};

&dsi_dual_nt35597_truly_cmd {
qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 18 07 08 04 03 04 a0];
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x9c>;
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
};

&dsi_dual_nt36850_truly_cmd {
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 1c 08 09 05 03 04 a0];
qcom,mdss-dsi-t-clk-post = <0x0e>;
qcom,mdss-dsi-t-clk-pre = <0x31>;
};

&dsi_dual_sharp_video {
qcom,mdss-dsi-panel-timings-phy-v2 = [23 20 06 09 05 03 04 a0
23 20 06 09 05 03 04 a0
23 20 06 09 05 03 04 a0
23 20 06 09 05 03 04 a0
23 2e 06 08 05 03 04 a0];
qcom,mdss-dsi-min-refresh-rate = <53>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
};

&dsi_nt35597_truly_dsc_video {
qcom,mdss-dsi-panel-timings-phy-v2 = [20 1d 05 07 03 03 04 a0
20 1d 05 07 03 03 04 a0
20 1d 05 07 03 03 04 a0
20 1d 05 07 03 03 04 a0
20 12 05 06 03 13 04 a0];
qcom,config-select = <&dsi_nt35597_truly_dsc_video_config2>;
qcom,mdss-dsi-min-refresh-rate = <53>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x9c>;
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
};

&dsi_nt35597_truly_dsc_cmd {
qcom,mdss-dsi-panel-timings-phy-v2 = [20 1d 05 07 03 03 04 a0
20 1d 05 07 03 03 04 a0
20 1d 05 07 03 03 04 a0
20 1d 05 07 03 03 04 a0
20 12 05 06 03 13 04 a0];
qcom,config-select = <&dsi_nt35597_truly_dsc_cmd_config2>;
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x9c>;
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
};

&dsi_dual_nt35597_video {
qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 18 07 08 04 03 04 a0];
qcom,mdss-dsi-min-refresh-rate = <53>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
};

&dsi_dual_nt35597_cmd {
qcom,mdss-dsi-panel-timings-phy-v2 = [23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 1e 07 08 05 03 04 a0
23 18 07 08 04 03 04 a0];
};

&dsi_nt35695b_truly_fhd_video {
qcom,mdss-dsi-panel-timings-phy-v2 = [24 1e 08 09 05 03 04 a0
24 1e 08 09 05 03 04 a0
24 1e 08 09 05 03 04 a0
24 1e 08 09 05 03 04 a0
24 1a 08 09 05 03 04 a0];
qcom,mdss-dsi-min-refresh-rate = <48>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x9c>;
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
};

&dsi_nt35695b_truly_fhd_cmd {
qcom,mdss-dsi-panel-timings-phy-v2 = [24 1e 08 09 05 03 04 a0
24 1e 08 09 05 03 04 a0
24 1e 08 09 05 03 04 a0
24 1e 08 09 05 03 04 a0
24 1a 08 09 05 03 04 a0];
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x9c>;
qcom,mdss-dsi-panel-on-check-value = <0x9c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;
};

&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
23 1e 08 09 05 03 04 a0
23 1e 08 09 05 03 04 a0
23 1a 08 09 05 03 04 a0];
qcom,mdss-dsi-min-refresh-rate = <48>;
qcom,mdss-dsi-max-refresh-rate = <60>;
qcom,mdss-dsi-pan-enable-dynamic-fps;
qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x1c>;
qcom,mdss-dsi-panel-on-check-value = <0x1c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;

};

&dsi_truly_1080_cmd {
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];
qcom,esd-check-enabled;
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-command = [06 01 00 01 00 00 01 0a];
qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode";
qcom,mdss-dsi-panel-status-value = <0x1c>;
qcom,mdss-dsi-panel-on-check-value = <0x1c>;
qcom,mdss-dsi-panel-status-read-length = <1>;
qcom,mdss-dsi-panel-max-error-count = <3>;

};

&dsi_rm67195_amoled_fhd_cmd {
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 1a 08 09 05 03 04 a0];
qcom,mdss-dsi-t-clk-post = <0x0d>;
qcom,mdss-dsi-t-clk-pre = <0x2f>;
};


&dsi_lgd_incell_sw49106_fhd_video {
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];
qcom,mdss-dsi-t-clk-post = <0x0d>;
qcom,mdss-dsi-t-clk-pre = <0x30>;
};
117 changes: 117 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-mdss-pll.dtsi
@@ -0,0 +1,117 @@
/* Copyright (c) 2016-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.
*/

&soc {
mdss_dsi0_pll: qcom,mdss_dsi_pll@c994400 {
compatible = "qcom,mdss_dsi_pll_sdm660";
status = "ok";
label = "MDSS DSI 0 PLL";
cell-index = <0>;
#clock-cells = <1>;

reg = <0xc994400 0x588>,
<0xc8c2300 0x8>;
reg-names = "pll_base", "gdsc_base";

gdsc-supply = <&gdsc_mdss>;

clocks = <&clock_mmss MMSS_MDSS_AHB_CLK>;
clock-names = "iface_clk";
clock-rate = <0>;
qcom,dsi-pll-ssc-en;
qcom,dsi-pll-ssc-mode = "down-spread";

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@c996400 {
compatible = "qcom,mdss_dsi_pll_sdm660";
status = "ok";
label = "MDSS DSI 1 PLL";
cell-index = <1>;
#clock-cells = <1>;

reg = <0xc996400 0x588>,
<0xc8c2300 0x8>;
reg-names = "pll_base", "gdsc_base";

gdsc-supply = <&gdsc_mdss>;

clocks = <&clock_mmss MMSS_MDSS_AHB_CLK>;
clock-names = "iface_clk";
clock-rate = <0>;
qcom,dsi-pll-ssc-en;
qcom,dsi-pll-ssc-mode = "down-spread";

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_dp_pll: qcom,mdss_dp_pll@c011000 {
compatible = "qcom,mdss_dp_pll_sdm660";
status = "ok";
label = "MDSS DP PLL";
cell-index = <0>;
#clock-cells = <1>;

reg = <0xc011c00 0x190>,
<0xc011000 0x910>,
<0x0c8c2300 0x8>;
reg-names = "pll_base", "phy_base", "gdsc_base";

gdsc-supply = <&gdsc_mdss>;

clocks = <&clock_mmss MMSS_MDSS_AHB_CLK>,
<&clock_rpmcc RPM_LN_BB_CLK1>,
<&clock_gcc GCC_USB3_CLKREF_CLK>;
clock-names = "iface_clk", "ref_clk_src", "ref_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>;
};
};
};
};
623 changes: 623 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-mdss.dtsi

Large diffs are not rendered by default.

39 changes: 39 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-mtp.dts
@@ -0,0 +1,39 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-mtp.dtsi"
#include "sdm660-external-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660L MTP";
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 0>;
qcom,pmic-id = <0x0001001b 0x0101011a 0x0 0x0>,
<0x0001001b 0x0201011a 0x0 0x0>;
};

&tavil_snd {
qcom,msm-mbhc-moist-cfg = <0>, <0>, <3>;
};

&slim_aud {
/delete-node/tasha_codec;
};

&soc {
/delete-node/sound-9335;
};

277 changes: 277 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-mtp.dtsi
@@ -0,0 +1,277 @@
/* Copyright (c) 2016-2018, 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 "sdm660-pinctrl.dtsi"
#include "sdm660-camera-sensor-mtp.dtsi"
/ {
mtp_batterydata: qcom,battery-data {
qcom,batt-id-range-pct = <15>;
#include "fg-gen3-batterydata-itech-3000mah.dtsi"
#include "fg-gen3-batterydata-ascent-3450mah.dtsi"
};
};

&uartblsp1dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
};

&ufsphy1 {
vdda-phy-supply = <&pm660l_l1>;
vdda-pll-supply = <&pm660_l10>;
vdda-phy-max-microamp = <51400>;
vdda-pll-max-microamp = <14200>;
status = "ok";
};

&ufs1 {
vdd-hba-supply = <&gdsc_ufs>;
vdd-hba-fixed-regulator;
vcc-supply = <&pm660l_l4>;
vccq2-supply = <&pm660_l8>;
vcc-max-microamp = <500000>;
vccq2-max-microamp = <600000>;
qcom,vddp-ref-clk-supply = <&pm660_l1>;
qcom,vddp-ref-clk-max-microamp = <100>;

status = "ok";
};

&pm660_gpios {
/* GPIO 4 (NFC_CLK_REQ) */
gpio@c300 {
qcom,mode = <0>;
qcom,vin-sel = <1>;
qcom,src-sel = <0>;
qcom,master-en = <1>;
status = "okay";
};

/* GPIO 11 for Home Key */
gpio@ca00 {
status = "okay";
qcom,mode = <0>;
qcom,pull = <0>;
qcom,vin-sel = <0>;
qcom,src-sel = <0>;
qcom,out-strength = <1>;
};
};

&i2c_6 { /* BLSP1 QUP6 (NFC) */
status = "okay";
nq@28 {
compatible = "qcom,nq-nci";
reg = <0x28>;
qcom,nq-irq = <&tlmm 28 0x00>;
qcom,nq-ven = <&tlmm 29 0x00>;
qcom,nq-firm = <&tlmm 30 0x00>;
qcom,nq-clkreq = <&pm660_gpios 4 0x00>;
qcom,nq-esepwr = <&tlmm 31 0x00>;
interrupt-parent = <&tlmm>;
qcom,clk-src = "BBCLK3";
interrupts = <28 0>;
interrupt-names = "nfc_irq";
pinctrl-names = "nfc_active", "nfc_suspend";
pinctrl-0 = <&nfc_int_active &nfc_enable_active>;
pinctrl-1 = <&nfc_int_suspend &nfc_enable_suspend>;
clocks = <&clock_rpmcc RPM_LN_BB_CLK3_PIN>;
clock-names = "ref_clk";
};
};

&mdss_mdp {
qcom,mdss-pref-prim-intf = "dsi";
};

&mdss_dsi {
hw-config = "split_dsi";
};

&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_dual_nt35597_truly_video>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,platform-reset-gpio = <&tlmm 53 0>;
qcom,platform-te-gpio = <&tlmm 59 0>;
};

&mdss_dsi1 {
qcom,dsi-pref-prim-pan = <&dsi_dual_nt35597_truly_video>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,platform-reset-gpio = <&tlmm 53 0>;
qcom,platform-te-gpio = <&tlmm 59 0>;
};

&mdss_dp_ctrl {
pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
pinctrl-0 = <&mdss_dp_aux_active &mdss_dp_usbplug_cc_active>;
pinctrl-1 = <&mdss_dp_aux_suspend &mdss_dp_usbplug_cc_suspend>;
qcom,aux-en-gpio = <&tlmm 55 0>;
qcom,aux-sel-gpio = <&tlmm 56 0>;
qcom,usbplug-cc-gpio = <&tlmm 58 0>;
};

&pm660l_wled {
qcom,led-strings-list = [01 02];
};

&dsi_dual_nt35597_truly_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_dual_nt35597_truly_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_dual_sharp_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_nt35597_truly_dsc_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_nt35597_truly_dsc_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_nt35695b_truly_fhd_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_nt35695b_truly_fhd_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&dsi_rm67195_amoled_fhd_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply_labibb_amoled>;
};

&dsi_lgd_incell_sw49106_fhd_video {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
};

&sdhc_1 {
/* device core power supply */
vdd-supply = <&pm660l_l4>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <200 570000>;

/* device communication power supply */
vdd-io-supply = <&pm660_l8>;
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 = <&pm660l_l5>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <15000 800000>;

/* device communication power supply */
vdd-io-supply = <&pm660l_l2>;
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 0 125 0
1 &intc 0 0 221 0
2 &tlmm 54 0>;
interrupt-names = "hc_irq", "pwr_irq", "status_irq";
cd-gpios = <&tlmm 54 0x1>;

qcom,clk-rates = <400000 20000000 25000000 50000000 100000000
200000000>;
qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";

status = "ok";
};

&soc {
qcom,msm-ssc-sensors {
compatible = "qcom,msm-ssc-sensors";
};
};

&mem_client_3_size {
qcom,peripheral-size = <0xf00000>;
};

&pm660_fg {
qcom,battery-data = <&mtp_batterydata>;
};

&i2c_2 {
status = "ok";
smb1351-charger@1d {
compatible = "qcom,smb1351-charger";
reg = <0x1d>;
qcom,parallel-charger;
qcom,float-voltage-mv = <4400>;
qcom,recharge-mv = <100>;
qcom,parallel-en-pin-polarity = <1>;
};
};
1,696 changes: 1,696 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-pinctrl.dtsi

Large diffs are not rendered by default.

823 changes: 823 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-pm.dtsi

Large diffs are not rendered by default.

54 changes: 54 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-pm660a-cdp.dts
@@ -0,0 +1,54 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-external-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 0>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
};

&mdss_dsi {
hw-config = "single_dsi";
};

&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_rm67195_amoled_fhd_cmd>;
oledb-supply = <&pm660a_oledb>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
};

&mdss_dsi1 {
status = "disabled";
oledb-supply = <&pm660a_oledb>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
};

&tavil_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};

&tasha_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};
38 changes: 38 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-pm660a-headset-jacktype-no-cdp.dts
@@ -0,0 +1,38 @@
/* Copyright (c) 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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-external-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A, Headset Jacktype NO, CDP";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <1 2>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
};

&mdss_dsi0 {
oledb-supply = <&pm660a_oledb>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
};

&mdss_dsi1 {
oledb-supply = <&pm660a_oledb>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
};
26 changes: 26 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-pm660a-headset-jacktype-no-rcm.dts
@@ -0,0 +1,26 @@
/* Copyright (c) 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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-external-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A, Headset Jacktype NO, RCM";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <21 2>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
};
48 changes: 48 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-pm660a-mtp.dts
@@ -0,0 +1,48 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-mtp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-external-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A MTP";
compatible = "qcom,sdm660-mtp", "qcom,sdm660", "qcom,mtp";
qcom,board-id = <8 0>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
};

&mdss_dsi {
hw-config = "single_dsi";
};

&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_rm67195_amoled_fhd_cmd>;
oledb-supply = <&pm660a_oledb>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
};

&mdss_dsi1 {
status = "disabled";
oledb-supply = <&pm660a_oledb>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
};

&tavil_snd {
qcom,msm-mbhc-moist-cfg = <0>, <0>, <3>;
};
56 changes: 56 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-pm660a-qrd.dts
@@ -0,0 +1,56 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-qrd.dtsi"
#include "msm-pm660a.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A QRD";
compatible = "qcom,sdm660-qrd", "qcom,sdm660", "qcom,qrd";
qcom,board-id = <0x0012000b 0>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
};

&pm660a_oledb {
status = "okay";
qcom,oledb-default-voltage-mv = <6400>;
};

&mdss_mdp {
qcom,mdss-pref-prim-intf = "dsi";
};

&mdss_dsi {
hw-config = "single_dsi";
};

&mdss_dsi0 {
qcom,dsi-pref-prim-pan = <&dsi_rm67195_amoled_fhd_cmd>;
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
qcom,platform-reset-gpio = <&tlmm 53 0>;
qcom,platform-te-gpio = <&tlmm 59 0>;
};

&dsi_rm67195_amoled_fhd_cmd {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <255>;
qcom,panel-supply-entries = <&dsi_panel_pwr_supply_labibb_amoled>;
};
36 changes: 36 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-pm660a-rcm.dts
@@ -0,0 +1,36 @@
/* Copyright (c) 2016-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.
*/


/dts-v1/;

#include "sdm660.dtsi"
#include "sdm660-cdp.dtsi"
#include "msm-pm660a.dtsi"
#include "sdm660-external-codec.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A RCM";
compatible = "qcom,sdm660-cdp", "qcom,sdm660", "qcom,cdp";
qcom,board-id = <21 0>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;
};

&tavil_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};

&tasha_snd {
qcom,msm-mbhc-hphl-swh = <0>;
qcom,msm-mbhc-gnd-swh = <0>;
};
146 changes: 146 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-pm660a-rumi.dts
@@ -0,0 +1,146 @@
/* Copyright (c) 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 "sdm660.dtsi"
#include "sdm660-pinctrl.dtsi"
#include "msm-pm660a.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A RUMI";
compatible = "qcom,sdm660-rumi", "qcom,sdm660", "qcom,rumi";
qcom,board-id = <15 0>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;

chosen {
bootargs = "lpm_levels.sleep_disabled=1";
};
};

&usb3 {
/delete-property/ USB3_GDSC-supply;
/delete-property/ extcon;
dwc3@a800000 {
maximum-speed = "high-speed";
};
};

&ssphy {
compatible = "usb-nop-xceiv";
};

&qusb_phy0 {
reg = <0x0a928000 0x8000>,
<0x0a8f8800 0x400>,
<0x0a920000 0x100>;
reg-names = "qusb_phy_base",
"qscratch_base",
"emu_phy_base";
qcom,emulation;
qcom,qusb-phy-init-seq = <0x19 0x1404
0x20 0x1414
0x79 0x1410
0x00 0x1418
0x99 0x1404
0x04 0x1408
0xd9 0x1404>;
qcom,emu-dcm-reset-seq = <0x100000 0x20
0x0 0x20
0x1a0 0x20
0x5 0x14>;
};

&uartblsp1dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
};

&sdhc_1 {
/* device core power supply */
vdd-supply = <&pm660l_l4>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <200 570000>;

/* device communication power supply */
vdd-io-supply = <&pm660_l8>;
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 192000000
384000000>;

qcom,nonremovable;
qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";

status = "ok";
};

&clock_gcc {
compatible = "qcom,dummycc";
clock-output-names = "gcc_clocks";
};

&pm660_charger {
status = "disabled";
};

&pm660_fg {
status = "disabled";
};

&clock_gfx {
compatible = "qcom,dummycc";
clock-output-names = "gfx_clocks";
};

&pm660_pdphy {
status = "disabled";
};

&clock_mmss {
compatible = "qcom,dummycc";
clock-output-names = "mmss_clocks";
};

&ufsphy1 {
vdda-phy-supply = <&pm660l_l1>;
vdda-pll-supply = <&pm660_l10>;
vddp-ref-clk-supply = <&pm660_l1>;
vdda-phy-max-microamp = <51400>;
vdda-pll-max-microamp = <14200>;
vddp-ref-clk-max-microamp = <100>;
vddp-ref-clk-always-on;
};

&ufs1 {
vdd-hba-supply = <&gdsc_ufs>;
vdd-hba-fixed-regulator;
vcc-supply = <&pm660l_l4>;
vccq2-supply = <&pm660_l8>;
vcc-max-microamp = <500000>;
vccq2-max-microamp = <600000>;
qcom,disable-lpm;
};

&clock_debug {
compatible = "qcom,dummycc";
clock-output-names = "debug_clocks";
};
111 changes: 111 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm660-pm660a-sim.dts
@@ -0,0 +1,111 @@
/* Copyright (c) 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 "sdm660.dtsi"
#include "sdm660-pinctrl.dtsi"
#include "msm-pm660a.dtsi"

/ {
model = "Qualcomm Technologies, Inc. SDM 660 PM660 + PM660A SIM";
compatible = "qcom,sdm660-sim", "qcom,sdm660", "qcom,sim";
qcom,board-id = <16 0>;
qcom,pmic-id = <0x0001001b 0x0001011a 0x0 0x0>;

chosen {
bootargs = "lpm_levels.sleep_disabled=1";
};
};

&usb3 {
reg = <0xa800000 0xfc000>;
reg-names = "core_base";
/delete-property/ extcon;
dwc3@a800000 {
maximum-speed = "high-speed";
};
};

&ssphy {
compatible = "usb-nop-xceiv";
};

&qusb_phy0 {
compatible = "usb-nop-xceiv";
};

&uartblsp1dm1 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart_console_active>;
};

&sdhc_1 {
/* device core power supply */
vdd-supply = <&pm660l_l4>;
qcom,vdd-voltage-level = <2950000 2950000>;
qcom,vdd-current-level = <200 570000>;

/* device communication power supply */
vdd-io-supply = <&pm660_l8>;
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 192000000
384000000>;

qcom,nonremovable;
qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v";

status = "ok";
};

&pm660_charger {
status = "disabled";
};

&pm660_fg {
status = "disabled";
};

&pm660_pdphy {
status = "disabled";
};

&ufsphy1 {
vdda-phy-supply = <&pm660l_l1>;
vdda-pll-supply = <&pm660_l10>;
vddp-ref-clk-supply = <&pm660_l1>;
vdda-phy-max-microamp = <51400>;
vdda-pll-max-microamp = <14200>;
vddp-ref-clk-max-microamp = <100>;
vddp-ref-clk-always-on;
status = "ok";
};

&ufs1 {
vdd-hba-supply = <&gdsc_ufs>;
vdd-hba-fixed-regulator;
vcc-supply = <&pm660l_l4>;
vccq2-supply = <&pm660_l8>;
vcc-max-microamp = <500000>;
vccq2-max-microamp = <600000>;
status = "ok";
};