diff options
author | Rohit Vaswani <rvaswani@codeaurora.org> | 2016-01-07 17:16:46 -0800 |
---|---|---|
committer | Rohit Vaswani <rvaswani@codeaurora.org> | 2016-03-01 12:22:17 -0800 |
commit | eb9d5a1557f25ff4ed1187e31df6c451df3c53e3 (patch) | |
tree | ff190417a26265980f7f2afaaed782c5b1d77966 /arch | |
parent | dd25b386799a4fadb4829f73fefc6e8f3a11387e (diff) |
arm: DTS: qcom: Snapshot of all 8996 Device Tree Files
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
Diffstat (limited to 'arch')
181 files changed, 37068 insertions, 1 deletions
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index 8e94af64ee94..e2ef759f08a8 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -1,4 +1,80 @@ -dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.dtb msm8916-mtp.dtb +dtb-$(CONFIG_ARCH_QCOM) += msm8996-v2-pmi8994-cdp.dtb \ + msm8996-v2-pmi8994-mtp.dtb \ + msm8996-v2-pmi8994-pmk8001-cdp.dtb \ + msm8996-v2-pmi8994-pmk8001-mtp.dtb \ + msm8996-v2-pmi8994-pm8004-cdp.dtb \ + msm8996-v2-pmi8994-pm8004-mtp.dtb \ + msm8996-v2-pmi8994-pm8004-pmk8001-cdp.dtb \ + msm8996-v2-pmi8994-pm8004-pmk8001-mtp.dtb \ + msm8996-v2-fluid.dtb \ + msm8996-v2-liquid.dtb \ + msm8996-v2-dtp.dtb \ + msm8996-v3-pmi8994-cdp.dtb \ + msm8996-v3-pmi8994-mtp.dtb \ + msm8996-v3-pmi8994-pmk8001-cdp.dtb \ + msm8996-v3-pmi8994-pmk8001-mtp.dtb \ + msm8996-v3-pmi8994-pm8004-cdp.dtb \ + msm8996-v3-pmi8994-pm8004-mtp.dtb \ + msm8996-v3-pmi8994-pm8004-pmk8001-cdp.dtb \ + msm8996-v3-pmi8994-pm8004-pmk8001-mtp.dtb \ + msm8996-v3-pmi8996-cdp.dtb \ + msm8996-v3-pmi8996-mtp.dtb \ + msm8996-v3-pmi8996-pmk8001-cdp.dtb \ + msm8996-v3-pmi8996-pmk8001-mtp.dtb \ + msm8996-v3-fluid.dtb \ + msm8996-v3-liquid.dtb \ + msm8996-v3-dtp.dtb \ + msm8996-v3-pm8004-mmxf-adp.dtb \ + msm8996-v3-pm8004-agave-adp.dtb \ + msm8996-v3.0-pmi8994-cdp.dtb \ + msm8996-v3.0-pmi8994-mtp.dtb \ + msm8996-v3.0-pmi8994-pm8004-cdp.dtb \ + msm8996-v3.0-pmi8994-pm8004-mtp.dtb \ + msm8996-v3.0-pmi8994-pm8004-pmk8001-cdp.dtb \ + msm8996-v3.0-pmi8994-pmk8001-cdp.dtb \ + msm8996-v3.0-pmi8996-cdp.dtb \ + msm8996-v3.0-pmi8996-mtp.dtb \ + msm8996-v3.0-fluid.dtb \ + msm8996-v3.0-liquid.dtb \ + msm8996-v3.0-dtp.dtb \ + apq8096-v2-pmi8994-cdp.dtb \ + apq8096-v2-pmi8994-mtp.dtb \ + apq8096-v2-pmi8994-pmk8001-cdp.dtb \ + apq8096-v2-pmi8994-pm8004-cdp.dtb \ + apq8096-v2-pmi8994-pm8004-pmk8001-cdp.dtb \ + apq8096-v2-liquid.dtb \ + apq8096-v2-dragonboard.dtb \ + apq8096-v2-auto-dragonboard.dtb \ + apq8096-v3-pmi8994-cdp.dtb \ + apq8096-v3-pmi8994-mtp.dtb \ + apq8096-v3-pmi8994-pmk8001-cdp.dtb \ + apq8096-v3-pmi8994-pm8004-cdp.dtb \ + apq8096-v3-pmi8994-pm8004-pmk8001-cdp.dtb \ + apq8096-v3-pmi8996-cdp.dtb \ + apq8096-v3-pmi8996-mtp.dtb \ + apq8096-v3-liquid.dtb \ + apq8096-v3-dragonboard.dtb \ + apq8096-v3-sbc.dtb \ + apq8096-v3-auto-dragonboard.dtb \ + apq8096-v3.0-pmi8994-cdp.dtb \ + apq8096-v3.0-pmi8994-mtp.dtb \ + apq8096-v3.0-pmi8994-pm8004-cdp.dtb \ + apq8096-v3.0-pmi8994-pm8004-pmk8001-cdp.dtb \ + apq8096-v3.0-pmi8994-pmk8001-cdp.dtb \ + apq8096-v3.0-pmi8996-cdp.dtb \ + apq8096-v3.0-pmi8996-mtp.dtb \ + apq8096-v3.0-liquid.dtb \ + apq8096-v3.0-dragonboard.dtb \ + apq8096-v3-pmi8994-mdm9x55-i2s-cdp.dtb \ + apq8096-v3-pmi8994-pm8004-mdm9x55-i2s-cdp.dtb \ + apq8096-v3-pmi8994-pm8004-pmk8001-mdm9x55-i2s-cdp.dtb \ + apq8096-v3-pmi8994-pmk8001-mdm9x55-i2s-cdp.dtb \ + apq8096-v3-pmi8996-mdm9x55-i2s-cdp.dtb \ + apq8096-v3-pmi8994-mdm9x55-i2s-mtp.dtb \ + apq8096-v3-pmi8994-mdm9x55-slimbus-mtp.dtb \ + apq8096-v3-pmi8996-mdm9x55-i2s-mtp.dtb \ + apq8096-v3-pmi8996-mdm9x55-slimbus-mtp.dtb \ + apq8096-v3-pmi8996-dragonboard.dtb always := $(dtb-y) subdir-y := $(dts-dirs) diff --git a/arch/arm64/boot/dts/qcom/apq8096-auto-dragonboard.dtsi b/arch/arm64/boot/dts/qcom/apq8096-auto-dragonboard.dtsi new file mode 100644 index 000000000000..2a6ac5285963 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-auto-dragonboard.dtsi @@ -0,0 +1,1060 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8996-pinctrl.dtsi" +#include "apq8096-camera-sensor-dragonboard.dtsi" + +/ { + bluetooth: bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-core-supply = <&vph_pwr_vreg>; + qca,bt-vdd-pa-supply = <&vph_pwr_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&vph_pwr_vreg>; + qca,bt-chip-pwd-voltage-level = <1300000 1300000>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&ufs_ice { + status = "ok"; +}; + +&sdcc1_ice { + status = "ok"; +}; + +&ufsphy1 { + status = "ok"; +}; + +&ufs1 { + status = "ok"; +}; + +&uartblsp2dm1 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <110 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 + 96000000 192000000 384000000>; + qcom,ice-clk-rates = <300000000 150000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 + 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + cd-gpios = <&tlmm 95 0x1>; + + status = "ok"; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x88>; + qcom,thermal-node; + }; +}; + +&mdss_hdmi_tx { + pinctrl-names = "hdmi_hpd_active", "hdmi_ddc_active", "hdmi_cec_active", + "hdmi_active", "hdmi_sleep"; + pinctrl-0 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; + pinctrl-1 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_suspend>; + pinctrl-2 = <&mdss_hdmi_hpd_active &mdss_hdmi_cec_active + &mdss_hdmi_ddc_suspend>; + pinctrl-3 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_active>; + pinctrl-4 = <&mdss_hdmi_hpd_suspend &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; +}; + +&pmi8994_vadc { + chan@0 { + label = "usbin"; + reg = <0>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@1 { + label = "dcin"; + reg = <1>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@43 { + label = "usb_dp"; + reg = <0x43>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@44 { + label = "usb_dm"; + reg = <0x44>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; +}; + +#include "msm8996-mdss-panels.dtsi" + +&dsi_hx8379a_fwvga_truly_vid { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <50>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-pwm-gpio = <&pm8994_gpios 5 0>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "split_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_adv7533_720p>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + + qcom,panel-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,panel-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vdd"; + qcom,supply-min-voltage = <3300000>; + qcom,supply-max-voltage = <3300000>; + 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>; + }; + }; +}; + +&mdss_dsi1 { + qcom,dsi-pref-prim-pan = <&dsi_adv7533_720p>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + + qcom,panel-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,panel-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vdd"; + qcom,supply-min-voltage = <3300000>; + qcom,supply-max-voltage = <3300000>; + 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>; + }; + }; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&ibb_regulator { + qcom,qpnp-ibb-discharge-resistor = <32>; +}; + +&rpm_bus { + rpm-regulator-bstb { + status = "disabled"; + regulator-bst { + status = "disabled"; + }; + }; + + rpm-regulator-ldoa22 { + pm8994_l22: regulator-l22 { + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + qcom,init-voltage = <3000000>; + }; + }; +}; + +&pmi8994_charger { + /delete-property/ otg-parent-supply; + qcom,charging-disabled; + smbcharger_charger_otg { + parent-supply = <&pmi8994_boost_5v>; + }; +}; + +&pmi8994_fg { + status = "disabled"; +}; + +&pmi8994_charger { + status = "disabled"; +}; + +&usb_otg_switch { + gpio = <&pm8994_gpios 11 0>; + enable-active-high; + status = "ok"; +}; + +&usb3 { + qcom,charging-disabled; + vbus_dwc3-supply = <&usb_otg_switch>; +}; + +&usb2s { + status = "ok"; + pinctrl-0 = <&usb_hub_reset_active>; + pinctrl-1 = <&usb_hub_reset_suspend>; + qcom,ext-hub-reset-gpio = <&tlmm 103 0>; + qcom,disable-host-mode-pm; + dwc3@7600000 { + dr_mode = "host"; + }; +}; + +&usb_nop_phy { + status = "ok"; +}; + +&qusb_phy1 { + status = "ok"; +}; + +&rome_vreg { + status = "disabled"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; + + mpp@a200 { /* MPP 3 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; + + mpp@a300 { /* MPP 4 */ + /* HDMI_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; + + mpp@a500 { /* MPP 6 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + + +&pmi8994_gpios { + gpio@c100 { /* GPIO 2 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c200 { /* GPIO 3 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c300 { /* GPIO 4 USB2_ID */ + qcom,mode = <0>; /* DIGITAL INPUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c500 { /* GPIO 6 USB2_VBUS_DET*/ + qcom,mode = <0>; /* DIGITAL INPUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; +}; + +&pmi8994_mpps { + mpp@a300 { /* MPP 4 */ + /* WLED FET */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <0>; /* VIN0 */ + qcom,master-en = <1>; + status = "okay"; + }; +}; + +&soc { + qcom,cnss { + wlan-bootstrap-gpio = <&tlmm 46 0>; + wlan-en-gpio = <&pm8994_gpios 8 0>; + vdd-wlan-io-supply = <&pm8994_s4>; + /* removing unneeded regulators */ + /delete-property/ vdd-wlan-supply; + /delete-property/ vdd-wlan-xtal-supply; + /delete-property/ vdd-wlan-core-supply; + }; + + i2c@75ba000 { + synaptics@20 { + compatible = "synaptics,dsx"; + reg = <0x20>; + interrupt-parent = <&tlmm>; + interrupts = <125 0x2008>; + vdd-supply = <&pm8994_l14>; + avdd-supply = <&pm8994_l22>; + pinctrl-names = "pmx_ts_active", "pmx_ts_suspend"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_suspend>; + synaptics,display-coords = <0 0 480 854>; + synaptics,panel-coords = <0 0 480 854>; + synaptics,reset-gpio = <&tlmm 89 0x00>; + synaptics,irq-gpio = <&tlmm 125 0x2008>; + synaptics,button-map = <139 102 158>; + synaptics,disable-gpios; + /* Underlying clocks used by secure touch */ + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup6_i2c_apps_clk>; + }; + }; + + i2c@75b6000 { /* BLSP8 */ + /* ADV7533 configuration */ + adv7533@3d { + compatible = "adv7533"; + instance_id = <0>; + reg = <0x3d>; + adi,video-mode = <3>; /* 3 = 1080p */ + adi,main-addr = <0x3D>; + adi,cec-dsi-addr = <0x3E>; + adi,enable-audio; + pinctrl-names = "pmx_adv7533_active", + "pmx_adv7533_suspend"; + pinctrl-0 = <&adv7533_0_int_active + &adv7533_0_hpd_int_active + &adv7533_0_switch_active>; + pinctrl-1 = <&adv7533_0_int_suspend + &adv7533_0_hpd_int_suspend + &adv7533_0_switch_suspend>; + adi,irq-gpio = <&tlmm 106 0x2002>; + adi,hpd-irq-gpio = <&tlmm 106 0x2003>; + adi,switch-gpio = <&tlmm 105 0x0>; + }; + + adv7533@39 { + compatible = "adv7533"; + instance_id = <1>; + reg = <0x39>; + 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_1_int_active + &adv7533_1_hpd_int_active + &adv7533_1_switch_active>; + pinctrl-1 = <&adv7533_1_int_suspend + &adv7533_1_hpd_int_suspend + &adv7533_1_switch_suspend>; + adi,irq-gpio = <&tlmm 108 0x2002>; + adi,hpd-irq-gpio = <&tlmm 106 0x2003>; + adi,switch-gpio = <&tlmm 107 0x0>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 2 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + + gp_switch_gpio { + label = "gp_switch_gpio"; + pinctrl-0 = <&gp_switch_active>; + pinctrl-1 = <&gp_switch_suspend>; + gpios = <&tlmm 127 0x1>; + linux,input-type = <1>; + linux,code = <158>; /* By default mapped to BACK */ + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; + + /* + * vph_pwr_vreg represents the unregulated battery voltage supply + * VPH_PWR that is present whenever the device is powered on. + */ + vph_pwr_vreg: vph_pwr_vreg { + compatible = "regulator-fixed"; + regulator-name = "vph_pwr"; + status = "ok"; + regulator-always-on; + }; + + + sound { + status = "disabled"; + }; + + sound-9335 { + status = "disabled"; + }; + + sound-auto { + compatible = "qcom,apq8096-asoc-snd-auto"; + qcom,model = "apq8096-auto-snd-card"; + + asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>, + <&loopback>, <&compress>, <&hostless>, + <&afe>, <&lsm>, <&routing>, <&compr>; + 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-compr-dsp"; + asoc-cpu = <&dai_pri_auxpcm>, <&dai_sec_auxpcm>, <&dai_hdmi>, + <&dai_mi2s>, <&dai_mi2s_quat>, + <&afe_pcm_rx>, <&afe_pcm_tx>, + <&afe_proxy_rx>, <&afe_proxy_tx>, + <&incall_record_rx>, <&incall_record_tx>, + <&incall_music_rx>, <&incall_music2_rx>, + <&dai_tert_tdm_rx_0>, <&dai_tert_tdm_rx_1>, + <&dai_tert_tdm_rx_2>, <&dai_tert_tdm_rx_3>, + <&dai_tert_tdm_tx_0>, <&dai_tert_tdm_tx_1>, + <&dai_tert_tdm_tx_2>, <&dai_tert_tdm_tx_3>, + <&dai_quat_tdm_rx_0>, <&dai_quat_tdm_rx_1>, + <&dai_quat_tdm_rx_2>, <&dai_quat_tdm_rx_3>, + <&dai_quat_tdm_tx_0>, <&dai_quat_tdm_tx_1>, + <&dai_quat_tdm_tx_2>, <&dai_quat_tdm_tx_3>; + asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2", + "msm-dai-q6-hdmi.8", + "msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3", + "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-tdm.36896", "msm-dai-q6-tdm.36898", + "msm-dai-q6-tdm.36900", "msm-dai-q6-tdm.36902", + "msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36899", + "msm-dai-q6-tdm.36901", "msm-dai-q6-tdm.36903", + "msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36914", + "msm-dai-q6-tdm.36916", "msm-dai-q6-tdm.36918", + "msm-dai-q6-tdm.36913", "msm-dai-q6-tdm.36915", + "msm-dai-q6-tdm.36917", "msm-dai-q6-tdm.36919"; + asoc-codec = <&stub_codec>; + asoc-codec-names = "msm-stub-codec.1"; + }; + + usb_detect { + compatible = "qcom,gpio-usbdetect"; + interrupt-parent = <&spmi_bus>; + interrupts = <0x0 0xd5 0x0>; /* PM8994 GPIO22 */ + interrupt-names = "vbus_det_irq"; + vin-supply = <&vph_pwr_vreg>; + }; + + spi@7575000 { /* BLSP1 QUP1 */ + status = "disabled"; + }; + + qcom,msm-dai-mi2s { + compatible = "qcom,msm-dai-mi2s"; + dai_mi2s_quat: qcom,msm-dai-q6-mi2s-quat { + compatible = "qcom,msm-dai-q6-mi2s"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&quat_mi2s_active &quat_mi2s_sd0_active>; + pinctrl-1 = <&quat_mi2s_sleep &quat_mi2s_sd0_sleep>; + }; + }; + + qcom,msm-dai-tdm-tert-tx { + compatible = "qcom,msm-dai-tdm"; + dai_tert_tdm_tx_0: qcom,msm-dai-q6-tdm-tert-tx-0 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-num-offset = <1>, <2>, + <3>, <4>; + qcom,msm-cpudai-tdm-offset = <0>, <0 4>, + <0 4 8>, <0 4 8 12>; + qcom,msm-cpudai-tdm-offset-data-align = <0>; + }; + + dai_tert_tdm_tx_1: qcom,msm-dai-q6-tdm-tert-tx-1 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-num-offset = <1>, <2>; + qcom,msm-cpudai-tdm-offset = <16>, <16 20>; + qcom,msm-cpudai-tdm-offset-data-align = <0>; + }; + + dai_tert_tdm_tx_2: qcom,msm-dai-q6-tdm-tert-tx-2 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-num-offset = <1>, <2>; + qcom,msm-cpudai-tdm-offset = <24>, <24 28>; + qcom,msm-cpudai-tdm-offset-data-align = <0>; + }; + }; + + qcom,msm-dai-tdm-quat-rx { + compatible = "qcom,msm-dai-tdm"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&quat_tdm_dout_active>; + pinctrl-1 = <&quat_tdm_dout_sleep>; + dai_quat_tdm_rx_0: qcom,msm-dai-q6-tdm-quat-rx-0 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-num-offset = <1>, <2>, <3>, + <4>, <5>, <6>; + qcom,msm-cpudai-tdm-offset = <0>, <0 4>, <0 4 8>, + <0 4 8 12>, <0 4 8 12 16>, + <0 4 8 12 16 20>; + qcom,msm-cpudai-tdm-offset-data-align = <0>; + qcom,msm-cpudai-tdm-header-start-offset = <0>; + qcom,msm-cpudai-tdm-header-width = <2>; + qcom,msm-cpudai-tdm-header-num-frame-repeat = <8>; + }; + + dai_quat_tdm_rx_1: qcom,msm-dai-q6-tdm-quat-rx-1 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-num-offset = <1>; + qcom,msm-cpudai-tdm-offset = <24>; + qcom,msm-cpudai-tdm-offset-data-align = <0>; + qcom,msm-cpudai-tdm-header-start-offset = <0>; + qcom,msm-cpudai-tdm-header-width = <2>; + qcom,msm-cpudai-tdm-header-num-frame-repeat = <8>; + }; + + dai_quat_tdm_rx_2: qcom,msm-dai-q6-tdm-quat-rx-2 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-num-offset = <1>; + qcom,msm-cpudai-tdm-offset = <28>; + qcom,msm-cpudai-tdm-offset-data-align = <0>; + qcom,msm-cpudai-tdm-header-start-offset = <0>; + qcom,msm-cpudai-tdm-header-width = <2>; + qcom,msm-cpudai-tdm-header-num-frame-repeat = <8>; + }; + }; + + qcom,msm-dai-tdm-quat-tx { + compatible = "qcom,msm-dai-tdm"; + dai_quat_tdm_tx_0: qcom,msm-dai-q6-tdm-quat-tx-0 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-num-offset = <1>, <2>, + <3>, <4>; + qcom,msm-cpudai-tdm-offset = <0>, <0 4>, + <0 4 8>, <0 4 8 12>; + qcom,msm-cpudai-tdm-offset-data-align = <0>; + }; + + dai_quat_tdm_tx_1: qcom,msm-dai-q6-tdm-quat-tx-1 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-num-offset = <1>, <2>; + qcom,msm-cpudai-tdm-offset = <16>, <16 20>; + qcom,msm-cpudai-tdm-offset-data-align = <0>; + }; + + dai_quat_tdm_tx_2: qcom,msm-dai-q6-tdm-quat-tx-2 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-num-offset = <1>, <2>; + qcom,msm-cpudai-tdm-offset = <24>, <24 28>; + qcom,msm-cpudai-tdm-offset-data-align = <0>; + }; + }; +}; + +&spmi_bus { + qcom,pm8994@1 { + pwm@b100 { + qcom,lpg-dtest-line = <4>; + qcom,dtest-output = <1>; + status = "okay"; + }; + }; +}; + +&pm8994_gpios { + gpio@c100 { /* GPIO 2 - KYPD_VOLP_N */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c300 { /* GPIO 4 - BL1_PWM */ + qcom,mode = <1>; + qcom,pull = <1>; + qcom,vin-sel = <2>; + qcom,src-sel = <4>; + status = "okay"; + }; + + gpio@c400 { /* GPIO 5 - BL0_PWM */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <1>; /* PULL DOWN */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <7>; /* LPG4 */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c600 { /* GPIO 7 */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c700 { /* GPIO 8 - WLAN_EN */ + qcom,mode = <1>; /* Digital output*/ + qcom,out-strength = <2>;/* QPNP_PIN_OUT_STRENGTH_MED */ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c900 { /* GPIO 10 */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@ca00 { /* GPIO 11 - USB enb1 (otg switch) */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <1>; /* PULL DOWN */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@cc00 { /* GPIO 13 */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@ce00 { /* GPIO 15 - DIVCLK1 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@cf00 { /* GPIO 16 - DIVCLK2 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d000 { /* GPIO 17 - DIVCLK3 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d100 { /* GPIO 18 - Rome Sleep Clock */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output low initially */ + qcom,vin-sel = <2>; /* VIN 2 */ + qcom,src-sel = <3>; /* Function 2 */ + qcom,out-strength = <2>; /* Medium */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d200 { /* GPIO 19 - Rome BT Reset */ + qcom,mode = <1>; /* Digital output*/ + qcom,out-strength = <2>; /* QPNP_PIN_OUT_STRENGTH_MED */ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d500 { /* GPIO 22 - USB1 VBUS detect */ + qcom,mode = <0>; /* Digital Input*/ + qcom,pull = <5>; /* No pull */ + qcom,vin-sel = <2>; /* 1.8 V */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&pmi8994_haptics { + status = "okay"; +}; + +&blsp1_uart2 { + status = "ok"; +}; + +&slim_msm { + tasha_codec { + qcom,cdc-micbias2-headset-only; + qcom,cdc-micbias1-ext-cap; + qcom,cdc-micbias2-ext-cap; + qcom,cdc-micbias3-ext-cap; + qcom,cdc-micbias4-ext-cap; + }; +}; + +&cam_sensor_mclk0_active { /* MCLK0 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk0_suspend { /* MCLK0 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk1_active { /* MCLK1 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk1_suspend { /* MCLK1 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk2_active { /* MCLK2 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk2_suspend { /* MCLK2 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-camera-sensor-dragonboard.dtsi b/arch/arm64/boot/dts/qcom/apq8096-camera-sensor-dragonboard.dtsi new file mode 100644 index 000000000000..fab3415f6ad0 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-camera-sensor-dragonboard.dtsi @@ -0,0 +1,255 @@ +/* + * Copyright (c) 2015 The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * Note: default configuration is for the camera modules to be powered + * by the PMIC from the CSI connector. Alternative configuration is for + * self-powered camera modules. + */ +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + /* cam_vaf-supply = <&vph_pwr_vreg>; */ + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + actuator1: qcom,actuator@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,actuator"; + qcom,cci-master = <1>; + cam_vaf-supply = <&pm8994_l23>; + /* cam_vaf-supply = <&vph_pwr_vreg>; */ + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + eeprom0: qcom,eeprom@0 { + cell-index = <0>; + reg = <0>; + qcom,eeprom-name = "onsemi_cat24c32"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xa0>; + qcom,cci-master = <0>; + qcom,num-blocks = <1>; + qcom,page0 = <0 0 0 0 0 0>; + qcom,poll0 = <0 0 0 0 0 0>; + qcom,saddr0 = <0xa0>; + qcom,mem0 = <2245 0x00 2 0 1 0>; + cam_vio-supply = <&pm8994_lvs1>; + /* cam_vio-supply = <&vph_pwr_vreg>; */ + qcom,cam-vreg-name = "cam_vio"; + qcom,cam-vreg-min-voltage = <0>; + qcom,cam-vreg-max-voltage = <0>; + qcom,cam-vreg-op-mode = <0>; + qcom,cam-power-seq-type = "sensor_vreg"; + qcom,cam-power-seq-val = "cam_vio"; + qcom,cam-power-seq-cfg-val = <1>; + qcom,cam-power-seq-delay = <1>; + }; + + eeprom1: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + qcom,eeprom-name = "onsemi_cat24c16"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xa0>; + qcom,cci-master = <1>; + qcom,num-blocks = <7>; + + qcom,page0 = <0 0 0 0 0 0>; + qcom,poll0 = <0 0 0 0 0 0>; + qcom,saddr0 = <0xa0>; + qcom,mem0 = <256 0x00 1 0 1 0>; + + qcom,page1 = <0 0 0 0 0 0>; + qcom,poll1 = <0 0 0 0 0 0>; + qcom,saddr1 = <0xa2>; + qcom,mem1 = <256 0x00 1 0 1 0>; + + qcom,page2 = <0 0 0 0 0 0>; + qcom,poll2 = <0 0 0 0 0 0>; + qcom,saddr2 = <0xa4>; + qcom,mem2 = <256 0x00 1 0 1 0>; + + qcom,page3 = <0 0 0 0 0 0>; + qcom,poll3 = <0 0 0 0 0 0>; + qcom,saddr3 = <0xa6>; + qcom,mem3 = <256 0x00 1 0 1 0>; + + qcom,page4 = <0 0 0 0 0 0>; + qcom,poll4 = <0 0 0 0 0 0>; + qcom,saddr4 = <0xa8>; + qcom,mem4 = <256 0x00 1 0 1 0>; + + qcom,page5 = <0 0 0 0 0 0>; + qcom,poll5 = <0 0 0 0 0 0>; + qcom,saddr5 = <0xaa>; + qcom,mem5 = <256 0x00 1 0 1 0>; + + qcom,page6 = <0 0 0 0 0 0>; + qcom,poll6 = <0 0 0 0 0 0>; + qcom,saddr6 = <0xac>; + qcom,mem6 = <254 0x00 1 0 1 0>; + + cam_vio-supply = <&pm8994_lvs1>; + /* cam_vio-supply = <&vph_pwr_vreg>; */ + qcom,cam-vreg-name = "cam_vio"; + qcom,cam-vreg-min-voltage = <0>; + qcom,cam-vreg-max-voltage = <0>; + qcom,cam-vreg-op-mode = <0>; + qcom,cam-power-seq-type = "sensor_vreg"; + qcom,cam-power-seq-val = "cam_vio"; + qcom,cam-power-seq-cfg-val = <1>; + qcom,cam-power-seq-delay = <1>; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <0>; + qcom,actuator-src = <&actuator0>; + qcom,eeprom-src = <&eeprom0>; + cam_vdig-supply = <&vph_pwr_vreg>; + /* Cameras powered by PMIC: */ + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + /* Self-powered cameras: */ + /* cam_vio-supply = <&vph_pwr_vreg>; */ + /* cam_vana-supply = <&vph_pwr_vreg>; */ + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_csi0_sensor_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_csi0_sensor_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 25 0>, + <&tlmm 26 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_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@1 { + cell-index = <1>; + compatible = "qcom,camera"; + reg = <0x1>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,mount-angle = <0>; + cam_vdig-supply = <&vph_pwr_vreg>; + /* Cameras powered by PMIC: */ + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l18>; + /* Self-powered cameras: */ + /* cam_vio-supply = <&vph_pwr_vreg>; */ + /* cam_vana-supply = <&vph_pwr_vreg>; */ + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 3150000>; + qcom,cam-vreg-max-voltage = <1000000 0 3600000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_csi1_sensor_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_csi1_sensor_suspend>; + gpios = <&tlmm 14 0>, + <&tlmm 104 0>, + <&tlmm 98 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 = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk1_clk_src>, + <&clock_mmss clk_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x02>; + qcom,csiphy-sd-index = <2>; + qcom,csid-sd-index = <2>; + qcom,mount-angle = <0>; + qcom,eeprom-src = <&eeprom1>; + qcom,actuator-src = <&actuator1>; + /* Cameras powered by PMIC: */ + cam_vdig-supply = <&vph_pwr_vreg>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + /* Self-powered cameras: */ + /* cam_vio-supply = <&vph_pwr_vreg>; */ + /* cam_vana-supply = <&vph_pwr_vreg>; */ + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 2800000>; + qcom,cam-vreg-max-voltage = <1000000 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_mclk2_active &cam_csi2_sensor_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_csi2_sensor_suspend>; + gpios = <&tlmm 15 0>, + <&tlmm 23 0>, + <&tlmm 133 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_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-camera-sensor-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8096-camera-sensor-sbc.dtsi new file mode 100644 index 000000000000..cd94cc41593d --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-camera-sensor-sbc.dtsi @@ -0,0 +1,237 @@ +/* + * Copyright (c) 2015 The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * Note: default configuration is for self-powered camera modules. + */ +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&vph_pwr_vreg>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + actuator1: qcom,actuator@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,actuator"; + qcom,cci-master = <1>; + cam_vaf-supply = <&vph_pwr_vreg>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + eeprom0: qcom,eeprom@0 { + cell-index = <0>; + reg = <0>; + qcom,eeprom-name = "onsemi_cat24c32"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xa0>; + qcom,cci-master = <0>; + qcom,num-blocks = <1>; + qcom,page0 = <0 0 0 0 0 0>; + qcom,poll0 = <0 0 0 0 0 0>; + qcom,saddr0 = <0xa0>; + qcom,mem0 = <2245 0x00 2 0 1 0>; + cam_vio-supply = <&vph_pwr_vreg>; + qcom,cam-vreg-name = "cam_vio"; + qcom,cam-vreg-min-voltage = <0>; + qcom,cam-vreg-max-voltage = <0>; + qcom,cam-vreg-op-mode = <0>; + qcom,cam-power-seq-type = "sensor_vreg"; + qcom,cam-power-seq-val = "cam_vio"; + qcom,cam-power-seq-cfg-val = <1>; + qcom,cam-power-seq-delay = <1>; + }; + + eeprom1: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + qcom,eeprom-name = "onsemi_cat24c16"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xa0>; + qcom,cci-master = <1>; + qcom,num-blocks = <7>; + + qcom,page0 = <0 0 0 0 0 0>; + qcom,poll0 = <0 0 0 0 0 0>; + qcom,saddr0 = <0xa0>; + qcom,mem0 = <256 0x00 1 0 1 0>; + + qcom,page1 = <0 0 0 0 0 0>; + qcom,poll1 = <0 0 0 0 0 0>; + qcom,saddr1 = <0xa2>; + qcom,mem1 = <256 0x00 1 0 1 0>; + + qcom,page2 = <0 0 0 0 0 0>; + qcom,poll2 = <0 0 0 0 0 0>; + qcom,saddr2 = <0xa4>; + qcom,mem2 = <256 0x00 1 0 1 0>; + + qcom,page3 = <0 0 0 0 0 0>; + qcom,poll3 = <0 0 0 0 0 0>; + qcom,saddr3 = <0xa6>; + qcom,mem3 = <256 0x00 1 0 1 0>; + + qcom,page4 = <0 0 0 0 0 0>; + qcom,poll4 = <0 0 0 0 0 0>; + qcom,saddr4 = <0xa8>; + qcom,mem4 = <256 0x00 1 0 1 0>; + + qcom,page5 = <0 0 0 0 0 0>; + qcom,poll5 = <0 0 0 0 0 0>; + qcom,saddr5 = <0xaa>; + qcom,mem5 = <256 0x00 1 0 1 0>; + + qcom,page6 = <0 0 0 0 0 0>; + qcom,poll6 = <0 0 0 0 0 0>; + qcom,saddr6 = <0xac>; + qcom,mem6 = <254 0x00 1 0 1 0>; + + cam_vio-supply = <&vph_pwr_vreg>; + qcom,cam-vreg-name = "cam_vio"; + qcom,cam-vreg-min-voltage = <0>; + qcom,cam-vreg-max-voltage = <0>; + qcom,cam-vreg-op-mode = <0>; + qcom,cam-power-seq-type = "sensor_vreg"; + qcom,cam-power-seq-val = "cam_vio"; + qcom,cam-power-seq-cfg-val = <1>; + qcom,cam-power-seq-delay = <1>; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <0>; + qcom,actuator-src = <&actuator0>; + qcom,eeprom-src = <&eeprom0>; + cam_vdig-supply = <&vph_pwr_vreg>; + cam_vio-supply = <&vph_pwr_vreg>; + cam_vana-supply = <&vph_pwr_vreg>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_csi0_sensor_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_csi0_sensor_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 25 0>, + <&tlmm 26 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_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@1 { + cell-index = <1>; + compatible = "qcom,camera"; + reg = <0x1>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,mount-angle = <0>; + cam_vdig-supply = <&vph_pwr_vreg>; + cam_vio-supply = <&vph_pwr_vreg>; + cam_vana-supply = <&vph_pwr_vreg>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 3150000>; + qcom,cam-vreg-max-voltage = <1000000 0 3600000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_csi1_sensor_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_csi1_sensor_suspend>; + gpios = <&tlmm 14 0>, + <&tlmm 104 0>, + <&tlmm 98 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 = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk1_clk_src>, + <&clock_mmss clk_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x02>; + qcom,csiphy-sd-index = <2>; + qcom,csid-sd-index = <2>; + qcom,mount-angle = <0>; + qcom,eeprom-src = <&eeprom1>; + qcom,actuator-src = <&actuator1>; + cam_vdig-supply = <&vph_pwr_vreg>; + cam_vio-supply = <&vph_pwr_vreg>; + cam_vana-supply = <&vph_pwr_vreg>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 2800000>; + qcom,cam-vreg-max-voltage = <1000000 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_mclk2_active &cam_csi2_sensor_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_csi2_sensor_suspend>; + gpios = <&tlmm 15 0>, + <&tlmm 23 0>, + <&tlmm 133 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_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-dragonboard.dtsi b/arch/arm64/boot/dts/qcom/apq8096-dragonboard.dtsi new file mode 100644 index 000000000000..2830c055d224 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-dragonboard.dtsi @@ -0,0 +1,873 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8996-pinctrl.dtsi" +#include "apq8096-camera-sensor-dragonboard.dtsi" + +/ { + bluetooth: bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-core-supply = <&vph_pwr_vreg>; + qca,bt-vdd-pa-supply = <&vph_pwr_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&vph_pwr_vreg>; + qca,bt-chip-pwd-voltage-level = <1300000 1300000>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&ufs_ice { + status = "ok"; +}; + +&sdcc1_ice { + status = "ok"; +}; + +&ufsphy1 { + status = "ok"; +}; + +&ufs1 { + status = "ok"; +}; + +&uartblsp2dm1 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <110 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 + 96000000 192000000 384000000>; + qcom,ice-clk-rates = <300000000 150000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 + 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + cd-gpios = <&tlmm 95 0x1>; + + status = "ok"; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x88>; + qcom,thermal-node; + }; +}; + +&mdss_hdmi_tx { + pinctrl-names = "hdmi_hpd_active", "hdmi_ddc_active", "hdmi_cec_active", + "hdmi_active", "hdmi_sleep"; + pinctrl-0 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; + pinctrl-1 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_suspend>; + pinctrl-2 = <&mdss_hdmi_hpd_active &mdss_hdmi_cec_active + &mdss_hdmi_ddc_suspend>; + pinctrl-3 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_active>; + pinctrl-4 = <&mdss_hdmi_hpd_suspend &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; +}; + +&pmi8994_vadc { + chan@0 { + label = "usbin"; + reg = <0>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@1 { + label = "dcin"; + reg = <1>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@43 { + label = "usb_dp"; + reg = <0x43>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@44 { + label = "usb_dm"; + reg = <0x44>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; +}; + +#include "msm8996-mdss-panels.dtsi" + +&dsi_hx8379a_fwvga_truly_vid { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <50>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-pwm-gpio = <&pm8994_gpios 5 0>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "single_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_hx8379a_fwvga_truly_vid>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active &mdss_disp_bkl_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend &mdss_disp_bkl_suspend>; + qcom,platform-te-gpio = <&tlmm 10 0>; + qcom,platform-reset-gpio = <&tlmm 8 0>; + qcom,platform-bklight-en-gpio = <&tlmm 135 0>; +}; + +&mdss_dsi1 { + status = "disabled"; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&rpm_bus { + rpm-regulator-bstb { + status = "disabled"; + regulator-bst { + status = "disabled"; + }; + }; + + rpm-regulator-ldoa22 { + pm8994_l22: regulator-l22 { + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + qcom,init-voltage = <3000000>; + }; + }; +}; + +&pmi8994_charger { + /delete-property/ otg-parent-supply; + qcom,charging-disabled; + smbcharger_charger_otg { + parent-supply = <&pmi8994_boost_5v>; + }; +}; + +&pmi8994_fg { + status = "disabled"; +}; + +&pmi8994_charger { + status = "disabled"; +}; + +&usb_otg_switch { + gpio = <&pm8994_gpios 11 0>; + enable-active-high; + status = "ok"; +}; + +&usb3 { + qcom,charging-disabled; + vbus_dwc3-supply = <&usb_otg_switch>; +}; + +&usb2s { + status = "ok"; + pinctrl-0 = <&usb_hub_reset_active>; + pinctrl-1 = <&usb_hub_reset_suspend>; + qcom,ext-hub-reset-gpio = <&tlmm 103 0>; + qcom,disable-host-mode-pm; + dwc3@7600000 { + dr_mode = "host"; + }; +}; + +&usb_nop_phy { + status = "ok"; +}; + +&qusb_phy0 { + qcom,qusb-phy-init-seq = <0xF8 0x80 + 0x63 0x84 + 0x83 0x88 + 0xC5 0x8C + 0x30 0x08 + 0x79 0x0C + 0x21 0x10 + 0x14 0x9C + 0x9F 0x1C + 0x00 0x18>; +}; + +&qusb_phy1 { + status = "ok"; +}; + +&rome_vreg { + status = "disabled"; +}; + +&pm8994_l16 { /* GPS ELNA */ + status = "okay"; + regulator-always-on; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; + + mpp@a200 { /* MPP 3 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; + + mpp@a300 { /* MPP 4 */ + /* HDMI_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; + + mpp@a500 { /* MPP 6 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + + +&pmi8994_gpios { + gpio@c100 { /* GPIO 2 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c200 { /* GPIO 3 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c300 { /* GPIO 4 USB2_ID */ + qcom,mode = <0>; /* DIGITAL INPUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c500 { /* GPIO 6 USB2_VBUS_DET*/ + qcom,mode = <0>; /* DIGITAL INPUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; +}; + +&pmi8994_mpps { + mpp@a300 { /* MPP 4 */ + /* WLED FET */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <0>; /* VIN0 */ + qcom,master-en = <1>; + status = "okay"; + }; +}; + +&soc { + qcom,cnss { + wlan-bootstrap-gpio = <&tlmm 46 0>; + wlan-en-gpio = <&pm8994_gpios 8 0>; + vdd-wlan-io-supply = <&pm8994_s4>; + // removing unneeded regulators + /delete-property/ vdd-wlan-supply; + /delete-property/ vdd-wlan-xtal-supply; + /delete-property/ vdd-wlan-core-supply; + }; + + i2c@75ba000 { + synaptics@20 { + compatible = "synaptics,dsx"; + reg = <0x20>; + interrupt-parent = <&tlmm>; + interrupts = <125 0x2008>; + vdd-supply = <&pm8994_l14>; + avdd-supply = <&pm8994_l22>; + pinctrl-names = "pmx_ts_active", "pmx_ts_suspend"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_suspend>; + synaptics,display-coords = <0 0 480 854>; + synaptics,panel-coords = <0 0 480 854>; + synaptics,reset-gpio = <&tlmm 89 0x00>; + synaptics,irq-gpio = <&tlmm 125 0x2008>; + synaptics,button-map = <139 102 158>; + synaptics,disable-gpios; + /* Underlying clocks used by secure touch */ + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup6_i2c_apps_clk>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 2 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + + gp_switch_gpio { + label = "gp_switch_gpio"; + pinctrl-0 = <&gp_switch_active>; + pinctrl-1 = <&gp_switch_suspend>; + gpios = <&tlmm 127 0x1>; + linux,input-type = <1>; + linux,code = <158>; /* By default mapped to BACK */ + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; + + /* + * vph_pwr_vreg represents the unregulated battery voltage supply + * VPH_PWR that is present whenever the device is powered on. + */ + vph_pwr_vreg: vph_pwr_vreg { + compatible = "regulator-fixed"; + regulator-name = "vph_pwr"; + status = "ok"; + regulator-always-on; + }; + + + sound { + status = "disabled"; + }; + + sound-9335 { + qcom,model = "msm8996-tasha-db-snd-card"; + + qcom,audio-routing = + "RX_BIAS", "MCLK", + "AMIC1", "MIC BIAS3", + "MIC BIAS3", "Analog Mic4", + "AMIC2", "MIC BIAS2", + "MIC BIAS2", "Headset Mic", + "AMIC3", "MIC BIAS2", + "MIC BIAS2", "ANCLeft Headset Mic", + "AMIC4", "MIC BIAS2", + "MIC BIAS2", "ANCRight Headset Mic", + "AMIC5", "MIC BIAS3", + "MIC BIAS3", "Analog Mic6", + "AMIC6", "MIC BIAS4", + "MIC BIAS4", "Analog Mic7", + "DMIC0", "MIC BIAS1", + "MIC BIAS1", "Digital Mic0", + "DMIC1", "MIC BIAS3", + "MIC BIAS3", "Digital Mic1", + "DMIC2", "MIC BIAS4", + "MIC BIAS4", "Digital Mic2", + "DMIC3", "MIC BIAS1", + "MIC BIAS1", "Digital Mic3", + "DMIC4", "MIC BIAS3", + "MIC BIAS3", "Digital Mic4", + "DMIC5", "MIC BIAS4", + "MIC BIAS4", "Digital Mic5"; + + qcom,hdmi-audio-rx; + asoc-codec = <&stub_codec>, <&hdmi_audio>; + asoc-codec-names = "msm-stub-codec.1", + "msm-hdmi-audio-codec-rx"; + }; + + usb_detect { + compatible = "qcom,gpio-usbdetect"; + interrupt-parent = <&spmi_bus>; + interrupts = <0x0 0xd5 0x0>; /* PM8994 GPIO22 */ + interrupt-names = "vbus_det_irq"; + vin-supply = <&vph_pwr_vreg>; + }; + + spi@7575000 { /* BLSP1 QUP1 */ + status = "disabled"; + }; +}; + +&spmi_bus { + qcom,pm8994@1 { + pwm@b100 { + qcom,lpg-dtest-line = <4>; + qcom,dtest-output = <1>; + status = "okay"; + }; + }; +}; + +&pm8994_gpios { + gpio@c100 { /* GPIO 2 - KYPD_VOLP_N */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c300 { /* GPIO 4 - BL1_PWM */ + qcom,mode = <1>; + qcom,pull = <1>; + qcom,vin-sel = <2>; + qcom,src-sel = <4>; + status = "okay"; + }; + + gpio@c400 { /* GPIO 5 - BL0_PWM */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <1>; /* PULL DOWN */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <7>; /* LPG4 */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c600 { /* GPIO 7 */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c700 { /* GPIO 8 - WLAN_EN */ + qcom,mode = <1>; /* Digital output*/ + qcom,out-strength = <2>;/* QPNP_PIN_OUT_STRENGTH_MED */ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c900 { /* GPIO 10 */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@ca00 { /* GPIO 11 - USB enb1 (otg switch) */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <1>; /* PULL DOWN */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@cc00 { /* GPIO 13 */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@ce00 { /* GPIO 15 - DIVCLK1 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@cf00 { /* GPIO 16 - DIVCLK2 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d000 { /* GPIO 17 - DIVCLK3 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d100 { /* GPIO 18 - Rome Sleep Clock */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output low initially */ + qcom,vin-sel = <2>; /* VIN 2 */ + qcom,src-sel = <3>; /* Function 2 */ + qcom,out-strength = <2>; /* Medium */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d200 { /* GPIO 19 - Rome BT Reset */ + qcom,mode = <1>; /* Digital output*/ + qcom,out-strength = <2>; /* QPNP_PIN_OUT_STRENGTH_MED */ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d500 { /* GPIO 22 - USB1 VBUS detect */ + qcom,mode = <0>; /* Digital Input*/ + qcom,pull = <5>; /* No pull */ + qcom,vin-sel = <2>; /* 1.8 V */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&pmi8994_haptics { + status = "okay"; +}; + +&blsp1_uart2 { + status = "ok"; +}; + +&slim_msm { + tasha_codec { + qcom,cdc-micbias2-headset-only; + qcom,cdc-micbias1-ext-cap; + qcom,cdc-micbias2-ext-cap; + qcom,cdc-micbias3-ext-cap; + qcom,cdc-micbias4-ext-cap; + }; +}; + +&cam_sensor_mclk0_active { /* MCLK0 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk0_suspend { /* MCLK0 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk1_active { /* MCLK1 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk1_suspend { /* MCLK1 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk2_active { /* MCLK2 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk2_suspend { /* MCLK2 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&wil6210 { + status = "ok"; + /delete-property/ qcom,wigig-en; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8096-sbc.dtsi new file mode 100644 index 000000000000..098a524ca3cb --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-sbc.dtsi @@ -0,0 +1,783 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8996-pinctrl.dtsi" +#include "apq8096-camera-sensor-sbc.dtsi" + +/ { + bluetooth: bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-core-supply = <&vph_pwr_vreg>; + qca,bt-vdd-pa-supply = <&vph_pwr_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&vph_pwr_vreg>; + qca,bt-chip-pwd-voltage-level = <1300000 1300000>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&ufs_ice { + status = "ok"; +}; + +&ufsphy1 { + status = "ok"; +}; + +&ufs1 { + status = "ok"; +}; + +&uartblsp2dm1 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <110 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 + 96000000 192000000 384000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on + &sdc2_cd_on_sbc>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off + &sdc2_cd_off_sbc>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 + 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + cd-gpios = <&tlmm 38 0x1>; + + status = "ok"; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x88>; + qcom,thermal-node; + }; +}; + +&mdss_hdmi_tx { + pinctrl-names = "hdmi_hpd_active", "hdmi_ddc_active", "hdmi_cec_active", + "hdmi_active", "hdmi_sleep"; + pinctrl-0 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; + pinctrl-1 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_suspend>; + pinctrl-2 = <&mdss_hdmi_hpd_active &mdss_hdmi_cec_active + &mdss_hdmi_ddc_suspend>; + pinctrl-3 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_active>; + pinctrl-4 = <&mdss_hdmi_hpd_suspend &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; +}; + +&pmi8994_vadc { + chan@0 { + label = "usbin"; + reg = <0>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@1 { + label = "dcin"; + reg = <1>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@43 { + label = "usb_dp"; + reg = <0x43>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@44 { + label = "usb_dm"; + reg = <0x44>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; +}; + +#include "msm8996-mdss-panels.dtsi" + +&dsi_hx8379a_fwvga_truly_vid { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <50>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-pwm-gpio = <&pm8994_gpios 5 0>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "single_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_hx8379a_fwvga_truly_vid>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active &mdss_disp_bkl_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend &mdss_disp_bkl_suspend>; + qcom,platform-te-gpio = <&tlmm 10 0>; + qcom,platform-reset-gpio = <&tlmm 8 0>; +}; + +&mdss_dsi1 { + status = "disabled"; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&ibb_regulator { + qcom,qpnp-ibb-discharge-resistor = <32>; +}; + +&rpm_bus { + rpm-regulator-bstb { + status = "disabled"; + regulator-bst { + status = "disabled"; + }; + }; + + rpm-regulator-ldoa22 { + pm8994_l22: regulator-l22 { + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + qcom,init-voltage = <3000000>; + }; + }; +}; + +&pmi8994_charger { + /delete-property/ otg-parent-supply; + qcom,charging-disabled; + smbcharger_charger_otg { + parent-supply = <&pmi8994_boost_5v>; + }; +}; + +&pmi8994_fg { + status = "disabled"; +}; + +&pmi8994_charger { + status = "disabled"; +}; + +&usb_otg_switch { + gpio = <&pm8994_gpios 11 0>; + enable-active-high; + status = "ok"; +}; + +&usb3 { + status = "disabled"; + qcom,charging-disabled; + vbus_dwc3-supply = <&usb_otg_switch>; + qcom,ext-hub-reset-gpio = <&tlmm 103 0>; + qcom,disable-host-mode-pm; + dwc3@6a00000{ + dr_mode = "host"; + }; +}; + +&usb2s { + status = "ok"; + qcom,charging-disabled; + vbus_dwc3-supply = <&vph_pwr_vreg>; + qcom,usbin-vadc = <&pmi8994_vadc>; + vdda33-supply = <&pm8994_l24>; +}; + +&usb_nop_phy { + status = "ok"; +}; + +&qusb_phy1 { + status = "ok"; +}; + +&rome_vreg { + status = "disabled"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2 */ + qcom,mode = <0>; /* DIGITAL INPUT */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; + + mpp@a300 { /* MPP 4 */ + qcom,mode = <0>; /* DIGITAL INPUT */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + + +&pmi8994_gpios { + gpio@c100 { /* GPIO 2 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c200 { /* GPIO 3 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c500 { /* GPIO 6 USB2_VBUS_DET*/ + qcom,mode = <0>; /* DIGITAL INPUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; +}; + +&pmi8994_mpps { + mpp@a100 { /* MPP 2 */ + /* USER LED4 */ + qcom,mode = <0>; /* DIGITAL INPUT */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&soc { + qcom,cnss { + wlan-bootstrap-gpio = <&tlmm 46 0>; + wlan-en-gpio = <&pm8994_gpios 8 0>; + vdd-wlan-io-supply = <&pm8994_s4>; + // removing unneeded regulators + /delete-property/ vdd-wlan-supply; + /delete-property/ vdd-wlan-xtal-supply; + /delete-property/ vdd-wlan-core-supply; + }; + + i2c@75ba000 { + synaptics@20 { + compatible = "synaptics,dsx"; + reg = <0x20>; + interrupt-parent = <&tlmm>; + interrupts = <125 0x2008>; + vdd-supply = <&vph_pwr_vreg>; + avdd-supply = <&vph_pwr_vreg>; + pinctrl-names = "pmx_ts_active", "pmx_ts_suspend"; + pinctrl-0 = <&ts_active_sbc>; + pinctrl-1 = <&ts_suspend_sbc>; + synaptics,display-coords = <0 0 480 854>; + synaptics,panel-coords = <0 0 480 854>; + synaptics,reset-gpio = <&tlmm 29 0x00>; + synaptics,irq-gpio = <&tlmm 125 0x2008>; + synaptics,button-map = <139 102 158>; + synaptics,disable-gpios; + /* Underlying clocks used by secure touch */ + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup6_i2c_apps_clk>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 2 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; + + /* + * vph_pwr_vreg represents the unregulated battery voltage supply + * VPH_PWR that is present whenever the device is powered on. + */ + vph_pwr_vreg: vph_pwr_vreg { + compatible = "regulator-fixed"; + regulator-name = "vph_pwr"; + status = "ok"; + regulator-always-on; + }; + + + sound { + status = "disabled"; + }; + + sound-9335 { + qcom,model = "msm8996-tasha-db-snd-card"; + + qcom,audio-routing = + "RX_BIAS", "MCLK", + "AMIC1", "MIC BIAS3", + "MIC BIAS3", "Analog Mic4", + "AMIC2", "MIC BIAS2", + "MIC BIAS2", "Headset Mic", + "AMIC3", "MIC BIAS2", + "MIC BIAS2", "ANCLeft Headset Mic", + "AMIC4", "MIC BIAS2", + "MIC BIAS2", "ANCRight Headset Mic", + "AMIC5", "MIC BIAS3", + "MIC BIAS3", "Analog Mic6", + "AMIC6", "MIC BIAS4", + "MIC BIAS4", "Analog Mic7", + "DMIC0", "MIC BIAS1", + "MIC BIAS1", "Digital Mic0", + "DMIC1", "MIC BIAS3", + "MIC BIAS3", "Digital Mic1", + "DMIC2", "MIC BIAS4", + "MIC BIAS4", "Digital Mic2", + "DMIC3", "MIC BIAS1", + "MIC BIAS1", "Digital Mic3", + "DMIC4", "MIC BIAS3", + "MIC BIAS3", "Digital Mic4", + "DMIC5", "MIC BIAS4", + "MIC BIAS4", "Digital Mic5"; + + qcom,hdmi-audio-rx; + asoc-codec = <&stub_codec>, <&hdmi_audio>; + asoc-codec-names = "msm-stub-codec.1", + "msm-hdmi-audio-codec-rx"; + }; + + usb_detect { + compatible = "qcom,gpio-usbdetect"; + interrupt-parent = <&spmi_bus>; + interrupts = <0x2 0xc5 0x0>; /* PMI8994 GPIO 6 */ + interrupt-names = "vbus_det_irq"; + vin-supply = <&vph_pwr_vreg>; + }; + + spi@7575000 { /* BLSP1 QUP1 */ + status = "disabled"; + }; +}; + +&spmi_bus { + qcom,pm8994@1 { + pwm@b100 { + qcom,lpg-dtest-line = <4>; + qcom,dtest-output = <1>; + status = "okay"; + }; + }; +}; + +&pm8994_gpios { + gpio@c100 { /* GPIO 2 - KYPD_VOLP_N */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c300 { /* GPIO 4 - BL1_PWM */ + qcom,mode = <1>; + qcom,pull = <1>; + qcom,vin-sel = <2>; + qcom,src-sel = <4>; + status = "okay"; + }; + + gpio@c400 { /* GPIO 5 - BL0_PWM */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <1>; /* PULL DOWN */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <7>; /* LPG4 */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c700 { /* GPIO 8 - WLAN_EN */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@ca00 { /* GPIO 11 - USB enb1 (otg switch) */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <1>; /* PULL DOWN */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@ce00 { /* GPIO 15 - DIVCLK1 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@cf00 { /* GPIO 16 - DIVCLK2 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d000 { /* GPIO 17 - DIVCLK3 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d100 { /* GPIO 18 - Rome Sleep Clock */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output low initially */ + qcom,vin-sel = <2>; /* VIN 2 */ + qcom,src-sel = <3>; /* Function 2 */ + qcom,out-strength = <2>; /* Medium */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d200 { /* GPIO 19 - Rome BT Reset */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d500 { /* GPIO 22 - USB1 VBUS detect */ + qcom,mode = <0>; /* Digital Input*/ + qcom,pull = <5>; /* No pull */ + qcom,vin-sel = <2>; /* 1.8 V */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&pmi8994_haptics { + status = "okay"; +}; + +&blsp1_uart2 { + status = "ok"; +}; + +&slim_msm { + tasha_codec { + qcom,cdc-micbias2-headset-only; + qcom,cdc-micbias1-ext-cap; + qcom,cdc-micbias2-ext-cap; + qcom,cdc-micbias3-ext-cap; + qcom,cdc-micbias4-ext-cap; + }; +}; + +&cam_sensor_mclk0_active { /* MCLK0 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk0_suspend { /* MCLK0 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk1_active { /* MCLK1 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk1_suspend { /* MCLK1 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk2_active { /* MCLK2 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; + +&cam_sensor_mclk2_suspend { /* MCLK2 */ + config { + drive-strength = <8>; /* 8 MA */ + }; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v2-auto-dragonboard.dts b/arch/arm64/boot/dts/qcom/apq8096-v2-auto-dragonboard.dts new file mode 100644 index 000000000000..11eb24c215c2 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v2-auto-dragonboard.dts @@ -0,0 +1,25 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v2.dtsi" +#include "apq8096-auto-dragonboard.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ8096v2.1 + PMI8994 DragonBoard"; + compatible = "qcom,apq8096-dragonboard", "qcom,msm8996", + "qcom,apq8096", "qcom,dragonboard"; + qcom,msm-id = <246 0x20001>, <291 0x20001>; + qcom,board-id = <10 1>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v2-dragonboard.dts b/arch/arm64/boot/dts/qcom/apq8096-v2-dragonboard.dts new file mode 100644 index 000000000000..c3bdcea982f4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v2-dragonboard.dts @@ -0,0 +1,26 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v2.dtsi" +#include "apq8096-dragonboard.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ8096v2.1 + PMI8994 DragonBoard"; + compatible = "qcom,apq8096-dragonboard", "qcom,msm8996", + "qcom,apq8096", "qcom,dragonboard"; + qcom,msm-id = <246 0x20001>, <291 0x20001>; + qcom,board-id = <10 0>; +}; + diff --git a/arch/arm64/boot/dts/qcom/apq8096-v2-liquid.dts b/arch/arm64/boot/dts/qcom/apq8096-v2-liquid.dts new file mode 100644 index 000000000000..b6eddb01ee3e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v2-liquid.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v2.dtsi" +#include "msm8996-liquid.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v2 LiQUID"; + compatible = "qcom,apq8096-liquid", "qcom,apq8096", "qcom,liquid"; + qcom,board-id = <9 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-cdp.dts new file mode 100644 index 000000000000..1277731b07a9 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v2.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v2 + PMI8994 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-mtp.dts b/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-mtp.dts new file mode 100644 index 000000000000..1d85af130f48 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v2.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v2 + PMI8994 MTP"; + compatible = "qcom,apq8096-mtp", "qcom,apq8096", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-pm8004-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-pm8004-cdp.dts new file mode 100644 index 000000000000..e956240cc963 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-pm8004-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "apq8096-v2.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v2 + PMI8994 + PM8004 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-pm8004-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-pm8004-pmk8001-cdp.dts new file mode 100644 index 000000000000..113aa0873923 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-pm8004-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "apq8096-v2.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v2 + PMI8994 + PM8004 + PMK8001 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-pmk8001-cdp.dts new file mode 100644 index 000000000000..c291921d46e8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v2-pmi8994-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "apq8096-v2.dtsi" +#include "msm8996-pm8994-pmi8994-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v2 + PMI8994 + PMK8001 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v2.dtsi b/arch/arm64/boot/dts/qcom/apq8096-v2.dtsi new file mode 100644 index 000000000000..2199c9061ceb --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v2.dtsi @@ -0,0 +1,24 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * As a general rule, only version-specific property overrides should be placed + * inside this file. Common device definitions should be placed inside the + * msm8996.dtsi file. + */ + +#include "msm8996-v2.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v2"; + qcom,msm-id = <291 0x20001>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-auto-dragonboard.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-auto-dragonboard.dts new file mode 100644 index 000000000000..75a9c6a6dd13 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-auto-dragonboard.dts @@ -0,0 +1,25 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "apq8096-auto-dragonboard.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ8096v3 + PMI8994 DragonBoard"; + compatible = "qcom,apq8096-dragonboard", "qcom,msm8996", + "qcom,apq8096", "qcom,dragonboard"; + qcom,msm-id = <246 0x30000>, <291 0x30000>; + qcom,board-id = <10 1>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-dragonboard.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-dragonboard.dts new file mode 100644 index 000000000000..b8df40d64808 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-dragonboard.dts @@ -0,0 +1,27 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "apq8096-dragonboard.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ8096v3 + PMI8994 DragonBoard"; + compatible = "qcom,apq8096-dragonboard", "qcom,msm8996", + "qcom,apq8096", "qcom,dragonboard"; + qcom,msm-id = <246 0x30000>, <291 0x30000>, + <246 0x30001>, <291 0x30001>; + qcom,board-id = <10 0>; +}; + diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-liquid.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-liquid.dts new file mode 100644 index 000000000000..6f175fffb005 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-liquid.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm8996-liquid.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 LiQUID"; + compatible = "qcom,apq8096-liquid", "qcom,apq8096", "qcom,liquid"; + qcom,board-id = <9 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-cdp.dts new file mode 100644 index 000000000000..bb1962c46f08 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8994 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-mdm9x55-i2s-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-mdm9x55-i2s-cdp.dts new file mode 100644 index 000000000000..ce46b0224731 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-mdm9x55-i2s-cdp.dts @@ -0,0 +1,66 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm8996-cdp.dtsi" +#include "external-soc.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8994, MDM9x55 I2S CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 2>; +}; + +&pil_modem { + status = "disabled"; +}; + +&pm8994_l9 { + regulator-always-on; +}; + +&pm8994_l10 { + regulator-always-on; +}; + +&mdm3 { + pinctrl-names = "mdm_active", "mdm_suspend"; + pinctrl-0 = <&ap2mdm_active &mdm2ap_active>; + pinctrl-1 = <&ap2mdm_sleep &mdm2ap_sleep>; + interrupt-map = <0 &tlmm 108 0x3 + 1 &tlmm 107 0x3 + 2 &tlmm 112 0x3>; + qcom,mdm2ap-errfatal-gpio = <&tlmm 108 0x00>; + qcom,ap2mdm-errfatal-gpio = <&tlmm 109 0x00>; + qcom,mdm2ap-status-gpio = <&tlmm 106 0x00>; + qcom,ap2mdm-status-gpio = <&tlmm 107 0x00>; + qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 0>; + qcom,ap2mdm-vddmin-gpio = <&tlmm 111 0x00>; + qcom,mdm2ap-vddmin-gpio = <&tlmm 112 0x00>; + status = "ok"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2*/ + /* MDM PON conrol*/ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-mdm9x55-i2s-mtp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-mdm9x55-i2s-mtp.dts new file mode 100644 index 000000000000..56d72694d5d1 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-mdm9x55-i2s-mtp.dts @@ -0,0 +1,65 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm8996-mtp.dtsi" +#include "external-soc.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8994, MDM9x55 I2S MTP"; + compatible = "qcom,apq8096-mtp", "qcom,apq8096", "qcom,mtp"; + qcom,board-id = <8 1>; +}; + +&pil_modem { + status = "disabled"; +}; + +&pm8994_l9 { + regulator-always-on; +}; + +&pm8994_l10 { + regulator-always-on; +}; +&mdm3 { + pinctrl-names = "mdm_active", "mdm_suspend"; + pinctrl-0 = <&ap2mdm_active &mdm2ap_active>; + pinctrl-1 = <&ap2mdm_sleep &mdm2ap_sleep>; + interrupt-map = <0 &tlmm 108 0x3 + 1 &tlmm 107 0x3 + 2 &tlmm 112 0x3>; + qcom,mdm2ap-errfatal-gpio = <&tlmm 108 0x00>; + qcom,ap2mdm-errfatal-gpio = <&tlmm 109 0x00>; + qcom,mdm2ap-status-gpio = <&tlmm 106 0x00>; + qcom,ap2mdm-status-gpio = <&tlmm 107 0x00>; + qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 0>; + qcom,ap2mdm-vddmin-gpio = <&tlmm 111 0x00>; + qcom,mdm2ap-vddmin-gpio = <&tlmm 112 0x00>; + status = "ok"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2*/ + /* MDM PON conrol*/ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-mdm9x55-slimbus-mtp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-mdm9x55-slimbus-mtp.dts new file mode 100644 index 000000000000..2ab8030004ef --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-mdm9x55-slimbus-mtp.dts @@ -0,0 +1,67 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm8996-mtp.dtsi" +#include "external-soc.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8994, MDM9x55 Slimbus MTP"; + compatible = "qcom,apq8096-mtp", "qcom,apq8096", "qcom,mtp"; + qcom,board-id = <8 2>; +}; + +&pil_modem { + status = "disabled"; +}; + +&pm8994_l9 { + regulator-always-on; +}; + +&pm8994_l10 { + regulator-always-on; +}; + +&mdm3 { + pinctrl-names = "mdm_active", "mdm_suspend"; + pinctrl-0 = <&ap2mdm_active &mdm2ap_active>; + pinctrl-1 = <&ap2mdm_sleep &mdm2ap_sleep>; + interrupt-map = <0 &tlmm 108 0x3 + 1 &tlmm 107 0x3 + 2 &tlmm 112 0x3>; + qcom,mdm2ap-errfatal-gpio = <&tlmm 108 0x00>; + qcom,ap2mdm-errfatal-gpio = <&tlmm 109 0x00>; + qcom,mdm2ap-status-gpio = <&tlmm 106 0x00>; + qcom,ap2mdm-status-gpio = <&tlmm 107 0x00>; + qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 0>; + qcom,ap2mdm-vddmin-gpio = <&tlmm 111 0x00>; + qcom,mdm2ap-vddmin-gpio = <&tlmm 112 0x00>; + status = "ok"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2*/ + /* MDM PON conrol*/ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-mtp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-mtp.dts new file mode 100644 index 000000000000..0417c5bc1ef4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8994 MTP"; + compatible = "qcom,apq8096-mtp", "qcom,apq8096", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pm8004-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pm8004-cdp.dts new file mode 100644 index 000000000000..f08e5b675e27 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pm8004-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8994 + PM8004 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pm8004-mdm9x55-i2s-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pm8004-mdm9x55-i2s-cdp.dts new file mode 100644 index 000000000000..696e37361983 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pm8004-mdm9x55-i2s-cdp.dts @@ -0,0 +1,67 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004.dtsi" +#include "msm8996-cdp.dtsi" +#include "external-soc.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8994 + PM8004, MDM9x55 I2S CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 2>; +}; + +&pil_modem { + status = "disabled"; +}; + +&pm8994_l9 { + regulator-always-on; +}; + +&pm8994_l10 { + regulator-always-on; +}; + +&mdm3 { + pinctrl-names = "mdm_active", "mdm_suspend"; + pinctrl-0 = <&ap2mdm_active &mdm2ap_active>; + pinctrl-1 = <&ap2mdm_sleep &mdm2ap_sleep>; + interrupt-map = <0 &tlmm 108 0x3 + 1 &tlmm 107 0x3 + 2 &tlmm 112 0x3>; + qcom,mdm2ap-errfatal-gpio = <&tlmm 108 0x00>; + qcom,ap2mdm-errfatal-gpio = <&tlmm 109 0x00>; + qcom,mdm2ap-status-gpio = <&tlmm 106 0x00>; + qcom,ap2mdm-status-gpio = <&tlmm 107 0x00>; + qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 0>; + qcom,ap2mdm-vddmin-gpio = <&tlmm 111 0x00>; + qcom,mdm2ap-vddmin-gpio = <&tlmm 112 0x00>; + status = "ok"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2*/ + /* MDM PON conrol*/ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pm8004-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pm8004-pmk8001-cdp.dts new file mode 100644 index 000000000000..639b073820a0 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pm8004-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8994 + PM8004 + PMK8001 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pm8004-pmk8001-mdm9x55-i2s-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pm8004-pmk8001-mdm9x55-i2s-cdp.dts new file mode 100644 index 000000000000..4afe4d4f19f5 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pm8004-pmk8001-mdm9x55-i2s-cdp.dts @@ -0,0 +1,67 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" +#include "external-soc.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8994 + PM8004 + PMK8001, MDM9x55 I2S CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 2>; +}; + +&pil_modem { + status = "disabled"; +}; + +&pm8994_l9 { + regulator-always-on; +}; + +&pm8994_l10 { + regulator-always-on; +}; + +&mdm3 { + pinctrl-names = "mdm_active", "mdm_suspend"; + pinctrl-0 = <&ap2mdm_active &mdm2ap_active>; + pinctrl-1 = <&ap2mdm_sleep &mdm2ap_sleep>; + interrupt-map = <0 &tlmm 108 0x3 + 1 &tlmm 107 0x3 + 2 &tlmm 112 0x3>; + qcom,mdm2ap-errfatal-gpio = <&tlmm 108 0x00>; + qcom,ap2mdm-errfatal-gpio = <&tlmm 109 0x00>; + qcom,mdm2ap-status-gpio = <&tlmm 106 0x00>; + qcom,ap2mdm-status-gpio = <&tlmm 107 0x00>; + qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 0>; + qcom,ap2mdm-vddmin-gpio = <&tlmm 111 0x00>; + qcom,mdm2ap-vddmin-gpio = <&tlmm 112 0x00>; + status = "ok"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2*/ + /* MDM PON conrol*/ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pmk8001-cdp.dts new file mode 100644 index 000000000000..ef8b5f17ba6e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm8996-pm8994-pmi8994-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8994 + PMK8001 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pmk8001-mdm9x55-i2s-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pmk8001-mdm9x55-i2s-cdp.dts new file mode 100644 index 000000000000..f3916b70524a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8994-pmk8001-mdm9x55-i2s-cdp.dts @@ -0,0 +1,67 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm8996-pm8994-pmi8994-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" +#include "external-soc.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8994 + PMK8001, MDM9x55 I2S CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 2>; +}; + +&pil_modem { + status = "disabled"; +}; + +&pm8994_l9 { + regulator-always-on; +}; + +&pm8994_l10 { + regulator-always-on; +}; + +&mdm3 { + pinctrl-names = "mdm_active", "mdm_suspend"; + pinctrl-0 = <&ap2mdm_active &mdm2ap_active>; + pinctrl-1 = <&ap2mdm_sleep &mdm2ap_sleep>; + interrupt-map = <0 &tlmm 108 0x3 + 1 &tlmm 107 0x3 + 2 &tlmm 112 0x3>; + qcom,mdm2ap-errfatal-gpio = <&tlmm 108 0x00>; + qcom,ap2mdm-errfatal-gpio = <&tlmm 109 0x00>; + qcom,mdm2ap-status-gpio = <&tlmm 106 0x00>; + qcom,ap2mdm-status-gpio = <&tlmm 107 0x00>; + qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 0>; + qcom,ap2mdm-vddmin-gpio = <&tlmm 111 0x00>; + qcom,mdm2ap-vddmin-gpio = <&tlmm 112 0x00>; + status = "ok"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2*/ + /* MDM PON conrol*/ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-cdp.dts new file mode 100644 index 000000000000..923fa1573a5b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-cdp.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm-pmi8996.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8996 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-dragonboard.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-dragonboard.dts new file mode 100644 index 000000000000..da45de0cc1ec --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-dragonboard.dts @@ -0,0 +1,28 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm-pmi8996.dtsi" +#include "apq8096-dragonboard.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ8096v3 + PMI8996 DragonBoard"; + compatible = "qcom,apq8096-dragonboard", "qcom,msm8996", + "qcom,apq8096", "qcom,dragonboard"; + qcom,msm-id = <246 0x30000>, <291 0x30000>, + <246 0x30001>, <291 0x30001>; + qcom,board-id = <10 0>; +}; + diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-mdm9x55-i2s-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-mdm9x55-i2s-cdp.dts new file mode 100644 index 000000000000..d6c927625b66 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-mdm9x55-i2s-cdp.dts @@ -0,0 +1,67 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm-pmi8996.dtsi" +#include "msm8996-cdp.dtsi" +#include "external-soc.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8996, MDM9x55 I2S CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 2>; +}; + +&pil_modem { + status = "disabled"; +}; + +&pm8994_l9 { + regulator-always-on; +}; + +&pm8994_l10 { + regulator-always-on; +}; + +&mdm3 { + pinctrl-names = "mdm_active", "mdm_suspend"; + pinctrl-0 = <&ap2mdm_active &mdm2ap_active>; + pinctrl-1 = <&ap2mdm_sleep &mdm2ap_sleep>; + interrupt-map = <0 &tlmm 108 0x3 + 1 &tlmm 107 0x3 + 2 &tlmm 112 0x3>; + qcom,mdm2ap-errfatal-gpio = <&tlmm 108 0x00>; + qcom,ap2mdm-errfatal-gpio = <&tlmm 109 0x00>; + qcom,mdm2ap-status-gpio = <&tlmm 106 0x00>; + qcom,ap2mdm-status-gpio = <&tlmm 107 0x00>; + qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 0>; + qcom,ap2mdm-vddmin-gpio = <&tlmm 111 0x00>; + qcom,mdm2ap-vddmin-gpio = <&tlmm 112 0x00>; + status = "ok"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2*/ + /* MDM PON conrol*/ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-mdm9x55-i2s-mtp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-mdm9x55-i2s-mtp.dts new file mode 100644 index 000000000000..6869b19876a8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-mdm9x55-i2s-mtp.dts @@ -0,0 +1,67 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm-pmi8996.dtsi" +#include "msm8996-mtp.dtsi" +#include "external-soc.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8996, MDM9x55 I2S MTP"; + compatible = "qcom,apq8096-mtp", "qcom,apq8096", "qcom,mtp"; + qcom,board-id = <8 1>; +}; + +&pil_modem { + status = "disabled"; +}; + +&pm8994_l9 { + regulator-always-on; +}; + +&pm8994_l10 { + regulator-always-on; +}; + +&mdm3 { + pinctrl-names = "mdm_active", "mdm_suspend"; + pinctrl-0 = <&ap2mdm_active &mdm2ap_active>; + pinctrl-1 = <&ap2mdm_sleep &mdm2ap_sleep>; + interrupt-map = <0 &tlmm 108 0x3 + 1 &tlmm 107 0x3 + 2 &tlmm 112 0x3>; + qcom,mdm2ap-errfatal-gpio = <&tlmm 108 0x00>; + qcom,ap2mdm-errfatal-gpio = <&tlmm 109 0x00>; + qcom,mdm2ap-status-gpio = <&tlmm 106 0x00>; + qcom,ap2mdm-status-gpio = <&tlmm 107 0x00>; + qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 0>; + qcom,ap2mdm-vddmin-gpio = <&tlmm 111 0x00>; + qcom,mdm2ap-vddmin-gpio = <&tlmm 112 0x00>; + status = "ok"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2*/ + /* MDM PON conrol*/ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-mdm9x55-slimbus-mtp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-mdm9x55-slimbus-mtp.dts new file mode 100644 index 000000000000..b0c1b1a50467 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-mdm9x55-slimbus-mtp.dts @@ -0,0 +1,68 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm-pmi8996.dtsi" +#include "msm8996-mtp.dtsi" +#include "external-soc.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8996, MDM9x55 Slimbus MTP"; + compatible = "qcom,apq8096-mtp", "qcom,apq8096", "qcom,mtp"; + qcom,board-id = <8 2>; +}; + +&pil_modem { + status = "disabled"; +}; + +&pm8994_l9 { + regulator-always-on; +}; + +&pm8994_l10 { + regulator-always-on; +}; + +&mdm3 { + pinctrl-names = "mdm_active", "mdm_suspend"; + pinctrl-0 = <&ap2mdm_active &mdm2ap_active>; + pinctrl-1 = <&ap2mdm_sleep &mdm2ap_sleep>; + interrupt-map = <0 &tlmm 108 0x3 + 1 &tlmm 107 0x3 + 2 &tlmm 112 0x3>; + qcom,mdm2ap-errfatal-gpio = <&tlmm 108 0x00>; + qcom,ap2mdm-errfatal-gpio = <&tlmm 109 0x00>; + qcom,mdm2ap-status-gpio = <&tlmm 106 0x00>; + qcom,ap2mdm-status-gpio = <&tlmm 107 0x00>; + qcom,ap2mdm-soft-reset-gpio = <&pm8994_mpps 2 0>; + qcom,ap2mdm-vddmin-gpio = <&tlmm 111 0x00>; + qcom,mdm2ap-vddmin-gpio = <&tlmm 112 0x00>; + status = "ok"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2*/ + /* MDM PON conrol*/ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-mtp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-mtp.dts new file mode 100644 index 000000000000..712eedeae08e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-pmi8996-mtp.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm-pmi8996.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3 + PMI8996 MTP"; + compatible = "qcom,apq8096-mtp", "qcom,apq8096", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3-sbc.dts b/arch/arm64/boot/dts/qcom/apq8096-v3-sbc.dts new file mode 100644 index 000000000000..c37ebb8bc08e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3-sbc.dts @@ -0,0 +1,26 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.dtsi" +#include "msm-pmi8996.dtsi" +#include "apq8096-sbc.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ8096v3"; + compatible = "qcom,apq8096-sbc", "qcom,msm8996", + "qcom,apq8096", "qcom,sbc"; + qcom,board-id = <24 0>; +}; + diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3.0-dragonboard.dts b/arch/arm64/boot/dts/qcom/apq8096-v3.0-dragonboard.dts new file mode 100644 index 000000000000..9484d04d01e7 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3.0-dragonboard.dts @@ -0,0 +1,26 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.0.dtsi" +#include "apq8096-dragonboard.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ8096v3.0 + PMI8994 DragonBoard"; + compatible = "qcom,apq8096-dragonboard", "qcom,msm8996", + "qcom,apq8096", "qcom,dragonboard"; + qcom,msm-id = <246 0x30000>, <291 0x30000>; + qcom,board-id = <10 0>; +}; + diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3.0-liquid.dts b/arch/arm64/boot/dts/qcom/apq8096-v3.0-liquid.dts new file mode 100644 index 000000000000..bddd7de04646 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3.0-liquid.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.0.dtsi" +#include "msm8996-liquid.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3.0 LiQUID"; + compatible = "qcom,apq8096-liquid", "qcom,apq8096", "qcom,liquid"; + qcom,board-id = <9 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-cdp.dts new file mode 100644 index 000000000000..a812b98d01f6 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.0.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3.0 + PMI8994 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-mtp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-mtp.dts new file mode 100644 index 000000000000..91705183b023 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.0.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3.0 + PMI8994 MTP"; + compatible = "qcom,apq8096-mtp", "qcom,apq8096", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-pm8004-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-pm8004-cdp.dts new file mode 100644 index 000000000000..5d6e6ab74df4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-pm8004-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "apq8096-v3.0.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3.0 + PMI8994 + PM8004 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-pm8004-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-pm8004-pmk8001-cdp.dts new file mode 100644 index 000000000000..0414b24a4dd5 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-pm8004-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "apq8096-v3.0.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3.0 + PMI8994 + PM8004 + PMK8001 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-pmk8001-cdp.dts new file mode 100644 index 000000000000..e1b385873f9c --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8994-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "apq8096-v3.0.dtsi" +#include "msm8996-pm8994-pmi8994-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3.0 + PMI8994 + PMK8001 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8996-cdp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8996-cdp.dts new file mode 100644 index 000000000000..ce04cc836354 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8996-cdp.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.0.dtsi" +#include "msm-pmi8996.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3.0 + PMI8996 CDP"; + compatible = "qcom,apq8096-cdp", "qcom,apq8096", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8996-mtp.dts b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8996-mtp.dts new file mode 100644 index 000000000000..ac0a96bc2404 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3.0-pmi8996-mtp.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "apq8096-v3.0.dtsi" +#include "msm-pmi8996.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3.0 + PMI8996 MTP"; + compatible = "qcom,apq8096-mtp", "qcom,apq8096", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3.0.dtsi b/arch/arm64/boot/dts/qcom/apq8096-v3.0.dtsi new file mode 100644 index 000000000000..51c690f6a305 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3.0.dtsi @@ -0,0 +1,24 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * As a general rule, only version-specific property overrides should be placed + * inside this file. Common device definitions should be placed inside the + * msm8996.dtsi file. + */ + +#include "msm8996-v3.0.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3.0"; + qcom,msm-id = <291 0x30000>; +}; diff --git a/arch/arm64/boot/dts/qcom/apq8096-v3.dtsi b/arch/arm64/boot/dts/qcom/apq8096-v3.dtsi new file mode 100644 index 000000000000..7ec5d505ac8b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-v3.dtsi @@ -0,0 +1,24 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * As a general rule, only version-specific property overrides should be placed + * inside this file. Common device definitions should be placed inside the + * msm8996.dtsi file. + */ + +#include "msm8996-v3.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096 v3"; + qcom,msm-id = <291 0x30001>; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-ascent-3450mAh.dtsi b/arch/arm64/boot/dts/qcom/batterydata-ascent-3450mAh.dtsi new file mode 100644 index 000000000000..3eed42aca5bf --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-ascent-3450mAh.dtsi @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +qcom,ascent-3450mah { + /* #Ascent_860_82209_0000_3450mAh_averaged_MasterSlave_Sept28th2015*/ + qcom,max-voltage-uv = <4350000>; + qcom,nom-batt-capacity-mah = <3450>; + qcom,batt-id-kohm = <60>; + qcom,battery-beta = <3435>; + qcom,battery-type = "ascent_3450mah"; + qcom,chg-rslow-comp-c1 = <6834679>; + qcom,chg-rslow-comp-c2 = <20647220>; + qcom,chg-rs-to-rslow = <915002>; + qcom,chg-rslow-comp-thr = <0xD5>; + qcom,checksum = <0xE50C>; + qcom,fg-profile-data = [ + C5 83 25 77 + AB 7B CA 74 + 4C 83 7F 5B + EB 80 ED 8C + EA 81 61 9B + A6 BE 2B D0 + 55 0E D6 83 + 09 77 25 7B + 03 74 49 83 + CC 70 0C 70 + 0C 85 67 82 + E6 93 27 B5 + 61 C0 58 10 + 23 0D 50 59 + CE 6E 71 FD + CD 15 CC 3F + 1D 36 00 00 + B9 47 29 3B + 1D 2E 00 00 + 00 00 00 00 + 00 00 00 00 + D8 6A E7 69 + B3 7C 4E 7A + 7E 77 77 70 + 40 77 0D 73 + 22 76 96 6A + 71 65 20 B0 + 2C 97 63 12 + 64 A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 0C + ]; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-itech-3000mah-4200mv.dtsi b/arch/arm64/boot/dts/qcom/batterydata-itech-3000mah-4200mv.dtsi new file mode 100644 index 000000000000..374c5abfca66 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-itech-3000mah-4200mv.dtsi @@ -0,0 +1,56 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +qcom,itech-3000mah-4200mv { + /* #Itech_B00761LF_3000mAh_averaged_MasterSlave_Feb27th2015*/ + qcom,max-voltage-uv = <4200000>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <150>; + qcom,battery-beta = <3500>; + qcom,battery-type = "itech_3000mah_4200mv"; + qcom,checksum = <0x5194>; + qcom,fg-profile-data = [ + CD 83 23 77 + F1 7A 88 74 + 78 83 DB 7C + 10 90 29 96 + 29 82 9B 98 + DF B5 FF C0 + 58 18 F5 83 + 5F 7C C3 7B + 1A 75 57 83 + B3 61 0A 80 + 0B 8C 85 82 + 98 93 8A B5 + 6C C1 5E 11 + D5 0B B3 58 + FB 6A 71 FD + 27 46 A8 37 + AF 41 00 00 + 5F 46 E4 2B + 5E 34 00 00 + 00 00 00 00 + 00 00 00 00 + AF 71 DA 70 + 0B 76 8E 78 + A4 76 8B 69 + 9F 6C 14 78 + 77 75 60 63 + E2 75 4F C3 + 0F 66 58 13 + 54 A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 00 + ]; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-itech-3000mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-itech-3000mah.dtsi new file mode 100644 index 000000000000..1e2df9cff6b7 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-itech-3000mah.dtsi @@ -0,0 +1,59 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +qcom,itech-3000mah { + /* #Itech_B00826LF_3000mAh_Feb24th_Averaged*/ + qcom,max-voltage-uv = <4350000>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <100>; + qcom,battery-type = "itech_3000mah"; + qcom,chg-rslow-comp-c1 = <4365000>; + qcom,chg-rslow-comp-c2 = <8609000>; + qcom,chg-rslow-comp-thr = <0xBE>; + qcom,chg-rs-to-rslow = <761000>; + qcom,checksum = <0x0B7C>; + qcom,fg-profile-data = [ + F0 83 6B 7D + 66 81 EC 77 + 43 83 E3 5A + 7C 81 33 8D + E1 81 EC 98 + 7B B5 F8 BB + 5B 12 E2 83 + 4A 7C 63 80 + CF 75 50 83 + FD 5A 83 82 + E6 8E 12 82 + B6 9A 1A BE + BE CB 55 0E + 96 0B E0 5A + CE 6E 71 FD + 2A 31 7E 47 + CF 40 00 00 + DB 45 0F 32 + AF 31 00 00 + 00 00 00 00 + 00 00 00 00 + E3 6A 60 69 + 9E 6D 47 83 + 13 7C 23 70 + 0B 74 8F 80 + DB 75 17 68 + BA 75 BF B3 + 21 5B 69 B5 + 6C A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 0E + ]; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-liquid-7650-sanyo.dtsi b/arch/arm64/boot/dts/qcom/batterydata-liquid-7650-sanyo.dtsi new file mode 100644 index 000000000000..fc4e0907f750 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-liquid-7650-sanyo.dtsi @@ -0,0 +1,62 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +qcom,liquid8996_sanyo { + /* #Liquid8996_860_79873_ES00_7560mAh_averaged_MasterSlave_June4th2015*/ + qcom,max-voltage-uv = <4350000>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,nom-batt-capacity-mah = <7560>; + qcom,batt-id-kohm = <50>; + qcom,battery-beta = <3380>; + qcom,battery-type = "liquid8996_860_79873_es00_7560mah"; + qcom,chg-rslow-comp-c1 = <5647648>; + qcom,chg-rslow-comp-c2 = <14300640>; + qcom,chg-rs-to-rslow = <785202>; + qcom,chg-rslow-comp-thr = <0xCD>; + qcom,checksum = <0xE5C0>; + qcom,gui-version = "PMI8994GUI - 2.1.6.5"; + qcom,fg-profile-data = [ + EA 83 27 7D + 03 81 EE 76 + 3E 83 93 59 + 06 82 AD 8D + F1 81 36 93 + 6F AD 00 AB + 5C 14 2F 83 + EE 6B 8C 5D + 5B 69 14 83 + 8B 7B CC 8C + 94 88 0F 82 + C4 99 8F BC + 00 C9 77 14 + 8C 1D E8 58 + CE 6E E1 FA + F5 2A 8B 4D + CA 49 00 00 + 21 46 A3 33 + 55 3E 00 00 + 00 00 00 00 + 00 00 00 00 + 5A 6A D2 69 + 7B 66 29 89 + 60 7D B9 71 + 55 74 33 83 + EC 7C A8 70 + 4B 68 22 B8 + 29 C8 60 B8 + 5D A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 0C + ]; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-mtp-3000mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-mtp-3000mah.dtsi new file mode 100644 index 000000000000..198fbea2ef0a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-mtp-3000mah.dtsi @@ -0,0 +1,118 @@ +/* Copyright (c) 2013-2014, 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. + */ + +qcom,mtp-3000mah { + qcom,fcc-mah = <3000>; + qcom,default-rbatt-mohm = <113>; + qcom,max-voltage-uv = <4200000>; + qcom,rbatt-capacitive-mohm = <50>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <200000>; + qcom,batt-id-kohm = <300>; + qcom,battery-type = "mtp_3000mah"; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <3030 3033 3037 3035 3031>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4191 4188 4183 4179 4174>, + <4106 4125 4127 4125 4121>, + <4046 4082 4082 4080 4077>, + <3966 4038 4044 4040 4035>, + <3922 3983 3994 3998 3997>, + <3886 3949 3966 3966 3962>, + <3856 3908 3937 3935 3931>, + <3832 3875 3908 3907 3903>, + <3814 3847 3874 3878 3875>, + <3799 3826 3831 3832 3830>, + <3787 3807 3811 3811 3809>, + <3775 3793 3795 3795 3793>, + <3764 3782 3783 3783 3781>, + <3752 3775 3773 3772 3769>, + <3739 3768 3766 3762 3755>, + <3725 3756 3756 3747 3733>, + <3710 3732 3734 3725 3711>, + <3696 3707 3705 3697 3684>, + <3681 3695 3686 3678 3667>, + <3667 3690 3684 3676 3665>, + <3658 3688 3683 3675 3664>, + <3646 3685 3681 3674 3663>, + <3631 3682 3679 3673 3660>, + <3612 3677 3676 3669 3655>, + <3589 3667 3666 3660 3639>, + <3560 3643 3636 3630 3599>, + <3523 3600 3586 3581 3546>, + <3474 3537 3518 3516 3477>, + <3394 3446 3425 3427 3379>, + <3257 3306 3273 3283 3213>, + <3000 3000 3000 3000 3000>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>; + qcom,lut-data = <1025 208 100 85 80>, + <1025 208 100 85 80>, + <1032 225 103 87 81>, + <959 249 107 91 82>, + <954 249 109 92 84>, + <953 255 117 94 84>, + <957 230 123 98 87>, + <968 216 134 102 91>, + <983 212 138 112 95>, + <1002 213 103 89 82>, + <1030 215 100 86 81>, + <1066 219 101 89 83>, + <1115 224 104 92 85>, + <1182 234 106 94 86>, + <1263 246 108 92 84>, + <1357 257 107 87 81>, + <1464 261 102 85 80>, + <1564 256 101 84 80>, + <1637 268 100 84 80>, + <1580 276 102 87 81>, + <1617 285 104 87 82>, + <1670 298 107 91 82>, + <1725 315 108 92 83>, + <1785 338 112 92 83>, + <1850 361 111 91 82>, + <1921 378 108 89 84>, + <2000 394 112 92 87>, + <2119 430 121 99 94>, + <2795 497 144 114 104>, + <8769 1035 672 322 234>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 250 500 1000>; + qcom,lut-data = <3030 3033 3037>, + <1898 2943 2960>, + <1184 2855 2948>, + <209 2464 2921>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-palladium.dtsi b/arch/arm64/boot/dts/qcom/batterydata-palladium.dtsi new file mode 100644 index 000000000000..4c4435189256 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-palladium.dtsi @@ -0,0 +1,121 @@ +/* Copyright (c) 2013-2014, 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. + */ + +qcom,palladium-batterydata { + qcom,fcc-mah = <1500>; + qcom,default-rbatt-mohm = <210>; + qcom,rbatt-capacitive-mohm = <50>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,max-voltage-uv = <4200000>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <75>; + qcom,battery-type = "palladium_1500mah"; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <1467 1470 1473 1473 1470>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4175 4173 4167 4162 4157>, + <4097 4111 4112 4110 4107>, + <4039 4075 4072 4068 4064>, + <3963 4017 4025 4026 4025>, + <3920 3969 3984 3989 3988>, + <3887 3932 3957 3958 3955>, + <3856 3898 3929 3928 3925>, + <3830 3868 3900 3901 3898>, + <3808 3843 3858 3863 3862>, + <3793 3821 3827 3827 3827>, + <3779 3803 3807 3808 3807>, + <3768 3788 3792 3793 3792>, + <3757 3779 3780 3780 3779>, + <3746 3771 3772 3768 3768>, + <3734 3762 3765 3759 3749>, + <3722 3747 3753 3744 3730>, + <3707 3721 3731 3722 3709>, + <3693 3705 3704 3696 3683>, + <3678 3698 3687 3678 3667>, + <3664 3693 3683 3676 3665>, + <3656 3690 3682 3675 3664>, + <3646 3687 3681 3674 3662>, + <3634 3683 3680 3672 3661>, + <3618 3677 3676 3668 3656>, + <3599 3667 3667 3655 3639>, + <3573 3645 3638 3623 3603>, + <3541 3607 3591 3575 3554>, + <3496 3550 3528 3511 3490>, + <3428 3469 3445 3423 3400>, + <3312 3342 3308 3280 3250>, + <3000 3000 3000 3000 3000>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <909 216 100 85 84>, + <859 238 106 88 86>, + <860 237 105 88 86>, + <808 239 107 90 88>, + <801 234 111 94 90>, + <801 230 118 97 92>, + <801 224 123 100 95>, + <807 221 128 106 99>, + <818 221 111 101 97>, + <841 225 101 88 87>, + <870 229 101 88 87>, + <906 235 103 91 90>, + <950 243 106 93 93>, + <998 253 110 93 96>, + <1051 263 113 94 90>, + <1116 272 113 91 88>, + <1200 275 111 91 88>, + <1312 298 108 90 87>, + <1430 329 104 88 87>, + <1484 351 107 91 89>, + <1446 345 110 93 90>, + <1398 344 112 94 90>, + <1466 358 115 96 91>, + <1490 357 117 96 90>, + <1589 365 117 94 89>, + <1828 379 111 91 88>, + <2151 399 111 93 91>, + <2621 436 117 98 95>, + <3404 496 130 106 100>, + <8212 616 150 1906 134>, + <135251 124940 59087 49820 29672>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 250 500 1000>; + qcom,lut-data = <1470 1470 1473>, + <601 1406 1430>, + <89 1247 1414>, + <8 764 1338>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-4v2-1300mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-4v2-1300mah.dtsi new file mode 100644 index 000000000000..23ca26c9e970 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-4v2-1300mah.dtsi @@ -0,0 +1,106 @@ +/* Copyright (c) 2013, 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. + */ + +qcom,qrd-4v2-1300mah-data { + qcom,fcc-mah = <1300>; + qcom,default-rbatt-mohm = <172>; + qcom,rbatt-capacitive-mohm = <0>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,max-voltage-uv = <4200000>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <100>; + qcom,battery-type = "qrd_4v2_1300mah"; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <604 192 100 79 71>, + <605 192 100 79 71>, + <641 205 103 81 72>, + <641 221 108 84 75>, + <622 238 115 87 77>, + <612 254 123 92 79>, + <605 252 137 96 83>, + <607 219 154 104 87>, + <613 202 135 109 89>, + <626 200 106 90 77>, + <656 201 101 82 75>, + <684 204 100 84 77>, + <710 211 100 85 79>, + <747 224 106 89 82>, + <806 241 116 90 80>, + <905 260 119 87 77>, + <1046 291 113 87 77>, + <1309 329 116 90 79>, + <1476 300 126 97 83>, + <1598 311 127 98 84>, + <1771 323 130 99 85>, + <1984 342 136 101 86>, + <2438 368 140 101 86>, + <3381 388 137 100 84>, + <4913 414 141 99 86>, + <6979 468 155 104 90>, + <9968 565 192 113 98>, + <16163 833 350 140 120>, + <36511 6483 4872 472 1095>; + }; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <1343 1353 1408 1345 1342>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <4177 4174 4199 4167 4162>, + <4107 4112 4141 4109 4106>, + <4058 4064 4091 4061 4059>, + <3996 4015 4044 4017 4015>, + <3947 3975 4001 3978 3976>, + <3909 3939 3962 3943 3940>, + <3874 3901 3926 3911 3907>, + <3845 3858 3892 3882 3878>, + <3821 3826 3851 3849 3846>, + <3801 3804 3815 3810 3808>, + <3788 3789 3793 3789 3787>, + <3778 3780 3778 3776 3773>, + <3769 3776 3770 3767 3764>, + <3757 3772 3766 3762 3757>, + <3740 3765 3762 3754 3744>, + <3714 3747 3750 3739 3724>, + <3668 3706 3717 3710 3697>, + <3602 3644 3662 3662 3654>, + <3533 3571 3601 3607 3605>, + <3518 3557 3583 3592 3590>, + <3500 3543 3565 3576 3574>, + <3478 3528 3546 3559 3557>, + <3451 3506 3521 3538 3534>, + <3417 3473 3481 3505 3496>, + <3377 3423 3424 3454 3444>, + <3327 3361 3351 3391 3380>, + <3261 3279 3258 3310 3297>, + <3165 3165 3138 3198 3182>, + <3000 3000 3000 3000 3000>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-4v2-1800mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-4v2-1800mah.dtsi new file mode 100644 index 000000000000..4cd4b2cb7400 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-4v2-1800mah.dtsi @@ -0,0 +1,106 @@ +/* Copyright (c) 2013, 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. + */ + +qcom,qrd-4v2-1800mah-data { + qcom,fcc-mah = <1800>; + qcom,default-rbatt-mohm = <146>; + qcom,rbatt-capacitive-mohm = <0>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,max-voltage-uv = <4200000>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <47>; + qcom,battery-type = "qrd_4v2_1800mah"; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <904 234 100 85 80>, + <905 234 100 85 80>, + <934 244 102 86 81>, + <928 254 105 87 82>, + <933 268 109 89 84>, + <924 280 114 91 85>, + <913 283 123 96 88>, + <916 267 135 103 91>, + <930 252 137 110 95>, + <954 247 117 106 95>, + <990 247 103 88 85>, + <1036 253 104 86 84>, + <1101 264 108 89 85>, + <1211 286 112 93 88>, + <1366 340 120 95 87>, + <1601 394 128 95 87>, + <2178 402 128 97 89>, + <5419 423 126 97 89>, + <10789 528 128 97 91>, + <13463 589 132 100 91>, + <17695 678 137 102 92>, + <23046 814 145 104 93>, + <30725 1019 153 106 93>, + <41382 1359 156 106 93>, + <56311 1959 165 108 95>, + <77209 3523 189 117 99>, + <104609 6039 235 127 105>, + <138858 9711 352 141 112>, + <165825 15373 1069 246 226>; + }; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <1859 1868 1873 1861 1859>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <4178 4176 4174 4169 4163>, + <4090 4100 4105 4101 4099>, + <4029 4049 4053 4050 4048>, + <3973 3998 4006 4004 4002>, + <3932 3959 3965 3962 3960>, + <3891 3920 3928 3925 3922>, + <3855 3882 3894 3891 3889>, + <3825 3844 3862 3862 3859>, + <3803 3813 3829 3834 3831>, + <3788 3792 3797 3802 3800>, + <3777 3780 3778 3776 3773>, + <3764 3775 3771 3767 3763>, + <3749 3769 3766 3763 3757>, + <3725 3756 3758 3755 3750>, + <3687 3727 3736 3735 3729>, + <3631 3675 3698 3698 3691>, + <3571 3607 3637 3642 3637>, + <3514 3548 3568 3572 3570>, + <3458 3506 3519 3522 3522>, + <3444 3498 3511 3516 3515>, + <3430 3489 3503 3509 3508>, + <3413 3477 3493 3500 3500>, + <3395 3461 3478 3488 3486>, + <3373 3433 3446 3463 3456>, + <3346 3394 3397 3418 3410>, + <3307 3341 3334 3361 3352>, + <3251 3270 3254 3287 3277>, + <3160 3167 3152 3183 3172>, + <3000 3000 3000 3000 3000>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-4v2-2000mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-4v2-2000mah.dtsi new file mode 100644 index 000000000000..0919060ca610 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-4v2-2000mah.dtsi @@ -0,0 +1,106 @@ +/* Copyright (c) 2013, 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. + */ + +qcom,qrd-4v2-2000mah-data { + qcom,fcc-mah = <2000>; + qcom,default-rbatt-mohm = <138>; + qcom,rbatt-capacitive-mohm = <0>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,max-voltage-uv = <4200000>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <130 115>; + qcom,battery-type = "qrd_4v2_2000mah"; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <1191 250 100 78 69>, + <1192 250 100 78 69>, + <1242 263 102 80 70>, + <1192 277 105 81 71>, + <1202 294 108 83 72>, + <1205 308 113 86 73>, + <1234 313 118 90 76>, + <1255 294 131 96 80>, + <1284 276 139 103 84>, + <1321 271 115 89 74>, + <1363 273 104 81 72>, + <1400 283 103 79 71>, + <1404 295 105 81 71>, + <1428 313 108 84 73>, + <1489 341 112 87 74>, + <1615 374 115 84 73>, + <1813 404 117 85 73>, + <2121 387 127 89 76>, + <2310 366 115 88 77>, + <2543 386 116 89 77>, + <2879 415 118 92 78>, + <3633 457 122 93 78>, + <5901 507 128 94 79>, + <9939 561 131 93 79>, + <16631 634 129 94 78>, + <26968 794 134 97 81>, + <42610 1203 145 102 85>, + <64024 2628 174 115 94>, + <115224 17430 577 620 4155>; + }; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <2024 2033 2035 2031 2027>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <4179 4177 4173 4170 4164>, + <4097 4107 4108 4106 4104>, + <4040 4060 4059 4057 4054>, + <3974 4007 4012 4012 4009>, + <3929 3968 3972 3972 3969>, + <3889 3933 3937 3935 3933>, + <3852 3896 3905 3904 3900>, + <3822 3859 3876 3875 3872>, + <3797 3827 3846 3847 3844>, + <3777 3803 3809 3809 3806>, + <3758 3787 3788 3786 3784>, + <3740 3779 3777 3774 3771>, + <3717 3774 3771 3768 3763>, + <3685 3767 3767 3764 3758>, + <3649 3757 3761 3756 3749>, + <3613 3734 3747 3738 3724>, + <3578 3689 3711 3706 3694>, + <3538 3615 3649 3648 3643>, + <3483 3543 3564 3568 3567>, + <3470 3533 3553 3556 3556>, + <3453 3522 3542 3545 3545>, + <3434 3509 3531 3534 3533>, + <3414 3492 3519 3521 3519>, + <3388 3467 3498 3499 3492>, + <3358 3428 3457 3459 3447>, + <3321 3374 3397 3400 3387>, + <3268 3300 3318 3323 3307>, + <3182 3188 3207 3213 3191>, + <3000 3000 3000 3000 3000>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-4v2-2200mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-4v2-2200mah.dtsi new file mode 100644 index 000000000000..92ea7d8306cd --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-4v2-2200mah.dtsi @@ -0,0 +1,106 @@ +/* Copyright (c) 2013, 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. + */ + +qcom,qrd-4v2-2200mah-data { + qcom,default-rbatt-mohm = <163>; + qcom,max-voltage-uv = <4200>; + qcom,fcc-mah = <2200>; + qcom,rbatt-capacitive-mohm = <0>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <10>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,battery-type = "qrd_4v2_2200mah"; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <2167 2179 2234 2178 2164>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <4188 4184 4199 4176 4170>, + <4109 4124 4145 4124 4118>, + <4051 4082 4097 4077 4072>, + <3963 4024 4055 4034 4029>, + <3920 3971 4002 3993 3989>, + <3880 3932 3963 3957 3952>, + <3846 3892 3920 3913 3910>, + <3822 3859 3881 3873 3871>, + <3805 3834 3851 3845 3844>, + <3790 3813 3828 3823 3822>, + <3777 3796 3808 3805 3803>, + <3764 3784 3792 3790 3788>, + <3750 3775 3778 3777 3774>, + <3736 3766 3766 3761 3751>, + <3721 3752 3755 3745 3732>, + <3704 3733 3737 3729 3716>, + <3684 3707 3713 3707 3694>, + <3655 3686 3688 3682 3672>, + <3598 3661 3677 3671 3659>, + <3585 3655 3673 3669 3656>, + <3571 3644 3664 3663 3650>, + <3551 3626 3643 3648 3631>, + <3523 3598 3609 3618 3600>, + <3489 3561 3565 3578 3561>, + <3445 3514 3510 3529 3512>, + <3389 3453 3440 3468 3450>, + <3313 3372 3345 3386 3366>, + <3207 3252 3209 3262 3239>, + <3000 3000 3000 3000 3000>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <1371 224 100 79 74>, + <1358 242 100 80 74>, + <1358 242 103 80 74>, + <1195 257 107 82 75>, + <1171 256 112 84 77>, + <1149 250 119 89 79>, + <1144 232 114 90 79>, + <1150 225 101 83 76>, + <1175 227 98 81 76>, + <1210 232 98 82 76>, + <1260 236 98 82 77>, + <1329 242 100 84 77>, + <1421 251 100 86 79>, + <1536 263 101 81 76>, + <1671 280 100 80 74>, + <1830 304 100 81 75>, + <2036 338 101 82 76>, + <2326 443 103 82 76>, + <2788 708 112 88 79>, + <2890 747 115 90 80>, + <2755 676 117 89 79>, + <2750 716 118 87 78>, + <2916 765 119 87 79>, + <3336 833 123 89 80>, + <4214 920 133 92 81>, + <5615 1031 151 96 83>, + <7923 1188 192 104 89>, + <13252 1886 585 137 122>, + <43764 20050 47711 3680 16847>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-4v35-2000mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-4v35-2000mah.dtsi new file mode 100644 index 000000000000..53739fe58336 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-4v35-2000mah.dtsi @@ -0,0 +1,110 @@ +/* Copyright (c) 2013, 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. + */ + +qcom,qrd-4v35-2000mAh-data { + qcom,fcc-mah = <2000>; + qcom,default-rbatt-mohm = <172>; + qcom,rbatt-capacitive-mohm = <0>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,max-voltage-uv = <4350000>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <200>; + qcom,battery-type = "qrd_4v35_2000mah"; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>; + qcom,lut-data = <2422 324 100 79 72>, + <2417 325 100 79 71>, + <2344 327 100 80 72>, + <2416 336 102 81 73>, + <2072 354 107 82 73>, + <1961 372 113 84 75>, + <1929 341 118 87 77>, + <1929 321 130 93 80>, + <2041 306 140 104 85>, + <2202 292 119 96 83>, + <2374 290 98 80 73>, + <2550 292 98 79 72>, + <2727 294 99 81 73>, + <2904 303 100 82 75>, + <3091 323 100 81 73>, + <3278 348 100 80 73>, + <3470 376 99 79 72>, + <3627 386 100 79 72>, + <3672 398 100 80 71>, + <3812 424 100 80 73>, + <3895 443 101 80 73>, + <3985 465 102 82 75>, + <4094 497 105 83 76>, + <4211 533 109 85 79>, + <4335 579 113 87 80>, + <4505 612 113 85 76>, + <4693 643 113 86 77>, + <4930 712 120 90 81>, + <5283 835 145 111 107>, + <10293 15765 5566 6904 2547>; + }; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <2096 2124 2121 2118 2103>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4340 4340 4335 4330 4323>, + <4217 4260 4265 4263 4258>, + <4135 4203 4207 4205 4201>, + <4084 4150 4152 4150 4146>, + <3992 4101 4101 4097 4093>, + <3934 4049 4051 4046 4044>, + <3889 3974 3995 3998 3999>, + <3852 3926 3958 3961 3959>, + <3832 3892 3921 3923 3921>, + <3819 3859 3874 3877 3877>, + <3807 3831 3838 3838 3838>, + <3796 3809 3815 3815 3814>, + <3784 3792 3797 3797 3796>, + <3770 3780 3783 3782 3781>, + <3754 3770 3772 3769 3764>, + <3737 3758 3763 3754 3742>, + <3717 3737 3744 3735 3720>, + <3700 3713 3718 3710 3696>, + <3687 3701 3692 3683 3671>, + <3674 3695 3689 3681 3669>, + <3667 3692 3688 3680 3669>, + <3659 3690 3687 3680 3668>, + <3649 3687 3685 3678 3667>, + <3636 3683 3683 3676 3664>, + <3618 3674 3679 3671 3658>, + <3596 3652 3663 3652 3632>, + <3566 3611 3620 3606 3584>, + <3522 3547 3555 3540 3517>, + <3460 3449 3461 3446 3424>, + <3356 3282 3312 3299 3273>, + <3000 3000 3000 3000 3000>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-4v35-2500mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-4v35-2500mah.dtsi new file mode 100644 index 000000000000..1f55a8851b37 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-4v35-2500mah.dtsi @@ -0,0 +1,106 @@ +/* Copyright (c) 2013, 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. + */ + +qcom,qrd-4v35-2500mAh-data { + qcom,fcc-mah = <2500>; + qcom,default-rbatt-mohm = <198>; + qcom,rbatt-capacitive-mohm = <0>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,max-voltage-uv = <4350000>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <470>; + qcom,battery-type = "qrd_4v35_2500mah"; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <1809 428 100 64 57>, + <1805 428 100 64 57>, + <1674 443 103 65 57>, + <1611 447 108 66 58>, + <1407 474 113 69 59>, + <1379 462 122 74 61>, + <1335 381 124 74 63>, + <1346 388 135 79 66>, + <1410 382 123 82 68>, + <1479 372 101 68 60>, + <1542 363 100 66 59>, + <1605 368 101 66 60>, + <1665 406 102 68 61>, + <1722 460 103 70 61>, + <1779 525 103 68 61>, + <1840 593 104 66 59>, + <1914 669 104 65 58>, + <2016 779 104 65 59>, + <1955 827 107 67 60>, + <2006 855 112 69 61>, + <2057 882 116 71 63>, + <2103 925 123 72 66>, + <2162 955 128 73 62>, + <2218 991 123 69 61>, + <2286 1035 122 69 62>, + <2382 1083 130 72 65>, + <2780 1158 153 83 81>, + <5073 1464 724 393 147>, + <46882 49515 42109 55595 11697>; + }; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <2578 2580 2590 2584 2573>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <4326 4323 4321 4319 4311>, + <4192 4235 4253 4254 4249>, + <4110 4175 4198 4199 4194>, + <4058 4121 4146 4146 4141>, + <3952 4076 4096 4096 4091>, + <3906 4017 4052 4048 4043>, + <3859 3942 3990 3997 3999>, + <3828 3905 3954 3962 3959>, + <3813 3869 3911 3918 3916>, + <3799 3836 3866 3870 3868>, + <3786 3808 3837 3840 3840>, + <3772 3788 3815 3818 3817>, + <3758 3777 3796 3799 3798>, + <3743 3765 3780 3783 3781>, + <3726 3751 3767 3767 3761>, + <3707 3733 3753 3749 3736>, + <3684 3713 3731 3727 3713>, + <3654 3697 3699 3697 3685>, + <3616 3678 3683 3680 3669>, + <3605 3673 3682 3679 3667>, + <3594 3667 3680 3678 3666>, + <3578 3660 3676 3675 3662>, + <3561 3647 3666 3667 3647>, + <3541 3628 3637 3640 3610>, + <3514 3598 3586 3590 3556>, + <3478 3550 3515 3523 3485>, + <3425 3476 3414 3429 3387>, + <3330 3350 3272 3276 3222>, + <3000 3000 3000 3000 3000>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-sku1-4v4-2800mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-sku1-4v4-2800mah.dtsi new file mode 100644 index 000000000000..0b5072209c8f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-sku1-4v4-2800mah.dtsi @@ -0,0 +1,62 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +qcom,qrd_msm8937_sku1_2920mah { + /* #QRD8937_2800mAh_China_data_averaged_MasterSlave_Oct30th2015*/ + qcom,max-voltage-uv = <4400000>; + qcom,nom-batt-capacity-mah = <2800>; + qcom,batt-id-kohm = <90>; + qcom,battery-beta = <3380>; + qcom,battery-type = "qrd_msm8937_sku1_2800mah"; + qcom,fastchg-current-ma = <3000>; + qcom,fg-cc-cv-threshold-mv = <4390>; + qcom,chg-rslow-comp-c1 = <6733839>; + qcom,chg-rslow-comp-c2 = <23336040>; + qcom,chg-rs-to-rslow = <1049243>; + qcom,chg-rslow-comp-thr = <0xDB>; + qcom,checksum = <0x7E2A>; + qcom,gui-version = "PMI8950GUI - 2.0.0.14"; + qcom,fg-profile-data = [ + C6 83 8A 77 + 3E 80 84 75 + 72 83 A1 7C + A0 90 FC 97 + 3F 82 09 99 + 92 B7 97 C3 + 4C 14 EB 83 + A7 7C CE 80 + 79 76 60 83 + 3B 64 34 88 + 19 94 49 82 + 07 9A 7F BD + BF CA 53 0D + 32 0B 68 59 + 14 70 71 FD + 8C 28 9C 45 + 3F 21 00 00 + B6 47 FE 30 + 0B 40 00 00 + 00 00 00 00 + 00 00 00 00 + 3A 70 78 6B + F7 77 7F 88 + 32 7C F2 70 + 64 75 0B 79 + 2B 77 F3 6B + CA 70 7D B1 + 21 57 6B 6B + 6D A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 0C + ]; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-skua-4v35-2000mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-skua-4v35-2000mah.dtsi new file mode 100644 index 000000000000..6013efec43fd --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-skua-4v35-2000mah.dtsi @@ -0,0 +1,122 @@ +/* Copyright (c) 2014, 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. + */ + +qcom,qrd-skua-4v35-2000mAh-data { + qcom,battery-type = "qrd_skua_4v35_2000mAh"; + qcom,batt-id-kohm = <200>; + qcom,chg-term-ua = <100000>; + qcom,default-rbatt-mohm = <146>; + qcom,fcc-mah = <2000>; + qcom,max-voltage-uv = <4350000>; + qcom,rbatt-capacitive-mohm = <50>; + qcom,v-cutoff-uv = <3400000>; + qcom,flat-ocv-threshold-uv = <3800000>; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <2064 2067 2067 2066 2063>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 250 500 1000>; + qcom,lut-data = <2022 2046 2046>, + <1151 1962 2024>, + <680 1864 2008>, + <51 1548 1970>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <1355 273 100 81 74>, + <1352 273 100 81 74>, + <1268 280 102 83 75>, + <1197 286 106 85 76>, + <1143 285 110 87 78>, + <1109 281 116 90 79>, + <1090 272 124 94 82>, + <1080 269 134 100 85>, + <1077 267 133 108 91>, + <1079 266 111 100 90>, + <1090 266 101 83 76>, + <1116 267 101 84 77>, + <1156 268 103 86 79>, + <1205 270 103 88 83>, + <1266 274 106 88 82>, + <1337 276 108 87 78>, + <1431 276 107 85 79>, + <1560 284 104 84 78>, + <1680 293 99 81 75>, + <2078 306 99 81 77>, + <2438 318 100 83 78>, + <2875 333 102 85 80>, + <3411 354 104 87 81>, + <4092 392 108 89 84>, + <5118 448 116 92 86>, + <6939 551 121 95 85>, + <10433 791 120 90 81>, + <17054 1280 121 93 84>, + <29375 2077 133 101 92>, + <52518 3457 173 135 133>, + <230352 176376 150360 117059 92159>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4328 4328 4322 4318 4310>, + <4234 4252 4252 4250 4245>, + <4164 4191 4193 4191 4186>, + <4098 4132 4137 4135 4131>, + <4036 4074 4084 4082 4078>, + <3980 4019 4035 4033 4029>, + <3932 3967 3990 3989 3985>, + <3891 3923 3950 3950 3945>, + <3856 3886 3909 3912 3909>, + <3825 3855 3862 3868 3867>, + <3800 3828 3829 3829 3826>, + <3782 3805 3807 3806 3804>, + <3768 3786 3789 3789 3786>, + <3753 3770 3775 3774 3772>, + <3737 3757 3764 3761 3755>, + <3718 3740 3753 3746 3734>, + <3695 3719 3733 3725 3712>, + <3671 3702 3705 3698 3684>, + <3650 3691 3677 3668 3656>, + <3630 3681 3670 3662 3651>, + <3619 3676 3668 3660 3649>, + <3605 3670 3665 3658 3647>, + <3590 3664 3662 3655 3644>, + <3573 3655 3658 3651 3641>, + <3553 3643 3652 3647 3635>, + <3529 3622 3639 3632 3618>, + <3498 3590 3605 3595 3576>, + <3460 3543 3547 3535 3519>, + <3401 3476 3467 3455 3443>, + <3306 3368 3347 3336 3313>, + <3000 3000 3000 3000 3000>; + }; +}; + diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-skuh-4v35-2000mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-skuh-4v35-2000mah.dtsi new file mode 100644 index 000000000000..9be634b713bd --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-skuh-4v35-2000mah.dtsi @@ -0,0 +1,115 @@ +/* Copyright (c) 2014, 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. + */ + +qcom,qrd-skuh-4v35-2000mah-data { + qcom,default-rbatt-mohm = <188>; + qcom,max-voltage-uv = <4350000>; + qcom,fcc-mah = <2000>; + qcom,rbatt-capacitive-mohm = <50>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <110>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,battery-type = "qrd_skuh_4v35_2000mah"; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <1985 2000 2008 1983 1968>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <4328 4324 4319 4314 4307>, + <4226 4246 4249 4249 4245>, + <4156 4187 4193 4194 4191>, + <4095 4133 4140 4143 4140>, + <4037 4080 4089 4093 4091>, + <3985 4028 4041 4046 4044>, + <3936 3976 3997 4002 4002>, + <3895 3932 3952 3960 3960>, + <3856 3893 3906 3913 3914>, + <3822 3861 3869 3875 3876>, + <3793 3831 3841 3847 3848>, + <3768 3808 3819 3824 3824>, + <3747 3787 3799 3805 3805>, + <3727 3772 3783 3788 3787>, + <3709 3759 3766 3765 3757>, + <3693 3744 3746 3740 3730>, + <3674 3724 3727 3720 3708>, + <3651 3691 3700 3692 3680>, + <3610 3659 3673 3672 3660>, + <3601 3654 3670 3668 3657>, + <3589 3648 3664 3663 3651>, + <3572 3638 3654 3650 3635>, + <3549 3619 3631 3623 3605>, + <3520 3585 3592 3582 3564>, + <3482 3537 3540 3531 3512>, + <3429 3473 3473 3464 3445>, + <3355 3388 3381 3373 3353>, + <3239 3259 3231 3235 3216>, + <3000 3000 3000 3000 3000>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 15 10 9>, + <8 7 6 5 4>, + <3 2 1 0>; + qcom,lut-data = <1002 268 100 87 81>, + <999 271 100 88 82>, + <999 271 102 88 82>, + <988 274 106 91 84>, + <975 275 110 94 85>, + <967 271 115 97 86>, + <969 261 121 101 89>, + <974 256 120 105 91>, + <978 254 107 96 86>, + <988 257 101 89 83>, + <1017 260 102 89 82>, + <1046 267 105 92 83>, + <1085 275 108 94 85>, + <1128 286 112 97 87>, + <1187 298 112 94 84>, + <1268 310 108 90 83>, + <1359 322 109 92 83>, + <1505 328 110 91 82>, + <1785 371 111 94 84>, + <1651 331 112 94 84>, + <1305 342 113 93 84>, + <1366 351 114 93 83>, + <1450 364 113 92 82>, + <1582 373 112 92 84>, + <1900 398 113 94 85>, + <2611 443 117 95 86>, + <4080 519 123 102 93>, + <8074 696 153 171 149>, + <30656 4547 9542 7331 6138>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 250 500 1000>; + qcom,lut-data = <1937 1937 1933>, + <600 1866 1920>, + <107 1602 1898>, + <11 878 1841>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-skuic-4v35-1850mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-skuic-4v35-1850mah.dtsi new file mode 100644 index 000000000000..a71fd40255d6 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-skuic-4v35-1850mah.dtsi @@ -0,0 +1,121 @@ +/* Copyright (c) 2014, 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. + */ + +qcom,qrd-skuic-4v35-1850mah-data { + qcom,battery-type = "qrd-skuic-4v35-1850mah"; + qcom,batt-id-kohm = <105>; + qcom,chg-term-ua = <100000>; + qcom,default-rbatt-mohm = <191>; + qcom,fcc-mah = <1850>; + qcom,max-voltage-uv = <4350000>; + qcom,rbatt-capacitive-mohm = <50>; + qcom,v-cutoff-uv = <3400000>; + qcom,flat-ocv-threshold-uv = <3800000>; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <1832 1824 1823 1820 1809>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 250 500 1000>; + qcom,lut-data = <1795 1787 1786>, + <1275 1752 1761>, + <590 1628 1743>, + <45 968 1661>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4324 4320 4316 4313 4306>, + <4239 4247 4247 4246 4242>, + <4177 4191 4191 4190 4187>, + <4115 4139 4139 4137 4134>, + <4070 4093 4089 4087 4085>, + <3993 4040 4043 4042 4038>, + <3930 3966 3990 3995 3995>, + <3899 3927 3957 3958 3956>, + <3868 3892 3917 3921 3920>, + <3838 3860 3869 3872 3873>, + <3808 3834 3837 3838 3839>, + <3787 3812 3814 3815 3815>, + <3771 3793 3796 3797 3796>, + <3759 3781 3781 3780 3781>, + <3748 3774 3772 3767 3760>, + <3738 3764 3760 3752 3739>, + <3726 3742 3739 3730 3716>, + <3715 3717 3709 3700 3688>, + <3702 3704 3692 3683 3670>, + <3691 3699 3687 3678 3667>, + <3685 3697 3686 3677 3666>, + <3675 3695 3684 3676 3665>, + <3664 3692 3683 3675 3663>, + <3645 3686 3679 3670 3658>, + <3619 3670 3664 3653 3638>, + <3584 3637 3631 3618 3601>, + <3535 3586 3580 3567 3551>, + <3467 3520 3514 3500 3486>, + <3368 3429 3424 3409 3398>, + <3231 3299 3287 3265 3263>, + <3005 3000 3000 3000 3000>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <714 184 100 85 77>, + <714 184 100 85 77>, + <707 193 104 88 79>, + <674 202 110 91 81>, + <670 209 114 95 84>, + <623 219 121 100 87>, + <588 194 124 104 90>, + <593 189 131 108 94>, + <591 183 127 112 98>, + <590 178 106 95 87>, + <587 178 100 88 81>, + <605 179 103 91 83>, + <644 181 106 94 87>, + <704 186 108 95 91>, + <790 198 111 95 86>, + <898 208 112 92 82>, + <1012 206 111 92 83>, + <1095 198 107 91 81>, + <1133 206 106 91 81>, + <1100 218 110 94 85>, + <1036 225 114 97 86>, + <789 216 114 98 88>, + <823 214 116 99 88>, + <865 221 118 100 88>, + <922 223 116 97 85>, + <991 222 111 94 84>, + <1069 229 111 95 86>, + <1212 249 116 99 90>, + <1665 284 128 108 96>, + <4956 452 178 153 109>, + <52816 21422 16264 30119 400>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-skul-4v4-2920mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-skul-4v4-2920mah.dtsi new file mode 100644 index 000000000000..969bed48e996 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-skul-4v4-2920mah.dtsi @@ -0,0 +1,120 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +qcom,qrd-skul-4v4-2920mah-batterydata { + qcom,battery-type = "qrd-skul-4v4-2920mah"; + qcom,batt-id-kohm = <1000>; + qcom,chg-term-ua = <100000>; + qcom,default-rbatt-mohm = <183>; + qcom,fcc-mah = <2920>; + qcom,max-voltage-uv = <4400000>; + qcom,rbatt-capacitive-mohm = <50>; + qcom,v-cutoff-uv = <3400000>; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <2965 2985 2985 2981 2960>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 250 500 1000>; + qcom,lut-data = <2906 2925 2925>, + <1429 2837 2914>, + <782 2530 2887>, + <79 1818 2814>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4382 4379 4372 4366 4358>, + <4247 4287 4296 4295 4288>, + <4161 4224 4234 4232 4227>, + <4092 4166 4175 4174 4169>, + <4044 4111 4120 4118 4113>, + <3946 4059 4066 4065 4061>, + <3903 3987 4016 4016 4013>, + <3858 3933 3969 3971 3968>, + <3825 3895 3920 3924 3924>, + <3807 3860 3875 3878 3879>, + <3793 3831 3842 3843 3843>, + <3779 3806 3818 3819 3818>, + <3764 3788 3798 3799 3798>, + <3749 3776 3782 3783 3781>, + <3734 3765 3769 3767 3763>, + <3719 3749 3757 3750 3737>, + <3702 3727 3738 3729 3716>, + <3685 3707 3714 3707 3694>, + <3667 3695 3690 3683 3674>, + <3652 3689 3685 3680 3669>, + <3642 3686 3685 3679 3668>, + <3630 3683 3683 3677 3667>, + <3615 3679 3681 3676 3665>, + <3598 3673 3678 3673 3662>, + <3578 3663 3673 3666 3652>, + <3553 3637 3648 3640 3625>, + <3516 3594 3601 3592 3578>, + <3464 3532 3538 3530 3516>, + <3382 3440 3450 3447 3432>, + <3251 3295 3315 3325 3301>, + <3000 3000 3000 3052 3000>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <1029 231 100 86 81>, + <1029 231 100 86 81>, + <956 233 100 87 82>, + <899 236 101 88 82>, + <873 238 104 89 83>, + <773 241 107 90 84>, + <762 217 113 93 85>, + <743 200 118 97 88>, + <739 198 112 99 89>, + <761 195 101 92 87>, + <797 196 98 87 82>, + <844 196 98 87 82>, + <896 199 99 88 83>, + <955 209 100 90 85>, + <1017 227 100 89 85>, + <1089 252 100 87 82>, + <1172 278 101 87 82>, + <1253 301 103 88 82>, + <1306 323 101 87 82>, + <1246 323 101 88 82>, + <1298 339 104 88 83>, + <1351 357 105 90 84>, + <1451 377 108 91 85>, + <1637 402 111 93 87>, + <1855 431 115 95 87>, + <2128 459 115 92 85>, + <2562 493 117 93 85>, + <3249 556 124 96 87>, + <4616 660 138 101 92>, + <10855 3698 256 124 113>, + <142404 102851 83715 2038 57906>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/batterydata-qrd-skum-4v4-2920mah.dtsi b/arch/arm64/boot/dts/qcom/batterydata-qrd-skum-4v4-2920mah.dtsi new file mode 100644 index 000000000000..e19a45fa115b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/batterydata-qrd-skum-4v4-2920mah.dtsi @@ -0,0 +1,61 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +qcom,qrd_msm8952_skum_2920mah { + qcom,max-voltage-uv = <4400000>; + qcom,nom-batt-capacity-mah = <2920>; + qcom,batt-id-kohm = <50 90>; + qcom,battery-beta = <0>; + qcom,battery-type = "qrd_msm8952_skum_2920mah"; + qcom,fastchg-current-ma = <3000>; + qcom,fg-cc-cv-threshold-mv = <4390>; + qcom,chg-rslow-comp-c1 = <4847657>; + qcom,chg-rslow-comp-c2 = <11109950>; + qcom,chg-rs-to-rslow = <819081>; + qcom,chg-rslow-comp-thr = <0xC7>; + qcom,checksum = <0x13EE>; + qcom,gui-version = "PMI8950GUI - 0.0.0.32"; + qcom,fg-profile-data = [ + C7 83 0E 77 + EE 7A 0A 6E + 3A 83 D3 70 + 5B 71 3F 86 + B0 81 82 A0 + 3E C4 77 D1 + 54 0D D4 83 + 8A 76 4C 7A + D0 6C 4F 83 + 77 6B 2E 79 + 05 8C 20 82 + 70 9A 79 BD + 3C CA 54 0D + D3 0B A0 62 + 14 70 71 FD + 35 2F CD 35 + FE 1A 00 00 + 9C 4D 14 3B + FE 3A 00 00 + 00 00 00 00 + 00 00 00 00 + 0D 6B A9 69 + A2 76 CE 81 + 8B 7D A0 72 + 95 6F 64 78 + 46 7C 34 70 + 9B 49 85 93 + 50 4B 61 22 + 5E A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 00 + ]; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-adv7533-1080p.dtsi b/arch/arm64/boot/dts/qcom/dsi-adv7533-1080p.dtsi new file mode 100644 index 000000000000..1926f9c2863d --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-adv7533-1080p.dtsi @@ -0,0 +1,74 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_adv7533_1080p: qcom,mdss_dsi_adv7533_1080p { + label = "adv7533 1080p video mode dsi panel"; + qcom,mdss-dsi-panel-name = "dsi_adv7533_1080p"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1920>; + qcom,mdss-dsi-panel-height = <1080>; + qcom,mdss-dsi-h-front-porch = <88>; + qcom,mdss-dsi-h-back-porch = <148>; + qcom,mdss-dsi-h-pulse-width = <44>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <36>; + qcom,mdss-dsi-v-front-porch = <4>; + qcom,mdss-dsi-v-pulse-width = <5>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [ + 05 01 00 00 c8 00 02 11 00 + 05 01 00 00 0a 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 + 05 01 00 00 00 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_pulse"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [ + E6 38 26 00 68 6C 2A 3A 2C 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x02>; + qcom,mdss-dsi-t-clk-pre = <0x2B>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 1>, <1 20>; + qcom,mdss-pan-physical-width-dimension = <160>; + qcom,mdss-pan-physical-height-dimension = <90>; + qcom,mdss-dsi-force-clock-lane-hs; + qcom,mdss-dsi-always-on; + qcom,mdss-dsi-panel-timings-8996 = [1d 1a 03 05 01 03 04 a0 + 1d 1a 03 05 01 03 04 a0 + 1d 1a 03 05 01 03 04 a0 + 1d 1a 03 05 01 03 04 a0 + 1d 1a 03 05 01 03 04 a0]; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-adv7533-720p.dtsi b/arch/arm64/boot/dts/qcom/dsi-adv7533-720p.dtsi new file mode 100644 index 000000000000..080ab3dfd74b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-adv7533-720p.dtsi @@ -0,0 +1,73 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { +dsi_adv7533_720p: qcom,mdss_dsi_adv7533_720p { + label = "adv7533 720p video mode dsi panel"; + qcom,mdss-dsi-panel-name = "dsi_adv7533_720p"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1280>; + qcom,mdss-dsi-panel-height = <720>; + qcom,mdss-dsi-h-front-porch = <110>; + qcom,mdss-dsi-h-back-porch = <220>; + qcom,mdss-dsi-h-pulse-width = <40>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <20>; + qcom,mdss-dsi-v-front-porch = <5>; + qcom,mdss-dsi-v-pulse-width = <5>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [ + 05 01 00 00 c8 00 02 11 00 + 05 01 00 00 0a 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 + 05 01 00 00 00 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_pulse"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-panel-timings = [ + A4 24 18 00 4E 52 1C 28 1C 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x20>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 1>, <1 20>; + qcom,mdss-pan-physical-width-dimension = <160>; + qcom,mdss-pan-physical-height-dimension = <90>; + qcom,mdss-dsi-force-clock-lane-hs; + qcom,mdss-dsi-always-on; + qcom,mdss-dsi-panel-timings-8996 = [1c 19 02 03 01 03 04 a0 + 1c 19 02 03 01 03 04 a0 + 1c 19 02 03 01 03 04 a0 + 1c 19 02 03 01 03 04 a0 + 1c 08 02 03 01 03 04 a0]; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-hx8379a-truly-fwvga-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-hx8379a-truly-fwvga-video.dtsi new file mode 100644 index 000000000000..772bb8350311 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-hx8379a-truly-fwvga-video.dtsi @@ -0,0 +1,138 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_hx8379a_fwvga_truly_vid: qcom,mdss_dsi_hx8379a_fwvga_truly_vid { + qcom,mdss-dsi-panel-name = "HX8379A fwvga video mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <480>; + qcom,mdss-dsi-panel-height = <854>; + qcom,mdss-dsi-h-front-porch = <100>; + qcom,mdss-dsi-h-back-porch = <94>; + qcom,mdss-dsi-h-pulse-width = <40>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <6>; + qcom,mdss-dsi-v-pulse-width = <6>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [ + 39 01 00 00 00 00 04 + B9 FF 83 79 + 39 01 00 00 00 00 15 + B1 44 18 18 + 31 51 90 D0 + EE D4 80 38 + 38 F8 44 44 + 42 00 80 30 + 00 + 39 01 00 00 00 00 0A + B2 80 FE 0A + 03 30 50 11 + 42 1D + 39 01 00 00 00 00 0E + B4 01 28 00 + 34 00 34 17 + 3A 17 3A B0 + 00 FF + 23 01 00 00 00 00 02 + cc 02 + 39 01 00 00 00 00 02 + D2 33 + 39 01 00 00 00 00 1E + D3 00 07 00 + 00 00 06 06 + 32 10 03 00 + 03 03 5F 03 + 5F 00 08 00 + 08 35 33 07 + 07 37 07 07 + 37 07 + 39 01 00 00 00 00 21 + D5 18 18 19 + 19 18 18 20 + 21 24 25 18 + 18 18 18 00 + 01 04 05 02 + 03 06 07 18 + 18 18 18 18 + 18 18 18 18 + 18 + 39 01 00 00 00 00 21 + D6 18 18 18 + 18 19 19 25 + 24 21 20 18 + 18 18 18 05 + 04 01 00 03 + 02 07 06 18 + 18 18 18 18 + 18 18 18 18 + 18 + 39 01 00 00 00 00 2B + E0 00 05 09 + 26 26 3E 1E + 45 08 0C 0D + 17 0E 12 15 + 13 14 12 1F + 1F 1F 00 05 + 09 26 26 3E + 1E 45 08 0C + 0D 17 0E 12 + 15 13 14 12 + 1F 1F 1F + 39 01 00 00 00 00 03 + B6 54 54 + 39 01 00 00 00 00 02 + 35 00 + 39 01 00 00 00 00 02 + 51 ff + 39 01 00 00 00 00 02 + 53 2c + 39 01 00 00 00 00 02 + 55 01 + 05 01 00 00 96 00 02 + 11 00 + 05 01 00 00 78 00 02 + 29 00 + ]; + qcom,mdss-dsi-off-command = [ + 05 01 00 00 32 00 02 + 28 00 + 05 01 00 00 78 00 02 + 10 00 + ]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-panel-timings = + [8B 1f 14 00 45 4A 19 23 23 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1D>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 2>, <1 20>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-hx8394f-720p-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-hx8394f-720p-video.dtsi new file mode 100644 index 000000000000..f3ff7b2e583f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-hx8394f-720p-video.dtsi @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_hx8394f_720p_video: qcom,mdss_dsi_hx8394f_720p_video { + qcom,mdss-dsi-panel-name = "hx8394f 720p video mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-dsi-h-front-porch = <16>; + qcom,mdss-dsi-h-back-porch = <16>; + qcom,mdss-dsi-h-pulse-width = <10>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <12>; + qcom,mdss-dsi-v-front-porch = <15>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 04 B9 FF 83 94 + 29 01 00 00 00 00 07 + BA 63 03 68 6b b2 c0 + 29 01 00 00 00 00 0B + B1 50 12 72 09 32 34 71 31 70 2f + 29 01 00 00 00 00 07 + B2 00 80 64 0E 0D 2F + 29 01 00 00 00 00 16 + B4 6C 6D 6C 6D 6C 6D 01 01 FF 75 + 00 3f 6C 6D 6C 6D 6C 6D 01 01 FF + 29 01 00 00 00 00 22 + D3 00 00 07 07 40 07 10 00 08 10 + 08 00 08 54 15 0E 05 0E 02 15 06 + 05 06 47 44 0A 0A 4B 10 07 07 0e + 40 + 29 01 00 00 00 00 2d + D5 1A 1A 1B 1B 00 01 02 03 04 05 + 06 07 08 09 0A 0B 24 25 18 18 26 + 27 18 18 18 18 18 18 18 18 18 18 + 18 18 18 18 18 18 20 21 18 18 18 + 18 + 29 01 00 00 00 00 2d + D6 1A 1A 1B 1B 0B 0A 09 08 07 06 + 05 04 03 02 01 00 21 20 18 18 27 + 26 18 18 18 18 18 18 18 18 18 18 + 18 18 18 18 18 18 25 24 18 18 18 + 18 + 29 01 00 00 00 00 3B + E0 00 0C 19 20 23 26 29 28 51 61 + 70 6F 76 86 89 8D 99 9A 95 A1 B0 + 57 55 58 5C 5e 64 6b 7f 00 0C 19 + 20 23 26 29 28 51 61 70 6F 76 86 + 89 8D 99 9A 95 A1 B0 57 55 58 5C + 5e 64 6b 7f + 29 01 00 00 00 00 03 C0 1f 73 + 29 01 00 00 00 00 02 CC 0B + 29 01 00 00 00 00 02 d4 02 + 29 01 00 00 00 00 03 B6 7E 7E + 05 01 00 00 96 00 02 11 00 + 05 01 00 00 0a 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 + 05 01 00 00 96 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings + = [72 16 0e 00 38 3c 12 1a 10 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x18>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 2>, <1 20>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-jdi-4k-dualmipi-video-nofbc.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-4k-dualmipi-video-nofbc.dtsi new file mode 100644 index 000000000000..6db2e51208de --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-4k-dualmipi-video-nofbc.dtsi @@ -0,0 +1,68 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_jdi_4k_nofbc_video: qcom,dsi_jdi_4k_nofbc_video { + qcom,mdss-dsi-panel-name = "JDI 4K no FBC Dual video mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-framerate = <40>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1920>; + qcom,mdss-dsi-panel-height = <2160>; + qcom,mdss-dsi-h-front-porch = <100>; + qcom,mdss-dsi-h-back-porch = <80>; + qcom,mdss-dsi-h-pulse-width = <12>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <16>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x1eaaaa>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,cmd-sync-wait-broadcast; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [3e 38 26 00 68 6e 2a 3c 2c 03 + 04 00]; + qcom,mdss-dsi-t-clk-post = <0x12>; + qcom,mdss-dsi-t-clk-pre = <0x34>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + + qcom,mdss-dsi-on-command = [15 01 00 00 0a 00 02 51 FF + 15 01 00 00 0a 00 02 53 24 + 05 01 00 00 c9 00 01 11 + 23 01 00 00 0a 00 02 b0 04 + 29 01 00 00 0a 00 08 b3 14 08 00 00 00 00 00 + 23 01 00 00 0a 00 02 d6 01 + 05 01 00 00 50 00 01 29]; + + qcom,mdss-dsi-on-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-reset-sequence = <1 200>, <0 200>, <1 200>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-jdi-4k-dualmipi-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-4k-dualmipi-video.dtsi new file mode 100644 index 000000000000..655913226db5 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-4k-dualmipi-video.dtsi @@ -0,0 +1,88 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_jdi_4k_video: qcom,dsi_jdi_4k_video { + qcom,mdss-dsi-panel-name = "JDI 4K Dual video mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-panel-clockrate = <849520000>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1920>; + qcom,mdss-dsi-panel-height = <2160>; + qcom,mdss-dsi-h-front-porch = <100>; + qcom,mdss-dsi-h-back-porch = <80>; + qcom,mdss-dsi-h-pulse-width = <12>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <16>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x1eaaaa>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,cmd-sync-wait-broadcast; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [3e 38 26 00 68 6e 2a 3c 2c 03 + 04 00]; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-on-command = [15 01 00 00 0a 00 02 51 FF + 15 01 00 00 0a 00 02 53 24 + 05 01 00 00 78 00 01 11 + /* beginning of additional sequence */ + /* Manufacturer Command Access Protect */ + 23 01 00 00 50 00 02 B0 04 + /* Qualcomm's IP control */ + 29 01 00 00 0a 00 07 ED 80 00 34 5B 04 B0 + /* Manufacturer Command Access Protect */ + 23 01 00 00 50 00 02 B0 03 + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-on-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-reset-sequence = <1 200>, <0 200>, <1 200>; + + qcom,mdss-dsi-fbc-enable; + qcom,mdss-dsi-fbc-bpp = <12>; + qcom,mdss-dsi-fbc-packing = <1>; + qcom,mdss-dsi-fbc-quant-error; + qcom,mdss-dsi-fbc-bias = <2>; + qcom,mdss-dsi-fbc-vlc-mode; + qcom,mdss-dsi-fbc-bflc-mode; + qcom,mdss-dsi-fbc-lossy-mode-idx = <3>; + qcom,mdss-dsi-fbc-pat-mode; + qcom,mdss-dsi-fbc-budget-ctrl = <5>; + qcom,mdss-dsi-fbc-block-budget = <91>; + qcom,mdss-dsi-fbc-h-line-budget = <1200>; + qcom,mdss-dsi-fbc-lossless-threshold = <0x200>; + qcom,mdss-dsi-fbc-lossy-threshold = <192>; + qcom,mdss-dsi-fbc-rgb-threshold = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi-cmd.dtsi new file mode 100644 index 000000000000..dcd27cbaa27b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi-cmd.dtsi @@ -0,0 +1,134 @@ +/* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_jdi_cmd: qcom,mdss_dsi_jdi_qhd_dualmipi_cmd{ + qcom,mdss-dsi-panel-name = "Dual cmd mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1280>; + qcom,mdss-dsi-panel-height = <1440>; + qcom,mdss-dsi-h-front-porch = <120>; + qcom,mdss-dsi-h-back-porch = <44>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-hor-line-idle = <0 40 256>, + <40 120 128>, + <120 240 64>; + qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03 + 04 00]; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-wr-mem-start = <0x2c>; + qcom,mdss-dsi-wr-mem-continue = <0x3c>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-check-enable; + qcom,mdss-dsi-te-using-te-pin; + qcom,ulps-enabled; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 b0 03 + 05 01 00 00 0a 00 01 00 + /* Soft reset, wait 10ms */ + 15 01 00 00 0a 00 02 3a 77 + /* Set Pixel format (24 bpp) */ + 39 01 00 00 0a 00 05 2a 00 00 04 ff + /* Set Column address */ + 39 01 00 00 0a 00 05 2b 00 00 05 9f + /* Set page address */ + 15 01 00 00 0a 00 02 35 00 + /* Set tear on */ + 39 01 00 00 0a 00 03 44 00 00 + /* Set tear scan line */ + 15 01 00 00 0a 00 02 51 ff + /* write display brightness */ + 15 01 00 00 0a 00 02 53 24 + /* write control brightness */ + 15 01 00 00 0a 00 02 55 00 + /* CABC brightness */ + 05 01 00 00 78 00 01 11 + /* exit sleep mode, wait 120ms */ + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-post-mode-switch-on-command = + [05 01 00 00 0a 00 01 00 + /* Soft reset, wait 10ms */ + 15 01 00 00 0a 00 02 3a 77 + /* Set Pixel format (24 bpp) */ + 39 01 00 00 0a 00 05 2a 00 00 04 ff + /* Set Column address */ + 39 01 00 00 0a 00 05 2b 00 00 05 9f + /* Set page address */ + 15 01 00 00 0a 00 02 35 00 + /* Set tear on */ + 39 01 00 00 0a 00 03 44 00 00 + /* Set tear scan line */ + 15 01 00 00 0a 00 02 51 ff + /* write display brightness */ + 15 01 00 00 0a 00 02 53 24 + /* write control brightness */ + 15 01 00 00 0a 00 02 55 00 + /* CABC brightness */ + 05 01 00 00 78 00 01 11 + /* exit sleep mode, wait 120ms */ + 23 01 00 00 0a 00 02 b0 00 + /* MCAP */ + 29 01 00 00 0a 00 02 b3 14 + /* Interface setting */ + 29 01 00 00 0a 00 14 ce 7d 40 48 56 67 + 78 88 98 a7 b5 c3 d1 de e9 f2 fa ff 04 + 00 /* Backlight control 4 */ + 23 01 00 00 0a 00 02 b0 03 + /* MCAP */ + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-post-mode-switch-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command =[05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,dynamic-mode-switch-enabled; + qcom,dynamic-mode-switch-type = "dynamic-switch-immediate"; + qcom,video-to-cmd-mode-switch-commands = + [23 00 00 00 00 00 02 b0 00 + 29 00 00 00 00 00 02 b3 0c + 23 01 00 00 00 00 02 b0 03]; + qcom,cmd-to-video-mode-switch-commands = + [23 00 00 00 00 00 02 b0 00 + 29 00 00 00 00 00 02 b3 1c + 23 01 00 00 00 00 02 b0 03]; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi-video.dtsi new file mode 100644 index 000000000000..10a61a4aa2d0 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-dualmipi-video.dtsi @@ -0,0 +1,125 @@ +/* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_jdi_video: qcom,dsi_jdi_qhd_video { + qcom,mdss-dsi-panel-name = "Dual JDI video mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1280>; + qcom,mdss-dsi-panel-height = <1440>; + qcom,mdss-dsi-h-front-porch = <120>; + qcom,mdss-dsi-h-back-porch = <44>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,cmd-sync-wait-broadcast; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03 + 04 00]; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-on-command = [05 01 00 00 0a 00 01 00 + /* Soft reset, wait 10ms */ + 15 01 00 00 0a 00 02 3a 77 + /* Set Pixel format (24 bpp) */ + 39 01 00 00 0a 00 05 2a 00 00 04 ff + /* Set Column address */ + 39 01 00 00 0a 00 05 2b 00 00 05 9f + /* Set page address */ + 15 01 00 00 0a 00 02 35 00 + /* Set tear on */ + 39 01 00 00 0a 00 03 44 00 00 + /* Set tear scan line */ + 15 01 00 00 0a 00 02 51 ff + /* write display brightness */ + 15 01 00 00 0a 00 02 53 24 + /* write control brightness */ + 15 01 00 00 0a 00 02 55 00 + /* CABC brightness */ + 05 01 00 00 78 00 01 11 + /* exit sleep mode, wait 120ms */ + 23 01 00 00 0a 00 02 b0 00 + /* MCAP */ + 29 01 00 00 0a 00 02 b3 14 + /* Interface setting */ + 29 01 00 00 0a 00 14 ce 7d 40 48 56 67 + 78 88 98 a7 b5 c3 d1 de e9 f2 fa ff 04 + 00 /* Backlight control 4 */ + 23 01 00 00 0a 00 02 b0 03 + /* MCAP */ + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-post-mode-switch-on-command = + [29 01 00 00 00 00 02 b0 03 + 05 01 00 00 0a 00 01 00 + /* Soft reset, wait 10ms */ + 15 01 00 00 0a 00 02 3a 77 + /* Set Pixel format (24 bpp) */ + 39 01 00 00 0a 00 05 2a 00 00 04 ff + /* Set Column address */ + 39 01 00 00 0a 00 05 2b 00 00 05 9f + /* Set page address */ + 15 01 00 00 0a 00 02 35 00 + /* Set tear on */ + 39 01 00 00 0a 00 03 44 00 00 + /* Set tear scan line */ + 15 01 00 00 0a 00 02 51 ff + /* write display brightness */ + 15 01 00 00 0a 00 02 53 24 + /* write control brightness */ + 15 01 00 00 0a 00 02 55 00 + /* CABC brightness */ + 05 01 00 00 78 00 01 11 + /* exit sleep mode, wait 120ms */ + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-post-mode-switch-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + qcom,dynamic-mode-switch-enabled; + qcom,dynamic-mode-switch-type = "dynamic-switch-immediate"; + qcom,video-to-cmd-mode-switch-commands = + [23 00 00 00 00 00 02 b0 00 + 29 00 00 00 00 00 02 b3 0c + 23 01 00 00 00 00 02 b0 03]; + qcom,cmd-to-video-mode-switch-commands = + [23 00 00 00 00 00 02 b0 00 + 29 00 00 00 00 00 02 b3 1c + 23 01 00 00 00 00 02 b0 03]; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-jdi-fhd-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-fhd-video.dtsi new file mode 100644 index 000000000000..b0757c75865c --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-jdi-fhd-video.dtsi @@ -0,0 +1,83 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_jdi_fhd_video: qcom,mdss_dsi_jdi_fhd_video { + qcom,mdss-dsi-panel-name = + "jdi fhd 6inch A155A video mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <1920>; + qcom,mdss-dsi-h-front-porch = <12>; + qcom,mdss-dsi-h-back-porch = <28>; + qcom,mdss-dsi-h-pulse-width = <4>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <3>; + qcom,mdss-dsi-v-front-porch = <18>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-panel-operating-mode = <1>; + qcom,mdss-dsi-on-command = [13 01 00 00 0a 00 02 FF F0 + 13 01 00 00 0a 00 02 DD 02 + 13 01 00 00 0a 00 02 E3 00 + 13 01 00 00 0a 00 02 FB 01 + 13 01 00 00 0a 00 02 FF 00 + 15 01 00 00 0a 00 02 35 00 + 15 01 00 00 0a 00 02 51 FF + 15 01 00 00 0a 00 02 53 2C + 13 01 00 00 0a 00 02 FF 26 + 13 01 00 00 0a 00 02 02 FF + 13 01 00 00 0a 00 02 FF 10 + 13 01 00 00 0a 00 02 BB 13 + 13 01 00 00 0a 00 02 FF 00 + 05 01 00 00 C8 00 01 11 + 05 01 00 00 28 00 01 29]; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = + [ce 2e 1e 00 5a 5c 24 30 24 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x0a>; + qcom,mdss-dsi-t-clk-pre = <0x2c>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 200>, <1 20>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-nt35597-dsc-wqxga-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-nt35597-dsc-wqxga-cmd.dtsi new file mode 100644 index 000000000000..57c6301f2074 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-nt35597-dsc-wqxga-cmd.dtsi @@ -0,0 +1,130 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_nt35597_dsc_cmd: qcom,mdss_dsi_nt35597_dsc_wqxga_cmd { + qcom,mdss-dsi-panel-name = "NT35597 cmd mode dsc dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1440>; + qcom,mdss-dsi-panel-height = <2560>; + qcom,mdss-dsi-h-front-porch = <100>; + qcom,mdss-dsi-h-back-porch = <32>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <7>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [e2 36 24 00 66 6a 28 38 2a 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0xb>; + qcom,mdss-dsi-t-clk-pre = <0x24>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 20>, <1 50>; + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-wr-mem-start = <0x2c>; + qcom,mdss-dsi-wr-mem-continue = <0x3c>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-check-enable; + qcom,mdss-dsi-te-using-te-pin; + qcom,ulps-enabled; + + qcom,adjust-timer-wakeup-ms = <1>; + qcom,mdss-dsi-on-command = [15 01 00 00 0a 00 02 ff 10 + 15 01 00 00 0a 00 02 fb 01 + 15 01 00 00 0a 00 02 ba 03 + 15 01 00 00 0a 00 02 e5 01 + 15 01 00 00 0a 00 02 b0 03 + 15 01 00 00 0a 00 02 ff 28 + 15 01 00 00 0a 00 02 7a 02 + 15 01 00 00 0a 00 02 fb 01 + 15 01 00 00 0a 00 02 ff 10 + 15 01 00 00 0a 00 02 fb 01 + 15 01 00 00 0a 00 02 c0 03 + 15 01 00 00 0a 00 02 bb 10 + 15 01 00 00 0a 00 02 ff e0 + 15 01 00 00 0a 00 02 fb 01 + 15 01 00 00 0a 00 02 6b 3d + 15 01 00 00 0a 00 02 6c 3d + 15 01 00 00 0a 00 02 6d 3d + 15 01 00 00 0a 00 02 6e 3d + 15 01 00 00 0a 00 02 6f 3d + 15 01 00 00 0a 00 02 35 02 + 15 01 00 00 0a 00 02 36 72 + 15 01 00 00 0a 00 02 37 10 + 15 01 00 00 0a 00 02 08 c0 + 15 01 00 00 0a 00 02 ff 24 + 15 01 00 00 0a 00 02 fb 01 + 15 01 00 00 0a 00 02 c6 06 + 15 01 00 00 0a 00 02 ff 10 + 05 01 00 00 f0 00 01 11 + 05 01 00 00 f0 00 01 29 + 07 01 00 00 0a 00 02 01 00]; + + qcom,mdss-dsi-post-panel-on-command = [05 01 00 00 a0 00 01 29]; + + qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + + qcom,compression-mode = "dsc"; + qcom,config-select = <&dsi_nt35597_dsc_cmd_config2>; + + dsi_nt35597_dsc_cmd_config0: config0 { + qcom,mdss-dsc-encoders = <1>; + qcom,mdss-dsc-slice-height = <16>; + qcom,mdss-dsc-slice-width = <720>; + qcom,mdss-dsc-slice-per-pkt = <2>; + + qcom,mdss-dsc-bit-per-component = <8>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + + dsi_nt35597_dsc_cmd_config1: config1 { + qcom,lm-split = <720 720>; + qcom,mdss-dsc-encoders = <1>; /* 3D Mux */ + qcom,mdss-dsc-slice-height = <16>; + qcom,mdss-dsc-slice-width = <720>; + qcom,mdss-dsc-slice-per-pkt = <2>; + + qcom,mdss-dsc-bit-per-component = <8>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + + dsi_nt35597_dsc_cmd_config2: config2 { + qcom,lm-split = <720 720>; + qcom,mdss-dsc-encoders = <2>; /* DSC Merge */ + qcom,mdss-dsc-slice-height = <16>; + qcom,mdss-dsc-slice-width = <720>; + qcom,mdss-dsc-slice-per-pkt = <2>; + + qcom,mdss-dsc-bit-per-component = <8>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-nt35597-dsc-wqxga-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-nt35597-dsc-wqxga-video.dtsi new file mode 100644 index 000000000000..1c515f506e9d --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-nt35597-dsc-wqxga-video.dtsi @@ -0,0 +1,119 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_nt35597_dsc_video: qcom,mdss_dsi_nt35597_dsc_wqxga_video { + qcom,mdss-dsi-panel-name = "NT35597 video mode dsc dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1440>; + qcom,mdss-dsi-panel-height = <2560>; + qcom,mdss-dsi-h-front-porch = <100>; + qcom,mdss-dsi-h-back-porch = <32>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <7>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + + qcom,mdss-dsi-on-command = [15 01 00 00 0a 00 02 ff 10 + 15 01 00 00 0a 00 02 fb 01 + 15 01 00 00 0a 00 02 ba 03 + 15 01 00 00 0a 00 02 e5 01 + 15 01 00 00 0a 00 02 b0 03 + 39 01 00 00 0a 00 06 3B 03 08 08 2e 64 + 15 01 00 00 0a 00 02 ff 28 + 15 01 00 00 0a 00 02 7a 02 + 15 01 00 00 0a 00 02 fb 01 + 15 01 00 00 0a 00 02 ff 10 + 15 01 00 00 0a 00 02 fb 01 + 15 01 00 00 0a 00 02 c0 03 + 15 01 00 00 0a 00 02 bb 03 + 15 01 00 00 0a 00 02 ff e0 + 15 01 00 00 0a 00 02 fb 01 + 15 01 00 00 0a 00 02 6b 3d + 15 01 00 00 0a 00 02 6c 3d + 15 01 00 00 0a 00 02 6d 3d + 15 01 00 00 0a 00 02 6e 3d + 15 01 00 00 0a 00 02 6f 3d + 15 01 00 00 0a 00 02 35 02 + 15 01 00 00 0a 00 02 36 72 + 15 01 00 00 0a 00 02 37 10 + 15 01 00 00 0a 00 02 08 c0 + 15 01 00 00 0a 00 02 ff 10 + 05 01 00 00 a0 00 01 11 + 05 01 00 00 a0 00 01 29 + 07 01 00 00 a0 00 01 01]; + + qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [e2 36 24 00 66 6a 28 38 2a 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0xb>; + qcom,mdss-dsi-t-clk-pre = <0x24>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 20>, <1 50>; + + qcom,compression-mode = "dsc"; + qcom,config-select = <&dsi_nt35597_dsc_video_config0>; + + dsi_nt35597_dsc_video_config0: config0 { + qcom,mdss-dsc-encoders = <1>; + qcom,mdss-dsc-slice-height = <16>; + qcom,mdss-dsc-slice-width = <720>; + qcom,mdss-dsc-slice-per-pkt = <2>; + + qcom,mdss-dsc-bit-per-component = <8>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + + dsi_nt35597_dsc_video_config1: config1 { + qcom,lm-split = <720 720>; + qcom,mdss-dsc-encoders = <1>; /* 3D Mux */ + qcom,mdss-dsc-slice-height = <16>; + qcom,mdss-dsc-slice-width = <720>; + qcom,mdss-dsc-slice-per-pkt = <2>; + + qcom,mdss-dsc-bit-per-component = <8>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + + dsi_nt35597_dsc_video_config2: config2 { + qcom,lm-split = <720 720>; + qcom,mdss-dsc-encoders = <2>; /* DSC Merge */ + qcom,mdss-dsc-slice-height = <16>; + qcom,mdss-dsc-slice-width = <720>; + qcom,mdss-dsc-slice-per-pkt = <2>; + + qcom,mdss-dsc-bit-per-component = <8>; + qcom,mdss-dsc-bit-per-pixel = <8>; + qcom,mdss-dsc-block-prediction-enable; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-nt35597-dualmipi-wqxga-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-nt35597-dualmipi-wqxga-cmd.dtsi new file mode 100644 index 000000000000..b6f19b78ea70 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-nt35597-dualmipi-wqxga-cmd.dtsi @@ -0,0 +1,103 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_nt35597_cmd: qcom,mdss_dsi_nt35597_wqxga_cmd{ + qcom,mdss-dsi-panel-name = + "Dual nt35597 cmd mode dsi panel without DSC"; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <2560>; + qcom,mdss-dsi-h-front-porch = <100>; + qcom,mdss-dsi-h-back-porch = <32>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <7>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03 + 04 00]; + qcom,adjust-timer-wakeup-ms = <1>; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + qcom,mdss-dsi-t-clk-post = <0x0d>; + qcom,mdss-dsi-t-clk-pre = <0x2d>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-wr-mem-start = <0x2c>; + qcom,mdss-dsi-wr-mem-continue = <0x3c>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-check-enable; + qcom,mdss-dsi-te-using-te-pin; + qcom,ulps-enabled; + qcom,mdss-dsi-on-command = [15 01 00 00 10 00 02 ff 10 + 15 01 00 00 10 00 02 fb 01 + 15 01 00 00 10 00 02 ba 03 + 15 01 00 00 10 00 02 e5 01 + 15 01 00 00 10 00 02 35 00 + 15 01 00 00 10 00 02 bb 10 + 15 01 00 00 10 00 02 b0 03 + 15 01 00 00 10 00 02 ff e0 + 15 01 00 00 10 00 02 fb 01 + 15 01 00 00 10 00 02 6b 3d + 15 01 00 00 10 00 02 6c 3d + 15 01 00 00 10 00 02 6d 3d + 15 01 00 00 10 00 02 6e 3d + 15 01 00 00 10 00 02 6f 3d + 15 01 00 00 10 00 02 35 02 + 15 01 00 00 10 00 02 36 72 + 15 01 00 00 10 00 02 37 10 + 15 01 00 00 10 00 02 08 c0 + 15 01 00 00 10 00 02 ff 24 + 15 01 00 00 10 00 02 fb 01 + 15 01 00 00 10 00 02 c6 06 + 15 01 00 00 10 00 02 ff 10 + 05 01 00 00 a0 00 02 11 00 + 05 01 00 00 a0 00 02 29 00]; + + qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + + qcom,config-select = <&dsi_dual_nt35597_cmd_config0>; + + dsi_dual_nt35597_cmd_config0: config0 { + qcom,split-mode = "dualctl-split"; + }; + + dsi_dual_nt35597_cmd_config1: config1 { + qcom,split-mode = "pingpong-split"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-nt35597-dualmipi-wqxga-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-nt35597-dualmipi-wqxga-video.dtsi new file mode 100644 index 000000000000..bb111ba8e2d4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-nt35597-dualmipi-wqxga-video.dtsi @@ -0,0 +1,84 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_nt35597_video: qcom,mdss_dsi_nt35597_wqxga_video { + qcom,mdss-dsi-panel-name = "Dual nt35597 video mode dsi panel without DSC"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <2560>; + qcom,mdss-dsi-h-front-porch = <100>; + qcom,mdss-dsi-h-back-porch = <32>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <7>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [15 01 00 00 10 00 02 ff 10 + 15 01 00 00 10 00 02 fb 01 + 15 01 00 00 10 00 02 ba 03 + 15 01 00 00 10 00 02 e5 01 + 15 01 00 00 10 00 02 35 00 + 15 01 00 00 10 00 02 bb 03 + 15 01 00 00 10 00 02 b0 03 + 39 01 00 00 10 00 06 3b 03 08 08 64 9a + 15 01 00 00 10 00 02 ff e0 + 15 01 00 00 10 00 02 fb 01 + 15 01 00 00 10 00 02 6b 3d + 15 01 00 00 10 00 02 6c 3d + 15 01 00 00 10 00 02 6d 3d + 15 01 00 00 10 00 02 6e 3d + 15 01 00 00 10 00 02 6f 3d + 15 01 00 00 10 00 02 35 02 + 15 01 00 00 10 00 02 36 72 + 15 01 00 00 10 00 02 37 10 + 15 01 00 00 10 00 02 08 c0 + 15 01 00 00 10 00 02 ff 10 + 05 01 00 00 a0 00 02 11 00 + 05 01 00 00 a0 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,cmd-sync-wait-broadcast; + qcom,mdss-dsi-panel-timings = [e2 36 24 00 66 6a 28 38 2a 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x0d>; + qcom,mdss-dsi-t-clk-pre = <0x2d>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 20>, <1 50>; + + qcom,config-select = <&dsi_dual_nt35597_video_config0>; + + dsi_dual_nt35597_video_config0: config0 { + qcom,split-mode = "dualctl-split"; + }; + + dsi_dual_nt35597_video_config1: config1 { + qcom,split-mode = "pingpong-split"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-otm1906c-1080p-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-otm1906c-1080p-cmd.dtsi new file mode 100644 index 000000000000..07a3b4766433 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-otm1906c-1080p-cmd.dtsi @@ -0,0 +1,380 @@ +/* + * Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_otm1906c_1080p_cmd: qcom,mdss_dsi_otm1906c_1080p_cmd { + qcom,mdss-dsi-panel-name = "otm1906c 1080p cmd mode dsi panel"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <1920>; + qcom,mdss-dsi-h-front-porch = <45>; + qcom,mdss-dsi-h-back-porch = <45>; + qcom,mdss-dsi-h-pulse-width = <8>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <16>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 04 FF 19 06 01 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 03 FF 19 06 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 04 C1 00 C0 10 + 29 01 00 00 00 00 02 00 91 + 29 01 00 00 00 00 03 C5 14 28 + 29 01 00 00 00 00 02 00 95 + 29 01 00 00 00 00 02 C5 11 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 02 D9 00 + 29 01 00 00 00 00 02 00 01 + 29 01 00 00 00 00 02 D9 b4 + 29 01 00 00 00 00 02 00 02 + 29 01 00 00 00 00 02 D9 00 + 29 01 00 00 00 00 02 00 03 + 29 01 00 00 00 00 02 D9 cd + 29 01 00 00 00 00 02 00 04 + 29 01 00 00 00 00 02 D9 00 + 29 01 00 00 00 00 02 00 05 + 29 01 00 00 00 00 02 D9 cd + 29 01 00 00 00 00 02 00 06 + 29 01 00 00 00 00 02 D9 00 + 29 01 00 00 00 00 02 00 07 + 29 01 00 00 00 00 02 D9 cd + 29 01 00 00 00 00 02 00 81 + 29 01 00 00 00 00 02 A5 01 + 29 01 00 00 00 00 02 00 A5 + 29 01 00 00 00 00 02 C5 11 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 05 F5 09 16 09 16 + 29 01 00 00 00 00 02 00 A7 + 29 01 00 00 00 00 02 F5 1A + 29 01 00 00 00 00 02 00 9D + 29 01 00 00 00 00 02 F5 1A + 29 01 00 00 00 00 02 00 A5 + 29 01 00 00 00 00 02 F5 16 + 29 01 00 00 00 00 02 00 8D + 29 01 00 00 00 00 02 F5 17 + 29 01 00 00 00 00 02 00 E3 + 29 01 00 00 00 00 02 F5 11 + 29 01 00 00 00 00 02 00 ED + 29 01 00 00 00 00 02 F5 16 + 29 01 00 00 00 00 02 00 E5 + 29 01 00 00 00 00 02 F5 16 + 29 01 00 00 00 00 02 00 81 + 29 01 00 00 00 00 02 F5 16 + 29 01 00 00 00 00 02 00 83 + 29 01 00 00 00 00 02 F5 16 + 29 01 00 00 00 00 02 00 E1 + 29 01 00 00 00 00 02 F5 16 + 29 01 00 00 00 00 02 00 C0 + 29 01 00 00 00 00 10 CC 0c 0c 00 00 0c 0c 0c 0c + 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 D0 + 29 01 00 00 00 00 10 CC 00 00 00 00 00 00 00 00 + 00 00 00 33 33 33 33 + 29 01 00 00 00 00 02 00 E0 + 29 01 00 00 00 00 10 CC 33 33 00 00 00 00 00 00 + 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 03 C1 55 55 + 29 01 00 00 00 00 02 00 94 + 29 01 00 00 00 00 02 C5 88 + 29 01 00 00 00 00 02 00 A4 + 29 01 00 00 00 00 02 C5 88 + 29 01 00 00 00 00 02 00 C1 + 29 01 00 00 00 00 02 C5 f5 + 29 01 00 00 00 00 02 00 B3 + 29 01 00 00 00 00 02 C0 88 + 29 01 00 00 00 00 02 00 B4 + 29 01 00 00 00 00 02 C0 50 + 29 01 00 00 00 00 02 00 E0 + 29 01 00 00 00 00 02 C5 01 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 03 D8 23 23 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 02 C4 81 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 02 B3 33 + 29 01 00 00 00 00 02 00 A6 + 29 01 00 00 00 00 02 B3 30 + 29 01 00 00 00 00 02 00 E0 + 29 01 00 00 00 00 0b B4 1C 19 3F 01 64 5C 01 A0 + 5F A0 + 29 01 00 00 00 00 02 00 F0 + 29 01 00 00 00 00 02 B4 64 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0f C0 00 70 00 1A 16 00 70 1A + 16 00 70 00 1A 16 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 07 C0 00 00 00 02 00 04 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 10 C0 00 00 02 00 04 15 04 00 + 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 D0 + 29 01 00 00 00 00 10 C0 00 00 02 00 04 15 04 00 + 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0d C2 83 01 00 00 82 01 00 00 + 00 00 00 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 0d C2 00 00 00 00 00 00 00 00 + 00 00 00 00 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 0e C2 00 00 00 00 00 00 00 00 + 00 00 00 00 00 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 10 C2 82 02 00 00 88 81 02 00 + 00 88 00 02 00 00 88 + 29 01 00 00 00 00 02 00 C0 + 29 01 00 00 00 00 10 C2 01 02 00 00 88 00 00 00 + 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 D0 + 29 01 00 00 00 00 10 C2 00 00 00 00 00 00 00 00 + 00 00 33 33 33 33 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 10 C3 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 0d C3 83 01 00 00 82 01 00 00 + 00 00 00 00 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 0f C3 00 00 00 00 82 02 00 00 + 88 81 02 00 00 88 + 29 01 00 00 00 00 02 00 C0 + 29 01 00 00 00 00 10 C3 00 02 00 00 88 01 02 00 + 00 88 00 00 00 00 00 + 29 01 00 00 00 00 02 00 D0 + 29 01 00 00 00 00 10 C3 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 E0 + 29 01 00 00 00 00 06 C3 33 33 33 33 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0C CB 00 00 00 00 30 00 03 00 + 00 00 70 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 10 CB 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 10 CB 00 00 00 BF 00 00 00 00 + 00 FF 00 00 00 00 00 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 0d CB 00 00 00 00 00 00 00 00 + 00 00 77 77 + 29 01 00 00 00 00 02 00 C0 + 29 01 00 00 00 00 10 CB 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 + 29 01 00 00 00 00 02 00 D0 + 29 01 00 00 00 00 10 CB 01 01 01 F3 01 01 01 01 + 00 F3 00 00 01 00 01 + 29 01 00 00 00 00 02 00 E0 + 29 01 00 00 00 00 0d CB 00 01 00 01 00 01 00 01 + 00 00 77 07 + 29 01 00 00 00 00 02 00 F0 + 29 01 00 00 00 00 0c CB FF FF FF FF FF FF 03 33 + 03 00 70 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0d CC 08 09 18 19 0C 0D 0E 0F + 07 07 07 07 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 0d CC 09 08 19 18 0F 0E 0D 0C + 07 07 07 07 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 10 CC 14 15 16 17 1C 1D 1E 1F + 01 04 20 07 07 07 00 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 0a CC 01 02 03 04 05 06 07 + 07 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 10 CD 1A 01 11 12 1A 05 18 07 + 1A 1A 23 23 23 1F 1E + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 04 CD 1D 23 23 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 10 CD 1A 02 11 12 1A 06 18 08 + 1A 1A 23 23 23 1F 1E + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 04 CD 1D 23 23 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0b A4 AF 00 20 04 00 17 15 03 + 60 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 04 A4 00 00 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0d A7 FF 0F 1E 00 20 00 01 98 + 00 00 00 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 0b A7 1D 20 3D 00 00 BE 80 BE + 05 F0 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 02 A7 30 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 06 A7 00 1E 1E 00 00 + 29 01 00 00 00 00 02 00 C0 + 29 01 00 00 00 00 0d A7 FF 3A 49 00 1E 00 01 00 + 00 00 00 00 + 29 01 00 00 00 00 02 00 D0 + 29 01 00 00 00 00 0b A7 FF FF 1D 00 01 7C 81 7C + 0B E0 + 29 01 00 00 00 00 02 00 E0 + 29 01 00 00 00 00 02 A7 30 + 29 01 00 00 00 00 02 00 F0 + 29 01 00 00 00 00 06 A7 00 3C 3C 00 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 0d A9 00 00 00 00 00 00 00 00 + 00 00 00 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 0b A9 00 00 00 00 00 00 00 00 + 00 00 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 02 A9 00 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 06 A9 00 00 00 00 00 + 29 01 00 00 00 00 02 00 C0 + 29 01 00 00 00 00 0f A9 FF 3A 49 00 1E 00 01 00 + 00 00 00 00 00 77 + 29 01 00 00 00 00 02 00 D0 + 29 01 00 00 00 00 0B A9 FF FF 1D 00 01 7C 81 7C + 0B E0 + 29 01 00 00 00 00 02 00 E0 + 29 01 00 00 00 00 02 A9 30 + 29 01 00 00 00 00 02 00 F0 + 29 01 00 00 00 00 06 A9 00 3C 3C 00 00 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 09 A4 05 F0 0B E0 00 00 0B E0 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 10 AB 05 14 00 00 FF 6A 00 00 + 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 10 AB 00 00 00 00 00 00 00 01 + 00 00 00 00 01 00 00 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 0D AB 00 00 08 0A 00 00 44 04 + 00 00 00 00 + 29 01 00 00 00 00 02 00 93 + 29 01 00 00 00 00 02 B3 01 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 08 CE 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 00 87 + 29 01 00 00 00 00 08 CE 00 00 33 00 33 00 00 + 29 01 00 00 00 00 02 00 F0 + 29 01 00 00 00 00 05 CE 00 00 00 00 + 29 01 00 00 00 00 02 00 90 + 29 01 00 00 00 00 10 CE 00 00 00 F0 00 00 00 00 + FC 00 FC 00 00 00 00 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 08 CE 00 00 40 40 40 00 00 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 10 CE 01 01 01 01 01 01 01 01 + F1 01 F1 01 01 01 01 + 29 01 00 00 00 00 02 00 C0 + 29 01 00 00 00 00 08 CE 01 01 01 01 01 01 01 + 29 01 00 00 00 00 02 00 D0 + 29 01 00 00 00 00 10 CE 04 04 04 04 04 04 04 04 + F7 04 F7 04 04 00 00 + 29 01 00 00 00 00 02 00 E0 + 29 01 00 00 00 00 08 CE 00 00 15 15 15 04 04 + 29 01 00 00 00 00 02 00 F4 + 29 01 00 00 00 00 02 CE 25 + 29 01 00 00 00 00 02 00 A0 + 29 01 00 00 00 00 0d D6 00 00 00 00 00 00 00 00 + 00 00 00 00 + 29 01 00 00 00 00 02 00 B0 + 29 01 00 00 00 00 0d D6 fd fd fd fd fd fd fd fd + fd fd fd fd + 29 01 00 00 00 00 02 00 C0 + 29 01 00 00 00 00 0d D6 a9 a9 a9 a9 a9 a9 a9 a9 + a9 a9 a9 a9 + 29 01 00 00 00 00 02 00 D0 + 29 01 00 00 00 00 0d D6 54 54 54 54 54 54 54 54 + 54 54 54 54 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 19 e1 00 06 0B 15 1d 25 32 47 + 54 67 73 7C 7C 74 6B 5A 47 34 28 21 18 + 09 05 00 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 19 e2 00 06 0B 15 1d 25 32 47 + 54 67 73 7C 7C 74 6B 5A 47 34 28 21 18 + 09 05 00 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 19 e3 00 06 0B 15 1d 25 32 47 + 54 67 73 7C 7C 74 6B 5A 47 34 28 21 18 + 09 05 00 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 19 e4 00 06 0B 15 1d 25 32 47 + 54 67 73 7C 7C 74 6B 5A 47 34 28 21 18 + 09 05 00 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 19 e5 00 06 0B 15 1d 25 32 47 + 54 67 73 7C 7C 74 6B 5A 47 34 28 21 18 + 09 05 00 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 19 e6 00 06 0B 15 1d 25 32 47 + 54 67 73 7C 7C 74 6B 5A 47 34 28 21 18 + 09 05 00 + 29 01 00 00 00 00 02 00 80 + 29 01 00 00 00 00 03 FF 00 00 + 29 01 00 00 00 00 02 00 00 + 29 01 00 00 00 00 04 FF 00 00 00 + 29 01 00 00 78 00 02 11 00 + 29 01 00 00 05 00 02 29 00]; + + qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <5>; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-wr-mem-start = <0x2c>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-check-enable; + qcom,mdss-dsi-te-using-te-pin; + qcom,mdss-dsi-panel-timings = [6E 3F 36 00 5A 4F 38 41 54 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x1E>; + qcom,mdss-dsi-t-clk-pre = <0x30>; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + 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-reset-sequence = <1 1>, <0 1>, <1 5>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-r69006-1080p-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-r69006-1080p-cmd.dtsi new file mode 100644 index 000000000000..56c88f092d32 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-r69006-1080p-cmd.dtsi @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_r69006_1080p_cmd: qcom,mdss_dsi_r69006_1080p_cmd { + qcom,mdss-dsi-panel-name = "r69006 1080p cmd mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <1920>; + qcom,mdss-dsi-h-front-porch = <100>; + qcom,mdss-dsi-h-back-porch = <82>; + qcom,mdss-dsi-h-pulse-width = <20>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <9>; + qcom,mdss-dsi-v-front-porch = <3>; + qcom,mdss-dsi-v-pulse-width = <15>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [23 01 00 00 00 00 02 B0 00 + 29 01 00 00 00 00 06 + B3 04 10 00 00 00 + 29 01 00 00 00 00 03 B4 0c 00 + 29 01 00 00 00 00 04 B6 3b c3 00 + 23 01 00 00 00 00 02 C0 00 + 15 01 00 00 00 00 02 36 98 + 23 01 00 00 00 00 02 CC 04 + 29 01 00 00 00 00 20 + C1 84 00 10 EF 8B + F1 FF FF DF 9C C5 + 9A 73 8D AD 63 FE + FF FF CB F8 01 00 + AA 40 00 C2 01 08 + 00 01 + 29 01 00 00 00 00 0A + CB 0D FE 1F 2C 00 + 00 00 00 00 + 29 01 00 00 00 00 0B + C2 01 F7 80 04 63 + 00 60 00 01 30 + 29 01 00 00 00 00 07 + C3 55 01 00 01 00 + 00 + 29 01 00 00 00 00 12 + C4 70 00 00 00 00 + 00 00 00 00 02 01 + 00 05 01 00 00 00 + 29 01 00 00 00 00 0F + C6 59 07 4a 07 4a + 01 0E 01 02 01 02 + 09 15 07 + 29 01 00 00 00 00 1F + C7 00 30 32 34 42 + 4E 56 62 44 4A 54 + 62 6B 73 7F 08 30 + 32 34 42 4E 56 62 + 44 4A 54 62 6B 73 + 7F + 29 01 00 00 00 00 14 + C8 00 00 00 00 00 + FC 00 00 00 00 00 + FC 00 00 00 00 00 + FC 00 + 29 01 00 00 00 00 09 + C9 1F 68 1F 68 4C + 4C C4 11 + 29 01 00 00 00 00 11 + D0 33 01 91 0B D9 + 19 19 00 00 00 19 + 99 00 00 00 00 + 29 01 00 00 00 00 1D + D3 1B 3B BB AD A5 + 33 33 33 00 80 AD + A8 6f 6f 33 33 33 + F7 F2 1F 7D 7C FF + 0F 99 00 FF FF + 29 01 00 00 00 00 04 + D4 57 33 03 + 29 01 00 00 00 00 0C + D5 66 00 00 01 27 + 01 27 00 6D 00 6D + 23 01 00 00 00 00 02 D6 81 + 05 01 00 00 78 00 02 11 00 + 05 01 00 00 78 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 + 05 01 00 00 96 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-wr-mem-start = <0x2c>; + qcom,mdss-dsi-wr-mem-continue = <0x3c>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-check-enable; + qcom,mdss-dsi-te-using-te-pin; + qcom,mdss-dsi-panel-timings = [6E 3F 36 00 5A 4F + 38 41 54 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x1e>; + qcom,mdss-dsi-t-clk-pre = <0x30>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 2>, <1 20>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-r69006-1080p-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-r69006-1080p-video.dtsi new file mode 100644 index 000000000000..692f5e09b83f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-r69006-1080p-video.dtsi @@ -0,0 +1,129 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_r69006_1080p_video: qcom,mdss_dsi_r69006_1080p_video { + qcom,mdss-dsi-panel-name = "r69006 1080p video mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <1920>; + qcom,mdss-dsi-h-front-porch = <100>; + qcom,mdss-dsi-h-back-porch = <82>; + qcom,mdss-dsi-h-pulse-width = <20>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <9>; + qcom,mdss-dsi-v-front-porch = <3>; + qcom,mdss-dsi-v-pulse-width = <15>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [23 01 00 00 00 00 02 B0 00 + 29 01 00 00 00 00 06 + B3 05 10 00 00 00 + 29 01 00 00 00 00 03 B4 0c 00 + 29 01 00 00 00 00 04 B6 3b c3 00 + 23 01 00 00 00 00 02 C0 00 + 15 01 00 00 00 00 02 36 98 + 23 01 00 00 00 00 02 CC 04 + 29 01 00 00 00 00 20 + C1 84 00 10 EF 8B + F1 FF FF DF 9C C5 + 9A 73 8D AD 63 FE + FF FF CB F8 01 00 + AA 40 00 C2 01 08 + 00 01 + 29 01 00 00 00 00 0A + CB 0D FE 1F 2C 00 + 00 00 00 00 + 29 01 00 00 00 00 0B + C2 01 F7 80 04 63 + 00 60 00 01 30 + 29 01 00 00 00 00 07 + C3 55 01 00 01 00 + 00 + 29 01 00 00 00 00 12 + C4 70 00 00 00 00 + 00 00 00 00 02 01 + 00 05 01 00 00 00 + 29 01 00 00 00 00 0F + C6 59 07 4a 07 4a + 01 0E 01 02 01 02 + 09 15 07 + 29 01 00 00 00 00 1F + C7 00 30 32 34 42 + 4E 56 62 44 4A 54 + 62 6B 73 7F 08 30 + 32 34 42 4E 56 62 + 44 4A 54 62 6B 73 + 7F + 29 01 00 00 00 00 14 + C8 00 00 00 00 00 + FC 00 00 00 00 00 + FC 00 00 00 00 00 + FC 00 + 29 01 00 00 00 00 09 + C9 1F 68 1F 68 4C + 4C C4 11 + 29 01 00 00 00 00 11 + D0 33 01 91 0B D9 + 19 19 00 00 00 19 + 99 00 00 00 00 + 29 01 00 00 00 00 1D + D3 1B 3B BB AD A5 + 33 33 33 00 80 AD + A8 6f 6f 33 33 33 + F7 F2 1F 7D 7C FF + 0F 99 00 FF FF + 29 01 00 00 00 00 04 + D4 57 33 03 + 29 01 00 00 00 00 0C + D5 66 00 00 01 27 + 01 27 00 6D 00 6D + 23 01 00 00 00 00 02 D6 81 + 05 01 00 00 78 00 02 11 00 + 05 01 00 00 78 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 78 00 02 28 00 + 05 01 00 00 96 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [7d 25 1d 00 37 33 + 22 27 1e 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x20>; + qcom,mdss-dsi-t-clk-pre = <0x2c>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 2>, <1 20>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-r69007-dualdsi-wqxga-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-r69007-dualdsi-wqxga-cmd.dtsi new file mode 100644 index 000000000000..abe823b149a1 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-r69007-dualdsi-wqxga-cmd.dtsi @@ -0,0 +1,107 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_r69007_wqxga_cmd: qcom,mdss_dsi_r69007_wqxga_cmd{ + qcom,mdss-dsi-panel-name = "r69007 command mode dual dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <2560>; + qcom,mdss-dsi-h-front-porch = <112>; + qcom,mdss-dsi-h-back-porch = <70>; + qcom,mdss-dsi-h-pulse-width = <10>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <8>; + qcom,mdss-dsi-v-front-porch = <9>; + qcom,mdss-dsi-v-pulse-width = <1>; + + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 b0 00 + 29 01 00 00 00 00 04 b3 04 00 00 + 29 01 00 00 00 00 04 b6 3b d3 00 + 29 01 00 00 00 00 28 c1 80 08 11 1f fc f2 c9 1f 5f 98 b3 fe ff f7 fe ff d7 31 f1 cb 3f 3f fd ef 03 24 69 18 aa 40 01 42 02 08 00 01 00 01 00 + 29 01 00 00 00 00 0f c2 01 fa 00 04 64 08 00 60 00 38 70 00 00 00 + 29 01 00 00 00 00 09 c3 07 01 08 01 00 00 00 00 + 29 01 00 00 00 00 12 c4 70 00 00 00 02 00 00 00 00 02 01 00 01 01 00 00 00 + 29 01 00 00 00 00 11 c6 3c 00 3c 02 37 01 0e 01 02 01 02 03 0f 04 3c 46 + 29 01 00 00 00 00 1f c7 00 11 1c 28 37 44 4e 5b 3e 46 52 5f 68 72 78 00 11 1c 28 37 44 4e 5b 3e 46 52 5f 68 72 78 + 29 01 00 00 00 00 14 c8 00 00 00 00 00 fc 00 00 00 00 00 fc 00 00 00 00 00 fc 00 + 29 01 00 00 00 00 14 c9 00 00 00 00 00 fc 00 00 00 00 00 fc 00 00 00 00 00 fc 00 + 29 01 00 00 00 00 14 cb aa 1e e3 55 f1 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 02 cc 07 + 29 01 00 00 00 00 0b cd 3a 86 3a 86 8d 8d 04 04 00 00 + 29 01 00 00 00 00 11 d0 19 01 91 6a dc 59 19 00 00 00 19 99 04 00 00 00 + 29 01 00 00 00 00 21 d3 1b 3b bb 77 77 77 bb b3 33 00 80 a7 af 5b 5b 33 33 33 c0 00 f2 0f 7d 7c ff 0f 99 00 33 00 ff ff + 29 01 00 00 00 00 06 d4 57 33 07 00 f4 + 29 01 00 00 00 00 0c d5 66 00 00 01 3d 01 3d 00 38 00 38 + 29 01 00 00 00 00 22 d7 04 ff 23 15 75 a4 c3 1f c3 1f d9 07 1c 1f 30 8e 87 c7 e3 f1 cc f0 1f f0 0d 70 00 2a 00 7e 1d 07 00 + 29 01 00 00 00 00 05 de 00 3f ff 10 + 29 01 00 00 00 00 02 d6 01 + 39 01 00 00 00 00 02 35 00 + 39 01 00 00 00 00 05 2a 00 00 05 9f + 39 01 00 00 00 00 05 2b 00 00 09 ff + 39 01 00 00 00 00 02 2c 00 + 39 01 00 00 00 00 02 36 40 + 05 01 00 00 78 00 02 29 00 + 05 01 00 00 40 00 02 11 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [da 34 24 00 64 68 28 38 2a 03 04 00]; + + qcom,mdss-dsi-t-clk-pre = <0x29>; + qcom,mdss-dsi-t-clk-post = <0x03>; + + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-te-v-sync-rd-ptr-irq-line = <0x2c>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-using-te-pin; + + qcom,mdss-tear-check-sync-cfg-height = <2589>; + qcom,mdss-tear-check-frame-rate = <6000>; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-check-mode = "te_signal_check"; + qcom,mdss-dsi-reset-sequence = <1 1>, <0 1>, <1 5>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-sharp-dualmipi-wqxga-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-sharp-dualmipi-wqxga-video.dtsi new file mode 100644 index 000000000000..2a5b8a248730 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-sharp-dualmipi-wqxga-video.dtsi @@ -0,0 +1,78 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_sharp_video: qcom,mdss_dsi_sharp_wqxga_video { + qcom,mdss-dsi-panel-name = "Dual SHARP video mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <800>; + qcom,mdss-dsi-panel-height = <2560>; + qcom,mdss-dsi-h-front-porch = <76>; + qcom,mdss-dsi-h-back-porch = <32>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <11>; + qcom,mdss-dsi-v-front-porch = <2>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [05 01 00 00 a0 00 02 11 00 + 05 01 00 00 02 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 02 00 02 28 00 + 05 01 00 00 a0 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,cmd-sync-wait-broadcast; + qcom,mdss-dsi-panel-timings = [e2 36 24 00 66 6a 28 38 2a 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x02>; + qcom,mdss-dsi-t-clk-pre = <0x2a>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <50>; + qcom,mdss-dsi-bl-pmic-bank-select = <2>; + qcom,mdss-dsi-reset-sequence = <1 2>, <0 5>, <1 120>; + qcom,mdss-pan-physical-width-dimension = <83>; + qcom,mdss-pan-physical-height-dimension = <133>; + 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,mdss-dsi-panel-status-check-mode = "bta_check"; + qcom,mdss-dsi-tx-eot-append; + qcom,esd-check-enabled; + + qcom,config-select = <&dsi_dual_sharp_video_config0>; + + dsi_dual_sharp_video_config0: config0 { + qcom,split-mode = "dualctl-split"; + }; + + dsi_dual_sharp_video_config1: config1 { + qcom,split-mode = "pingpong-split"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-sim-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-sim-cmd.dtsi new file mode 100644 index 000000000000..01b733565dd5 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-sim-cmd.dtsi @@ -0,0 +1,91 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_sim_cmd: qcom,mdss_dsi_sim_cmd{ + qcom,mdss-dsi-panel-name = "Simulator cmd mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <1920>; + qcom,mdss-dsi-h-front-porch = <96>; + qcom,mdss-dsi-h-back-porch = <64>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <4>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-hor-line-idle = <0 40 256>, + <40 120 128>, + <120 240 64>; + qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03 + 04 00]; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-wr-mem-start = <0x2c>; + qcom,mdss-dsi-wr-mem-continue = <0x3c>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-check-enable; + qcom,mdss-dsi-te-using-te-pin; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 b0 03 + 05 01 00 00 0a 00 01 00 + /* Soft reset, wait 10ms */ + 15 01 00 00 0a 00 02 3a 77 + /* Set Pixel format (24 bpp) */ + 39 01 00 00 0a 00 05 2a 00 00 04 ff + /* Set Column address */ + 39 01 00 00 0a 00 05 2b 00 00 05 9f + /* Set page address */ + 15 01 00 00 0a 00 02 35 00 + /* Set tear on */ + 39 01 00 00 0a 00 03 44 00 00 + /* Set tear scan line */ + 15 01 00 00 0a 00 02 51 ff + /* write display brightness */ + 15 01 00 00 0a 00 02 53 24 + /* write control brightness */ + 15 01 00 00 0a 00 02 55 00 + /* CABC brightness */ + 05 01 00 00 78 00 01 11 + /* exit sleep mode, wait 120ms */ + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,panel-ack-disabled; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-sim-dualmipi-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-sim-dualmipi-cmd.dtsi new file mode 100644 index 000000000000..080b6e283928 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-sim-dualmipi-cmd.dtsi @@ -0,0 +1,92 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_sim_cmd: qcom,mdss_dsi_dual_sim_cmd { + qcom,mdss-dsi-panel-name = "Sim dual cmd mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1280>; + qcom,mdss-dsi-panel-height = <1440>; + qcom,mdss-dsi-h-front-porch = <120>; + qcom,mdss-dsi-h-back-porch = <44>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,cmd-sync-wait-broadcast; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-hor-line-idle = <0 40 256>, + <40 120 128>, + <120 240 64>; + qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03 + 04 00]; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-wr-mem-start = <0x2c>; + qcom,mdss-dsi-wr-mem-continue = <0x3c>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-check-enable; + qcom,mdss-dsi-te-using-te-pin; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 b0 03 + 05 01 00 00 0a 00 01 00 + /* Soft reset, wait 10ms */ + 15 01 00 00 0a 00 02 3a 77 + /* Set Pixel format (24 bpp) */ + 39 01 00 00 0a 00 05 2a 00 00 04 ff + /* Set Column address */ + 39 01 00 00 0a 00 05 2b 00 00 05 9f + /* Set page address */ + 15 01 00 00 0a 00 02 35 00 + /* Set tear on */ + 39 01 00 00 0a 00 03 44 00 00 + /* Set tear scan line */ + 15 01 00 00 0a 00 02 51 ff + /* write display brightness */ + 15 01 00 00 0a 00 02 53 24 + /* write control brightness */ + 15 01 00 00 0a 00 02 55 00 + /* CABC brightness */ + 05 01 00 00 78 00 01 11 + /* exit sleep mode, wait 120ms */ + 05 01 00 00 10 00 01 29]; + /* Set display on, wait 16ms */ + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,panel-ack-disabled; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-sim-dualmipi-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-sim-dualmipi-video.dtsi new file mode 100644 index 000000000000..31ebdb6f3293 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-sim-dualmipi-video.dtsi @@ -0,0 +1,59 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_dual_sim_vid: qcom,mdss_dsi_dual_sim_video { + qcom,mdss-dsi-panel-name = "Sim dual video mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1280>; + qcom,mdss-dsi-panel-height = <1440>; + qcom,mdss-dsi-h-front-porch = <120>; + qcom,mdss-dsi-h-back-porch = <44>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <4>; + qcom,mdss-dsi-v-front-porch = <8>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-panel-broadcast-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [cd 32 22 00 60 64 26 34 29 03 + 04 00]; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-reset-sequence = <1 20>, <0 200>, <1 20>; + qcom,panel-ack-disabled; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-sim-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-sim-video.dtsi new file mode 100644 index 000000000000..36e3022e4d1f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-sim-video.dtsi @@ -0,0 +1,56 @@ +/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_sim_vid: qcom,mdss_dsi_sim_video { + qcom,mdss-dsi-panel-name = "Simulator video mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <640>; + qcom,mdss-dsi-panel-height = <480>; + qcom,mdss-dsi-h-front-porch = <6>; + qcom,mdss-dsi-h-back-porch = <6>; + qcom,mdss-dsi-h-pulse-width = <2>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <6>; + qcom,mdss-dsi-v-front-porch = <6>; + qcom,mdss-dsi-v-pulse-width = <2>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [32 01 00 00 00 00 02 00 00]; + qcom,mdss-dsi-off-command = [22 01 00 00 00 00 02 00 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [00 00 00 00 00 00 00 00 00 00 00 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1b>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-reset-sequence = <1 0>, <0 0>, <1 0>; + qcom,panel-ack-disabled; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-truly-1080p-cmd.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-truly-1080p-cmd.dtsi new file mode 100644 index 000000000000..3f9fd89925b4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-truly-1080p-cmd.dtsi @@ -0,0 +1,93 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_truly_1080_cmd: qcom,mdss_dsi_truly_1080p_cmd { + qcom,mdss-dsi-panel-name = "truly 1080p cmd mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <1920>; + qcom,mdss-dsi-h-front-porch = <96>; + qcom,mdss-dsi-h-back-porch = <64>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <4>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-te-pin-select = <1>; + qcom,mdss-dsi-te-dcs-command = <1>; + qcom,mdss-dsi-te-check-enable; + qcom,mdss-dsi-te-using-te-pin; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [e6 38 26 00 68 6e 2a 3c 44 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x02>; + qcom,mdss-dsi-t-clk-pre = <0x2d>; + qcom,mdss-dsi-tx-eot-append; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-on-command = [23 01 00 00 00 00 02 d6 01 + 15 01 00 00 00 00 02 35 00 + 15 01 00 00 00 00 02 51 ff + 15 01 00 00 00 00 02 53 2c + 15 01 00 00 00 00 02 55 00 + 05 01 00 00 78 00 02 11 00 + 23 01 00 00 00 00 02 b0 04 + 29 01 00 00 00 00 07 b3 04 00 00 00 00 00 + 29 01 00 00 00 00 03 b6 3a d3 + 29 01 00 00 00 00 03 c0 00 00 + 29 01 00 00 00 00 23 c1 84 60 10 eb ff 6f ce ff ff 17 02 + 58 73 ae b1 20 c6 ff ff 1f f3 ff 5f 10 10 10 10 00 02 01 + 22 22 00 01 + 29 01 00 00 00 00 08 c2 31 f7 80 06 08 00 00 + 29 01 00 00 00 00 17 c4 70 00 00 00 00 04 00 00 00 0c 06 + 00 00 00 00 00 04 00 00 00 0c 06 + 29 01 00 00 00 00 29 c6 78 69 00 69 00 69 00 00 00 00 00 + 69 00 69 00 69 10 19 07 00 78 00 69 00 69 00 69 00 00 00 + 00 00 69 00 69 00 69 10 19 07 + 29 01 00 00 00 00 0a cb 31 fc 3f 8c 00 00 00 00 c0 + 23 01 00 00 00 00 02 cc 0b + 29 01 00 00 00 00 0b d0 11 81 bb 1e 1e 4c 19 19 0c 00 + 29 01 00 00 00 00 1a d3 1b 33 bb bb b3 33 33 33 00 01 00 + a0 d8 a0 0d 4e 4e 33 3b 22 72 07 3d bf 33 + 29 01 00 00 00 00 08 d5 06 00 00 01 51 01 32 + 29 01 00 00 00 00 1f c7 01 0a 11 18 26 33 3e 50 38 42 52 + 60 67 6e 77 01 0a 11 18 26 33 3e 50 38 42 52 60 67 6e 77 + 29 01 00 00 c8 00 14 c8 01 00 00 00 00 fc 00 00 00 00 00 fc + 00 00 00 00 00 fc 00 + 05 01 00 00 14 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 96 00 02 28 00 + 05 01 00 00 96 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 200>, <0 200>, <1 200>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/dsi-panel-truly-1080p-video.dtsi b/arch/arm64/boot/dts/qcom/dsi-panel-truly-1080p-video.dtsi new file mode 100644 index 000000000000..e7cee9f0f884 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/dsi-panel-truly-1080p-video.dtsi @@ -0,0 +1,88 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&mdss_mdp { + dsi_truly_1080_vid: qcom,mdss_dsi_truly_1080p_video { + qcom,mdss-dsi-panel-name = "truly 1080p video mode dsi panel"; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <1920>; + qcom,mdss-dsi-h-front-porch = <96>; + qcom,mdss-dsi-h-back-porch = <64>; + qcom,mdss-dsi-h-pulse-width = <16>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <4>; + qcom,mdss-dsi-v-pulse-width = <1>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-h-sync-pulse = <0>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [e6 38 26 00 68 6e 2a 3c 44 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x02>; + qcom,mdss-dsi-t-clk-pre = <0x2d>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 35 00 + 15 01 00 00 00 00 02 51 ff + 15 01 00 00 00 00 02 53 2c + 15 01 00 00 00 00 02 55 00 + 05 01 00 00 c8 00 02 11 00 + 23 01 00 00 00 00 02 b0 00 + 29 01 00 00 00 00 07 b3 14 00 00 00 00 00 + 29 01 00 00 00 00 03 b6 3a d3 + 29 01 00 00 00 00 03 c0 00 00 + 29 01 00 00 00 00 23 c1 84 60 10 eb ff 6f ce ff ff 17 02 + 58 73 ae b1 20 c6 ff ff 1f f3 ff 5f 10 10 10 10 00 02 01 + 22 22 00 01 + 29 01 00 00 00 00 08 c2 31 f7 80 06 08 00 00 + 29 01 00 00 00 00 17 c4 70 00 00 00 00 04 00 00 00 0c 06 + 00 00 00 00 00 04 00 00 00 0c 06 + 29 01 00 00 00 00 29 c6 00 69 00 69 00 69 00 00 00 00 00 + 69 00 69 00 69 10 19 07 00 01 00 69 00 69 00 69 00 00 00 + 00 00 69 00 69 00 69 10 19 07 + 29 01 00 00 00 00 0a cb 31 fc 3f 8c 00 00 00 00 c0 + 23 01 00 00 00 00 02 cc 0b + 29 01 00 00 00 00 0b d0 11 81 bb 1e 1e 4c 19 19 0c 00 + 29 01 00 00 00 00 1a d3 1b 33 bb bb b3 33 33 33 00 01 00 + a0 d8 a0 0d 4e 4e 33 3b 22 72 07 3d bf 33 + 29 01 00 00 00 00 08 d5 06 00 00 01 51 01 32 + 29 01 00 00 00 00 1f c7 01 0a 11 18 26 33 3e 50 38 42 52 + 60 67 6e 77 01 0a 11 18 26 33 3e 50 38 42 52 60 67 6e 77 + 29 01 00 00 c8 00 14 c8 01 00 00 00 00 fc 00 00 00 00 00 fc + 00 00 00 00 00 fc 00 + 05 01 00 00 c8 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 96 00 02 28 00 + 05 01 00 00 96 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 200>, <0 200>, <1 200>; + qcom,mdss-dsi-tx-eot-append; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/external-soc.dtsi b/arch/arm64/boot/dts/qcom/external-soc.dtsi new file mode 100644 index 000000000000..6a96d0ea01f5 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/external-soc.dtsi @@ -0,0 +1,37 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + mdm3: qcom,mdm3 { + compatible = "qcom,ext-mdm9x55"; + cell-index = <0>; + #address-cells = <0>; + interrupt-parent = <&mdm3>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-names = + "err_fatal_irq", + "status_irq", + "mdm2ap_vddmin_irq"; + /* modem attributes */ + qcom,ramdump-delays-ms = <2000>; + qcom,ramdump-timeout-ms = <120000>; + qcom,vddmin-modes = "normal"; + qcom,vddmin-drive-strength = <8>; + qcom,sfr-query; + qcom,sysmon-id = <20>; + qcom,ssctl-instance-id = <0x10>; + qcom,support-shutdown; + qcom,pil-force-shutdown; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-arm-smmu-8996.dtsi b/arch/arm64/boot/dts/qcom/msm-arm-smmu-8996.dtsi new file mode 100644 index 000000000000..cf22be75c9dc --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-arm-smmu-8996.dtsi @@ -0,0 +1,278 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm-arm-smmu.dtsi" +#include <dt-bindings/msm/msm-bus-ids.h> +#include <dt-bindings/interrupt-controller/arm-gic.h> + +&anoc0_smmu { + status = "ok"; + qcom,register-save; + qcom,skip-init; + #global-interrupts = <1>; + interrupts = <GIC_SPI 362 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>; + vdd-supply = <&gdsc_aggre0_noc>; + clocks = <&clock_gcc clk_gcc_smmu_aggre0_axi_clk>, + <&clock_gcc clk_gcc_smmu_aggre0_ahb_clk>; + clock-names = "smmu_aggre0_axi_clk", "smmu_aggre0_ahb_clk"; + #clock-cells = <1>; + #iommu-cells = <0>; +}; + +&anoc1_smmu { + status = "ok"; + qcom,register-save; + qcom,skip-init; + #global-interrupts = <1>; + interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 364 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 365 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 366 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 368 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>; + #iommu-cells = <1>; + clocks = <&clock_gcc clk_aggre1_noc_clk>; + clock-names = "smmu_aggre1_noc_clk"; + #clock-cells = <1>; +}; + +&anoc2_smmu { + status = "ok"; + qcom,register-save; + qcom,skip-init; + #global-interrupts = <1>; + interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>; + #iommu-cells = <1>; + clocks = <&clock_gcc clk_aggre2_noc_clk>; + clock-names = "smmu_aggre2_noc_clk"; + #clock-cells = <1>; +}; + +&lpass_q6_smmu { + status = "ok"; + qcom,register-save; + qcom,skip-init; + #global-interrupts = <1>; + interrupts = <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>; + vdd-supply = <&gdsc_hlos1_vote_lpass_adsp>; + clocks = <&clock_gcc clk_hlos1_vote_lpass_adsp_smmu_clk>; + clock-names = "lpass_q6_smmu_clocks"; + #clock-cells = <1>; +}; + +&jpeg_smmu { + status = "ok"; + qcom,register-save; + qcom,skip-init; + qcom,fatal-asf; + #global-interrupts = <1>; + interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; + vdd-supply = <&gdsc_mmagic_camss>; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmss_mmagic_cfg_ahb_clk>, + <&clock_mmss clk_smmu_jpeg_ahb_clk>, + <&clock_mmss clk_smmu_jpeg_axi_clk>, + <&clock_mmss clk_mmagic_camss_axi_clk>; + clock-names = "mmagic_ahb_clk", "mmagic_cfg_ahb_clk", + "jpeg_ahb_clk", "jpeg_axi_clk", + "mmagic_camss_axi_clk"; + #clock-cells = <1>; + qcom,bus-master-id = <MSM_BUS_MASTER_JPEG>; +}; + +&vfe_smmu { + status = "ok"; + qcom,register-save; + qcom,skip-init; + qcom,fatal-asf; + #global-interrupts = <1>; + interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>; + vdd-supply = <&gdsc_mmagic_camss>; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmss_mmagic_cfg_ahb_clk>, + <&clock_mmss clk_smmu_vfe_ahb_clk>, + <&clock_mmss clk_smmu_vfe_axi_clk>, + <&clock_mmss clk_mmagic_camss_axi_clk>; + clock-names = "mmagic_ahb_clk", "mmagic_cfg_ahb_clk", + "vfe_ahb_clk", "vfe_axi_clk", + "mmagic_camss_axi_clk"; + #clock-cells = <1>; + qcom,bus-master-id = <MSM_BUS_MASTER_VFE>; +}; + +&cpp_fd_smmu { + status = "ok"; + qcom,register-save; + qcom,skip-init; + qcom,fatal-asf; + #global-interrupts = <1>; + interrupts = <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; + vdd-supply = <&gdsc_mmagic_camss>; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmss_mmagic_cfg_ahb_clk>, + <&clock_mmss clk_smmu_cpp_ahb_clk>, + <&clock_mmss clk_smmu_cpp_axi_clk>, + <&clock_mmss clk_mmagic_camss_axi_clk>; + clock-names = "mmagic_ahb_clk", "mmagic_cfg_ahb_clk", + "cpp_ahb_clk", "cpp_axi_clk", + "mmagic_camss_axi_clk"; + #clock-cells = <1>; + qcom,bus-master-id = <MSM_BUS_MASTER_CPP>; +}; + +&venus_smmu { + status = "ok"; + qcom,register-save; + qcom,skip-init; + #global-interrupts = <1>; + interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; + vdd-supply = <&gdsc_mmagic_video>; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmss_mmagic_cfg_ahb_clk>, + <&clock_mmss clk_smmu_video_ahb_clk>, + <&clock_mmss clk_smmu_video_axi_clk>, + <&clock_mmss clk_mmagic_video_axi_clk>; + clock-names = "mmagic_ahb_clk", "mmagic_cfg_ahb_clk", + "video_ahb_clk", "video_axi_clk", + "mmagic_video_axi_clk"; + #clock-cells = <1>; + qcom,bus-master-id = <MSM_BUS_MASTER_VIDEO_P0>; +}; + +&mdp_smmu { + status = "ok"; + qcom,register-save; + qcom,skip-init; + qcom,no-smr-check; + #global-interrupts = <1>; + interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>; + vdd-supply = <&gdsc_mmagic_mdss>; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmss_mmagic_cfg_ahb_clk>, + <&clock_mmss clk_smmu_mdp_ahb_clk>, + <&clock_mmss clk_smmu_mdp_axi_clk>, + <&clock_mmss clk_mmagic_mdss_axi_clk>; + clock-names = "mmagic_ahb_clk", "mmagic_cfg_ahb_clk", + "mdp_ahb_clk", "mdp_axi_clk", + "mmagic_mdss_axi_clk"; + #clock-cells = <1>; + qcom,bus-master-id = <MSM_BUS_MASTER_MDP_PORT0>; +}; + +&rot_smmu { + status = "ok"; + qcom,register-save; + qcom,skip-init; + #global-interrupts = <1>; + interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH>; + vdd-supply = <&gdsc_mmagic_mdss>; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmss_mmagic_cfg_ahb_clk>, + <&clock_mmss clk_smmu_rot_ahb_clk>, + <&clock_mmss clk_smmu_rot_axi_clk>, + <&clock_mmss clk_mmagic_mdss_axi_clk>; + clock-names = "mmagic_ahb_clk", "mmagic_cfg_ahb_clk", + "rot_ahb_clk", "rot_axi_clk", + "mmagic_mdss_axi_clk"; + #clock-cells = <1>; + qcom,bus-master-id = <MSM_BUS_MASTER_ROTATOR>; +}; + +&kgsl_smmu { + status = "ok"; + qcom,register-save; + qcom,skip-init; + qcom,dynamic; + #global-interrupts = <1>; + interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>; + vdd-supply = <&gdsc_gpu>; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmss_mmagic_cfg_ahb_clk>, + <&clock_gpu clk_gpu_ahb_clk>, + <&clock_gcc clk_gcc_mmss_bimc_gfx_clk>, + <&clock_gcc clk_gcc_bimc_gfx_clk>; + clock-names = "mmagic_ahb_clk", "mmagic_cfg_ahb_clk", "gpu_ahb_clk", + "gcc_mmss_bimc_gfx_clk", "gcc_bimc_gfx_clk"; + #clock-cells = <1>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-arm-smmu-impl-defs-8996-v2.dtsi b/arch/arm64/boot/dts/qcom/msm-arm-smmu-impl-defs-8996-v2.dtsi new file mode 100644 index 000000000000..4a8fa08df531 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-arm-smmu-impl-defs-8996-v2.dtsi @@ -0,0 +1,643 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +&jpeg_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x30>, + <0x6074 0x30>, + <0x6078 0x30>, + <0x607c 0x30>, + <0x6080 0x30>, + <0x6084 0x30>, + <0x6088 0x30>, + <0x608c 0x30>, + <0x6170 0x24>, + <0x6174 0x26>, + <0x6178 0x28>, + <0x617c 0x2a>, + <0x6180 0x2c>, + <0x6184 0x2d>, + <0x6188 0x2e>, + <0x618c 0x2f>, + <0x6270 0x0>, + <0x6274 0x4>, + <0x6278 0xc>, + <0x627c 0xe>, + <0x6280 0x12>, + <0x6284 0x16>, + <0x6288 0x18>, + <0x628c 0x1c>, + <0x6470 0x0>, + <0x6474 0x1>, + <0x6478 0x1>, + <0x647c 0x1>, + <0x6480 0x2>, + <0x6484 0x2>, + <0x6488 0x3>, + <0x648c 0x3>, + <0x6570 0x3>, + <0x6574 0x5>, + <0x6578 0x7>, + <0x657c 0x9>, + <0x6580 0xb>, + <0x6584 0xd>, + <0x6588 0xf>, + <0x658c 0x11>, + <0x6670 0x13>, + <0x6674 0x16>, + <0x6678 0x1c>, + <0x667c 0x1e>, + <0x6680 0x21>, + <0x6684 0x24>, + <0x6688 0x26>, + <0x668c 0x2a>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0xc>, + <0x67b0 0x0>, + <0x67b4 0x3>, + <0x67b8 0x83>, + <0x67d0 0x10>, + <0x67dc 0x8>, + <0x67e0 0x10>, + <0x6800 0x0>, + <0x6804 0x1>, + <0x6808 0x2>, + <0x680c 0x3>, + <0x6810 0x4>, + <0x6814 0x5>, + <0x6818 0x6>, + <0x681c 0x7>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0xff>, + <0x6b24 0x204>, + <0x6b28 0x10800>, + <0x6b30 0x400>, + <0x678c 0x6>, + <0x6794 0x24>; +}; + +&kgsl_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0x3>, + <0x6b24 0x204>, + <0x6b28 0x11000>, + <0x6b30 0x800>, + <0x678c 0x8>, + <0x6794 0x28>; +}; + +&vfe_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x50>, + <0x6074 0x50>, + <0x6078 0x50>, + <0x607c 0x50>, + <0x6080 0x50>, + <0x6084 0x50>, + <0x6088 0x50>, + <0x608c 0x50>, + <0x6090 0x50>, + <0x6094 0x50>, + <0x6098 0x50>, + <0x609c 0x50>, + <0x60a0 0x50>, + <0x60a4 0x50>, + <0x60a8 0x50>, + <0x60ac 0x50>, + <0x6170 0x44>, + <0x6174 0x45>, + <0x6178 0x46>, + <0x617c 0x47>, + <0x6180 0x48>, + <0x6184 0x49>, + <0x6188 0x4a>, + <0x618c 0x4b>, + <0x6190 0x4c>, + <0x6194 0x4d>, + <0x6198 0x4e>, + <0x619c 0x4f>, + <0x61a0 0x50>, + <0x61a4 0x50>, + <0x61a8 0x50>, + <0x61ac 0x50>, + <0x6270 0x0>, + <0x6274 0x14>, + <0x6278 0x16>, + <0x627c 0x18>, + <0x6280 0x1a>, + <0x6284 0x1c>, + <0x6288 0x1e>, + <0x628c 0x20>, + <0x6290 0x22>, + <0x6294 0x36>, + <0x6298 0x38>, + <0x629c 0x3a>, + <0x62a0 0x3c>, + <0x62a4 0x3e>, + <0x62a8 0x40>, + <0x62ac 0x42>, + <0x6470 0x0>, + <0x6474 0x1>, + <0x6478 0x2>, + <0x647c 0x3>, + <0x6480 0x4>, + <0x6484 0x4>, + <0x6488 0x4>, + <0x648c 0x4>, + <0x6490 0x4>, + <0x6494 0x5>, + <0x6498 0x6>, + <0x649c 0x7>, + <0x64a0 0x8>, + <0x64a4 0x8>, + <0x64a8 0x8>, + <0x64ac 0x8>, + <0x6570 0x8>, + <0x6574 0xb>, + <0x6578 0xe>, + <0x657c 0x11>, + <0x6580 0x13>, + <0x6584 0x15>, + <0x6588 0x17>, + <0x658c 0x19>, + <0x6590 0x1b>, + <0x6594 0x1e>, + <0x6598 0x21>, + <0x659c 0x24>, + <0x65a0 0x26>, + <0x65a4 0x28>, + <0x65a8 0x2a>, + <0x65ac 0x2c>, + <0x6670 0x2e>, + <0x6674 0x38>, + <0x6678 0x39>, + <0x667c 0x3a>, + <0x6680 0x3b>, + <0x6684 0x3c>, + <0x6688 0x3d>, + <0x668c 0x3e>, + <0x6690 0x3f>, + <0x6694 0x49>, + <0x6698 0x4a>, + <0x669c 0x4b>, + <0x66a0 0x4c>, + <0x66a4 0x4d>, + <0x66a8 0x4e>, + <0x66ac 0x4f>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0xc>, + <0x67b0 0x0>, + <0x67b4 0x8>, + <0x67b8 0x138>, + <0x67d0 0x10>, + <0x67dc 0x8>, + <0x67e0 0x10>, + <0x6800 0x0>, + <0x6804 0x1>, + <0x6808 0x2>, + <0x680c 0x3>, + <0x6810 0x4>, + <0x6814 0x5>, + <0x6818 0x6>, + <0x681c 0x7>, + <0x6820 0x8>, + <0x6824 0x9>, + <0x6828 0xa>, + <0x682c 0xb>, + <0x6830 0xc>, + <0x6834 0xd>, + <0x6838 0xe>, + <0x683c 0xf>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0xffff>, + <0x6b24 0x204>, + <0x6b28 0x10a00>, + <0x6b30 0x500>, + <0x678c 0xb>, + <0x6794 0x2f>; +}; + +&venus_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x110>, + <0x6074 0x110>, + <0x6078 0x110>, + <0x607c 0x110>, + <0x6080 0x110>, + <0x6084 0x110>, + <0x6088 0x110>, + <0x608c 0x110>, + <0x6170 0xe1>, + <0x6174 0xe5>, + <0x6178 0xfc>, + <0x617c 0x100>, + <0x6180 0x104>, + <0x6184 0x108>, + <0x6188 0x10c>, + <0x618c 0x10e>, + <0x6270 0x0>, + <0x6274 0x8>, + <0x6278 0x28>, + <0x627c 0x69>, + <0x6280 0x8d>, + <0x6284 0xa5>, + <0x6288 0xc9>, + <0x628c 0xd9>, + <0x6470 0x0>, + <0x6474 0x0>, + <0x6478 0x0>, + <0x647c 0x0>, + <0x6480 0x0>, + <0x6484 0x0>, + <0x6488 0x0>, + <0x648c 0x0>, + <0x6570 0x0>, + <0x6574 0x4>, + <0x6578 0x1c>, + <0x657c 0x21>, + <0x6580 0x26>, + <0x6584 0x2a>, + <0x6588 0x2e>, + <0x658c 0x30>, + <0x6670 0x32>, + <0x6674 0x36>, + <0x6678 0x46>, + <0x667c 0x58>, + <0x6680 0x62>, + <0x6684 0x6d>, + <0x6688 0x75>, + <0x668c 0x7d>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0x2f>, + <0x67b0 0x0>, + <0x67b4 0x0>, + <0x67b8 0x190>, + <0x67d0 0x8>, + <0x67dc 0x8>, + <0x67e0 0x8>, + <0x6800 0x0>, + <0x6804 0x1>, + <0x6808 0x2>, + <0x680c 0x3>, + <0x6810 0x4>, + <0x6814 0x5>, + <0x6818 0x6>, + <0x681c 0x7>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0xff>, + <0x6b24 0x203>, + <0x6b28 0x10a00>, + <0x6b30 0x500>, + <0x678c 0x18>, + <0x6794 0x43>; +}; + +&mdp_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x70>, + <0x6074 0x70>, + <0x6170 0x52>, + <0x6174 0x68>, + <0x6270 0x0>, + <0x6274 0x3e>, + <0x6470 0x0>, + <0x6474 0x8>, + <0x6570 0x8>, + <0x6574 0x13>, + <0x6670 0x1e>, + <0x6674 0x5c>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0x1e>, + <0x67b0 0x0>, + <0x67b4 0x8>, + <0x67b8 0xb8>, + <0x67d0 0x10>, + <0x67dc 0x8>, + <0x67e0 0x10>, + <0x6800 0x0>, + <0x6804 0x1>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x678c 0x8>, + <0x6794 0x24>; +}; + +&rot_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0xc0>, + <0x6074 0xc0>, + <0x6078 0xc0>, + <0x6170 0xae>, + <0x6174 0xb6>, + <0x6178 0xbe>, + <0x6270 0x0>, + <0x6274 0x52>, + <0x6278 0xa6>, + <0x6470 0x0>, + <0x6474 0x2>, + <0x6478 0x4>, + <0x6570 0x4>, + <0x6574 0xc>, + <0x6578 0x15>, + <0x6670 0x19>, + <0x6674 0x42>, + <0x6678 0x6c>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0x12>, + <0x67b0 0x0>, + <0x67b4 0x4>, + <0x67b8 0xac>, + <0x67d0 0x10>, + <0x67dc 0x8>, + <0x67e0 0x10>, + <0x6800 0x0>, + <0x6804 0x2>, + <0x6808 0x1>, + <0x680c 0x2>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0xf>, + <0x6b24 0x204>, + <0x6b28 0x10a00>, + <0x6b30 0x500>, + <0x678c 0xc>, + <0x6794 0x44>; +}; + +&cpp_fd_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0xa0>, + <0x6074 0xa0>, + <0x6078 0xa0>, + <0x607c 0xa0>, + <0x6080 0xa0>, + <0x6084 0xa0>, + <0x6170 0x8a>, + <0x6174 0x8e>, + <0x6178 0x92>, + <0x617c 0x96>, + <0x6180 0x9a>, + <0x6184 0x9d>, + <0x6270 0x0>, + <0x6274 0x18>, + <0x6278 0x24>, + <0x627c 0x30>, + <0x6280 0x3c>, + <0x6284 0x54>, + <0x6470 0x0>, + <0x6474 0x0>, + <0x6478 0x1>, + <0x647c 0x2>, + <0x6480 0x2>, + <0x6484 0x2>, + <0x6570 0x3>, + <0x6574 0x12>, + <0x6578 0x1a>, + <0x657c 0x22>, + <0x6580 0x2a>, + <0x6584 0x39>, + <0x6670 0x3b>, + <0x6674 0x47>, + <0x6678 0x4d>, + <0x667c 0x53>, + <0x6680 0x59>, + <0x6684 0x65>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0x16>, + <0x67b0 0x0>, + <0x67b4 0x3>, + <0x67b8 0x1c3>, + <0x67d0 0x10>, + <0x67dc 0x8>, + <0x67e0 0x10>, + <0x6800 0x0>, + <0x6804 0x1>, + <0x6808 0x2>, + <0x680c 0x3>, + <0x6810 0x4>, + <0x6814 0x5>, + <0x6818 0x0>, + <0x681c 0x0>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0xff>, + <0x6b24 0x204>, + <0x6b28 0x10a00>, + <0x6b30 0x500>, + <0x678c 0x8>, + <0x6794 0x2f>; +}; + +&lpass_q6_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0x20>, + <0x67b0 0x0>, + <0x67b4 0x8>, + <0x67b8 0xc8>, + <0x67d0 0x4>, + <0x67dc 0x8>, + <0x67e0 0x8>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0xffff>, + <0x6b24 0x202>, + <0x6b28 0x10a00>, + <0x6b30 0x500>, + <0x6784 0x0>, + <0x678c 0x10>; +}; + +&anoc0_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x8>, + <0x6074 0x30>, + <0x6078 0x40>, + <0x6170 0x0>, + <0x6174 0x3>, + <0x6178 0x5>, + <0x6270 0x0>, + <0x6274 0x0>, + <0x6278 0x0>, + <0x6470 0x0>, + <0x6474 0x2>, + <0x6478 0x4>, + <0x6570 0x6>, + <0x6574 0x12>, + <0x6578 0x1c>, + <0x6670 0x26>, + <0x6674 0x30>, + <0x6678 0x40>, + <0x67a0 0x0>, + <0x67a4 0x58>, + <0x67a8 0x60>, + <0x67b0 0x0>, + <0x67b4 0x6>, + <0x67b8 0x86>, + <0x67d0 0x0>, + <0x67dc 0x4>, + <0x67e0 0x4>, + <0x6800 0x0>, + <0x6804 0x1>, + <0x6808 0x2>, + <0x680c 0x0>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6784 0x0>, + <0x678c 0x10>; +}; + +&anoc1_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x6>, + <0x6074 0x8>, + <0x6078 0xb>, + <0x607c 0x4b>, + <0x6170 0x0>, + <0x6174 0x1>, + <0x6178 0x2>, + <0x617c 0x5>, + <0x6270 0x0>, + <0x6274 0x0>, + <0x6278 0x0>, + <0x627c 0x0>, + <0x6470 0x0>, + <0x6474 0x2>, + <0x6478 0x2>, + <0x647c 0x4>, + <0x6570 0x4>, + <0x6574 0x6>, + <0x6578 0x7>, + <0x657c 0xd>, + <0x6670 0xe>, + <0x6674 0x12>, + <0x6678 0x15>, + <0x667c 0x1f>, + <0x67a0 0x0>, + <0x67a4 0x4a>, + <0x67a8 0x50>, + <0x67b0 0x0>, + <0x67b4 0x4>, + <0x67b8 0x2c>, + <0x67d0 0x0>, + <0x67dc 0x4>, + <0x67e0 0x8>, + <0x6800 0x2>, + <0x6804 0x2>, + <0x6808 0x0>, + <0x680c 0x0>, + <0x6810 0x3>, + <0x6814 0x3>, + <0x6818 0x1>, + <0x681c 0x0>, + <0x6a00 0x6>, + <0x6b00 0x3ff>; +}; + +&anoc2_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x13>, + <0x6074 0x1b>, + <0x6078 0x1f>, + <0x607c 0x55>, + <0x6080 0x58>, + <0x6084 0x78>, + <0x6088 0x80>, + <0x6170 0x0>, + <0x6174 0x0>, + <0x6178 0x0>, + <0x617c 0xe>, + <0x6180 0xf>, + <0x6184 0x10>, + <0x6188 0x11>, + <0x6270 0x0>, + <0x6274 0x0>, + <0x6278 0x0>, + <0x627c 0x0>, + <0x6280 0x0>, + <0x6284 0x0>, + <0x6288 0x0>, + <0x6470 0x0>, + <0x6474 0x2>, + <0x6478 0x2>, + <0x647c 0x6>, + <0x6480 0x6>, + <0x6484 0x8>, + <0x6488 0x8>, + <0x6570 0xc>, + <0x6574 0xe>, + <0x6578 0x16>, + <0x657c 0x1a>, + <0x6580 0x1d>, + <0x6584 0x21>, + <0x6588 0x23>, + <0x6670 0x27>, + <0x6674 0x2f>, + <0x6678 0x3f>, + <0x667c 0x47>, + <0x6680 0x4c>, + <0x6684 0x54>, + <0x6688 0x58>, + <0x67a0 0x0>, + <0x67a4 0x8d>, + <0x67a8 0xa0>, + <0x67b0 0x0>, + <0x67b4 0xc>, + <0x67b8 0x78>, + <0x67d0 0x0>, + <0x67dc 0x4>, + <0x67e0 0x8>, + <0x6800 0x0>, + <0x6804 0x0>, + <0x6808 0x1>, + <0x680c 0x1>, + <0x6810 0x0>, + <0x6814 0x0>, + <0x6818 0x1>, + <0x681c 0x1>, + <0x6820 0x3>, + <0x6824 0x2>, + <0x6828 0x5>, + <0x682c 0x4>, + <0x6830 0x6>, + <0x6834 0x6>, + <0x6838 0x0>, + <0x683c 0x0>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x678c 0xa>, + <0x6794 0x1a>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-arm-smmu-impl-defs-8996-v3.dtsi b/arch/arm64/boot/dts/qcom/msm-arm-smmu-impl-defs-8996-v3.dtsi new file mode 100644 index 000000000000..d310f65f33c7 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-arm-smmu-impl-defs-8996-v3.dtsi @@ -0,0 +1,646 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +&jpeg_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x30>, + <0x6074 0x30>, + <0x6078 0x30>, + <0x607c 0x30>, + <0x6080 0x30>, + <0x6084 0x30>, + <0x6088 0x30>, + <0x608c 0x30>, + <0x6170 0x24>, + <0x6174 0x26>, + <0x6178 0x28>, + <0x617c 0x2a>, + <0x6180 0x2c>, + <0x6184 0x2d>, + <0x6188 0x2e>, + <0x618c 0x2f>, + <0x6270 0x0>, + <0x6274 0x4>, + <0x6278 0xc>, + <0x627c 0xe>, + <0x6280 0x12>, + <0x6284 0x16>, + <0x6288 0x18>, + <0x628c 0x1c>, + <0x6470 0x0>, + <0x6474 0x1>, + <0x6478 0x1>, + <0x647c 0x1>, + <0x6480 0x2>, + <0x6484 0x2>, + <0x6488 0x3>, + <0x648c 0x3>, + <0x6570 0x3>, + <0x6574 0x5>, + <0x6578 0x7>, + <0x657c 0x9>, + <0x6580 0xb>, + <0x6584 0xd>, + <0x6588 0xf>, + <0x658c 0x11>, + <0x6670 0x13>, + <0x6674 0x16>, + <0x6678 0x1c>, + <0x667c 0x1e>, + <0x6680 0x21>, + <0x6684 0x24>, + <0x6688 0x26>, + <0x668c 0x2a>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0xc>, + <0x67b0 0x0>, + <0x67b4 0x3>, + <0x67b8 0x83>, + <0x67d0 0x10>, + <0x67dc 0x8>, + <0x67e0 0x10>, + <0x6800 0x0>, + <0x6804 0x1>, + <0x6808 0x2>, + <0x680c 0x3>, + <0x6810 0x4>, + <0x6814 0x5>, + <0x6818 0x6>, + <0x681c 0x7>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0xff>, + <0x6b24 0x204>, + <0x6b28 0x10800>, + <0x6b30 0x400>, + <0x678c 0x6>, + <0x6794 0x24>; +}; + +&kgsl_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0x3>, + <0x6b24 0x204>, + <0x6b28 0x11000>, + <0x6b30 0x800>, + <0x678c 0x8>, + <0x6794 0x28>; +}; + +&vfe_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x50>, + <0x6074 0x50>, + <0x6078 0x50>, + <0x607c 0x50>, + <0x6080 0x50>, + <0x6084 0x50>, + <0x6088 0x50>, + <0x608c 0x50>, + <0x6090 0x50>, + <0x6094 0x50>, + <0x6098 0x50>, + <0x609c 0x50>, + <0x60a0 0x50>, + <0x60a4 0x50>, + <0x60a8 0x50>, + <0x60ac 0x50>, + <0x6170 0x44>, + <0x6174 0x45>, + <0x6178 0x46>, + <0x617c 0x47>, + <0x6180 0x48>, + <0x6184 0x49>, + <0x6188 0x4a>, + <0x618c 0x4b>, + <0x6190 0x4c>, + <0x6194 0x4d>, + <0x6198 0x4e>, + <0x619c 0x4f>, + <0x61a0 0x50>, + <0x61a4 0x50>, + <0x61a8 0x50>, + <0x61ac 0x50>, + <0x6270 0x0>, + <0x6274 0x14>, + <0x6278 0x16>, + <0x627c 0x18>, + <0x6280 0x1a>, + <0x6284 0x1c>, + <0x6288 0x1e>, + <0x628c 0x20>, + <0x6290 0x22>, + <0x6294 0x36>, + <0x6298 0x38>, + <0x629c 0x3a>, + <0x62a0 0x3c>, + <0x62a4 0x3e>, + <0x62a8 0x40>, + <0x62ac 0x42>, + <0x6470 0x0>, + <0x6474 0x1>, + <0x6478 0x2>, + <0x647c 0x3>, + <0x6480 0x4>, + <0x6484 0x4>, + <0x6488 0x4>, + <0x648c 0x4>, + <0x6490 0x4>, + <0x6494 0x5>, + <0x6498 0x6>, + <0x649c 0x7>, + <0x64a0 0x8>, + <0x64a4 0x8>, + <0x64a8 0x8>, + <0x64ac 0x8>, + <0x6570 0x8>, + <0x6574 0xb>, + <0x6578 0xe>, + <0x657c 0x11>, + <0x6580 0x13>, + <0x6584 0x15>, + <0x6588 0x17>, + <0x658c 0x19>, + <0x6590 0x1b>, + <0x6594 0x1e>, + <0x6598 0x21>, + <0x659c 0x24>, + <0x65a0 0x26>, + <0x65a4 0x28>, + <0x65a8 0x2a>, + <0x65ac 0x2c>, + <0x6670 0x2e>, + <0x6674 0x38>, + <0x6678 0x39>, + <0x667c 0x3a>, + <0x6680 0x3b>, + <0x6684 0x3c>, + <0x6688 0x3d>, + <0x668c 0x3e>, + <0x6690 0x3f>, + <0x6694 0x49>, + <0x6698 0x4a>, + <0x669c 0x4b>, + <0x66a0 0x4c>, + <0x66a4 0x4d>, + <0x66a8 0x4e>, + <0x66ac 0x4f>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0xc>, + <0x67b0 0x0>, + <0x67b4 0x8>, + <0x67b8 0x138>, + <0x67d0 0x10>, + <0x67dc 0x8>, + <0x67e0 0x10>, + <0x6800 0x0>, + <0x6804 0x1>, + <0x6808 0x2>, + <0x680c 0x3>, + <0x6810 0x4>, + <0x6814 0x5>, + <0x6818 0x6>, + <0x681c 0x7>, + <0x6820 0x8>, + <0x6824 0x9>, + <0x6828 0xa>, + <0x682c 0xb>, + <0x6830 0xc>, + <0x6834 0xd>, + <0x6838 0xe>, + <0x683c 0xf>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0xffff>, + <0x6b24 0x204>, + <0x6b28 0x10a00>, + <0x6b30 0x500>, + <0x678c 0xb>, + <0x6794 0x2f>; +}; + +&venus_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x110>, + <0x6074 0x110>, + <0x6078 0x110>, + <0x607c 0x110>, + <0x6080 0x110>, + <0x6084 0x110>, + <0x6088 0x110>, + <0x608c 0x110>, + <0x6170 0xe1>, + <0x6174 0xe5>, + <0x6178 0xfc>, + <0x617c 0x100>, + <0x6180 0x104>, + <0x6184 0x108>, + <0x6188 0x10c>, + <0x618c 0x10e>, + <0x6270 0x0>, + <0x6274 0x8>, + <0x6278 0x28>, + <0x627c 0x69>, + <0x6280 0x8d>, + <0x6284 0xa5>, + <0x6288 0xc9>, + <0x628c 0xd9>, + <0x6470 0x0>, + <0x6474 0x0>, + <0x6478 0x0>, + <0x647c 0x0>, + <0x6480 0x0>, + <0x6484 0x0>, + <0x6488 0x0>, + <0x648c 0x0>, + <0x6570 0x0>, + <0x6574 0x4>, + <0x6578 0x1c>, + <0x657c 0x21>, + <0x6580 0x26>, + <0x6584 0x2a>, + <0x6588 0x2e>, + <0x658c 0x30>, + <0x6670 0x32>, + <0x6674 0x36>, + <0x6678 0x46>, + <0x667c 0x58>, + <0x6680 0x62>, + <0x6684 0x6d>, + <0x6688 0x75>, + <0x668c 0x7d>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0x2f>, + <0x67b0 0x0>, + <0x67b4 0x0>, + <0x67b8 0x190>, + <0x67d0 0x8>, + <0x67dc 0x8>, + <0x67e0 0x8>, + <0x6800 0x0>, + <0x6804 0x1>, + <0x6808 0x2>, + <0x680c 0x3>, + <0x6810 0x4>, + <0x6814 0x5>, + <0x6818 0x6>, + <0x681c 0x7>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0xff>, + <0x6b24 0x203>, + <0x6b28 0x10a00>, + <0x6b30 0x500>, + <0x678c 0x18>, + <0x6794 0x43>; +}; + +&mdp_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x70>, + <0x6074 0x70>, + <0x6170 0x52>, + <0x6174 0x68>, + <0x6270 0x0>, + <0x6274 0x3e>, + <0x6470 0x0>, + <0x6474 0x8>, + <0x6570 0x8>, + <0x6574 0x13>, + <0x6670 0x1e>, + <0x6674 0x5c>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0x1e>, + <0x67b0 0x0>, + <0x67b4 0x8>, + <0x67b8 0xb8>, + <0x67d0 0x10>, + <0x67dc 0x8>, + <0x67e0 0x10>, + <0x6800 0x0>, + <0x6804 0x1>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x678c 0x8>, + <0x6794 0x24>; +}; + +&rot_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0xc0>, + <0x6074 0xc0>, + <0x6078 0xc0>, + <0x6170 0xae>, + <0x6174 0xb6>, + <0x6178 0xbe>, + <0x6270 0x0>, + <0x6274 0x52>, + <0x6278 0xa6>, + <0x6470 0x0>, + <0x6474 0x2>, + <0x6478 0x4>, + <0x6570 0x4>, + <0x6574 0xc>, + <0x6578 0x15>, + <0x6670 0x19>, + <0x6674 0x42>, + <0x6678 0x6c>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0x12>, + <0x67b0 0x0>, + <0x67b4 0x4>, + <0x67b8 0xac>, + <0x67d0 0x10>, + <0x67dc 0x8>, + <0x67e0 0x10>, + <0x6800 0x0>, + <0x6804 0x2>, + <0x6808 0x1>, + <0x680c 0x2>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0xf>, + <0x6b24 0x204>, + <0x6b28 0x10a00>, + <0x6b30 0x500>, + <0x678c 0xc>, + <0x6794 0x44>; +}; + +&cpp_fd_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0xa0>, + <0x6074 0xa0>, + <0x6078 0xa0>, + <0x607c 0xa0>, + <0x6080 0xa0>, + <0x6084 0xa0>, + <0x6170 0x8a>, + <0x6174 0x8e>, + <0x6178 0x92>, + <0x617c 0x96>, + <0x6180 0x9a>, + <0x6184 0x9d>, + <0x6270 0x0>, + <0x6274 0x18>, + <0x6278 0x24>, + <0x627c 0x30>, + <0x6280 0x3c>, + <0x6284 0x54>, + <0x6470 0x0>, + <0x6474 0x0>, + <0x6478 0x1>, + <0x647c 0x2>, + <0x6480 0x2>, + <0x6484 0x2>, + <0x6570 0x3>, + <0x6574 0x12>, + <0x6578 0x1a>, + <0x657c 0x22>, + <0x6580 0x2a>, + <0x6584 0x39>, + <0x6670 0x3b>, + <0x6674 0x47>, + <0x6678 0x4d>, + <0x667c 0x53>, + <0x6680 0x59>, + <0x6684 0x65>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0x16>, + <0x67b0 0x0>, + <0x67b4 0x3>, + <0x67b8 0x1c3>, + <0x67d0 0x10>, + <0x67dc 0x8>, + <0x67e0 0x10>, + <0x6800 0x0>, + <0x6804 0x1>, + <0x6808 0x2>, + <0x680c 0x3>, + <0x6810 0x4>, + <0x6814 0x5>, + <0x6818 0x0>, + <0x681c 0x0>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0xff>, + <0x6b24 0x204>, + <0x6b28 0x10a00>, + <0x6b30 0x500>, + <0x678c 0x8>, + <0x6794 0x2f>; +}; + +&lpass_q6_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x67a0 0x0>, + <0x67a4 0x0>, + <0x67a8 0x20>, + <0x67b0 0x0>, + <0x67b4 0x8>, + <0x67b8 0xc8>, + <0x67d0 0x4>, + <0x67dc 0x8>, + <0x67e0 0x8>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6b18 0xffff>, + <0x6b24 0x202>, + <0x6b28 0x10a00>, + <0x6b30 0x500>, + <0x6784 0x0>, + <0x678c 0x10>; +}; + +&anoc0_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x8>, + <0x6074 0x30>, + <0x6078 0x40>, + <0x6170 0x0>, + <0x6174 0x3>, + <0x6178 0x5>, + <0x6270 0x0>, + <0x6274 0x0>, + <0x6278 0x0>, + <0x6470 0x0>, + <0x6474 0x2>, + <0x6478 0x4>, + <0x6570 0x6>, + <0x6574 0x12>, + <0x6578 0x1c>, + <0x6670 0x26>, + <0x6674 0x30>, + <0x6678 0x40>, + <0x67a0 0x0>, + <0x67a4 0x58>, + <0x67a8 0x60>, + <0x67b0 0x0>, + <0x67b4 0x6>, + <0x67b8 0x86>, + <0x67d0 0x0>, + <0x67dc 0x4>, + <0x67e0 0x4>, + <0x6800 0x0>, + <0x6804 0x1>, + <0x6808 0x2>, + <0x680c 0x0>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6d30 0x41bd>, + <0x6784 0x0>, + <0x678c 0x10>; +}; + +&anoc1_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x6>, + <0x6074 0x8>, + <0x6078 0xb>, + <0x607c 0x4b>, + <0x6170 0x0>, + <0x6174 0x1>, + <0x6178 0x2>, + <0x617c 0x5>, + <0x6270 0x0>, + <0x6274 0x0>, + <0x6278 0x0>, + <0x627c 0x0>, + <0x6470 0x0>, + <0x6474 0x2>, + <0x6478 0x2>, + <0x647c 0x4>, + <0x6570 0x4>, + <0x6574 0x6>, + <0x6578 0x7>, + <0x657c 0xd>, + <0x6670 0xe>, + <0x6674 0x12>, + <0x6678 0x15>, + <0x667c 0x1f>, + <0x67a0 0x0>, + <0x67a4 0x4a>, + <0x67a8 0x50>, + <0x67b0 0x0>, + <0x67b4 0x4>, + <0x67b8 0x2c>, + <0x67d0 0x0>, + <0x67dc 0x4>, + <0x67e0 0x8>, + <0x6800 0x2>, + <0x6804 0x2>, + <0x6808 0x0>, + <0x680c 0x0>, + <0x6810 0x3>, + <0x6814 0x3>, + <0x6818 0x1>, + <0x681c 0x0>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6d30 0x41bd>; +}; + +&anoc2_smmu { + attach-impl-defs = <0x6000 0x70>, + <0x6060 0x1055>, + <0x6070 0x13>, + <0x6074 0x1b>, + <0x6078 0x1f>, + <0x607c 0x55>, + <0x6080 0x58>, + <0x6084 0x78>, + <0x6088 0x80>, + <0x6170 0x0>, + <0x6174 0x0>, + <0x6178 0x0>, + <0x617c 0xe>, + <0x6180 0xf>, + <0x6184 0x10>, + <0x6188 0x11>, + <0x6270 0x0>, + <0x6274 0x0>, + <0x6278 0x0>, + <0x627c 0x0>, + <0x6280 0x0>, + <0x6284 0x0>, + <0x6288 0x0>, + <0x6470 0x0>, + <0x6474 0x2>, + <0x6478 0x2>, + <0x647c 0x6>, + <0x6480 0x6>, + <0x6484 0x8>, + <0x6488 0x8>, + <0x6570 0xc>, + <0x6574 0xe>, + <0x6578 0x16>, + <0x657c 0x1a>, + <0x6580 0x1d>, + <0x6584 0x21>, + <0x6588 0x23>, + <0x6670 0x27>, + <0x6674 0x2f>, + <0x6678 0x3f>, + <0x667c 0x47>, + <0x6680 0x4c>, + <0x6684 0x54>, + <0x6688 0x58>, + <0x67a0 0x0>, + <0x67a4 0x8d>, + <0x67a8 0xa0>, + <0x67b0 0x0>, + <0x67b4 0xc>, + <0x67b8 0x78>, + <0x67d0 0x0>, + <0x67dc 0x4>, + <0x67e0 0x8>, + <0x6800 0x0>, + <0x6804 0x0>, + <0x6808 0x1>, + <0x680c 0x1>, + <0x6810 0x0>, + <0x6814 0x0>, + <0x6818 0x1>, + <0x681c 0x1>, + <0x6820 0x3>, + <0x6824 0x2>, + <0x6828 0x5>, + <0x682c 0x4>, + <0x6830 0x6>, + <0x6834 0x6>, + <0x6838 0x0>, + <0x683c 0x0>, + <0x6a00 0x6>, + <0x6b00 0x3ff>, + <0x6d30 0x41bd>, + <0x678c 0xa>, + <0x6794 0x1a>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-arm-smmu.dtsi b/arch/arm64/boot/dts/qcom/msm-arm-smmu.dtsi new file mode 100644 index 000000000000..7c1cd3d26112 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-arm-smmu.dtsi @@ -0,0 +1,99 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + jpeg_smmu: arm,smmu-jpeg@d80000 { + status = "disabled"; + compatible = "qcom,smmu-v2"; + qcom,tz-device-id = "JPEG"; + reg = <0xd80000 0x10000>; + #iommu-cells = <1>; + }; + + kgsl_smmu: arm,smmu-kgsl@b40000 { + status = "disabled"; + compatible = "qcom,smmu-v2"; + qcom,tz-device-id = "GPU"; + qcom,dynamic; + reg = <0xb40000 0x10000>; + #iommu-cells = <1>; + }; + + vfe_smmu: arm,smmu-vfe@da0000 { + status = "disabled"; + compatible = "qcom,smmu-v2"; + qcom,tz-device-id = "VFE"; + reg = <0xda0000 0x10000>; + #iommu-cells = <1>; + }; + + venus_smmu: arm,smmu-venus@d40000 { + status = "disabled"; + compatible = "qcom,smmu-v2"; + qcom,tz-device-id = "VIDEO"; + reg = <0xd40000 0x20000>; + #iommu-cells = <1>; + }; + + mdp_smmu: arm,smmu-mdp@d00000 { + status = "disabled"; + compatible = "qcom,smmu-v2"; + qcom,tz-device-id = "MDSS"; + reg = <0xd00000 0x10000>; + #iommu-cells = <1>; + }; + + rot_smmu: arm,smmu-rot@d20000 { + status = "disabled"; + compatible = "qcom,smmu-v2"; + qcom,tz-device-id = "ROT"; + reg = <0xd20000 0x10000>; + #iommu-cells = <1>; + }; + + cpp_fd_smmu: arm,smmu-cpp_fd@d60000 { + status = "disabled"; + compatible = "qcom,smmu-v2"; + qcom,tz-device-id = "CPP"; + reg = <0xd60000 0x10000>; + #iommu-cells = <1>; + }; + + lpass_q6_smmu: arm,smmu-lpass_q6@1600000 { + status = "disabled"; + compatible = "qcom,smmu-v2"; + qcom,tz-device-id = "LPASS"; + reg = <0x1600000 0x20000>; + #iommu-cells = <1>; + }; + + anoc0_smmu: arm,smmu-anoc0@1640000 { + status = "disabled"; + compatible = "qcom,smmu-v2"; + reg = <0x1640000 0x10000>; + #iommu-cells = <1>; + }; + + anoc1_smmu: arm,smmu-anoc1@1660000 { + status = "disabled"; + compatible = "qcom,smmu-v2"; + reg = <0x1660000 0x10000>; + #iommu-cells = <1>; + }; + + anoc2_smmu: arm,smmu-anoc2@1680000 { + status = "disabled"; + compatible = "qcom,smmu-v2"; + reg = <0x1680000 0x20000>; + #iommu-cells = <1>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-gdsc-8996.dtsi b/arch/arm64/boot/dts/qcom/msm-gdsc-8996.dtsi new file mode 100644 index 000000000000..3c536e158f2d --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-gdsc-8996.dtsi @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + gdsc_mmagic_bimc: qcom,gdsc@8c529c { + compatible = "regulator-fixed"; + regulator-name = "gdsc_mmagic_bimc"; + reg = <0x8c529c 0x4>; + status = "disabled"; + }; + + gdsc_mmagic_video: qcom,gdsc@8c119c { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_mmagic_video"; + reg = <0x8c119c 0x4>, + <0x8c120c 0x4>; + reg-names = "base", "hw_ctrl_addr"; + qcom,no-status-check-on-disable; + status = "disabled"; + }; + + gdsc_mmagic_mdss: qcom,gdsc@8c247c { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_mmagic_mdss"; + reg = <0x8c247c 0x4>, + <0x8c2480 0x4>; + reg-names = "base", "hw_ctrl_addr"; + qcom,no-status-check-on-disable; + status = "disabled"; + }; + + gdsc_mmagic_camss: qcom,gdsc@8c3c4c { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_mmagic_camss"; + reg = <0x8c3c4c 0x4>, + <0x8c3c50 0x4>; + reg-names = "base", "hw_ctrl_addr"; + qcom,no-status-check-on-disable; + status = "disabled"; + }; + + gdsc_venus: qcom,gdsc@8c1024 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_venus"; + reg = <0x8c1024 0x4>; + status = "disabled"; + }; + + gdsc_venus_core0: qcom,gdsc@8c1040 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_venus_core0"; + reg = <0x8c1040 0x4>; + status = "disabled"; + }; + + gdsc_venus_core1: qcom,gdsc@8c1044 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_venus_core1"; + reg = <0x8c1044 0x4>; + status = "disabled"; + }; + + gdsc_camss_top: qcom,gdsc@8c34a0 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_camss_top"; + reg = <0x8c34a0 0x4>; + status = "disabled"; + }; + + gdsc_vfe0: qcom,gdsc@8c3664 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_vfe0"; + reg = <0x8c3664 0x4>; + status = "disabled"; + }; + + gdsc_vfe1: qcom,gdsc@8c3674 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_vfe1"; + reg = <0x8c3674 0x4>; + status = "disabled"; + }; + + gdsc_mdss: qcom,gdsc@8c2304 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_mdss"; + reg = <0x8c2304 0x4>; + status = "disabled"; + }; + + gdsc_jpeg: qcom,gdsc@8c35a4 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_jpeg"; + reg = <0x8c35a4 0x4>; + status = "disabled"; + }; + + gdsc_cpp: qcom,gdsc@8c36d4 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_cpp"; + reg = <0x8c36d4 0x4>; + status = "disabled"; + }; + + gdsc_pcie_0: qcom,gdsc@36b004 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_pcie_0"; + reg = <0x36b004 0x4>; + status = "disabled"; + }; + + gdsc_pcie_1: qcom,gdsc@36d004 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_pcie_1"; + reg = <0x36d004 0x4>; + status = "disabled"; + }; + + gdsc_pcie_2: qcom,gdsc@36e004 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_pcie_2"; + reg = <0x36e004 0x4>; + status = "disabled"; + }; + + gdsc_usb30: qcom,gdsc@30f004 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_usb30"; + reg = <0x30f004 0x4>; + status = "disabled"; + }; + + gdsc_ufs: qcom,gdsc@375004 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_ufs"; + reg = <0x375004 0x4>; + status = "disabled"; + }; + + gdsc_fd: qcom,gdsc@8c3b64 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_fd"; + reg = <0x8c3b64 0x4>; + status = "disabled"; + }; + + gdsc_gpu: qcom,gdsc@8c4034 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_gpu"; + reg = <0x8c4034 0x4>, + <0x8c4038 0x4>; + reg-names = "base", "hw_ctrl_addr"; + qcom,no-status-check-on-disable; + status = "disabled"; + }; + + gdsc_gpu_gx: qcom,gdsc@8c4024 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_gpu_gx"; + reg = <0x8c4024 0x4>, + <0x8c4300 0x4>; + reg-names = "base", "domain_addr"; + status = "disabled"; + }; + + gdsc_hlos1_vote_aggre0_noc: qcom,gdsc@37d024 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_hlos1_vote_aggre0_noc"; + reg = <0x37d024 0x4>; + qcom,no-status-check-on-disable; + status = "disabled"; + }; + + gdsc_hlos1_vote_lpass_adsp: qcom,gdsc@37d034 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_hlos1_vote_lpass_adsp"; + reg = <0x37d034 0x4>; + qcom,no-status-check-on-disable; + status = "disabled"; + }; + + gdsc_hlos1_vote_lpass_core: qcom,gdsc@37d038 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_hlos1_vote_lpass_core"; + reg = <0x37d038 0x4>; + qcom,no-status-check-on-disable; + status = "disabled"; + }; + + gdsc_aggre0_noc: qcom,gdsc@381004 { + compatible = "qcom,gdsc"; + regulator-name = "gdsc_aggre0_noc"; + reg = <0x381004 0x4>, + <0x381028 0x4>; + reg-names = "base", "hw_ctrl_addr"; + qcom,no-status-check-on-disable; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-pm8004.dtsi b/arch/arm64/boot/dts/qcom/msm-pm8004.dtsi new file mode 100644 index 000000000000..517d73fd6cde --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-pm8004.dtsi @@ -0,0 +1,84 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&spmi_bus { + qcom,pm8004@4 { + spmi-slave-container; + reg = <0x4>; + #address-cells = <1>; + #size-cells = <1>; + + pm8004_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,s3-debounce = <32>; + qcom,s3-src = "kpdpwr-and-resin"; + status = "disabled"; + }; + + qcom,temp-alarm@2400 { + compatible = "qcom,qpnp-temp-alarm"; + reg = <0x2400 0x100>; + interrupts = <0x4 0x24 0x0>; + label = "pm8004_tz"; + qcom,threshold-set = <0>; + qcom,default-temp = <37000>; + }; + + pm8004_mpps: mpps { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pm8004-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"; + }; + }; + }; + + qcom,pm8004@5 { + spmi-slave-container; + reg = <0x5>; + #address-cells = <1>; + #size-cells = <1>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-pm8994-rpm-regulator.dtsi b/arch/arm64/boot/dts/qcom/msm-pm8994-rpm-regulator.dtsi new file mode 100644 index 000000000000..8c32136aabd4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-pm8994-rpm-regulator.dtsi @@ -0,0 +1,697 @@ +/* Copyright (c) 2014, 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. + */ + +&rpm_bus { + rpm-regulator-smpa1 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <1>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s1 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s1"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa2 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <2>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s2 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s2"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa3 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <3>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s3 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s3"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa4 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <4>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s4 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s4"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa5 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <5>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s5 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s5"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpa7 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpa"; + qcom,resource-id = <7>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s7 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s7"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa1 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <1>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l1 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l1"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa2 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <2>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l2 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l2"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa3 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <3>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l3 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l3"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa4 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <4>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l4 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l4"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa6 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <6>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l6 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l6"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa8 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <8>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <5000>; + status = "disabled"; + + regulator-l8 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l8"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa9 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <9>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l9 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l9"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa10 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <10>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l10 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l10"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa11 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <11>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l11 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l11"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa12 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <12>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l12 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l12"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa13 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <13>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l13 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l13"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa14 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <14>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l14 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l14"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa15 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <15>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l15 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l15"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa16 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <16>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l16 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l16"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa17 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <17>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l17 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l17"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa18 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <18>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l18 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l18"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa19 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <19>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l19 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l19"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa20 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <20>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l20 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l20"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa21 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <21>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l21 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l21"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa22 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <22>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l22 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l22"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa23 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <23>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l23 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l23"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa24 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <24>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l24 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l24"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa25 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <25>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l25 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l25"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa26 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <26>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l26 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l26"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa27 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <27>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l27 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l27"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa28 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <28>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l28 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l28"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa29 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <29>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l29 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l29"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa30 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <30>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <5000>; + status = "disabled"; + + regulator-l30 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l30"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa31 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <31>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <10000>; + status = "disabled"; + + regulator-l31 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l31"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-ldoa32 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "ldoa"; + qcom,resource-id = <32>; + qcom,regulator-type = <0>; + qcom,hpm-min-load = <5000>; + status = "disabled"; + + regulator-l32 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l32"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-vsa1 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "vsa"; + qcom,resource-id = <1>; + qcom,regulator-type = <2>; + status = "disabled"; + + regulator-lvs1 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_lvs1"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-vsa2 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "vsa"; + qcom,resource-id = <2>; + qcom,regulator-type = <2>; + status = "disabled"; + + regulator-lvs2 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_lvs2"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpb1 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpb"; + qcom,resource-id = <1>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s1 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmi8994_s1"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpb2 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpb"; + qcom,resource-id = <2>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s2 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmi8994_s2"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-bstb { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "bstb"; + qcom,resource-id = <1>; + qcom,regulator-type = <2>; + status = "disabled"; + + regulator-bst { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmi8994_boost"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-bbyb { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "bbyb"; + qcom,resource-id = <1>; + qcom,regulator-type = <0>; + status = "disabled"; + + regulator-bby { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmi8994_boostbypass"; + qcom,set = <3>; + status = "disabled"; + }; + }; + + rpm-regulator-smpc2 { + compatible = "qcom,rpm-smd-regulator-resource"; + qcom,resource-name = "smpc"; + qcom,resource-id = <2>; + qcom,regulator-type = <1>; + qcom,hpm-min-load = <100000>; + status = "disabled"; + + regulator-s2 { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8004_s2"; + qcom,set = <3>; + status = "disabled"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-pm8994.dtsi b/arch/arm64/boot/dts/qcom/msm-pm8994.dtsi new file mode 100644 index 000000000000..c913f53ce9ae --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-pm8994.dtsi @@ -0,0 +1,436 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&spmi_bus { + #address-cells = <1>; + #size-cells = <0>; + interrupt-controller; + #interrupt-cells = <3>; + + qcom,pm8994@0 { + spmi-slave-container; + reg = <0x0>; + #address-cells = <1>; + #size-cells = <1>; + + pm8994_revid: qcom,revid@100 { + compatible = "qcom,qpnp-revid"; + reg = <0x100 0x100>; + }; + + qcom,temp-alarm@2400 { + compatible = "qcom,qpnp-temp-alarm"; + reg = <0x2400 0x100>; + interrupts = <0x0 0x24 0x0>; + label = "pm8994_tz"; + qcom,channel-num = <8>; + qcom,threshold-set = <0>; + qcom,temp_alarm-vadc = <&pm8994_vadc>; + }; + + 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,system-reset; + qcom,store-hard-reset-reason; + + qcom,pon_1 { + qcom,pon-type = <0>; + qcom,pull-up = <1>; + linux,code = <116>; + qcom,support-reset = <1>; + qcom,s1-timer = <10256>; + qcom,s2-timer = <2000>; + qcom,s2-type = <1>; + }; + + 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,pull-up = <1>; + qcom,s1-timer = <6720>; + qcom,s2-timer = <2000>; + qcom,s2-type = <7>; + qcom,use-bark; + }; + }; + + pm8994_gpios: gpios { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pm8994-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>; + status = "disabled"; + }; + + gpio@c800 { + reg = <0xc800 0x100>; + qcom,pin-num = <9>; + status = "disabled"; + }; + + gpio@c900 { + reg = <0xc900 0x100>; + qcom,pin-num = <10>; + status = "disabled"; + }; + + gpio@ca00 { + reg = <0xca00 0x100>; + qcom,pin-num = <11>; + status = "disabled"; + }; + + gpio@cb00 { + reg = <0xcb00 0x100>; + qcom,pin-num = <12>; + status = "disabled"; + }; + + gpio@cc00 { + reg = <0xcc00 0x100>; + qcom,pin-num = <13>; + status = "disabled"; + }; + + gpio@cd00 { + reg = <0xcd00 0x100>; + qcom,pin-num = <14>; + status = "disabled"; + }; + + gpio@ce00 { + reg = <0xce00 0x100>; + qcom,pin-num = <15>; + status = "disabled"; + }; + + gpio@cf00 { + reg = <0xcf00 0x100>; + qcom,pin-num = <16>; + status = "disabled"; + }; + + gpio@d000 { + reg = <0xd000 0x100>; + qcom,pin-num = <17>; + status = "disabled"; + }; + + gpio@d100 { + reg = <0xd100 0x100>; + qcom,pin-num = <18>; + status = "disabled"; + }; + + gpio@d200 { + reg = <0xd200 0x100>; + qcom,pin-num = <19>; + status = "disabled"; + }; + + gpio@d300 { + reg = <0xd300 0x100>; + qcom,pin-num = <20>; + status = "disabled"; + }; + + gpio@d500 { + reg = <0xd500 0x100>; + qcom,pin-num = <22>; + status = "disabled"; + }; + }; + + pm8994_mpps: mpps { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pm8994-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"; + }; + + mpp@a400 { + reg = <0xa400 0x100>; + qcom,pin-num = <5>; + status = "disabled"; + }; + + mpp@a500 { + reg = <0xa500 0x100>; + qcom,pin-num = <6>; + status = "disabled"; + }; + + mpp@a600 { + reg = <0xa600 0x100>; + qcom,pin-num = <7>; + status = "disabled"; + }; + + mpp@a700 { + reg = <0xa700 0x100>; + qcom,pin-num = <8>; + status = "disabled"; + }; + }; + + pm8994_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>; + }; + }; + + pm8994_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 = <&pm8994_vadc>; + }; + + pm8994_coincell: qcom,coincell@2800 { + compatible = "qcom,qpnp-coincell"; + reg = <0x2800 0x100>; + }; + + pm8994_rtc: qcom,pm8994_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,pm8994_rtc_rw@6000 { + reg = <0x6000 0x100>; + }; + qcom,pm8994_rtc_alarm@6100 { + reg = <0x6100 0x100>; + interrupts = <0x0 0x61 0x1>; + }; + }; + }; + + qcom,pm8994@1 { + spmi-slave-container; + reg = <0x1>; + #address-cells = <1>; + #size-cells = <1>; + + pwm@b100 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb100 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <0>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <0>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm@b200 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb200 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <1>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <1>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm@b300 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb300 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <2>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <2>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm@b400 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb400 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <3>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <3>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm@b500 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb500 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <4>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <4>; + #pwm-cells = <2>; + status = "disabled"; + }; + + pwm@b600 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb600 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <5>; + qcom,supported-sizes = <6>, <7>, <9>; + qcom,ramp-index = <5>; + #pwm-cells = <2>; + status = "disabled"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-pmi8994.dtsi b/arch/arm64/boot/dts/qcom/msm-pmi8994.dtsi new file mode 100644 index 000000000000..cbfc8a3e82b6 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-pmi8994.dtsi @@ -0,0 +1,704 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&spmi_bus { + #address-cells = <1>; + #size-cells = <0>; + interrupt-controller; + #interrupt-cells = <3>; + + qcom,pmi8994@2 { + spmi-slave-container; + reg = <0x2>; + #address-cells = <1>; + #size-cells = <1>; + + pmi8994_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; + pon_perph_reg: qcom,pon_perph_reg { + regulator-name = "pon_spare_reg"; + qcom,pon-spare-reg-addr = <0x8c>; + qcom,pon-spare-reg-bit = <1>; + }; + }; + + pmi8994_gpios: gpios { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pmi8994-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>; + status = "disabled"; + }; + + gpio@c800 { + reg = <0xc800 0x100>; + qcom,pin-num = <9>; + status = "disabled"; + }; + + gpio@c900 { + reg = <0xc900 0x100>; + qcom,pin-num = <10>; + status = "disabled"; + }; + }; + + pmi8994_mpps: mpps { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pmi8994-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"; + }; + }; + + 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>; + }; + + pmi8994_vadc: vadc@3100 { + compatible = "qcom,qpnp-vadc"; + reg = <0x3100 0x100>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <0x2 0x31 0x0>, + <0x2 0x31 0x3>, + <0x2 0x31 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,vadc-poll-eoc; + qcom,vadc-meas-int-mode; + qcom,pmic-revid = <&pmi8994_revid>; + + 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>; + }; + }; + + pmi8994_charger: qcom,qpnp-smbcharger { + spmi-dev-container; + compatible = "qcom,qpnp-smbcharger"; + #address-cells = <1>; + #size-cells = <1>; + + qcom,iterm-ma = <100>; + qcom,fastchg-current-ma = <2000>; + qcom,float-voltage-mv = <4350>; + qcom,resume-delta-mv = <200>; + qcom,chg-inhibit-fg; + qcom,dc-psy-type = "Mains"; + qcom,dc-psy-ma = <1500>; + 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,autoadjust-vfloat; + qcom,pmic-revid = <&pmi8994_revid>; + qcom,force-aicl-rerun; + qcom,aicl-rerun-period-s = <180>; + + 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>; + }; + + 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 0x3>, + <0x2 0x13 0x4>, + <0x2 0x13 0x5>, + <0x2 0x13 0x6>; + + interrupt-names = "usbin-uv", + "usbin-ov", + "usbin-src-det", + "otg-fail", + "otg-oc", + "aicl-done", + "usbid-change"; + }; + + 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"; + }; + }; + + pmi8994_fg: qcom,fg { + spmi-dev-container; + compatible = "qcom,qpnp-fg"; + #address-cells = <1>; + #size-cells = <1>; + qcom,resume-soc = <95>; + status = "okay"; + qcom,bcl-lm-threshold-ma = <127>; + qcom,bcl-mh-threshold-ma = <405>; + qcom,fg-iterm-ma = <125>; + qcom,fg-chg-iterm-ma = <100>; + qcom,cycle-counter-en; + qcom,capacity-learning-on; + qcom,fg-cc-cv-threshold-mv = <4340>; + qcom,pmic-revid = <&pmi8994_revid>; + + 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>, + <0x2 0x40 0x7>; + + interrupt-names = "high-soc", + "low-soc", + "full-soc", + "empty-soc", + "delta-soc", + "first-est-done", + "sw-fallbk-ocv", + "sw-fallbk-new-batt"; + }; + + 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,fg-adc-vbat@4254 { + reg = <0x4254 0x1>; + }; + + qcom,fg-adc-ibat@4255 { + reg = <0x4255 0x1>; + }; + + qcom,revid-tp-rev@1f1 { + reg = <0x1f1 0x1>; + }; + + qcom,fg-memif@4400 { + status = "okay"; + reg = <0x4400 0x100>; + interrupts = <0x2 0x44 0x0>, + <0x2 0x44 0x1>; + + interrupt-names = "mem-avail", + "data-rcvry-sug"; + }; + }; + }; + + qcom,pmi8994@3 { + spmi-slave-container; + reg = <0x3>; + #address-cells = <1>; + #size-cells = <1>; + + pmi8994_pwm_1: pwm@b100 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb100 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <0>; + qcom,supported-sizes = <6>, <9>; + qcom,ramp-index = <0>; + #pwm-cells = <2>; + }; + + pmi8994_pwm_2: pwm@b200 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb200 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <1>; + qcom,supported-sizes = <6>, <9>; + qcom,ramp-index = <1>; + #pwm-cells = <2>; + }; + + pmi8994_pwm_3: pwm@b300 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb300 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <2>; + qcom,supported-sizes = <6>, <9>; + qcom,ramp-index = <2>; + #pwm-cells = <2>; + }; + + pmi8994_pwm_4: pwm@b400 { + compatible = "qcom,qpnp-pwm"; + reg = <0xb400 0x100>, + <0xb042 0x7e>; + reg-names = "qpnp-lpg-channel-base", "qpnp-lpg-lut-base"; + qcom,channel-id = <3>; + qcom,supported-sizes = <6>, <9>; + qcom,ramp-index = <3>; + #pwm-cells = <2>; + }; + + labibb: qpnp-labibb-regulator { + status = "disabled"; + spmi-dev-container; + compatible = "qcom,qpnp-labibb-regulator"; + #address-cells = <1>; + #size-cells = <1>; + + 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 = <20>; + qcom,qpnp-lab-ps-enable; + qcom,qpnp-lab-nfet-size = <100>; + qcom,qpnp-lab-pfet-size = <100>; + qcom,qpnp-lab-max-precharge-time = <300>; + }; + }; + + pmi8994_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,hyb-thres = <625>; + qcom,sync-dly-us = <800>; + qcom,fs-curr-ua = <25000>; + qcom,cons-sync-write-delay-us = <1000>; + qcom,en-phase-stag; + qcom,led-strings-list = [00 01 02 03]; + qcom,en-ext-pfet-sc-pro; + }; + + pmi8994_haptics: qcom,haptic@c000 { + status = "disabled"; + 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 = "lra"; + qcom,wave-shape = "square"; + qcom,vmax-mv = <2000>; + 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>; + qcom,lra-high-z = "opt1"; + qcom,lra-auto-res-mode = "qwd"; + qcom,lra-res-cal-period = <4>; + }; + + qcom,leds@d000 { + compatible = "qcom,leds-qpnp"; + reg = <0xd000 0x100>; + label = "rgb"; + status = "okay"; + + red_led: qcom,rgb_0 { + label = "rgb"; + qcom,id = <3>; + qcom,mode = "pwm"; + pwms = <&pmi8994_pwm_3 0 0>; + qcom,pwm-us = <1000>; + qcom,max-current = <12>; + qcom,default-state = "off"; + linux,name = "red"; + linux,default-trigger = + "battery-charging"; + }; + + green_led: qcom,rgb_1 { + label = "rgb"; + qcom,id = <4>; + qcom,mode = "pwm"; + pwms = <&pmi8994_pwm_2 0 0>; + qcom,pwm-us = <1000>; + qcom,max-current = <12>; + qcom,default-state = "off"; + linux,name = "green"; + linux,default-trigger = "battery-full"; + }; + + blue_led: qcom,rgb_2 { + label = "rgb"; + qcom,id = <5>; + qcom,mode = "pwm"; + pwms = <&pmi8994_pwm_1 0 0>; + qcom,pwm-us = <1000>; + qcom,max-current = <12>; + qcom,default-state = "off"; + linux,name = "blue"; + linux,default-trigger = "boot-indication"; + }; + }; + + 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 = <105>; + 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,power-detect-enabled; + + pmi8994_flash0: qcom,flash_0 { + label = "flash"; + qcom,led-name = "led:flash_0"; + qcom,default-led-trigger = + "flash0_trigger"; + qcom,id = <0>; + qcom,duration = <1280>; + qcom,current = <625>; + qcom,max-current = <1000>; + }; + + pmi8994_flash1: qcom,flash_1 { + label = "flash"; + qcom,led-name = "led:flash_1"; + qcom,default-led-trigger = + "flash1_trigger"; + qcom,id = <1>; + qcom,duration = <1280>; + qcom,current = <625>; + qcom,max-current = <1000>; + }; + + pmi8994_torch0: qcom,torch_0 { + label = "torch"; + qcom,led-name = "led:torch_0"; + qcom,default-led-trigger = + "torch0_trigger"; + qcom,id = <0>; + qcom,current = <120>; + qcom,max-current = <200>; + }; + + pmi8994_torch1: qcom,torch_1 { + label = "torch"; + qcom,led-name = "led:torch_1"; + qcom,default-led-trigger = + "torch1_trigger"; + qcom,id = <1>; + qcom,current = <120>; + qcom,max-current = <200>; + }; + + pmi8994_switch: qcom,switch { + label = "switch"; + qcom,led-name = "led:switch"; + qcom,default-led-trigger = + "switch_trigger"; + qcom,id = <2>; + qcom,current = <625>; + qcom,max-current = <1000>; + qcom,duration = <1280>; + reg0 { + regulator-name = + "pmi8994_boostbypass"; + max-voltage = <3600000>; + }; + reg1 { + regulator-name = "pon_spare_reg"; + }; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-pmi8996.dtsi b/arch/arm64/boot/dts/qcom/msm-pmi8996.dtsi new file mode 100644 index 000000000000..6f73374969d9 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-pmi8996.dtsi @@ -0,0 +1,32 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * As a general rule, only properties which override PMI8994 should be placed + * inside this file. + */ + +/ { + qcom,pmic-id = <0x20009 0x10013 0x0 0x0>; +}; + +&ibb_regulator { + qcom,qpnp-ibb-discharge-resistor = <300>; +}; + +&spmi_bus { + qcom,pmi8994@2 { + bcl@4200 { + qcom,inhibit-derating-ua = <0>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-pmk8001.dtsi b/arch/arm64/boot/dts/qcom/msm-pmk8001.dtsi new file mode 100644 index 000000000000..569257047ca7 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-pmk8001.dtsi @@ -0,0 +1,90 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&spmi_bus { + qcom,pmk8001@6 { + spmi-slave-container; + reg = <0x6>; + #address-cells = <1>; + #size-cells = <1>; + + pmk8001_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; + status = "disabled"; + }; + + pmk8001_gpios: gpios { + spmi-dev-container; + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pmk8001-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"; + }; + }; + + qcom,pmk8001_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,pmk8001_rtc_rw@6000 { + reg = <0x6000 0x100>; + }; + qcom,pmk8001_rtc_alarm@6100 { + reg = <0x6100 0x100>; + interrupts = <0x6 0x61 0x1>; + }; + }; + }; + + qcom,pmk8001@7 { + spmi-slave-container; + reg = <0x7>; + #address-cells = <1>; + #size-cells = <1>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm-rdbg.dtsi b/arch/arm64/boot/dts/qcom/msm-rdbg.dtsi new file mode 100644 index 000000000000..d0c91f9e72ae --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm-rdbg.dtsi @@ -0,0 +1,75 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + smp2pgpio_rdbg_2_in: qcom,smp2pgpio-rdbg-2-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "rdbg"; + qcom,remote-pid = <2>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_client_rdbg_2_in { + compatible = "qcom,smp2pgpio_client_rdbg_2_in"; + gpios = <&smp2pgpio_rdbg_2_in 0 0>; + }; + + smp2pgpio_rdbg_2_out: qcom,smp2pgpio-rdbg-2-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "rdbg"; + qcom,remote-pid = <2>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_client_rdbg_2_out { + compatible = "qcom,smp2pgpio_client_rdbg_2_out"; + gpios = <&smp2pgpio_rdbg_2_out 0 0>; + }; + + smp2pgpio_rdbg_1_in: qcom,smp2pgpio-rdbg-1-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "rdbg"; + qcom,remote-pid = <1>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_client_rdbg_1_in { + compatible = "qcom,smp2pgpio_client_rdbg_1_in"; + gpios = <&smp2pgpio_rdbg_1_in 0 0>; + }; + + smp2pgpio_rdbg_1_out: qcom,smp2pgpio-rdbg-1-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "rdbg"; + qcom,remote-pid = <1>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_client_rdbg_1_out { + compatible = "qcom,smp2pgpio_client_rdbg_1_out"; + gpios = <&smp2pgpio_rdbg_1_out 0 0>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-agave-adp.dtsi b/arch/arm64/boot/dts/qcom/msm8996-agave-adp.dtsi new file mode 100644 index 000000000000..5f326f5225d4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-agave-adp.dtsi @@ -0,0 +1,885 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8996-pinctrl.dtsi" +#include "msm8996-camera-sensor-adp.dtsi" +#include "msm8996-wsa881x.dtsi" + +/ { + bluetooth: bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-core-supply = <&pm8994_s3>; + qca,bt-vdd-pa-supply = <&rome_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&pm8994_l30>; + qca,bt-chip-pwd-voltage-level = <1300000 1300000>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&ufs_ice { + status = "ok"; +}; + +&sdcc1_ice { + status = "ok"; +}; + +&ufsphy1 { + status = "ok"; +}; + +&ufs1 { + status = "ok"; +}; + +&uartblsp2dm1 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <110 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 + 96000000 192000000 384000000>; + qcom,ice-clk-rates = <300000000 150000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; + + qcom,clk-rates = <400000 20000000 25000000 + 50000000 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + cd-gpios = <&tlmm 95 0x1>; + + status = "ok"; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x88>; + qcom,thermal-node; + }; +}; + +&mdss_hdmi_tx { + pinctrl-names = "hdmi_hpd_active", "hdmi_ddc_active", "hdmi_cec_active", + "hdmi_active", "hdmi_sleep"; + pinctrl-0 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; + pinctrl-1 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_suspend>; + pinctrl-2 = <&mdss_hdmi_hpd_active &mdss_hdmi_cec_active + &mdss_hdmi_ddc_suspend>; + pinctrl-3 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_active>; + pinctrl-4 = <&mdss_hdmi_hpd_suspend &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; +}; + +#include "msm8996-mdss-panels.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "single_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_adv7533_720p>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + + qcom,panel-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,panel-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vdd"; + qcom,supply-min-voltage = <3300000>; + qcom,supply-max-voltage = <3300000>; + 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>; + }; + }; +}; + +&mdss_dsi1 { + status = "disabled"; +}; + +&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,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_nt35597_video { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_nt35597_cmd { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,partial-update-enabled; + qcom,panel-roi-alignment = <720 128 720 64 720 64>; +}; + +&dsi_nt35597_dsc_video { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_nt35597_dsc_cmd { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_jdi_video { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,5v-boost-gpio = <&pmi8994_gpios 8 0>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_jdi_cmd { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,5v-boost-gpio = <&pmi8994_gpios 8 0>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,partial-update-enabled; + qcom,panel-roi-alignment = <4 4 2 2 20 20>; +}; + +&dsi_dual_jdi_4k_nofbc_video { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +/{ + mtp_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + #include "batterydata-itech-3000mah.dtsi" + }; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + mpp@a300 { /* MPP 4 */ + /* HDMI_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + +&soc { + i2c@75ba000 { + synaptics@20 { + compatible = "synaptics,dsx"; + reg = <0x20>; + interrupt-parent = <&tlmm>; + interrupts = <125 0x2008>; + vdd-supply = <&pm8994_l14>; + avdd-supply = <&pm8994_l22>; + pinctrl-names = "pmx_ts_active", "pmx_ts_suspend"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_suspend>; + synaptics,display-coords = <0 0 1599 2559>; + synaptics,panel-coords = <0 0 1599 2703>; + synaptics,reset-gpio = <&tlmm 89 0x00>; + synaptics,irq-gpio = <&tlmm 125 0x2008>; + synaptics,disable-gpios; + synaptics,fw-name = "PR1702898-s3528t_00350002.img"; + /* Underlying clocks used by secure touch */ + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup6_i2c_apps_clk>; + }; + }; + + i2c@75b6000 { /* BLSP8 */ + /* ADV7533 configuration */ + adv7533@3d { + compatible = "adv7533"; + instance_id = <0>; + reg = <0x3d>; + adi,video-mode = <3>; /* 3 = 1080p */ + adi,main-addr = <0x3D>; + adi,cec-dsi-addr = <0x3E>; + adi,enable-audio; + pinctrl-names = "pmx_adv7533_active", + "pmx_adv7533_suspend"; + pinctrl-0 = <&adv7533_0_int_active + &adv7533_0_hpd_int_active + &adv7533_0_switch_active>; + pinctrl-1 = <&adv7533_0_int_suspend + &adv7533_0_hpd_int_suspend + &adv7533_0_switch_suspend>; + adi,irq-gpio = <&tlmm 106 0x2002>; + adi,hpd-irq-gpio = <&tlmm 106 0x2003>; + adi,switch-gpio = <&tlmm 105 0x1>; + }; + + adv7533@39 { + compatible = "adv7533"; + instance_id = <1>; + reg = <0x39>; + 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_1_int_active + &adv7533_1_hpd_int_active + &adv7533_1_switch_active>; + pinctrl-1 = <&adv7533_1_int_suspend + &adv7533_1_hpd_int_suspend + &adv7533_1_switch_suspend>; + adi,irq-gpio = <&tlmm 108 0x2002>; + adi,hpd-irq-gpio = <&tlmm 106 0x2003>; + adi,switch-gpio = <&tlmm 107 0x0>; + }; + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "synaptics_dsx"; + qcom,disp-maxx = <1599>; + qcom,disp-maxy = <2559>; + qcom,panel-maxx = <1599>; + qcom,panel-maxy = <2703>; + qcom,key-codes = <158 139 102 217>; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 2 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_snapshot { + label = "cam_snapshot"; + gpios = <&pm8994_gpios 4 0x1>; + linux,input-type = <1>; + linux,code = <766>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_focus { + label = "cam_focus"; + gpios = <&pm8994_gpios 5 0x1>; + linux,input-type = <1>; + linux,code = <528>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; + + sound-9335 { + status = "disabled"; + }; + + sound-auto { + compatible = "qcom,msm8996-asoc-snd-auto"; + qcom,model = "msm8996-auto-snd-card"; + + asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>, + <&loopback>, <&compress>, <&hostless>, + <&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>; + 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-compr-dsp"; + asoc-cpu = <&dai_pri_auxpcm>, <&dai_sec_auxpcm>, <&dai_hdmi>, + <&dai_mi2s>, <&dai_mi2s_quat>, + <&afe_pcm_rx>, <&afe_pcm_tx>, + <&afe_proxy_rx>, <&afe_proxy_tx>, + <&incall_record_rx>, <&incall_record_tx>, + <&incall_music_rx>, <&incall_music2_rx>; + asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2", + "msm-dai-q6-hdmi.8", + "msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3", + "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"; + asoc-codec = <&stub_codec>; + asoc-codec-names = "msm-stub-codec.1"; + }; + + usb_detect { + compatible = "qcom,gpio-usbdetect"; + interrupt-parent = <&spmi_bus>; + interrupts = <0x0 0xd0 0x0>; /* PM8994 GPIO17 */ + interrupt-names = "vbus_det_irq"; + }; +}; + +&pm8994_gpios { + gpio@c600 { /* GPIO 7 - NFC DWL REQ */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <3>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@c700 { /* GPIO 8 - WLAN_EN */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c800 { /* GPIO 9 - Rome 3.3V control */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* MOS logic */ + qcom,invert = <1>; /* Output high */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* High drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c900 { /* GPIO 10 - NFC CLK _REQ*/ + qcom,mode = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@cd00 { /* GPIO 14 - lcd_bklt_reg_en */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* output hight initially */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,out-strength = <1>; /* Low drive strength */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + gpio@c100 { /* GPIO 2 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c300 { /* GPIO 4 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c400 { /* GPIO 5 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@ca00 { /* GPIO 11 - USB enb1 (otg switch) */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@cc00 { /* GPIO 13 - HPH_EN0 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@ce00 { /* GPIO 15 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d000 { /* GPIO 17 - USB1 VBUS detect */ + qcom,mode = <0>; /* Digital Input*/ + qcom,pull = <5>; /* No pull */ + qcom,vin-sel = <2>; /* 1.8 V */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d100 { /* GPIO 18 - Rome Sleep Clock */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output low initially */ + qcom,vin-sel = <2>; /* VIN 2 */ + qcom,src-sel = <3>; /* Function 2 */ + qcom,out-strength = <2>; /* Medium */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d200 { /* GPIO 19 - Rome BT Reset */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&usb2s { + status = "ok"; + dwc3@7600000 { + dr_mode = "host"; + }; +}; + +&usb3 { + interrupt-parent = <&usb3>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0x0 0xffffffff>; + interrupt-map = <0x0 0 &intc 0 133 0 + 0x0 1 &intc 0 180 0 + 0x0 2 &spmi_bus 0x0 0x0 0x9 0x0>; + interrupt-names = "hs_phy_irq", "pwr_event_irq", "pmic_id_irq"; + + vbus_dwc3-supply = <&usb_otg_switch>; + vdda33-supply = <&pm8994_l24>; + vdda18-supply = <&pm8994_l12>; +}; + +&blsp1_uart2 { + status = "ok"; +}; + +&i2c_6 { + at24@51 { + compatible = "atmel,24c32"; + reg = <0x51>; + }; +}; + +&i2c_7 { + silabs4705@11 { /* SiLabs FM chip, slave id 0x11*/ + status = "ok"; + compatible = "silabs,si4705"; + reg = <0x11>; + vdd-supply = <&pm8994_s4>; + silabs,vdd-supply-voltage = <1800000 1800000>; + va-supply = <&rome_vreg>; + silabs,va-supply-voltage = <3300000 3300000>; + pinctrl-names = "pmx_fm_active","pmx_fm_suspend"; + pinctrl-0 = <&fm_int_active &fm_status_int_active + &fm_rst_active>; + pinctrl-1 = <&fm_int_suspend &fm_status_int_suspend + &fm_rst_suspend>; + silabs,reset-gpio = <&tlmm 39 0>; + silabs,int-gpio = <&tlmm 38 0>; + silabs,status-gpio = <&tlmm 78 0>; + #address-cells = <0>; + interrupts = <0 1>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = < + 0 &tlmm 38 2 + 1 &tlmm 78 1 + >; + interrupt-names = "silabs_fm_int", "silabs_fm_status_int"; + }; +}; + +&i2c_8 { /* BLSP2 QUP2 */ + nq@28 { + compatible = "qcom,nq-nci"; + reg = <0x28>; + qcom,nq-irq = <&tlmm 9 0x00>; + qcom,nq-ven = <&tlmm 12 0x00>; + qcom,nq-firm = <&pm8994_gpios 7 0x00>; + qcom,nq-clkreq = <&pm8994_gpios 10 0x00>; + interrupt-parent = <&tlmm>; + qcom,clk-src = "BBCLK2"; + interrupts = <9 0>; + interrupt-names = "nfc_irq"; + pinctrl-names = "nfc_active", "nfc_suspend"; + pinctrl-0 = <&nfc_int_active &nfc_disable_active>; + pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>; + clocks = <&clock_gcc clk_bb_clk2_pin>; + clock-names = "ref_clk"; + }; +}; + +&dsi_dual_jdi_video { + /delete-property/ pwms; + /delete-property/ qcom,5v-boost-gpio; +}; + +&dsi_dual_jdi_cmd { + /delete-property/ pwms; + /delete-property/ qcom,5v-boost-gpio; +}; + +&dsi_dual_jdi_4k_nofbc_video { + /delete-property/ pwms; +}; + +&soc { + sound-9335 { + /delete-property/ qcom,hph-en1-gpio; + }; +}; + +/delete-node/ &led_flash0; + +&mdss_dsi0 { + /delete-property/ lab-supply; + /delete-property/ ibb-supply; +}; + +&mdss_dsi1 { + /delete-property/ lab-supply; + /delete-property/ ibb-supply; +}; + +&cci { + qcom,camera@0 { + /delete-property/ qcom,led-flash-src; + }; + + qcom,camera@1 { + /delete-property/ cam_vana-supply; + }; +}; + +&usb_otg_switch { + gpio = <&pm8994_gpios 11 0>; + enable-active-high; + status = "ok"; + /delete-property/ vin-supply; +}; + +&wsa881x_211 { + /delete-property/ qcom,spkr-sd-n-gpio; +}; + +&wsa881x_212 { + /delete-property/ qcom,spkr-sd-n-gpio; +}; + +&wsa881x_213 { + /delete-property/ qcom,spkr-sd-n-gpio; +}; + +&wsa881x_214 { + /delete-property/ qcom,spkr-sd-n-gpio; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-bus.dtsi b/arch/arm64/boot/dts/qcom/msm8996-bus.dtsi new file mode 100644 index 000000000000..a93d3aa2c06f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-bus.dtsi @@ -0,0 +1,1813 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is Mree 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 <dt-bindings/msm/msm-bus-ids.h> + +&soc { + ad_hoc_bus: ad-hoc-bus { + /* Version = 16 */ + compatible = "qcom,msm-bus-device"; + reg = <0x520000 0x40000>, + <0x400000 0x62000>, + <0x5C0000 0x3000>, + <0x500000 0x1000>, + <0x5A0000 0x40000>, + <0x5A0000 0x40000>, + <0x540000 0x9000>, + <0x560000 0x7000>, + <0x580000 0xA000>; + reg-names = "snoc-base", "bimc-base", "pnoc-base", "cnoc-base", + "mmnoc-base", "mmnoc-ahb-base", "a0noc-base", + "a1noc-base", "a2noc-base"; + + /*Buses*/ + fab_a0noc: fab-a0noc { + cell-id = <MSM_BUS_FAB_A0_NOC>; + label = "fab-a0noc"; + qcom,fab-dev; + qcom,base-name = "a0noc-base"; + qcom,bus-type = <1>; + qcom,qos-off = <4096>; + qcom,base-offset = <12288>; + qcom,enable-only-clk; + clock-names = "bus_clk", "bus_a_clk"; + clocks = <&clock_gcc clk_gcc_aggre0_snoc_axi_clk>, + <&clock_gcc clk_gcc_aggre0_snoc_axi_clk>; + bus-gdsc-supply = <&gdsc_aggre0_noc>; + bus-a-gdsc-supply = <&gdsc_aggre0_noc>; + + coresight-id = <206>; + coresight-name = "coresight-a0noc"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in1>; + coresight-child-ports = <7>; + aggre0-snoc-axi-no-rate-supply =<&gdsc_aggre0_noc>; + qcom,node-qos-clks { + clock-names = "aggre0-snoc-axi-no-rate", + "aggre0-cnoc-ahb-no-rate", + "aggre0-noc-mpu-cfg-no-rate"; + clocks = + <&clock_gcc clk_gcc_aggre0_snoc_axi_clk>, + <&clock_gcc clk_gcc_aggre0_cnoc_ahb_clk>, + <&clock_gcc clk_gcc_aggre0_noc_mpu_cfg_ahb_clk>; + }; + }; + + fab_a1noc: fab-a1noc { + cell-id = <MSM_BUS_FAB_A1_NOC>; + label = "fab-a1noc"; + qcom,fab-dev; + qcom,base-name = "a1noc-base"; + qcom,bus-type = <1>; + qcom,qos-off = <4096>; + qcom,base-offset = <8192>; + clock-names = "bus_clk", "bus_a_clk"; + clocks = <&clock_gcc clk_aggre1_noc_clk>, + <&clock_gcc clk_aggre1_noc_a_clk>; + coresight-id = <205>; + coresight-name = "coresight-a1noc"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <6>; + }; + + fab_a2noc: fab-a2noc { + cell-id = <MSM_BUS_FAB_A2_NOC>; + label = "fab-a2noc"; + qcom,fab-dev; + qcom,base-name = "a2noc-base"; + qcom,bus-type = <1>; + qcom,qos-off = <4096>; + qcom,base-offset = <12288>; + clock-names = "bus_clk", "bus_a_clk"; + clocks = <&clock_gcc clk_aggre2_noc_clk>, + <&clock_gcc clk_aggre2_noc_a_clk>; + coresight-id = <204>; + coresight-name = "coresight-a2noc"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in1>; + coresight-child-ports = <5>; + qcom,node-qos-clks { + clock-names = "clk-aggre2-noc-clk-no-rate", + "clk-gcc-ufs-axi-clk", + "clk-aggre2-ufs-axi-clk-no-rate"; + clocks = <&clock_gcc clk_aggre2_noc_clk>, + <&clock_gcc clk_gcc_ufs_axi_clk>, + <&clock_gcc clk_gcc_aggre2_ufs_axi_clk>; + }; + }; + + fab_bimc: fab-bimc { + cell-id = <MSM_BUS_FAB_BIMC>; + label = "fab-bimc"; + qcom,fab-dev; + qcom,base-name = "bimc-base"; + qcom,base-offset = <0x8000>; + qcom,qos-off = <0x4000>; + qcom,util-fact = <154>; + qcom,bus-type = <2>; + clock-names = "bus_clk", "bus_a_clk"; + clocks = <&clock_gcc clk_bimc_msmbus_clk>, + <&clock_gcc clk_bimc_msmbus_a_clk>; + coresight-id = <203>; + coresight-name = "coresight-bimc"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in1>; + coresight-child-ports = <4>; + }; + + fab_cnoc: fab-cnoc { + cell-id = <MSM_BUS_FAB_CONFIG_NOC>; + label = "fab-cnoc"; + qcom,fab-dev; + qcom,base-name = "cnoc-base"; + qcom,bypass-qos-prg; + qcom,bus-type = <1>; + clock-names = "bus_clk", "bus_a_clk"; + clocks = <&clock_gcc clk_cnoc_msmbus_clk>, + <&clock_gcc clk_cnoc_msmbus_a_clk>; + }; + + fab_mnoc: fab-mnoc { + cell-id = <MSM_BUS_FAB_MMSS_NOC>; + label = "fab-mnoc"; + qcom,fab-dev; + qcom,base-name = "mmnoc-base"; + qcom,qos-off = <4096>; + qcom,base-offset = <16384>; + qcom,bus-type = <1>; + qcom,util-fact = <154>; + clock-names = "bus_clk", "bus_a_clk"; + clocks = <&clock_gcc clk_mmssnoc_axi_clk>, + <&clock_gcc clk_mmssnoc_axi_a_clk>; + coresight-id = <202>; + coresight-name = "coresight-mnoc"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in1>; + coresight-child-ports = <0>; + mmagic-ahb-no-rate-supply = <&gdsc_mmagic_bimc>; + mmagic-mdss-axi-no-rate-supply = + <&gdsc_mmagic_mdss>; + mmagic-camss-axi-no-rate-supply = + <&gdsc_mmagic_camss>; + mmagic-video-axi-no-rate-supply = + <&gdsc_mmagic_video>; + qcom,node-qos-clks { + clock-names = "mmagic-ahb-no-rate", + "mmagic-cfg-ahb-no-rate", + "mmagic-mdss-axi-no-rate", + "mmagic-mdss-cfg-noc-ahb-no-rate", + "mmagic-camss-axi-no-rate", + "mmagic-camss-cfg-noc-ahb-no-rate", + "mmagic-video-axi-no-rate", + "mmagic-video-cfg-noc-ahb-no-rate"; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmss_mmagic_cfg_ahb_clk>, + <&clock_mmss clk_mmagic_mdss_axi_clk>, + <&clock_mmss clk_mmagic_mdss_noc_cfg_ahb_clk>, + <&clock_mmss clk_mmagic_camss_axi_clk>, + <&clock_mmss clk_mmagic_camss_noc_cfg_ahb_clk>, + <&clock_mmss clk_mmagic_video_axi_clk>, + <&clock_mmss clk_mmagic_video_noc_cfg_ahb_clk>; + }; + }; + + fab_mnoc_ahb: fab-mnoc-ahb { + cell-id = <MSM_BUS_FAB_MMSS_AHB>; + label = "fab-mnoc-ahb"; + qcom,fab-dev; + qcom,base-name = "mmnoc-ahb-base"; + qcom,bypass-qos-prg; + qcom,setrate-only-clk; + qcom,bus-type = <1>; + clock-names = "bus_clk", "bus_a_clk"; + clocks = <&clock_mmss clk_ahb_clk_src>, + <&clock_mmss clk_ahb_clk_src>; + bus-gdsc-supply = <&gdsc_mmagic_bimc>; + bus-a-gdsc-supply = <&gdsc_mmagic_bimc>; + }; + + fab_pnoc: fab-pnoc { + cell-id = <MSM_BUS_FAB_PERIPH_NOC>; + label = "fab-pnoc"; + qcom,fab-dev; + qcom,base-name = "pnoc-base"; + qcom,bypass-qos-prg; + qcom,bus-type = <1>; + clock-names = "bus_clk", "bus_a_clk"; + clocks = <&clock_gcc clk_pnoc_msmbus_clk>, + <&clock_gcc clk_pnoc_msmbus_a_clk>; + coresight-id = <201>; + coresight-name = "coresight-pnoc"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in1>; + coresight-child-ports = <2>; + }; + + fab_snoc: fab-snoc { + cell-id = <MSM_BUS_FAB_SYS_NOC>; + label = "fab-snoc"; + qcom,fab-dev; + qcom,base-name = "snoc-base"; + qcom,bus-type = <1>; + qcom,qos-off = <4096>; + qcom,base-offset = <16384>; + clock-names = "bus_clk", "bus_a_clk"; + clocks = <&clock_gcc clk_snoc_msmbus_clk>, + <&clock_gcc clk_snoc_msmbus_a_clk>; + coresight-id = <200>; + coresight-name = "coresight-snoc"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <5>; + }; + + /*Masters*/ + + mas_pcie_0: mas-pcie-0 { + cell-id = <MSM_BUS_MASTER_PCIE>; + label = "mas-pcie-0"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <0>; + qcom,qos-mode = "fixed"; + qcom,connections = <&slv_a0noc_snoc>; + qcom,prio1 = <1>; + qcom,prio0 = <1>; + qcom,bus-dev = <&fab_a0noc>; + qcom,mas-rpm-id = <ICBID_MASTER_PCIE_0>; + }; + + mas_pcie_1: mas-pcie-1 { + cell-id = <MSM_BUS_MASTER_PCIE_1>; + label = "mas-pcie-1"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <1>; + qcom,qos-mode = "fixed"; + qcom,connections = <&slv_a0noc_snoc>; + qcom,prio1 = <1>; + qcom,prio0 = <1>; + qcom,bus-dev = <&fab_a0noc>; + qcom,mas-rpm-id = <ICBID_MASTER_PCIE_1>; + }; + + mas_pcie_2: mas-pcie-2 { + cell-id = <MSM_BUS_MASTER_PCIE_2>; + label = "mas-pcie-2"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <2>; + qcom,qos-mode = "fixed"; + qcom,connections = <&slv_a0noc_snoc>; + qcom,prio1 = <1>; + qcom,prio0 = <1>; + qcom,bus-dev = <&fab_a0noc>; + qcom,mas-rpm-id = <ICBID_MASTER_PCIE_2>; + }; + + mas_cnoc_a1noc: mas-cnoc-a1noc { + cell-id = <MSM_BUS_CNOC_A1NOC_MAS>; + label = "mas-cnoc-a1noc"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,connections = <&slv_a1noc_snoc>; + qcom,bus-dev = <&fab_a1noc>; + qcom,mas-rpm-id = <ICBID_MASTER_CNOC_A1NOC>; + }; + + mas_crypto_c0: mas-crypto-c0 { + cell-id = <MSM_BUS_MASTER_CRYPTO_CORE0>; + label = "mas-crypto-c0"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <0>; + qcom,qos-mode = "fixed"; + qcom,connections = <&slv_a1noc_snoc>; + qcom,prio1 = <1>; + qcom,prio0 = <1>; + qcom,bus-dev = <&fab_a1noc>; + qcom,mas-rpm-id = <ICBID_MASTER_CRYPTO_CORE0>; + }; + + mas_pnoc_a1noc: mas-pnoc-a1noc { + cell-id = <MSM_BUS_PNOC_A1NOC_MAS>; + label = "mas-pnoc-a1noc"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,qport = <1>; + qcom,qos-mode = "fixed"; + qcom,connections = <&slv_a1noc_snoc>; + qcom,bus-dev = <&fab_a1noc>; + qcom,mas-rpm-id = <ICBID_MASTER_PNOC_A1NOC>; + }; + + mas_usb3: mas-usb3 { + cell-id = <MSM_BUS_MASTER_USB3>; + label = "mas-usb3"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <3>; + qcom,qos-mode = "fixed"; + qcom,connections = <&slv_a2noc_snoc>; + qcom,prio1 = <1>; + qcom,prio0 = <1>; + qcom,bus-dev = <&fab_a2noc>; + qcom,mas-rpm-id = <ICBID_MASTER_USB3_0>; + }; + + mas_ipa: mas-ipa { + cell-id = <MSM_BUS_MASTER_IPA>; + label = "mas-ipa"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qos-mode = "fixed"; + qcom,connections = <&slv_a2noc_snoc>; + qcom,bus-dev = <&fab_a2noc>; + qcom,mas-rpm-id = <ICBID_MASTER_IPA>; + }; + + mas_ufs: mas-ufs { + cell-id = <MSM_BUS_MASTER_UFS>; + label = "mas-ufs"; + qcom,buswidth = <8>; + qcom,qport = <2>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qos-mode = "fixed"; + qcom,connections = <&slv_a2noc_snoc>; + qcom,prio1 = <1>; + qcom,prio0 = <1>; + qcom,bus-dev = <&fab_a2noc>; + qcom,mas-rpm-id = <ICBID_MASTER_UFS>; + }; + + mas_apps_proc: mas-apps-proc { + cell-id = <MSM_BUS_MASTER_AMPSS_M0>; + label = "mas-apps-proc"; + qcom,buswidth = <8>; + qcom,agg-ports = <2>; + qcom,ap-owned; + qcom,qport = <0>; + qcom,qos-mode = "fixed"; + qcom,connections = < &slv_bimc_snoc_1&slv_ebi &slv_bimc_snoc_0>; + qcom,prio-lvl = <0>; + qcom,prio-rd = <0>; + qcom,prio-wr = <0>; + qcom,bus-dev = <&fab_bimc>; + qcom,mas-rpm-id = <ICBID_MASTER_APPSS_PROC>; + }; + + mas_oxili: mas-oxili { + cell-id = <MSM_BUS_MASTER_GRAPHICS_3D>; + label = "mas-oxili"; + qcom,buswidth = <8>; + qcom,agg-ports = <2>; + qcom,ap-owned; + qcom,qport = <1>; + qcom,qos-mode = "bypass"; + qcom,connections = < &slv_bimc_snoc_1 &slv_hmss_l3&slv_ebi + &slv_bimc_snoc_0>; + qcom,bus-dev = <&fab_bimc>; + qcom,mas-rpm-id = <ICBID_MASTER_GFX3D>; + }; + + mas_mnoc_bimc: mas-mnoc-bimc { + cell-id = <MSM_BUS_MNOC_BIMC_MAS>; + label = "mas-mnoc-bimc"; + qcom,buswidth = <8>; + qcom,agg-ports = <2>; + qcom,ap-owned; + qcom,qport = <2>; + qcom,qos-mode = "bypass"; + qcom,connections = < &slv_bimc_snoc_1 &slv_hmss_l3&slv_ebi + &slv_bimc_snoc_0>; + qcom,bus-dev = <&fab_bimc>; + qcom,mas-rpm-id = <ICBID_MASTER_MNOC_BIMC>; + }; + + mas_snoc_bimc: mas-snoc-bimc { + cell-id = <MSM_BUS_SNOC_BIMC_MAS>; + label = "mas-snoc-bimc"; + qcom,buswidth = <8>; + qcom,agg-ports = <2>; + qcom,qos-mode = "bypass"; + qcom,connections = < &slv_hmss_l3&slv_ebi>; + qcom,bus-dev = <&fab_bimc>; + qcom,mas-rpm-id = <ICBID_MASTER_SNOC_BIMC>; + }; + + mas_snoc_cnoc: mas-snoc-cnoc { + cell-id = <MSM_BUS_SNOC_CNOC_MAS>; + label = "mas-snoc-cnoc"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,connections = <&slv_clk_ctl &slv_rbcpr_cx &slv_a2noc_smmu_cfg + &slv_a0noc_mpu_cfg &slv_message_ram + &slv_cnoc_mnoc_mmss_cfg &slv_pcie_0_cfg + &slv_tlmm &slv_mpm + &slv_a0noc_smmu_cfg &slv_ebi1_phy_cfg + &slv_bimc_cfg &slv_pimem_cfg + &slv_rbcpr_mx &slv_prng + &slv_pcie20_ahb2phy &slv_a2noc_mpu_cfg + &slv_qdss_cfg &slv_a2noc_cfg + &slv_a0noc_cfg &slv_ufs_cfg + &slv_crypto0_cfg &slv_pcie_1_cfg + &slv_snoc_cfg &slv_snoc_mpu_cfg + &slv_a1noc_mpu_cfg &slv_a1noc_smmu_cfg + &slv_pcie_2_cfg &slv_cnoc_mnoc_cfg + &slv_cpr_apu_cfg &slv_pmic_arb + &slv_imem_cfg &slv_a1noc_cfg + &slv_ssc_cfg &slv_tcsr + &slv_lpass_smmu_cfg &slv_dcc_cfg>; + qcom,bus-dev = <&fab_cnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_SNOC_CNOC>; + }; + + mas_qdss_dap: mas-qdss-dap { + cell-id = <MSM_BUS_MASTER_QDSS_DAP>; + label = "mas-qdss-dap"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,connections = < &slv_cpr_apu_cfg &slv_rbcpr_cx &slv_a2noc_smmu_cfg + &slv_a0noc_mpu_cfg &slv_message_ram + &slv_pcie_0_cfg &slv_tlmm + &slv_mpm &slv_a0noc_smmu_cfg + &slv_ebi1_phy_cfg &slv_bimc_cfg + &slv_pimem_cfg &slv_rbcpr_mx + &slv_clk_ctl &slv_prng + &slv_pcie20_ahb2phy &slv_a2noc_mpu_cfg + &slv_qdss_cfg &slv_a2noc_cfg + &slv_a0noc_cfg &slv_ufs_cfg + &slv_crypto0_cfg&slv_cnoc_a1noc + &slv_pcie_1_cfg &slv_snoc_cfg + &slv_snoc_mpu_cfg &slv_a1noc_mpu_cfg + &slv_a1noc_smmu_cfg &slv_pcie_2_cfg + &slv_cnoc_mnoc_cfg &slv_cnoc_mnoc_mmss_cfg + &slv_pmic_arb &slv_imem_cfg + &slv_a1noc_cfg &slv_ssc_cfg + &slv_tcsr &slv_lpass_smmu_cfg + &slv_dcc_cfg>; + qcom,bus-dev = <&fab_cnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_QDSS_DAP>; + }; + + mas_cnoc_mnoc_mmss_cfg: mas-cnoc-mnoc-mmss-cfg { + cell-id = <MSM_BUS_MASTER_CNOC_MNOC_MMSS_CFG>; + label = "mas-cnoc-mnoc-mmss-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,connections = <&slv_mmagic_cfg &slv_dsa_mpu_cfg &slv_mnoc_clocks_cfg + &slv_camera_throttle_cfg &slv_venus_cfg + &slv_smmu_vfe_cfg &slv_misc_cfg + &slv_smmu_cpp_cfg &slv_oxili_cfg + &slv_display_throttle_cfg &slv_venus_throttle_cfg + &slv_camera_cfg &slv_display_cfg + &slv_cpr_cfg &slv_smmu_rot_cfg + &slv_dsa_cfg &slv_smmu_venus_cfg + &slv_vmem_cfg &slv_smmu_jpeg_cfg + &slv_smmu_mdp_cfg &slv_mnoc_mpu_cfg>; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,mas-rpm-id = <ICBID_MASTER_CNOC_MNOC_MMSS_CFG>; + }; + + mas_cnoc_mnoc_cfg: mas-cnoc-mnoc-cfg { + cell-id = <MSM_BUS_MASTER_CNOC_MNOC_CFG>; + label = "mas-cnoc-mnoc-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,connections = <&slv_srvc_mnoc>; + qcom,bus-dev = <&fab_mnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_CNOC_MNOC_CFG>; + }; + + mas_cpp: mas-cpp { + cell-id = <MSM_BUS_MASTER_CPP>; + label = "mas-cpp"; + qcom,buswidth = <32>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <5>; + qcom,qos-mode = "bypass"; + qcom,connections = <&slv_mnoc_bimc>; + qcom,bus-dev = <&fab_mnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_CPP>; + }; + + mas_jpeg: mas-jpeg { + cell-id = <MSM_BUS_MASTER_JPEG>; + label = "mas-jpeg"; + qcom,buswidth = <32>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <7>; + qcom,qos-mode = "bypass"; + qcom,connections = <&slv_mnoc_bimc>; + qcom,bus-dev = <&fab_mnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_JPEG>; + }; + + mas_mdp_p0: mas-mdp-p0 { + cell-id = <MSM_BUS_MASTER_MDP_PORT0>; + label = "mas-mdp-p0"; + qcom,buswidth = <32>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <1>; + qcom,qos-mode = "bypass"; + qcom,connections = <&slv_mnoc_bimc>; + qcom,bus-dev = <&fab_mnoc>; + qcom,vrail-comp = <25>; + qcom,mas-rpm-id = <ICBID_MASTER_MDP0>; + }; + + mas_mdp_p1: mas-mdp-p1 { + cell-id = <MSM_BUS_MASTER_MDP_PORT1>; + label = "mas-mdp-p1"; + qcom,buswidth = <32>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <2>; + qcom,qos-mode = "bypass"; + qcom,connections = <&slv_mnoc_bimc>; + qcom,bus-dev = <&fab_mnoc>; + qcom,vrail-comp = <25>; + qcom,mas-rpm-id = <ICBID_MASTER_MDP1>; + }; + + mas_rotator: mas-rotator { + cell-id = <MSM_BUS_MASTER_ROTATOR>; + label = "mas-rotator"; + qcom,buswidth = <32>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <0>; + qcom,qos-mode = "bypass"; + qcom,connections = <&slv_mnoc_bimc>; + qcom,bus-dev = <&fab_mnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_ROTATOR>; + }; + + mas_venus: mas-venus { + cell-id = <MSM_BUS_MASTER_VIDEO_P0>; + label = "mas-venus"; + qcom,buswidth = <32>; + qcom,agg-ports = <2>; + qcom,ap-owned; + qcom,qport = <3 4>; + qcom,qos-mode = "bypass"; + qcom,connections = <&slv_mnoc_bimc>; + qcom,bus-dev = <&fab_mnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_VIDEO>; + }; + + mas_vfe: mas-vfe { + cell-id = <MSM_BUS_MASTER_VFE>; + label = "mas-vfe"; + qcom,buswidth = <32>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <6>; + qcom,qos-mode = "bypass"; + qcom,connections = <&slv_mnoc_bimc>; + qcom,bus-dev = <&fab_mnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_VFE>; + }; + + mas_snoc_vmem: mas-snoc-vmem { + cell-id = <MSM_BUS_MASTER_SNOC_VMEM>; + label = "mas-snoc-vmem"; + qcom,buswidth = <32>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,connections = <&slv_vmem>; + qcom,bus-dev = <&fab_mnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_SNOC_VMEM>; + }; + + mas_venus_vmem: mas-venus-vmem { + cell-id = <MSM_BUS_MASTER_VIDEO_P0_OCMEM>; + label = "mas-venus-vmem"; + qcom,buswidth = <32>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,connections = <&slv_vmem>; + qcom,bus-dev = <&fab_mnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_VENUS_VMEM>; + }; + + mas_snoc_pnoc: mas-snoc-pnoc { + cell-id = <MSM_BUS_SNOC_PNOC_MAS>; + label = "mas-snoc-pnoc"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,connections = < &slv_blsp_1 &slv_blsp_2&slv_usb_hs + &slv_sdcc_1 &slv_sdcc_2 + &slv_sdcc_4 &slv_tsif + &slv_pdm &slv_ahb2phy>; + qcom,bus-dev = <&fab_pnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_SNOC_PNOC>; + }; + + mas_sdcc_1: mas-sdcc-1 { + cell-id = <MSM_BUS_MASTER_SDCC_1>; + label = "mas-sdcc-1"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,connections = <&slv_pnoc_a1noc>; + qcom,bus-dev = <&fab_pnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_SDCC_1>; + }; + + mas_sdcc_2: mas-sdcc-2 { + cell-id = <MSM_BUS_MASTER_SDCC_2>; + label = "mas-sdcc-2"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,connections = <&slv_pnoc_a1noc>; + qcom,bus-dev = <&fab_pnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_SDCC_2>; + }; + + mas_sdcc_4: mas-sdcc-4 { + cell-id = <MSM_BUS_MASTER_SDCC_4>; + label = "mas-sdcc-4"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,connections = <&slv_pnoc_a1noc>; + qcom,bus-dev = <&fab_pnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_SDCC_4>; + }; + + mas_usb_hs: mas-usb-hs { + cell-id = <MSM_BUS_MASTER_USB_HS>; + label = "mas-usb-hs"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,connections = <&slv_pnoc_a1noc>; + qcom,bus-dev = <&fab_pnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_USB_HS>; + }; + + mas_blsp_1: mas-blsp-1 { + cell-id = <MSM_BUS_MASTER_BLSP_1>; + label = "mas-blsp-1"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,connections = <&slv_pnoc_a1noc>; + qcom,bus-dev = <&fab_pnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_BLSP_1>; + }; + + mas_blsp_2: mas-blsp-2 { + cell-id = <MSM_BUS_MASTER_BLSP_2>; + label = "mas-blsp-2"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,connections = <&slv_pnoc_a1noc>; + qcom,bus-dev = <&fab_pnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_BLSP_2>; + }; + + mas_tsif: mas-tsif { + cell-id = <MSM_BUS_MASTER_TSIF>; + label = "mas-tsif"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,connections = <&slv_pnoc_a1noc>; + qcom,bus-dev = <&fab_pnoc>; + qcom,mas-rpm-id = <ICBID_MASTER_TSIF>; + }; + + mas_hmss: mas-hmss { + cell-id = <MSM_BUS_MASTER_HMSS>; + label = "mas-hmss"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <4>; + qcom,qos-mode = "fixed"; + qcom,connections = < &slv_pimem &slv_imem&slv_snoc_bimc>; + qcom,prio1 = <1>; + qcom,prio0 = <1>; + qcom,bus-dev = <&fab_snoc>; + qcom,mas-rpm-id = <ICBID_MASTER_HMSS>; + }; + + mas_qdss_bam: mas-qdss-bam { + cell-id = <MSM_BUS_MASTER_QDSS_BAM>; + label = "mas-qdss-bam"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <2>; + qcom,qos-mode = "fixed"; + qcom,connections = < &slv_pimem&slv_usb3 &slv_imem + &slv_snoc_bimc &slv_snoc_pnoc>; + qcom,prio1 = <1>; + qcom,prio0 = <1>; + qcom,bus-dev = <&fab_snoc>; + qcom,mas-rpm-id = <ICBID_MASTER_QDSS_BAM>; + }; + + mas_snoc_cfg: mas-snoc-cfg { + cell-id = <MSM_BUS_MASTER_SNOC_CFG>; + label = "mas-snoc-cfg"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,connections = <&slv_srvc_snoc>; + qcom,bus-dev = <&fab_snoc>; + qcom,mas-rpm-id = <ICBID_MASTER_SNOC_CFG>; + }; + + mas_bimc_snoc_0: mas-bimc-snoc-0 { + cell-id = <MSM_BUS_BIMC_SNOC_MAS>; + label = "mas-bimc-snoc-0"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,connections = < &slv_snoc_vmem &slv_usb3 &slv_pimem + &slv_lpass &slv_hmss + &slv_snoc_cnoc &slv_snoc_pnoc + &slv_imem &slv_qdss_stm>; + qcom,bus-dev = <&fab_snoc>; + qcom,ap-owned; + qcom,mas-rpm-id = <ICBID_MASTER_BIMC_SNOC>; + }; + + mas_bimc_snoc_1: mas-bimc-snoc-1 { + cell-id = <MSM_BUS_BIMC_SNOC_1_MAS>; + label = "mas-bimc-snoc-1"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,connections = < &slv_pcie_2 &slv_pcie_1&slv_pcie_0>; + qcom,bus-dev = <&fab_snoc>; + qcom,mas-rpm-id = <ICBID_MASTER_BIMC_SNOC_1>; + }; + + mas_a0noc_snoc: mas-a0noc-snoc { + cell-id = <MSM_BUS_A0NOC_SNOC_MAS>; + label = "mas-a0noc-snoc"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,connections = < &slv_snoc_pnoc &slv_imem&slv_hmss + &slv_snoc_bimc &slv_pimem>; + qcom,bus-dev = <&fab_snoc>; + qcom,mas-rpm-id = <ICBID_MASTER_A0NOC_SNOC>; + }; + + mas_a1noc_snoc: mas-a1noc-snoc { + cell-id = <MSM_BUS_A1NOC_SNOC_MAS>; + label = "mas-a1noc-snoc"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,connections = < &slv_snoc_vmem &slv_usb3 &slv_pcie_0 + &slv_pimem &slv_pcie_2 + &slv_lpass &slv_pcie_1 + &slv_hmss &slv_snoc_bimc + &slv_snoc_cnoc &slv_snoc_pnoc + &slv_imem &slv_qdss_stm>; + qcom,bus-dev = <&fab_snoc>; + qcom,mas-rpm-id = <ICBID_MASTER_A1NOC_SNOC>; + }; + + mas_a2noc_snoc: mas-a2noc-snoc { + cell-id = <MSM_BUS_A2NOC_SNOC_MAS>; + label = "mas-a2noc-snoc"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,connections = < &slv_snoc_vmem &slv_usb3 &slv_pcie_1 + &slv_pimem &slv_pcie_2 + &slv_qdss_stm&slv_lpass + &slv_snoc_bimc &slv_snoc_cnoc + &slv_snoc_pnoc &slv_imem + &slv_pcie_0>; + qcom,bus-dev = <&fab_snoc>; + qcom,mas-rpm-id = <ICBID_MASTER_A2NOC_SNOC>; + }; + + mas_qdss_etr: mas-qdss-etr { + cell-id = <MSM_BUS_MASTER_QDSS_ETR>; + label = "mas-qdss-etr"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,qport = <3>; + qcom,qos-mode = "fixed"; + qcom,connections = < &slv_pimem&slv_usb3 &slv_imem + &slv_snoc_bimc &slv_snoc_pnoc>; + qcom,prio1 = <1>; + qcom,prio0 = <1>; + qcom,bus-dev = <&fab_snoc>; + qcom,mas-rpm-id = <ICBID_MASTER_QDSS_ETR>; + }; + + /*Internal nodes*/ + + /*Slaves*/ + + slv_a0noc_snoc: slv-a0noc-snoc { + cell-id = <MSM_BUS_A0NOC_SNOC_SLV>; + label = "slv-a0noc-snoc"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_snoc>; + qcom,connections = <&mas_a0noc_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_A0NOC_SNOC>; + qcom,enable-only-clk; + clock-names = "node_clk"; + clocks = <&clock_gcc clk_gcc_aggre0_cnoc_ahb_clk>; + }; + + slv_a1noc_snoc: slv-a1noc-snoc { + cell-id = <MSM_BUS_A1NOC_SNOC_SLV>; + label = "slv-a1noc-snoc"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_snoc>; + qcom,connections = <&mas_a1noc_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_A1NOC_SNOC>; + }; + + slv_a2noc_snoc: slv-a2noc-snoc { + cell-id = <MSM_BUS_A2NOC_SNOC_SLV>; + label = "slv-a2noc-snoc"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_snoc>; + qcom,connections = <&mas_a2noc_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_A2NOC_SNOC>; + }; + + slv_ebi: slv-ebi { + cell-id = <MSM_BUS_SLAVE_EBI_CH0>; + label = "slv-ebi"; + qcom,buswidth = <8>; + qcom,agg-ports = <2>; + qcom,bus-dev = <&fab_bimc>; + qcom,slv-rpm-id = <ICBID_SLAVE_EBI1>; + }; + + slv_hmss_l3: slv-hmss-l3 { + cell-id = <MSM_BUS_SLAVE_HMSS_L3>; + label = "slv-hmss-l3"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_bimc>; + qcom,slv-rpm-id = <ICBID_SLAVE_HMSS_L3>; + }; + + slv_bimc_snoc_0: slv-bimc-snoc-0 { + cell-id = <MSM_BUS_BIMC_SNOC_SLV>; + label = "slv-bimc-snoc-0"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_bimc>; + qcom,ap-owned; + qcom,connections = <&mas_bimc_snoc_0>; + qcom,slv-rpm-id = <ICBID_SLAVE_BIMC_SNOC>; + }; + + slv_bimc_snoc_1: slv-bimc-snoc-1 { + cell-id = <MSM_BUS_BIMC_SNOC_1_SLV>; + label = "slv-bimc-snoc-1"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_bimc>; + qcom,connections = <&mas_bimc_snoc_1>; + qcom,slv-rpm-id = <ICBID_SLAVE_BIMC_SNOC_1>; + }; + + slv_cnoc_a1noc: slv-cnoc-a1noc { + cell-id = <MSM_BUS_CNOC_SNOC_SLV>; + label = "slv-cnoc-a1noc"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,connections = <&mas_cnoc_a1noc>; + qcom,slv-rpm-id = <ICBID_SLAVE_CNOC_SNOC>; + }; + + slv_clk_ctl: slv-clk-ctl { + cell-id = <MSM_BUS_SLAVE_CLK_CTL>; + label = "slv-clk-ctl"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_CLK_CTL>; + }; + + slv_tcsr: slv-tcsr { + cell-id = <MSM_BUS_SLAVE_TCSR>; + label = "slv-tcsr"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_TCSR>; + }; + + slv_tlmm: slv-tlmm { + cell-id = <MSM_BUS_SLAVE_TLMM>; + label = "slv-tlmm"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_TLMM>; + }; + + slv_crypto0_cfg:slv-crypto0-cfg { + cell-id = <MSM_BUS_SLAVE_CRYPTO_0_CFG>; + label = "slv-crypto0-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_CRYPTO_0_CFG>; + }; + + slv_mpm: slv-mpm { + cell-id = <MSM_BUS_SLAVE_MPM>; + label = "slv-mpm"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_MPM>; + }; + + slv_pimem_cfg: slv-pimem-cfg { + cell-id = <MSM_BUS_SLAVE_PIMEM_CFG>; + label = "slv-pimem-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PIMEM_CFG>; + }; + + slv_imem_cfg: slv-imem-cfg { + cell-id = <MSM_BUS_SLAVE_IMEM_CFG>; + label = "slv-imem-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_IMEM_CFG>; + }; + + slv_message_ram: slv-message-ram { + cell-id = <MSM_BUS_SLAVE_MESSAGE_RAM>; + label = "slv-message-ram"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_MESSAGE_RAM>; + }; + + slv_bimc_cfg: slv-bimc-cfg { + cell-id = <MSM_BUS_SLAVE_BIMC_CFG>; + label = "slv-bimc-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_BIMC_CFG>; + }; + + slv_pmic_arb: slv-pmic-arb { + cell-id = <MSM_BUS_SLAVE_PMIC_ARB>; + label = "slv-pmic-arb"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PMIC_ARB>; + }; + + slv_prng: slv-prng { + cell-id = <MSM_BUS_SLAVE_PRNG>; + label = "slv-prng"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PRNG>; + }; + + slv_dcc_cfg:slv-dcc-cfg { + cell-id = <MSM_BUS_SLAVE_DCC_CFG>; + label = "slv-dcc-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_DCC_CFG>; + }; + + slv_rbcpr_mx: slv-rbcpr-mx { + cell-id = <MSM_BUS_SLAVE_RBCPR_MX>; + label = "slv-rbcpr-mx"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_RBCPR_MX>; + }; + + slv_qdss_cfg: slv-qdss-cfg { + cell-id = <MSM_BUS_SLAVE_QDSS_CFG>; + label = "slv-qdss-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_QDSS_CFG>; + }; + + slv_rbcpr_cx: slv-rbcpr-cx { + cell-id = <MSM_BUS_SLAVE_RBCPR_CX>; + label = "slv-rbcpr-cx"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_RBCPR_CX>; + }; + + slv_cpr_apu_cfg:slv-cpr-apu-cfg { + cell-id = <MSM_BUS_SLAVE_QDSS_RBCPR_APU_CFG>; + label = "slv-cpr-apu-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_QDSS_RBCPR_APU_CFG>; + }; + + slv_cnoc_mnoc_cfg: slv-cnoc-mnoc-cfg { + cell-id = <MSM_BUS_SLAVE_CNOC_MNOC_CFG>; + label = "slv-cnoc-mnoc-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,connections = <&mas_cnoc_mnoc_cfg>; + qcom,slv-rpm-id = <ICBID_SLAVE_CNOC_MNOC_CFG>; + }; + + slv_snoc_cfg: slv-snoc-cfg { + cell-id = <MSM_BUS_SLAVE_SNOC_CFG>; + label = "slv-snoc-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_SNOC_CFG>; + }; + + slv_snoc_mpu_cfg: slv-snoc-mpu-cfg { + cell-id = <MSM_BUS_SLAVE_SNOC_MPU_CFG>; + label = "slv-snoc-mpu-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_SNOC_MPU_CFG>; + }; + + slv_ebi1_phy_cfg: slv-ebi1-phy-cfg { + cell-id = <MSM_BUS_SLAVE_EBI1_PHY_CFG>; + label = "slv-ebi1-phy-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_EBI1_PHY_CFG>; + }; + + slv_a0noc_cfg: slv-a0noc-cfg { + cell-id = <MSM_BUS_SLAVE_A0NOC_CFG>; + label = "slv-a0noc-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_A0NOC_CFG>; + }; + + slv_pcie_1_cfg: slv-pcie-1-cfg { + cell-id = <MSM_BUS_SLAVE_PCIE_1_CFG>; + label = "slv-pcie-1-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PCIE_1_CFG>; + }; + + slv_pcie_2_cfg: slv-pcie-2-cfg { + cell-id = <MSM_BUS_SLAVE_PCIE_2_CFG>; + label = "slv-pcie-2-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PCIE_2_CFG>; + }; + + slv_pcie_0_cfg: slv-pcie-0-cfg { + cell-id = <MSM_BUS_SLAVE_PCIE_0_CFG>; + label = "slv-pcie-0-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PCIE_0_CFG>; + }; + + slv_pcie20_ahb2phy: slv-pcie20-ahb2phy { + cell-id = <MSM_BUS_SLAVE_PCIE20_AHB2PHY>; + label = "slv-pcie20-ahb2phy"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PCIE20_AHB2PHY>; + }; + + slv_a0noc_mpu_cfg: slv-a0noc-mpu-cfg { + cell-id = <MSM_BUS_SLAVE_A0NOC_MPU_CFG>; + label = "slv-a0noc-mpu-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_A0NOC_MPU_CFG>; + }; + + slv_ufs_cfg: slv-ufs-cfg { + cell-id = <MSM_BUS_SLAVE_UFS_CFG>; + label = "slv-ufs-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_UFS_CFG>; + }; + + slv_a1noc_cfg: slv-a1noc-cfg { + cell-id = <MSM_BUS_SLAVE_A1NOC_CFG>; + label = "slv-a1noc-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_A1NOC_CFG>; + }; + + slv_a1noc_mpu_cfg: slv-a1noc-mpu-cfg { + cell-id = <MSM_BUS_SLAVE_A1NOC_MPU_CFG>; + label = "slv-a1noc-mpu-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_A1NOC_MPU_CFG>; + }; + + slv_a2noc_cfg: slv-a2noc-cfg { + cell-id = <MSM_BUS_SLAVE_A2NOC_CFG>; + label = "slv-a2noc-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_A2NOC_CFG>; + }; + + slv_a2noc_mpu_cfg: slv-a2noc-mpu-cfg { + cell-id = <MSM_BUS_SLAVE_A2NOC_MPU_CFG>; + label = "slv-a2noc-mpu-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_A2NOC_MPU_CFG>; + }; + + slv_ssc_cfg: slv-ssc-cfg { + cell-id = <MSM_BUS_SLAVE_SSC_CFG>; + label = "slv-ssc-cfg"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_SSC_CFG>; + }; + + slv_a0noc_smmu_cfg: slv-a0noc-smmu-cfg { + cell-id = <MSM_BUS_SLAVE_A0NOC_SMMU_CFG>; + label = "slv-a0noc-smmu-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_A0NOC_SMMU_CFG>; + }; + + slv_a1noc_smmu_cfg: slv-a1noc-smmu-cfg { + cell-id = <MSM_BUS_SLAVE_A1NOC_SMMU_CFG>; + label = "slv-a1noc-smmu-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_A1NOC_SMMU_CFG>; + }; + + slv_a2noc_smmu_cfg: slv-a2noc-smmu-cfg { + cell-id = <MSM_BUS_SLAVE_A2NOC_SMMU_CFG>; + label = "slv-a2noc-smmu-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_A2NOC_SMMU_CFG>; + }; + + slv_lpass_smmu_cfg: slv-lpass-smmu-cfg { + cell-id = <MSM_BUS_SLAVE_LPASS_SMMU_CFG>; + label = "slv-lpass-smmu-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_LPASS_SMMU_CFG>; + }; + + slv_cnoc_mnoc_mmss_cfg: slv-cnoc-mnoc-mmss-cfg { + cell-id = <MSM_BUS_SLAVE_CNOC_MNOC_MMSS_CFG>; + label = "slv-cnoc-mnoc-mmss-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_cnoc>; + qcom,connections = <&mas_cnoc_mnoc_mmss_cfg>; + qcom,slv-rpm-id = <ICBID_SLAVE_CNOC_MNOC_MMSS_CFG>; + }; + + slv_mmagic_cfg: slv-mmagic-cfg { + cell-id = <MSM_BUS_SLAVE_MMAGIC_CFG>; + label = "slv-mmagic-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_MMAGIC_CFG>; + }; + + slv_cpr_cfg: slv-cpr-cfg { + cell-id = <MSM_BUS_SLAVE_CPR_CFG>; + label = "slv-cpr-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_CPR_CFG>; + }; + + slv_misc_cfg: slv-misc-cfg { + cell-id = <MSM_BUS_SLAVE_MISC_CFG>; + label = "slv-misc-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_MISC_CFG>; + }; + + slv_venus_throttle_cfg: slv-venus-throttle-cfg { + cell-id = <MSM_BUS_SLAVE_VENUS_THROTTLE_CFG>; + label = "slv-venus-throttle-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_VENUS_THROTTLE_CFG>; + }; + + slv_venus_cfg: slv-venus-cfg { + cell-id = <MSM_BUS_SLAVE_VENUS_CFG>; + label = "slv-venus-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_VENUS_CFG>; + }; + + slv_vmem_cfg: slv-vmem-cfg { + cell-id = <MSM_BUS_SLAVE_VMEM_CFG>; + label = "slv-vmem-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_VMEM_CFG>; + qcom,enable-only-clk; + clock-names = "node_clk"; + clocks = <&clock_mmss clk_mmss_mmagic_maxi_clk>; + node-gdsc-supply = <&gdsc_mmagic_video>; + }; + + slv_dsa_cfg: slv-dsa-cfg { + cell-id = <MSM_BUS_SLAVE_DSA_CFG>; + label = "slv-dsa-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_DSA_CFG>; + }; + + slv_mnoc_clocks_cfg: slv-mnoc-clocks-cfg { + cell-id = <MSM_BUS_SLAVE_MMSS_CLK_CFG>; + label = "slv-mnoc-clocks-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_MMSS_CLK_CFG>; + }; + + slv_dsa_mpu_cfg: slv-dsa-mpu-cfg { + cell-id = <MSM_BUS_SLAVE_DSA_MPU_CFG>; + label = "slv-dsa-mpu-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_DSA_MPU_CFG>; + }; + + slv_mnoc_mpu_cfg: slv-mnoc-mpu-cfg { + cell-id = <MSM_BUS_SLAVE_MNOC_MPU_CFG>; + label = "slv-mnoc-mpu-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_MNOC_MPU_CFG>; + }; + + slv_display_cfg: slv-display-cfg { + cell-id = <MSM_BUS_SLAVE_DISPLAY_CFG>; + label = "slv-display-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_DISPLAY_CFG>; + }; + + slv_display_throttle_cfg: slv-display-throttle-cfg { + cell-id = <MSM_BUS_SLAVE_DISPLAY_THROTTLE_CFG>; + label = "slv-display-throttle-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_DISPLAY_THROTTLE_CFG>; + }; + + slv_camera_cfg: slv-camera-cfg { + cell-id = <MSM_BUS_SLAVE_CAMERA_CFG>; + label = "slv-camera-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_CAMERA_CFG>; + }; + + slv_camera_throttle_cfg: slv-camera-throttle-cfg { + cell-id = <MSM_BUS_SLAVE_CAMERA_THROTTLE_CFG>; + label = "slv-camera-throttle-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_CAMERA_THROTTLE_CFG>; + }; + + slv_oxili_cfg: slv-oxili-cfg { + cell-id = <MSM_BUS_SLAVE_GRAPHICS_3D_CFG>; + label = "slv-oxili-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_GFX3D_CFG>; + }; + + slv_smmu_mdp_cfg: slv-smmu-mdp-cfg { + cell-id = <MSM_BUS_SLAVE_SMMU_MDP_CFG>; + label = "slv-smmu-mdp-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_SMMU_MDP_CFG>; + }; + + slv_smmu_rot_cfg: slv-smmu-rot-cfg { + cell-id = <MSM_BUS_SLAVE_SMMU_ROTATOR_CFG>; + label = "slv-smmu-rot-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_SMMU_ROTATOR_CFG>; + }; + + slv_smmu_venus_cfg: slv-smmu-venus-cfg { + cell-id = <MSM_BUS_SLAVE_SMMU_VENUS_CFG>; + label = "slv-smmu-venus-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_SMMU_VENUS_CFG>; + }; + + slv_smmu_cpp_cfg: slv-smmu-cpp-cfg { + cell-id = <MSM_BUS_SLAVE_SMMU_CPP_CFG>; + label = "slv-smmu-cpp-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_SMMU_CPP_CFG>; + }; + + slv_smmu_jpeg_cfg: slv-smmu-jpeg-cfg { + cell-id = <MSM_BUS_SLAVE_SMMU_JPEG_CFG>; + label = "slv-smmu-jpeg-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_SMMU_JPEG_CFG>; + }; + + slv_smmu_vfe_cfg: slv-smmu-vfe-cfg { + cell-id = <MSM_BUS_SLAVE_SMMU_VFE_CFG>; + label = "slv-smmu-vfe-cfg"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc_ahb>; + qcom,slv-rpm-id = <ICBID_SLAVE_SMMU_VFE_CFG>; + }; + + slv_mnoc_bimc: slv-mnoc-bimc { + cell-id = <MSM_BUS_MNOC_BIMC_SLV>; + label = "slv-mnoc-bimc"; + qcom,buswidth = <32>; + qcom,agg-ports = <2>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc>; + qcom,connections = <&mas_mnoc_bimc>; + qcom,slv-rpm-id = <ICBID_SLAVE_MNOC_BIMC>; + qcom,enable-only-clk; + clock-names = "node_clk"; + clocks = <&clock_gcc clk_mmssnoc_axi_clk>; + }; + + slv_vmem: slv-vmem { + cell-id = <MSM_BUS_SLAVE_VMEM>; + label = "slv-vmem"; + qcom,buswidth = <32>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_VMEM>; + clock-names = "node_clk"; + clocks = <&clock_mmss clk_mmss_mmagic_maxi_clk>; + node-gdsc-supply = <&gdsc_mmagic_video>; + }; + + slv_srvc_mnoc: slv-srvc-mnoc { + cell-id = <MSM_BUS_SLAVE_SERVICE_MNOC>; + label = "slv-srvc-mnoc"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_mnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_SERVICE_MNOC>; + }; + + slv_pnoc_a1noc: slv-pnoc-a1noc { + cell-id = <MSM_BUS_PNOC_A1NOC_SLV>; + label = "slv-pnoc-a1noc"; + qcom,buswidth = <8>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,connections = <&mas_pnoc_a1noc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PNOC_A1NOC>; + }; + + slv_usb_hs: slv-usb-hs { + cell-id = <MSM_BUS_SLAVE_USB_HS>; + label = "slv-usb-hs"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_USB_HS>; + }; + + slv_sdcc_2: slv-sdcc-2 { + cell-id = <MSM_BUS_SLAVE_SDCC_2>; + label = "slv-sdcc-2"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_SDCC_2>; + }; + + slv_sdcc_4: slv-sdcc-4 { + cell-id = <MSM_BUS_SLAVE_SDCC_4>; + label = "slv-sdcc-4"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_SDCC_4>; + }; + + slv_tsif: slv-tsif { + cell-id = <MSM_BUS_SLAVE_TSIF>; + label = "slv-tsif"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_TSIF>; + }; + + slv_blsp_2: slv-blsp-2 { + cell-id = <MSM_BUS_SLAVE_BLSP_2>; + label = "slv-blsp-2"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_BLSP_2>; + }; + + slv_sdcc_1:slv-sdcc-1 { + cell-id = <MSM_BUS_SLAVE_SDCC_1>; + label = "slv-sdcc-1"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_SDCC_1>; + }; + + slv_blsp_1: slv-blsp-1 { + cell-id = <MSM_BUS_SLAVE_BLSP_1>; + label = "slv-blsp-1"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_BLSP_1>; + }; + + slv_pdm: slv-pdm { + cell-id = <MSM_BUS_SLAVE_PDM>; + label = "slv-pdm"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_pnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PDM>; + }; + + slv_ahb2phy: slv-ahb2phy { + cell-id = <MSM_BUS_SLAVE_AHB2PHY>; + label = "slv-ahb2phy"; + qcom,buswidth = <4>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_pnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_AHB2PHY>; + }; + + slv_hmss: slv-hmss { + cell-id = <MSM_BUS_SLAVE_APPSS>; + label = "slv-hmss"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_APPSS>; + }; + + slv_lpass: slv-lpass { + cell-id = <MSM_BUS_SLAVE_LPASS>; + label = "slv-lpass"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_LPASS>; + }; + + slv_usb3: slv-usb3 { + cell-id = <MSM_BUS_SLAVE_USB3>; + label = "slv-usb3"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_USB3_0>; + }; + + slv_snoc_bimc: slv-snoc-bimc { + cell-id = <MSM_BUS_SNOC_BIMC_SLV>; + label = "slv-snoc-bimc"; + qcom,buswidth = <32>; + qcom,agg-ports = <2>; + qcom,bus-dev = <&fab_snoc>; + qcom,connections = <&mas_snoc_bimc>; + qcom,slv-rpm-id = <ICBID_SLAVE_SNOC_BIMC>; + }; + + slv_snoc_cnoc: slv-snoc-cnoc { + cell-id = <MSM_BUS_SNOC_CNOC_SLV>; + label = "slv-snoc-cnoc"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_snoc>; + qcom,connections = <&mas_snoc_cnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_SNOC_CNOC>; + }; + + slv_imem: slv-imem { + cell-id = <MSM_BUS_SLAVE_OCIMEM>; + label = "slv-imem"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_IMEM>; + }; + + slv_pimem: slv-pimem { + cell-id = <MSM_BUS_SLAVE_PIMEM>; + label = "slv-pimem"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PIMEM>; + }; + + slv_snoc_vmem: slv-snoc-vmem { + cell-id = <MSM_BUS_SLAVE_SNOC_VMEM>; + label = "slv-snoc-vmem"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_snoc>; + qcom,connections = <&mas_snoc_vmem>; + qcom,slv-rpm-id = <ICBID_SLAVE_SNOC_VMEM>; + }; + + slv_snoc_pnoc: slv-snoc-pnoc { + cell-id = <MSM_BUS_SNOC_PNOC_SLV>; + label = "slv-snoc-pnoc"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_snoc>; + qcom,connections = <&mas_snoc_pnoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_SNOC_PNOC>; + }; + + slv_qdss_stm: slv-qdss-stm { + cell-id = <MSM_BUS_SLAVE_QDSS_STM>; + label = "slv-qdss-stm"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_QDSS_STM>; + }; + + slv_pcie_0: slv-pcie-0 { + cell-id = <MSM_BUS_SLAVE_PCIE_0>; + label = "slv-pcie-0"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PCIE_0>; + }; + + slv_pcie_1: slv-pcie-1 { + cell-id = <MSM_BUS_SLAVE_PCIE_1>; + label = "slv-pcie-1"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PCIE_1>; + }; + + slv_pcie_2: slv-pcie-2 { + cell-id = <MSM_BUS_SLAVE_PCIE_2>; + label = "slv-pcie-2"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_PCIE_2>; + }; + + slv_srvc_snoc: slv-srvc-snoc { + cell-id = <MSM_BUS_SLAVE_SERVICE_SNOC>; + label = "slv-srvc-snoc"; + qcom,buswidth = <16>; + qcom,agg-ports = <1>; + qcom,ap-owned; + qcom,bus-dev = <&fab_snoc>; + qcom,slv-rpm-id = <ICBID_SLAVE_SERVICE_SNOC>; + }; + }; + + devfreq_spdm_cpu { + compatible = "qcom,devfreq_spdm"; + qcom,msm-bus,name = "devfreq_spdm"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <1 512 0 0>, + <1 512 0 0>; + qcom,msm-bus,active-only; + qcom,spdm-client = <0>; + + clock-names = "cci_clk"; + clocks = <&clock_cpu clk_cbf_clk>; + + qcom,bw-upstep = <1000>; + qcom,bw-dwnstep = <1000>; + qcom,max-vote = <10000>; + qcom,up-step-multp = <2>; + qcom,spdm-interval = <100>; + + qcom,ports = <24>; + qcom,alpha-up = <12>; + qcom,alpha-down = <15>; + qcom,bucket-size = <8>; + + /*max pl1 freq, max pl2 freq*/ + qcom,pl-freqs = <260000 770000>; + + /* pl1 low, pl1 high, pl2 low, pl2 high, pl3 low, pl3 high */ + qcom,reject-rate = <5000 5000 5000 5000 5000 5000>; + /* pl1 low, pl1 high, pl2 low, pl2 high, pl3 low, pl3 high */ + qcom,response-time-us = <10000 10000 10000 10000 10000 10000>; + /* pl1 low, pl1 high, pl2 low, pl2 high, pl3 low, pl3 high */ + qcom,cci-response-time-us = <10000 10000 10000 10000 10000 10000>; + qcom,max-cci-freq = <1036800> ; + }; + + devfreq_spdm_gov { + compatible = "qcom,gov_spdm_hyp"; + interrupt-names = "spdm-irq"; + interrupts = <0 192 0>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-adp.dtsi b/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-adp.dtsi new file mode 100644 index 000000000000..5589d808d5b1 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-adp.dtsi @@ -0,0 +1,233 @@ +/* + * Copyright (c) 2015 The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + led_flash0: qcom,camera-flash { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-source = <&pmi8994_flash0 &pmi8994_flash1>; + qcom,torch-source = <&pmi8994_torch0 &pmi8994_torch1>; + qcom,switch-source = <&pmi8994_switch>; + }; +}; + +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + actuator1: qcom,actuator@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,actuator"; + qcom,cci-master = <1>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + eeprom0: qcom,eeprom@0 { + cell-index = <0>; + reg = <0>; + compatible = "qcom,eeprom"; + qcom,cci-master = <0>; + cam_vdig-supply = <&pm8994_s3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000 2800000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000 2800000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_rear_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 30 0>, + <&tlmm 29 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"; + clocks = <&clock_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + eeprom1: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + qcom,cci-master = <1>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 2800000>; + qcom,cam-vreg-max-voltage = <1000000 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_mclk2_active &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_suspend>; + gpios = <&tlmm 15 0>, + <&tlmm 23 0>, + <&tlmm 26 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"; + clocks = <&clock_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + 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,led-flash-src = <&led_flash0>; + qcom,actuator-src = <&actuator0>; + qcom,eeprom-src = <&eeprom0>; + cam_vdig-supply = <&pm8994_s3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_rear_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 30 0>, + <&tlmm 29 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_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + 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 = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pmi8994_boostbypass>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 3150000>; + qcom,cam-vreg-max-voltage = <1000000 0 3600000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_rear2_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_rear2_suspend>; + gpios = <&tlmm 14 0>, + <&tlmm 63 0>, + <&tlmm 62 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 = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk1_clk_src>, + <&clock_mmss clk_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x02>; + qcom,csiphy-sd-index = <2>; + qcom,csid-sd-index = <2>; + qcom,mount-angle = <90>; + qcom,eeprom-src = <&eeprom1>; + qcom,actuator-src = <&actuator1>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 2800000>; + qcom,cam-vreg-max-voltage = <1000000 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_mclk2_active &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_suspend>; + gpios = <&tlmm 15 0>, + <&tlmm 23 0>, + <&tlmm 26 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_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-cdp.dtsi b/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-cdp.dtsi new file mode 100644 index 000000000000..435d1626d3cc --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-cdp.dtsi @@ -0,0 +1,243 @@ +/* + * Copyright (c) 2015 The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + led_flash0: qcom,camera-flash { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-source = <&pmi8994_flash0 &pmi8994_flash1>; + qcom,torch-source = <&pmi8994_torch0 &pmi8994_torch1>; + qcom,switch-source = <&pmi8994_switch>; + }; +}; + +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + actuator1: qcom,actuator@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,actuator"; + qcom,cci-master = <1>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + ois0: qcom,ois@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,ois"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + eeprom0: qcom,eeprom@0 { + cell-index = <0>; + reg = <0>; + compatible = "qcom,eeprom"; + qcom,cci-master = <0>; + cam_vdig-supply = <&pm8994_s3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000 2800000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000 2800000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_rear_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 30 0>, + <&tlmm 29 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"; + clocks = <&clock_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + eeprom1: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + qcom,cci-master = <1>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 2800000>; + qcom,cam-vreg-max-voltage = <1000000 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_mclk2_active &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_suspend>; + gpios = <&tlmm 15 0>, + <&tlmm 23 0>, + <&tlmm 26 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"; + clocks = <&clock_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <0>; + qcom,led-flash-src = <&led_flash0>; + qcom,actuator-src = <&actuator0>; + qcom,ois-src = <&ois0>; + qcom,eeprom-src = <&eeprom0>; + cam_vdig-supply = <&pm8994_s3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_rear_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 30 0>, + <&tlmm 29 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_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + 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 = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pmi8994_boostbypass>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 3150000>; + qcom,cam-vreg-max-voltage = <1000000 0 3600000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_rear2_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_rear2_suspend>; + gpios = <&tlmm 14 0>, + <&tlmm 63 0>, + <&tlmm 62 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 = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk1_clk_src>, + <&clock_mmss clk_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x02>; + qcom,csiphy-sd-index = <2>; + qcom,csid-sd-index = <2>; + qcom,mount-angle = <90>; + qcom,eeprom-src = <&eeprom1>; + qcom,actuator-src = <&actuator1>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 2800000>; + qcom,cam-vreg-max-voltage = <1000000 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_mclk2_active &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_front_suspend>; + gpios = <&tlmm 15 0>, + <&tlmm 23 0>, + <&tlmm 26 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_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-dtp.dtsi b/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-dtp.dtsi new file mode 100644 index 000000000000..fa2053100892 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-dtp.dtsi @@ -0,0 +1,233 @@ +/* + * Copyright (c) 2015 The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + led_flash0: qcom,camera-flash { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-source = <&pmi8994_flash0 &pmi8994_flash1>; + qcom,torch-source = <&pmi8994_torch0 &pmi8994_torch1>; + qcom,switch-source = <&pmi8994_switch>; + }; +}; + +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + actuator1: qcom,actuator@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,actuator"; + qcom,cci-master = <1>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + eeprom0: qcom,eeprom@0 { + cell-index = <0>; + reg = <0>; + compatible = "qcom,eeprom"; + qcom,cci-master = <0>; + cam_vdig-supply = <&pm8994_s3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000 2800000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000 2800000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_rear_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 30 0>, + <&tlmm 29 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"; + clocks = <&clock_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + eeprom1: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + qcom,cci-master = <1>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + 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_mclk2_active &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_suspend>; + gpios = <&tlmm 15 0>, + <&tlmm 23 0>, + <&tlmm 26 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"; + clocks = <&clock_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + 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,led-flash-src = <&led_flash0>; + qcom,actuator-src = <&actuator0>; + qcom,eeprom-src = <&eeprom0>; + cam_vdig-supply = <&pm8994_s3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_rear_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 30 0>; + qcom,gpio-standby = <1>; + qcom,gpio-req-tbl-num = <0 1>; + qcom,gpio-req-tbl-flags = <1 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_STANDBY0"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + 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 = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pmi8994_boostbypass>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 3150000>; + qcom,cam-vreg-max-voltage = <1000000 0 3600000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_rear2_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_rear2_suspend>; + gpios = <&tlmm 14 0>, + <&tlmm 63 0>, + <&tlmm 62 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 = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk1_clk_src>, + <&clock_mmss clk_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + 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 = <&eeprom1>; + qcom,actuator-src = <&actuator1>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + 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_mclk2_active + &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_suspend>; + gpios = <&tlmm 15 0>, + <&tlmm 23 0>, + <&tlmm 26 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_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-liquid.dtsi b/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-liquid.dtsi new file mode 100644 index 000000000000..962b85a64c9d --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-liquid.dtsi @@ -0,0 +1,244 @@ +/* + * Copyright (c) 2015 The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + led_flash0: qcom,camera-flash { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-source = <&pmi8994_flash0 &pmi8994_flash1>; + qcom,torch-source = <&pmi8994_torch0 &pmi8994_torch1>; + qcom,switch-source = <&pmi8994_switch>; + }; +}; + +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + actuator1: qcom,actuator@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,actuator"; + qcom,cci-master = <1>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + ois0: qcom,ois@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,ois"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + eeprom0: qcom,eeprom@0 { + cell-index = <0>; + reg = <0>; + compatible = "qcom,eeprom"; + qcom,cci-master = <0>; + cam_vdig-supply = <&pm8994_s3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_rear_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 30 0>, + <&tlmm 29 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"; + clocks = <&clock_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + eeprom1: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + qcom,cci-master = <1>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 2800000>; + qcom,cam-vreg-max-voltage = <1000000 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_mclk2_active &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_suspend>; + gpios = <&tlmm 15 0>, + <&tlmm 23 0>, + <&tlmm 26 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"; + clocks = <&clock_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <180>; + qcom,led-flash-src = <&led_flash0>; + qcom,actuator-src = <&actuator0>; + qcom,ois-src = <&ois0>; + qcom,eeprom-src = <&eeprom0>; + cam_vdig-supply = <&pm8994_s3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_rear_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 30 0>, + <&tlmm 29 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_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + 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 = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pmi8994_boostbypass>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 3150000>; + qcom,cam-vreg-max-voltage = <1000000 0 3600000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_rear2_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_rear2_suspend>; + gpios = <&tlmm 14 0>, + <&tlmm 63 0>, + <&tlmm 62 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 = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_mmss clk_mclk1_clk_src>, + <&clock_mmss clk_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x02>; + qcom,csiphy-sd-index = <2>; + qcom,csid-sd-index = <2>; + qcom,mount-angle = <360>; + qcom,eeprom-src = <&eeprom1>; + qcom,actuator-src = <&actuator1>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 2800000>; + qcom,cam-vreg-max-voltage = <1000000 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_mclk2_active &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_suspend>; + gpios = <&tlmm 15 0>, + <&tlmm 23 0>, + <&tlmm 26 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_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-mtp.dtsi b/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-mtp.dtsi new file mode 100644 index 000000000000..243e517154d1 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-camera-sensor-mtp.dtsi @@ -0,0 +1,246 @@ +/* + * Copyright (c) 2015 The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + led_flash0: qcom,camera-flash { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-source = <&pmi8994_flash0 &pmi8994_flash1>; + qcom,torch-source = <&pmi8994_torch0 &pmi8994_torch1>; + qcom,switch-source = <&pmi8994_switch>; + }; +}; + +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + actuator1: qcom,actuator@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,actuator"; + qcom,cci-master = <1>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + ois0: qcom,ois@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,ois"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2800000>; + qcom,cam-vreg-max-voltage = <2800000>; + qcom,cam-vreg-op-mode = <100000>; + }; + + eeprom0: qcom,eeprom@0 { + cell-index = <0>; + reg = <0>; + compatible = "qcom,eeprom"; + qcom,cci-master = <0>; + cam_vdig-supply = <&pm8994_s3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + cam_vaf-supply = <&pm8994_l23>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000 2800000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000 2800000>; + qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_rear_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 30 0>, + <&tlmm 29 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"; + clocks = <&clock_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + eeprom1: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + qcom,cci-master = <1>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 2800000>; + qcom,cam-vreg-max-voltage = <1000000 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_mclk2_active &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_suspend>; + gpios = <&tlmm 15 0>, + <&tlmm 23 0>, + <&tlmm 26 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"; + clocks = <&clock_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + 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,led-flash-src = <&led_flash0>; + qcom,actuator-src = <&actuator0>; + qcom,ois-src = <&ois0>; + qcom,eeprom-src = <&eeprom0>; + cam_vdig-supply = <&pm8994_s3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_rear_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 30 0>, + <&tlmm 29 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_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + 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>; + qcom,eeprom-src = <&eeprom1>; + qcom,actuator-src = <&actuator1>; + cam_vdig-supply = <&pm8994_s3>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1300000 0 2500000>; + qcom,cam-vreg-max-voltage = <1300000 0 2500000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_rear_suspend>; + gpios = <&tlmm 13 0>, + <&tlmm 30 0>, + <&tlmm 29 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 = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <1>; + status = "ok"; + clocks = <&clock_mmss clk_mclk0_clk_src>, + <&clock_mmss clk_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x02>; + qcom,csiphy-sd-index = <2>; + qcom,csid-sd-index = <2>; + qcom,mount-angle = <90>; + qcom,eeprom-src = <&eeprom1>; + qcom,actuator-src = <&actuator1>; + cam_vdig-supply = <&pm8994_l27>; + cam_vio-supply = <&pm8994_lvs1>; + cam_vana-supply = <&pm8994_l29>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1000000 0 2800000>; + qcom,cam-vreg-max-voltage = <1000000 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_mclk2_active &cam_sensor_front_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_front_suspend>; + gpios = <&tlmm 15 0>, + <&tlmm 23 0>, + <&tlmm 26 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_mmss clk_mclk2_clk_src>, + <&clock_mmss clk_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-camera.dtsi b/arch/arm64/boot/dts/qcom/msm8996-camera.dtsi new file mode 100644 index 000000000000..e93558969f04 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-camera.dtsi @@ -0,0 +1,787 @@ +/* + * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + qcom,msm-cam@8c0000 { + compatible = "qcom,msm-cam"; + reg = <0x8c0000 0x40000>; + reg-names = "msm-cam"; + status = "ok"; + bus-vectors = "suspend", "svs", "nominal", "turbo"; + qcom,bus-votes = <0 300000000 640000000 640000000>; + }; + + qcom,csiphy@a34000 { + cell-index = <0>; + compatible = "qcom,csiphy-v3.5", "qcom,csiphy"; + reg = <0xa34000 0x1000>, <0xA00030 0x4>; + reg-names = "csiphy", "csiphy_clk_mux"; + interrupts = <0 78 0>; + interrupt-names = "csiphy"; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi0phytimer_clk_src>, + <&clock_mmss clk_camss_csi0phytimer_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_csiphy0_3p_clk_src>, + <&clock_mmss clk_camss_csiphy0_3p_clk>; + clock-names = "camss_top_ahb_clk", + "ispif_ahb_clk", "csiphy_timer_src_clk", + "csiphy_timer_clk", "camss_ahb_clk", + "csiphy_3p_clk_src", "csi_phy_3p_clk"; + qcom,clock-rates = <0 0 266670000 0 0 200000000 0>; + }; + + qcom,csiphy@a35000 { + cell-index = <1>; + compatible = "qcom,csiphy-v3.5", "qcom,csiphy"; + reg = <0xa35000 0x1000>, <0xA00038 0x4>; + reg-names = "csiphy", "csiphy_clk_mux"; + interrupts = <0 79 0>; + interrupt-names = "csiphy"; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi1phytimer_clk_src>, + <&clock_mmss clk_camss_csi1phytimer_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_csiphy1_3p_clk_src>, + <&clock_mmss clk_camss_csiphy1_3p_clk>; + clock-names = "camss_top_ahb_clk", + "ispif_ahb_clk", "csiphy_timer_src_clk", + "csiphy_timer_clk", "camss_ahb_clk", + "csiphy_3p_clk_src", "csi_phy_3p_clk"; + qcom,clock-rates = <0 0 266670000 0 0 200000000 0>; + }; + + qcom,csiphy@a36000 { + cell-index = <2>; + compatible = "qcom,csiphy-v3.5", "qcom,csiphy"; + reg = <0xa36000 0x1000>, <0xA00040 0x4>; + reg-names = "csiphy", "csiphy_clk_mux"; + interrupts = <0 80 0>; + interrupt-names = "csiphy"; + clocks = <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi2phytimer_clk_src>, + <&clock_mmss clk_camss_csi2phytimer_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_csiphy2_3p_clk_src>, + <&clock_mmss clk_camss_csiphy2_3p_clk>; + clock-names = "camss_top_ahb_clk", + "ispif_ahb_clk", "csiphy_timer_src_clk", + "csiphy_timer_clk", "camss_ahb_clk", + "csiphy_3p_clk_src", "csi_phy_3p_clk"; + qcom,clock-rates = <0 0 266670000 0 0 200000000 0>; + }; + + qcom,csid@a30000 { + cell-index = <0>; + compatible = "qcom,csid-v3.5", "qcom,csid"; + reg = <0xa30000 0x400>; + reg-names = "csid"; + interrupts = <0 296 0>; + interrupt-names = "csid"; + qcom,csi-vdd-voltage = <1250000>; + qcom,mipi-csi-vdd-supply = <&pm8994_l2>; + mmagic-supply = <&gdsc_mmagic_camss>; + gdscr-supply = <&gdsc_camss_top>; + qcom,cam-vreg-name = "mmagic", "gdscr"; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi0_clk_src>, + <&clock_mmss clk_camss_csi0_clk>, + <&clock_mmss clk_camss_csi0phy_clk>, + <&clock_mmss clk_camss_csi0_ahb_clk>, + <&clock_mmss clk_camss_csi0rdi_clk>, + <&clock_mmss clk_camss_csi0pix_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "mmagic_camss_ahb_clk", "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_src_clk", "csi_clk", + "csi_phy_clk", "csi_ahb_clk", "csi_rdi_clk", + "csi_pix_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 0 200000000 0 0 0 0 0 0>; + status = "ok"; + }; + + qcom,csid@a30400 { + cell-index = <1>; + compatible = "qcom,csid-v3.5", "qcom,csid"; + reg = <0xa30400 0x400>; + reg-names = "csid"; + interrupts = <0 297 0>; + interrupt-names = "csid"; + qcom,csi-vdd-voltage = <1250000>; + qcom,mipi-csi-vdd-supply = <&pm8994_l2>; + mmagic-supply = <&gdsc_mmagic_camss>; + gdscr-supply = <&gdsc_camss_top>; + qcom,cam-vreg-name = "mmagic", "gdscr"; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi1_clk_src>, + <&clock_mmss clk_camss_csi1_clk>, + <&clock_mmss clk_camss_csi1phy_clk>, + <&clock_mmss clk_camss_csi1_ahb_clk>, + <&clock_mmss clk_camss_csi1rdi_clk>, + <&clock_mmss clk_camss_csi1pix_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "mmagic_camss_ahb_clk", "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_src_clk", "csi_clk", + "csi_phy_clk", "csi_ahb_clk", "csi_rdi_clk", + "csi_pix_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 0 200000000 0 0 0 0 0 0>; + }; + + qcom,csid@a30800 { + cell-index = <2>; + compatible = "qcom,csid-v3.5", "qcom,csid"; + reg = <0xa30800 0x400>; + reg-names = "csid"; + interrupts = <0 298 0>; + interrupt-names = "csid"; + qcom,csi-vdd-voltage = <1250000>; + qcom,mipi-csi-vdd-supply = <&pm8994_l2>; + mmagic-supply = <&gdsc_mmagic_camss>; + gdscr-supply = <&gdsc_camss_top>; + qcom,cam-vreg-name = "mmagic", "gdscr"; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi2_clk_src>, + <&clock_mmss clk_camss_csi2_clk>, + <&clock_mmss clk_camss_csi2phy_clk>, + <&clock_mmss clk_camss_csi2_ahb_clk>, + <&clock_mmss clk_camss_csi2rdi_clk>, + <&clock_mmss clk_camss_csi2pix_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "mmagic_camss_ahb_clk", "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_src_clk", "csi_clk", + "csi_phy_clk", "csi_ahb_clk", "csi_rdi_clk", + "csi_pix_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 0 200000000 0 0 0 0 0 0>; + }; + + qcom,csid@a30c00 { + cell-index = <3>; + compatible = "qcom,csid-v3.5", "qcom,csid"; + reg = <0xa30c00 0x400>; + reg-names = "csid"; + interrupts = <0 299 0>; + interrupt-names = "csid"; + qcom,csi-vdd-voltage = <1250000>; + qcom,mipi-csi-vdd-supply = <&pm8994_l2>; + mmagic-supply = <&gdsc_mmagic_camss>; + gdscr-supply = <&gdsc_camss_top>; + qcom,cam-vreg-name = "mmagic", "gdscr"; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi3_clk_src>, + <&clock_mmss clk_camss_csi3_clk>, + <&clock_mmss clk_camss_csi3phy_clk>, + <&clock_mmss clk_camss_csi3_ahb_clk>, + <&clock_mmss clk_camss_csi3rdi_clk>, + <&clock_mmss clk_camss_csi3pix_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "mmagic_camss_ahb_clk", "camss_top_ahb_clk", + "ispif_ahb_clk", "csi_src_clk", "csi_clk", + "csi_phy_clk", "csi_ahb_clk", "csi_rdi_clk", + "csi_pix_clk", "camss_ahb_clk"; + qcom,clock-rates = <0 0 0 200000000 0 0 0 0 0 0>; + }; + + qcom,ispif@a31000 { + cell-index = <0>; + compatible = "qcom,ispif-v3.0", "qcom,ispif"; + reg = <0xa31000 0xc00>, + <0xa00020 0x4>; + reg-names = "ispif", "csi_clk_mux"; + interrupts = <0 309 0>; + interrupt-names = "ispif"; + qcom,num-isps = <0x2>; + camss-vdd-supply = <&gdsc_camss_top>; + mmagic-vdd-supply = <&gdsc_mmagic_camss>; + vfe0-vdd-supply = <&gdsc_vfe0>; + vfe1-vdd-supply = <&gdsc_vfe1>; + qcom,vdd-names = "camss-vdd", "mmagic-vdd", "vfe0-vdd", + "vfe1-vdd"; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_camss_ispif_ahb_clk>, + <&clock_mmss clk_csi0_clk_src>, + <&clock_mmss clk_camss_csi0_clk>, + <&clock_mmss clk_camss_csi0rdi_clk>, + <&clock_mmss clk_camss_csi0pix_clk>, + <&clock_mmss clk_csi1_clk_src>, + <&clock_mmss clk_camss_csi1_clk>, + <&clock_mmss clk_camss_csi1rdi_clk>, + <&clock_mmss clk_camss_csi1pix_clk>, + <&clock_mmss clk_csi2_clk_src>, + <&clock_mmss clk_camss_csi2_clk>, + <&clock_mmss clk_camss_csi2rdi_clk>, + <&clock_mmss clk_camss_csi2pix_clk>, + <&clock_mmss clk_csi3_clk_src>, + <&clock_mmss clk_camss_csi3_clk>, + <&clock_mmss clk_camss_csi3rdi_clk>, + <&clock_mmss clk_camss_csi3pix_clk>, + <&clock_mmss clk_vfe0_clk_src>, + <&clock_mmss clk_camss_vfe0_clk>, + <&clock_mmss clk_camss_csi_vfe0_clk>, + <&clock_mmss clk_vfe1_clk_src>, + <&clock_mmss clk_camss_vfe1_clk>, + <&clock_mmss clk_camss_csi_vfe1_clk>; + clock-names = "mmagic_camss_ahb_clk", + "camss_top_ahb_clk", + "camss_ahb_clk", "ispif_ahb_clk", + "csi0_src_clk", "csi0_clk", + "csi0_pix_clk", "csi0_rdi_clk", + "csi1_src_clk", "csi1_clk", + "csi1_pix_clk", "csi1_rdi_clk", + "csi2_src_clk", "csi2_clk", + "csi2_pix_clk", "csi2_rdi_clk", + "csi3_src_clk", "csi3_clk", + "csi3_pix_clk", "csi3_rdi_clk", + "vfe0_clk_src", "camss_vfe_vfe0_clk", "camss_csi_vfe0_clk", + "vfe1_clk_src", "camss_vfe_vfe1_clk", "camss_csi_vfe1_clk"; + qcom,clock-rates = <0 0 0 0 + 200000000 0 0 0 + 200000000 0 0 0 + 200000000 0 0 0 + 200000000 0 0 0 + 0 0 0 + 0 0 0>; + qcom,clock-control = "NO_SET_RATE", "NO_SET_RATE", + "NO_SET_RATE", "NO_SET_RATE", + "SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE", + "SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE", + "SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE", + "SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE", + "INIT_RATE", "NO_SET_RATE", "NO_SET_RATE", + "INIT_RATE", "NO_SET_RATE", "NO_SET_RATE"; + status = "ok"; + }; + + vfe0: qcom,vfe0@a10000 { + cell-index = <0>; + compatible = "qcom,vfe47"; + reg = <0xa10000 0x4000>, + <0xa40000 0x3000>; + reg-names = "vfe", "vfe_vbif"; + interrupts = <0 314 0>; + interrupt-names = "vfe"; + vdd-supply = <&gdsc_vfe0>; + mmagic-vdd-supply = <&gdsc_mmagic_camss>; + camss-vdd-supply = <&gdsc_camss_top>; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmagic_camss_axi_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_vfe0_clk_src>, + <&clock_mmss clk_camss_vfe0_clk>, + <&clock_mmss clk_camss_csi_vfe0_clk>, + <&clock_mmss clk_camss_vfe_ahb_clk>, + <&clock_mmss clk_camss_vfe0_ahb_clk>, + <&clock_mmss clk_camss_vfe_axi_clk>, + <&clock_mmss clk_camss_vfe0_stream_clk>, + <&clock_mmss clk_smmu_vfe_axi_clk>; + clock-names = "mmagic_ahb_clk", + "camss_axi_clk", + "camss_top_ahb_clk" , "camss_ahb_clk", + "vfe_clk_src", "camss_vfe_clk", + "camss_csi_vfe_clk", + "vfe_vbif_ahb_clk", "vfe_ahb_clk", + "bus_clk", "vfe_stream_clk", "smmu_vfe_axi_clk"; + qcom,clock-rates = <0 0 0 0 320000000 0 0 0 0 0 0 0>; + status = "ok"; + qos-entries = <8>; + qos-regs = <0x404 0x408 0x40c 0x410 0x414 0x418 + 0x41c 0x420>; + qos-settings = <0xaaa9aaa9 + 0xaaa9aaa9 + 0xaaa9aaa9 + 0xaaa9aaa9 + 0xaaa9aaa9 + 0xaaa9aaa9 + 0xaaa9aaa9 + 0x0001aaa9>; + vbif-entries = <1>; + vbif-regs = <0x124>; + vbif-settings = <0x3>; + ds-entries = <17>; + ds-regs = <0x424 0x428 0x42c 0x430 0x434 + 0x438 0x43c 0x440 0x444 0x448 0x44c + 0x450 0x454 0x458 0x45c 0x460 0x464>; + ds-settings = <0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0x40000103>; + max-clk-svs = <300000000>; + max-clk-nominal = <465000000>; + max-clk-turbo = <600000000>; + }; + + vfe1: qcom,vfe1@a14000 { + cell-index = <1>; + compatible = "qcom,vfe47"; + reg = <0xa14000 0x4000>, + <0xa40000 0x3000>; + reg-names = "vfe", "vfe_vbif"; + interrupts = <0 315 0>; + interrupt-names = "vfe"; + vdd-supply = <&gdsc_vfe1>; + mmagic-vdd-supply = <&gdsc_mmagic_camss>; + camss-vdd-supply = <&gdsc_camss_top>; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmagic_camss_axi_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_vfe1_clk_src>, + <&clock_mmss clk_camss_vfe1_clk>, + <&clock_mmss clk_camss_csi_vfe1_clk>, + <&clock_mmss clk_camss_vfe_ahb_clk>, + <&clock_mmss clk_camss_vfe1_ahb_clk>, + <&clock_mmss clk_camss_vfe_axi_clk>, + <&clock_mmss clk_camss_vfe1_stream_clk>, + <&clock_mmss clk_smmu_vfe_axi_clk>; + clock-names = "mmagic_ahb_clk", + "camss_axi_clk", + "camss_top_ahb_clk" , "camss_ahb_clk", + "vfe_clk_src", "camss_vfe_clk", + "camss_csi_vfe_clk", + "vfe_vbif_ahb_clk", "vfe_ahb_clk", + "bus_clk", "vfe_stream_clk", "smmu_vfe_axi_clk"; + qcom,clock-rates = <0 0 0 0 320000000 0 0 0 0 0 0 0>; + status = "ok"; + qos-entries = <8>; + qos-regs = <0x404 0x408 0x40c 0x410 0x414 0x418 + 0x41c 0x420>; + qos-settings = <0xaaa9aaa9 + 0xaaa9aaa9 + 0xaaa9aaa9 + 0xaaa9aaa9 + 0xaaa9aaa9 + 0xaaa9aaa9 + 0xaaa9aaa9 + 0x0001aaa9>; + vbif-entries = <1>; + vbif-regs = <0x124>; + vbif-settings = <0x3>; + ds-entries = <17>; + ds-regs = <0x424 0x428 0x42c 0x430 0x434 + 0x438 0x43c 0x440 0x444 0x448 0x44c + 0x450 0x454 0x458 0x45c 0x460 0x464>; + ds-settings = <0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0xcccc0011 + 0x40000103>; + max-clk-svs = <300000000>; + max-clk-nominal = <465000000>; + max-clk-turbo = <600000000>; + }; + + qcom,vfe { + compatible = "qcom,vfe"; + num_child = <2>; + }; + + qcom,cam_smmu { + compatible = "qcom,msm-cam-smmu"; + + msm_cam_smmu_cb1 { + compatible = "qcom,msm-cam-smmu-cb"; + iommus = <&vfe_smmu 0>, + <&vfe_smmu 1>, + <&vfe_smmu 2>, + <&vfe_smmu 3>; + label = "vfe"; + qcom,scratch-buf-support; + }; + + msm_cam_smmu_cb3 { + compatible = "qcom,msm-cam-smmu-cb"; + iommus = <&cpp_fd_smmu 0>; + label = "cpp"; + }; + + msm_cam_smmu_cb4 { + compatible = "qcom,msm-cam-smmu-cb"; + iommus = <&cpp_fd_smmu 1>; + label = "camera_fd"; + }; + + msm_cam_smmu_cb5 { + compatible = "qcom,msm-cam-smmu-cb"; + iommus = <&jpeg_smmu 0>; + label = "jpeg_enc0"; + }; + + msm_cam_smmu_cb6 { + compatible = "qcom,msm-cam-smmu-cb"; + iommus = <&jpeg_smmu 1>; + label = "jpeg_dma"; + }; + + msm_cam_smmu_cb7 { + compatible = "qcom,msm-cam-smmu-cb"; + iommus = <&jpeg_smmu 2>; + label = "jpeg_dec"; + }; + }; + + qcom,jpeg@a1c000 { + cell-index = <0>; + compatible = "qcom,jpeg"; + reg = <0xa1c000 0x4000>, + <0xa60000 0x3000>; + reg-names = "jpeg"; + interrupts = <0 316 0>; + interrupt-names = "jpeg"; + mmagic-vdd-supply = <&gdsc_mmagic_camss>; + camss-vdd-supply = <&gdsc_camss_top>; + vdd-supply = <&gdsc_jpeg>; + qcom,vdd-names = "mmagic-vdd", "camss-vdd", "vdd"; + clock-names = "mmss_mmagic_ahb_clk", + "core_clk", "iface_clk", "bus_clk0", + "camss_top_ahb_clk", "camss_ahb_clk", + "smmu_jpeg_axi_clk", "mmagic_camss_axi_clk"; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_camss_jpeg0_clk>, + <&clock_mmss clk_camss_jpeg_ahb_clk>, + <&clock_mmss clk_camss_jpeg_axi_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_smmu_jpeg_axi_clk>, + <&clock_mmss clk_mmagic_camss_axi_clk>; + qcom,clock-rates = <0 320000000 0 0 0 0 0 0>; + qcom,vbif-reg-settings = <0x4 0x1>; + qcom,prefetch-reg-settings = <0x30c 0x1111>, + <0x318 0x31>, + <0x324 0x31>, + <0x330 0x31>, + <0x33c 0x0>; + status = "ok"; + }; + + qcom,jpeg@a24000 { + cell-index = <2>; + compatible = "qcom,jpeg"; + reg = <0xa24000 0x4000>, + <0xa60000 0x3000>; + reg-names = "jpeg"; + interrupts = <0 318 0>; + interrupt-names = "jpeg"; + mmagic-vdd-supply = <&gdsc_mmagic_camss>; + camss-vdd-supply = <&gdsc_camss_top>; + vdd-supply = <&gdsc_jpeg>; + qcom,vdd-names = "mmagic-vdd", "camss-vdd", "vdd"; + clock-names = "mmss_mmagic_ahb_clk", + "core_clk", "iface_clk", "bus_clk0", + "camss_top_ahb_clk", "camss_ahb_clk", + "smmu_jpeg_axi_clk", "mmagic_camss_axi_clk"; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_camss_jpeg2_clk>, + <&clock_mmss clk_camss_jpeg_ahb_clk>, + <&clock_mmss clk_camss_jpeg_axi_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_smmu_jpeg_axi_clk>, + <&clock_mmss clk_mmagic_camss_axi_clk>; + qcom,clock-rates = <0 266670000 0 0 0 0 0 0>; + qcom,vbif-reg-settings = <0x4 0x1>; + qcom,prefetch-reg-settings = <0x30c 0x1111>, + <0x318 0x0>, + <0x324 0x31>, + <0x330 0x31>, + <0x33c 0x31>; + status = "ok"; + }; + + qcom,jpeg@aa0000 { + cell-index = <3>; + compatible = "qcom,jpeg_dma"; + reg = <0xaa0000 0x4000>, + <0xa60000 0x3000>; + reg-names = "jpeg"; + interrupts = <0 304 0>; + interrupt-names = "jpeg"; + mmagic-vdd-supply = <&gdsc_mmagic_camss>; + camss-vdd-supply = <&gdsc_camss_top>; + vdd-supply = <&gdsc_jpeg>; + qcom,vdd-names = "mmagic-vdd", "camss-vdd", "vdd"; + clock-names = "mmss_mmagic_ahb_clk", + "core_clk", "iface_clk", "bus_clk0", + "camss_top_ahb_clk", "camss_ahb_clk", + "smmu_jpeg_axi_clk", "mmagic_camss_axi_clk"; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_camss_jpeg_dma_clk>, + <&clock_mmss clk_camss_jpeg_ahb_clk>, + <&clock_mmss clk_camss_jpeg_axi_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_smmu_jpeg_axi_clk>, + <&clock_mmss clk_mmagic_camss_axi_clk>; + qcom,clock-rates = <0 266670000 0 0 0 0 0 0>; + qcom,vbif-reg-settings = <0x4 0x1>; + qcom,prefetch-reg-settings = <0x18c 0x11>, + <0x1a0 0x31>, + <0x1b0 0x31>; + status = "ok"; + }; + + qcom,irqrouter@a00000 { + cell-index = <0>; + compatible = "qcom,irqrouter"; + reg = <0xa00000 0x4000>; + reg-names = "irqrouter"; + }; + + cpp: qcom,cpp@a04000 { + cell-index = <0>; + compatible = "qcom,cpp"; + reg = <0xa04000 0x100>, + <0xa80000 0x3000>, + <0xa18000 0x3000>, + <0x8c36D4 0x4>; + reg-names = "cpp", "cpp_vbif", "cpp_hw", "camss_cpp"; + interrupts = <0 294 0>; + interrupt-names = "cpp"; + mmagic-vdd-supply = <&gdsc_mmagic_camss>; + camss-vdd-supply = <&gdsc_camss_top>; + vdd-supply = <&gdsc_cpp>; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmagic_camss_axi_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_cpp_clk_src>, + <&clock_mmss clk_camss_cpp_ahb_clk>, + <&clock_mmss clk_camss_cpp_axi_clk>, + <&clock_mmss clk_camss_cpp_clk>, + <&clock_mmss clk_camss_micro_ahb_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_smmu_cpp_axi_clk>, + <&clock_mmss clk_camss_cpp_vbif_ahb_clk>; + clock-names = "mmss_mmagic_ahb_clk", + "mmagic_camss_axi_clk", "camss_top_ahb_clk", + "cpp_core_clk", "camss_cpp_ahb_clk", + "camss_cpp_axi_clk", "camss_cpp_clk", + "micro_iface_clk", "camss_ahb_clk", + "smmu_cpp_axi_clk", "cpp_vbif_ahb_clk"; + qcom,clock-rates = <0 0 0 465000000 0 0 465000000 0 0 0 0>; + qcom,min-clock-rate = <200000000>; + qcom,bus-master = <1>; + qcom,vbif-qos-setting = <0x20 0x10000000>, + <0x24 0x10000000>, + <0x28 0x10000000>, + <0x2C 0x10000000>; + status = "ok"; + qcom,cpp-fw-payload-info { + qcom,stripe-base = <553>; + qcom,plane-base = <481>; + qcom,stripe-size = <61>; + qcom,plane-size = <24>; + qcom,fe-ptr-off = <11>; + qcom,we-ptr-off = <23>; + qcom,ref-fe-ptr-off = <17>; + qcom,ref-we-ptr-off = <36>; + qcom,we-meta-ptr-off = <42>; + qcom,fe-mmu-pf-ptr-off = <6>; + qcom,ref-fe-mmu-pf-ptr-off = <9>; + qcom,we-mmu-pf-ptr-off = <12>; + qcom,dup-we-mmu-pf-ptr-off = <17>; + qcom,ref-we-mmu-pf-ptr-off = <22>; + qcom,set-group-buffer-len = <135>; + qcom,dup-frame-indicator-off = <70>; + }; + }; + + qcom,fd@aa4000 { + cell-index = <0>; + compatible = "qcom,face-detection"; + reg = <0xaa4000 0x800>, + <0xaa5000 0x400>, + <0xa80000 0x3000>; + reg-names = "fd_core", "fd_misc", "fd_vbif"; + interrupts = <0 293 0>; + interrupt-names = "fd"; + mmagic-vdd-supply = <&gdsc_mmagic_camss>; + camss-vdd-supply = <&gdsc_camss_top>; + vdd-supply = <&gdsc_fd>; + qcom,vdd-names = "mmagic-vdd", "camss-vdd", "vdd"; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmagic_camss_axi_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_fd_core_clk_src>, + <&clock_mmss clk_fd_core_clk>, + <&clock_mmss clk_fd_core_uar_clk>, + <&clock_mmss clk_fd_ahb_clk>, + <&clock_mmss clk_smmu_cpp_axi_clk>, + <&clock_mmss clk_camss_ahb_clk>, + <&clock_mmss clk_camss_cpp_axi_clk>, + <&clock_mmss clk_camss_cpp_vbif_ahb_clk>, + <&clock_mmss clk_smmu_cpp_ahb_clk>; + clock-names = "mmss_mmagic_ahb_clk", + "mmagic_camss_axi_clk", "camss_top_ahb_clk", + "fd_core_clk_src", "fd_core_clk", + "fd_core_uar_clk", "fd_ahb_clk", + "smmu_cpp_axi_clk", "camss_ahb_clk", + "camss_cpp_axi_clk", "cpp_vbif_ahb_clk", + "smmu_cpp_ahb_clk"; + clock-rates = <0 0 0 400000000 400000000>, + <400000000 80000000 0 0 0 0 0>; + qcom,bus-bandwidth-vectors = <13000000 13000000>, + <45000000 45000000>, + <90000000 90000000>; + qcom,fd-vbif-reg-settings = <0x20 0x10000000 0x30000000>, + <0x24 0x10000000 0x30000000>, + <0x28 0x10000000 0x30000000>, + <0x2c 0x10000000 0x30000000>; + qcom,fd-misc-reg-settings = <0x20 0x2 0x3>, + <0x24 0x2 0x3>; + status = "ok"; + }; + + cci: qcom,cci@a0c000 { + cell-index = <0>; + compatible = "qcom,cci"; + reg = <0xa0c000 0x4000>; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "cci"; + interrupts = <0 295 0>; + interrupt-names = "cci"; + status = "ok"; + mmagic-supply = <&gdsc_mmagic_camss>; + gdscr-supply = <&gdsc_camss_top>; + qcom,cam-vreg-name = "mmagic", "gdscr"; + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_camss_top_ahb_clk>, + <&clock_mmss clk_cci_clk_src>, + <&clock_mmss clk_camss_cci_ahb_clk>, + <&clock_mmss clk_camss_cci_clk>, + <&clock_mmss clk_camss_ahb_clk>; + clock-names = "mmagic_camss_ahb_clk", "camss_top_ahb_clk", + "cci_src_clk", "cci_ahb_clk", "camss_cci_clk", + "camss_ahb_clk"; + qcom,clock-rates = <0 0 19200000 0 0 0>, + <0 0 37500000 0 0 0>; + pinctrl-names = "cci_default", "cci_suspend"; + pinctrl-0 = <&cci0_active &cci1_active>; + pinctrl-1 = <&cci0_suspend &cci1_suspend>; + gpios = <&tlmm 17 0>, + <&tlmm 18 0>, + <&tlmm 19 0>, + <&tlmm 20 0>; + qcom,gpio-tbl-num = <0 1 2 3>; + qcom,gpio-tbl-flags = <1 1 1 1>; + qcom,gpio-tbl-label = "CCI_I2C_DATA0", + "CCI_I2C_CLK0", + "CCI_I2C_DATA1", + "CCI_I2C_CLK1"; + i2c_freq_100Khz: qcom,i2c_standard_mode { + status = "disabled"; + }; + i2c_freq_400Khz: qcom,i2c_fast_mode { + status = "disabled"; + }; + i2c_freq_custom: qcom,i2c_custom_mode { + status = "disabled"; + }; + i2c_freq_1Mhz: qcom,i2c_fast_plus_mode { + status = "disabled"; + }; + }; +}; + +&i2c_freq_100Khz { + qcom,hw-thigh = <78>; + qcom,hw-tlow = <114>; + qcom,hw-tsu-sto = <28>; + qcom,hw-tsu-sta = <28>; + qcom,hw-thd-dat = <10>; + qcom,hw-thd-sta = <77>; + qcom,hw-tbuf = <118>; + qcom,hw-scl-stretch-en = <0>; + qcom,hw-trdhld = <6>; + qcom,hw-tsp = <1>; + status = "ok"; +}; + +&i2c_freq_400Khz { + qcom,hw-thigh = <20>; + qcom,hw-tlow = <28>; + qcom,hw-tsu-sto = <21>; + qcom,hw-tsu-sta = <21>; + qcom,hw-thd-dat = <13>; + qcom,hw-thd-sta = <18>; + qcom,hw-tbuf = <32>; + qcom,hw-scl-stretch-en = <0>; + qcom,hw-trdhld = <6>; + qcom,hw-tsp = <3>; + status = "ok"; +}; + +&i2c_freq_custom { + qcom,hw-thigh = <15>; + qcom,hw-tlow = <28>; + qcom,hw-tsu-sto = <21>; + qcom,hw-tsu-sta = <21>; + qcom,hw-thd-dat = <13>; + qcom,hw-thd-sta = <18>; + qcom,hw-tbuf = <25>; + qcom,hw-scl-stretch-en = <1>; + qcom,hw-trdhld = <6>; + qcom,hw-tsp = <3>; + status = "ok"; +}; + +&i2c_freq_1Mhz { + qcom,hw-thigh = <16>; + qcom,hw-tlow = <22>; + qcom,hw-tsu-sto = <17>; + qcom,hw-tsu-sta = <18>; + qcom,hw-thd-dat = <16>; + qcom,hw-thd-sta = <15>; + qcom,hw-tbuf = <19>; + qcom,hw-scl-stretch-en = <1>; + qcom,hw-trdhld = <3>; + qcom,hw-tsp = <3>; + qcom,cci-clk-src = <37500000>; + status = "ok"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-cdp.dtsi b/arch/arm64/boot/dts/qcom/msm8996-cdp.dtsi new file mode 100644 index 000000000000..f458d7b0faed --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-cdp.dtsi @@ -0,0 +1,774 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8996-pinctrl.dtsi" +#include "msm8996-camera-sensor-cdp.dtsi" +#include "msm8996-wsa881x.dtsi" + +/ { + bluetooth: bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-core-supply = <&pm8994_s3>; + qca,bt-vdd-pa-supply = <&rome_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&pm8994_l30>; + qca,bt-vdd-core-voltage-level = <1300000 1800000>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&spi_eth_vreg { + status = "ok"; +}; + +&uartblsp2dm1 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&ufs_ice { + status = "ok"; +}; + +&sdcc1_ice { + status = "ok"; +}; + +&ufsphy1 { + status = "ok"; +}; + +&ufs1 { + status = "ok"; +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <110 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 96000000 192000000 384000000>; + qcom,ice-clk-rates = <300000000 150000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + cd-gpios = <&tlmm 95 0x1>; + + status = "ok"; +}; + +/* CoreSight */ +&tpiu { + pinctrl-names = "seta-pctrl", "setb-pctrl"; + pinctrl-0 = <&seta_1 &seta_2 &seta_3 &seta_4 &seta_5 &seta_6 &seta_7 + &seta_8 &seta_9 &seta_10 &seta_11 &seta_12 &seta_13 + &seta_14 &seta_15 &seta_16 &seta_17 &seta_18>; + pinctrl-1 = <&setb_1 &setb_2 &setb_3 &setb_4 &setb_5 &setb_6 &setb_7 + &setb_8 &setb_9 &setb_10 &setb_11 &setb_12 &setb_13 + &setb_14 &setb_15 &setb_16 &setb_17 &setb_18>; +}; + +&pmi8994_charger { + qcom,charging-disabled; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x88>; + qcom,thermal-node; + }; +}; + +&pmi8994_vadc { + chan@0 { + label = "usbin"; + reg = <0>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@1 { + label = "dcin"; + reg = <1>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@43 { + label = "usb_dp"; + reg = <0x43>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@44 { + label = "usb_dm"; + reg = <0x44>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; +}; + +#include "msm8996-mdss-panels.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "split_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + qcom,platform-te-gpio = <&tlmm 10 0>; + qcom,platform-reset-gpio = <&tlmm 8 0>; + qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>; +}; + +&mdss_dsi1 { + qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + qcom,platform-te-gpio = <&tlmm 10 0>; + qcom,platform-reset-gpio = <&tlmm 8 0>; + qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>; +}; + +&mdss_hdmi_tx { + pinctrl-names = "hdmi_hpd_active", "hdmi_ddc_active", "hdmi_cec_active", + "hdmi_active", "hdmi_sleep"; + pinctrl-0 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; + pinctrl-1 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_suspend>; + pinctrl-2 = <&mdss_hdmi_hpd_active &mdss_hdmi_cec_active + &mdss_hdmi_ddc_suspend>; + pinctrl-3 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_active>; + pinctrl-4 = <&mdss_hdmi_hpd_suspend &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&dsi_dual_sharp_video { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_nt35597_video { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_nt35597_cmd { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,partial-update-enabled; + qcom,panel-roi-alignment = <720 128 720 64 720 64>; +}; + +&dsi_nt35597_dsc_video { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_nt35597_dsc_cmd { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_jdi_video { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,5v-boost-gpio = <&pmi8994_gpios 8 0>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_jdi_cmd { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,5v-boost-gpio = <&pmi8994_gpios 8 0>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,partial-update-enabled; + qcom,panel-roi-alignment = <4 2 4 2 20 20>; +}; + +&dsi_dual_jdi_4k_nofbc_video { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&pm8994_gpios { + gpio@c700 { /* GPIO 8 - WLAN_EN */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c800 { /* GPIO 9 - Rome 3.3V control */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* Output high */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* High drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c100 { /* GPIO 2 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c300 { /* GPIO 4 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c400 { /* GPIO 5 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@cd00 { /* GPIO 14 - lcd_bklt_reg_en */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* output hight initially */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,out-strength = <1>; /* Low drive strength */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@ce00 { /* GPIO 15 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d100 { /* GPIO 18 - Rome sleep clock */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output low initially */ + qcom,vin-sel = <2>; /* VIN 2 */ + qcom,src-sel = <3>; /* Function 2 */ + qcom,out-strength = <2>; /* Medium */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d200 { /* GPIO 19 - Rome BT Reset */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&soc { + i2c@75ba000 { + synaptics@20 { + compatible = "synaptics,dsx"; + reg = <0x20>; + interrupt-parent = <&tlmm>; + interrupts = <125 0x2008>; + vdd-supply = <&pm8994_l14>; + avdd-supply = <&pm8994_l22>; + pinctrl-names = "pmx_ts_active", "pmx_ts_suspend"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_suspend>; + synaptics,display-coords = <0 0 1599 2559>; + synaptics,panel-coords = <0 0 1599 2703>; + synaptics,reset-gpio = <&tlmm 89 0x00>; + synaptics,irq-gpio = <&tlmm 125 0x2008>; + synaptics,disable-gpios; + synaptics,fw-name = "PR1702898-s3528t_00350002.img"; + }; + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "synaptics_dsx"; + qcom,disp-maxx = <1599>; + qcom,disp-maxy = <2559>; + qcom,panel-maxx = <1599>; + qcom,panel-maxy = <2703>; + qcom,key-codes = <158 139 102 217>; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 2 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_snapshot { + label = "cam_snapshot"; + gpios = <&pm8994_gpios 4 0x1>; + linux,input-type = <1>; + linux,code = <766>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_focus { + label = "cam_focus"; + gpios = <&pm8994_gpios 5 0x1>; + linux,input-type = <1>; + linux,code = <528>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; + + sound-9335 { + qcom,model = "msm8996-tasha-cdp-snd-card"; + qcom,hdmi-audio-rx; + asoc-codec = <&stub_codec>, <&hdmi_audio>; + asoc-codec-names = "msm-stub-codec.1", "msm-hdmi-audio-codec-rx"; + qcom,us-euro-gpios = <&pm8994_mpps 2 0>; + qcom,wsa-max-devs = <2>; + qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>, + <&wsa881x_213>, <&wsa881x_214>; + qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight", + "SpkrLeft", "SpkrRight"; + }; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + mpp@a300 { /* MPP 4 */ + /* HDMI_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; + + mpp@a400 { /* MPP 5 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&pmi8994_gpios { + gpio@c700 { /* GPIO 8, lcd_reg_en, 5V boost */ + qcom,mode = <1>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + qcom,invert = <1>; /* need invert = 0 */ + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@c100 { /* GPIO 2 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c200 { /* GPIO 3 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; +}; + +&pmi8994_pwm_4 { + qcom,channel-owner = "lcd_bl"; + qcom,lpg-dtest-line = <4>; + qcom,dtest-output = <1>; + status = "okay"; +}; + +&pmi8994_mpps { + mpp@a000 { /* MPP 1 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <7>; /* DTEST4 */ + qcom,master-en = <1>; /* Enable MPP */ + status = "okay"; + }; + mpp@a300 { /* MPP 4 */ + /* WLED FET */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <0>; /* VIN0 */ + qcom,master-en = <1>; + status = "okay"; + }; +}; + +&pmi8994_haptics { + status = "okay"; +}; + +&blsp1_uart2 { + status = "ok"; +}; + +&usb2s { + status = "disabled"; + dwc3@7600000 { + dr_mode = "host"; + }; +}; + +&i2c_7 { + silabs4705@11 { /* SiLabs FM chip, slave id 0x11*/ + status = "ok"; + compatible = "silabs,si4705"; + reg = <0x11>; + vdd-supply = <&pm8994_s4>; + silabs,vdd-supply-voltage = <1800000 1800000>; + va-supply = <&rome_vreg>; + silabs,va-supply-voltage = <3300000 3300000>; + pinctrl-names = "pmx_fm_active","pmx_fm_suspend"; + pinctrl-0 = <&fm_int_active &fm_status_int_active &fm_rst_active>; + pinctrl-1 = <&fm_int_suspend &fm_status_int_suspend &fm_rst_suspend>; + silabs,reset-gpio = <&tlmm 39 0>; + silabs,int-gpio = <&tlmm 38 0>; + silabs,status-gpio = <&tlmm 78 0>; + #address-cells = <0>; + interrupts = <0 1>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = < + 0 &tlmm 38 2 + 1 &tlmm 78 1 + >; + interrupt-names = "silabs_fm_int", "silabs_fm_status_int"; + }; +}; + +&spi_0 { + ethernet@2 { + compatible = "micrel,ks8851"; + reg = <2>; + interrupt-parent = <&tlmm>; + interrupts = <11 0>; + spi-max-frequency = <960000>; + vdd-supply = <&spi_eth_vreg>; + reset-gpios = <&tlmm 79 0>; + }; +}; + +&wil6210 { + status = "ok"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-coresight-v2.dtsi b/arch/arm64/boot/dts/qcom/msm8996-coresight-v2.dtsi new file mode 100644 index 000000000000..16a77dd10250 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-coresight-v2.dtsi @@ -0,0 +1,1125 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <dt-bindings/interrupt-controller/arm-gic.h> + +&soc { + tmc_etr: tmc@3028000 { + compatible = "arm,coresight-tmc"; + reg = <0x3028000 0x1000>, + <0x3084000 0x15000>; + reg-names = "tmc-base", "bam-base"; + interrupts = <GIC_SPI 270 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "byte-cntr-irq"; + + qcom,memory-size = <0x400000>; + qcom,tmc-flush-powerdown; + qcom,sg-enable; + + coresight-id = <0>; + coresight-name = "coresight-tmc-etr"; + coresight-nr-inports = <1>; + coresight-ctis = <&cti0 &cti8>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpiu: tpiu@3020000 { + compatible = "arm,coresight-tpiu"; + reg = <0x3020000 0x1000>; + reg-names = "tpiu-base"; + + coresight-id = <1>; + coresight-name = "coresight-tpiu"; + coresight-nr-inports = <1>; + + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <2950000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + qcom,nidntsw; + qcom,nidnt-swduart; + qcom,nidnt-swdtrc; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + replicator: replicator@3026000 { + compatible = "qcom,coresight-replicator"; + reg = <0x3026000 0x1000>; + reg-names = "replicator-base"; + + coresight-id = <2>; + coresight-name = "coresight-replicator"; + coresight-nr-inports = <1>; + coresight-outports = <0 1>; + coresight-child-list = <&tmc_etr &tpiu>; + coresight-child-ports = <0 0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tmc_etf: tmc@3027000 { + compatible = "arm,coresight-tmc"; + reg = <0x3027000 0x1000>; + reg-names = "tmc-base"; + + coresight-id = <3>; + coresight-name = "coresight-tmc-etf"; + coresight-nr-inports = <1>; + coresight-outports = <0>; + coresight-child-list = <&replicator>; + coresight-child-ports = <0>; + coresight-default-sink; + coresight-ctis = <&cti0 &cti8>; + + qcom,tmc-flush-powerdown; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_merg: funnel@3025000 { + compatible = "arm,coresight-funnel"; + reg = <0x3025000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <4>; + coresight-name = "coresight-funnel-merg"; + coresight-nr-inports = <2>; + coresight-outports = <0>; + coresight-child-list = <&tmc_etf>; + coresight-child-ports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_in0: funnel@3021000 { + compatible = "arm,coresight-funnel"; + reg = <0x3021000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <5>; + coresight-name = "coresight-funnel-in0"; + coresight-nr-inports = <8>; + coresight-outports = <0>; + coresight-child-list = <&funnel_merg>; + coresight-child-ports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_in1: funnel@3022000 { + compatible = "arm,coresight-funnel"; + reg = <0x3022000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <6>; + coresight-name = "coresight-funnel-in1"; + coresight-nr-inports = <8>; + coresight-outports = <0>; + coresight-child-list = <&funnel_merg>; + coresight-child-ports = <1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_in2: funnel@3023000 { + compatible = "arm,coresight-funnel"; + reg = <0x3023000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <7>; + coresight-name = "coresight-funnel-in2"; + coresight-nr-inports = <8>; + coresight-outports = <0>; + coresight-child-list = <&funnel_merg>; + coresight-child-ports = <2>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_apss_merge: funnel@3bc0000 { + compatible = "arm,coresight-funnel"; + reg = <0x3bc0000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <8>; + coresight-name = "coresight-funnel-apss-merge"; + coresight-nr-inports = <4>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in1>; + coresight-child-ports = <6>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_apss0: funnel@39b0000 { + compatible = "arm,coresight-funnel"; + reg = <0x39b0000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <9>; + coresight-name = "coresight-funnel-apss0"; + coresight-nr-inports = <2>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss_merge>; + coresight-child-ports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_apss1: funnel@3bb0000 { + compatible = "arm,coresight-funnel"; + reg = <0x3bb0000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <10>; + coresight-name = "coresight-funnel-apss1"; + coresight-nr-inports = <2>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss_merge>; + coresight-child-ports = <1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_mmss: funnel@3184000 { + compatible = "arm,coresight-funnel"; + reg = <0x3184000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <11>; + coresight-name = "coresight-funnel-mmss"; + coresight-nr-inports = <8>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpda: tpda@3003000 { + compatible = "qcom,coresight-tpda"; + reg = <0x3003000 0x1000>; + reg-names = "tpda-base"; + + coresight-id = <13>; + coresight-name = "coresight-tpda"; + coresight-nr-inports = <32>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <3>; + + qcom,tpda-atid = <65>; + qcom,bc-elem-size = <3 32>, + <6 32>; + qcom,tc-elem-size = <3 32>, + <6 32>; + qcom,dsb-elem-size = <3 32>, + <6 32>, + <7 32>; + qcom,cmb-elem-size = <0 32>, + <1 32>, + <2 32>, + <6 64>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpda_apss: tpda@39E0000 { + compatible = "qcom,coresight-tpda"; + reg = <0x39E0000 0x1000>; + reg-names = "tpda-base"; + + coresight-id = <14>; + coresight-name = "coresight-tpda-apss"; + coresight-nr-inports = <32>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss_merge>; + coresight-child-ports = <2>; + + qcom,tpda-atid = <66>; + qcom,bc-elem-size = <0 32>, + <1 32>; + qcom,tc-elem-size = <0 32>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_vsense: tpdm@3038000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x3038000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <15>; + coresight-name = "coresight-tpdm-vsense"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda>; + coresight-child-ports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_dcc: tpdm@3054000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x3054000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <16>; + coresight-name = "coresight-tpdm-dcc"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda>; + coresight-child-ports = <1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_prng: tpdm@304c000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x304c000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <17>; + coresight-name = "coresight-tpdm-prng"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda>; + coresight-child-ports = <2>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_dsat: tpdm@3185000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x3185000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <18>; + coresight-name = "coresight-tpdm-dsat"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda>; + coresight-child-ports = <3>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_pimem: tpdm@3050000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x3050000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <19>; + coresight-name = "coresight-tpdm-pimem"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda>; + coresight-child-ports = <6>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_hwevents: tpdm@3004000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x3004000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <20>; + coresight-name = "coresight-tpdm-hwevents"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda>; + coresight-child-ports = <7>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_m4m: tpdm@38e0000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x38e0000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <21>; + coresight-name = "coresight-tpdm-m4m"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda_apss>; + coresight-child-ports = <0>; + + qcom,clk-enable; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_l3pmu: tpdm@3aec000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x3aec000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <22>; + coresight-name = "coresight-tpdm-l3pmu"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda_apss>; + coresight-child-ports = <1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + stm: stm@3002000 { + compatible = "arm,coresight-stm"; + reg = <0x3002000 0x1000>, + <0x8280000 0x180000>; + reg-names = "stm-base", "stm-data-base"; + + coresight-id = <23>; + coresight-name = "coresight-stm"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <7>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm0: etm@3840000 { + compatible = "arm,coresight-etmv4"; + reg = <0x3840000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <24>; + coresight-name = "coresight-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss0>; + coresight-child-ports = <0>; + coresight-etm-cpu = <&CPU0>; + + qcom,noovrflw-enable; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm1: etm@3940000 { + compatible = "arm,coresight-etmv4"; + reg = <0x3940000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <25>; + coresight-name = "coresight-etm1"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss0>; + coresight-child-ports = <1>; + coresight-etm-cpu = <&CPU1>; + + qcom,noovrflw-enable; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm2: etm@3a40000 { + compatible = "arm,coresight-etmv4"; + reg = <0x3a40000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <26>; + coresight-name = "coresight-etm2"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss1>; + coresight-child-ports = <0>; + coresight-etm-cpu = <&CPU2>; + + qcom,noovrflw-enable; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm3: etm@3b40000 { + compatible = "arm,coresight-etmv4"; + reg = <0x3b40000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <27>; + coresight-name = "coresight-etm3"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss1>; + coresight-child-ports = <1>; + coresight-etm-cpu = <&CPU3>; + + qcom,noovrflw-enable; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + audio_etm0 { + compatible = "qcom,coresight-remote-etm"; + + coresight-id = <28>; + coresight-name = "coresight-audio-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <2>; + + qcom,inst-id = <5>; + }; + + rpm_etm0 { + compatible = "qcom,coresight-remote-etm"; + + coresight-id = <29>; + coresight-name = "coresight-rpm-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <0>; + + qcom,inst-id = <4>; + }; + + modem_etm0 { + compatible = "qcom,coresight-remote-etm"; + + coresight-id = <30>; + coresight-name = "coresight-modem-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in2>; + coresight-child-ports = <0>; + + qcom,inst-id = <2>; + }; + + csr: csr@3001000 { + compatible = "qcom,coresight-csr"; + reg = <0x3001000 0x1000>; + reg-names = "csr-base"; + + coresight-id = <31>; + coresight-name = "coresight-csr"; + coresight-nr-inports = <0>; + + qcom,blk-size = <1>; + }; + + cti0: cti@3010000 { + compatible = "arm,coresight-cti"; + reg = <0x3010000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <32>; + coresight-name = "coresight-cti0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti1: cti@3011000 { + compatible = "arm,coresight-cti"; + reg = <0x3011000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <33>; + coresight-name = "coresight-cti1"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti2: cti@3012000 { + compatible = "arm,coresight-cti"; + reg = <0x3012000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <34>; + coresight-name = "coresight-cti2"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti3: cti@3013000 { + compatible = "arm,coresight-cti"; + reg = <0x3013000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <35>; + coresight-name = "coresight-cti3"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti4: cti@3014000 { + compatible = "arm,coresight-cti"; + reg = <0x3014000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <36>; + coresight-name = "coresight-cti4"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti5: cti@3015000 { + compatible = "arm,coresight-cti"; + reg = <0x3015000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <37>; + coresight-name = "coresight-cti5"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti6: cti@3016000 { + compatible = "arm,coresight-cti"; + reg = <0x3016000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <38>; + coresight-name = "coresight-cti6"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-gpio-trigout = <2>; + pinctrl-names = "cti-trigout-pctrl"; + pinctrl-0 = <&trigout_a>; + }; + + cti7: cti@3017000 { + compatible = "arm,coresight-cti"; + reg = <0x3017000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <39>; + coresight-name = "coresight-cti7"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti8: cti@3018000 { + compatible = "arm,coresight-cti"; + reg = <0x3018000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <40>; + coresight-name = "coresight-cti8"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti9: cti@3019000 { + compatible = "arm,coresight-cti"; + reg = <0x3019000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <41>; + coresight-name = "coresight-cti9"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti10: cti@301a000 { + compatible = "arm,coresight-cti"; + reg = <0x301a000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <42>; + coresight-name = "coresight-cti10"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti11: cti@301b000 { + compatible = "arm,coresight-cti"; + reg = <0x301b000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <43>; + coresight-name = "coresight-cti11"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti12: cti@301c000 { + compatible = "arm,coresight-cti"; + reg = <0x301c000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <44>; + coresight-name = "coresight-cti12"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti13: cti@301d000 { + compatible = "arm,coresight-cti"; + reg = <0x301d000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <45>; + coresight-name = "coresight-cti13"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti14: cti@301e000 { + compatible = "arm,coresight-cti"; + reg = <0x301e000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <46>; + coresight-name = "coresight-cti14"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_cpu0: cti@3820000 { + compatible = "arm,coresight-cti"; + reg = <0x3820000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <47>; + coresight-name = "coresight-cti-cpu0"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_cpu1: cti@3920000 { + compatible = "arm,coresight-cti"; + reg = <0x3920000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <48>; + coresight-name = "coresight-cti-cpu1"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_cpu2: cti@3a20000 { + compatible = "arm,coresight-cti"; + reg = <0x3a20000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <49>; + coresight-name = "coresight-cti-cpu2"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU2>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_cpu3: cti@3b20000 { + compatible = "arm,coresight-cti"; + reg = <0x3b20000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <50>; + coresight-name = "coresight-cti-cpu3"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU3>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_pmu_cpu0: cti@38a0000 { + compatible = "arm,coresight-cti"; + reg = <0x38a0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <51>; + coresight-name = "coresight-cti-pmu-cpu0"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_pmu_cpu1: cti@39a0000 { + compatible = "arm,coresight-cti"; + reg = <0x39a0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <52>; + coresight-name = "coresight-cti-pmu-cpu1"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_pmu_cpu2: cti@3aa0000 { + compatible = "arm,coresight-cti"; + reg = <0x3aa0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <53>; + coresight-name = "coresight-cti-pmu-cpu2"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU2>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_pmu_cpu3: cti@3ba0000 { + compatible = "arm,coresight-cti"; + reg = <0x3ba0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <54>; + coresight-name = "coresight-cti-pmu-cpu3"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU3>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_l2pmu_cluster0: cti@38b0000 { + compatible = "arm,coresight-cti"; + reg = <0x38b0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <55>; + coresight-name = "coresight-cti-l2pmu-cluster0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_l2pmu_cluster1: cti@3ab0000 { + compatible = "arm,coresight-cti"; + reg = <0x3ab0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <56>; + coresight-name = "coresight-cti-l2pmu-cluster1"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_l3: cti@3ad0000 { + compatible = "arm,coresight-cti"; + reg = <0x3ad0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <57>; + coresight-name = "coresight-cti-l3"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_lm_cluster0: cti@39c0000 { + compatible = "arm,coresight-cti"; + reg = <0x39c0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <58>; + coresight-name = "coresight-cti-lm-cluster0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_lm_cluster1: cti@39d0000 { + compatible = "arm,coresight-cti"; + reg = <0x39d0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <59>; + coresight-name = "coresight-cti-lm-cluster1"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_m4m: cti@38d0000 { + compatible = "arm,coresight-cti"; + reg = <0x38d0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <60>; + coresight-name = "coresight-cti-m4m"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_tpda_apss: cti@39f0000 { + compatible = "arm,coresight-cti"; + reg = <0x39f0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <61>; + coresight-name = "coresight-cti-tpda-apss"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_venus_cpu0: cti@3180000 { + compatible = "arm,coresight-cti"; + reg = <0x3180000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <64>; + coresight-name = "coresight-cti-venus-cpu0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_audio_cpu0: cti@3044000 { + compatible = "arm,coresight-cti"; + reg = <0x3044000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <65>; + coresight-name = "coresight-cti-audio-cpu0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_rpm_cpu0: cti@3048000 { + compatible = "arm,coresight-cti"; + reg = <0x3048000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <66>; + coresight-name = "coresight-cti-rpm-cpu0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_modem_cpu0: cti@3040000 { + compatible = "arm,coresight-cti"; + reg = <0x3040000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <67>; + coresight-name = "coresight-cti-modem-cpu0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + hwevent: hwevent@98200c0 { + compatible = "qcom,coresight-hwevent"; + reg = <0x98200c0 0x100>, + <0x828018 0x80>, + <0x8b5260 0x80>, + <0x90137c 0x4>, + <0x7ab160 0x80>, + <0x358000 0x40>, + <0x359000 0x40>, + <0x600058 0x80>, + <0x608058 0x80>, + <0x610058 0x80>, + <0x7ab360 0x80>, + <0x7ab760 0x80>, + <0x7abf60 0x80>; + reg-names = "hmss-mux", "mmss-mux", "dsa-stm", "mdss-mdp", + "phss-hwev", "gcc-eve1", "gcc-eve2", "pcie0-hwev", + "pcie1-hwev", "pcie2-hwev", "tcsr-mux", "mss-mux0", + "mss-mux1"; + + coresight-id = <70>; + coresight-name = "coresight-hwevent"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>, + <&clock_mmss clk_mmss_misc_ahb_clk>; + clock-names = "core_clk", "core_a_clk", "core_mmss_clk"; + + qcom,hwevent-clks = "core_mmss_clk"; + }; + + fuse: fuse@7602c { + compatible = "arm,coresight-fuse-v3"; + reg = <0x7602c 0xc>, + <0x76014 0x4>; + reg-names = "fuse-base", "qpdi-fuse-base"; + + coresight-id = <71>; + coresight-name = "coresight-fuse"; + coresight-nr-inports = <0>; + }; + + qpdi: qpdi@7a1000 { + compatible = "qcom,coresight-qpdi"; + reg = <0x7a1000 0x4>; + reg-names = "qpdi-base"; + + coresight-id = <72>; + coresight-name = "coresight-qpdi"; + coresight-nr-inports = <0>; + + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <2950000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-coresight-v3.dtsi b/arch/arm64/boot/dts/qcom/msm8996-coresight-v3.dtsi new file mode 100644 index 000000000000..cd7a319252b0 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-coresight-v3.dtsi @@ -0,0 +1,1098 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + tmc_etr: tmc@3028000 { + compatible = "arm,coresight-tmc"; + reg = <0x3028000 0x1000>, + <0x3084000 0x15000>; + reg-names = "tmc-base", "bam-base"; + interrupts = <0 270 0>; + interrupt-names = "byte-cntr-irq"; + + qcom,memory-size = <0x400000>; + qcom,tmc-flush-powerdown; + qcom,sg-enable; + + coresight-id = <0>; + coresight-name = "coresight-tmc-etr"; + coresight-nr-inports = <1>; + coresight-ctis = <&cti0 &cti8>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpiu: tpiu@3020000 { + compatible = "arm,coresight-tpiu"; + reg = <0x3020000 0x1000>; + reg-names = "tpiu-base"; + + coresight-id = <1>; + coresight-name = "coresight-tpiu"; + coresight-nr-inports = <1>; + + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <2950000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + qcom,nidntsw; + qcom,nidnt-swduart; + qcom,nidnt-swdtrc; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + replicator: replicator@3026000 { + compatible = "qcom,coresight-replicator"; + reg = <0x3026000 0x1000>; + reg-names = "replicator-base"; + + coresight-id = <2>; + coresight-name = "coresight-replicator"; + coresight-nr-inports = <1>; + coresight-outports = <0 1>; + coresight-child-list = <&tmc_etr &tpiu>; + coresight-child-ports = <0 0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tmc_etf: tmc@3027000 { + compatible = "arm,coresight-tmc"; + reg = <0x3027000 0x1000>; + reg-names = "tmc-base"; + + coresight-id = <3>; + coresight-name = "coresight-tmc-etf"; + coresight-nr-inports = <1>; + coresight-outports = <0>; + coresight-child-list = <&replicator>; + coresight-child-ports = <0>; + coresight-default-sink; + coresight-ctis = <&cti0 &cti8>; + + qcom,tmc-flush-powerdown; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_merg: funnel@3025000 { + compatible = "arm,coresight-funnel"; + reg = <0x3025000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <4>; + coresight-name = "coresight-funnel-merg"; + coresight-nr-inports = <2>; + coresight-outports = <0>; + coresight-child-list = <&tmc_etf>; + coresight-child-ports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_in0: funnel@3021000 { + compatible = "arm,coresight-funnel"; + reg = <0x3021000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <5>; + coresight-name = "coresight-funnel-in0"; + coresight-nr-inports = <8>; + coresight-outports = <0>; + coresight-child-list = <&funnel_merg>; + coresight-child-ports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_in1: funnel@3022000 { + compatible = "arm,coresight-funnel"; + reg = <0x3022000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <6>; + coresight-name = "coresight-funnel-in1"; + coresight-nr-inports = <8>; + coresight-outports = <0>; + coresight-child-list = <&funnel_merg>; + coresight-child-ports = <1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_in2: funnel@3023000 { + compatible = "arm,coresight-funnel"; + reg = <0x3023000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <7>; + coresight-name = "coresight-funnel-in2"; + coresight-nr-inports = <8>; + coresight-outports = <0>; + coresight-child-list = <&funnel_merg>; + coresight-child-ports = <2>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_apss_merge: funnel@3bc0000 { + compatible = "arm,coresight-funnel"; + reg = <0x3bc0000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <8>; + coresight-name = "coresight-funnel-apss-merge"; + coresight-nr-inports = <4>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in1>; + coresight-child-ports = <6>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_apss0: funnel@39b0000 { + compatible = "arm,coresight-funnel"; + reg = <0x39b0000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <9>; + coresight-name = "coresight-funnel-apss0"; + coresight-nr-inports = <2>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss_merge>; + coresight-child-ports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_apss1: funnel@3bb0000 { + compatible = "arm,coresight-funnel"; + reg = <0x3bb0000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <10>; + coresight-name = "coresight-funnel-apss1"; + coresight-nr-inports = <2>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss_merge>; + coresight-child-ports = <1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + funnel_mmss: funnel@3184000 { + compatible = "arm,coresight-funnel"; + reg = <0x3184000 0x1000>; + reg-names = "funnel-base"; + + coresight-id = <11>; + coresight-name = "coresight-funnel-mmss"; + coresight-nr-inports = <8>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpda: tpda@3003000 { + compatible = "qcom,coresight-tpda"; + reg = <0x3003000 0x1000>; + reg-names = "tpda-base"; + + coresight-id = <13>; + coresight-name = "coresight-tpda"; + coresight-nr-inports = <32>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <3>; + + qcom,tpda-atid = <65>; + qcom,bc-elem-size = <3 32>, + <6 32>; + qcom,tc-elem-size = <3 32>, + <6 32>; + qcom,dsb-elem-size = <3 32>, + <6 32>, + <7 32>; + qcom,cmb-elem-size = <0 32>, + <1 32>, + <2 32>, + <6 64>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpda_apss: tpda@39e0000 { + compatible = "qcom,coresight-tpda"; + reg = <0x39e0000 0x1000>; + reg-names = "tpda-base"; + + coresight-id = <14>; + coresight-name = "coresight-tpda-apss"; + coresight-nr-inports = <32>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss_merge>; + coresight-child-ports = <2>; + + qcom,tpda-atid = <66>; + qcom,bc-elem-size = <0 32>, + <1 32>; + qcom,tc-elem-size = <0 32>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_vsense: tpdm@3038000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x3038000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <15>; + coresight-name = "coresight-tpdm-vsense"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda>; + coresight-child-ports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_dcc: tpdm@3054000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x3054000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <16>; + coresight-name = "coresight-tpdm-dcc"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda>; + coresight-child-ports = <1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_prng: tpdm@304c000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x304c000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <17>; + coresight-name = "coresight-tpdm-prng"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda>; + coresight-child-ports = <2>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_dsat: tpdm@3185000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x3185000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <18>; + coresight-name = "coresight-tpdm-dsat"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda>; + coresight-child-ports = <3>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_pimem: tpdm@3050000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x3050000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <19>; + coresight-name = "coresight-tpdm-pimem"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda>; + coresight-child-ports = <6>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_hwevents: tpdm@3004000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x3004000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <20>; + coresight-name = "coresight-tpdm-hwevents"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda>; + coresight-child-ports = <7>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + tpdm_m4m: tpdm@38e0000 { + compatible = "qcom,coresight-tpdm"; + reg = <0x38e0000 0x1000>; + reg-names = "tpdm-base"; + + coresight-id = <21>; + coresight-name = "coresight-tpdm-m4m"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&tpda_apss>; + coresight-child-ports = <0>; + + qcom,clk-enable; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + stm: stm@3002000 { + compatible = "arm,coresight-stm"; + reg = <0x3002000 0x1000>, + <0x8280000 0x180000>; + reg-names = "stm-base", "stm-data-base"; + + coresight-id = <23>; + coresight-name = "coresight-stm"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <7>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm0: etm@3840000 { + compatible = "arm,coresight-etmv4"; + reg = <0x3840000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <24>; + coresight-name = "coresight-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss0>; + coresight-child-ports = <0>; + coresight-etm-cpu = <&CPU0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm1: etm@3940000 { + compatible = "arm,coresight-etmv4"; + reg = <0x3940000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <25>; + coresight-name = "coresight-etm1"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss0>; + coresight-child-ports = <1>; + coresight-etm-cpu = <&CPU1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm2: etm@3a40000 { + compatible = "arm,coresight-etmv4"; + reg = <0x3a40000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <26>; + coresight-name = "coresight-etm2"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss1>; + coresight-child-ports = <0>; + coresight-etm-cpu = <&CPU2>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + etm3: etm@3b40000 { + compatible = "arm,coresight-etmv4"; + reg = <0x3b40000 0x1000>; + reg-names = "etm-base"; + + coresight-id = <27>; + coresight-name = "coresight-etm3"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_apss1>; + coresight-child-ports = <1>; + coresight-etm-cpu = <&CPU3>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + audio_etm0 { + compatible = "qcom,coresight-remote-etm"; + + coresight-id = <28>; + coresight-name = "coresight-audio-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <2>; + + qcom,inst-id = <5>; + }; + + rpm_etm0 { + compatible = "qcom,coresight-remote-etm"; + + coresight-id = <29>; + coresight-name = "coresight-rpm-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <0>; + + qcom,inst-id = <4>; + }; + + modem_etm0 { + compatible = "qcom,coresight-remote-etm"; + + coresight-id = <30>; + coresight-name = "coresight-modem-etm0"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in2>; + coresight-child-ports = <0>; + + qcom,inst-id = <2>; + }; + + csr: csr@3001000 { + compatible = "qcom,coresight-csr"; + reg = <0x3001000 0x1000>; + reg-names = "csr-base"; + + coresight-id = <31>; + coresight-name = "coresight-csr"; + coresight-nr-inports = <0>; + + qcom,blk-size = <1>; + }; + + cti0: cti@3010000 { + compatible = "arm,coresight-cti"; + reg = <0x3010000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <32>; + coresight-name = "coresight-cti0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti1: cti@3011000 { + compatible = "arm,coresight-cti"; + reg = <0x3011000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <33>; + coresight-name = "coresight-cti1"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti2: cti@3012000 { + compatible = "arm,coresight-cti"; + reg = <0x3012000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <34>; + coresight-name = "coresight-cti2"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti3: cti@3013000 { + compatible = "arm,coresight-cti"; + reg = <0x3013000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <35>; + coresight-name = "coresight-cti3"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti4: cti@3014000 { + compatible = "arm,coresight-cti"; + reg = <0x3014000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <36>; + coresight-name = "coresight-cti4"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti5: cti@3015000 { + compatible = "arm,coresight-cti"; + reg = <0x3015000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <37>; + coresight-name = "coresight-cti5"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti6: cti@3016000 { + compatible = "arm,coresight-cti"; + reg = <0x3016000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <38>; + coresight-name = "coresight-cti6"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,cti-gpio-trigout = <2>; + pinctrl-names = "cti-trigout-pctrl"; + pinctrl-0 = <&trigout_a>; + }; + + cti7: cti@3017000 { + compatible = "arm,coresight-cti"; + reg = <0x3017000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <39>; + coresight-name = "coresight-cti7"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti8: cti@3018000 { + compatible = "arm,coresight-cti"; + reg = <0x3018000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <40>; + coresight-name = "coresight-cti8"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti9: cti@3019000 { + compatible = "arm,coresight-cti"; + reg = <0x3019000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <41>; + coresight-name = "coresight-cti9"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti10: cti@301a000 { + compatible = "arm,coresight-cti"; + reg = <0x301a000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <42>; + coresight-name = "coresight-cti10"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti11: cti@301b000 { + compatible = "arm,coresight-cti"; + reg = <0x301b000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <43>; + coresight-name = "coresight-cti11"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti12: cti@301c000 { + compatible = "arm,coresight-cti"; + reg = <0x301c000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <44>; + coresight-name = "coresight-cti12"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti13: cti@301d000 { + compatible = "arm,coresight-cti"; + reg = <0x301d000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <45>; + coresight-name = "coresight-cti13"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti14: cti@301e000 { + compatible = "arm,coresight-cti"; + reg = <0x301e000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <46>; + coresight-name = "coresight-cti14"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_cpu0: cti@3820000 { + compatible = "arm,coresight-cti"; + reg = <0x3820000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <47>; + coresight-name = "coresight-cti-cpu0"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_cpu1: cti@3920000 { + compatible = "arm,coresight-cti"; + reg = <0x3920000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <48>; + coresight-name = "coresight-cti-cpu1"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_cpu2: cti@3a20000 { + compatible = "arm,coresight-cti"; + reg = <0x3a20000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <49>; + coresight-name = "coresight-cti-cpu2"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU2>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_cpu3: cti@3b20000 { + compatible = "arm,coresight-cti"; + reg = <0x3b20000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <50>; + coresight-name = "coresight-cti-cpu3"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU3>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_pmu_cpu0: cti@38a0000 { + compatible = "arm,coresight-cti"; + reg = <0x38a0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <51>; + coresight-name = "coresight-cti-pmu-cpu0"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_pmu_cpu1: cti@39a0000 { + compatible = "arm,coresight-cti"; + reg = <0x39a0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <52>; + coresight-name = "coresight-cti-pmu-cpu1"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_pmu_cpu2: cti@3aa0000 { + compatible = "arm,coresight-cti"; + reg = <0x3aa0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <53>; + coresight-name = "coresight-cti-pmu-cpu2"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU2>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_pmu_cpu3: cti@3ba0000 { + compatible = "arm,coresight-cti"; + reg = <0x3ba0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <54>; + coresight-name = "coresight-cti-pmu-cpu3"; + coresight-nr-inports = <0>; + coresight-cti-cpu = <&CPU3>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_l2pmu_cluster0: cti@38b0000 { + compatible = "arm,coresight-cti"; + reg = <0x38b0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <55>; + coresight-name = "coresight-cti-l2pmu-cluster0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_l2pmu_cluster1: cti@3ab0000 { + compatible = "arm,coresight-cti"; + reg = <0x3ab0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <56>; + coresight-name = "coresight-cti-l2pmu-cluster1"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_l3: cti@3ad0000 { + compatible = "arm,coresight-cti"; + reg = <0x3ad0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <57>; + coresight-name = "coresight-cti-l3"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_lm_cluster0: cti@39c0000 { + compatible = "arm,coresight-cti"; + reg = <0x39c0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <58>; + coresight-name = "coresight-cti-lm-cluster0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_lm_cluster1: cti@39d0000 { + compatible = "arm,coresight-cti"; + reg = <0x39d0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <59>; + coresight-name = "coresight-cti-lm-cluster1"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_m4m: cti@38d0000 { + compatible = "arm,coresight-cti"; + reg = <0x38d0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <60>; + coresight-name = "coresight-cti-m4m"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_tpda_apss: cti@39f0000 { + compatible = "arm,coresight-cti"; + reg = <0x39f0000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <61>; + coresight-name = "coresight-cti-tpda-apss"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_venus_cpu0: cti@3180000 { + compatible = "arm,coresight-cti"; + reg = <0x3180000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <64>; + coresight-name = "coresight-cti-venus-cpu0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_audio_cpu0: cti@3044000 { + compatible = "arm,coresight-cti"; + reg = <0x3044000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <65>; + coresight-name = "coresight-cti-audio-cpu0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_rpm_cpu0: cti@3048000 { + compatible = "arm,coresight-cti"; + reg = <0x3048000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <66>; + coresight-name = "coresight-cti-rpm-cpu0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + cti_modem_cpu0: cti@3040000 { + compatible = "arm,coresight-cti"; + reg = <0x3040000 0x1000>; + reg-names = "cti-base"; + + coresight-id = <67>; + coresight-name = "coresight-cti-modem-cpu0"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + hwevent: hwevent@98200c0 { + compatible = "qcom,coresight-hwevent"; + reg = <0x98200c0 0x100>, + <0x828018 0x80>, + <0x8b5260 0x80>, + <0x90137c 0x4>, + <0x7ab160 0x80>, + <0x358000 0x40>, + <0x359000 0x40>, + <0x600058 0x80>, + <0x608058 0x80>, + <0x610058 0x80>, + <0x7ab360 0x80>, + <0x7ab760 0x80>, + <0x7abf60 0x80>; + reg-names = "hmss-mux", "mmss-mux", "dsa-stm", "mdss-mdp", + "phss-hwev", "gcc-eve1", "gcc-eve2", "pcie0-hwev", + "pcie1-hwev", "pcie2-hwev", "tcsr-mux", "mss-mux0", + "mss-mux1"; + + coresight-id = <70>; + coresight-name = "coresight-hwevent"; + coresight-nr-inports = <0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>, + <&clock_mmss clk_mmss_misc_ahb_clk>; + clock-names = "core_clk", "core_a_clk", "core_mmss_clk"; + + qcom,hwevent-clks = "core_mmss_clk"; + }; + + fuse: fuse@7602c { + compatible = "arm,coresight-fuse-v3"; + reg = <0x7602c 0xc>, + <0x76014 0x4>; + reg-names = "fuse-base", "qpdi-fuse-base"; + + coresight-id = <71>; + coresight-name = "coresight-fuse"; + coresight-nr-inports = <0>; + }; + + qpdi: qpdi@7a1000 { + compatible = "qcom,coresight-qpdi"; + reg = <0x7a1000 0x4>; + reg-names = "qpdi-base"; + + coresight-id = <72>; + coresight-name = "coresight-qpdi"; + coresight-nr-inports = <0>; + + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <2950000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-dtp.dtsi b/arch/arm64/boot/dts/qcom/msm8996-dtp.dtsi new file mode 100644 index 000000000000..9e57eb1c48b4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-dtp.dtsi @@ -0,0 +1,686 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8996-pinctrl.dtsi" +#include "msm8996-mdss-panels.dtsi" +#include "msm8996-camera-sensor-dtp.dtsi" +#include "msm8996-wsa881x.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM8996 DTP"; + compatible = "qcom,msm8996-dtp", "qcom,msm8996", "qcom,qrd"; + + bluetooth: bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-core-supply = <&pm8994_s3>; + qca,bt-vdd-pa-supply = <&rome_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&pm8994_l30>; + qca,bt-chip-pwd-voltage-level = <1300000 1300000>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&uartblsp2dm1 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&blsp1_uart2 { + status = "ok"; +}; + +&i2c_6 { + status = "disabled"; +}; + +&i2c_7 { + smb1351-charger@1d { + compatible = "qcom,smb1351-charger"; + reg = <0x1d>; + qcom,parallel-charger; + qcom,float-voltage-mv = <4450>; + qcom,recharge-mv = <100>; + }; +}; + +/ { + qrd_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + #include "batterydata-qrd-skum-4v4-2920mah.dtsi" + }; +}; + +&pmi8994_charger { + qcom,battery-data = <&qrd_batterydata>; +}; + +&pmi8994_fg { + qcom,battery-data = <&qrd_batterydata>; + qcom,ext-sense-type; + qcom,hold-soc-while-full; +}; + +&pmi8994_gpios { + gpio@c700 { /* GPIO 8, lcd_reg_en, 5V boost */ + qcom,mode = <1>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + qcom,invert = <1>; /* need invert = 0 */ + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@c100 { /* GPIO 2 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c400 { /* GPIO 5 - USB3 OTG SWITCH EN */ + qcom,mode = <1>; /* Digital output */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; /* Output low initially */ + status = "okay"; + }; + +}; + +&pmi8994_mpps { + mpp@a000 { /* MPP 1 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <7>; /* DTEST4 */ + qcom,master-en = <1>; /* Enable MPP */ + status = "okay"; + }; + + mpp@a300 { /* MPP 4 */ + /* WLED FET */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <0>; /* VIN0 */ + qcom,master-en = <1>; + status = "okay"; + }; +}; + +&pm8994_gpios { + gpio@c700 { /* GPIO 8 - WLAN_EN */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c800 { /* GPIO 9 - Rome 3.3V control */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* MOS logic */ + qcom,invert = <1>; /* Output high */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* High drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@cd00 { /* GPIO 14 - lcd_bklt_reg_en */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* output hight initially */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,out-strength = <1>; /* Low drive strength */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c100 { /* GPIO 2 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c300 { /* GPIO 4 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c400 { /* GPIO 5 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@ce00 { /* GPIO 15 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d100 { /* GPIO 18 - Rome Sleep Clock */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output low initially */ + qcom,vin-sel = <2>; /* VIN 2 */ + qcom,src-sel = <3>; /* Function 2 */ + qcom,out-strength = <2>; /* Medium */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d200 { /* GPIO 19 - Rome BT Reset */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + mpp@a300 { /* MPP 4 */ + /* HDMI_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + +&pmi8994_vadc { + chan@0 { + label = "usbin"; + reg = <0>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@1 { + label = "dcin"; + reg = <1>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@43 { + label = "usb_dp"; + reg = <0x43>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@44 { + label = "usb_dm"; + reg = <0x44>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x88>; + qcom,thermal-node; + }; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_fb2 { + status = "disabled"; +}; + +&mdss_hdmi_tx { + status = "disabled"; +}; + +&mdss_dsi { + hw-config = "split_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_r69007_wqxga_cmd>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + qcom,platform-te-gpio = <&tlmm 10 0>; + qcom,platform-reset-gpio = <&tlmm 8 0>; +}; + +&mdss_dsi1 { + qcom,dsi-pref-prim-pan = <&dsi_r69007_wqxga_cmd>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + qcom,platform-te-gpio = <&tlmm 10 0>; + qcom,platform-reset-gpio = <&tlmm 8 0>; +}; + +&ufs_ice { + status = "ok"; +}; + +&sdcc1_ice { + status = "ok"; +}; + +&ufsphy1 { + status = "ok"; +}; + +&ufs1 { + status = "ok"; +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <110 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 96000000 192000000 + 384000000>; + qcom,ice-clk-rates = <300000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&dsi_r69007_wqxga_cmd { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,dcs-cmd-by-left; +}; + +&sdhc_2 { + status = "disabled"; +}; + +&pm8994_gpios { + gpio@c100 { /* GPIO 2 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; +}; + +&soc { + i2c@75ba000 { + synaptics@20 { + compatible = "synaptics,dsx"; + reg = <0x20>; + interrupt-parent = <&tlmm>; + interrupts = <125 0x2008>; + vdd-supply = <&pm8994_l14>; + avdd-supply = <&pm8994_l22>; + pinctrl-names = "pmx_ts_active", "pmx_ts_suspend"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_suspend>; + synaptics,display-coords = <0 0 1439 2559>; + synaptics,panel-coords = <0 0 1439 2559>; + synaptics,reset-gpio = <&tlmm 89 0x00>; + synaptics,irq-gpio = <&tlmm 125 0x2008>; + synaptics,disable-gpios; + synaptics,button-map = <102 139 158>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 2 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; + + sound { + status="disabled"; + }; + + sound-9335 { + qcom,model = "msm8996-dtp-tasha-snd-card"; + + qcom,audio-routing = + "AIF4 VI", "MCLK", + "RX_BIAS", "MCLK", + "AMIC2", "MIC BIAS2", + "MIC BIAS2", "Headset Mic", + "DMIC0", "MIC BIAS1", + "MIC BIAS1", "Digital Mic0", + "DMIC2", "MIC BIAS3", + "MIC BIAS3", "Digital Mic2", + "DMIC3", "MIC BIAS3", + "MIC BIAS3", "Digital Mic3", + "SpkrLeft IN", "SPK1 OUT"; + + qcom,msm-mbhc-hphl-swh = <1>; + qcom,msm-mbhc-gnd-swh = <0>; + + asoc-codec = <&stub_codec>; + asoc-codec-names = "msm-stub-codec.1"; + qcom,wsa-max-devs = <1>; + qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_213>; + qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrLeft"; + }; +}; + +&qusb_phy0 { + qcom,qusb-phy-init-seq = <0xF8 0x80 + 0x53 0x84 + 0x83 0x88 + 0xC5 0x8C + 0x30 0x08 + 0x79 0x0C + 0x21 0x10 + 0x14 0x9C + 0x80 0x04 + 0x9F 0x1C + 0x00 0x18>; +}; + +&pmi8994_haptics { + status = "okay"; + qcom,vmax-mv = <3000>; + qcom,actuator-type = "erm"; +}; + +&red_led { + /delete-property/ linux,default-trigger; + qcom,start-idx = <1>; + qcom,idx-len = <10>; + qcom,duty-pcts = [00 19 32 4B 64 + 64 4B 32 19 00]; + qcom,lut-flags = <3>; + qcom,pause-lo = <0>; + qcom,pause-hi = <0>; + qcom,ramp-step-ms = <255>; + qcom,use-blink; +}; + +&green_led { + /delete-property/ linux,default-trigger; + qcom,start-idx = <1>; + qcom,idx-len = <10>; + qcom,duty-pcts = [00 19 32 4B 64 + 64 4B 32 19 00]; + qcom,lut-flags = <3>; + qcom,pause-lo = <0>; + qcom,pause-hi = <0>; + qcom,ramp-step-ms = <255>; + qcom,use-blink; +}; + +&blue_led { + /delete-property/ linux,default-trigger; + qcom,start-idx = <1>; + qcom,idx-len = <10>; + qcom,duty-pcts = [00 19 32 4B 64 + 64 4B 32 19 00]; + qcom,lut-flags = <3>; + qcom,pause-lo = <0>; + qcom,pause-hi = <0>; + qcom,ramp-step-ms = <255>; + qcom,use-blink; +}; + +&pmi8994_wled { + qcom,led-strings-list = [00 01]; +}; + +&pm8994_l27{ + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + qcom,init-voltage = <1200000>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-fluid.dtsi b/arch/arm64/boot/dts/qcom/msm8996-fluid.dtsi new file mode 100644 index 000000000000..ef11922ef42f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-fluid.dtsi @@ -0,0 +1,631 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +#include "msm8996-pinctrl.dtsi" +#include "msm8996-camera-sensor-mtp.dtsi" +#include "msm8996-wsa881x.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 FLUID"; + compatible = "qcom,msm8996-fluid", "qcom,msm8996", "qcom,fluid"; + qcom,board-id = <3 0>; + + bluetooth: bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-core-supply = <&pm8994_s3>; + qca,bt-vdd-pa-supply = <&rome_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&pm8994_l30>; + qca,bt-vdd-core-voltage-level = <1300000 1800000>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&i2c_7 { + smb1351-charger@1d { + compatible = "qcom,smb1351-charger"; + reg = <0x1d>; + qcom,parallel-charger; + qcom,float-voltage-mv = <4400>; + qcom,recharge-mv = <100>; + }; + + ina231@40 { + compatible = "ina231"; + reg = <0x40>; + shunt-resistor = <5000>; + }; +}; + +&ufs_ice { + status = "ok"; +}; + +&ufsphy1 { + status = "ok"; +}; + +&ufs1 { + status = "ok"; +}; + +&uartblsp2dm1 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <110 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 96000000 192000000 384000000>; + qcom,ice-clk-rates = <300000000 150000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + cd-gpios = <&tlmm 95 0x1>; + + status = "ok"; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; +}; + +&pmi8994_charger { + qcom,dc-psy-type = "Wipower"; + qcom,dcin-vadc = <&pmi8994_vadc>; + qcom,wipower-default-ilim-map = <4000000 20000000 550 700 300>; + qcom,wipower-pt-ilim-map = <4000000 7140000 550 700 300>, + <7140000 8140000 550 700 300>, + <8140000 9140000 500 700 300>, + <9140000 9950000 500 700 300>; + qcom,wipower-div2-ilim-map = <4000000 4820000 550 700 300>, + <4820000 5820000 550 700 300>, + <5820000 6820000 550 650 650>, + <6820000 7820000 550 700 600>, + <7820000 8500000 550 700 550>; +}; + +&pmi8994_vadc { + chan@0 { + label = "usbin"; + reg = <0>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@1 { + label = "dcin"; + reg = <1>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@43 { + label = "usb_dp"; + reg = <0x43>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@44 { + label = "usb_dm"; + reg = <0x44>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; +}; + +/{ + mtp_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + #include "batterydata-itech-3000mah.dtsi" + }; +}; + +&pmi8994_fg { + qcom,battery-data = <&mtp_batterydata>; + qcom,ext-sense-type; + qcom,fg-vbatt-low-threshold = <3700>; +}; + +&usb_otg_switch { + status = "okay"; +}; + +&pm8994_mpps { + mpp@a300 { /* MPP 4 */ + /* HDMI_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + +&pmi8994_gpios { + gpio@c100 { /* GPIO 2 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c200 { /* GPIO 3 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c400 { /* GPIO 5 - USB3 OTG SWITCH EN */ + qcom,mode = <1>; /* Digital output */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; /* Output low initially */ + status = "okay"; + }; +}; + +&soc { + i2c@75ba000 { + synaptics@20 { + compatible = "synaptics,dsx"; + reg = <0x20>; + interrupt-parent = <&tlmm>; + interrupts = <125 0x2008>; + vdd-supply = <&pm8994_l14>; + avdd-supply = <&pm8994_l22>; + pinctrl-names = "pmx_ts_active", "pmx_ts_suspend"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_suspend>; + synaptics,display-coords = <0 0 1599 2559>; + synaptics,panel-coords = <0 0 1599 2703>; + synaptics,reset-gpio = <&tlmm 89 0x00>; + synaptics,irq-gpio = <&tlmm 125 0x2008>; + synaptics,disable-gpios; + }; + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "synaptics_dsx"; + qcom,disp-maxx = <1599>; + qcom,disp-maxy = <2559>; + qcom,panel-maxx = <1599>; + qcom,panel-maxy = <2703>; + qcom,key-codes = <158 139 102 217>; + }; + + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + home { + label = "home"; + gpios = <&pm8994_gpios 1 0x1>; + linux,input-type = <1>; + linux,code = <102>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 2 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_snapshot { + label = "cam_snapshot"; + gpios = <&pm8994_gpios 4 0x1>; + linux,input-type = <1>; + linux,code = <766>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_focus { + label = "cam_focus"; + gpios = <&pm8994_gpios 5 0x1>; + linux,input-type = <1>; + linux,code = <528>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; + + sound-9335 { + qcom,model = "msm8996-tasha-fluid-snd-card"; + qcom,hdmi-audio-rx; + asoc-codec = <&stub_codec>, <&hdmi_audio>; + asoc-codec-names = "msm-stub-codec.1", + "msm-hdmi-audio-codec-rx"; + qcom,wsa-max-devs = <1>; + qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_213>; + qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrLeft"; + }; + +}; + +&pm8994_gpios { + gpio@c700 { /* GPIO 8 - WLAN_EN */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c800 { /* GPIO 9 - Rome 3.3V control */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* MOS logic */ + qcom,invert = <1>; /* Output high */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* High drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@cd00 { /* GPIO 14 - lcd_bklt_reg_en */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* output hight initially */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,out-strength = <1>; /* Low drive strength */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c000 { /* GPIO 1 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c100 { /* GPIO 2 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c300 { /* GPIO 4 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c400 { /* GPIO 5 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@ce00 { /* GPIO 15 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d100 { /* GPIO 18 - Rome Sleep Clock */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output low initially */ + qcom,vin-sel = <2>; /* VIN 2 */ + qcom,src-sel = <3>; /* Function 2 */ + qcom,out-strength = <2>; /* Medium */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d200 { /* GPIO 19 - Rome BT Reset */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&pmi8994_haptics { + status = "okay"; +}; + +&flash_led { + qcom,follow-otst2-rb-disabled; +}; + +&blsp1_uart2 { + status = "ok"; +}; + +#include "msm8996-mdss-panels.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "split_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + qcom,dsi-panel-bias-vreg; + qcom,platform-reset-gpio = <&tlmm 8 0>; +}; + +&mdss_dsi1 { + qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video>; +}; + +&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>; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&pmi8994_mpps { + mpp@a000 { /* MPP 1 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <0>; /* S4 1.8V */ + qcom,src-sel = <7>; /* DTEST4 */ + qcom,master-en = <1>; /* Enable MPP */ + status = "okay"; + }; + + mpp@a300 { /* MPP 4 */ + /* WLED FET */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <0>; /* VIN0 */ + qcom,master-en = <1>; + status = "okay"; + }; +}; + +&wil6210 { + status = "ok"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-gpu.dtsi b/arch/arm64/boot/dts/qcom/msm8996-gpu.dtsi new file mode 100644 index 000000000000..19ec95f7338a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-gpu.dtsi @@ -0,0 +1,215 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + + pil_gpu: qcom,kgsl-hyp { + compatible = "qcom,pil-tz-generic"; + qcom,pas-id = <13>; + qcom,firmware-name = "a530_zap"; + memory-region = <&peripheral_mem>; + }; + + msm_bus: qcom,kgsl-busmon{ + label = "kgsl-busmon"; + compatible = "qcom,kgsl-busmon"; + }; + + gpubw: qcom,gpubw { + compatible = "qcom,devbw"; + governor = "bw_vbif"; + qcom,src-dst-ports = <26 512>; + /* + * active-only flag is used while registering the bus + * governor.It helps release the bus vote when the CPU + * subsystem is inactiv3 + */ + qcom,active-only; + qcom,bw-tbl = + < 0 /* off */ >, + < 762 /* 100 MHz */ >, + < 1144 /* 150 MHz */ >, + < 1525 /* 200 MHz */ >, + < 2288 /* 300 MHz */ >, + < 3143 /* 412 MHz */ >, + < 4173 /* 547 MHz */ >, + < 5195 /* 681 MHz */ >, + < 5859 /* 768 MHz */ >, + < 7759 /* 1017 MHz */ >, + < 9887 /* 1296 MHz */ >, + < 11863 /* 1555 MHz */ >, + < 13763 /* 1804 MHz */ >; + }; + + msm_gpu: qcom,kgsl-3d0@b00000 { + label = "kgsl-3d0"; + compatible = "qcom,kgsl-3d0", "qcom,kgsl-3d"; + status = "ok"; + reg = <0xb00000 0x3f000 + 0x070000 0x04720>; + reg-names = "kgsl_3d0_reg_memory", "qfprom_memory"; + interrupts = <0 300 0>; + interrupt-names = "kgsl_3d0_irq"; + qcom,id = <0>; + + qcom,chipid = <0x05030000>; + qcom,base-leakage-coefficient = <34>; + qcom,lm-limit = <6000>; + + qcom,initial-pwrlevel = <2>; + + qcom,idle-timeout = <8>; //<HZ/12> + /* + * Timeout to enter deeper power saving state + * from NAP. + */ + qcom,deep-nap-timeout = <2>; //<HZ/50> + qcom,strtstp-sleepwake; + + /* Trace bus */ + coresight-id = <300>; + coresight-name = "coresight-gfx"; + coresight-nr-inports = <0>; + coresight-outports = <0>; + coresight-child-list = <&funnel_in0>; + coresight-child-ports = <4>; + + clocks = <&clock_gpu clk_gpu_gx_gfx3d_clk>, + <&clock_gpu clk_gpu_ahb_clk>, + <&clock_gpu clk_gpu_gx_rbbmtimer_clk>, + <&clock_gcc clk_gcc_bimc_gfx_clk>, + <&clock_gcc clk_gcc_mmss_bimc_gfx_clk>, + <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_gpu clk_gpu_mx_clk>; + + clock-names = "core_clk", "iface_clk", "rbbmtimer_clk", + "mem_clk", "mem_iface_clk", "alt_mem_iface_clk", + "mx_clk"; + + /* Bus Scale Settings */ + qcom,gpubw-dev = <&gpubw>; + qcom,bus-control; + qcom,msm-bus,name = "grp3d"; + qcom,msm-bus,num-cases = <13>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <26 512 0 0>, + + <26 512 0 800000>, // 1 bus=100 + <26 512 0 1200000>, // 2 bus=150 + <26 512 0 1600000>, // 3 bus=200 + <26 512 0 2400000>, // 4 bus=300 + <26 512 0 3296000>, // 5 bus=412 + <26 512 0 4376000>, // 6 bus=547 + <26 512 0 5448000>, // 7 bus=681 + <26 512 0 6144000>, // 8 bus=768 + <26 512 0 8136000>, // 9 bus=1017 + <26 512 0 10368000>, // 10 bus=1296 + <26 512 0 12440000>, // 11 bus=1555 + <26 512 0 14432000>; // 12 bus=1804 + + /* GDSC regulator names */ + regulator-names = "vddcx", "vdd"; + /* GDSC oxili regulators */ + vddcx-supply = <&gdsc_gpu>; + vdd-supply = <&gdsc_gpu_gx>; + + /* Power levels */ + qcom,gpu-pwrlevels { + #address-cells = <1>; + #size-cells = <0>; + + compatible = "qcom,gpu-pwrlevels"; + + qcom,gpu-pwrlevel@0 { + reg = <0>; + qcom,gpu-freq = <480000000>; + qcom,bus-freq = <11>; + qcom,bus-min = <10>; + qcom,bus-max = <11>; + }; + + qcom,gpu-pwrlevel@1 { + reg = <1>; + qcom,gpu-freq = <360000000>; + qcom,bus-freq = <10>; + qcom,bus-min = <9>; + qcom,bus-max = <11>; + }; + + qcom,gpu-pwrlevel@2 { + reg = <2>; + qcom,gpu-freq = <205000000>; + qcom,bus-freq = <7>; + qcom,bus-min = <6>; + qcom,bus-max = <8>; + }; + + qcom,gpu-pwrlevel@3 { + reg = <3>; + qcom,gpu-freq = <120000000>; + qcom,bus-freq = <4>; + qcom,bus-min = <3>; + qcom,bus-max = <5>; + }; + + qcom,gpu-pwrlevel@4 { + reg = <4>; + qcom,gpu-freq = <60000000>; + qcom,bus-freq = <2>; + qcom,bus-min = <1>; + qcom,bus-max = <3>; + }; + + qcom,gpu-pwrlevel@5 { + reg = <5>; + qcom,gpu-freq = <27000000>; + qcom,bus-freq = <0>; + qcom,bus-min = <0>; + qcom,bus-max = <0>; + }; + }; + + }; + + kgsl_msm_iommu: qcom,kgsl-iommu { + compatible = "qcom,kgsl-smmu-v2"; + + reg = <0xb40000 0x20000>; + qcom,protect = <0x40000 0x20000>; + qcom,micro-mmu-control = <0x6000>; + + clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>, + <&clock_mmss clk_mmss_mmagic_cfg_ahb_clk>, + <&clock_gpu clk_gpu_ahb_clk>, + <&clock_gcc clk_gcc_mmss_bimc_gfx_clk>, + <&clock_gcc clk_gcc_bimc_gfx_clk>; + clock-names = "mmagic_ahb_clk", "mmagic_cfg_ahb_clk", "gpu_ahb_clk", + "gcc_mmss_bimc_gfx_clk", "gcc_bimc_gfx_clk"; + + qcom,secure_align_mask = <0xfff>; + qcom,retention; + qcom,hyp_secure_alloc; + + gfx3d_user: gfx3d_user { + compatible = "qcom,smmu-kgsl-cb"; + label = "gfx3d_user"; + iommus = <&kgsl_smmu 0>; + qcom,gpu-offset = <0x48000>; + }; + + gfx3d_secure: gfx3d_secure { + compatible = "qcom,smmu-kgsl-cb"; + iommus = <&kgsl_smmu 2>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-ion.dtsi b/arch/arm64/boot/dts/qcom/msm8996-ion.dtsi new file mode 100644 index 000000000000..2b581d737da8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-ion.dtsi @@ -0,0 +1,46 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&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"; + }; + + system_contig_heap: qcom,ion-heap@21 { + reg = <21>; + qcom,ion-heap-type = "SYSTEM_CONTIG"; + }; + + 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"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-ipcrouter.dtsi b/arch/arm64/boot/dts/qcom/msm8996-ipcrouter.dtsi new file mode 100644 index 000000000000..a443f90e4cb8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-ipcrouter.dtsi @@ -0,0 +1,48 @@ +/* Copyright (c) 2014, 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,ipc_router { + compatible = "qcom,ipc_router"; + qcom,node-id = <1>; + }; + + qcom,ipc_router_modem_xprt { + compatible = "qcom,ipc_router_glink_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "mpss"; + qcom,glink-xprt = "smd_trans"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + }; + + qcom,ipc_router_q6_xprt { + compatible = "qcom,ipc_router_glink_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "lpass"; + qcom,glink-xprt = "smd_trans"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + }; + + qcom,ipc_router_dsps_xprt { + compatible = "qcom,ipc_router_glink_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "dsps"; + qcom,glink-xprt = "smd_trans"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-liquid.dtsi b/arch/arm64/boot/dts/qcom/msm8996-liquid.dtsi new file mode 100644 index 000000000000..a1376fe1b454 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-liquid.dtsi @@ -0,0 +1,655 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8996-pinctrl.dtsi" +#include "msm8996-camera-sensor-liquid.dtsi" +#include "msm8996-wsa881x.dtsi" + +/ { + bluetooth: bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-core-supply = <&pm8994_s3>; + qca,bt-vdd-pa-supply = <&rome_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&pm8994_l30>; + qca,bt-vdd-core-voltage-level = <1300000 1800000>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&ufs_ice { + status = "ok"; +}; + +&ufsphy1 { + status = "ok"; +}; + +&ufs1 { + status = "ok"; +}; + +&uartblsp2dm1 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <110 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 96000000 192000000 384000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + cd-gpios = <&tlmm 95 0x1>; + status = "ok"; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; +}; + +&mdss_hdmi_tx { + pinctrl-names = "hdmi_hpd_active", "hdmi_ddc_active", "hdmi_cec_active", + "hdmi_active", "hdmi_sleep"; + pinctrl-0 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; + pinctrl-1 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_suspend>; + pinctrl-2 = <&mdss_hdmi_hpd_active &mdss_hdmi_cec_active + &mdss_hdmi_ddc_suspend>; + pinctrl-3 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_active>; + pinctrl-4 = <&mdss_hdmi_hpd_suspend &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; +}; + +&pmi8994_vadc { + chan@0 { + label = "usbin"; + reg = <0>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@1 { + label = "dcin"; + reg = <1>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@43 { + label = "usb_dp"; + reg = <0x43>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@44 { + label = "usb_dm"; + reg = <0x44>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; +}; + +#include "msm8996-mdss-panels.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "split_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_dual_jdi_4k_nofbc_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + qcom,platform-reset-gpio = <&tlmm 8 0>; + qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>; +}; + +&mdss_dsi1 { + qcom,dsi-pref-prim-pan = <&dsi_dual_jdi_4k_nofbc_video>; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&dsi_dual_jdi_4k_nofbc_video { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&pmi8994_pwm_4 { + qcom,channel-owner = "lcd_bl"; + qcom,lpg-dtest-line = <4>; + qcom,dtest-output = <1>; + status = "okay"; +}; + +/{ + mtp_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + #include "batterydata-liquid-7650-sanyo.dtsi" + }; +}; + +&pmi8994_charger { + qcom,dc-psy-type = "Wipower"; + qcom,dcin-vadc = <&pmi8994_vadc>; + qcom,wipower-default-ilim-map = <4000000 20000000 550 700 300>; + qcom,wipower-pt-ilim-map = <4000000 7140000 550 700 300>, + <7140000 8140000 550 700 300>, + <8140000 9140000 500 700 300>, + <9140000 9950000 500 700 300>; + qcom,wipower-div2-ilim-map = <4000000 4820000 550 700 300>, + <4820000 5820000 550 700 300>, + <5820000 6820000 550 650 650>, + <6820000 7820000 550 700 600>, + <7820000 8500000 550 700 550>; +}; + +&pmi8994_fg { + qcom,battery-data = <&mtp_batterydata>; + qcom,ext-sense-type; +}; + +&usb_otg_switch { + status = "okay"; +}; + +&usb3 { + vbus_dwc3-supply = <&usb_otg_switch>; +}; + +&pm8994_mpps { + mpp@a300 { /* MPP 4 */ + /* HDMI_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + +&pmi8994_gpios { + gpio@c400 { /* GPIO 5 - USB3 OTG SWITCH EN */ + qcom,mode = <1>; /* Digital output */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; /* Output low initially */ + status = "okay"; + }; +}; + +&pmi8994_gpios { + gpio@c100 { /* GPIO 2 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c200 { /* GPIO 3 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; +}; + +&pmi8994_mpps { + mpp@a000 { /* MPP 1 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <0>; /* S4 1.8V */ + qcom,src-sel = <7>; /* DTEST4 */ + qcom,master-en = <1>; /* Enable MPP */ + status = "okay"; + }; + + mpp@a300 { /* MPP 4 */ + /* WLED FET */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <0>; /* VIN0 */ + qcom,master-en = <1>; + status = "okay"; + }; +}; + +&soc { + drv2667_vreg: drv2667_vdd_vreg { + compatible = "regulator-fixed"; + regulator-name = "vdd_drv2667"; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + home { + label = "home"; + gpios = <&pm8994_gpios 1 0x1>; + linux,input-type = <1>; + linux,code = <102>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 2 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; + + ts_xvdd_vreg: ts_xvdd_vreg { + compatible = "regulator-fixed"; + regulator-name = "ts_xvdd_vreg"; + startup-delay-us = <4000>; + enable-active-high; + gpio = <&pm8994_gpios 3 0>; + status = "ok"; + }; + + sound-9335 { + qcom,model = "msm8996-tasha-mtp-snd-card"; + qcom,hdmi-audio-rx; + asoc-codec = <&stub_codec>, <&hdmi_audio>; + asoc-codec-names = "msm-stub-codec.1", "msm-hdmi-audio-codec-rx"; + qcom,wsa-max-devs = <2>; + qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>, + <&wsa881x_213>, <&wsa881x_214>; + qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight", + "SpkrLeft", "SpkrRight"; + }; +}; + +&pm8994_gpios { + gpio@c700 { /* GPIO 8 - WLAN_EN */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c800 { /* GPIO 9 - Rome 3.3V control */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* MOS logic */ + qcom,invert = <1>; /* Output high */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* High drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@cd00 { /* GPIO 14 - lcd_bklt_reg_en */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* output hight initially */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,out-strength = <1>; /* Low drive strength */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c000 { /* GPIO 1 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c100 { /* GPIO 2 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c200 { /* GPIO 3 - TS_XVDD_EN */ + qcom,mode = <1>; /* Digital output*/ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + + gpio@ce00 { /* GPIO 15 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d100 { /* GPIO 18 - Rome Sleep Clock */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output low initially */ + qcom,vin-sel = <2>; /* VIN 2 */ + qcom,src-sel = <3>; /* Function 2 */ + qcom,out-strength = <2>; /* Medium */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d200 { /* GPIO 19 - Rome BT Reset */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&pmi8994_haptics { + status = "okay"; +}; + +&flash_led { + qcom,follow-otst2-rb-disabled; +}; + +&blsp1_uart2 { + status = "ok"; +}; + +&i2c_7 { + ti-drv2667@59 { + compatible = "ti,drv2667"; + reg = <0x59>; + vdd-supply = <&drv2667_vreg>; + vdd-i2c-supply = <&pm8994_s4>; + ti,label = "vibrator"; + ti,gain = <2>; + ti,idle-timeout-ms = <20>; + ti,max-runtime-ms = <15000>; + ti,mode = <2>; + ti,wav-seq = [ + /* wave form id */ + 01 + /* header size, start and stop bytes */ + 05 80 06 00 09 + /* repeat, amp, freq, duration, envelope */ + 01 ff 19 02 00]; + }; +}; + +&i2c_12 { + atmel_maxtouch_ts@4a { + compatible = "atmel,maxtouch-ts"; + reg = <0x4a>; + interrupt-parent = <&tlmm>; + interrupts = <125 0x2008>; + vdd-supply = <&pm8994_l14>; + avdd-supply = <&pm8994_l22>; + xvdd-supply = <&ts_xvdd_vreg>; + pinctrl-names = "pmx_ts_active","pmx_ts_suspend"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_suspend>; + atmel,panel-coords = <0 0 3839 2159>; + atmel,display-coords = <0 0 3839 2159>; + atmel,irq-gpio = <&tlmm 125 0x2008>; + atmel,reset-gpio = <&tlmm 89 0x00>; + atmel,i2cmode-gpio = <&tlmm 86 0x00>; + atmel,ignore-crc; + /* Underlying clocks used by secure touch */ + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup6_i2c_apps_clk>; + atmel,cfg-name = "maxtouch_8996_liquid_cfg.raw"; + atmel,cfg_1 { + atmel,version = <0x10>; + atmel,build = <0xaa>; + atmel,fw-name = "maxtouch_8996_liquid_v1_1_AB.fw"; + }; + atmel,cfg_2 { + atmel,version = <0x11>; + atmel,build = <0xab>; + }; + }; +}; + +&wil6210 { + status = "ok"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-mdss-panels.dtsi b/arch/arm64/boot/dts/qcom/msm8996-mdss-panels.dtsi new file mode 100644 index 000000000000..569cd9a3b374 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-mdss-panels.dtsi @@ -0,0 +1,208 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "dsi-panel-sharp-dualmipi-wqxga-video.dtsi" +#include "dsi-panel-nt35597-dualmipi-wqxga-video.dtsi" +#include "dsi-panel-nt35597-dualmipi-wqxga-cmd.dtsi" +#include "dsi-panel-nt35597-dsc-wqxga-video.dtsi" +#include "dsi-panel-jdi-dualmipi-video.dtsi" +#include "dsi-panel-jdi-dualmipi-cmd.dtsi" +#include "dsi-panel-jdi-4k-dualmipi-video-nofbc.dtsi" +#include "dsi-panel-sim-video.dtsi" +#include "dsi-panel-sim-dualmipi-video.dtsi" +#include "dsi-panel-sim-cmd.dtsi" +#include "dsi-panel-sim-dualmipi-cmd.dtsi" +#include "dsi-panel-nt35597-dsc-wqxga-cmd.dtsi" +#include "dsi-panel-hx8379a-truly-fwvga-video.dtsi" +#include "dsi-panel-r69007-dualdsi-wqxga-cmd.dtsi" +#include "dsi-adv7533-720p.dtsi" +#include "dsi-adv7533-1080p.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 = "vddio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <62000>; + 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>; + }; + }; +}; + +&soc { + dsi_panel_pwr_supply_amoled: dsi_panel_pwr_supply_amoled { + #address-cells = <1>; + #size-cells = <0>; + + qcom,panel-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vddio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <62000>; + qcom,supply-disable-load = <80>; + qcom,supply-post-on-sleep = <20>; + }; + + 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 = <20>; + }; + + qcom,panel-supply-entry@3 { + reg = <3>; + qcom,supply-name = "oled-vdda"; + qcom,supply-min-voltage = <3000000>; + qcom,supply-max-voltage = <3000000>; + qcom,supply-enable-load = <857000>; + qcom,supply-disable-load = <0>; + qcom,supply-post-on-sleep = <0>; + }; + }; +}; + +&soc { + 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 = "vddio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <62000>; + qcom,supply-disable-load = <80>; + qcom,supply-post-on-sleep = <20>; + }; + }; +}; + +&dsi_dual_sharp_video { + qcom,mdss-dsi-panel-timings-8996 = [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]; +}; + +&dsi_dual_jdi_cmd { + qcom,mdss-dsi-panel-timings-8996 = [22 1e 06 08 04 03 04 a0 + 22 1e 06 08 04 03 04 a0 + 22 1e 06 08 04 03 04 a0 + 22 1e 06 08 04 03 04 a0 + 22 2c 05 08 04 03 04 a0]; + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-check-mode = "te_signal_check"; +}; + +&dsi_dual_jdi_video { + qcom,mdss-dsi-panel-timings-8996 = [22 1e 06 08 04 03 04 a0 + 22 1e 06 08 04 03 04 a0 + 22 1e 06 08 04 03 04 a0 + 22 1e 06 08 04 03 04 a0 + 22 2c 05 08 04 03 04 a0]; +}; + +&dsi_dual_nt35597_video { + qcom,mdss-dsi-panel-timings-8996 = [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_dual_nt35597_cmd { + qcom,mdss-dsi-panel-timings-8996 = [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_nt35597_dsc_video { + qcom,mdss-dsi-panel-timings-8996 = [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]; +}; + +&dsi_nt35597_dsc_cmd { + qcom,mdss-dsi-panel-timings-8996 = [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]; +}; + +&dsi_dual_jdi_4k_nofbc_video { + qcom,mdss-dsi-panel-timings-8996 = [ + 2c 27 0e 10 0a 03 04 a0 + 2c 27 0e 10 0a 03 04 a0 + 2c 27 0e 10 0a 03 04 a0 + 2c 27 0e 10 0a 03 04 a0 + 2c 32 0e 0f 0a 03 04 a0]; +}; + +&dsi_hx8379a_fwvga_truly_vid { + qcom,mdss-dsi-panel-timings-8996 = [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]; +}; +&dsi_r69007_wqxga_cmd { + qcom,mdss-dsi-panel-timings-8996 = [23 1f 07 09 05 03 04 a0 + 23 1f 07 09 05 03 04 a0 + 23 1f 07 09 05 03 04 a0 + 23 1f 07 09 05 03 04 a0 + 23 19 08 08 05 03 04 a0]; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-mdss-pll.dtsi b/arch/arm64/boot/dts/qcom/msm8996-mdss-pll.dtsi new file mode 100644 index 000000000000..53d47b16e821 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-mdss-pll.dtsi @@ -0,0 +1,138 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + mdss_dsi0_pll: qcom,mdss_dsi_pll@994400 { + compatible = "qcom,mdss_dsi_pll_8996_v2"; + label = "MDSS DSI 0 PLL"; + cell-index = <0>; + #clock-cells = <1>; + + reg = <0x00994400 0x588>, + <0x008C2300 0x8>, + <0x00994200 0x98>; + reg-names = "pll_base", "gdsc_base", "dynamic_pll_base"; + + gdsc-supply = <&gdsc_mdss>; + + clocks = <&clock_mmss clk_mdss_ahb_clk>; + 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>; + + 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_8996_v2"; + label = "MDSS DSI 1 PLL"; + cell-index = <1>; + #clock-cells = <1>; + + reg = <0x00996400 0x588>, + <0x008C2300 0x8>, + <0x00996200 0x98>; + reg-names = "pll_base", "gdsc_base", "dynamic_pll_base"; + + gdsc-supply = <&gdsc_mdss>; + + clocks = <&clock_mmss clk_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_hdmi_pll: qcom,mdss_hdmi_pll@0x9a0600 { + compatible = "qcom,mdss_hdmi_pll_8996"; + label = "MDSS HDMI PLL"; + #clock-cells = <1>; + + reg = <0x9a0600 0xb10>, + <0x9a1200 0x0c8>, + <0x8C2300 0x8>; + reg-names = "pll_base", "phy_base", "gdsc_base"; + + gdsc-supply = <&gdsc_mdss>; + vddio-supply = <&pm8994_l12>; + vcca-supply = <&pm8994_l28>; + + clocks = <&clock_mmss clk_mdss_ahb_clk>, + <&clock_gcc clk_gcc_hdmi_clkref_clk>, + <&clock_gcc clk_ln_bb_clk>; + clock-names = "iface_clk", "ref_clk", "ref_clk_src"; + 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>; + }; + + qcom,platform-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,platform-supply-entry@2 { + reg = <2>; + qcom,supply-name = "vcca"; + qcom,supply-min-voltage = <925000>; + qcom,supply-max-voltage = <925000>; + qcom,supply-enable-load = <10000>; + qcom,supply-disable-load = <100>; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-mdss.dtsi b/arch/arm64/boot/dts/qcom/msm8996-mdss.dtsi new file mode 100644 index 000000000000..3e3820a85bb1 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-mdss.dtsi @@ -0,0 +1,519 @@ +/* Copyright (c) 2014-2015 The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + mdss_mdp: qcom,mdss_mdp@900000 { + compatible = "qcom,mdss_mdp"; + reg = <0x00900000 0x90000>, + <0x009b0000 0x1040>, + <0x009b8000 0x1040>; + reg-names = "mdp_phys", "vbif_phys", "vbif_nrt_phys"; + interrupts = <0 83 0>; + vdd-supply = <&gdsc_mdss>; + + /* Bus Scale Settings */ + qcom,msm-bus,name = "mdss_mdp"; + qcom,msm-bus,num-cases = <3>; + qcom,msm-bus,num-paths = <3>; + qcom,msm-bus,vectors-KBps = + <22 512 0 0>, <23 512 0 0>, <25 512 0 0>, + <22 512 0 6400000>, <23 512 0 6400000>, <25 512 0 6400000>, + <22 512 0 6400000>, <23 512 0 6400000>, <25 512 0 6400000>; + + qcom,mdss-num-nrt-paths = <1>; + + /* Fudge factors */ + qcom,mdss-ab-factor = <1 1>; /* 1 time */ + qcom,mdss-ib-factor = <1 1>; /* 1 time */ + qcom,mdss-clk-factor = <105 100>; /* 1.05 times */ + + qcom,max-mixer-width = <2560>; + qcom,max-pipe-width = <2560>; + + /* VBIF QoS remapper settings*/ + qcom,mdss-vbif-qos-rt-setting = <1 2 2 2>; + qcom,mdss-vbif-qos-nrt-setting = <1 1 1 1>; + + qcom,mdss-has-panic-ctrl; + qcom,mdss-per-pipe-panic-luts = <0x000f>, + <0xffff>, + <0xfffc>, + <0xff00>; + + qcom,mdss-mdp-reg-offset = <0x00001000>; + qcom,max-bandwidth-low-kbps = <9600000>; + qcom,max-bandwidth-high-kbps = <9600000>; + qcom,max-bandwidth-per-pipe-kbps = <4500000>; + qcom,max-clk-rate = <412500000>; + qcom,mdss-default-ot-rd-limit = <32>; + qcom,mdss-default-ot-wr-limit = <16>; + qcom,mdss-dram-channels = <2>; + + qcom,mdss-pipe-vig-off = <0x00005000 0x00007000 + 0x00009000 0x0000B000>; + qcom,mdss-pipe-rgb-off = <0x00015000 0x00017000 + 0x00019000 0x0001B000>; + qcom,mdss-pipe-dma-off = <0x00025000 0x00027000>; + qcom,mdss-pipe-cursor-off = <0x00035000 0x00037000>; + + qcom,mdss-pipe-vig-xin-id = <0 4 8 12>; + qcom,mdss-pipe-rgb-xin-id = <1 5 9 13>; + qcom,mdss-pipe-dma-xin-id = <2 10>; + qcom,mdss-pipe-cursor-xin-id = <7 7>; + + /* These Offsets are relative to "mdp_phys + mdp-reg-offset" address */ + qcom,mdss-pipe-vig-clk-ctrl-offsets = <0x2AC 0 0>, + <0x2B4 0 0>, + <0x2BC 0 0>, + <0x2C4 0 0>; + qcom,mdss-pipe-rgb-clk-ctrl-offsets = <0x2AC 4 8>, + <0x2B4 4 8>, + <0x2BC 4 8>, + <0x2C4 4 8>; + qcom,mdss-pipe-dma-clk-ctrl-offsets = <0x2AC 8 12>, + <0x2B4 8 12>; + qcom,mdss-pipe-cursor-clk-ctrl-offsets = <0x3A8 16 15>, + <0x3B0 16 15>; + + + qcom,mdss-ctl-off = <0x00002000 0x00002200 0x00002400 + 0x00002600 0x00002800>; + qcom,mdss-mixer-intf-off = <0x00045000 0x00046000 + 0x00047000 0x0004A000>; + qcom,mdss-mixer-wb-off = <0x00048000 0x00049000>; + qcom,mdss-dspp-off = <0x00055000 0x00057000>; + qcom,mdss-wb-off = <0x00065000 0x00065800 0x00066000>; + qcom,mdss-intf-off = <0x0006B000 0x0006B800 + 0x0006C000 0x0006C800>; + qcom,mdss-pingpong-off = <0x00071000 0x00071800 + 0x00072000 0x00072800>; + qcom,mdss-slave-pingpong-off = <0x00073000>; + qcom,mdss-ppb-off = <0x00000330 0x00000338>; + qcom,mdss-has-pingpong-split; + + qcom,mdss-ad-off = <0x0079000 0x00079800 0x0007a000>; + qcom,mdss-cdm-off = <0x0007a200>; + qcom,mdss-dsc-off = <0x00081000 0x00081400>; + qcom,mdss-wfd-mode = "intf"; + qcom,mdss-has-source-split; + qcom,mdss-highest-bank-bit = <0x2>; + qcom,mdss-has-decimation; + qcom,mdss-has-rotator-downscale; + qcom,mdss-idle-power-collapse-enabled; + clocks = <&clock_mmss clk_mdss_ahb_clk>, + <&clock_mmss clk_mdss_axi_clk>, + <&clock_mmss clk_mdp_clk_src>, + <&clock_mmss clk_mdss_mdp_vote_clk>, + <&clock_mmss clk_mdss_vsync_clk>; + clock-names = "iface_clk", "bus_clk", "core_clk_src", + "core_clk", "vsync_clk"; + + qcom,mdp-settings = <0x01190 0x00000000>, + <0x012ac 0xc0000ccc>, + <0x012b4 0xc0000ccc>, + <0x012bc 0x00cccccc>, + <0x012c4 0x000000cc>, + <0x013a8 0x0cccc0c0>, + <0x013b0 0xccccc0c0>, + <0x013b8 0xcccc0000>, + <0x013d0 0x00cc0000>, + <0x0506c 0x00000000>, + <0x0706c 0x00000000>, + <0x0906c 0x00000000>, + <0x0b06c 0x00000000>, + <0x1506c 0x00000000>, + <0x1706c 0x00000000>, + <0x1906c 0x00000000>, + <0x1b06c 0x00000000>, + <0x2506c 0x00000000>, + <0x2706c 0x00000000>; + + qcom,regs-dump-mdp = <0x01000 0x01454>, + <0x02000 0x02064>, + <0x02200 0x02264>, + <0x02400 0x02464>, + <0x02600 0x02664>, + <0x02800 0x02864>, + <0x05000 0x05150>, + <0x05200 0x05230>, + <0x07000 0x07150>, + <0x07200 0x07230>, + <0x09000 0x09150>, + <0x09200 0x09230>, + <0x0b000 0x0b150>, + <0x0b200 0x0b230>, + <0x15000 0x15150>, + <0x15200 0x15230>, + <0x17000 0x17150>, + <0x17200 0x17230>, + <0x19000 0x19150>, + <0x19200 0x19230>, + <0x1b000 0x1b150>, + <0x1b200 0x1b230>, + <0x25000 0x25150>, + <0x27000 0x27150>, + <0x35000 0x35150>, + <0x37000 0x37150>, + <0x45000 0x452bc>, + <0x46000 0x462bc>, + <0x47000 0x472bc>, + <0x48000 0x482bc>, + <0x49000 0x492bc>, + <0x4a000 0x4a2bc>, + <0x55000 0x5522c>, + <0x57000 0x5722c>, + <0x65000 0x652c0>, + <0x65800 0x65ac0>, + <0x66000 0x662c0>, + <0x6b800 0x6ba68>, + <0x6c000 0x6c268>, + <0x6c800 0x6ca68>, + <0x71000 0x710d4>, + <0x71800 0x718d4>, + <0x73000 0x730d4>, + <0x81000 0x81140>, + <0x81400 0x81540>; + + qcom,regs-dump-names-mdp = "MDP", + "CTL_0", "CTL_1", "CTL_2", "CTL_3", "CTL_4", + "VIG0_SSPP", "VIG0", "VIG1_SSPP", "VIG1", + "VIG2_SSPP", "VIG2", "VIG3_SSPP", "VIG3", + "RGB0_SSPP", "RGB0", "RGB1_SSPP", "RGB1", + "RGB2_SSPP", "RGB2", "RGB3_SSPP", "RGB3", + "DMA0_SSPP", "DMA1_SSPP", + "CURSOR0_SSPP", "CURSOR1_SSPP", + "LAYER_0", "LAYER_1", "LAYER_2", + "LAYER_3", "LAYER_4", "LAYER_5", + "DSPP_0", "DSPP_1", + "WB_0", "WB_1", "WB_2", + "INTF_1", "INTF_2", "INTF_3", + "PP_0", "PP_1", "PP_4", + "DSC_0", "DSC_1"; + + /* buffer parameters to calculate prefill bandwidth */ + qcom,mdss-prefill-outstanding-buffer-bytes = <0>; + qcom,mdss-prefill-y-buffer-bytes = <0>; + qcom,mdss-prefill-scaler-buffer-lines-bilinear = <2>; + qcom,mdss-prefill-scaler-buffer-lines-caf = <4>; + qcom,mdss-prefill-post-scaler-buffer-pixels = <2560>; + qcom,mdss-prefill-pingpong-buffer-pixels = <5120>; + + qcom,mdss-pp-offsets { + qcom,mdss-sspp-mdss-igc-lut-off = <0x2000>; + qcom,mdss-sspp-vig-pcc-off = <0x1780>; + qcom,mdss-sspp-rgb-pcc-off = <0x380>; + qcom,mdss-sspp-dma-pcc-off = <0x380>; + qcom,mdss-lm-pgc-off = <0x3C0>; + qcom,mdss-dspp-gamut-off = <0x1600>; + qcom,mdss-dspp-pcc-off = <0x1700>; + qcom,mdss-dspp-pgc-off = <0x17C0>; + }; + + smmu_mdp_unsec: qcom,smmu_mdp_unsec_cb { + compatible = "qcom,smmu_mdp_unsec"; + iommus = <&mdp_smmu 0>; + gdsc-mmagic-mdss-supply = <&gdsc_mmagic_mdss>; + clocks = <&clock_mmss clk_smmu_mdp_ahb_clk>, + <&clock_mmss clk_mmagic_mdss_axi_clk>, + <&clock_mmss clk_smmu_mdp_axi_clk>; + clock-names = "mdp_ahb_clk", "mmagic_mdss_axi_clk", + "mdp_axi_clk"; + }; + + smmu_rot_unsec: qcom,smmu_rot_unsec_cb { + compatible = "qcom,smmu_rot_unsec"; + iommus = <&rot_smmu 0>; + gdsc-mmagic-mdss-supply = <&gdsc_mmagic_mdss>; + clocks = <&clock_mmss clk_smmu_rot_ahb_clk>, + <&clock_mmss clk_mmagic_mdss_axi_clk>, + <&clock_mmss clk_smmu_rot_axi_clk>; + clock-names = "rot_ahb_clk", "mmagic_mdss_axi_clk", + "rot_axi_clk"; + }; + + smmu_mdp_sec: qcom,smmu_mdp_sec_cb { + compatible = "qcom,smmu_mdp_sec"; + iommus = <&mdp_smmu 1>; + gdsc-mmagic-mdss-supply = <&gdsc_mmagic_mdss>; + clocks = <&clock_mmss clk_smmu_mdp_ahb_clk>, + <&clock_mmss clk_mmagic_mdss_axi_clk>, + <&clock_mmss clk_smmu_mdp_axi_clk>; + clock-names = "mdp_ahb_clk", "mmagic_mdss_axi_clk", + "mdp_axi_clk"; + }; + + smmu_rot_sec: qcom,smmu_rot_sec_cb { + compatible = "qcom,smmu_rot_sec"; + iommus = <&rot_smmu 1>; + gdsc-mmagic-mdss-supply = <&gdsc_mmagic_mdss>; + clocks = <&clock_mmss clk_smmu_rot_ahb_clk>, + <&clock_mmss clk_mmagic_mdss_axi_clk>, + <&clock_mmss clk_smmu_rot_axi_clk>; + clock-names = "rot_ahb_clk", "mmagic_mdss_axi_clk", + "rot_axi_clk"; + }; + + mdss_fb0: qcom,mdss_fb_primary { + cell-index = <0>; + compatible = "qcom,mdss-fb"; + qcom,cont-splash-memory { + linux,contiguous-region = <&cont_splash_mem>; + }; + }; + + mdss_fb1: qcom,mdss_fb_wfd { + cell-index = <1>; + compatible = "qcom,mdss-fb"; + }; + + mdss_fb2: qcom,mdss_fb_hdmi { + cell-index = <2>; + compatible = "qcom,mdss-fb"; + }; + }; + + mdss_dsi: qcom,mdss_dsi@0 { + compatible = "qcom,mdss-dsi"; + #address-cells = <1>; + #size-cells = <1>; + gdsc-supply = <&gdsc_mdss>; + vdda-supply = <&pm8994_l2>; + vcca-supply = <&pm8994_l28>; + ranges = <0x994000 0x994000 0x400 + 0x994400 0x994400 0x558 + 0x828000 0x828000 0x108 + 0x996000 0x996000 0x400 + 0x996400 0x996400 0x558 + 0x828000 0x828000 0x108>; + + /* Bus Scale Settings */ + qcom,msm-bus,name = "mdss_dsi"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <22 512 0 0>, + <22 512 0 1000>; + + qcom,mmss-ulp-clamp-ctrl-offset = <0x14>; + qcom,timing-db-mode; + + clocks = <&clock_mmss clk_mdss_mdp_vote_clk>, + <&clock_mmss clk_mdss_ahb_clk>, + <&clock_mmss clk_mmss_misc_ahb_clk>, + <&clock_mmss clk_mdss_axi_clk>, + <&clock_mmss clk_ext_byte0_clk_src>, + <&clock_mmss clk_ext_byte1_clk_src>, + <&clock_mmss clk_ext_pclk0_clk_src>, + <&clock_mmss clk_ext_pclk1_clk_src>; + clock-names = "mdp_core_clk", "iface_clk", + "core_mmss_clk", "bus_clk", + "ext_byte0_clk", "ext_byte1_clk", + "ext_pixel0_clk", "ext_pixel1_clk"; + + qcom,core-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,core-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>; + }; + }; + + qcom,ctrl-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,ctrl-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vdda"; + qcom,supply-min-voltage = <1250000>; + qcom,supply-max-voltage = <1250000>; + qcom,supply-enable-load = <18160>; + qcom,supply-disable-load = <1>; + }; + }; + + qcom,phy-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,phy-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vcca"; + qcom,supply-min-voltage = <925000>; + qcom,supply-max-voltage = <925000>; + qcom,supply-enable-load = <17000>; + qcom,supply-disable-load = <32>; + }; + }; + + mdss_dsi0: qcom,mdss_dsi_ctrl0@994000 { + compatible = "qcom,mdss-dsi-ctrl"; + label = "MDSS DSI CTRL->0"; + cell-index = <0>; + reg = <0x994000 0x400>, + <0x994400 0x588>, + <0x828000 0x108>; + reg-names = "dsi_ctrl", "dsi_phy", "mmss_misc_phys"; + + oled-vdda-supply = <&pm8994_l19>; + vddio-supply = <&pm8994_l14>; + lab-supply = <&lab_regulator>; + ibb-supply = <&ibb_regulator>; + qcom,mdss-mdp = <&mdss_mdp>; + qcom,mdss-fb-map = <&mdss_fb0>; + + clocks = <&clock_mmss clk_mdss_byte0_clk>, + <&clock_mmss clk_mdss_pclk0_clk>, + <&clock_mmss clk_mdss_esc0_clk>, + <&clock_mmss clk_byte0_clk_src>, + <&clock_mmss clk_pclk0_clk_src>, + <&mdss_dsi0_pll clk_dsi0pll_byte_clk_mux>, + <&mdss_dsi0_pll clk_dsi0pll_pixel_clk_mux>, + <&mdss_dsi0_pll clk_dsi0pll_byte_clk_src>, + <&mdss_dsi0_pll clk_dsi0pll_pixel_clk_src>; + clock-names = "byte_clk", "pixel_clk", "core_clk", + "byte_clk_rcg", "pixel_clk_rcg", + "pll_byte_clk_mux", "pll_pixel_clk_mux", + "pll_byte_clk_src", "pll_pixel_clk_src"; + + qcom,null-insertion-enabled; + qcom,platform-strength-ctrl = [ff 06 + ff 06 + ff 06 + ff 06 + ff 00]; + qcom,platform-regulator-settings = [1d + 1d 1d 1d 1d]; + qcom,platform-lane-config = [00 00 10 0f + 00 00 10 0f + 00 00 10 0f + 00 00 10 0f + 00 00 10 8f]; + }; + + mdss_dsi1: qcom,mdss_dsi_ctrl1@996000 { + compatible = "qcom,mdss-dsi-ctrl"; + label = "MDSS DSI CTRL->1"; + cell-index = <1>; + reg = <0x996000 0x400>, + <0x996400 0x558>, + <0x828000 0x108>; + reg-names = "dsi_ctrl", "dsi_phy", "mmss_misc_phys"; + + oled-vdda-supply = <&pm8994_l19>; + vddio-supply = <&pm8994_l14>; + lab-supply = <&lab_regulator>; + ibb-supply = <&ibb_regulator>; + qcom,mdss-mdp = <&mdss_mdp>; + qcom,mdss-fb-map = <&mdss_fb0>; + + clocks = <&clock_mmss clk_mdss_byte1_clk>, + <&clock_mmss clk_mdss_pclk1_clk>, + <&clock_mmss clk_mdss_esc1_clk>, + <&clock_mmss clk_byte1_clk_src>, + <&clock_mmss clk_pclk1_clk_src>, + <&mdss_dsi0_pll clk_dsi0pll_byte_clk_mux>, + <&mdss_dsi0_pll clk_dsi0pll_pixel_clk_mux>, + <&mdss_dsi0_pll clk_dsi0pll_byte_clk_src>, + <&mdss_dsi0_pll clk_dsi0pll_pixel_clk_src>; + clock-names = "byte_clk", "pixel_clk", "core_clk", + "byte_clk_rcg", "pixel_clk_rcg", + "pll_byte_clk_mux", "pll_pixel_clk_mux", + "pll_byte_clk_src", "pll_pixel_clk_src"; + + qcom,null-insertion-enabled; + qcom,platform-strength-ctrl = [ff 06 + ff 06 + ff 06 + ff 06 + ff 00]; + qcom,platform-regulator-settings = [1d + 1d 1d 1d 1d]; + qcom,platform-lane-config = [00 00 10 0f + 00 00 10 0f + 00 00 10 0f + 00 00 10 0f + 00 00 10 8f]; + }; + }; + + qcom,mdss_wb_panel { + compatible = "qcom,mdss_wb"; + qcom,mdss_pan_res = <640 480>; + qcom,mdss_pan_bpp = <24>; + qcom,mdss-fb-map = <&mdss_fb1>; + }; + + mdss_hdmi_tx: qcom,hdmi_tx@9a0000 { + cell-index = <0>; + compatible = "qcom,hdmi-tx"; + + reg = <0x9a0000 0x50c>, + <0x70000 0x6158>, + <0x9e0000 0xFFF>; + reg-names = "core_physical", "qfprom_physical", "hdcp_physical"; + + hpd-gdsc-supply = <&gdsc_mdss>; + + qcom,supply-names = "hpd-gdsc"; + qcom,min-voltage-level = <0>; + qcom,max-voltage-level = <0>; + qcom,enable-load = <0>; + qcom,disable-load = <0>; + + clocks = <&clock_mmss clk_mdss_mdp_vote_clk>, + <&clock_mmss clk_mdss_ahb_clk>, + <&clock_mmss clk_mdss_hdmi_clk>, + <&clock_mmss clk_mdss_hdmi_ahb_clk>, + <&clock_mmss clk_mdss_extpclk_clk>; + clock-names = "mdp_core_clk", "iface_clk", + "core_clk", "alt_iface_clk", "extp_clk"; + + qcom,hdmi-tx-hpd = <&pm8994_mpps 4 0>; + qcom,mdss-fb-map = <&mdss_fb2>; + + hdmi_audio: qcom,msm-hdmi-audio-rx { + compatible = "qcom,msm-hdmi-audio-codec-rx"; + }; + }; + + mdss_rotator: qcom,mdss_rotator { + compatible = "qcom,mdss_rotator"; + qcom,mdss-wb-count = <2>; + qcom,mdss-has-downscale; + qcom,mdss-has-ubwc; + qcom,mdss-has-reg-bus; + /* Bus Scale Settings */ + qcom,msm-bus,name = "mdss_rotator"; + qcom,msm-bus,num-cases = <3>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <25 512 0 0>, + <25 512 0 6400000>, + <25 512 0 6400000>; + + rot-vdd-supply = <&gdsc_mdss>; + rot-mmagic-mdss-gdsc-supply = <&gdsc_mmagic_mdss>; + + qcom,supply-names = "rot-mmagic-mdss-gdsc", "rot-vdd"; + + clocks = <&clock_mmss clk_mmss_misc_ahb_clk>, + <&clock_mmss clk_mdss_rotator_vote_clk>; + clock-names = "iface_clk", "rot_core_clk"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-mmxf-adp.dtsi b/arch/arm64/boot/dts/qcom/msm8996-mmxf-adp.dtsi new file mode 100644 index 000000000000..73fbb9386f8d --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-mmxf-adp.dtsi @@ -0,0 +1,818 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8996-pinctrl.dtsi" +#include "msm8996-camera-sensor-adp.dtsi" +#include "msm8996-wsa881x.dtsi" + +/ { + bluetooth: bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-core-supply = <&pm8994_s3>; + qca,bt-vdd-pa-supply = <&rome_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&pm8994_l30>; + qca,bt-chip-pwd-voltage-level = <1300000 1300000>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&ufs_ice { + status = "ok"; +}; + +&sdcc1_ice { + status = "ok"; +}; + +&ufsphy1 { + status = "ok"; +}; + +&ufs1 { + status = "ok"; +}; + +&uartblsp2dm1 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <110 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 + 96000000 192000000 384000000>; + qcom,ice-clk-rates = <300000000 150000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; + + qcom,clk-rates = <400000 20000000 25000000 + 50000000 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + cd-gpios = <&tlmm 95 0x1>; + + status = "ok"; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x88>; + qcom,thermal-node; + }; +}; + +&mdss_hdmi_tx { + pinctrl-names = "hdmi_hpd_active", "hdmi_ddc_active", "hdmi_cec_active", + "hdmi_active", "hdmi_sleep"; + pinctrl-0 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; + pinctrl-1 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_suspend>; + pinctrl-2 = <&mdss_hdmi_hpd_active &mdss_hdmi_cec_active + &mdss_hdmi_ddc_suspend>; + pinctrl-3 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_active>; + pinctrl-4 = <&mdss_hdmi_hpd_suspend &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; +}; + +#include "msm8996-mdss-panels.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "split_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + qcom,platform-te-gpio = <&tlmm 10 0>; + qcom,platform-reset-gpio = <&tlmm 8 0>; + qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>; +}; + +&mdss_dsi1 { + qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + qcom,platform-te-gpio = <&tlmm 10 0>; + qcom,platform-reset-gpio = <&tlmm 8 0>; + qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>; +}; + +&dsi_dual_sharp_video { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_nt35597_video { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_nt35597_cmd { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,partial-update-enabled; + qcom,panel-roi-alignment = <720 128 720 64 720 64>; +}; + +&dsi_nt35597_dsc_video { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_nt35597_dsc_cmd { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_jdi_video { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,5v-boost-gpio = <&pmi8994_gpios 8 0>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_jdi_cmd { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,5v-boost-gpio = <&pmi8994_gpios 8 0>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,partial-update-enabled; + qcom,panel-roi-alignment = <4 4 2 2 20 20>; +}; + +&dsi_dual_jdi_4k_nofbc_video { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,cont-splash-enabled; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +/{ + mtp_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + #include "batterydata-itech-3000mah.dtsi" + }; +}; + +&i2c_7 { + smb1351-charger@1d { + compatible = "qcom,smb1351-charger"; + reg = <0x1d>; + qcom,parallel-charger; + qcom,float-voltage-mv = <4400>; + qcom,recharge-mv = <100>; + }; +}; + +&usb_otg_switch { + status = "disabled"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + mpp@a300 { /* MPP 4 */ + /* HDMI_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + +&soc { + i2c@75ba000 { + synaptics@20 { + compatible = "synaptics,dsx"; + reg = <0x20>; + interrupt-parent = <&tlmm>; + interrupts = <125 0x2008>; + vdd-supply = <&pm8994_l14>; + avdd-supply = <&pm8994_l22>; + pinctrl-names = "pmx_ts_active", "pmx_ts_suspend"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_suspend>; + synaptics,display-coords = <0 0 1599 2559>; + synaptics,panel-coords = <0 0 1599 2703>; + synaptics,reset-gpio = <&tlmm 89 0x00>; + synaptics,irq-gpio = <&tlmm 125 0x2008>; + synaptics,disable-gpios; + synaptics,fw-name = "PR1702898-s3528t_00350002.img"; + /* Underlying clocks used by secure touch */ + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup6_i2c_apps_clk>; + }; + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "synaptics_dsx"; + qcom,disp-maxx = <1599>; + qcom,disp-maxy = <2559>; + qcom,panel-maxx = <1599>; + qcom,panel-maxy = <2703>; + qcom,key-codes = <158 139 102 217>; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 2 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_snapshot { + label = "cam_snapshot"; + gpios = <&pm8994_gpios 4 0x1>; + linux,input-type = <1>; + linux,code = <766>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_focus { + label = "cam_focus"; + gpios = <&pm8994_gpios 5 0x1>; + linux,input-type = <1>; + linux,code = <528>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; + + sound-9335 { + qcom,model = "msm8996-tasha-mtp-snd-card"; + + qcom,audio-routing = + "AIF4 VI", "MCLK", + "RX_BIAS", "MCLK", + "MADINPUT", "MCLK", + "hifi amp", "LINEOUT1", + "hifi amp", "LINEOUT2", + "AMIC2", "MIC BIAS2", + "MIC BIAS2", "Headset Mic", + "AMIC3", "MIC BIAS2", + "MIC BIAS2", "ANCRight Headset Mic", + "AMIC4", "MIC BIAS2", + "MIC BIAS2", "ANCLeft Headset Mic", + "AMIC5", "MIC BIAS3", + "MIC BIAS3", "Handset Mic", + "AMIC6", "MIC BIAS4", + "MIC BIAS4", "Analog Mic6", + "DMIC0", "MIC BIAS1", + "MIC BIAS1", "Digital Mic0", + "DMIC1", "MIC BIAS1", + "MIC BIAS1", "Digital Mic1", + "DMIC2", "MIC BIAS3", + "MIC BIAS3", "Digital Mic2", + "DMIC3", "MIC BIAS3", + "MIC BIAS3", "Digital Mic3", + "DMIC4", "MIC BIAS4", + "MIC BIAS4", "Digital Mic4", + "DMIC5", "MIC BIAS4", + "MIC BIAS4", "Digital Mic5", + "SpkrLeft IN", "SPK1 OUT", + "SpkrRight IN", "SPK2 OUT"; + + qcom,hdmi-audio-rx; + asoc-codec = <&stub_codec>, <&hdmi_audio>; + asoc-codec-names = "msm-stub-codec.1", + "msm-hdmi-audio-codec-rx"; + qcom,hph-en1-gpio = <&pmi8994_gpios 10 0>; + qcom,hph-en0-gpio = <&pm8994_gpios 13 0>; + qcom,us-euro-gpios = <&pm8994_mpps 2 0>; + qcom,wsa-max-devs = <2>; + qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>, + <&wsa881x_213>, <&wsa881x_214>; + qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight", + "SpkrLeft", "SpkrRight"; + }; +}; + +&pm8994_gpios { + gpio@c600 { /* GPIO 7 - NFC DWL REQ */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <3>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@c700 { /* GPIO 8 - WLAN_EN */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c800 { /* GPIO 9 - Rome 3.3V control */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* MOS logic */ + qcom,invert = <1>; /* Output high */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* High drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c900 { /* GPIO 10 - NFC CLK _REQ*/ + qcom,mode = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@cd00 { /* GPIO 14 - lcd_bklt_reg_en */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* output hight initially */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,out-strength = <1>; /* Low drive strength */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + gpio@c100 { /* GPIO 2 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c300 { /* GPIO 4 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c400 { /* GPIO 5 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@cc00 { /* GPIO 13 - HPH_EN0 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@ce00 { /* GPIO 15 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d100 { /* GPIO 18 - Rome Sleep Clock */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output low initially */ + qcom,vin-sel = <2>; /* VIN 2 */ + qcom,src-sel = <3>; /* Function 2 */ + qcom,out-strength = <2>; /* Medium */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d200 { /* GPIO 19 - Rome BT Reset */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&blsp1_uart2 { + status = "ok"; +}; + +&i2c_6 { + at24@51 { + compatible = "atmel,24c32"; + reg = <0x51>; + }; +}; + +&i2c_7 { + silabs4705@11 { /* SiLabs FM chip, slave id 0x11*/ + status = "ok"; + compatible = "silabs,si4705"; + reg = <0x11>; + vdd-supply = <&pm8994_s4>; + silabs,vdd-supply-voltage = <1800000 1800000>; + va-supply = <&rome_vreg>; + silabs,va-supply-voltage = <3300000 3300000>; + pinctrl-names = "pmx_fm_active","pmx_fm_suspend"; + pinctrl-0 = <&fm_int_active &fm_status_int_active + &fm_rst_active>; + pinctrl-1 = <&fm_int_suspend &fm_status_int_suspend + &fm_rst_suspend>; + silabs,reset-gpio = <&tlmm 39 0>; + silabs,int-gpio = <&tlmm 38 0>; + silabs,status-gpio = <&tlmm 78 0>; + #address-cells = <0>; + interrupts = <0 1>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = < + 0 &tlmm 38 2 + 1 &tlmm 78 1 + >; + interrupt-names = "silabs_fm_int", "silabs_fm_status_int"; + }; +}; + +&i2c_8 { /* BLSP2 QUP2 */ + nq@28 { + compatible = "qcom,nq-nci"; + reg = <0x28>; + qcom,nq-irq = <&tlmm 9 0x00>; + qcom,nq-ven = <&tlmm 12 0x00>; + qcom,nq-firm = <&pm8994_gpios 7 0x00>; + qcom,nq-clkreq = <&pm8994_gpios 10 0x00>; + interrupt-parent = <&tlmm>; + qcom,clk-src = "BBCLK2"; + interrupts = <9 0>; + interrupt-names = "nfc_irq"; + pinctrl-names = "nfc_active", "nfc_suspend"; + pinctrl-0 = <&nfc_int_active &nfc_disable_active>; + pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>; + clocks = <&clock_gcc clk_bb_clk2_pin>; + clock-names = "ref_clk"; + }; +}; + +&usb3 { + vdda33-supply = <&pm8994_l24>; + vdda18-supply = <&pm8994_l12>; +}; + +&dsi_dual_jdi_video { + /delete-property/ pwms; + /delete-property/ qcom,5v-boost-gpio; +}; + +&dsi_dual_jdi_cmd { + /delete-property/ pwms; + /delete-property/ qcom,5v-boost-gpio; +}; + +&dsi_dual_jdi_4k_nofbc_video { + /delete-property/ pwms; +}; + +&soc { + sound-9335 { + /delete-property/ qcom,hph-en1-gpio; + }; +}; + +/delete-node/ &led_flash0; + +&mdss_dsi0 { + /delete-property/ lab-supply; + /delete-property/ ibb-supply; +}; + +&mdss_dsi1 { + /delete-property/ lab-supply; + /delete-property/ ibb-supply; +}; + +&usb3 { + /delete-property/ vbus_dwc3-supply; +}; + +&cci { + qcom,camera@0 { + /delete-property/ qcom,led-flash-src; + }; + + qcom,camera@1 { + /delete-property/ cam_vana-supply; + }; +}; + +&usb_otg_switch { + /delete-property/ gpio; + /delete-property/ vin-supply; +}; + +&wsa881x_211 { + status = "disabled"; + /delete-property/ qcom,spkr-sd-n-gpio; +}; + +&wsa881x_212 { + status = "disabled"; + /delete-property/ qcom,spkr-sd-n-gpio; +}; + +&wsa881x_213 { + status = "disabled"; + /delete-property/ qcom,spkr-sd-n-gpio; +}; + +&wsa881x_214 { + status = "disabled"; + /delete-property/ qcom,spkr-sd-n-gpio; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-mtp.dtsi b/arch/arm64/boot/dts/qcom/msm8996-mtp.dtsi new file mode 100644 index 000000000000..2e2f525d0a67 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-mtp.dtsi @@ -0,0 +1,888 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8996-pinctrl.dtsi" +#include "msm8996-camera-sensor-mtp.dtsi" +#include "msm8996-wsa881x.dtsi" + +/ { + bluetooth: bt_qca6174 { + compatible = "qca,qca6174"; + qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ + qca,bt-vdd-core-supply = <&pm8994_s3>; + qca,bt-vdd-pa-supply = <&rome_vreg>; + qca,bt-vdd-io-supply = <&pm8994_s4>; + qca,bt-vdd-xtal-supply = <&pm8994_l30>; + qca,bt-chip-pwd-voltage-level = <1300000 1300000>; + qca,bt-vdd-io-voltage-level = <1800000 1800000>; + qca,bt-vdd-xtal-voltage-level = <1800000 1800000>; + }; +}; + +&ufs_ice { + status = "ok"; +}; + +&sdcc1_ice { + status = "ok"; +}; + +&ufsphy1 { + status = "ok"; +}; + +&ufs1 { + status = "ok"; +}; + +&uartblsp2dm1 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; + +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <110 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 96000000 192000000 384000000>; + qcom,ice-clk-rates = <300000000 150000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + cd-gpios = <&tlmm 95 0x1>; + + status = "ok"; +}; + +&pm8994_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8994_adc_tm { + chan@73 { + label = "msm_therm"; + reg = <0x73>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@74 { + label = "emmc_therm"; + reg = <0x74>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + qcom,thermal-node; + }; + + chan@75 { + label = "pa_therm0"; + reg = <0x75>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x70>; + qcom,thermal-node; + }; + + chan@77 { + label = "pa_therm1"; + reg = <0x77>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x78>; + qcom,thermal-node; + }; + + chan@78 { + label = "quiet_therm"; + reg = <0x78>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x80>; + qcom,thermal-node; + }; + + chan@7c { + label = "xo_therm_buf"; + reg = <0x7c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x88>; + qcom,thermal-node; + }; +}; + +&mdss_hdmi_tx { + pinctrl-names = "hdmi_hpd_active", "hdmi_ddc_active", "hdmi_cec_active", + "hdmi_active", "hdmi_sleep"; + pinctrl-0 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; + pinctrl-1 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_suspend>; + pinctrl-2 = <&mdss_hdmi_hpd_active &mdss_hdmi_cec_active + &mdss_hdmi_ddc_suspend>; + pinctrl-3 = <&mdss_hdmi_hpd_active &mdss_hdmi_ddc_active + &mdss_hdmi_cec_active>; + pinctrl-4 = <&mdss_hdmi_hpd_suspend &mdss_hdmi_ddc_suspend + &mdss_hdmi_cec_suspend>; +}; + +&pmi8994_vadc { + chan@0 { + label = "usbin"; + reg = <0>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@1 { + label = "dcin"; + reg = <1>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <4>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@43 { + label = "usb_dp"; + reg = <0x43>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@44 { + label = "usb_dm"; + reg = <0x44>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; +}; + +#include "msm8996-mdss-panels.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "split_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + qcom,platform-te-gpio = <&tlmm 10 0>; + qcom,platform-reset-gpio = <&tlmm 8 0>; + qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>; +}; + +&mdss_dsi1 { + qcom,dsi-pref-prim-pan = <&dsi_dual_sharp_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + qcom,platform-te-gpio = <&tlmm 10 0>; + qcom,platform-reset-gpio = <&tlmm 8 0>; + qcom,platform-bklight-en-gpio = <&pm8994_gpios 14 0>; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&dsi_dual_sharp_video { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_nt35597_video { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_nt35597_cmd { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,partial-update-enabled; + qcom,panel-roi-alignment = <720 128 720 64 720 64>; +}; + +&dsi_nt35597_dsc_video { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_nt35597_dsc_cmd { + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_jdi_video { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,5v-boost-gpio = <&pmi8994_gpios 8 0>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_dual_jdi_cmd { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,5v-boost-gpio = <&pmi8994_gpios 8 0>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,partial-update-enabled; + qcom,panel-roi-alignment = <4 4 2 2 20 20>; +}; + +&dsi_dual_jdi_4k_nofbc_video { + pwms = <&pmi8994_pwm_4 0 0>; + pwm-names = "backlight"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-bl-pwm-pmi; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +/{ + mtp_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + #include "batterydata-itech-3000mah.dtsi" + }; +}; + +&pmi8994_charger { + qcom,dc-psy-type = "Wipower"; + qcom,dcin-vadc = <&pmi8994_vadc>; + qcom,wipower-default-ilim-map = <4000000 20000000 550 700 300>; + qcom,wipower-pt-ilim-map = <4000000 7140000 550 700 300>, + <7140000 8140000 550 700 300>, + <8140000 9140000 500 700 300>, + <9140000 9950000 500 700 300>; + qcom,wipower-div2-ilim-map = <4000000 4820000 550 700 300>, + <4820000 5820000 550 700 300>, + <5820000 6820000 550 650 650>, + <6820000 7820000 550 700 600>, + <7820000 8500000 550 700 550>; +}; + +&i2c_7 { + smb1351-charger@1d { + compatible = "qcom,smb1351-charger"; + reg = <0x1d>; + qcom,parallel-charger; + qcom,float-voltage-mv = <4400>; + qcom,recharge-mv = <100>; + }; +}; + +&pmi8994_fg { + qcom,battery-data = <&mtp_batterydata>; + qcom,ext-sense-type; +}; + +&usb_otg_switch { + status = "okay"; +}; + +&pm8994_mpps { + mpp@a100 { /* MPP 2 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + mpp@a300 { /* MPP 4 */ + /* HDMI_5v_vreg regulator enable */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; + status = "okay"; + }; +}; + +&pmi8994_gpios { + gpio@c400 { /* GPIO 5 - USB3 OTG SWITCH EN */ + qcom,mode = <1>; /* Digital output */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,master-en = <1>; /* Enable GPIO */ + qcom,invert = <0>; /* Output low initially */ + status = "okay"; + }; +}; + +&pmi8994_gpios { + gpio@c700 { /* GPIO 8, lcd_reg_en, 5V boost */ + qcom,mode = <1>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + qcom,invert = <1>; /* need invert = 0 */ + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@c100 { /* GPIO 2 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c200 { /* GPIO 3 SPKR_SD_N */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,pull = <5>; /* No Pull */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + + gpio@c900 { /* GPIO 10 - HPH_EN1 */ + qcom,mode = <1>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; +}; + +&pmi8994_pwm_4 { + qcom,channel-owner = "lcd_bl"; + qcom,lpg-dtest-line = <4>; + qcom,dtest-output = <1>; + status = "okay"; +}; + +&pmi8994_mpps { + mpp@a000 { /* MPP 1 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <7>; /* DTEST4 */ + qcom,master-en = <1>; /* Enable MPP */ + status = "okay"; + }; + + mpp@a300 { /* MPP 4 */ + /* WLED FET */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,vin-sel = <0>; /* VIN0 */ + qcom,master-en = <1>; + status = "okay"; + }; +}; + +&soc { + i2c@75ba000 { + synaptics@20 { + compatible = "synaptics,dsx"; + reg = <0x20>; + interrupt-parent = <&tlmm>; + interrupts = <125 0x2008>; + vdd-supply = <&pm8994_l14>; + avdd-supply = <&pm8994_l22>; + pinctrl-names = "pmx_ts_active", "pmx_ts_suspend"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_suspend>; + synaptics,display-coords = <0 0 1599 2559>; + synaptics,panel-coords = <0 0 1599 2703>; + synaptics,reset-gpio = <&tlmm 89 0x00>; + synaptics,irq-gpio = <&tlmm 125 0x2008>; + synaptics,disable-gpios; + synaptics,fw-name = "PR1702898-s3528t_00350002.img"; + /* Underlying clocks used by secure touch */ + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup6_i2c_apps_clk>; + }; + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "synaptics_dsx"; + qcom,disp-maxx = <1599>; + qcom,disp-maxy = <2559>; + qcom,panel-maxx = <1599>; + qcom,panel-maxy = <2703>; + qcom,key-codes = <158 139 102 217>; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + + vol_up { + label = "volume_up"; + gpios = <&pm8994_gpios 2 0x1>; + linux,input-type = <1>; + linux,code = <115>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_snapshot { + label = "cam_snapshot"; + gpios = <&pm8994_gpios 4 0x1>; + linux,input-type = <1>; + linux,code = <766>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + + cam_focus { + label = "cam_focus"; + gpios = <&pm8994_gpios 5 0x1>; + linux,input-type = <1>; + linux,code = <528>; + gpio-key,wakeup; + debounce-interval = <15>; + }; + }; + + sound-9335 { + qcom,model = "msm8996-tasha-mtp-snd-card"; + + qcom,audio-routing = + "AIF4 VI", "MCLK", + "RX_BIAS", "MCLK", + "MADINPUT", "MCLK", + "hifi amp", "LINEOUT1", + "hifi amp", "LINEOUT2", + "AMIC2", "MIC BIAS2", + "MIC BIAS2", "Headset Mic", + "AMIC3", "MIC BIAS2", + "MIC BIAS2", "ANCRight Headset Mic", + "AMIC4", "MIC BIAS2", + "MIC BIAS2", "ANCLeft Headset Mic", + "AMIC5", "MIC BIAS3", + "MIC BIAS3", "Handset Mic", + "AMIC6", "MIC BIAS4", + "MIC BIAS4", "Analog Mic6", + "DMIC0", "MIC BIAS1", + "MIC BIAS1", "Digital Mic0", + "DMIC1", "MIC BIAS1", + "MIC BIAS1", "Digital Mic1", + "DMIC2", "MIC BIAS3", + "MIC BIAS3", "Digital Mic2", + "DMIC3", "MIC BIAS3", + "MIC BIAS3", "Digital Mic3", + "DMIC4", "MIC BIAS4", + "MIC BIAS4", "Digital Mic4", + "DMIC5", "MIC BIAS4", + "MIC BIAS4", "Digital Mic5", + "SpkrLeft IN", "SPK1 OUT", + "SpkrRight IN", "SPK2 OUT"; + + qcom,hdmi-audio-rx; + asoc-codec = <&stub_codec>, <&hdmi_audio>; + asoc-codec-names = "msm-stub-codec.1", "msm-hdmi-audio-codec-rx"; + qcom,hph-en1-gpio = <&pmi8994_gpios 10 0>; + qcom,hph-en0-gpio = <&pm8994_gpios 13 0>; + qcom,us-euro-gpios = <&pm8994_mpps 2 0>; + qcom,wsa-max-devs = <2>; + qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>, + <&wsa881x_213>, <&wsa881x_214>; + qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight", + "SpkrLeft", "SpkrRight"; + }; +}; + +&pm8994_gpios { + gpio@c600 { /* GPIO 7 - NFC DWL REQ */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <3>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@c700 { /* GPIO 8 - WLAN_EN */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c800 { /* GPIO 9 - Rome 3.3V control */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* MOS logic */ + qcom,invert = <1>; /* Output high */ + qcom,vin-sel = <0>; /* VPH_PWR */ + qcom,src-sel = <0>; /* Constant */ + qcom,out-strength = <1>; /* High drive strength */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@c900 { /* GPIO 10 - NFC CLK _REQ*/ + qcom,mode = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@cd00 { /* GPIO 14 - lcd_bklt_reg_en */ + qcom,mode = <1>; /* DIGITAL OUT */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <1>; /* output hight initially */ + qcom,vin-sel = <2>; /* 1.8 */ + qcom,src-sel = <0>; /* CONSTANT */ + qcom,out-strength = <1>; /* Low drive strength */ + qcom,master-en = <1>; /* ENABLE GPIO */ + status = "okay"; + }; + gpio@c100 { /* GPIO 2 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c300 { /* GPIO 4 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@c400 { /* GPIO 5 */ + qcom,mode = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,src-sel = <0>; + status = "okay"; + }; + + gpio@cc00 { /* GPIO 13 - HPH_EN0 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@ce00 { /* GPIO 15 */ + qcom,mode = <1>; + qcom,output-type = <0>; + qcom,pull = <5>; + qcom,vin-sel = <2>; + qcom,out-strength = <1>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + status = "okay"; + }; + + gpio@d100 { /* GPIO 18 - Rome Sleep Clock */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,invert = <0>; /* Output low initially */ + qcom,vin-sel = <2>; /* VIN 2 */ + qcom,src-sel = <3>; /* Function 2 */ + qcom,out-strength = <2>; /* Medium */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; + + gpio@d200 { /* GPIO 19 - Rome BT Reset */ + qcom,mode = <1>; /* Digital output*/ + qcom,pull = <4>; /* Pulldown 10uA */ + qcom,vin-sel = <2>; /* VIN2 */ + qcom,src-sel = <0>; /* GPIO */ + qcom,invert = <0>; /* Invert */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&pmi8994_haptics { + status = "okay"; +}; + +&flash_led { + qcom,follow-otst2-rb-disabled; +}; + +&blsp1_uart2 { + status = "ok"; +}; + +&i2c_6 { + at24@51 { + compatible = "atmel,24c32"; + reg = <0x51>; + }; +}; + +&i2c_7 { + silabs4705@11 { /* SiLabs FM chip, slave id 0x11*/ + status = "ok"; + compatible = "silabs,si4705"; + reg = <0x11>; + vdd-supply = <&pm8994_s4>; + silabs,vdd-supply-voltage = <1800000 1800000>; + va-supply = <&rome_vreg>; + silabs,va-supply-voltage = <3300000 3300000>; + pinctrl-names = "pmx_fm_active","pmx_fm_suspend"; + pinctrl-0 = <&fm_int_active &fm_status_int_active &fm_rst_active>; + pinctrl-1 = <&fm_int_suspend &fm_status_int_suspend &fm_rst_suspend>; + silabs,reset-gpio = <&tlmm 39 0>; + silabs,int-gpio = <&tlmm 38 0>; + silabs,status-gpio = <&tlmm 78 0>; + #address-cells = <0>; + interrupts = <0 1>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = < + 0 &tlmm 38 2 + 1 &tlmm 78 1 + >; + interrupt-names = "silabs_fm_int", "silabs_fm_status_int"; + }; +}; + +&i2c_8 { /* BLSP2 QUP2 */ + nq@28 { + compatible = "qcom,nq-nci"; + reg = <0x28>; + qcom,nq-irq = <&tlmm 9 0x00>; + qcom,nq-ven = <&tlmm 12 0x00>; + qcom,nq-firm = <&pm8994_gpios 7 0x00>; + qcom,nq-clkreq = <&pm8994_gpios 10 0x00>; + interrupt-parent = <&tlmm>; + qcom,clk-src = "BBCLK2"; + interrupts = <9 0>; + interrupt-names = "nfc_irq"; + pinctrl-names = "nfc_active", "nfc_suspend"; + pinctrl-0 = <&nfc_int_active &nfc_disable_active>; + pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>; + clocks = <&clock_gcc clk_bb_clk2_pin>; + clock-names = "ref_clk"; + }; +}; + +&wil6210 { + status = "ok"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-pinctrl.dtsi b/arch/arm64/boot/dts/qcom/msm8996-pinctrl.dtsi new file mode 100644 index 000000000000..421c98ac904e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-pinctrl.dtsi @@ -0,0 +1,2433 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + tlmm: pinctrl@01010000 { + compatible = "qcom,msm8996-pinctrl"; + reg = <0x01010000 0x300000>; + interrupts = <0 208 0>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + + /* add pingrp for adv7533 */ + pmx_adv7533: pmx_adv7533 { + adv7533_0_int_active: adv7533_0_int_active { + mux { + pins = "gpio106"; + function = "gpio"; + }; + + config { + pins = "gpio106"; + drive-strength = <16>; /* 16 mA */ + bias-pull-down; /* pull down */ + }; + }; + + adv7533_0_int_suspend: adv7533_0_int_suspend { + mux { + pins = "gpio106"; + function = "gpio"; + }; + + config { + pins = "gpio106"; + drive-strength = <16>; /* 16 mA */ + bias-pull-down; /* pull down */ + }; + }; + + adv7533_0_hpd_int_active: adv7533_0_hpd_int_active { + mux { + pins = "gpio104"; + function = "gpio"; + }; + + config { + pins = "gpio104"; + drive-strength = <16>; /* 16 mA */ + bias-pull-down; /* pull down */ + }; + }; + + adv7533_0_hpd_int_suspend: adv7533_0_hpd_int_suspend { + mux { + pins = "gpio104"; + function = "gpio"; + }; + + config { + pins = "gpio104"; + drive-strength = <16>; /* 16 mA */ + bias-pull-down; /* pull down */ + }; + }; + + adv7533_0_switch_active: adv7533_0_switch_active { + mux { + pins = "gpio105"; + function = "gpio"; + bias-pull-down; /* pull down */ + }; + + config { + pins = "gpio105"; + drive-strength = <16>; /* 16 mA */ + bias-pull-down; /* pull down */ + }; + }; + + adv7533_0_switch_suspend: adv7533_0_switch_suspend { + mux { + pins = "gpio105"; + function = "gpio"; + }; + + config { + pins = "gpio105"; + drive-strength = <16>; /* 16 mA */ + }; + }; + adv7533_1_int_active: adv7533_1_int_active { + mux { + pins = "gpio108"; + function = "gpio"; + }; + + config { + pins = "gpio108"; + drive-strength = <16>; /* 16 mA */ + bias-pull-down; /* pull down */ + }; + }; + + adv7533_1_int_suspend: adv7533_1_int_suspend { + mux { + pins = "gpio108"; + function = "gpio"; + }; + + config { + pins = "gpio108"; + drive-strength = <16>; /* 16 mA */ + bias-pull-down; /* pull down */ + }; + }; + + adv7533_1_hpd_int_active: adv7533_1_hpd_int_active { + mux { + pins = "gpio103"; + function = "gpio"; + }; + + config { + pins = "gpio103"; + drive-strength = <16>; /* 16 mA */ + bias-pull-down; /* pull down */ + }; + }; + + adv7533_1_hpd_int_suspend: adv7533_1_hpd_int_suspend { + mux { + pins = "gpio103"; + function = "gpio"; + }; + + config { + pins = "gpio103"; + drive-strength = <16>; /* 16 mA */ + bias-pull-down; /* pull down */ + }; + }; + + adv7533_1_switch_active: adv7533_1_switch_active { + mux { + pins = "gpio107"; + function = "gpio"; + bias-pull-down; /* pull down */ + }; + + config { + pins = "gpio107"; + drive-strength = <16>; /* 16 mA */ + bias-pull-down; /* pull down */ + }; + }; + + adv7533_1_switch_suspend: adv7533_1_switch_suspend { + mux { + pins = "gpio107"; + function = "gpio"; + }; + + config { + pins = "gpio107"; + drive-strength = <16>; /* 16 mA */ + }; + }; + }; + + uart_console_active: uart_console_active { + mux { + pins = "gpio4", "gpio5"; + function = "blsp_uart8"; + }; + + config { + pins = "gpio4", "gpio5"; + drive-strength = <2>; + bias-disable; + }; + }; + + blsp1_uart2_active: blsp1_uart2_active { + mux { + pins = "gpio41", "gpio42", "gpio43", "gpio44"; + function = "blsp_uart2"; + }; + + config { + pins = "gpio41", "gpio42", "gpio43", "gpio44"; + drive-strength = <2>; + bias-disable; + }; + }; + + blsp1_uart2_sleep: blsp1_uart2_sleep { + mux { + pins = "gpio41", "gpio42", "gpio43", "gpio44"; + function = "gpio"; + }; + + config { + pins = "gpio41", "gpio42", "gpio43", "gpio44"; + drive-strength = <2>; + bias-disable; + }; + }; + + pmx_mdss: pmx_mdss { + mdss_dsi_active: mdss_dsi_active { + mux { + pins = "gpio8"; + function = "gpio"; + }; + + pmx_mdss { + pins = "gpio8"; + drive-strength = <8>; /* 8 mA */ + bias-disable = <0>; /* no pull */ + output-high; + }; + }; + mdss_dsi_suspend: mdss_dsi_suspend { + mux { + pins = "gpio8"; + function = "gpio"; + }; + + config { + pins = "gpio8"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + }; + + mdss_te_active: mdss_te_active { + mux { + pins = "gpio10"; + function = "mdp_vsync"; + }; + config { + pins = "gpio10"; + drive-strength = <2>; /* 8 mA */ + bias-pull-down; /* pull down*/ + }; + }; + + + mdss_te_suspend: mdss_te_suspend { + mux { + pins = "gpio10"; + function = "mdp_vsync"; + }; + config { + pins = "gpio10"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + + mdss_disp_bkl_active: mdss_disp_bkl_active { + config { + pins = "gpio135"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* no pull */ + output-high; + }; + }; + + mdss_disp_bkl_suspend: mdss_disp_bkl_suspend { + config { + pins = "gpio135"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + + mdss_hdmi_hpd_active: mdss_hdmi_hpd_active { + mux { + pins = "gpio34"; + function = "hdmi_hot"; + }; + + config { + pins = "gpio34"; + bias-pull-down; + drive-strength = <16>; + }; + }; + + mdss_hdmi_hpd_suspend: mdss_hdmi_hpd_suspend { + mux { + pins = "gpio34"; + function = "hdmi_hot"; + }; + + config { + pins = "gpio34"; + bias-pull-down; + drive-strength = <2>; + }; + }; + + mdss_hdmi_ddc_active: mdss_hdmi_ddc_active { + mux { + pins = "gpio32", "gpio33"; + function = "hdmi_ddc"; + }; + + config { + pins = "gpio32", "gpio33"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + mdss_hdmi_ddc_suspend: mdss_hdmi_ddc_suspend { + mux { + pins = "gpio32", "gpio33"; + function = "hdmi_ddc"; + }; + + config { + pins = "gpio32", "gpio33"; + drive-strength = <2>; + bias-pull-down; + }; + }; + + mdss_hdmi_cec_active: mdss_hdmi_cec_active { + mux { + pins = "gpio31"; + function = "hdmi_cec"; + }; + + config { + pins = "gpio31"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + mdss_hdmi_cec_suspend: mdss_hdmi_cec_suspend { + mux { + pins = "gpio31"; + function = "hdmi_cec"; + }; + + config { + pins = "gpio31"; + drive-strength = <2>; + bias-pull-down; + }; + }; + + usb_hub_reset_active: usb_hub_reset_active { + usb_hub_reset_active { + pins = "gpio103"; + drive-strength = <8>; /* 8 mA */ + bias-pull-up; /* pull up */ + output-high; + }; + }; + + usb_hub_reset_suspend: usb_hub_reset_suspend { + usb_hub_reset_suspend { + pins = "gpio103"; + drive-strength = <2>; /* 2 mA */ + bias-disable= <0>; /* no pull */ + }; + }; + + + gp_switch_active: gp_switch_active { + gp_switch_active { + pins = "gpio127"; + drive-strength = <8>; /* 8 mA */ + bias-pull-up; /* pull up */ + output-low; + }; + }; + + gp_switch_suspend: gp_switch_suspend { + gp_switch_suspend { + pins = "gpio127"; + drive-strength = <2>; /* 2 mA */ + bias-disable= <0>; /* no pull */ + }; + }; + + + 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"; + bias-disable; /* NO pull */ + drive-strength = <16>; /* 16 MA */ + }; + }; + + 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: sdc2_cd_on { + mux { + pins = "gpio95"; + function = "gpio"; + }; + + config { + pins = "gpio95"; + bias-pull-up; /* pull up */ + drive-strength = <16>; /* 16 MA */ + }; + }; + + sdc2_cd_off: sdc2_cd_off { + mux { + pins = "gpio95"; + function = "gpio"; + }; + + config { + pins = "gpio95"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc2_cd_on_sbc: sdc2_cd_on_sbc { + mux { + pins = "gpio38"; + function = "gpio"; + }; + + config { + pins = "gpio38"; + bias-pull-up; /* pull up */ + drive-strength = <16>; /* 16 MA */ + }; + }; + + sdc2_cd_off_sbc: sdc2_cd_off_sbc { + mux { + pins = "gpio38"; + function = "gpio"; + }; + + config { + pins = "gpio38"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + ts_mux { + ts_active: ts_active { + mux { + pins = "gpio89", "gpio125"; + function = "gpio"; + }; + + config { + pins = "gpio89", "gpio125"; + drive-strength = <16>; + bias-pull-up; + }; + }; + + ts_suspend: ts_suspend { + mux { + pins = "gpio89", "gpio125"; + function = "gpio"; + }; + + config { + pins = "gpio89", "gpio125"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + ts_mux_sbc { + ts_active_sbc: ts_active_sbc { + mux { + pins = "gpio29", "gpio125"; + function = "gpio"; + }; + + config_sbc { + pins = "gpio29", "gpio125"; + drive-strength = <16>; + bias-pull-up; + }; + }; + + ts_suspend_sbc: ts_suspend_sbc { + mux { + pins = "gpio29", "gpio125"; + function = "gpio"; + }; + + config { + pins = "gpio29", "gpio125"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + i2c_12 { + i2c_12_active: i2c_12_active { + mux { + pins = "gpio87", "gpio88"; + function = "blsp_i2c12"; + }; + + config { + pins = "gpio87", "gpio88"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_12_sleep: i2c_12_sleep { + mux { + pins = "gpio87", "gpio88"; + function = "blsp_i2c12"; + }; + + config { + pins = "gpio87", "gpio88"; + drive-strength = <2>; + bias-pull-up; + }; + }; + }; + + i2c_6 { + i2c_6_active: i2c_6_active { + mux { + pins = "gpio27", "gpio28"; + function = "blsp_i2c6"; + }; + + config { + pins = "gpio27", "gpio28"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_6_sleep: i2c_6_sleep { + mux { + pins = "gpio27", "gpio28"; + function = "blsp_i2c6"; + }; + + config { + pins = "gpio27", "gpio28"; + drive-strength = <2>; + bias-pull-up; + }; + }; + }; + + i2c_7 { + i2c_7_active: i2c_7_active { + mux { + pins = "gpio55", "gpio56"; + function = "blsp_i2c7"; + }; + + config { + pins = "gpio55", "gpio56"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_7_sleep: i2c_7_sleep { + mux { + pins = "gpio55", "gpio56"; + function = "blsp_i2c7"; + }; + + config { + pins = "gpio55", "gpio56"; + drive-strength = <2>; + bias-pull-up; + }; + }; + }; + + i2c_8 { + i2c_8_active: i2c_8_active { + mux { + pins = "gpio6", "gpio7"; + function = "blsp_i2c8"; + }; + + config { + pins = "gpio6", "gpio7"; + drive-strength = <4>; + bias-disable; + }; + }; + + i2c_8_sleep: i2c_8_sleep { + mux { + pins = "gpio6", "gpio7"; + function = "blsp_i2c8"; + }; + + config { + pins = "gpio6", "gpio7"; + drive-strength = <4>; + bias-pull-up; + }; + }; + }; + + pmx_fm_int { + fm_int_active: fm_int_active { + mux { + pins = "gpio38"; + function = "gpio"; + }; + + config { + pins = "gpio38"; + drive-strength = <16>; + bias-pull-up; + }; + }; + + fm_int_suspend: fm_int_suspend { + mux { + pins = "gpio38"; + function = "gpio"; + }; + + config { + pins = "gpio38"; + drive-strength = <16>; + bias-pull-up; + }; + }; + }; + + pmx_fm_status { + fm_status_int_active: fm_status_int_active { + mux { + pins = "gpio78"; + function = "gpio"; + }; + + config { + pins = "gpio78"; + drive-strength = <16>; + bias-pull-up; + }; + }; + + fm_status_int_suspend: fm_status_int_suspend { + mux { + pins = "gpio78"; + function = "gpio"; + }; + + config { + pins = "gpio78"; + drive-strength = <16>; + bias-pull-up; + }; + }; + }; + + pmx_fm_rst { + fm_rst_active: fm_rst_active { + mux { + pins = "gpio39"; + function = "gpio"; + }; + + config { + pins = "gpio39"; + drive-strength = <16>; + bias-pull-down; + }; + }; + + fm_rst_suspend: fm_rst_suspend { + mux { + pins = "gpio39"; + function = "gpio"; + }; + + config { + pins = "gpio39"; + drive-strength = <16>; + bias-pull-down; + }; + }; + }; + + pmx_rd_nfc_int { + nfc_int_active: active { + mux { + pins = "gpio9"; + function = "gpio"; + }; + + config { + pins = "gpio9"; + drive-strength = <6>; + bias-pull-up; + }; + }; + + nfc_int_suspend: suspend { + mux { + pins = "gpio9"; + function = "gpio"; + }; + + config { + pins = "gpio9"; + drive-strength = <6>; + bias-pull-up; + }; + }; + }; + + pmx_nfc_reset { + nfc_disable_active: active { + mux { + pins = "gpio12"; + function = "gpio"; + }; + + config { + pins = "gpio12"; + drive-strength = <6>; + bias-pull-up; + }; + }; + + nfc_disable_suspend: suspend { + mux { + pins = "gpio12"; + function = "gpio"; + }; + + config { + pins = "gpio12"; + drive-strength = <6>; + bias-disable; + }; + }; + }; + + spi_0 { + spi_0_active: spi_0_active { + mux { + pins = "gpio0", "gpio1", + "gpio2", "gpio3"; + function = "blsp_spi1"; + }; + + config { + pins = "gpio0", "gpio1", + "gpio2", "gpio3"; + drive-strength = <6>; + bias-disable; + }; + }; + + spi_0_sleep: spi_0_sleep { + mux { + pins = "gpio0", "gpio1", + "gpio2", "gpio3"; + function = "blsp_spi1"; + }; + + config { + pins = "gpio0", "gpio1", + "gpio2", "gpio3"; + drive-strength = <6>; + bias-disable; + }; + }; + }; + + spi_0_cs { + spi_0_cs_active: spi_0_cs_active { + mux { + pins = "gpio24", "gpio90"; + function = "blsp1_spi"; + }; + + config { + pins = "gpio24", "gpio90"; + drive-strength = <6>; + bias-pull-up; + }; + }; + + spi_0_cs_sleep: spi_0_cs_sleep { + mux { + pins = "gpio24", "gpio90"; + function = "blsp1_spi"; + }; + + config { + pins = "gpio24", "gpio90"; + drive-strength = <6>; + bias-pull-up; + }; + }; + }; + + pcie0 { + pcie0_clkreq_default: pcie0_clkreq_default { + mux { + pins = "gpio36"; + function = "pci_e0"; + }; + + config { + pins = "gpio36"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + pcie0_perst_default: pcie0_perst_default { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + drive-strength = <2>; + bias-pull-down; + }; + }; + + pcie0_wake_default: pcie0_wake_default { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + pcie0_clkreq_sleep: pcie0_clkreq_sleep { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + drive-strength = <2>; + bias-disable; + }; + }; + + pcie0_wake_sleep: pcie0_wake_sleep { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + pcie1 { + pcie1_clkreq_default: pcie1_clkreq_default { + mux { + pins = "gpio131"; + function = "pci_e1"; + }; + + config { + pins = "gpio131"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + pcie1_perst_default: pcie1_perst_default { + mux { + pins = "gpio130"; + function = "gpio"; + }; + + config { + pins = "gpio130"; + drive-strength = <2>; + bias-pull-down; + }; + }; + + pcie1_wake_default: pcie1_wake_default { + mux { + pins = "gpio132"; + function = "gpio"; + }; + + config { + pins = "gpio132"; + drive-strength = <2>; + bias-pull-down; + }; + }; + + pcie1_clkreq_sleep: pcie1_clkreq_sleep { + mux { + pins = "gpio131"; + function = "gpio"; + }; + + config { + pins = "gpio131"; + drive-strength = <2>; + bias-disable; + }; + }; + + pcie1_wake_sleep: pcie1_wake_sleep { + mux { + pins = "gpio132"; + function = "gpio"; + }; + + config { + pins = "gpio132"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + pcie2 { + pcie2_clkreq_default: pcie2_clkreq_default { + mux { + pins = "gpio115"; + function = "pci_e2"; + }; + + config { + pins = "gpio115"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + pcie2_perst_default: pcie2_perst_default { + mux { + pins = "gpio114"; + function = "gpio"; + }; + + config { + pins = "gpio114"; + drive-strength = <2>; + bias-pull-down; + }; + }; + + pcie2_wake_default: pcie2_wake_default { + mux { + pins = "gpio116"; + function = "gpio"; + }; + + config { + pins = "gpio116"; + drive-strength = <2>; + bias-pull-down; + }; + }; + + pcie2_clkreq_sleep: pcie2_clkreq_sleep { + mux { + pins = "gpio115"; + function = "gpio"; + }; + + config { + pins = "gpio115"; + drive-strength = <2>; + bias-disable; + }; + }; + + pcie2_wake_sleep: pcie2_wake_sleep { + mux { + pins = "gpio116"; + function = "gpio"; + }; + + config { + pins = "gpio116"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + pri_aux_pcm { + pri_aux_pcm_sleep: pri_aux_pcm_sleep { + mux { + pins = "gpio65", "gpio66"; + function = "pri_mi2s"; + }; + + config { + pins = "gpio65", "gpio66"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + pri_aux_pcm_active: pri_aux_pcm_active { + mux { + pins = "gpio65", "gpio66"; + function = "pri_mi2s"; + }; + + config { + pins = "gpio65", "gpio66"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + pri_aux_pcm_din { + pri_aux_pcm_din_sleep: pri_aux_pcm_din_sleep { + mux { + pins = "gpio67"; + function = "pri_mi2s"; + }; + + config { + pins = "gpio67"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + pri_aux_pcm_din_active: pri_aux_pcm_din_active { + mux { + pins = "gpio67"; + function = "pri_mi2s"; + }; + + config { + pins = "gpio67"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + }; + + pri_aux_pcm_dout { + pri_aux_pcm_dout_sleep: pri_aux_pcm_dout_sleep { + mux { + pins = "gpio68"; + function = "pri_mi2s"; + }; + + config { + pins = "gpio68"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + pri_aux_pcm_dout_active: pri_aux_pcm_dout_active { + mux { + pins = "gpio68"; + function = "pri_mi2s"; + }; + + config { + pins = "gpio68"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + }; + + spkr_i2s_clk_pin { + spkr_i2s_clk_sleep: spkr_i2s_clk_sleep { + mux { + pins = "gpio69"; + function = "spkr_i2s"; + }; + + config { + pins = "gpio69"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + spkr_i2s_clk_active: spkr_i2s_clk_active { + mux { + pins = "gpio69"; + function = "spkr_i2s"; + }; + + config { + pins = "gpio69"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + }; + + cnss_pins { + cnss_default: cnss_default { + mux { + pins = "gpio46"; + function = "gpio"; + }; + + config { + pins = "gpio46"; + drive-strength = <16>; + bias-pull-down; + }; + }; + }; + + tert_mi2s { + tert_mi2s_sleep: tert_mi2s_sleep { + mux { + pins = "gpio75", "gpio76"; + function = "ter_mi2s"; + }; + + config { + pins = "gpio75", "gpio76"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + tert_mi2s_active: tert_mi2s_active { + mux { + pins = "gpio75", "gpio76"; + function = "ter_mi2s"; + }; + + config { + pins = "gpio75", "gpio76"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + tert_mi2s_sd0 { + tert_mi2s_sd0_sleep: tert_mi2s_sd0_sleep { + mux { + pins = "gpio77"; + function = "ter_mi2s"; + }; + + config { + pins = "gpio77"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + tert_mi2s_sd0_active: tert_mi2s_sd0_active { + mux { + pins = "gpio77"; + function = "ter_mi2s"; + }; + + config { + pins = "gpio77"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + }; + + quat_mi2s { + quat_mi2s_sleep: quat_mi2s_sleep { + mux { + pins = "gpio58", "gpio59"; + function = "qua_mi2s"; + }; + + config { + pins = "gpio58", "gpio59"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + quat_mi2s_active: quat_mi2s_active { + mux { + pins = "gpio58", "gpio59"; + function = "qua_mi2s"; + }; + + config { + pins = "gpio58", "gpio59"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_mi2s_sd0 { + quat_mi2s_sd0_sleep: quat_mi2s_sd0_sleep { + mux { + pins = "gpio60"; + function = "qua_mi2s"; + }; + + config { + pins = "gpio60"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + quat_mi2s_sd0_active: quat_mi2s_sd0_active { + mux { + pins = "gpio60"; + function = "qua_mi2s"; + }; + + config { + pins = "gpio60"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + }; + + tert_tdm { + tert_tdm_sleep: tert_tdm_sleep { + mux { + pins = "gpio75", "gpio76"; + function = "ter_mi2s"; + }; + + config { + pins = "gpio75", "gpio76"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + tert_tdm_active: tert_tdm_active { + mux { + pins = "gpio75", "gpio76"; + function = "ter_mi2s"; + }; + + config { + pins = "gpio75", "gpio76"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + tert_tdm_din { + tert_tdm_din_sleep: tert_tdm_din_sleep { + mux { + pins = "gpio77"; + function = "ter_mi2s"; + }; + + config { + pins = "gpio77"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + tert_tdm_din_active: tert_tdm_din_active { + mux { + pins = "gpio77"; + function = "ter_mi2s"; + }; + + config { + pins = "gpio77"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + }; + + tert_tdm_dout { + tert_tdm_dout_sleep: tert_tdm_dout_sleep { + mux { + pins = "gpio78"; + function = "ter_mi2s"; + }; + + config { + pins = "gpio78"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + tert_tdm_dout_active: tert_tdm_dout_active { + mux { + pins = "gpio78"; + function = "ter_mi2s"; + }; + + config { + pins = "gpio78"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + }; + + quat_tdm { + quat_tdm_sleep: quat_tdm_sleep { + mux { + pins = "gpio58", "gpio59"; + function = "qua_mi2s"; + }; + + config { + pins = "gpio58", "gpio59"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + quat_tdm_active: quat_tdm_active { + mux { + pins = "gpio58", "gpio59"; + function = "qua_mi2s"; + }; + + config { + pins = "gpio58", "gpio59"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_tdm_din { + quat_tdm_din_sleep: quat_tdm_din_sleep { + mux { + pins = "gpio60"; + function = "qua_mi2s"; + }; + + config { + pins = "gpio60"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + quat_tdm_din_active: quat_tdm_din_active { + mux { + pins = "gpio60"; + function = "qua_mi2s"; + }; + + config { + pins = "gpio60"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + }; + + quat_tdm_dout { + quat_tdm_dout_sleep: quat_tdm_dout_sleep { + mux { + pins = "gpio61"; + function = "qua_mi2s"; + }; + + config { + pins = "gpio61"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + quat_tdm_dout_active: quat_tdm_dout_active { + mux { + pins = "gpio61"; + function = "qua_mi2s"; + }; + + config { + pins = "gpio61"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + }; + + cci0_active: cci0_active { + mux { + /* CLK, DATA */ + pins = "gpio17","gpio18"; // Only 2 + function = "cci_i2c"; + }; + + config { + pins = "gpio17","gpio18"; + bias-pull-up; /* PULL UP*/ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cci0_suspend: cci0_suspend { + mux { + /* CLK, DATA */ + pins = "gpio17","gpio18"; + function = "cci_i2c"; + }; + + config { + pins = "gpio17","gpio18"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cci1_active: cci1_active { + mux { + /* CLK, DATA */ + pins = "gpio19","gpio20"; + function = "cci_i2c"; + }; + + config { + pins = "gpio19","gpio20"; + bias-pull-up; /* PULL UP*/ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cci1_suspend: cci1_suspend { + mux { + /* CLK, DATA */ + pins = "gpio19","gpio20"; + function = "cci_i2c"; + }; + + config { + pins = "gpio19","gpio20"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + /* MCLK0 */ + mux { + /* CLK, DATA */ + pins = "gpio13"; + function = "cam_mclk"; + }; + + config { + pins = "gpio13"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + /* MCLK0 */ + mux { + /* CLK, DATA */ + pins = "gpio13"; + function = "cam_mclk"; + }; + + config { + pins = "gpio13"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_rear_active: cam_sensor_rear_active { + /* RESET, STANDBY */ + mux { + pins = "gpio30"; + function = "gpio"; + }; + + config { + pins = "gpio30","gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_rear_suspend: cam_sensor_rear_suspend{ + /* RESET, STANDBY */ + mux { + pins = "gpio30","gpio29"; + function = "gpio"; + }; + + config { + pins = "gpio30","gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_csi0_sensor_active: cam_csi0_sensor_active { + /* RESET, STANDBY */ + cam_rear_active_cfg { + pins = "gpio25","gpio26"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_csi0_sensor_suspend: cam_csi0_sensor_suspend{ + /* RESET, STANDBY */ + cam_rear_suspend_cfg { + pins = "gpio25","gpio26"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_csi2_sensor_active: cam_csi2_sensor_active { + /* RESET, STANDBY */ + cam_rear_active_cfg { + pins = "gpio23","gpio133"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_csi1_sensor_active: cam_csi1_sensor_active { + /* RESET, STANDBY */ + cam_rear_active_cfg { + pins = "gpio104","gpio98"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_csi1_sensor_suspend: cam_csi1_sensor_suspend { + /* RESET, STANDBY */ + cam_rear_suspend_cfg { + pins = "gpio104","gpio98"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_csi2_sensor_suspend: cam_csi2_sensor_suspend{ + /* RESET, STANDBY */ + cam_rear_suspend_cfg { + pins = "gpio23","gpio133"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active{ + /* MCLK1 */ + mux { + /* CLK, DATA */ + pins = "gpio14"; + function = "cam_mclk"; + }; + + config { + pins = "gpio14"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + /* MCLK1 */ + mux { + /* CLK, DATA */ + pins = "gpio14"; + function = "cam_mclk"; + }; + + config { + pins = "gpio14"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_rear2_active: cam_sensor_rear2_active { + /* RESET, STANDBY */ + mux { + pins = "gpio63","gpio62"; + function = "gpio"; + }; + + config { + pins = "gpio63","gpio62"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_rear2_sus { + cam_sensor_rear2_suspend: cam_sensor_rear2_suspend{ + /* RESET, STANDBY */ + mux { + pins = "gpio63","gpio62"; + function = "gpio"; + }; + + config { + pins = "gpio63","gpio62"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + /* MCLK1 */ + mux { + /* CLK, DATA */ + pins = "gpio15"; + function = "cam_mclk"; + }; + + config { + pins = "gpio15"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend{ + /* MCLK1 */ + mux { + /* CLK, DATA */ + pins = "gpio15"; + function = "cam_mclk"; + }; + + config { + pins = "gpio15"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_active: cam_sensor_front_active{ + /* RESET, STANDBY */ + mux { + pins = "gpio23","gpio26"; + function = "gpio"; + }; + + config { + pins = "gpio23","gpio26"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_suspend: cam_sensor_front_suspend{ + /* RESET, STANDBY */ + mux { + pins = "gpio23","gpio26"; + function = "gpio"; + }; + + config { + pins = "gpio23","gpio26"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + /* CoreSight */ + seta_1: seta_1 { + mux { + pins = "gpio27"; + function = "gpio"; + }; + + config { + pins = "gpio27"; + function = "qdss_tracectl_a"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_2: seta_2 { + mux { + pins = "gpio28"; + function = "qdss_tracectl_a"; + }; + + config { + pins = "gpio28"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_3: seta_3 { + mux { + pins = "gpio53"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio53"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_4: seta_4 { + mux { + pins = "gpio54"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio54"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_5: seta_5 { + mux { + pins = "gpio63"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio63"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_6: seta_6 { + mux { + pins = "gpio64"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio64"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_7: seta_7 { + mux { + pins = "gpio65"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio65"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_8: seta_8 { + mux { + pins = "gpio66"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio66"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_9: seta_9 { + mux { + pins = "gpio67"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio67"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_10: seta_10 { + mux { + pins = "gpio74"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio74"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_11: seta_11 { + mux { + pins = "gpio75"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio75"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_12: seta_12 { + mux { + pins = "gpio76"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio76"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_13: seta_13 { + mux { + pins = "gpio77"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio77"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_14: seta_14 { + mux { + pins = "gpio85"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio85"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_15: seta_15 { + mux { + pins = "gpio86"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio86"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_16: seta_16 { + mux { + pins = "gpio87"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio87"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_17: seta_17 { + mux { + pins = "gpio89"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio89"; + drive-strength = <16>; + bias-disable; + }; + }; + + seta_18: seta_18 { + mux { + pins = "gpio90"; + function = "qdss_tracedata_a"; + }; + + config { + pins = "gpio90"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_1: setb_1 { + mux { + pins = "gpio13"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio13"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_2: setb_2 { + mux { + pins = "gpio14"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio14"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_3: setb_3 { + mux { + pins = "gpio15"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio15"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_4: setb_4 { + mux { + pins = "gpio16"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio16"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_5: setb_5 { + mux { + pins = "gpio17"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio17"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_6: setb_6 { + mux { + pins = "gpio18"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio18"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_7: setb_7 { + mux { + pins = "gpio19"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio19"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_8: setb_8 { + mux { + pins = "gpio21"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio21"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_9: setb_9 { + mux { + pins = "gpio22"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio22"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_10: setb_10 { + mux { + pins = "gpio23"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio23"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_11: setb_11 { + mux { + pins = "gpio26"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio26"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_12: setb_12 { + mux { + pins = "gpio29"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio29"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_13: setb_13 { + mux { + pins = "gpio57"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio57"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_14: setb_14 { + mux { + pins = "gpio58"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio58"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_15: setb_15 { + mux { + pins = "gpio91"; + function = "qdss_traceclk_b"; + }; + + config { + pins = "gpio91"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_16: setb_16 { + mux { + pins = "gpio92"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio92"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_17: setb_17 { + mux { + pins = "gpio93"; + function = "qdss_tracedata_b"; + }; + + config { + pins = "gpio93"; + drive-strength = <16>; + bias-disable; + }; + }; + + setb_18: setb_18 { + mux { + pins = "gpio94"; + function = "qdss_tracectl_b"; + }; + + config { + pins = "gpio94"; + drive-strength = <16>; + bias-disable; + }; + }; + + trigout_a: trigout_a { + mux { + pins = "gpio25"; + function = "qdss_cti_trig_out_a"; + }; + + config { + pins = "gpio25"; + drive-strength = <2>; + bias-disable; + }; + }; + + tsif0_signals_active: tsif0_signals_active { + tsif1_clk { + pins = "gpio89"; /* TSIF0 CLK */ + function = "tsif1_clk"; + }; + tsif1_en { + pins = "gpio90"; /* TSIF0 Enable */ + function = "tsif1_en"; + }; + tsif1_data { + pins = "gpio91"; /* TSIF0 DATA */ + function = "tsif1_data"; + }; + signals_cfg { + pins = "gpio89", "gpio90", "gpio91"; + drive_strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + + /* sync signal is only used if configured to mode-2 */ + tsif0_sync_active: tsif0_sync_active { + tsif1_sync { + pins = "gpio39"; /* TSIF0 SYNC */ + function = "tsif1_sync"; + drive_strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + + tsif1_signals_active: tsif1_signals_active { + tsif2_clk { + pins = "gpio93"; /* TSIF1 CLK */ + function = "tsif2_clk"; + }; + tsif2_en { + pins = "gpio94"; /* TSIF1 Enable */ + function = "tsif2_en"; + }; + tsif2_data { + pins = "gpio95"; /* TSIF1 DATA */ + function = "tsif2_data"; + }; + signals_cfg { + pins = "gpio93", "gpio94", "gpio95"; + drive_strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + + /* sync signal is only used if configured to mode-2 */ + tsif1_sync_active: tsif1_sync_active { + tsif2_sync { + pins = "gpio96"; /* TSIF1 SYNC */ + function = "tsif2_sync"; + drive_strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + + ap2mdm { + ap2mdm_active: ap2mdm_active { + mux { + /* ap2mdm-status + * ap2mdm-errfatal + * ap2mdm-vddmin + */ + pins = "gpio107", "gpio109", "gpio111"; + function = "gpio"; + }; + + config { + pins = "gpio107", "gpio109", "gpio111"; + drive-strength = <16>; + bias-disable; + }; + }; + ap2mdm_sleep: ap2mdm_sleep { + mux { + /* ap2mdm-status + * ap2mdm-errfatal + * ap2mdm-vddmin + */ + pins = "gpio107", "gpio109", "gpio111"; + function = "gpio"; + }; + + config { + pins = "gpio107", "gpio109", "gpio111"; + drive-strength = <8>; + bias-disable; + }; + + }; + }; + + mdm2ap { + mdm2ap_active: mdm2ap_active { + mux { + /* mdm2ap-status + * mdm2ap-errfatal + * mdm2ap-vddmin + */ + pins = "gpio106", "gpio108", "gpio112"; + function = "gpio"; + }; + + config { + pins = "gpio106", "gpio108", "gpio112"; + drive-strength = <8>; + bias-disable; + }; + }; + mdm2ap_sleep: mdm2ap_sleep { + mux { + /* mdm2ap-status + * mdm2ap-errfatal + * mdm2ap-vddmin + */ + pins = "gpio106", "gpio108", "gpio112"; + function = "gpio"; + }; + + config { + pins = "gpio106", "gpio108", "gpio112"; + drive-strength = <8>; + bias-disable; + }; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-pm.dtsi b/arch/arm64/boot/dts/qcom/msm8996-pm.dtsi new file mode 100644 index 000000000000..964ee68096b8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-pm.dtsi @@ -0,0 +1,523 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <dt-bindings/interrupt-controller/arm-gic.h> + +&soc { + qcom,spm@9A10000 { + compatible = "qcom,spm-v2"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x9A10000 0x1000>; + qcom,name = "system-cbf"; /* CBF SAW */ + qcom,saw2-ver-reg = <0xFD0>; + qcom,cpu-vctl-list = <&CPU0 &CPU1 &CPU2 &CPU3>; + qcom,vctl-timeout-us = <50>; + qcom,vctl-port = <0x0>; + qcom,phase-port = <0x1>; + qcom,saw2-avs-ctl = <0x1100>; + qcom,pfm-port = <0x2>; + }; + + qcom,lpm-levels { + compatible = "qcom,lpm-levels"; + qcom,use-psci; + #address-cells = <1>; + #size-cells = <0>; + qcom,pm-cluster@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + label = "system"; + qcom,spm-device-names = "cbf", "l3"; + qcom,default-level = <0>; + qcom,psci-mode-shift = <8>; + qcom,psci-mode-mask = <0xff>; + + qcom,pm-cluster-level@0{ + reg = <0>; + label = "system-wfi"; + qcom,psci-mode = <0>; + qcom,latency-us = <100>; + qcom,ss-power = <725>; + qcom,energy-overhead = <85000>; + qcom,time-overhead = <120>; + }; + qcom,pm-cluster-level@1{ /* E3-M2 */ + reg = <1>; + label = "system-ret"; + qcom,spm-cbf-mode = "fpc"; + qcom,spm-l3-mode = "fpc"; + qcom,psci-mode = <0x23>; + qcom,latency-us = <350>; + qcom,ss-power = <530>; + qcom,energy-overhead = <160000>; + qcom,time-overhead = <550>; + qcom,min-child-idx = <1>; + }; + qcom,pm-cluster-level@2{ /* E4-M3 */ + reg = <1>; + label = "system-fpc"; + qcom,spm-cbf-mode = "fpc"; + qcom,spm-l3-mode = "fpc"; + qcom,psci-mode = <0x34>; + qcom,latency-us = <11000>; + qcom,ss-power = <120>; + qcom,energy-overhead = <280000>; + qcom,time-overhead = <3200>; + qcom,min-child-idx = <2>; + qcom,notify-rpm; + qcom,is-reset; + }; + + 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>; + qcom,psci-mode-shift = <4>; + qcom,psci-mode-mask = <0xf>; + + qcom,pm-cluster-level@0{ /* D1 */ + reg = <0>; + label = "pwr-l2-wfi"; + qcom,psci-mode = <1>; + qcom,latency-us = <40>; + qcom,ss-power = <740>; + qcom,energy-overhead = <65000>; + qcom,time-overhead = <85>; + }; + + qcom,pm-cluster-level@1{ /* D3 */ + reg = <1>; + label = "pwr-l2-gdhs"; + qcom,psci-mode = <3>; + qcom,latency-us = <90>; + qcom,ss-power = <660>; + qcom,energy-overhead = <135000>; + qcom,time-overhead = <180>; + qcom,min-child-idx = <1>; + }; + + qcom,pm-cluster-level@2{ /* D4 */ + reg = <2>; + label = "pwr-l2-fpc"; + qcom,psci-mode = <4>; + qcom,latency-us = <700>; + qcom,ss-power = <450>; + qcom,energy-overhead = <210000>; + qcom,time-overhead = <11500>; + qcom,min-child-idx = <1>; + qcom,is-reset; + }; + + qcom,pm-cpu { + #address-cells = <1>; + #size-cells = <0>; + qcom,psci-mode-shift = <0>; + qcom,psci-mode-mask = <0xf>; + + qcom,pm-cpu-level@0 { /* C1 */ + reg = <0>; + qcom,psci-cpu-mode = <1>; + qcom,spm-cpu-mode = "wfi"; + qcom,latency-us = <20>; + qcom,ss-power = <750>; + qcom,energy-overhead = <32000>; + qcom,time-overhead = <60>; + }; + + qcom,pm-cpu-level@1 { /* C4 */ + reg = <1>; + qcom,spm-cpu-mode = "fpc"; + qcom,psci-cpu-mode = <4>; + qcom,latency-us = <80>; + qcom,ss-power = <700>; + qcom,energy-overhead = <126480>; + qcom,time-overhead = <160>; + }; + }; + }; + + 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 = <&CPU2 &CPU3>; + qcom,psci-mode-shift = <4>; + qcom,psci-mode-mask = <0xf>; + + qcom,pm-cluster-level@0{ /* D1 */ + reg = <0>; + label = "perf-l2-wfi"; + qcom,psci-mode = <1>; + qcom,latency-us = <40>; + qcom,ss-power = <740>; + qcom,energy-overhead = <70000>; + qcom,time-overhead = <80>; + }; + + qcom,pm-cluster-level@1{ /* D3 */ + reg = <1>; + label = "perf-l2-gdhs"; + qcom,psci-mode = <3>; + qcom,latency-us = <80>; + qcom,ss-power = <660>; + qcom,energy-overhead = <142000>; + qcom,time-overhead = <180>; + qcom,min-child-idx = <1>; + }; + + qcom,pm-cluster-level@2{ /* D4 */ + reg = <2>; + label = "perf-l2-fpc"; + qcom,psci-mode = <4>; + qcom,latency-us = <800>; + qcom,ss-power = <450>; + qcom,energy-overhead = <240000>; + qcom,time-overhead = <11500>; + qcom,min-child-idx = <1>; + qcom,is-reset; + }; + + qcom,pm-cpu { + #address-cells = <1>; + #size-cells = <0>; + qcom,psci-mode-shift = <0>; + qcom,psci-mode-mask = <0xf>; + + qcom,pm-cpu-level@0 { /* C1 */ + reg = <0>; + qcom,psci-cpu-mode = <1>; + qcom,spm-cpu-mode = "wfi"; + qcom,latency-us = <25>; + qcom,ss-power = <750>; + qcom,energy-overhead = <37000>; + qcom,time-overhead = <50>; + }; + + qcom,pm-cpu-level@1 { /* C4 */ + reg = <1>; + qcom,spm-cpu-mode = "fpc"; + qcom,psci-cpu-mode = <4>; + qcom,latency-us = <80>; + qcom,ss-power = <700>; + qcom,energy-overhead = <136480>; + qcom,time-overhead = <160>; + }; + }; + }; + }; + }; + + qcom,mpm@681b8 { + compatible = "qcom,mpm-v2"; + reg = <0x681B8 0x1000>, /* MSM_RPM_MPM_BASE 4K */ + <0x9820010 0x4>; /* MSM_APCS_GCC_BASE 4K */ + reg-names = "vmpm", "ipc"; + interrupts = <GIC_SPI 171 IRQ_TYPE_EDGE_RISING>; + clocks = <&clock_gcc clk_cxo_lpm_clk>; + clock-names = "xo"; + qcom,num-mpm-irqs = <96>; + + qcom,ipc-bit-offset = <1>; + + qcom,gic-parent = <&intc>; + qcom,gic-map = <2 216>, /* tsens_upper_lower_int */ + <52 212>, /* qmp_usb3_lfps_rxterm_irq */ + <87 358>, /* ee0_krait_hlos_spmi_periph_irq */ + <0xff 16>, /* APCj_qgicdrCpu0HwFaultIrptReq */ + <0xff 23>, /* APCj_qgicdrCpu0PerfMonIrptReq */ + <0xff 27>, /* APCj_qgicdrCpu0QTmrVirtIrptReq */ + <0xff 32>, /* APCj_qgicdrL2PerfMonIrptReq */ + <0xff 33>, /* APCC_qgicL2PerfMonIrptReq */ + <0xff 34>, /* APCC_qgicL2ErrorIrptReq */ + <0xff 35>, /* WDT_barkInt */ + <0xff 40>, /* qtimer_phy_irq */ + <0xff 41>, /* APCj_qgicdrL2HwFaultNonFatalIrptReq */ + <0xff 42>, /* APCj_qgicdrL2HwFaultFatalIrptReq */ + <0xff 49>, /* L3UX_qgicL3ErrorIrptReq */ + <0xff 54>, /* M4M_sysErrorInterrupt */ + <0xff 55>, /* M4M_sysDlmInterrupt */ + <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 62>, /* QTMR_qgicFrm0VirtIrq */ + <0xff 63>, /* QTMR_qgicFrm1PhysIrq */ + <0xff 64>, /* QTMR_qgicFrm2PhysIrq */ + <0xff 65>, /* QTMR_qgicFrm3PhysIrq */ + <0xff 66>, /* QTMR_qgicFrm4PhysIrq */ + <0xff 67>, /* QTMR_qgicFrm5PhysIrq */ + <0xff 68>, /* QTMR_qgicFrm6PhysIrq */ + <0xff 69>, /* QTMR_qgicFrm7PhysIrq */ + <0xff 70>, /* iommu_pmon_nonsecure_irq */ + <0xff 74>, /* osmmu_CIrpt[1] */ + <0xff 75>, /* osmmu_CIrpt[0] */ + <0xff 77>, /* osmmu_CIrpt[0] */ + <0xff 78>, /* osmmu_CIrpt[0] */ + <0xff 79>, /* osmmu_CIrpt[0] */ + <0xff 80>, /* CPR3_irq */ + <0xff 94>, /* osmmu_CIrpt[0] */ + <0xff 97>, /* iommu_nonsecure_irq */ + <0xff 99>, /* msm_iommu_pmon_nonsecure_irq */ + <0xff 102>, /* osmmu_CIrpt[1] */ + <0xff 105>, /* iommu_pmon_nonsecure_irq */ + <0xff 108>, /* osmmu_PMIrpt */ + <0xff 109>, /* ocmem_dm_nonsec_irq */ + <0xff 110>, /* csiphy_0_irq */ + <0xff 111>, /* csiphy_1_irq */ + <0xff 112>, /* csiphy_2_irq */ + <0xff 115>, /* mdss_irq */ + <0xff 126>, /* bam_irq[0] */ + <0xff 127>, /* blsp1_qup_irq(0) */ + <0xff 132>, /* blsp1_qup_irq(5) */ + <0xff 133>, /* blsp2_qup_irq(0) */ + <0xff 134>, /* blsp2_qup_irq(1) */ + <0xff 138>, /* blsp2_qup_irq(5) */ + <0xff 140>, /* blsp1_uart_irq(1) */ + <0xff 146>, /* blsp2_uart_irq(1) */ + <0xff 155>, /* sdcc_irq[0] */ + <0xff 157>, /* sdc2_irq[0] */ + <0xff 163>, /* usb30_ee1_irq */ + <0xff 164>, /* usb30_bam_irq(0) */ + <0xff 165>, /* usb30_hs_phy_irq */ + <0xff 166>, /* sdc1_pwr_cmd_irq */ + <0xff 170>, /* sdcc_pwr_cmd_irq */ + <0xff 173>, /* sdc1_irq[0] */ + <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 180>, /* pcie20_2_int_pls_err */ + <0xff 181>, /* wcnss watchdog */ + <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 208>, + <0xff 210>, + <0xff 211>, /* usb_dwc3_otg */ + <0xff 215>, /* o_bimc_intr(0) */ + <0xff 224>, /* spdm_realtime_irq[1] */ + <0xff 238>, /* crypto_bam_irq[0] */ + <0xff 240>, /* summary_irq_kpss */ + <0xff 253>, /* sdc2_pwr_cmd_irq */ + <0xff 258>, /* lpass_irq_out_apcs[21] */ + <0xff 268>, /* bam_irq[1] */ + <0xff 270>, /* bam_irq[0] */ + <0xff 271>, /* bam_irq[0] */ + <0xff 276>, /* wlan_pci */ + <0xff 283>, /* pcie20_0_int_pls_err */ + <0xff 284>, /* pcie20_0_int_aer_legacy */ + <0xff 286>, /* pcie20_0_int_pls_link_down */ + <0xff 290>, /* ufs_ice_nonsec_level_irq */ + <0xff 293>, /* pcie20_2_int_pls_link_down */ + <0xff 295>, /* camss_cpp_mmu_cirpt[0] */ + <0xff 296>, /* camss_cpp_mmu_pmirpt */ + <0xff 297>, /* ufs_intrq */ + <0xff 302>, /* qdss_etrbytecnt_irq */ + <0xff 310>, /* pcie20_1_int_pls_err */ + <0xff 311>, /* pcie20_1_int_aer_legacy */ + <0xff 313>, /* pcie20_1_int_pls_link_down */ + <0xff 318>, /* venus0_mmu_pmirpt */ + <0xff 319>, /* venus0_irq */ + <0xff 325>, /* camss_irq18 */ + <0xff 326>, /* camss_irq0 */ + <0xff 327>, /* camss_irq1 */ + <0xff 328>, /* camss_irq2 */ + <0xff 329>, /* camss_irq3 */ + <0xff 330>, /* camss_irq4 */ + <0xff 331>, /* camss_irq5 */ + <0xff 332>, /* sps */ + <0xff 346>, /* camss_irq8 */ + <0xff 347>, /* camss_irq9 */ + <0xff 352>, /* mdss_mmu_cirpt[0] */ + <0xff 353>, /* mdss_mmu_cirpt[1] */ + <0xff 361>, /* ogpu_mmu_cirpt[0] */ + <0xff 362>, /* ogpu_mmu_cirpt[1] */ + <0xff 365>, /* ipa_irq[0] */ + <0xff 366>, /* ogpu_mmu_pmirpt */ + <0xff 367>, /* venus0_mmu_cirpt[0] */ + <0xff 368>, /* venus0_mmu_cirpt[1] */ + <0xff 369>, /* venus0_mmu_cirpt[2] */ + <0xff 370>, /* venus0_mmu_cirpt[3] */ + <0xff 375>, /* camss_vfe_mmu_cirpt[0] */ + <0xff 376>, /* camss_vfe_mmu_cirpt[1] */ + <0xff 380>, /* mdss_dma_mmu_cirpt[0] */ + <0xff 381>, /* mdss_dma_mmu_cirpt[1] */ + <0xff 385>, /* mdss_dma_mmu_pmirpt */ + <0xff 387>, /* osmmu_CIrpt[0] */ + <0xff 394>, /* osmmu_PMIrpt */ + <0xff 403>, /* osmmu_PMIrpt */ + <0xff 405>, /* osmmu_CIrpt[0] */ + <0xff 413>, /* osmmu_PMIrpt */ + <0xff 422>, /* ssc_irq_out_apcs[5] */ + <0xff 424>, /* ipa_irq[2] */ + <0xff 425>, /* lpass_irq_out_apcs[22] */ + <0xff 426>, /* lpass_irq_out_apcs[23] */ + <0xff 427>, /* lpass_irq_out_apcs[24] */ + <0xff 428>, /* lpass_irq_out_apcs[25] */ + <0xff 429>, /* lpass_irq_out_apcs[26] */ + <0xff 430>, /* lpass_irq_out_apcs[27] */ + <0xff 431>, /* lpass_irq_out_apcs[28] */ + <0xff 432>, /* lpass_irq_out_apcs[29] */ + <0xff 436>, /* lpass_irq_out_apcs[37] */ + <0xff 437>, /* pcie20_0_int_msi_dev0 */ + <0xff 445>, /* pcie20_1_int_msi_dev0 */ + <0xff 453>, /* pcie20_2_int_msi_dev0 */ + <0xff 461>, /* o_vmem_nonsec_irq */ + <0xff 462>, /* tsens1_tsens_critical_int */ + <0xff 464>, /* ipa_bam_irq[0] */ + <0xff 465>, /* ipa_bam_irq[2] */ + <0xff 477>, /* tsens0_tsens_critical_int */ + <0xff 480>, /* q6_wdog_expired_irq */ + <0xff 481>, /* mss_ipc_out_irq(4) */ + <0xff 483>, /* mss_ipc_out_irq(6) */ + <0xff 484>, /* mss_ipc_out_irq(7) */ + <0xff 487>, /* mss_ipc_out_irq(30) */ + <0xff 490>, /* tsens0_tsens_upper_lower_int */ + <0xff 493>; /* sdc1_ice_nonsec_level_irq */ + + qcom,gpio-parent = <&tlmm>; + qcom,gpio-map = <3 1>, + <4 5>, + <5 9>, + <6 11>, + <7 66>, + <8 22>, + <9 24>, + <10 26>, + <11 34>, + <12 36>, + <13 37>, /* PCIe0 */ + <14 38>, + <15 40>, + <16 42>, + <17 46>, + <18 50>, + <19 53>, + <20 54>, + <21 56>, + <22 57>, + <23 58>, + <24 59>, + <25 60>, + <26 61>, + <27 62>, + <28 63>, + <29 64>, + <30 71>, + <31 73>, + <32 77>, + <33 78>, + <34 79>, + <35 80>, + <36 82>, + <37 86>, + <38 91>, + <39 92>, + <40 95>, + <41 97>, + <42 101>, + <43 104>, + <44 106>, + <45 108>, + <46 112>, + <47 113>, + <48 110>, + <50 127>, + <51 115>, + <54 116>, /* PCIe2 */ + <55 117>, + <56 118>, + <57 119>, + <58 120>, + <59 121>, + <60 122>, + <61 123>, + <62 124>, + <63 125>, + <64 126>, + <65 129>, + <66 131>, + <67 132>, /* PCIe1 */ + <68 133>, + <69 145>; + }; + + 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,pm-snoc-client { + compatible = "qcom,pm-snoc-client"; + qcom,msm-bus,name = "ocimem_snoc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,active-only; + qcom,msm-bus,vectors-KBps = + <MSM_BUS_MASTER_AMPSS_M0 MSM_BUS_SLAVE_OCIMEM 0 0>, + <MSM_BUS_MASTER_AMPSS_M0 MSM_BUS_SLAVE_OCIMEM 0 800000>; + }; + + qcom,rpm-rail-stats@200000 { + compatible = "qcom,rpm-rail-stats"; + reg = <0x200000 0x100>, + <0x29000c 0x4>; + reg-names = "phys_addr_base", + "offset_addr"; + }; + + qcom,rpm-log@200000 { + compatible = "qcom,rpm-log"; + reg = <0x200000 0x4000>, + <0x290018 0x4>; + 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>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-pm8994-pm8004-pmk8001.dtsi b/arch/arm64/boot/dts/qcom/msm8996-pm8994-pm8004-pmk8001.dtsi new file mode 100644 index 000000000000..afbf082a327e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-pm8994-pm8004-pmk8001.dtsi @@ -0,0 +1,31 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * As a general rule, only chipset-specific property overrides should be placed + * inside this file. + */ + +#include "msm8996-pm8994-pm8004.dtsi" +#include "msm-pmk8001.dtsi" + +/ { + qcom,pmic-id = <0x20009 0x1000C 0x10012 0x0>; +}; + +/* + * Override PM8994 resources with proper PMK8001 resources for MSM8996 with + * PMK8001. + */ +&pm8994_rtc { + status = "disabled"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-pm8994-pm8004.dtsi b/arch/arm64/boot/dts/qcom/msm8996-pm8994-pm8004.dtsi new file mode 100644 index 000000000000..05b5de612d7f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-pm8994-pm8004.dtsi @@ -0,0 +1,33 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * As a general rule, only chipset-specific property overrides should be placed + * inside this file. + */ + +#include "msm8996-pm8994-pmi8994-pm8004.dtsi" + +/ { + qcom,pmic-id = <0x20009 0x1000C 0x0 0x0>; +}; + +&rpm_bus { + /delete-node/ rpm-regulator-bstb; + /delete-node/ rpm-regulator-bbyb; + /delete-node/ rpm-regulator-smpb1; +}; + +&spmi_bus { + /delete-node/ qcom,pmi8994@2; + /delete-node/ qcom,pmi8994@3; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-pm8994-pmi8994-pm8004-pmk8001.dtsi b/arch/arm64/boot/dts/qcom/msm8996-pm8994-pmi8994-pm8004-pmk8001.dtsi new file mode 100644 index 000000000000..2294ee41975f --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-pm8994-pmi8994-pm8004-pmk8001.dtsi @@ -0,0 +1,31 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * As a general rule, only chipset-specific property overrides should be placed + * inside this file. + */ + +#include "msm8996-pm8994-pmi8994-pm8004.dtsi" +#include "msm-pmk8001.dtsi" + +/ { + qcom,pmic-id = <0x20009 0x2000A 0x1000C 0x10012>; +}; + +/* + * Override PM8994 resources with proper PMK8001 resources for MSM8996 with + * PMK8001. + */ +&pm8994_rtc { + status = "disabled"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-pm8994-pmi8994-pm8004.dtsi b/arch/arm64/boot/dts/qcom/msm8996-pm8994-pmi8994-pm8004.dtsi new file mode 100644 index 000000000000..f3ef9be36cd7 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-pm8994-pmi8994-pm8004.dtsi @@ -0,0 +1,38 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * As a general rule, only chipset-specific property overrides should be placed + * inside this file. + */ + +#include "msm-pm8004.dtsi" + +/ { + qcom,pmic-id = <0x20009 0x2000A 0x1000C 0x0>; +}; + +/* + * Override PMI8994 resources with proper PM8004 resources for MSM8996 with + * PM8004. + */ +&pmi8994_s2 { + status = "disabled"; +}; + +&pm8004_s2 { + status = "ok"; +}; + +&gfx_cpr { + vdd-supply = <&pm8004_s2>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-pm8994-pmi8994-pmk8001.dtsi b/arch/arm64/boot/dts/qcom/msm8996-pm8994-pmi8994-pmk8001.dtsi new file mode 100644 index 000000000000..b7d8c458267a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-pm8994-pmi8994-pmk8001.dtsi @@ -0,0 +1,30 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * As a general rule, only chipset-specific property overrides should be placed + * inside this file. + */ + +#include "msm-pmk8001.dtsi" + +/ { + qcom,pmic-id = <0x20009 0x2000A 0x10012 0x0>; +}; + +/* + * Override PM8994 resources with proper PMK8001 resources for MSM8996 with + * PMK8001. + */ +&pm8994_rtc { + status = "disabled"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-pm8994-pmi8996-pmk8001.dtsi b/arch/arm64/boot/dts/qcom/msm8996-pm8994-pmi8996-pmk8001.dtsi new file mode 100644 index 000000000000..8a78d0c71abd --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-pm8994-pmi8996-pmk8001.dtsi @@ -0,0 +1,31 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * As a general rule, only chipset-specific property overrides should be placed + * inside this file. + */ + +#include "msm-pmi8996.dtsi" +#include "msm-pmk8001.dtsi" + +/ { + qcom,pmic-id = <0x20009 0x10013 0x10012 0x0>; +}; + +/* + * Override PM8994 resources with proper PMK8001 resources for MSM8996 with + * PMK8001. + */ +&pm8994_rtc { + status = "disabled"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-regulator.dtsi b/arch/arm64/boot/dts/qcom/msm8996-regulator.dtsi new file mode 100644 index 000000000000..e9e6eb43b394 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-regulator.dtsi @@ -0,0 +1,1446 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <dt-bindings/interrupt-controller/arm-gic.h> + +&rpm_bus { + /* PM8994 S1 + S6 = 2 phase VDD_CX supply */ + rpm-regulator-smpa1 { + status = "okay"; + pm8994_s1_corner: regulator-s1-corner { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s1_corner"; + qcom,set = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + + pm8994_s1_floor_corner: regulator-s1-floor-corner { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s1_floor_corner"; + qcom,set = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-floor-corner; + qcom,always-send-voltage; + }; + + pm8994_s1_corner_ao: regulator-s1-corner-ao { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s1_corner_ao"; + qcom,set = <1>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + }; + + /* PM8994 S2 + S12 = 2 phase VDD_MX supply */ + rpm-regulator-smpa2 { + status = "okay"; + pm8994_s2_corner: regulator-s2-corner { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s2_corner"; + qcom,set = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + + pm8994_s2_corner_ao: regulator-s2-corner-ao { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_s2_corner_ao"; + qcom,set = <1>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + }; + + rpm-regulator-smpa3 { + status = "okay"; + pm8994_s3: regulator-s3 { + regulator-min-microvolt = <1300000>; + regulator-max-microvolt = <1300000>; + qcom,init-voltage = <1300000>; + status = "okay"; + }; + }; + + rpm-regulator-smpa4 { + status = "okay"; + pm8994_s4: regulator-s4 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-smpa5 { + status = "okay"; + pm8994_s5: regulator-s5 { + regulator-min-microvolt = <2150000>; + regulator-max-microvolt = <2150000>; + qcom,init-voltage = <2150000>; + status = "okay"; + }; + }; + + rpm-regulator-smpa7 { + status = "okay"; + pm8994_s7: regulator-s7 { + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <800000>; + qcom,init-voltage = <800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa1 { + status = "okay"; + pm8994_l1: regulator-l1 { + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + qcom,init-voltage = <1000000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa2 { + status = "okay"; + pm8994_l2: regulator-l2 { + regulator-min-microvolt = <1250000>; + regulator-max-microvolt = <1250000>; + qcom,init-voltage = <1250000>; + proxy-supply = <&pm8994_l2>; + qcom,proxy-consumer-enable; + qcom,proxy-consumer-current = <10000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa3 { + status = "okay"; + pm8994_l3: regulator-l3 { + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + qcom,init-voltage = <850000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa4 { + status = "okay"; + pm8994_l4: regulator-l4 { + regulator-min-microvolt = <1225000>; + regulator-max-microvolt = <1225000>; + qcom,init-voltage = <1225000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa6 { + status = "okay"; + pm8994_l6: regulator-l6 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + qcom,init-voltage = <1200000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa8 { + status = "okay"; + pm8994_l8: regulator-l8 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa9 { + status = "okay"; + pm8994_l9: regulator-l9 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa10 { + status = "okay"; + pm8994_l10: regulator-l10 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa11 { + status = "okay"; + pm8994_l11: regulator-l11 { + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1150000>; + qcom,init-voltage = <1150000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa12 { + status = "okay"; + pm8994_l12: regulator-l12 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + proxy-supply = <&pm8994_l12>; + qcom,proxy-consumer-enable; + qcom,proxy-consumer-current = <10000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa13 { + status = "okay"; + pm8994_l13: regulator-l13 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2950000>; + qcom,init-voltage = <2950000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa14 { + status = "okay"; + pm8994_l14: regulator-l14 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + proxy-supply = <&pm8994_l14>; + qcom,proxy-consumer-enable; + qcom,proxy-consumer-current = <10000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa15 { + status = "okay"; + pm8994_l15: regulator-l15 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa16 { + status = "okay"; + pm8994_l16: regulator-l16 { + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2700000>; + qcom,init-voltage = <2700000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa17 { + status = "okay"; + pm8994_l17: regulator-l17 { + regulator-min-microvolt = <2500000>; + regulator-max-microvolt = <2500000>; + qcom,init-voltage = <2500000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa18 { + status = "okay"; + pm8994_l18: regulator-l18 { + regulator-min-microvolt = <2850000>; + regulator-max-microvolt = <2850000>; + qcom,init-voltage = <2850000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa19 { + status = "okay"; + pm8994_l19: regulator-l19 { + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + qcom,init-voltage = <3000000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa20 { + status = "okay"; + pm8994_l20: regulator-l20 { + regulator-min-microvolt = <2950000>; + regulator-max-microvolt = <2950000>; + qcom,init-voltage = <2950000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa21 { + status = "okay"; + pm8994_l21: regulator-l21 { + regulator-min-microvolt = <2950000>; + regulator-max-microvolt = <2950000>; + qcom,init-voltage = <2950000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa22 { + status = "okay"; + pm8994_l22: regulator-l22 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + qcom,init-voltage = <3300000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa23 { + status = "okay"; + pm8994_l23: regulator-l23 { + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + qcom,init-voltage = <2800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa24 { + status = "okay"; + pm8994_l24: regulator-l24 { + regulator-min-microvolt = <3075000>; + regulator-max-microvolt = <3075000>; + qcom,init-voltage = <3075000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa25 { + status = "okay"; + pm8994_l25: regulator-l25 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + qcom,init-voltage = <1200000>; + proxy-supply = <&pm8994_l25>; + qcom,proxy-consumer-enable; + qcom,proxy-consumer-current = <10000>; + status = "okay"; + }; + }; + + /* PM8994 LDO26 = VDD_SS_CX supply */ + rpm-regulator-ldoa26 { + status = "okay"; + pm8994_l26_corner: regulator-l26-corner { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l26_corner"; + qcom,set = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-corner; + }; + + pm8994_l26_floor_corner: regulator-l26-floor-corner { + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pm8994_l26_floor_corner"; + qcom,set = <3>; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + qcom,use-voltage-floor-corner; + qcom,always-send-voltage; + }; + }; + + rpm-regulator-ldoa27 { + status = "okay"; + pm8994_l27: regulator-l27 { + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + qcom,init-voltage = <1000000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa28 { + status = "okay"; + pm8994_l28: regulator-l28 { + regulator-min-microvolt = <925000>; + regulator-max-microvolt = <925000>; + qcom,init-voltage = <925000>; + proxy-supply = <&pm8994_l28>; + qcom,proxy-consumer-enable; + qcom,proxy-consumer-current = <10000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa29 { + status = "okay"; + pm8994_l29: regulator-l29 { + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + qcom,init-voltage = <2800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa30 { + status = "okay"; + pm8994_l30: regulator-l30 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-ldoa32 { + status = "okay"; + pm8994_l32: regulator-l32 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; + }; + }; + + rpm-regulator-vsa1 { + status = "okay"; + pm8994_lvs1: regulator-lvs1 { + status = "okay"; + }; + }; + + rpm-regulator-vsa2 { + status = "okay"; + pm8994_lvs2: regulator-lvs2 { + status = "okay"; + }; + }; + + rpm-regulator-smpb1 { + status = "okay"; + pmi8994_s1: regulator-s1 { + regulator-min-microvolt = <1025000>; + regulator-max-microvolt = <1025000>; + qcom,init-voltage = <1025000>; + status = "okay"; + }; + }; + + rpm-regulator-bstb { + status = "okay"; + pmi8994_boost_5v: regulator-bst { + /* + * When enabled, the PMI8994 Boost regulator always + * outputs 5V. This takes precedence over the pin + * control boost regulator request. + */ + regulator-name = "pmi8994_boost_5v"; + parent-supply = <&pon_perph_reg>; + status = "okay"; + }; + pmi8994_boost_pin_ctrl: regulator-bst-pin-ctrl { + /* + * When enabled, the output voltage of the PMI8994 + * boost regulator is determined by the state of the + * REQ_5V_BST pin. If the pin signal is high, then the + * regulator outputs 5V. If the pin signal is low, then + * the regulator outputs VPH_PWR voltage. + */ + compatible = "qcom,rpm-smd-regulator"; + regulator-name = "pmi8994_boost_pin_ctrl"; + parent-supply = <&pon_perph_reg>; + qcom,set = <3>; + qcom,enable-with-pin-ctrl = <0 1>; + }; + }; + + rpm-regulator-bbyb { + status = "okay"; + pmi8994_boostbypass: regulator-bby { + status = "okay"; + regulator-min-microvolt = <3150000>; + regulator-max-microvolt = <3600000>; + qcom,init-voltage = <3150000>; + }; + }; +}; + +/* SPM controlled regulators: */ +&spmi_bus { + qcom,pm8994@1 { + /* + * PM8994 S8 + S9 + S10 + S11 = 4 phase VDD_APCC supply + * S11 is the gang leader. + */ + pm8994_s11: spm-regulator@3200 { + compatible = "qcom,spm-regulator"; + reg = <0x3200 0x100>; + regulator-name = "pm8994_s11"; + regulator-min-microvolt = <470000>; + regulator-max-microvolt = <1140000>; + qcom,max-voltage-step = <150000>; + qcom,cpu-num = <0>; + qcom,recal-mask = <3>; + + pm8994_s11_limit: avs-limit-regulator { + regulator-name = "pm8994_s11_avs_limit"; + regulator-min-microvolt = <470000>; + regulator-max-microvolt = <1140000>; + }; + }; + }; +}; + +/* SPMI controlled regulators: */ +&spmi_bus { + qcom,pmi8994@3 { + /* PMI8994 S2 + S3 = 2 phase VDD_GFX supply */ + pmi8994_s2: regulator@1700 { + compatible = "qcom,qpnp-regulator"; + reg = <0x1700 0x100>; + regulator-name = "pmi8994_s2"; + regulator-min-microvolt = <400000>; + regulator-max-microvolt = <1015000>; + qcom,enable-time = <500>; + }; + }; + + qcom,pm8004@5 { + spmi-slave-container; + reg = <0x5>; + #address-cells = <1>; + #size-cells = <1>; + /* + * PM8004 S2 + S4 = 2 phase VDD_GFX supply when PM8004 is + * present on the board. + */ + pm8004_s2: regulator@1700 { + compatible = "qcom,qpnp-regulator"; + reg = <0x1700 0x100>; + regulator-name = "pm8004_s2"; + regulator-min-microvolt = <400000>; + regulator-max-microvolt = <1015000>; + qcom,enable-time = <500>; + status = "disabled"; + }; + }; +}; + +&soc { +/* CPR controlled regulators */ + apcc_cpr: cpr3-ctrl@99e8000 { + compatible = "qcom,cpr3-msm8996-hmss-regulator"; + reg = <0x099e8000 0x4000>, <0x00074000 0x1000>; + reg-names = "cpr_ctrl", "fuse_base"; + clocks = <&clock_gcc clk_gcc_hmss_rbcpr_clk>; + clock-names = "core_clk"; + interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "cpr", "ceiling"; + qcom,cpr-ctrl-name = "apcc"; + + qcom,cpr-sensor-time = <1000>; + qcom,cpr-loop-time = <5000000>; + qcom,cpr-idle-cycles = <15>; + qcom,cpr-up-down-delay-time = <3000>; + qcom,cpr-step-quot-init-min = <11>; + qcom,cpr-step-quot-init-max = <13>; + qcom,cpr-count-mode = <0>; /* All-at-once min */ + qcom,cpr-count-repeat = <25>; + + qcom,apm-ctrl = <&apc_apm>; + qcom,apm-threshold-voltage = <850000>; + qcom,apm-hysteresis-voltage = <5000>; + qcom,system-supply-max-voltage = <1015000>; + qcom,mem-acc-supply-threshold-voltage = <700000>; + qcom,mem-acc-supply-corner-map = <1 2>; + + vdd-supply = <&pm8994_s11>; + qcom,voltage-step = <5000>; + vdd-limit-supply = <&pm8994_s11_limit>; + mem-acc-thread0-supply = <&apc0_pwrcl_mem_acc_vreg>; + mem-acc-thread1-supply = <&apc1_perfcl_mem_acc_vreg>; + mem-acc-supply = <&apcc_l3_mem_acc_vreg>; + vdd-thread0-ldo-supply = <&kryo0_vreg>; + vdd-thread1-ldo-supply = <&kryo1_vreg>; + vdd-thread0-ldo-ret-supply = <&kryo0_retention_vreg>; + vdd-thread1-ldo-ret-supply = <&kryo1_retention_vreg>; + proxy-supply = <&apc0_cbf_vreg>; + + qcom,cpr-enable; + qcom,cpr-clock-throttling = <0x20>; + + qcom,cpr-aging-ref-voltage = <905000>; + + thread@0 { + qcom,cpr-thread-id = <0>; + qcom,cpr-consecutive-up = <0>; + qcom,cpr-consecutive-down = <3>; + qcom,cpr-up-threshold = <2>; + qcom,cpr-down-threshold = <2>; + + apc0_pwrcl_vreg: regulator-pwrcl { + regulator-name = "apc0_pwrcl_corner"; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <16>; + + qcom,cpr-pd-bypass-mask = <0x07>; + qcom,cpr-fuse-corners = <5>; + qcom,cpr-fuse-combos = <16>; + qcom,cpr-speed-bins = <2>; + qcom,cpr-speed-bin-corners = <16 13>; + qcom,cpr-corners = + /* Speed bin 0 */ + <16 16 16 16 16 16 16 16>, + + /* Speed bin 1 */ + <13 13 13 13 13 13 13 13>; + + qcom,ldo-min-headroom-voltage = <150000>; + qcom,ldo-max-headroom-voltage = <470000>; + qcom,ldo-max-voltage = <890000>; + qcom,uses-mem-acc; + + qcom,cpr-corner-fmax-map = + /* Speed bin 0 */ + <1 2 7 12 16>, + + /* Speed bin 1 */ + <1 2 7 12 13>; + + qcom,cpr-voltage-ceiling = + /* Speed bin 0 */ + <670000 670000 745000 745000 745000 + 745000 745000 905000 905000 905000 + 905000 905000 1140000 1140000 1140000 + 1140000>, + + /* Speed bin 1 */ + <670000 670000 745000 745000 745000 + 745000 745000 905000 905000 905000 + 905000 905000 1140000>; + + qcom,cpr-voltage-floor = + /* Speed bin 0 */ + <470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 + 470000>, + + /* Speed bin 1 */ + <470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 + 470000 470000 470000>; + + qcom,cpr-floor-to-ceiling-max-range = + /* Speed bin 0 */ + <80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 + 80000>, + + /* Speed bin 1 */ + <80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 + 80000 80000 80000>; + + qcom,corner-frequencies = + /* Speed bin 0 */ + <307200000 422400000 480000000 + 556800000 652800000 729600000 + 844800000 960000000 1036800000 + 1113600000 1190400000 1228800000 + 1324800000 1401600000 1478400000 + 1593600000>, + + /* Speed bin 1 */ + <307200000 422400000 480000000 + 556800000 652800000 729600000 + 844800000 960000000 1036800000 + 1113600000 1190400000 1228800000 + 1363200000>; + + qcom,cpr-ro-scaling-factor = + < 0 0 3112 2666 2947 2543 2271 1979 + 2623 2317 2772 2450 0 0 0 0>, + < 0 0 3112 2666 2947 2543 2271 1979 + 2623 2317 2772 2450 0 0 0 0>, + < 0 0 3112 2666 2947 2543 2271 1979 + 2623 2317 2772 2450 0 0 0 0>, + < 0 0 3112 2666 2947 2543 2271 1979 + 2623 2317 2772 2450 0 0 0 0>, + < 0 0 2889 2528 2740 2426 2310 2040 + 2519 2257 2668 2372 0 0 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment = + /* Speed bin 0 */ + <20000 0 25000 (-5000) (-10000)>, + <20000 0 25000 (-5000) (-10000)>, + <20000 0 25000 (-5000) (-10000)>, + <45000 0 50000 20000 15000>, + <45000 0 50000 20000 15000>, + <45000 0 50000 20000 15000>, + <45000 0 50000 20000 15000>, + <45000 0 50000 20000 15000>, + + /* Speed bin 1 */ + <20000 0 25000 (-5000) (-10000)>, + <20000 0 25000 (-5000) (-10000)>, + <20000 0 25000 (-5000) (-10000)>, + <45000 0 50000 20000 15000>, + <45000 0 50000 20000 15000>, + <45000 0 50000 20000 15000>, + <45000 0 50000 20000 15000>, + <45000 0 50000 20000 15000>; + + qcom,cpr-closed-loop-voltage-fuse-adjustment = + /* Speed bin 0 */ + <35000 35000 40000 40000 40000>, + <20000 10000 5000 (-5000) (-5000)>, + <20000 10000 5000 (-5000) (-5000)>, + <20000 10000 5000 (-5000) (-5000)>, + <20000 10000 5000 (-5000) (-5000)>, + <20000 10000 5000 (-5000) (-5000)>, + <20000 10000 5000 (-5000) (-5000)>, + <20000 10000 5000 (-5000) (-5000)>, + + /* Speed bin 1 */ + <35000 35000 40000 40000 40000>, + <20000 10000 5000 (-5000) (-5000)>, + <20000 10000 5000 (-5000) (-5000)>, + <20000 10000 5000 (-5000) (-5000)>, + <20000 10000 5000 (-5000) (-5000)>, + <20000 10000 5000 (-5000) (-5000)>, + <20000 10000 5000 (-5000) (-5000)>, + <20000 10000 5000 (-5000) (-5000)>; + + qcom,cpr-open-loop-voltage-adjustment = + /* Speed bin 0 */ + <(-15000) (-15000) (-15000) (-15000) + (-13000) (-14000) (-15000) (-18000) + (-20000) (-22000) (-24000) (-25000) + (-26000) (-27000) (-28000) (-30000)>, + + /* Speed bin 1 */ + <(-15000) (-15000) (-15000) (-15000) + (-13000) (-14000) (-15000) (-18000) + (-20000) (-22000) (-24000) (-25000) + (-26000)>; + + qcom,cpr-open-loop-voltage-min-diff = + /* Speed bin 0 */ + <0 0 0 0 (-50000) 0 0 0 0 0 0 0 0 0 0 0>, + + /* Speed bin 1 */ + <0 0 0 0 (-50000) 0 0 0 0 0 0 0 0>; + + qcom,cpr-closed-loop-voltage-adjustment = + /* Speed bin 0 */ + <(-15000) (-15000) (-15000) (-15000) + (-13000) (-14000) (-15000) (-18000) + (-20000) (-22000) (-24000) (-25000) + (-26000) (-27000) (-28000) (-30000)>, + + /* Speed bin 1 */ + <(-15000) (-15000) (-15000) (-15000) + (-13000) (-14000) (-15000) (-18000) + (-20000) (-22000) (-24000) (-25000) + (-26000)>; + + qcom,allow-voltage-interpolation; + qcom,allow-quotient-interpolation; + qcom,cpr-scaled-open-loop-voltage-as-ceiling; + + qcom,cpr-aging-max-voltage-adjustment = <25000>; + qcom,cpr-aging-ref-corner = <12 12>; + qcom,cpr-aging-ro-scaling-factor = <3200>; + qcom,allow-aging-voltage-adjustment = + /* Speed bin 0 */ + <0 0 0 1 1 1 1 1>, + + /* Speed bin 1 */ + <0 0 0 1 1 1 1 1>; + }; + + apc0_cbf_vreg: regulator-cbf { + regulator-name = "apc0_cbf_corner"; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <19>; + + qcom,proxy-consumer-enable; + qcom,proxy-consumer-voltage = <13 19>; + + qcom,cpr-pd-bypass-mask = <0x18>; + qcom,cpr-fuse-corners = <5>; + qcom,cpr-fuse-combos = <16>; + qcom,cpr-speed-bins = <2>; + qcom,cpr-speed-bin-corners = <19 15>; + qcom,cpr-corners = + /* Speed bin 0 */ + <19 19 19 19 19 19 19 19>, + + /* Speed bin 1 */ + <15 15 15 15 15 15 15 15>; + + qcom,cpr-corner-fmax-map = + /* Speed bin 0 */ + <1 2 5 13 19>, + + /* Speed bin 1 */ + <1 2 5 13 15>; + + qcom,cpr-voltage-ceiling = + /* Speed bin 0 */ + <670000 670000 745000 745000 745000 + 905000 905000 905000 905000 905000 + 905000 905000 905000 1140000 1140000 + 1140000 1140000 1140000 1140000>, + + /* Speed bin 1 */ + <670000 670000 745000 745000 745000 + 905000 905000 905000 905000 905000 + 905000 905000 905000 1140000 1140000>; + + qcom,cpr-voltage-floor = + /* Speed bin 0 */ + <470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 + 470000 470000 470000 470000>, + + /* Speed bin 1 */ + <470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000>; + + qcom,cpr-floor-to-ceiling-max-range = + /* Speed bin 0 */ + <80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 + 80000 80000 80000 80000>, + + /* Speed bin 1 */ + <80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000>; + + qcom,corner-frequencies = + /* Speed bin 0 */ + <307200000 384000000 460800000 + 537600000 595200000 672000000 + 748800000 825600000 902400000 + 979200000 1056000000 1132800000 + 1190400000 1228800000 1305600000 + 1382400000 1459200000 1536000000 + 1593600000>, + + /* Speed bin 1 */ + <307200000 384000000 460800000 + 537600000 595200000 672000000 + 748800000 825600000 902400000 + 979200000 1056000000 1132800000 + 1190400000 1228800000 1305600000>; + + qcom,cpr-ro-scaling-factor = + < 0 0 3112 2666 2947 2543 2271 1979 + 2623 2317 2772 2450 0 0 0 0>, + < 0 0 3112 2666 2947 2543 2271 1979 + 2623 2317 2772 2450 0 0 0 0>, + < 0 0 3112 2666 2947 2543 2271 1979 + 2623 2317 2772 2450 0 0 0 0>, + < 0 0 3112 2666 2947 2543 2271 1979 + 2623 2317 2772 2450 0 0 0 0>, + < 0 0 2889 2528 2740 2426 2310 2040 + 2519 2257 2668 2372 0 0 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment = + /* Speed bin 0 */ + <30000 0 (-10000) (-10000) (-40000)>, + <30000 0 (-10000) (-10000) (-40000)>, + <30000 0 (-10000) (-10000) (-40000)>, + <55000 0 15000 15000 (-15000)>, + <55000 0 15000 15000 (-15000)>, + <55000 0 15000 15000 (-15000)>, + <55000 0 15000 15000 (-15000)>, + <55000 0 15000 15000 (-15000)>, + + /* Speed bin 1 */ + <30000 0 (-10000) (-10000) (-40000)>, + <30000 0 (-10000) (-10000) (-40000)>, + <30000 0 (-10000) (-10000) (-40000)>, + <55000 0 15000 15000 (-15000)>, + <55000 0 15000 15000 (-15000)>, + <55000 0 15000 15000 (-15000)>, + <55000 0 15000 15000 (-15000)>, + <55000 0 15000 15000 (-15000)>; + + qcom,cpr-closed-loop-voltage-fuse-adjustment = + /* Speed bin 0 */ + <10000 5000 0 0 0>, + <10000 5000 (-20000) 0 (-35000)>, + <10000 5000 (-20000) 0 (-35000)>, + <10000 5000 (-20000) 0 (-35000)>, + <10000 5000 (-20000) 0 (-35000)>, + <10000 5000 (-20000) 0 (-35000)>, + <10000 5000 (-20000) 0 (-35000)>, + <10000 5000 (-20000) 0 (-35000)>, + + /* Speed bin 1 */ + <10000 5000 0 0 0>, + <10000 5000 (-20000) 0 (-35000)>, + <10000 5000 (-20000) 0 (-35000)>, + <10000 5000 (-20000) 0 (-35000)>, + <10000 5000 (-20000) 0 (-35000)>, + <10000 5000 (-20000) 0 (-35000)>, + <10000 5000 (-20000) 0 (-35000)>, + <10000 5000 (-20000) 0 (-35000)>; + + qcom,allow-voltage-interpolation; + qcom,allow-quotient-interpolation; + qcom,cpr-scaled-open-loop-voltage-as-ceiling; + + qcom,cpr-aging-max-voltage-adjustment = <25000>; + qcom,cpr-aging-ref-corner = <13 13>; + qcom,cpr-aging-ro-scaling-factor = <3200>; + qcom,allow-aging-voltage-adjustment = + /* Speed bin 0 */ + <0 0 0 1 1 1 1 1>, + + /* Speed bin 1 */ + <0 0 0 1 1 1 1 1>; + }; + }; + + thread@1 { + qcom,cpr-thread-id = <1>; + qcom,cpr-consecutive-up = <0>; + qcom,cpr-consecutive-down = <3>; + qcom,cpr-up-threshold = <2>; + qcom,cpr-down-threshold = <2>; + + apc1_vreg: regulator { + regulator-name = "apc1_corner"; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <25>; + + qcom,cpr-pd-bypass-mask = <0xe0>; + qcom,cpr-fuse-corners = <5>; + qcom,cpr-fuse-combos = <16>; + qcom,cpr-speed-bins = <2>; + qcom,cpr-speed-bin-corners = <25 21>; + qcom,cpr-corners = + /* Speed bin 0 */ + <25 25 25 25 25 25 25 25>, + + /* Speed bin 1 */ + <21 21 21 21 21 21 21 21>; + + qcom,ldo-min-headroom-voltage = <150000>; + qcom,ldo-max-headroom-voltage = <470000>; + qcom,ldo-max-voltage = <890000>; + qcom,uses-mem-acc; + + qcom,cpr-corner-fmax-map = + /* Speed bin 0 */ + <1 4 9 13 25>, + + /* Speed bin 1 */ + <1 4 9 13 21>; + + qcom,cpr-voltage-ceiling = + /* Speed bin 0 */ + <670000 670000 670000 670000 745000 + 745000 745000 745000 745000 905000 + 905000 905000 905000 1140000 1140000 + 1140000 1140000 1140000 1140000 1140000 + 1140000 1140000 1140000 1140000 1140000>, + + /* Speed bin 1 */ + <670000 670000 670000 670000 745000 + 745000 745000 745000 745000 905000 + 905000 905000 905000 1140000 1140000 + 1140000 1140000 1140000 1140000 1140000 + 1140000>; + + qcom,cpr-voltage-floor = + /* Speed bin 0 */ + <470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000>, + + /* Speed bin 1 */ + <470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 + 470000>; + + qcom,cpr-floor-to-ceiling-max-range = + /* Speed bin 0 */ + <80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000>, + + /* Speed bin 1 */ + <80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 + 80000>; + + qcom,corner-frequencies = + /* Speed bin 0 */ + <307200000 403200000 480000000 + 556800000 652800000 729600000 + 806400000 883200000 940800000 + 1036800000 1113600000 1190400000 + 1248000000 1324800000 1401600000 + 1478400000 1555200000 1632000000 + 1708800000 1785600000 1824000000 + 1920000000 1996800000 2073600000 + 2150400000>, + + /* Speed bin 1 */ + <307200000 403200000 480000000 + 556800000 652800000 729600000 + 806400000 883200000 940800000 + 1036800000 1113600000 1190400000 + 1248000000 1324800000 1401600000 + 1478400000 1555200000 1632000000 + 1708800000 1785600000 1804800000>; + + qcom,cpr-ro-scaling-factor = + < 0 0 3112 2666 2947 2543 2271 1979 + 2623 2317 2772 2450 0 0 0 0>, + < 0 0 3112 2666 2947 2543 2271 1979 + 2623 2317 2772 2450 0 0 0 0>, + < 0 0 3112 2666 2947 2543 2271 1979 + 2623 2317 2772 2450 0 0 0 0>, + < 0 0 3112 2666 2947 2543 2271 1979 + 2623 2317 2772 2450 0 0 0 0>, + < 0 0 2889 2528 2740 2426 2310 2040 + 2519 2257 2668 2372 0 0 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment = + /* Speed bin 0 */ + <20000 0 15000 (-55000) 0>, + <20000 0 15000 (-55000) 0>, + <20000 0 15000 0 0>, + <35000 0 40000 25000 25000>, + <35000 0 40000 25000 25000>, + <35000 0 40000 25000 25000>, + <35000 0 40000 25000 25000>, + <35000 0 40000 25000 25000>, + + /* Speed bin 1 */ + <20000 0 15000 (-55000) 0>, + <20000 0 15000 (-55000) 0>, + <20000 0 15000 0 0>, + <35000 0 40000 25000 25000>, + <35000 0 40000 25000 25000>, + <35000 0 40000 25000 25000>, + <35000 0 40000 25000 25000>, + <35000 0 40000 25000 25000>; + + qcom,cpr-closed-loop-voltage-fuse-adjustment = + /* Speed bin 0 */ + <35000 35000 40000 (-30000) 40000>, + < 0 0 0 (-70000) 0>, + < 0 0 0 0 0>, + < 0 0 0 0 0>, + < 0 0 0 0 0>, + < 0 0 0 0 0>, + < 0 0 0 0 0>, + < 0 0 0 0 0>, + + /* Speed bin 1 */ + <35000 35000 40000 (-30000) 40000>, + < 0 0 0 (-70000) 0>, + < 0 0 0 0 0>, + < 0 0 0 0 0>, + < 0 0 0 0 0>, + < 0 0 0 0 0>, + < 0 0 0 0 0>, + < 0 0 0 0 0>; + + qcom,cpr-open-loop-voltage-adjustment = + /* Speed bin 0 */ + <(-15000) (-15000) (-15000) (-15000) + (-11000) (-12000) (-13000) (-14000) + (-15000) (-18000) (-21000) (-23000) + (-25000) (-25000) (-26000) (-26000) + (-27000) (-27000) (-28000) (-28000) + (-28000) (-29000) (-29000) (-30000) + (-30000)>, + + /* Speed bin 1 */ + <(-15000) (-15000) (-15000) (-15000) + (-11000) (-12000) (-13000) (-14000) + (-15000) (-18000) (-21000) (-23000) + (-25000) (-25000) (-26000) (-26000) + (-27000) (-27000) (-28000) (-28000) + (-28000)>; + qcom,cpr-open-loop-voltage-min-diff = + /* Speed bin 0 */ + <0 0 0 0 (-50000) 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0>, + + /* Speed bin 1 */ + <0 0 0 0 (-50000) 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0>; + + qcom,cpr-closed-loop-voltage-adjustment = + /* Speed bin 0 */ + <(-15000) (-15000) (-15000) (-15000) + (-11000) (-12000) (-13000) (-14000) + (-15000) (-18000) (-21000) (-23000) + (-25000) (-25000) (-26000) (-26000) + (-27000) (-27000) (-28000) (-28000) + (-28000) (-29000) (-29000) (-30000) + (-30000)>, + + /* Speed bin 1 */ + <(-15000) (-15000) (-15000) (-15000) + (-11000) (-12000) (-13000) (-14000) + (-15000) (-18000) (-21000) (-23000) + (-25000) (-25000) (-26000) (-26000) + (-27000) (-27000) (-28000) (-28000) + (-28000)>; + + qcom,allow-voltage-interpolation; + qcom,allow-quotient-interpolation; + qcom,cpr-scaled-open-loop-voltage-as-ceiling; + + qcom,cpr-aging-max-voltage-adjustment = <25000>; + qcom,cpr-aging-ref-corner = <13 13>; + qcom,cpr-aging-ro-scaling-factor = <3200>; + qcom,allow-aging-voltage-adjustment = + /* Speed bin 0 */ + <0 0 0 1 1 1 1 1>, + + /* Speed bin 1 */ + <0 0 0 1 1 1 1 1>; + + qcom,cpr-dynamic-floor-corner = <1>; + }; + }; + }; + + gfx_cpr: cpr3-ctrl@838000 { + compatible = "qcom,cpr3-msm8996-mmss-regulator"; + reg = <0x00838000 0x4000>, <0x00074000 0x1000>; + reg-names = "cpr_ctrl", "fuse_base"; + clocks = <&clock_mmss clk_mmss_rbcpr_clk>, + <&clock_mmss clk_mmss_rbcpr_ahb_clk>, + <&clock_mmss clk_mmss_mmagic_ahb_clk>; + clock-names = "core_clk", "iface_clk", "bus_clk"; + interrupts = <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "cpr"; + qcom,cpr-ctrl-name = "gfx"; + + qcom,cpr-sensor-time = <1000>; + qcom,cpr-loop-time = <5000000>; + qcom,cpr-idle-cycles = <15>; + qcom,cpr-step-quot-init-min = <10>; + qcom,cpr-step-quot-init-max = <13>; + qcom,cpr-count-mode = <2>; /* Staggered */ + + vdd-supply = <&pmi8994_s2>; + mem-acc-supply = <&gfx_mem_acc_vreg>; + + qcom,voltage-step = <5000>; + + qcom,cpr-enable; + + qcom,cpr-aging-ref-voltage = <905000>; + + thread@0 { + qcom,cpr-thread-id = <0>; + qcom,cpr-consecutive-up = <0>; + qcom,cpr-consecutive-down = <2>; + qcom,cpr-up-threshold = <0>; + qcom,cpr-down-threshold = <2>; + + gfx_vreg: regulator { + regulator-name = "gfx_corner"; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <8>; + + qcom,cpr-fuse-corners = <4>; + qcom,cpr-fuse-combos = <8>; + qcom,cpr-corners = <8>; + + qcom,cpr-corner-fmax-map = <2 4 6 8>; + + qcom,cpr-voltage-ceiling = + <400000 670000 670000 745000 825000 + 905000 960000 1015000>; + qcom,cpr-voltage-floor = + <400000 520000 520000 520000 520000 + 520000 520000 520000>; + + qcom,mem-acc-voltage = <1 1 1 1 2 2 2 2>; + + qcom,corner-frequencies = + <0 133000000 214000000 315000000 + 401800000 510000000 560000000 + 624000000>; + + qcom,cpr-target-quotients = + < 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0>, + < 0 0 0 0 0 0 185 179 + 291 299 304 319 0 0 0 0>, + < 0 0 0 0 0 0 287 273 + 425 426 443 453 0 0 0 0>, + < 0 0 0 0 0 0 414 392 + 584 576 608 612 0 0 0 0>, + < 0 0 0 0 0 0 459 431 + 684 644 692 679 0 0 0 0>, + < 0 0 0 0 0 0 577 543 + 798 768 823 810 0 0 0 0>, + < 0 0 0 0 0 0 669 629 + 886 864 924 911 0 0 0 0>, + < 0 0 0 0 0 0 771 725 + 984 970 1036 1024 0 0 0 0>; + + qcom,cpr-ro-scaling-factor = + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment = + < 0 0 30000 (-10000)>, + <(-30000) (-30000) 0 (-10000)>, + <(-30000) (-30000) 0 (-10000)>, + <(-70000) 0 0 0>, + <(-70000) 0 0 0>, + <(-70000) 0 0 0>, + <(-70000) 0 0 0>, + <(-70000) 0 0 0>; + qcom,cpr-closed-loop-voltage-adjustment = + < 0 45000 (-5000) 20000 20000 30000 + 10000 (-5000)>, + < 0 45000 (-5000) 20000 20000 30000 + 10000 (-5000)>, + < 0 30000 60000 40000 40000 45000 + 25000 35000>, + < 0 0 30000 10000 10000 45000 + 25000 25000>, + < 0 0 30000 10000 10000 45000 + 25000 25000>, + < 0 0 30000 10000 10000 45000 + 25000 25000>, + < 0 0 30000 10000 10000 45000 + 25000 25000>, + < 0 0 30000 10000 10000 45000 + 25000 25000>; + qcom,cpr-floor-to-ceiling-max-range = + <0 70000 70000 75000 80000 90000 95000 + 100000>; + + qcom,cpr-fused-closed-loop-voltage-adjustment-map = + <0 0 0 0 0 0 0 0>, + <0 0 0 0 0 0 0 0>, + <0 0 0 0 0 0 0 0>, + <0 0 0 0 0 0 0 0>, + <0 2 2 2 2 0 0 4>, + <0 2 2 2 2 0 0 4>, + <0 2 2 2 2 0 0 4>, + <0 2 2 2 2 0 0 4>; + + qcom,allow-voltage-interpolation; + qcom,cpr-scaled-open-loop-voltage-as-ceiling; + + qcom,cpr-aging-max-voltage-adjustment = <25000>; + qcom,cpr-aging-ref-corner = <6>; + qcom,cpr-aging-ro-scaling-factor = <2950>; + qcom,allow-aging-voltage-adjustment = + <0 0 0 1 1 1 1 1>; + }; + }; + }; +/* Memory accelerator regulators */ + apc0_pwrcl_mem_acc_vreg: apc0-pwrcl-mem-acc-regulator { + compatible = "qcom,mem-acc-regulator"; + reg = <0x099e00c0 0x4>; + reg-names = "acc-sel-l1"; + regulator-name = "apc0_pwrcl_mem_acc_corner"; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <2>; + qcom,corner-acc-map = <0x3 0x0>; + + qcom,acc-sel-l1-bit-pos = <0>; + qcom,acc-sel-l1-bit-size = <2>; + }; + + apc1_perfcl_mem_acc_vreg: apc1-perfcl-mem-acc-regulator { + compatible = "qcom,mem-acc-regulator"; + reg = <0x099e00c0 0x4>; + reg-names = "acc-sel-l1"; + regulator-name = "apc1_perfcl_mem_acc_corner"; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <2>; + qcom,corner-acc-map = <0x3 0x0>; + + qcom,acc-sel-l1-bit-pos = <2>; + qcom,acc-sel-l1-bit-size = <2>; + }; + + apcc_l3_mem_acc_vreg: apcc-l3-mem-acc-regulator { + compatible = "qcom,mem-acc-regulator"; + reg = <0x099e00c0 0x4>; + reg-names = "acc-sel-l1"; + regulator-name = "apcc_l3_mem_acc_corner"; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <2>; + qcom,corner-acc-map = <0x1 0x0>; + + qcom,acc-sel-l1-bit-pos = <4>; + qcom,acc-sel-l1-bit-size = <1>; + }; + + gfx_mem_acc_vreg: regulator@007af004 { + compatible = "qcom,mem-acc-regulator"; + reg = <0x007af004 0x4>; + reg-names = "acc-sel-l1"; + regulator-name = "gfx_mem_acc_corner"; + regulator-min-microvolt = <1>; + regulator-max-microvolt = <2>; + + qcom,corner-acc-map = <0x1 0x0>; + qcom,acc-sel-l1-bit-pos = <0>; + qcom,acc-sel-l1-bit-size = <1>; + }; + +/* Kryo regulators */ + kryo0_vreg: regulator@99a2000 { + compatible = "qcom,kryo-regulator"; + regulator-name = "kryo0"; + reg = <0x99a2000 0x1000>, <0x99e0000 0x1000>, + <0x9820000 0x1000>; + reg-names = "pm-apc", "pm-apcc", "apcs-csr"; + regulator-min-microvolt = <468197>; + regulator-max-microvolt = <892467>; + qcom,ldo-default-voltage = <750000>; + qcom,retention-voltage = <520000>; + qcom,ldo-headroom-voltage = <150000>; + qcom,vref-functional-step-voltage = <4466>; + qcom,vref-functional-min-voltage = <325285>; + qcom,vref-retention-step-voltage = <4466>; + qcom,vref-retention-min-voltage = <325285>; + qcom,ldo-config-init = <0xf1f0e471>; + qcom,apm-config-init = <0x0>; + qcom,cluster-num = <0>; + kryo0_retention_vreg: regulator { + regulator-name = "kryo0-retention"; + regulator-min-microvolt = <468197>; + regulator-max-microvolt = <892467>; + }; + }; + + kryo1_vreg: regulator@99d2000 { + compatible = "qcom,kryo-regulator"; + regulator-name = "kryo1"; + reg = <0x99d2000 0x1000>, <0x99e0000 0x1000>, + <0x9820000 0x1000>; + reg-names = "pm-apc", "pm-apcc", "apcs-csr"; + regulator-min-microvolt = <468197>; + regulator-max-microvolt = <892467>; + qcom,ldo-default-voltage = <750000>; + qcom,retention-voltage = <520000>; + qcom,ldo-headroom-voltage = <150000>; + qcom,vref-functional-step-voltage = <4466>; + qcom,vref-functional-min-voltage = <325285>; + qcom,vref-retention-step-voltage = <4466>; + qcom,vref-retention-min-voltage = <325285>; + qcom,cluster-num = <1>; + qcom,ldo-config-init = <0xf1f0e471>; + qcom,apm-config-init = <0x0>; + kryo1_retention_vreg: regulator { + regulator-name = "kryo1-retention"; + regulator-min-microvolt = <468197>; + regulator-max-microvolt = <892467>; + }; + }; + +/* Miscellaneous regulators */ + spi_eth_vreg: spi_eth_phy_vreg { + compatible = "regulator-fixed"; + regulator-name = "ethernet_phy"; + gpio = <&pm8994_mpps 5 0>; + enable-active-high; + status = "disabled"; + }; + + usb_otg_switch: usb-otg-switch { + compatible = "regulator-fixed"; + regulator-name = "usb_otg_vreg"; + vin-supply = <&smbcharger_external_otg>; + enable-active-high; + gpio = <&pmi8994_gpios 5 0>; + status = "disabled"; + }; + + /* Rome 3.3V supply */ + rome_vreg: rome_vreg { + compatible = "regulator-fixed"; + regulator-name = "rome_vreg"; + startup-delay-us = <4000>; + enable-active-high; + gpio = <&pm8994_gpios 9 0>; + }; +}; + +&pmi8994_charger { + otg-parent-supply = <&pmi8994_boost_5v>; + smbcharger_charger_otg: qcom,smbcharger-boost-otg { + regulator-name = "smbcharger_charger_otg"; + }; + + smbcharger_external_otg: qcom,smbcharger-external-otg { + regulator-name = "smbcharger_external_otg"; + }; +}; + diff --git a/arch/arm64/boot/dts/qcom/msm8996-sim.dtsi b/arch/arm64/boot/dts/qcom/msm8996-sim.dtsi new file mode 100644 index 000000000000..a88bd7554d5d --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-sim.dtsi @@ -0,0 +1,102 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8996-pinctrl.dtsi" +#include "dsi-panel-sim-video.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 SIM"; + compatible = "qcom,msm8996-sim", "qcom,msm8996", "qcom,sim"; + qcom,board-id = <16 0>; +}; + +&uartblsp2dm1 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&blsp1_uart2 { + status = "ok"; +}; + +&sdhc_1 { + vdd-supply = <&pm8994_l20>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 570000>; + + vdd-io-supply = <&pm8994_s4>; + qcom,vdd-io-always-on; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <110 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 96000000 192000000 384000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&pm8994_l21>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <200 800000>; + + vdd-io-supply = <&pm8994_l13>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + status = "ok"; +}; + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_sim_vid>; +}; + +&ufsphy1 { + status = "ok"; +}; + +&ufs1 { + status = "ok"; +}; + +&usb3 { + qcom,skip-charger-detection; + qcom,vbus-present; + dwc3@6a00000 { + maximum-speed = "high-speed"; + }; +}; + +&ssphy { + qcom,emulation; +}; + +&cpp { + status = "disabled"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-smp2p.dtsi b/arch/arm64/boot/dts/qcom/msm8996-smp2p.dtsi new file mode 100644 index 000000000000..35ec2d23e8cf --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-smp2p.dtsi @@ -0,0 +1,247 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <dt-bindings/interrupt-controller/arm-gic.h> + +&soc { + qcom,smp2p-modem@9820010 { + compatible = "qcom,smp2p"; + reg = <0x9820010 0x4>; + qcom,remote-pid = <1>; + qcom,irq-bitmask = <0x4000>; + interrupts = <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>; + }; + + qcom,smp2p-adsp@9820010 { + compatible = "qcom,smp2p"; + reg = <0x9820010 0x4>; + qcom,remote-pid = <2>; + qcom,irq-bitmask = <0x400>; + interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>; + }; + + qcom,smp2p-dsps@9820010 { + compatible = "qcom,smp2p"; + reg = <0x9820010 0x4>; + qcom,remote-pid = <3>; + qcom,irq-bitmask = <0x4000000>; + interrupts = <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>; + }; + + 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_smp2p_3_in: qcom,smp2pgpio-smp2p-3-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <3>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_3_in { + compatible = "qcom,smp2pgpio_test_smp2p_3_in"; + gpios = <&smp2pgpio_smp2p_3_in 0 0>; + }; + + smp2pgpio_smp2p_3_out: qcom,smp2pgpio-smp2p-3-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "smp2p"; + qcom,remote-pid = <3>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio_test_smp2p_3_out { + compatible = "qcom,smp2pgpio_test_smp2p_3_out"; + gpios = <&smp2pgpio_smp2p_3_out 0 0>; + }; + + smp2pgpio_sleepstate_3_out: qcom,smp2pgpio-sleepstate-gpio-3-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "sleepstate"; + qcom,remote-pid = <3>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + qcom,smp2pgpio-sleepstate-3-out { + compatible = "qcom,smp2pgpio_sleepstate_3_out"; + gpios = <&smp2pgpio_sleepstate_3_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>; + }; + + /* ssr - inbound entry from ssc */ + smp2pgpio_ssr_smp2p_3_in: qcom,smp2pgpio-ssr-smp2p-3-in { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "slave-kernel"; + qcom,remote-pid = <3>; + qcom,is-inbound; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + + /* ssr - outbound entry to ssc */ + smp2pgpio_ssr_smp2p_3_out: qcom,smp2pgpio-ssr-smp2p-3-out { + compatible = "qcom,smp2pgpio"; + qcom,entry-name = "master-kernel"; + qcom,remote-pid = <3>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v2-dtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v2-dtp.dts new file mode 100644 index 000000000000..4fce8ef672bd --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v2-dtp.dts @@ -0,0 +1,22 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v2.dtsi" +#include "msm8996-dtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM8996 V2 DTP"; + compatible = "qcom,msm8996-dtp", "qcom,msm8996", "qcom,qrd"; + qcom,board-id= <0x1000b 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v2-fluid.dts b/arch/arm64/boot/dts/qcom/msm8996-v2-fluid.dts new file mode 100644 index 000000000000..c104c86ba3a5 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v2-fluid.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v2.dtsi" +#include "msm8996-fluid.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v2 FLUID"; + compatible = "qcom,msm8996-fluid", "qcom,msm8996", "qcom,fluid"; + qcom,board-id = <3 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v2-liquid.dts b/arch/arm64/boot/dts/qcom/msm8996-v2-liquid.dts new file mode 100644 index 000000000000..a5aaee474836 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v2-liquid.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v2.dtsi" +#include "msm8996-liquid.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v2 LiQUID"; + compatible = "qcom,msm8996-liquid", "qcom,msm8996", "qcom,liquid"; + qcom,board-id = <9 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-cdp.dts new file mode 100644 index 000000000000..a8adcdc07b89 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v2.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v2 + PMI8994 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-mtp.dts new file mode 100644 index 000000000000..e28a3eeaccb6 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v2.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v2 + PMI8994 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pm8004-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pm8004-cdp.dts new file mode 100644 index 000000000000..f5cf0f62ce45 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pm8004-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v2.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v2 + PMI8994 + PM8004 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pm8004-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pm8004-mtp.dts new file mode 100644 index 000000000000..97909c3ef16a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pm8004-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v2.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v2 + PMI8994 + PM8004 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pm8004-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pm8004-pmk8001-cdp.dts new file mode 100644 index 000000000000..080efc93abe1 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pm8004-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v2.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v2 + PMI8994 + PM8004 + PMK8001 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pm8004-pmk8001-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pm8004-pmk8001-mtp.dts new file mode 100644 index 000000000000..0b958073840b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pm8004-pmk8001-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v2.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004-pmk8001.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v2 + PMI8994 + PM8004 + PMK8001 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pmk8001-cdp.dts new file mode 100644 index 000000000000..7c6a7dd36258 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "msm8996-v2.dtsi" +#include "msm8996-pm8994-pmi8994-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v2 + PMI8994 + PMK8001 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pmk8001-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pmk8001-mtp.dts new file mode 100644 index 000000000000..673fd2264007 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v2-pmi8994-pmk8001-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "msm8996-v2.dtsi" +#include "msm8996-pm8994-pmi8994-pmk8001.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v2 + PMI8994 + PMK8001 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v2.dtsi b/arch/arm64/boot/dts/qcom/msm8996-v2.dtsi new file mode 100644 index 000000000000..042fb3234b9e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v2.dtsi @@ -0,0 +1,713 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * As a general rule, only version-specific property overrides should be placed + * inside this file. Common device definitions should be placed inside the + * msm8996.dtsi file. + */ + +#include "msm8996.dtsi" +#include "msm8996-coresight-v2.dtsi" +#include "msm-arm-smmu-impl-defs-8996-v2.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v2"; + qcom,msm-id = <246 0x20001>; +}; + +&clock_gcc { + compatible = "qcom,gcc-8996-v2"; +}; + +&clock_debug { + compatible = "qcom,cc-debug-8996-v2"; +}; + +&clock_mmss { + compatible = "qcom,mmsscc-8996-v2"; +}; + +&clock_gpu { + compatible = "qcom,gpucc-8996-v2"; + qcom,gfx3d_clk_src_v2-opp-handle = <&msm_gpu>; + qcom,gfxfreq-speedbin0 = + < 0 0 0 >, + < 125000000 3 4 >, + < 210000000 3 4 >, + < 300000000 3 4 >, + < 500000000 4 5 >, + < 604800000 5 7 >; + qcom,gfxfreq-mx-speedbin0 = + < 0 0 >, + < 125000000 4 >, + < 210000000 4 >, + < 300000000 4 >, + < 500000000 5 >, + < 604800000 7 >; +}; + +&gdsc_gpu_gx { + clock-names = "core_clk", "core_root_clk"; + clocks = <&clock_gpu clk_gpu_gx_gfx3d_clk>, + <&clock_gpu clk_gfx3d_clk_src_v2>; +}; + +&pm8994_s11 { + regulator-max-microvolt = <1015000>; + /delete-property/ qcom,recal-mask; +}; + +&pm8994_s11_limit { + regulator-max-microvolt = <1015000>; +}; + +&apc_apm { + /delete-property/ qcom,clock-source-override; +}; + +&apcc_cpr { + compatible = "qcom,cpr3-msm8996-v2-hmss-regulator"; + + qcom,cpr-count-mode = <2>; /* Staggered */ + /delete-property/ qcom,cpr-count-repeat; + + qcom,apm-ctrl = <&apc_apm>; + qcom,apm-threshold-voltage = <850000>; + qcom,apm-hysteresis-voltage = <5000>; + + qcom,cpr-enable; + qcom,cpr-hw-closed-loop; + + /delete-property/ qcom,cpr-aging-ref-voltage; + /delete-property/ proxy-supply; + + thread@0 { + qcom,cpr-consecutive-down = <2>; + qcom,cpr-up-threshold = <0>; + }; + + thread@1 { + qcom,cpr-consecutive-down = <2>; + qcom,cpr-up-threshold = <0>; + }; +}; + +&apc0_pwrcl_vreg { + regulator-min-microvolt = <1>; + regulator-max-microvolt = <19>; + + qcom,cpr-fuse-corners = <5>; + qcom,cpr-fuse-combos = <4>; + /delete-property/ qcom,cpr-speed-bins; + /delete-property/ qcom,cpr-speed-bin-corners; + qcom,cpr-corners = <19>; + + qcom,ldo-max-voltage = <805000>; + + qcom,cpr-corner-fmax-map = <1 2 6 11 19>; + + qcom,cpr-voltage-ceiling = + <670000 670000 745000 745000 745000 745000 905000 905000 + 905000 905000 905000 1015000 1015000 1015000 1015000 1015000 + 1015000 1015000 1015000>; + qcom,cpr-voltage-floor = + <470000 470000 470000 470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 470000 470000 470000 + 470000 470000 470000>; + qcom,cpr-floor-to-ceiling-max-range = + <80000 80000 80000 80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 80000 80000 80000 + 80000 80000 80000>; + + qcom,corner-frequencies = + <192000000 268800000 307200000 345600000 403200000 + 480000000 576000000 633600000 729600000 806400000 + 883200000 960000000 1017600000 1113600000 1190400000 + 1267200000 1344000000 1420800000 1459200000>; + + qcom,cpr-ro-scaling-factor = + < 0 0 0 0 2222 2275 2506 2491 2649 2640 2886 2866 0 + 0 0 0>, + < 0 0 0 0 2222 2275 2506 2491 2649 2640 2886 2866 0 + 0 0 0>, + < 0 0 0 0 2222 2275 2506 2491 2649 2640 2886 2866 0 + 0 0 0>, + < 0 0 0 0 2147 2226 2310 2312 2450 2447 2603 2600 0 + 0 0 0>, + < 0 0 0 0 1989 2079 2066 2083 2193 2201 2283 2296 0 + 0 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment = + <0 0 0 0 0>, + <0 0 0 0 0>, + <0 0 0 0 0>, + <0 0 0 0 0>; + qcom,cpr-closed-loop-voltage-fuse-adjustment = + <0 0 0 0 0>, + <0 0 0 0 0>, + <0 0 0 0 0>, + <0 0 0 0 0>; + + /delete-property/ qcom,cpr-open-loop-voltage-adjustment; + /delete-property/ qcom,cpr-open-loop-voltage-min-diff; + /delete-property/ qcom,cpr-closed-loop-voltage-adjustment; + + /delete-property/ qcom,cpr-aging-max-voltage-adjustment; + /delete-property/ qcom,cpr-aging-ref-corner; + /delete-property/ qcom,cpr-aging-ro-scaling-factor; + /delete-property/ qcom,allow-aging-voltage-adjustment; +}; + +&apc0_cbf_vreg { + regulator-min-microvolt = <1>; + regulator-max-microvolt = <10>; + + qcom,cpr-fuse-corners = <5>; + qcom,cpr-fuse-combos = <4>; + /delete-property/ qcom,cpr-speed-bins; + /delete-property/ qcom,cpr-speed-bin-corners; + qcom,cpr-corners = <10>; + + qcom,cpr-corner-fmax-map = <1 2 5 9 10>; + + qcom,cpr-voltage-ceiling = + <605000 670000 745000 745000 745000 905000 905000 905000 + 905000 1015000>; + qcom,cpr-voltage-floor = + <470000 470000 470000 470000 470000 470000 470000 470000 + 470000 470000>; + qcom,cpr-floor-to-ceiling-max-range = + <80000 80000 80000 80000 80000 80000 80000 80000 + 80000 80000>; + + qcom,corner-frequencies = + <150000000 307200000 384000000 499200000 595200000 + 691200000 787200000 883200000 960000000 1036800000>; + + qcom,cpr-ro-scaling-factor = + < 0 0 0 0 2222 2275 2506 2491 2649 2640 2886 2866 0 + 0 0 0>, + < 0 0 0 0 2222 2275 2506 2491 2649 2640 2886 2866 0 + 0 0 0>, + < 0 0 0 0 2222 2275 2506 2491 2649 2640 2886 2866 0 + 0 0 0>, + < 0 0 0 0 2147 2226 2310 2312 2450 2447 2603 2600 0 + 0 0 0>, + < 0 0 0 0 1989 2079 2066 2083 2193 2201 2283 2296 0 + 0 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment = + <0 0 0 0 0>, + <0 0 0 0 0>, + <0 0 0 0 (-130000)>, + <0 0 0 0 (-130000)>; + qcom,cpr-closed-loop-voltage-fuse-adjustment = + <0 0 0 0 0>, + <0 0 0 0 0>, + <0 0 0 0 (-115000)>, + <0 0 0 0 (-115000)>; + + /delete-property/ qcom,cpr-aging-max-voltage-adjustment; + /delete-property/ qcom,cpr-aging-ref-corner; + /delete-property/ qcom,cpr-aging-ro-scaling-factor; + /delete-property/ qcom,allow-aging-voltage-adjustment; + /delete-property/ qcom,proxy-consumer-enable; + /delete-property/ qcom,proxy-consumer-voltage; +}; + +&apc1_vreg { + regulator-min-microvolt = <1>; + regulator-max-microvolt = <18>; + + qcom,cpr-fuse-corners = <5>; + qcom,cpr-fuse-combos = <4>; + /delete-property/ qcom,cpr-speed-bins; + /delete-property/ qcom,cpr-speed-bin-corners; + qcom,cpr-corners = <18>; + + qcom,ldo-max-voltage = <805000>; + + qcom,cpr-corner-fmax-map = <1 3 5 11 18>; + + qcom,cpr-voltage-ceiling = + <670000 670000 670000 745000 745000 905000 905000 905000 + 905000 905000 905000 1015000 1015000 1015000 1015000 1015000 + 1015000 1015000>; + qcom,cpr-voltage-floor = + <470000 470000 470000 470000 470000 470000 470000 470000 + 470000 470000 470000 470000 470000 470000 470000 470000 + 470000 470000>; + qcom,cpr-floor-to-ceiling-max-range = + <80000 80000 80000 80000 80000 80000 80000 80000 + 80000 80000 80000 80000 80000 80000 80000 80000 + 80000 80000>; + + qcom,corner-frequencies = + <307200000 345600000 403200000 480000000 576000000 + 633600000 729600000 806400000 883200000 960000000 + 1017600000 1113600000 1190400000 1267200000 1344000000 + 1420800000 1497600000 1593600000>; + + qcom,cpr-ro-scaling-factor = + < 0 0 0 0 2212 2273 2517 2506 2663 2650 2908 2891 0 + 0 0 0>, + < 0 0 0 0 2212 2273 2517 2506 2663 2650 2908 2891 0 + 0 0 0>, + < 0 0 0 0 2212 2273 2517 2506 2663 2650 2908 2891 0 + 0 0 0>, + < 0 0 0 0 2152 2237 2321 2337 2475 2469 2636 2612 0 + 0 0 0>, + < 0 0 0 0 2001 2102 2092 2090 2203 2210 2297 2297 0 + 0 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment = + <0 0 0 5000 0>, + <0 0 0 5000 0>, + <0 0 0 0 0>, + <0 0 0 0 0>; + qcom,cpr-closed-loop-voltage-fuse-adjustment = + <0 0 0 20000 0>, + <0 0 0 20000 0>, + <0 0 0 0 0>, + <0 0 0 0 0>; + + /delete-property/ qcom,cpr-open-loop-voltage-adjustment; + /delete-property/ qcom,cpr-open-loop-voltage-min-diff; + /delete-property/ qcom,cpr-closed-loop-voltage-adjustment; + + /delete-property/ qcom,cpr-aging-max-voltage-adjustment; + /delete-property/ qcom,cpr-aging-ref-corner; + /delete-property/ qcom,cpr-aging-ro-scaling-factor; + /delete-property/ qcom,allow-aging-voltage-adjustment; + + /delete-property/ qcom,cpr-dynamic-floor-corner; +}; + +&gfx_cpr { + system-supply = <&pm8994_s1_corner>; + qcom,cpr-enable; + + /delete-property/ qcom,cpr-aging-ref-voltage; +}; + +&gfx_vreg { + regulator-min-microvolt = <1>; + regulator-max-microvolt = <5>; + + qcom,cpr-fuse-corners = <4>; + qcom,cpr-fuse-combos = <8>; + qcom,cpr-corners = <5>; + + qcom,cpr-corner-fmax-map = <2 3 4 5>; + + qcom,cpr-voltage-ceiling = + <400000 670000 745000 905000 1015000>; + qcom,cpr-voltage-floor = + <400000 520000 520000 520000 520000>; + + qcom,system-voltage = <2 2 2 2 4>; + qcom,mem-acc-voltage = <1 1 1 2 2>; + + qcom,corner-frequencies = + <0 210000000 300000000 500000000 604800000>; + + qcom,cpr-target-quotients = + < 0 0 0 0 249 232 0 394 0 422 0 0 0 + 0 0 0>, + < 0 0 0 0 249 232 0 394 0 422 0 0 0 + 0 0 0>, + < 0 0 0 0 400 363 0 565 0 603 0 0 0 + 0 0 0>, + < 0 0 0 0 669 601 0 851 0 905 0 0 0 + 0 0 0>, + < 0 0 0 0 899 806 0 1084 0 1149 0 0 0 + 0 0 0>; + + qcom,cpr-ro-scaling-factor = + < 0 0 0 0 2268 2004 0 2408 0 2539 0 0 0 + 0 0 0>, + < 0 0 0 0 2268 2004 0 2408 0 2539 0 0 0 + 0 0 0>, + < 0 0 0 0 2268 2004 0 2408 0 2539 0 0 0 + 0 0 0>, + < 0 0 0 0 2268 2004 0 2408 0 2539 0 0 0 + 0 0 0>, + < 0 0 0 0 2268 2004 0 2408 0 2539 0 0 0 + 0 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment = + <0 (-5000) (-30000) (-115000)>; + qcom,cpr-closed-loop-voltage-adjustment = + <0 0 0 (-10000) (-65000)>; + qcom,cpr-floor-to-ceiling-max-range = + <0 130000 40000 85000 85000>; + + /delete-property/ qcom,cpr-fused-closed-loop-voltage-adjustment-map; + + /delete-property/ qcom,cpr-aging-max-voltage-adjustment; + /delete-property/ qcom,cpr-aging-ref-corner; + /delete-property/ qcom,cpr-aging-ro-scaling-factor; + /delete-property/ qcom,allow-aging-voltage-adjustment; +}; + +&kryo0_vreg { + regulator-min-microvolt = <468864>; + regulator-max-microvolt = <808896>; + qcom,vref-functional-step-voltage = <4048>; + qcom,vref-functional-min-voltage = <294800>; + qcom,vref-retention-step-voltage = <4462>; + qcom,vref-retention-min-voltage = <324950>; + qcom,ldo-config-init = <0x31f0e471>; +}; + +&kryo0_retention_vreg { + regulator-min-microvolt = <467734>; + regulator-max-microvolt = <891624>; +}; + +&kryo1_vreg { + regulator-min-microvolt = <468864>; + regulator-max-microvolt = <808896>; + qcom,vref-functional-step-voltage = <4048>; + qcom,vref-functional-min-voltage = <294800>; + qcom,vref-retention-step-voltage = <4462>; + qcom,vref-retention-min-voltage = <324950>; + qcom,ldo-config-init = <0x31f0e471>; +}; + +&kryo1_retention_vreg { + regulator-min-microvolt = <467734>; + regulator-max-microvolt = <891624>; +}; + +/* GPU overrides */ +&msm_gpu { + /* Updated chip ID */ + qcom,chipid = <0x05030001>; + + qcom,initial-pwrlevel = <3>; + qcom,bus-width = <32>; + + /* Quirks */ + qcom,gpu-quirk-two-pass-use-wfi; + qcom,gpu-quirk-iommu-sync; + + /* Power levels */ + qcom,gpu-pwrlevels { + #address-cells = <1>; + #size-cells = <0>; + + compatible = "qcom,gpu-pwrlevels"; + + qcom,gpu-pwrlevel@0 { + reg = <0>; + qcom,gpu-freq = <604800000>; + qcom,bus-freq = <11>; + qcom,bus-min = <10>; + qcom,bus-max = <11>; + }; + + qcom,gpu-pwrlevel@1 { + reg = <1>; + qcom,gpu-freq = <500000000>; + qcom,bus-freq = <9>; + qcom,bus-min = <8>; + qcom,bus-max = <10>; + }; + + qcom,gpu-pwrlevel@2 { + reg = <2>; + qcom,gpu-freq = <300000000>; + qcom,bus-freq = <6>; + qcom,bus-min = <5>; + qcom,bus-max = <7>; + }; + + qcom,gpu-pwrlevel@3 { + reg = <3>; + qcom,gpu-freq = <210000000>; + qcom,bus-freq = <4>; + qcom,bus-min = <3>; + qcom,bus-max = <5>; + }; + + qcom,gpu-pwrlevel@4 { + reg = <4>; + qcom,gpu-freq = <125000000>; + qcom,bus-freq = <2>; + qcom,bus-min = <1>; + qcom,bus-max = <3>; + }; + qcom,gpu-pwrlevel@5 { + reg = <5>; + qcom,gpu-freq = <27000000>; + qcom,bus-freq = <0>; + qcom,bus-min = <0>; + qcom,bus-max = <0>; + }; + }; +}; + +&mdss_mdp { + gdsc-venus-supply = <&gdsc_venus>; +}; + +&mdss_dsi { + gdsc-venus-supply = <&gdsc_venus>; + qcom,core-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,core-supply-entry@0 { + reg = <0>; + qcom,supply-name = "gdsc-venus"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + + qcom,core-supply-entry@1 { + reg = <1>; + 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_hdmi_tx { + hpd-gdsc-venus-supply = <&gdsc_venus>; + qcom,supply-names = "hpd-gdsc-venus", "hpd-gdsc"; + qcom,min-voltage-level = <0 0>; + qcom,max-voltage-level = <0 0>; + qcom,enable-load = <0 0>; + qcom,disable-load = <0 0>; +}; + +&mdss_dsi0_pll { + gdsc-venus-supply = <&gdsc_venus>; + qcom,platform-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,platform-supply-entry@0 { + reg = <0>; + qcom,supply-name = "gdsc-venus"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + + qcom,platform-supply-entry@1 { + reg = <1>; + 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 { + gdsc-venus-supply = <&gdsc_venus>; + qcom,platform-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,platform-supply-entry@0 { + reg = <0>; + qcom,supply-name = "gdsc-venus"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + + qcom,platform-supply-entry@1 { + reg = <1>; + 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_hdmi_pll { + gdsc-venus-supply = <&gdsc_venus>; + qcom,platform-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + + qcom,platform-supply-entry@0 { + reg = <0>; + qcom,supply-name = "gdsc-venus"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + + qcom,platform-supply-entry@1 { + reg = <1>; + qcom,supply-name = "gdsc"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + }; + + qcom,platform-supply-entry@2 { + reg = <2>; + 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,platform-supply-entry@3 { + reg = <3>; + qcom,supply-name = "vcca"; + qcom,supply-min-voltage = <925000>; + qcom,supply-max-voltage = <925000>; + qcom,supply-enable-load = <10000>; + qcom,supply-disable-load = <100>; + }; + }; +}; + +&gdsc_venus { + proxy-supply = <&gdsc_venus>; + qcom,proxy-consumer-enable; +}; + +&soc { + tsens1: tsens@4ad000 { + compatible = "qcom,msm8996-tsens"; + reg = <0x4ac000 0x2000>, + <0x75230 0x1000>; + reg-names = "tsens_physical", "tsens_eeprom_physical"; + interrupts = <0 184 0>, <0 430 0>; + interrupt-names = "tsens-upper-lower", "tsens-critical"; + qcom,client-id = <13 14 15 16 17 18 19 20>; + qcom,sensor-id = <1 6 7 0 2 3 4 5>; + qcom,sensors = <8>; + qcom,slope = <2901 2846 3200 3200 3200 3200 3200 3200>; + }; + + ipa_hw: qcom,ipa@680000 { + compatible = "qcom,ipa"; + reg = <0x680000 0x4effc>, + <0x684000 0x26934>; + reg-names = "ipa-base", "bam-base"; + interrupts = <0 333 0>, + <0 432 0>; + interrupt-names = "ipa-irq", "bam-irq"; + qcom,ipa-hw-ver = <5>; /* IPA core version = IPAv2.5 */ + qcom,ipa-hw-mode = <0>; + qcom,ee = <0>; + qcom,use-ipa-tethering-bridge; + qcom,ipa-bam-remote-mode; + qcom,modem-cfg-emb-pipe-flt; + clocks = <&clock_gcc clk_ipa_clk>; + clock-names = "core_clk"; + qcom,use-dma-zone; + }; + + qcom,msm-thermal{ + qcom,vdd-gfx-rstr{ + qcom,levels = <4 5 5>; /* Nominal, Turbo, Turbo */ + }; + }; + + jtag_mm0: jtagmm@3840000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x3840000 0x1000>; + reg-names = "etm-base"; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,coresight-jtagmm-cpu = <&CPU0>; + qcom,si-enable; + qcom,save-restore-disable; + }; + + jtag_mm1: jtagmm@3940000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x3940000 0x1000>; + reg-names = "etm-base"; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,coresight-jtagmm-cpu = <&CPU1>; + qcom,si-enable; + qcom,save-restore-disable; + }; + + jtag_mm2: jtagmm@3a40000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x3a40000 0x1000>; + reg-names = "etm-base"; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,coresight-jtagmm-cpu = <&CPU2>; + qcom,si-enable; + qcom,save-restore-disable; + }; + + jtag_mm3: jtagmm@3b40000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x3b40000 0x1000>; + reg-names = "etm-base"; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,coresight-jtagmm-cpu = <&CPU3>; + qcom,si-enable; + qcom,save-restore-disable; + }; +}; + +&tsens0 { + interrupts = <0 458 0>, <0 445 0>; + qcom,sensors = <13>; + qcom,slope = <2901 2846 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200>; +}; + +&mdss_hdmi_pll { + compatible = "qcom,mdss_hdmi_pll_8996_v2"; +}; + +&mdss_hdmi_tx { + status = "ok"; +}; + +&ssphy { + qcom,qmp-misc-config; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-dtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-dtp.dts new file mode 100644 index 000000000000..a9a80a49d7fe --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-dtp.dts @@ -0,0 +1,22 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-dtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM8996 V3 DTP"; + compatible = "qcom,msm8996-dtp", "qcom,msm8996", "qcom,qrd"; + qcom,board-id= <0x3000b 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-fluid.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-fluid.dts new file mode 100644 index 000000000000..f9d89e9c8962 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-fluid.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-fluid.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 FLUID"; + compatible = "qcom,msm8996-fluid", "qcom,msm8996", "qcom,fluid"; + qcom,board-id = <3 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-liquid.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-liquid.dts new file mode 100644 index 000000000000..0910ef7e92df --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-liquid.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-liquid.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 LiQUID"; + compatible = "qcom,msm8996-liquid", "qcom,msm8996", "qcom,liquid"; + qcom,board-id = <9 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pm8004-agave-adp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pm8004-agave-adp.dts new file mode 100644 index 000000000000..dbdd77200d0a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pm8004-agave-adp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-pm8994-pm8004.dtsi" +#include "msm8996-agave-adp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PM8004 ADP"; + compatible = "qcom,msm8996-adp", "qcom,msm8996", "qcom,adp"; + qcom,board-id = <0x00010019 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pm8004-mmxf-adp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pm8004-mmxf-adp.dts new file mode 100644 index 000000000000..57ed8aa47fd3 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pm8004-mmxf-adp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-pm8994-pm8004.dtsi" +#include "msm8996-mmxf-adp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PM8004 ADP"; + compatible = "qcom,msm8996-adp", "qcom,msm8996", "qcom,adp"; + qcom,board-id = <0x01010019 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-cdp.dts new file mode 100644 index 000000000000..bcd162c3538a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8994 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-mtp.dts new file mode 100644 index 000000000000..182bd247ec84 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8994 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pm8004-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pm8004-cdp.dts new file mode 100644 index 000000000000..294555bf0ea7 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pm8004-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8994 + PM8004 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pm8004-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pm8004-mtp.dts new file mode 100644 index 000000000000..eaa769336e40 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pm8004-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8994 + PM8004 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pm8004-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pm8004-pmk8001-cdp.dts new file mode 100644 index 000000000000..8b6091ac2b44 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pm8004-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8994 + PM8004 + PMK8001 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pm8004-pmk8001-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pm8004-pmk8001-mtp.dts new file mode 100644 index 000000000000..8e2dbb9edbc5 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pm8004-pmk8001-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004-pmk8001.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8994 + PM8004 + PMK8001 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pmk8001-cdp.dts new file mode 100644 index 000000000000..68b5a23401e8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-pm8994-pmi8994-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8994 + PMK8001 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pmk8001-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pmk8001-mtp.dts new file mode 100644 index 000000000000..a607a11490bc --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8994-pmk8001-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-pm8994-pmi8994-pmk8001.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8994 + PMK8001 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8996-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8996-cdp.dts new file mode 100644 index 000000000000..3188c8718997 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8996-cdp.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm-pmi8996.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8996 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8996-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8996-mtp.dts new file mode 100644 index 000000000000..04ac37d5f131 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8996-mtp.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm-pmi8996.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8996 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8996-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8996-pmk8001-cdp.dts new file mode 100644 index 000000000000..f772261e6180 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8996-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-pm8994-pmi8996-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PM8994 + PMI8996 + PMK8001 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8996-pmk8001-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8996-pmk8001-mtp.dts new file mode 100644 index 000000000000..16d9af7b5322 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3-pmi8996-pmk8001-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.dtsi" +#include "msm8996-pm8994-pmi8996-pmk8001.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3 + PM8994 + PMI8996 + PMK8001 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.0-dtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3.0-dtp.dts new file mode 100644 index 000000000000..e93baa99c5bd --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.0-dtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.0.dtsi" +#include "msm8996-dtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM8996 V3.0 DTP"; + compatible = "qcom,msm8996-dtp", "qcom,msm8996", "qcom,qrd"; + qcom,board-id= <0x2000b 0>; +}; + diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.0-fluid.dts b/arch/arm64/boot/dts/qcom/msm8996-v3.0-fluid.dts new file mode 100644 index 000000000000..70662b5caea9 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.0-fluid.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v3.0.dtsi" +#include "msm8996-fluid.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3.0 FLUID"; + compatible = "qcom,msm8996-fluid", "qcom,msm8996", "qcom,fluid"; + qcom,board-id = <3 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.0-liquid.dts b/arch/arm64/boot/dts/qcom/msm8996-v3.0-liquid.dts new file mode 100644 index 000000000000..2ff6a3c81af6 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.0-liquid.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v3.0.dtsi" +#include "msm8996-liquid.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3.0 LiQUID"; + compatible = "qcom,msm8996-liquid", "qcom,msm8996", "qcom,liquid"; + qcom,board-id = <9 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-cdp.dts new file mode 100644 index 000000000000..8a28d3b73b49 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v3.0.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3.0 + PMI8994 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-mtp.dts new file mode 100644 index 000000000000..016bd01a0a10 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v3.0.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3.0 + PMI8994 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-pm8004-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-pm8004-cdp.dts new file mode 100644 index 000000000000..3c85372a5371 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-pm8004-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.0.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3.0 + PMI8994 + PM8004 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-pm8004-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-pm8004-mtp.dts new file mode 100644 index 000000000000..b0c5710dda16 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-pm8004-mtp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.0.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3.0 + PMI8994 + PM8004 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-pm8004-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-pm8004-pmk8001-cdp.dts new file mode 100644 index 000000000000..e1800bf79875 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-pm8004-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8996-v3.0.dtsi" +#include "msm8996-pm8994-pmi8994-pm8004-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3.0 + PMI8994 + PM8004 + PMK8001 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-pmk8001-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-pmk8001-cdp.dts new file mode 100644 index 000000000000..028bab2a5c1a --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8994-pmk8001-cdp.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +/dts-v1/; + +#include "msm8996-v3.0.dtsi" +#include "msm8996-pm8994-pmi8994-pmk8001.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3.0 + PMI8994 + PMK8001 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8996-cdp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8996-cdp.dts new file mode 100644 index 000000000000..84debfaeed85 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8996-cdp.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v3.0.dtsi" +#include "msm-pmi8996.dtsi" +#include "msm8996-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3.0 + PMI8996 CDP"; + compatible = "qcom,msm8996-cdp", "qcom,msm8996", "qcom,cdp"; + qcom,board-id = <1 0>, <0x01000001 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8996-mtp.dts b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8996-mtp.dts new file mode 100644 index 000000000000..b07aa6163871 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.0-pmi8996-mtp.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +/dts-v1/; + +#include "msm8996-v3.0.dtsi" +#include "msm-pmi8996.dtsi" +#include "msm8996-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3.0 + PMI8996 MTP"; + compatible = "qcom,msm8996-mtp", "qcom,msm8996", "qcom,mtp"; + qcom,board-id = <8 0>; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.0.dtsi b/arch/arm64/boot/dts/qcom/msm8996-v3.0.dtsi new file mode 100644 index 000000000000..2268d600287b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.0.dtsi @@ -0,0 +1,131 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * This file includes msm8996-v3.dtsi and therefore should only contain + * overrides on top of that which are specific to 8996v3.0. + */ +#include "msm8996-v3.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3.0"; + qcom,msm-id = <246 0x30000>; +}; + +&gfx_cpr { + system-supply = <&pm8994_s1_corner>; + qcom,cpr-enable; + + /delete-property/ qcom,cpr-aging-ref-voltage; +}; + +&gfx_vreg { + regulator-min-microvolt = <1>; + regulator-max-microvolt = <7>; + + qcom,cpr-fuse-corners = <4>; + qcom,cpr-fuse-combos = <8>; + qcom,cpr-corners = <7>; + + qcom,cpr-corner-fmax-map = <2 3 5 7>; + + qcom,cpr-voltage-ceiling = + <400000 670000 745000 825000 905000 + 960000 1015000>; + qcom,cpr-voltage-floor = + <400000 520000 520000 520000 520000 + 520000 520000>; + + qcom,system-voltage = <2 2 2 2 2 4 4>; + qcom,mem-acc-voltage = <1 1 1 2 2 2 2>; + + qcom,corner-frequencies = + <0 214000000 315000000 401800000 + 510000000 560000000 624000000>; + + qcom,cpr-target-quotients = + < 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0>, + < 0 0 0 0 0 0 287 273 + 425 426 443 453 0 0 0 0>, + < 0 0 0 0 0 0 414 392 + 584 576 608 612 0 0 0 0>, + < 0 0 0 0 0 0 459 431 + 684 644 692 679 0 0 0 0>, + < 0 0 0 0 0 0 577 543 + 798 768 823 810 0 0 0 0>, + < 0 0 0 0 0 0 669 629 + 886 864 924 911 0 0 0 0>, + < 0 0 0 0 0 0 771 725 + 984 970 1036 1024 0 0 0 0>; + + qcom,cpr-ro-scaling-factor = + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>, + < 0 0 0 0 0 0 2035 1917 + 1959 2131 2246 2253 0 0 0 0>; + + qcom,cpr-open-loop-voltage-fuse-adjustment = + < 0 0 30000 (-10000)>, + <(-30000) (-30000) 0 (-10000)>, + <(-30000) (-30000) 0 (-10000)>, + < 0 0 0 0>, + < 0 0 0 0>, + < 0 0 0 0>, + < 0 0 0 0>, + < 0 0 0 0>; + qcom,cpr-closed-loop-voltage-adjustment = + < 0 (-5000) 20000 20000 30000 10000 (-5000)>, + < 0 (-5000) 20000 20000 30000 10000 (-5000)>, + < 0 60000 40000 40000 45000 25000 35000>, + < 0 30000 10000 10000 45000 25000 25000>, + < 0 30000 10000 10000 45000 25000 25000>, + < 0 30000 10000 10000 45000 25000 25000>, + < 0 30000 10000 10000 45000 25000 25000>, + < 0 30000 10000 10000 45000 25000 25000>; + qcom,cpr-floor-to-ceiling-max-range = + <0 70000 75000 80000 90000 95000 100000>; + + /delete-property/ qcom,cpr-fused-closed-loop-voltage-adjustment-map; + + qcom,allow-voltage-interpolation; + qcom,cpr-scaled-open-loop-voltage-as-ceiling; + + /delete-property/ qcom,cpr-aging-max-voltage-adjustment; + /delete-property/ qcom,cpr-aging-ref-corner; + /delete-property/ qcom,cpr-aging-ro-scaling-factor; + /delete-property/ qcom,allow-aging-voltage-adjustment; +}; + +&clock_gpu { + compatible = "qcom,gpucc-8996-v3.0"; + qcom,gfx3d_clk_src_v2-opp-handle = <&msm_gpu>; + qcom,gfxfreq-speedbin0 = + < 0 0 0 >, + < 133000000 3 4 >, + < 214000000 3 4 >, + < 315000000 3 4 >, + < 401800000 4 5 >, + < 510000000 5 5 >, + < 560000000 6 7 >, + < 624000000 7 7 >; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-v3.dtsi b/arch/arm64/boot/dts/qcom/msm8996-v3.dtsi new file mode 100644 index 000000000000..cd4daaf5c60d --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-v3.dtsi @@ -0,0 +1,665 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* + * As a general rule, only version-specific property overrides should be placed + * inside this file. Common device definitions should be placed inside the + * msm8996.dtsi file. + */ + +#include "msm8996.dtsi" +#include "msm8996-coresight-v3.dtsi" +#include "msm-arm-smmu-impl-defs-8996-v3.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996 v3"; + qcom,msm-id = <246 0x30001>; +}; + +&clock_gcc { + compatible = "qcom,gcc-8996-v3"; +}; + +&clock_debug { + compatible = "qcom,cc-debug-8996-v3"; +}; + +&clock_mmss { + compatible = "qcom,mmsscc-8996-v3"; +}; + +&clock_gpu { + compatible = "qcom,gpucc-8996-v3"; + qcom,gfx3d_clk_src_v2-opp-handle = <&msm_gpu>; + qcom,gfxfreq-speedbin0 = + < 0 0 0 >, + < 133000000 2 4 >, + < 214000000 3 4 >, + < 315000000 4 4 >, + < 401800000 5 5 >, + < 510000000 6 5 >, + < 560000000 7 7 >, + < 624000000 8 7 >; + qcom,gfxfreq-mx-speedbin0 = + < 0 0 >, + < 133000000 4 >, + < 214000000 4 >, + < 315000000 4 >, + < 401800000 5 >, + < 510000000 5 >, + < 560000000 7 >, + < 624000000 7 >; + + qcom,gfxfreq-speedbin1 = + < 0 0 0 >, + < 133000000 2 4 >, + < 214000000 3 4 >, + < 315000000 4 4 >, + < 401800000 5 5 >, + < 510000000 6 5 >; + qcom,gfxfreq-mx-speedbin1 = + < 0 0 >, + < 133000000 4 >, + < 214000000 4 >, + < 315000000 4 >, + < 401800000 5 >, + < 510000000 5 >; +}; + +&gdsc_gpu_gx { + clock-names = "core_clk", "core_root_clk"; + clocks = <&clock_gpu clk_gpu_gx_gfx3d_clk>, + <&clock_gpu clk_gfx3d_clk_src_v2>; +}; + +&pcie0 { + qcom,pcie-phy-ver = <3>; +}; + +&pcie1 { + qcom,pcie-phy-ver = <3>; +}; + +&pcie2 { + qcom,pcie-phy-ver = <3>; +}; + +/* GPU overrides */ +&msm_gpu { + /* Updated chip ID */ + qcom,chipid = <0x05030002>; + + qcom,initial-pwrlevel = <5>; + qcom,bus-width = <32>; + + /* Quirks */ + qcom,gpu-quirk-two-pass-use-wfi; + + qcom,gpu-pwrlevel-bins { + #address-cells = <1>; + #size-cells = <0>; + + compatible="qcom,gpu-pwrlevel-bins"; + + qcom,gpu-pwrlevels-0 { + #address-cells = <1>; + #size-cells = <0>; + + qcom,speed-bin = <0>; + + qcom,gpu-pwrlevel@0 { + reg = <0>; + qcom,gpu-freq = <624000000>; + qcom,bus-freq = <12>; + qcom,bus-min = <11>; + qcom,bus-max = <12>; + }; + + qcom,gpu-pwrlevel@1 { + reg = <1>; + qcom,gpu-freq = <560000000>; + qcom,bus-freq = <11>; + qcom,bus-min = <9>; + qcom,bus-max = <12>; + }; + + qcom,gpu-pwrlevel@2 { + reg = <2>; + qcom,gpu-freq = <510000000>; + qcom,bus-freq = <9>; + qcom,bus-min = <8>; + qcom,bus-max = <11>; + }; + + qcom,gpu-pwrlevel@3 { + reg = <3>; + qcom,gpu-freq = <401800000>; + qcom,bus-freq = <8>; + qcom,bus-min = <7>; + qcom,bus-max = <9>; + }; + + qcom,gpu-pwrlevel@4 { + reg = <4>; + qcom,gpu-freq = <315000000>; + qcom,bus-freq = <6>; + qcom,bus-min = <5>; + qcom,bus-max = <7>; + }; + + qcom,gpu-pwrlevel@5 { + reg = <5>; + qcom,gpu-freq = <214000000>; + qcom,bus-freq = <4>; + qcom,bus-min = <3>; + qcom,bus-max = <5>; + }; + + qcom,gpu-pwrlevel@6 { + reg = <6>; + qcom,gpu-freq = <133000000>; + qcom,bus-freq = <3>; + qcom,bus-min = <2>; + qcom,bus-max = <4>; + }; + + qcom,gpu-pwrlevel@7 { + reg = <7>; + qcom,gpu-freq = <27000000>; + qcom,bus-freq = <0>; + qcom,bus-min = <0>; + qcom,bus-max = <0>; + }; + }; + + qcom,gpu-pwrlevels-1 { + #address-cells = <1>; + #size-cells = <0>; + + qcom,speed-bin = <1>; + + qcom,gpu-pwrlevel@0 { + reg = <0>; + qcom,gpu-freq = <510000000>; + qcom,bus-freq = <9>; + qcom,bus-min = <8>; + qcom,bus-max = <10>; + }; + + qcom,gpu-pwrlevel@1 { + reg = <1>; + qcom,gpu-freq = <401800000>; + qcom,bus-freq = <8>; + qcom,bus-min = <7>; + qcom,bus-max = <9>; + }; + + qcom,gpu-pwrlevel@2 { + reg = <2>; + qcom,gpu-freq = <315000000>; + qcom,bus-freq = <6>; + qcom,bus-min = <5>; + qcom,bus-max = <7>; + }; + + qcom,gpu-pwrlevel@3 { + reg = <3>; + qcom,gpu-freq = <214000000>; + qcom,bus-freq = <4>; + qcom,bus-min = <3>; + qcom,bus-max = <5>; + }; + + qcom,gpu-pwrlevel@4 { + reg = <4>; + qcom,gpu-freq = <133000000>; + qcom,bus-freq = <3>; + qcom,bus-min = <2>; + qcom,bus-max = <4>; + }; + + qcom,gpu-pwrlevel@5 { + reg = <5>; + qcom,gpu-freq = <27000000>; + qcom,bus-freq = <0>; + qcom,bus-min = <0>; + qcom,bus-max = <0>; + }; + }; + + }; +}; + +&soc { + l2-pmu { + compatible = "qcom,qcom-l2cache-pmu"; + interrupts = <0 0 1>, <0 8 1>; + qcom,cpu-affinity = <0>, <2>; + }; +}; + +&soc { + jtag_mm0: jtagmm@3840000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x3840000 0x1000>; + reg-names = "etm-base"; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,coresight-jtagmm-cpu = <&CPU0>; + }; + + jtag_mm1: jtagmm@3940000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x3940000 0x1000>; + reg-names = "etm-base"; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,coresight-jtagmm-cpu = <&CPU1>; + }; + + jtag_mm2: jtagmm@3a40000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x3a40000 0x1000>; + reg-names = "etm-base"; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,coresight-jtagmm-cpu = <&CPU2>; + }; + + jtag_mm3: jtagmm@3b40000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x3b40000 0x1000>; + reg-names = "etm-base"; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + + qcom,coresight-jtagmm-cpu = <&CPU3>; + }; +}; + +&mdss_hdmi_pll { + compatible = "qcom,mdss_hdmi_pll_8996_v3"; +}; + +&msm_vidc { + /* Table lists <video_core_freq imem_ab> pairs. + * imem_ab value determines the imem clock frequency for the + * corresponding video core frequency. + */ + qcom,imem-ab-tbl = + <75000000 1500000>, /* imem @ svs2 freq 75 Mhz */ + <150000000 1500000>, /* imem @ svs2 freq 75 Mhz */ + <346666667 2500000>, /* imem @ svs freq 171 Mhz */ + <520000000 6000000>; /* imem @ noimal freq 320 Mhz */ + + qcom,load-freq-tbl = + /* Encoders */ + <972000 520000000 0x55555555>, /* 4k UHD @ 30 */ + <489600 346666667 0x55555555>, /* 1080p @ 60 */ + <244800 150000000 0x55555555>, /* 1080p @ 30 */ + <108000 75000000 0x55555555>, /* 720p @ 30 */ + + /* Decoders */ + <1944000 520000000 0xffffffff>, /* 4k UHD @ 60 */ + < 972000 346666667 0xffffffff>, /* 4k UHD @ 30 */ + < 489600 150000000 0xffffffff>, /* 1080p @ 60 */ + < 244800 75000000 0xffffffff>; /* 1080p @ 30 */ + qcom,pm-qos-latency-us = <501>; +}; + +&gdsc_venus_core0 { + qcom,support-hw-trigger; +}; + +&gdsc_venus_core1 { + qcom,support-hw-trigger; +}; + +&soc { + ipa_hw: qcom,ipa@680000 { + compatible = "qcom,ipa"; + reg = <0x680000 0x4effc>, + <0x684000 0x26934>; + reg-names = "ipa-base", "bam-base"; + interrupts = <0 333 0>, + <0 432 0>; + interrupt-names = "ipa-irq", "bam-irq"; + qcom,ipa-hw-ver = <5>; /* IPA core version = IPAv2.5 */ + qcom,ipa-hw-mode = <0>; + qcom,ee = <0>; + qcom,use-ipa-tethering-bridge; + qcom,ipa-bam-remote-mode; + qcom,modem-cfg-emb-pipe-flt; + clocks = <&clock_gcc clk_ipa_clk>; + clock-names = "core_clk"; + qcom,use-dma-zone; + qcom,msm-bus,name = "ipa"; + qcom,msm-bus,num-cases = <3>; + qcom,msm-bus,num-paths = <2>; + qcom,msm-bus,vectors-KBps = + <90 512 0 0>, <90 585 0 0>, /* No vote */ + <90 512 80000 640000>, <90 585 80000 640000>, /* SVS */ + <90 512 206000 960000>, <90 585 206000 960000>; /* PERF */ + qcom,bus-vector-names = "MIN", "SVS", "PERF"; + }; + + qcom,m4m-hwmon@6530000 { + compatible = "qcom,m4m-hwmon"; + reg = <0x6530000 0x160>; + interrupts = <0 19 4>; + qcom,counter-event-sel = <4 0x8000>, + <5 0x4000>; + qcom,target-dev = <&m4m_cache>; + }; + +}; + +&clock_cpu { + compatible = "qcom,cpu-clock-8996-v3"; + /* Nominal FMAXes only until characterization completes. */ + qcom,pwrcl-speedbin0-v0 = + < 0 0 >, + < 307200000 1 >, + < 422400000 2 >, + < 480000000 3 >, + < 556800000 4 >, + < 652800000 5 >, + < 729600000 6 >, + < 844800000 7 >, + < 960000000 8 >, + < 1036800000 9 >, + < 1113600000 10 >, + < 1190400000 11 >, + < 1228800000 12 >, + < 1324800000 13 >, + < 1401600000 14 >, + < 1478400000 15 >, + < 1593600000 16 >; + qcom,pwrcl-speedbin1-v0 = + < 0 0 >, + < 307200000 1 >, + < 422400000 2 >, + < 480000000 3 >, + < 556800000 4 >, + < 652800000 5 >, + < 729600000 6 >, + < 844800000 7 >, + < 960000000 8 >, + < 1036800000 9 >, + < 1113600000 10 >, + < 1190400000 11 >, + < 1228800000 12 >, + < 1363200000 13 >; + qcom,perfcl-speedbin0-v0 = + < 0 0 >, + < 307200000 1 >, + < 403200000 2 >, + < 480000000 3 >, + < 556800000 4 >, + < 652800000 5 >, + < 729600000 6 >, + < 806400000 7 >, + < 883200000 8 >, + < 940800000 9 >, + < 1036800000 10 >, + < 1113600000 11 >, + < 1190400000 12 >, + < 1248000000 13 >, + < 1324800000 14 >, + < 1401600000 15 >, + < 1478400000 16 >, + < 1555200000 17 >, + < 1632000000 18 >, + < 1708800000 19 >, + < 1785600000 20 >, + < 1824000000 21 >, + < 1920000000 22 >, + < 1996800000 23 >, + < 2073600000 24 >, + < 2150400000 25 >; + qcom,perfcl-speedbin1-v0 = + < 0 0 >, + < 307200000 1 >, + < 403200000 2 >, + < 480000000 3 >, + < 556800000 4 >, + < 652800000 5 >, + < 729600000 6 >, + < 806400000 7 >, + < 883200000 8 >, + < 940800000 9 >, + < 1036800000 10 >, + < 1113600000 11 >, + < 1190400000 12 >, + < 1248000000 13 >, + < 1324800000 14 >, + < 1401600000 15 >, + < 1478400000 16 >, + < 1555200000 17 >, + < 1632000000 18 >, + < 1708800000 19 >, + < 1785600000 20 >, + < 1804800000 21 >; + qcom,cbf-speedbin0-v0 = + < 0 0 >, + < 307200000 1 >, + < 384000000 2 >, + < 460800000 3 >, + < 537600000 4 >, + < 595200000 5 >, + < 672000000 6 >, + < 748800000 7 >, + < 825600000 8 >, + < 902400000 9 >, + < 979200000 10 >, + < 1056000000 11 >, + < 1132800000 12 >, + < 1190400000 13 >, + < 1228800000 14 >, + < 1305600000 15 >, + < 1382400000 16 >, + < 1459200000 17 >, + < 1536000000 18 >, + < 1593600000 19 >; + qcom,cbf-speedbin1-v0 = + < 0 0 >, + < 307200000 1 >, + < 384000000 2 >, + < 460800000 3 >, + < 537600000 4 >, + < 595200000 5 >, + < 672000000 6 >, + < 748800000 7 >, + < 825600000 8 >, + < 902400000 9 >, + < 979200000 10 >, + < 1056000000 11 >, + < 1132800000 12 >, + < 1190400000 13 >, + < 1228800000 14 >, + < 1305600000 15 >; +}; + +&msm_cpufreq { + qcom,cpufreq-table-0 = + < 307200 >, + < 422400 >, + < 480000 >, + < 556800 >, + < 652800 >, + < 729600 >, + < 844800 >, + < 960000 >, + < 1036800 >, + < 1113600 >, + < 1190400 >, + < 1228800 >, + < 1324800 >, + < 1401600 >, + < 1478400 >, + < 1593600 >; + qcom,cpufreq-table-2 = + < 307200 >, + < 403200 >, + < 480000 >, + < 556800 >, + < 652800 >, + < 729600 >, + < 806400 >, + < 883200 >, + < 940800 >, + < 1036800 >, + < 1113600 >, + < 1190400 >, + < 1248000 >, + < 1324800 >, + < 1401600 >, + < 1478400 >, + < 1555200 >, + < 1632000 >, + < 1708800 >, + < 1785600 >, + < 1824000 >, + < 1920000 >, + < 1996800 >, + < 2073600 >, + < 2150400 >; +}; + +&m4m_cache { + freq-tbl-khz = + < 307200 >, + < 384000 >, + < 460800 >, + < 537600 >, + < 595200 >, + < 672000 >, + < 748800 >, + < 825600 >, + < 902400 >, + < 979200 >, + < 1056000 >, + < 1132800 >, + < 1190400 >, + < 1228800 >, + < 1305600 >, + < 1382400 >, + < 1459200 >, + < 1536000 >, + < 1593600 >; +}; + +&devfreq_cpufreq { + m4m-cpufreq { + cpu-to-dev-map-0 = + < 307200 307200 >, + < 422400 307200 >, + < 480000 307200 >, + < 556800 307200 >, + < 652800 384000 >, + < 729600 460800 >, + < 844800 537600 >, + < 960000 672000 >, + < 1036800 672000 >, + < 1113600 825600 >, + < 1190400 825600 >, + < 1228800 902400 >, + < 1324800 1056000 >, + < 1401600 1132800 >, + < 1478400 1190400 >, + < 1593600 1382400 >; + cpu-to-dev-map-2 = + < 480000 307200 >, + < 556800 307200 >, + < 652800 307200 >, + < 729600 307200 >, + < 806400 384000 >, + < 883200 460800 >, + < 940800 537600 >, + < 1036800 595200 >, + < 1113600 672000 >, + < 1190400 672000 >, + < 1248000 748800 >, + < 1324800 825600 >, + < 1401600 902400 >, + < 1478400 979200 >, + < 1555200 1056000 >, + < 1632000 1190400 >, + < 1708800 1228800 >, + < 1785600 1305600 >, + < 1824000 1382400 >, + < 1920000 1459200 >, + < 1996800 1593600 >, + < 2073600 1593600 >, + < 2150400 1593600 >; + }; + + mincpubw-cpufreq { + cpu-to-dev-map-0 = + < 1593600 1525 >; + cpu-to-dev-map-2 = + < 2073600 1525 >, + < 2150400 5195 >; + }; +}; + +&soc { + tsens1: tsens@4ad000 { + compatible = "qcom,msm8996-tsens"; + reg = <0x4ac000 0x2000>, + <0x75230 0x1000>; + reg-names = "tsens_physical", "tsens_eeprom_physical"; + interrupts = <0 184 0>, <0 430 0>; + interrupt-names = "tsens-upper-lower", "tsens-critical"; + qcom,client-id = <13 14 15 16 17 18 19 20>; + qcom,sensor-id = <1 6 7 0 2 3 4 5>; + qcom,sensors = <8>; + qcom,slope = <2901 2846 3200 3200 3200 3200 3200 3200>; + }; + lmh: qcom,lmh { + vdd-apss-supply = <&pm8994_s11>; + qcom,lmh-odcm-disable-threshold-mA = <850>; + }; + qcom,msm-thermal { + msm_thermal_freq: qcom,vdd-apps-rstr{ + qcom,max-freq-level = <1190400>; + qcom,levels = <1036800 1555200 1555200>; + }; + qcom,vdd-gfx-rstr{ + qcom,levels = <6 8 8>; /* Nominal, Turbo, Turbo */ + }; + }; + +}; + +&tsens0 { + interrupts = <0 458 0>, <0 445 0>; + qcom,sensors = <13>; + qcom,slope = <2901 2846 3200 3200 3200 3200 3200 3200 3200 + 3200 3200 3200 3200>; +}; + +/* cpu pmu override */ +&cpu_pmu { + compatible = "qcom,kryo-pmuv3"; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-vidc.dtsi b/arch/arm64/boot/dts/qcom/msm8996-vidc.dtsi new file mode 100644 index 000000000000..db1dec33fe33 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-vidc.dtsi @@ -0,0 +1,237 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <dt-bindings/interrupt-controller/arm-gic.h> + +&soc { + msm_vidc: qcom,vidc@c00000 { + compatible = "qcom,msm-vidc"; + status = "ok"; + reg = <0xC00000 0xff000>; + interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; + qcom,hfi = "venus"; + qcom,hfi-version = "3xx"; + qcom,reg-presets = <0x80010 0xffffffff>, + <0x80018 0x00001556>, + <0x8001C 0x00001556>; + qcom,qdss-presets = <0x08180000 0x2000>, + <0x08182000 0x2000>, + <0x08184000 0x2000>, + <0x08186000 0x2000>, + <0x08188000 0x2000>, + <0x0818A000 0x2000>, + <0x0818C000 0x2000>, + <0x0818E000 0x2000>; + qcom,max-hw-load = <2563200>; /* Full 4k @ 60 + 1080p @ 60 */ + qcom,firmware-name = "venus"; + qcom,imem-size = <524288>; /* 512 kB */ + qcom,never-unload-fw; + qcom,sw-power-collapse; + qcom,load-freq-tbl = + /* Encoders */ + <972000 490000000 0x55555555>, /* 4k UHD @ 30 */ + <489600 320000000 0x55555555>, /* 1080p @ 60 */ + <244800 150000000 0x55555555>, /* 1080p @ 30 */ + <108000 75000000 0x55555555>, /* 720p @ 30 */ + + /* Decoders */ + <1944000 490000000 0xffffffff>, /* 4k UHD @ 60 */ + < 972000 320000000 0xffffffff>, /* 4k UHD @ 30 */ + < 489600 150000000 0xffffffff>, /* 1080p @ 60 */ + < 244800 75000000 0xffffffff>; /* 1080p @ 30 */ + + qcom,dcvs-tbl = + <972000 972000 19944000 0x3f00000c>, /* UHD 30 */ + <489600 489600 972000 0x3f00000c>, /* 1080p 60 */ + <244800 244800 489600 0x3f00000c>, /* 1080p 30 */ + <829440 489600 972000 0x04000004>; /* DCI 24 */ + + qcom,dcvs-limit = + <32400 30>, /* Encoder UHD */ + <14400 30>; /* Decoder WQHD */ + + /* Table lists <video_core_freq imem_ab> pairs. + * imem_ab value determines the imem clock frequency for the + * corresponding video core frequency. + */ + qcom,imem-ab-tbl = + <75000000 1500000>, /* imem @ svs2 freq 75 Mhz */ + <150000000 1500000>, /* imem @ svs2 freq 75 Mhz */ + <320000000 2500000>, /* imem @ svs freq 171 Mhz */ + <490000000 6000000>; /* imem @ noimal freq 320 Mhz */ + + /* Regulators */ + /* Note: don't change the order of the regulators below as they + * correspond to the order in which the driver enables them. + */ + mmagic-venus-supply = <&gdsc_mmagic_video>; + venus-supply = <&gdsc_venus>; + venus-core0-supply = <&gdsc_venus_core0>; + venus-core1-supply = <&gdsc_venus_core1>; + + /* Clocks */ + clock-names = "smmu_ahb_clk", "smmu_axi_clk", + "mmagic_video_axi", "core_clk", "iface_clk", + "bus_clk", "maxi_clk", "core0_clk", "core1_clk"; + clocks = <&clock_mmss clk_smmu_video_ahb_clk>, + <&clock_mmss clk_smmu_video_axi_clk>, + <&clock_mmss clk_mmagic_video_axi_clk>, + <&clock_mmss clk_video_core_clk>, + <&clock_mmss clk_video_ahb_clk>, + <&clock_mmss clk_video_axi_clk>, + <&clock_mmss clk_video_maxi_clk>, + <&clock_mmss clk_video_subcore0_clk>, + <&clock_mmss clk_video_subcore1_clk>; + qcom,clock-configs = <0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x1 0x1>; + + /* Buses */ + bus_cnoc { + compatible = "qcom,msm-vidc,bus"; + label = "cnoc"; + qcom,bus-master = <MSM_BUS_MASTER_AMPSS_M0>; + qcom,bus-slave = <MSM_BUS_SLAVE_VENUS_CFG>; + qcom,bus-governor = "performance"; + qcom,bus-range-kbps = <1 1>; + }; + + venus_bus_ddr { + compatible = "qcom,msm-vidc,bus"; + label = "venus-ddr"; + qcom,bus-master = <MSM_BUS_MASTER_VIDEO_P0>; + qcom,bus-slave = <MSM_BUS_SLAVE_EBI_CH0>; + qcom,bus-governor = "msm-vidc-ddr"; + qcom,bus-range-kbps = <1000 3388000>; + }; + + venus_bus_vmem { + compatible = "qcom,msm-vidc,bus"; + label = "venus-vmem"; + qcom,bus-master = <MSM_BUS_MASTER_VIDEO_P0_OCMEM>; + qcom,bus-slave = <MSM_BUS_SLAVE_VMEM>; + qcom,bus-governor = "msm-vidc-vmem+"; + qcom,bus-range-kbps = <1000 6776000>; + }; + + arm9_bus_ddr { + compatible = "qcom,msm-vidc,bus"; + label = "venus-arm9-ddr"; + qcom,bus-master = <MSM_BUS_MASTER_VIDEO_P0>; + qcom,bus-slave = <MSM_BUS_SLAVE_EBI_CH0>; + qcom,bus-governor = "performance"; + qcom,bus-range-kbps = <1 1>; + }; + + /* MMUs */ + non_secure_cb { + compatible = "qcom,msm-vidc,context-bank"; + label = "venus_ns"; + iommus = <&venus_smmu 0x00>, + <&venus_smmu 0x01>, + <&venus_smmu 0x0a>, + <&venus_smmu 0x07>, + <&venus_smmu 0x0e>, + <&venus_smmu 0x0f>, + <&venus_smmu 0x08>, + <&venus_smmu 0x09>, + <&venus_smmu 0x0b>, + <&venus_smmu 0x0c>, + <&venus_smmu 0x0d>, + <&venus_smmu 0x10>, + <&venus_smmu 0x11>, + <&venus_smmu 0x21>, + <&venus_smmu 0x28>, + <&venus_smmu 0x29>, + <&venus_smmu 0x2b>, + <&venus_smmu 0x2c>, + <&venus_smmu 0x2d>, + <&venus_smmu 0x31>; + buffer-types = <0xfff>; + virtual-addr-pool = <0x70800000 0x8F800000>; + }; + + firmware_cb { + compatible = "qcom,msm-vidc,context-bank"; + qcom,fw-context-bank; + iommus = <&venus_smmu 0x180>, + <&venus_smmu 0x186>; + }; + + secure_bitstream_cb { + compatible = "qcom,msm-vidc,context-bank"; + label = "venus_sec_bitstream"; + iommus = <&venus_smmu 0x100>, + <&venus_smmu 0x102>, + <&venus_smmu 0x109>, + <&venus_smmu 0x10a>, + <&venus_smmu 0x10b>, + <&venus_smmu 0x10e>, + <&venus_smmu 0x126>, + <&venus_smmu 0x129>, + <&venus_smmu 0x12b>; + buffer-types = <0x241>; + virtual-addr-pool = <0x4b000000 0x25800000>; + qcom,secure-context-bank; + }; + + venus_secure_pixel_cb: secure_pixel_cb { + compatible = "qcom,msm-vidc,context-bank"; + label = "venus_sec_pixel"; + iommus = <&venus_smmu 0x104>, + <&venus_smmu 0x10c>, + <&venus_smmu 0x110>, + <&venus_smmu 0x12c>; + buffer-types = <0x106>; + virtual-addr-pool = <0x25800000 0x25800000>; + qcom,secure-context-bank; + }; + + venus_secure_non_pixel_cb: secure_non_pixel_cb { + compatible = "qcom,msm-vidc,context-bank"; + label = "venus_sec_non_pixel"; + iommus = <&venus_smmu 0x105>, + <&venus_smmu 0x107>, + <&venus_smmu 0x108>, + <&venus_smmu 0x10d>, + <&venus_smmu 0x10f>, + <&venus_smmu 0x125>, + <&venus_smmu 0x128>, + <&venus_smmu 0x12d>, + <&venus_smmu 0x140>; + buffer-types = <0x480>; + virtual-addr-pool = <0x1000000 0x24800000>; + qcom,secure-context-bank; + }; + }; + + vmem: qcom,vmem@880000 { + compatible = "qcom,msm-vmem"; + interrupts = <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>; + + reg = <0x880000 0x800>, + <0x6800000 0x80000>; + reg-names = "reg-base", "mem-base"; + + vdd-supply = <&gdsc_mmagic_video>; + clocks = <&clock_mmss clk_vmem_ahb_clk>, + <&clock_mmss clk_vmem_maxi_clk>; + clock-names = "ahb", "maxi"; + + qcom,msm-bus,name = "vmem"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <MSM_BUS_MASTER_AMPSS_M0 MSM_BUS_SLAVE_VMEM_CFG 0 0>, + <MSM_BUS_MASTER_AMPSS_M0 MSM_BUS_SLAVE_VMEM_CFG 500 800>; + + qcom,bank-size = <131072>; /* 128 kB */ + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-wsa881x.dtsi b/arch/arm64/boot/dts/qcom/msm8996-wsa881x.dtsi new file mode 100644 index 000000000000..6a800f853d2c --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996-wsa881x.dtsi @@ -0,0 +1,45 @@ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&slim_msm { + tasha_codec { + swr_master { + compatible = "qcom,swr-wcd"; + #address-cells = <2>; + #size-cells = <0>; + + wsa881x_211: wsa881x@20170211 { + compatible = "qcom,wsa881x"; + reg = <0x00 0x20170211>; + qcom,spkr-sd-n-gpio = <&pmi8994_gpios 2 0>; + }; + + wsa881x_212: wsa881x@20170212 { + compatible = "qcom,wsa881x"; + reg = <0x00 0x20170212>; + qcom,spkr-sd-n-gpio = <&pmi8994_gpios 3 0>; + }; + + wsa881x_213: wsa881x@21170213 { + compatible = "qcom,wsa881x"; + reg = <0x00 0x21170213>; + qcom,spkr-sd-n-gpio = <&pmi8994_gpios 2 0>; + }; + + wsa881x_214: wsa881x@21170214 { + compatible = "qcom,wsa881x"; + reg = <0x00 0x21170214>; + qcom,spkr-sd-n-gpio = <&pmi8994_gpios 3 0>; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi new file mode 100644 index 000000000000..e32225ee3548 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi @@ -0,0 +1,3852 @@ +/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "skeleton64.dtsi" +#include <dt-bindings/clock/msm-clocks-8996.h> +#include <dt-bindings/interrupt-controller/arm-gic.h> + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996"; + compatible = "qcom,msm8996"; + qcom,msm-id = <246 0x0>; + qcom,pmic-id = <0x20009 0x2000A 0x0 0x0>; + interrupt-parent = <&intc>; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + sdhc2 = &sdhc_2; /* SDC2 SD card slot */ + smd7 = &smdtty_data1; + smd8 = &smdtty_data4; + smd11 = &smdtty_data11; + smd21 = &smdtty_data21; + smd36 = &smdtty_loopback; + pci-domain0 = &pcie0; + pci-domain1 = &pcie1; + pci-domain2 = &pcie2; + i2c6 = &i2c_6; + i2c7 = &i2c_7; + i2c8 = &i2c_8; + i2c12 = &i2c_12; + spi0 = &spi_0; + serial0 = &uartblsp2dm1; + }; + + chosen { + stdout-path = "serial0"; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + cpus { + #address-cells = <2>; + #size-cells = <0>; + + CPU0: cpu@0 { + device_type = "cpu"; + compatible = "qcom,kryo"; + reg = <0x0 0x0>; + qcom,limits-info = <&mitigation_profile0>; + enable-method = "psci"; + qcom,ea = <&ea0>; + next-level-cache = <&L2_0>; + L2_0: l2-cache { + compatible = "cache"; + cache-level = <2>; + qcom,dump-size = <0x88000>; + }; + L1_D_0: l1-dcache { + compatible = "cache"; + qcom,dump-size = <0x7800>; + }; + L1_TLB_0: l1-tlb { + qcom,dump-size = <0x2800>; + }; + }; + + CPU1: cpu@1 { + device_type = "cpu"; + compatible = "qcom,kryo"; + reg = <0x0 0x1>; + qcom,limits-info = <&mitigation_profile1>; + enable-method = "psci"; + qcom,ea = <&ea1>; + next-level-cache = <&L2_0>; + L1_D_1: l1-dcache { + compatible = "cache"; + qcom,dump-size = <0x7800>; + }; + L1_TLB_1: l1-tlb { + qcom,dump-size = <0x2800>; + }; + }; + + CPU2: cpu@100 { + device_type = "cpu"; + compatible = "qcom,kryo"; + reg = <0x0 0x100>; + qcom,limits-info = <&mitigation_profile2>; + enable-method = "psci"; + qcom,ea = <&ea2>; + next-level-cache = <&L2_1>; + L2_1: l2-cache { + compatible = "cache"; + cache-level = <2>; + qcom,dump-size = <0x110000>; + }; + L1_D_100: l1-dcache { + compatible = "cache"; + qcom,dump-size = <0x7800>; + }; + L1_TLB_100: l1-tlb { + qcom,dump-size = <0x2800>; + }; + }; + + CPU3: cpu@101 { + device_type = "cpu"; + compatible = "qcom,kryo"; + reg = <0x0 0x101>; + enable-method = "psci"; + qcom,limits-info = <&mitigation_profile3>; + qcom,ea = <&ea3>; + next-level-cache = <&L2_1>; + L1_D_101: l1-dcache { + compatible = "cache"; + qcom,dump-size = <0x7800>; + }; + L1_TLB_101: l1-tlb { + qcom,dump-size = <0x2800>; + }; + }; + + cpu-map { + cluster0 { + core0 { + cpu = <&CPU0>; + }; + + core1 { + cpu = <&CPU1>; + }; + }; + + cluster1 { + core0 { + cpu = <&CPU2>; + }; + + core1 { + cpu = <&CPU3>; + }; + }; + }; + }; + + clocks { + xo_board { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <19200000>; + clock-output-names = "xo_board"; + }; + sleep_clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <32764>; + clock-output-names = "sleep_clk"; + }; + }; + + soc: soc { }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + removed_regions: removed_regions@85800000 { + compatible = "removed-dma-pool"; + no-map; + reg = <0 0x85800000 0 0x3000000>; + }; + + peripheral_mem: peripheral_region@8ea00000 { + compatible = "removed-dma-pool"; + no-map; + reg = <0 0x8ea00000 0 0x2b00000>; + }; + + qseecom_mem: qseecom_region { + compatible = "shared-dma-pool"; + alloc-ranges = <0 0x00000000 0 0xffffffff>; + reusable; + alignment = <0 0x400000>; + size = <0 0x1400000>; + }; + + secure_display_memory: secure_region { + compatible = "shared-dma-pool"; + alloc-ranges = <0 0x00000000 0 0xffffffff>; + reusable; + alignment = <0 0x200000>; + size = <0 0x5c00000>; + }; + + modem_mem: modem_region@88800000 { + compatible = "removed-dma-pool"; + no-map; + reg = <0 0x88800000 0 0x6200000>; + }; + + dfps_data_mem: dfps_data_mem@83400000 { + compatible = "shared-dma-pool"; + no-map; + reg = <0 0x83400000 0 0x1000>; + label = "dfps_data_mem"; + }; + + cont_splash_mem: cont_splash_mem@83401000 { + reg = <0 0x83401000 0 0x23FF000>; + label = "cont_splash_mem"; + }; + }; +}; + +#include "msm8996-ion.dtsi" +#include "msm8996-mdss.dtsi" +#include "msm8996-mdss-pll.dtsi" +#include "msm8996-smp2p.dtsi" +#include "msm8996-ipcrouter.dtsi" +#include "msm-gdsc-8996.dtsi" +#include "msm8996-bus.dtsi" +#include "msm-rdbg.dtsi" + +&soc { + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0xffffffff>; + compatible = "simple-bus"; + + spmi_bus: qcom,spmi@400f000 { + compatible = "qcom,spmi-pmic-arb"; + reg = <0x400f000 0x1000>, + <0x4400000 0x800000>, + <0x4c00000 0x800000>, + <0x5800000 0x200000>, + <0x400a000 0x002100>; + reg-names = "core", "chnls", "obsrvr", "intr", "cnfg"; + interrupt-names = "periph_irq"; + interrupts = <GIC_SPI 326 IRQ_TYPE_NONE>; + qcom,ee = <0>; + qcom,channel = <0>; + #address-cells = <2>; + #size-cells = <0>; + interrupt-controller; + #interrupt-cells = <4>; + }; + + apc_apm: apm@099e0000 { + compatible = "qcom,msm-apm"; + reg = <0x099e0000 0x1000>, + <0x09820000 0x10000>, + <0x06400050 0x8>, + <0x06480050 0x8>, + <0x09981068 0x8>, + <0x09991068 0x8>, + <0x099b1068 0x8>, + <0x099c1068 0x8>, + <0x099a1068 0x8>, + <0x099d1068 0x8>; + reg-names = "pm-apcc-glb", + "apcs-csr", + "apc0-pll-ctl", + "apc1-pll-ctl", + "apc0-cpu0-spm", + "apc0-cpu1-spm", + "apc1-cpu0-spm", + "apc1-cpu1-spm", + "apc0-l2-spm", + "apc1-l2-spm"; + qcom,clock-source-override; + }; + + intc: interrupt-controller@09bc0000 { + compatible = "arm,gic-v3"; + #interrupt-cells = <3>; + interrupt-controller; + #redistributor-regions = <1>; + redistributor-stride = <0x0 0x40000>; + reg = <0x09bc0000 0x10000>, /* GICD */ + <0x09c00000 0x100000>; /* GICR * 4 */ + interrupts = <1 9 4>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; + clock-frequency = <19200000>; + }; + + restart@4ab000 { + compatible = "qcom,pshold"; + reg = <0x4ab000 0x4>, + <0x7b3000 0x4>; + reg-names = "pshold-base", "tcsr-boot-misc-detect"; + }; + + qcom,sps { + compatible = "qcom,msm_sps_4k"; + qcom,device-type = <3>; + qcom,pipe-attr-ee; + }; + + uartblsp2dm1: serial@75b0000 { + compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; + reg = <0x75b0000 0x1000>; + interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clock_gcc clk_gcc_blsp1_uart2_apps_clk>, + <&clock_gcc clk_gcc_blsp1_ahb_clk>; + clock-names = "core_clk", "iface_clk"; + status = "okay"; + }; + + uartblsp1dm1: serial@07570000 { + compatible = "qcom,msm-lsuart-v14"; + reg = <0x7570000 0x1000>; + interrupts = <0 108 0>; + status = "disabled"; + clocks = <&clock_gcc clk_gcc_blsp1_uart2_apps_clk>, + <&clock_gcc clk_gcc_blsp1_ahb_clk>; + clock-names = "core_clk", "iface_clk"; + }; + + i2c_12: i2c@75ba000 { + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr"; + reg = <0x75ba000 0x1000>; + interrupt-names = "qup_irq"; + interrupts = <0 106 0>; + dmas = <&dma_blsp2 22 64 0x20000020 0x20>, + <&dma_blsp2 23 32 0x20000020 0x20>; + dma-names = "tx", "rx"; + qcom,master-id = <84>; + 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_qup6_i2c_apps_clk>; + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_12_active>; + pinctrl-1 = <&i2c_12_sleep>; + }; + + + dma_blsp1: qcom,sps-dma@0x7544000{ /* BLSP1 */ + #dma-cells = <4>; + compatible = "qcom,sps-dma"; + reg = <0x7544000 0x2b000>; + interrupts = <0 238 0>; + qcom,summing-threshold = <0x10>; + }; + + dma_blsp2: qcom,sps-dma@0x7584000{ /* BLSP2 */ + #dma-cells = <4>; + compatible = "qcom,sps-dma"; + reg = <0x7584000 0x2b000>; + interrupts = <0 239 0>; + qcom,summing-threshold = <0x10>; + }; + + i2c_6: i2c@757a000 { /* BLSP1 QUP6 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x757a000 0x1000>; + reg-names = "qup_phys_addr"; + interrupt-names = "qup_irq"; + interrupts = <0 100 0>; + dmas = <&dma_blsp1 22 64 0x20000020 0x20>, + <&dma_blsp1 23 32 0x20000020 0x20>; + dma-names = "tx", "rx"; + qcom,master-id = <86>; + 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_qup6_i2c_apps_clk>; + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_6_active>; + pinctrl-1 = <&i2c_6_sleep>; + }; + + i2c_7: i2c@75b5000 { /* BLSP2 QUP1 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr"; + reg = <0x75b5000 0x1000>; + interrupt-names = "qup_irq"; + interrupts = <0 101 0>; + dmas = <&dma_blsp2 12 32 0x20000020 0x20>, + <&dma_blsp2 13 32 0x20000020 0x20>; + dma-names = "tx", "rx"; + qcom,master-id = <84>; + 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_7_active>; + pinctrl-1 = <&i2c_7_sleep>; + }; + + i2c_8: i2c@75b6000 { /* BLSP2 QUP2 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr"; + reg = <0x75b6000 0x1000>; + interrupt-names = "qup_irq"; + interrupts = <0 102 0>; + dmas = <&dma_blsp2 14 32 0x20000020 0x20>, + <&dma_blsp2 15 32 0x20000020 0x20>; + dma-names = "tx", "rx"; + qcom,master-id = <84>; + 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_qup2_i2c_apps_clk>; + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_8_active>; + pinctrl-1 = <&i2c_8_sleep>; + }; + + blsp1_uart2: uart@07570000 { /* BLSP1 UART2 */ + compatible = "qcom,msm-hsuart-v14"; + reg = <0x07570000 0x1000>, + <0x7544000 0x2b000>; + status = "disabled"; + reg-names = "core_mem", "bam_mem"; + interrupt-names = "core_irq", "bam_irq", "wakeup_irq"; + #address-cells = <0>; + interrupt-parent = <&blsp1_uart2>; + 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 42 0>; + + qcom,inject-rx-on-wakeup; + qcom,rx-char-to-inject = <0xFD>; + + qcom,bam-tx-ep-pipe-index = <2>; + qcom,bam-rx-ep-pipe-index = <3>; + 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 = <&blsp1_uart2_sleep>; + pinctrl-1 = <&blsp1_uart2_active>; + + qcom,msm-bus,name = "buart2"; + 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>; + }; + + m4m_cache: qcom,m4m { + compatible = "devfreq-simple-dev"; + clock-names = "devfreq_clk"; + clocks = <&clock_cpu clk_cbf_clk>; + governor = "cpufreq"; + freq-tbl-khz = + < 150000 >, + < 307200 >, + < 384000 >, + < 499200 >, + < 595200 >, + < 691200 >, + < 787200 >, + < 883200 >, + < 960000 >, + < 1036800 >; + }; + + cpubw: qcom,cpubw { + compatible = "qcom,devbw"; + governor = "performance"; + qcom,src-dst-ports = <1 512>; + qcom,active-only; + qcom,bw-tbl = + < 762 /* 100 MHz */ >, + < 1144 /* 150 MHz */ >, + < 1525 /* 200 MHz */ >, + < 2288 /* 300 MHz */ >, + < 3143 /* 412 MHz */ >, + < 4173 /* 547 MHz */ >, + < 5195 /* 681 MHz */ >, + < 5859 /* 768 MHz */ >, + < 7759 /* 1017 MHz */ >, + < 9887 /* 1296 MHz */ >, + < 11863 /* 1555 MHz */ >, + < 13763 /* 1804 MHz */ >; + }; + + qcom,cpu-bwmon { + compatible = "qcom,bimc-bwmon3"; + reg = <0x00408000 0x300>, <0x00401000 0x200>; + reg-names = "base", "global_base"; + interrupts = <0 183 4>; + qcom,mport = <0>; + qcom,target-dev = <&cpubw>; + }; + + mincpubw: qcom,mincpubw { + compatible = "qcom,devbw"; + governor = "powersave"; + qcom,src-dst-ports = <1 512>; + qcom,active-only; + qcom,bw-tbl = + < 762 /* 100 MHz */ >, + < 1144 /* 150 MHz */ >, + < 1525 /* 200 MHz */ >, + < 2288 /* 300 MHz */ >, + < 3143 /* 412 MHz */ >, + < 4173 /* 547 MHz */ >, + < 5195 /* 681 MHz */ >, + < 5859 /* 768 MHz */ >, + < 7759 /* 1017 MHz */ >, + < 9887 /* 1296 MHz */ >, + < 11863 /* 1555 MHz */ >, + < 13763 /* 1804 MHz */ >; + }; + + memlat_cpu0: qcom,memlat-cpu0 { + compatible = "qcom,devbw"; + governor = "powersave"; + qcom,src-dst-ports = <1 512>; + qcom,active-only; + qcom,bw-tbl = + < 1525 /* 200 MHz */ >, + < 2288 /* 300 MHz */ >, + < 3509 /* 460 MHz */ >, + < 4066 /* 533 MHz */ >, + < 5126 /* 672 MHz */ >, + < 5928 /* 777 MHz */ >, + < 7904 /* 1036 MHz */ >, + < 9887 /* 1296 MHz */ >, + < 11863 /* 1555 MHz */ >, + < 13763 /* 1804 MHz */ >; + }; + + memlat_cpu2: qcom,memlat-cpu2 { + compatible = "qcom,devbw"; + governor = "powersave"; + qcom,src-dst-ports = <1 512>; + qcom,active-only; + qcom,bw-tbl = + < 1525 /* 200 MHz */ >, + < 2288 /* 300 MHz */ >, + < 3509 /* 460 MHz */ >, + < 4066 /* 533 MHz */ >, + < 5126 /* 672 MHz */ >, + < 5928 /* 777 MHz */ >, + < 7904 /* 1036 MHz */ >, + < 9887 /* 1296 MHz */ >, + < 11863 /* 1555 MHz */ >, + < 13763 /* 1804 MHz */ >; + }; + + qcom,arm-memlat-mon-0 { + compatible = "qcom,arm-memlat-mon"; + qcom,cpulist = <&CPU0 &CPU1>; + qcom,target-dev = <&memlat_cpu0>; + }; + + qcom,arm-memlat-mon-2 { + compatible = "qcom,arm-memlat-mon"; + qcom,cpulist = <&CPU2 &CPU3>; + qcom,target-dev = <&memlat_cpu2>; + }; + + devfreq_cpufreq: devfreq-cpufreq { + cpubw-cpufreq { + target-dev = <&cpubw>; + cpu-to-dev-map-0 = + < 1459200 1525 >; + cpu-to-dev-map-2 = + < 1593600 1525 >; + }; + + m4m-cpufreq { + target-dev = <&m4m_cache>; + cpu-to-dev-map-0 = + < 345600 307200 >, + < 403200 384000 >, + < 576000 499200 >, + < 633600 595200 >, + < 729600 691200 >, + < 806400 787200 >, + < 883200 883200 >, + < 960000 960000 >, + < 1459200 1036000 >; + cpu-to-dev-map-2 = + < 345600 307200 >, + < 403200 384000 >, + < 576000 499200 >, + < 633600 595200 >, + < 729600 691200 >, + < 806400 787200 >, + < 883200 883200 >, + < 960000 960000 >, + < 1593600 1036000 >; + }; + + mincpubw-cpufreq { + target-dev = <&mincpubw>; + cpu-to-dev-map-0 = + < 1420800 1525 >; + cpu-to-dev-map-2 = + < 1420800 1525 >, + < 1593600 5195 >; + }; + }; + + msm_cpufreq: qcom,msm-cpufreq { + compatible = "qcom,msm-cpufreq"; + clock-names = "l2_clk", "cpu0_clk", "cpu1_clk", "cpu2_clk", + "cpu3_clk"; + clocks = <&clock_cpu clk_cbf_clk>, + <&clock_cpu clk_pwrcl_clk>, + <&clock_cpu clk_pwrcl_clk>, + <&clock_cpu clk_perfcl_clk>, + <&clock_cpu clk_perfcl_clk>; + + qcom,governor-per-policy; + + qcom,cpufreq-table-0 = + < 307200 >, + < 345600 >, + < 403200 >, + < 480000 >, + < 576000 >, + < 633600 >, + < 729600 >, + < 806400 >, + < 883200 >, + < 960000 >, + < 1017600 >, + < 1113600 >, + < 1190400 >, + < 1267200 >, + < 1344000 >, + < 1420800 >, + < 1459200 >; + + qcom,cpufreq-table-2 = + < 307200 >, + < 345600 >, + < 403200 >, + < 480000 >, + < 576000 >, + < 633600 >, + < 729600 >, + < 806400 >, + < 883200 >, + < 960000 >, + < 1017600 >, + < 1113600 >, + < 1190400 >, + < 1267200 >, + < 1344000 >, + < 1420800 >, + < 1497600 >, + < 1593600 >; + }; + + clock_cpu: qcom,cpu-clock-8996@ { + compatible = "qcom,cpu-clock-8996"; + reg = <0x06400000 0x1000>, + <0x06480000 0x1000>, + <0x09A20000 0x1000>, + <0x06400000 0x1000>, + <0x06480000 0x1000>, + <0x09A11000 0x1000>, + <0x00074130 0x8>, + <0x09820000 0x1000>; + reg-names = "pwrcl_pll", "perfcl_pll", "cbf_pll", "pwrcl_mux", "perfcl_mux", "cbf_mux", "efuse", "debug"; + vdd-pwrcl-supply = <&apc0_pwrcl_vreg>; + vdd-perfcl-supply = <&apc1_vreg>; + vdd-cbf-supply = <&apc0_cbf_vreg>; + vdd-dig-supply = <&pm8994_s2_corner_ao>; + cbf-dev = <&m4m_cache>; + /* please look at msm8996-v3.dtsi for the v3 plan */ + qcom,pwrcl-speedbin0-v0 = + < 0 0 >, + < 307200000 3 >, + < 345600000 4 >, + < 403200000 5 >, + < 480000000 6 >, + < 576000000 7 >, + < 633600000 8 >, + < 729600000 9 >, + < 806400000 10 >, + < 883200000 11 >, + < 960000000 12 >, + < 1017600000 13 >, + < 1113600000 14 >, + < 1190400000 15 >, + < 1267200000 16 >, + < 1344000000 17 >, + < 1420800000 18 >, + < 1459200000 19 >; + qcom,perfcl-speedbin0-v0 = + < 0 0 >, + < 307200000 1 >, + < 345600000 2 >, + < 403200000 3 >, + < 480000000 4 >, + < 576000000 5 >, + < 633600000 6 >, + < 729600000 7 >, + < 806400000 8 >, + < 883200000 9 >, + < 960000000 10 >, + < 1017600000 11 >, + < 1113600000 12 >, + < 1190400000 13 >, + < 1267200000 14 >, + < 1344000000 15 >, + < 1420800000 16 >, + < 1497600000 17 >, + < 1593600000 18 >; + qcom,cbf-speedbin0-v0 = + < 0 0 >, + < 307200000 2 >, + < 384000000 3 >, + < 499200000 4 >, + < 595200000 5 >, + < 691200000 6 >, + < 787200000 7 >, + < 883200000 8 >, + < 960000000 9 >, + < 1036800000 10 >; + clock-names = "xo_ao", "aux_clk"; + clocks = <&clock_gcc clk_cxo_clk_src_ao>, + <&clock_gcc clk_gpll0_ao>; + #clock-cells = <1>; + }; + + clock_gcc: qcom,gcc@300000 { + compatible = "qcom,gcc-8996"; + reg = <0x300000 0x8f014>; + reg-names = "cc_base"; + vdd_dig-supply = <&pm8994_s1_corner>; + #clock-cells = <1>; + status="disabled"; + }; + + clock_mmss: qcom,mmsscc@8c0000 { + compatible = "qcom,mmsscc-8996"; + reg = <0x8c0000 0xb00c>; + reg-names = "cc_base"; + vdd_dig-supply = <&pm8994_s1_corner>; + mmpll4_dig-supply = <&pm8994_s1_corner>; + mmpll4_analog-supply = <&pm8994_l12>; + qcom,vfe0_clk_src-opp-store-vcorner = <&vfe0>; + qcom,vfe1_clk_src-opp-store-vcorner = <&vfe1>; + qcom,cpp_clk_src-opp-store-vcorner = <&cpp>; + clock-names = "xo", "gpll0", "gpll0_div", + "pclk0_src", "pclk1_src", + "byte0_src", "byte1_src", + "extpclk_src"; + clocks = <&clock_gcc clk_cxo_clk_src>, + <&clock_gcc clk_gpll0_out_main>, + <&clock_gcc clk_gcc_mmss_gpll0_div_clk>, + <&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>, + <&mdss_hdmi_pll clk_hdmi_vco_clk>; + #clock-cells = <1>; + }; + + clock_gpu: qcom,gpucc@8c0000 { + compatible = "qcom,gpucc-8996"; + reg = <0x8c0000 0xb00c>, + <0x74130 0x8>; + reg-names = "cc_base", "efuse"; + vdd_gfx-supply = <&gfx_vreg>; + qcom,gfx3d_clk_src-opp-handle = <&msm_gpu>; + vdd_mx-supply = <&pm8994_s2_corner>; + vdd_gpu_mx-supply = <&pm8994_s2_corner>; + qcom,gfxfreq-speedbin0 = + < 0 0 0 >, + < 19200000 3 4 >, + < 60000000 3 4 >, + < 120000000 3 4 >, + < 205000000 3 4 >, + < 360000000 4 5 >, + < 480000000 5 7 >; + qcom,gfxfreq-mx-speedbin0 = + < 0 0 >, + < 19200000 4 >, + < 60000000 4 >, + < 120000000 4 >, + < 205000000 4 >, + < 360000000 5 >, + < 480000000 7 >; + #clock-cells = <1>; + }; + + clock_debug: qcom,cc-debug@362000 { + compatible = "qcom,cc-debug-8996"; + reg = <0x362000 0x4>; + reg-names = "cc_base"; + clock-names = "debug_mmss_clk", "debug_gpu_clk", "debug_cpu_clk"; + clocks = <&clock_mmss clk_mmss_gcc_dbg_clk>, + <&clock_gpu clk_gpu_gcc_dbg_clk>, + <&clock_cpu clk_cpu_debug_mux>; + #clock-cells = <1>; + }; + + qcom,rmtfs_sharedmem@0 { + compatible = "qcom,sharedmem-uio"; + reg = <0x0 0x00200000>; + reg-names = "rmtfs"; + qcom,client-id = <0x00000001>; + }; + + wcd9xxx_intc: wcd9xxx-irq { + compatible = "qcom,wcd9xxx-irq"; + interrupt-controller; + #interrupt-cells = <1>; + interrupt-parent = <&tlmm>; + qcom,gpio-connect = <&tlmm 54 0>; + }; + + clock_audio: audio_ext_clk { + compatible = "qcom,audio-ref-clk"; + qcom,audio-ref-clk-gpio = <&pm8994_gpios 15 0>; + clock-names = "osr_clk"; + clocks = <&clock_gcc clk_div_clk1>; + qcom,node_has_rpm_clock; + #clock-cells = <1>; + pinctrl-names = "sleep", "active"; + pinctrl-0 = <&spkr_i2s_clk_sleep>; + pinctrl-1 = <&spkr_i2s_clk_active>; + }; + + tspp: msm_tspp@075e7000 { + compatible = "qcom,msm_tspp"; + reg = <0x075e7000 0x1000>, /* MSM_TSIF0_PHYS */ + <0x075e8000 0x1000>, /* MSM_TSIF1_PHYS */ + <0x075e9000 0x1000>, /* MSM_TSPP_PHYS */ + <0x075c4000 0x23000>; /* MSM_TSPP_BAM_PHYS */ + reg-names = "MSM_TSIF0_PHYS", + "MSM_TSIF1_PHYS", + "MSM_TSPP_PHYS", + "MSM_TSPP_BAM_PHYS"; + interrupts = <0 121 0>, /* TSIF_TSPP_IRQ */ + <0 119 0>, /* TSIF0_IRQ */ + <0 120 0>, /* TSIF1_IRQ */ + <0 122 0>; /* TSIF_BAM_IRQ */ + interrupt-names = "TSIF_TSPP_IRQ", + "TSIF0_IRQ", + "TSIF1_IRQ", + "TSIF_BAM_IRQ"; + + clock-names = "iface_clk", "ref_clk"; + clocks = <&clock_gcc clk_gcc_tsif_ahb_clk>, + <&clock_gcc clk_gcc_tsif_ref_clk>; + + qcom,msm-bus,name = "tsif"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <82 512 0 0>, /* No vote */ + <82 512 12288 24576>; /* Max. bandwidth, 2xTSIF, each max of 96Mbps */ + + pinctrl-names = "disabled", + "tsif0-mode1", "tsif0-mode2", + "tsif1-mode1", "tsif1-mode2", + "dual-tsif-mode1", "dual-tsif-mode2"; + + pinctrl-0 = <>; /* disabled */ + pinctrl-1 = <&tsif0_signals_active>; /* tsif0-mode1 */ + pinctrl-2 = <&tsif0_signals_active + &tsif0_sync_active>; /* tsif0-mode2 */ + pinctrl-3 = <&tsif1_signals_active>; /* tsif1-mode1 */ + pinctrl-4 = <&tsif1_signals_active + &tsif1_sync_active>; /* tsif1-mode2 */ + pinctrl-5 = <&tsif0_signals_active + &tsif1_signals_active>; /* dual-tsif-mode1 */ + pinctrl-6 = <&tsif0_signals_active + &tsif0_sync_active + &tsif1_signals_active + &tsif1_sync_active>; /* dual-tsif-mode2 */ + }; + + slim_msm: slim@91c0000 { + cell-index = <1>; + compatible = "qcom,slim-ngd"; + reg = <0x91c0000 0x2C000>, + <0x9184000 0x32000>; + reg-names = "slimbus_physical", "slimbus_bam_physical"; + interrupts = <0 163 0>, <0 164 0>; + interrupt-names = "slimbus_irq", "slimbus_bam_irq"; + qcom,apps-ch-pipes = <0x60000000>; + qcom,ea-pc = <0x160>; + + msm_dai_slim { + compatible = "qcom,msm-dai-slim"; + elemental-addr = [ff ff ff fe 17 02]; + }; + + 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,cdc-reset-gpio = <&tlmm 64 0>; + + clock-names = "wcd_clk", "wcd_native_clk"; + clocks = <&clock_audio clk_audio_pmi_clk>, + <&clock_audio clk_audio_ap_clk2>; + + cdc-vdd-buck-supply = <&pm8994_s4>; + qcom,cdc-vdd-buck-voltage = <1800000 1800000>; + qcom,cdc-vdd-buck-current = <650000>; + + cdc-buck-sido-supply = <&pm8994_s4>; + qcom,cdc-buck-sido-voltage = <1800000 1800000>; + qcom,cdc-buck-sido-current = <250000>; + + cdc-vdd-tx-h-supply = <&pm8994_s4>; + qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>; + qcom,cdc-vdd-tx-h-current = <25000>; + + cdc-vdd-rx-h-supply = <&pm8994_s4>; + qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>; + qcom,cdc-vdd-rx-h-current = <25000>; + + cdc-vddpx-1-supply = <&pm8994_s4>; + qcom,cdc-vddpx-1-voltage = <1800000 1800000>; + qcom,cdc-vddpx-1-current = <10000>; + + qcom,cdc-static-supplies = "cdc-vdd-buck", + "cdc-buck-sido", + "cdc-vdd-tx-h", + "cdc-vdd-rx-h", + "cdc-vddpx-1"; + + 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>; + }; + }; + + sdhc_1: sdhci@7464900 { + compatible = "qcom,sdhci-msm"; + reg = <0x7464900 0x500>, <0x7464000 0x800>, <0x7464E00 0x19C>; + reg-names = "hc_mem", "core_mem", "cmdq_mem"; + + interrupts = <0 141 0>, <0 134 0>; + interrupt-names = "hc_irq", "pwr_irq"; + + clock-names = "iface_clk", "core_clk", "ice_core_clk"; + clocks = <&clock_gcc clk_gcc_sdcc1_ahb_clk>, + <&clock_gcc clk_gcc_sdcc1_apps_clk>, + <&clock_gcc clk_gcc_sdcc1_ice_core_clk>; + + sdhc-msm-crypto = <&sdcc1_ice>; + qcom,large-address-bus; + qcom,bus-width = <8>; + + qcom,devfreq,freq-table = <20000000 200000000>; + + 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 1600 3200>, /* 400 KB/s*/ + <78 512 80000 160000>, /* 20 MB/s */ + <78 512 100000 200000>, /* 25 MB/s */ + <78 512 200000 400000>, /* 50 MB/s */ + <78 512 400000 800000>, /* 100 MB/s */ + <78 512 400000 800000>, /* 200 MB/s */ + <78 512 400000 800000>, /* 400 MB/s */ + <78 512 2048000 4096000>; /* Max. bandwidth */ + qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000 + 100000000 200000000 400000000 + 4294967295>; + + qcom,pm-qos-cpu-groups = <0x03 0x0c>; + qcom,pm-qos-cmdq-latency-us = <70 70>, <70 70>; + qcom,pm-qos-legacy-latency-us = <70 70>, <70 70>; + qcom,pm-qos-irq-type = "affine_cores"; + qcom,pm-qos-irq-cpu = <0>; + qcom,pm-qos-irq-latency = <70 70>; + + status = "disabled"; + }; + + sdhc_2: sdhci@74A4900 { + compatible = "qcom,sdhci-msm"; + reg = <0x74A4900 0x314>, <0x74A4000 0x800>; + reg-names = "hc_mem", "core_mem"; + + interrupts = <0 125 0>, <0 221 0>; + interrupt-names = "hc_irq", "pwr_irq"; + + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_sdcc2_ahb_clk>, + <&clock_gcc clk_gcc_sdcc2_apps_clk>; + + qcom,large-address-bus; + qcom,bus-width = <4>; + + qcom,devfreq,freq-table = <20000000 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 1600 3200>, /* 400 KB/s*/ + <81 512 80000 160000>, /* 20 MB/s */ + <81 512 100000 200000>, /* 25 MB/s */ + <81 512 200000 400000>, /* 50 MB/s */ + <81 512 400000 800000>, /* 100 MB/s */ + <81 512 800000 800000>, /* 200 MB/s */ + <81 512 2048000 4096000>; /* Max. bandwidth */ + qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000 + 100000000 200000000 4294967295>; + + qcom,pm-qos-cpu-groups = <0x03 0x0c>; + qcom,pm-qos-legacy-latency-us = <70 70>, <70 70>; + qcom,pm-qos-irq-type = "affine_cores"; + qcom,pm-qos-irq-cpu = <0>; + qcom,pm-qos-irq-latency = <70 70>; + + status = "disabled"; + }; + + ufs_ice: ufsice@630000 { + compatible = "qcom,ice"; + reg = <0x630000 0x8000>; + interrupt-names = "ufs_ice_nonsec_level_irq"; + interrupts = <0 258 0>; + qcom,enable-ice-clk; + clock-names = "ufs_core_clk_src", + "ufs_core_clk", + "bus_clk", + "iface_clk", + "ice_core_clk_src", + "ice_core_clk"; + clocks = <&clock_gcc clk_ufs_axi_clk_src>, + <&clock_gcc clk_gcc_ufs_axi_clk>, + <&clock_gcc clk_gcc_sys_noc_ufs_axi_clk>, + <&clock_gcc clk_gcc_ufs_ahb_clk>, + <&clock_gcc clk_ufs_ice_core_clk_src>, + <&clock_gcc clk_gcc_ufs_ice_core_clk>; + qcom,op-freq-hz = <0>, <0>, <0>,<0>, + <300000000>, <0>; + vdd-hba-supply = <&gdsc_ufs>; + qcom,msm-bus,name = "ufs_ice_noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <1 650 0 0>, /* No vote */ + <1 650 1000 0>; /* Max. bandwidth */ + qcom,bus-vector-names = "MIN", + "MAX"; + qcom,instance-type = "ufs"; + status = "disabled"; + }; + + sdcc1_ice: sdcc1ice@7443000 { + compatible = "qcom,ice"; + reg = <0x7443000 0x8000>; + interrupt-names = "sdcc_ice_nonsec_level_irq"; + interrupts = <0 461 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 = <300000000>, <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"; + status = "disabled"; + }; + + ufsphy1: ufsphy@627000 { + compatible = "qcom,ufs-phy-qmp-14nm"; + reg = <0x627000 0xda8>; + reg-names = "phy_mem"; + #phy-cells = <0>; + vdda-phy-supply = <&pm8994_l28>; + vdda-pll-supply = <&pm8994_l12>; + vdda-phy-max-microamp = <18380>; + vdda-pll-max-microamp = <9440>; + vddp-ref-clk-supply = <&pm8994_l25>; + vddp-ref-clk-max-microamp = <100>; + vddp-ref-clk-always-on; + clock-names = "ref_clk_src", + "ref_clk"; + clocks = <&clock_gcc clk_ln_bb_clk>, + <&clock_gcc clk_gcc_ufs_clkref_clk>; + status = "disabled"; + }; + + ufs1: ufshc@624000 { + compatible = "jedec,ufs-1.1"; + reg = <0x624000 0x2500>; + interrupts = <0 265 0>; + phys = <&ufsphy1>; + phy-names = "ufsphy"; + ufs-qcom-crypto = <&ufs_ice>; + vdd-hba-supply = <&gdsc_ufs>; + vdd-hba-fixed-regulator; + vcc-supply = <&pm8994_l20>; + vccq-supply = <&pm8994_l25>; + vccq2-supply = <&pm8994_s4>; + vcc-max-microamp = <600000>; + vccq-max-microamp = <450000>; + vccq2-max-microamp = <450000>; + + clock-names = + "core_clk_src", + "core_clk", + "bus_clk", + "bus_aggr_clk", + "iface_clk", + "core_clk_unipro_src", + "core_clk_unipro", + "core_clk_ice", + "ref_clk", + "tx_lane0_sync_clk", + "rx_lane0_sync_clk"; + clocks = + <&clock_gcc clk_ufs_axi_clk_src>, + <&clock_gcc clk_gcc_ufs_axi_clk>, + <&clock_gcc clk_gcc_sys_noc_ufs_axi_clk>, + <&clock_gcc clk_gcc_aggre2_ufs_axi_clk>, + <&clock_gcc clk_gcc_ufs_ahb_clk>, + <&clock_gcc clk_ufs_ice_core_clk_src>, + <&clock_gcc clk_gcc_ufs_unipro_core_clk>, + <&clock_gcc clk_gcc_ufs_ice_core_clk>, + <&clock_gcc clk_ln_bb_clk>, + <&clock_gcc clk_gcc_ufs_tx_symbol_0_clk>, + <&clock_gcc clk_gcc_ufs_rx_symbol_0_clk>; + freq-table-hz = + <100000000 200000000>, + <0 0>, + <0 0>, + <0 0>, + <0 0>, + <150000000 300000000>, + <0 0>, + <0 0>, + <0 0>, + <0 0>, + <0 0>; + + lanes-per-direction = <1>; + qcom,msm-bus,name = "ufs1"; + qcom,msm-bus,num-cases = <12>; + qcom,msm-bus,num-paths = <2>; + qcom,msm-bus,vectors-KBps = + <95 512 0 0>, <1 650 0 0>, /* No vote */ + <95 512 922 0>, <1 650 1000 0>, /* PWM G1 */ + <95 512 1844 0>, <1 650 1000 0>, /* PWM G2 */ + <95 512 3688 0>, <1 650 1000 0>, /* PWM G3 */ + <95 512 7376 0>, <1 650 1000 0>, /* PWM G4 */ + <95 512 127796 0>, <1 650 1000 0>, /* HS G1 RA */ + <95 512 255591 0>, <1 650 1000 0>, /* HS G2 RA */ + <95 512 511181 0>, <1 650 1000 0>, /* HS G3 RA */ + <95 512 149422 0>, <1 650 1000 0>, /* HS G1 RB */ + <95 512 298189 0>, <1 650 1000 0>, /* HS G2 RB */ + <95 512 596378 0>, <1 650 1000 0>, /* HS G3 RB */ + <95 512 4096000 0>, <1 650 1000 0>; /* Max. bandwidth */ + qcom,bus-vector-names = "MIN", + "PWM_G1_L1", "PWM_G2_L1", "PWM_G3_L1", "PWM_G4_L1", + "HS_RA_G1_L1", "HS_RA_G2_L1", "HS_RA_G3_L1", + "HS_RB_G1_L1", "HS_RB_G2_L1", "HS_RB_G3_L1", + "MAX"; + + /* PM QoS */ + qcom,pm-qos-cpu-groups = <0x03 0x0C>; + qcom,pm-qos-cpu-group-latency-us = <70 70>; + qcom,pm-qos-default-cpu = <0>; + + status = "disabled"; + + ufs_variant { + compatible = "qcom,ufs_variant"; + }; + }; + + pcie0: qcom,pcie@00600000 { + compatible = "qcom,pci-msm"; + cell-index = <0>; + + reg = <0x00600000 0x2000>, + <0x00034000 0x4000>, + <0x0c000000 0xf1d>, + <0x0c000f20 0xa8>, + <0x0c100000 0x100000>, + <0x0c200000 0x100000>, + <0x0c300000 0xd00000>; + + reg-names = "parf", "phy", "dm_core", "elbi", + "conf", "io", "bars"; + + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x01000000 0x0 0x0c200000 0x0c200000 0x0 0x100000>, + <0x02000000 0x0 0x0c300000 0x0c300000 0x0 0xd00000>; + interrupt-parent = <&pcie0>; + 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 32 33 34 35 36 37 38 + 39 40 41 42 43>; + #interrupt-cells = <1>; + interrupt-map-mask = <0x0 0x0 0x0 0xffffffff>; + interrupt-map = <0x0 0x0 0x0 0 &intc 0 405 0 + 0x0 0x0 0x0 1 &intc 0 244 0 + 0x0 0x0 0x0 2 &intc 0 245 0 + 0x0 0x0 0x0 3 &intc 0 247 0 + 0x0 0x0 0x0 4 &intc 0 248 0 + 0x0 0x0 0x0 5 &intc 0 249 0 + 0x0 0x0 0x0 6 &intc 0 250 0 + 0x0 0x0 0x0 7 &intc 0 251 0 + 0x0 0x0 0x0 8 &intc 0 252 0 + 0x0 0x0 0x0 9 &intc 0 253 0 + 0x0 0x0 0x0 10 &intc 0 254 0 + 0x0 0x0 0x0 11 &intc 0 255 0 + 0x0 0x0 0x0 12 &intc 0 512 0 + 0x0 0x0 0x0 13 &intc 0 513 0 + 0x0 0x0 0x0 14 &intc 0 514 0 + 0x0 0x0 0x0 15 &intc 0 515 0 + 0x0 0x0 0x0 16 &intc 0 516 0 + 0x0 0x0 0x0 17 &intc 0 517 0 + 0x0 0x0 0x0 18 &intc 0 518 0 + 0x0 0x0 0x0 19 &intc 0 519 0 + 0x0 0x0 0x0 20 &intc 0 520 0 + 0x0 0x0 0x0 21 &intc 0 521 0 + 0x0 0x0 0x0 22 &intc 0 522 0 + 0x0 0x0 0x0 23 &intc 0 523 0 + 0x0 0x0 0x0 24 &intc 0 524 0 + 0x0 0x0 0x0 25 &intc 0 525 0 + 0x0 0x0 0x0 26 &intc 0 526 0 + 0x0 0x0 0x0 27 &intc 0 527 0 + 0x0 0x0 0x0 28 &intc 0 528 0 + 0x0 0x0 0x0 29 &intc 0 529 0 + 0x0 0x0 0x0 30 &intc 0 530 0 + 0x0 0x0 0x0 31 &intc 0 531 0 + 0x0 0x0 0x0 32 &intc 0 532 0 + 0x0 0x0 0x0 33 &intc 0 533 0 + 0x0 0x0 0x0 34 &intc 0 534 0 + 0x0 0x0 0x0 35 &intc 0 535 0 + 0x0 0x0 0x0 36 &intc 0 536 0 + 0x0 0x0 0x0 37 &intc 0 537 0 + 0x0 0x0 0x0 38 &intc 0 538 0 + 0x0 0x0 0x0 39 &intc 0 539 0 + 0x0 0x0 0x0 40 &intc 0 540 0 + 0x0 0x0 0x0 41 &intc 0 541 0 + 0x0 0x0 0x0 42 &intc 0 542 0 + 0x0 0x0 0x0 43 &intc 0 543 0>; + + interrupt-names = "int_msi", "int_a", "int_b", "int_c", "int_d", + "int_pls_pme", "int_pme_legacy", "int_pls_err", + "int_aer_legacy", "int_pls_link_up", + "int_pls_link_down", "int_bridge_flush_n", + "msi_0", "msi_1", "msi_2", "msi_3", + "msi_4", "msi_5", "msi_6", "msi_7", + "msi_8", "msi_9", "msi_10", "msi_11", + "msi_12", "msi_13", "msi_14", "msi_15", + "msi_16", "msi_17", "msi_18", "msi_19", + "msi_20", "msi_21", "msi_22", "msi_23", + "msi_24", "msi_25", "msi_26", "msi_27", + "msi_28", "msi_29", "msi_30", "msi_31"; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pcie0_clkreq_default &pcie0_perst_default &pcie0_wake_default>; + pinctrl-1 = <&pcie0_clkreq_sleep + &pcie0_perst_default + &pcie0_wake_sleep>; + + perst-gpio = <&tlmm 35 0>; + wake-gpio = <&tlmm 37 0>; + + gdsc-smmu-supply = <&gdsc_aggre0_noc>; + gdsc-vdd-supply = <&gdsc_pcie_0>; + vreg-1.8-supply = <&pm8994_l12>; + vreg-0.9-supply = <&pm8994_l28>; + vreg-cx-supply = <&pm8994_s1_corner_ao>; + + qcom,vreg-0.9-voltage-level = <925000 925000 24000>; + qcom,vreg-cx-voltage-level = <7 4 0>; + + qcom,l1-supported; + qcom,l1ss-supported; + qcom,aux-clk-sync; + + qcom,ep-latency = <10>; + + qcom,common-phy; + qcom,smmu-exist; + + iommus = <&anoc0_smmu>; + + qcom,ep-wakeirq; + + linux,pci-domain = <0>; + + qcom,msi-gicm-addr = <0x09BD0040>; + qcom,msi-gicm-base = <0x220>; + + qcom,msm-bus,name = "pcie0"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <45 512 0 0>, + <45 512 500 800>; + + clocks = <&clock_gcc clk_gcc_pcie_0_pipe_clk>, + <&clock_gcc clk_ln_bb_clk>, + <&clock_gcc clk_gcc_pcie_0_aux_clk>, + <&clock_gcc clk_gcc_pcie_0_cfg_ahb_clk>, + <&clock_gcc clk_gcc_pcie_0_mstr_axi_clk>, + <&clock_gcc clk_gcc_pcie_0_slv_axi_clk>, + <&clock_gcc clk_gcc_pcie_clkref_clk>, + <&clock_gcc clk_gcc_smmu_aggre0_axi_clk>, + <&clock_gcc clk_gcc_pcie_phy_cfg_ahb_clk>, + <&clock_gcc clk_gcc_pcie_phy_aux_clk>, + <&clock_gcc clk_gcc_pcie_phy_reset>, + <&clock_gcc clk_gcc_pcie_phy_com_reset>, + <&clock_gcc clk_gcc_pcie_phy_nocsr_com_phy_reset>, + <&clock_gcc clk_gcc_pcie_0_phy_reset>; + + clock-names = "pcie_0_pipe_clk", "pcie_0_ref_clk_src", "pcie_0_aux_clk", + "pcie_0_cfg_ahb_clk", "pcie_0_mstr_axi_clk", + "pcie_0_slv_axi_clk", "pcie_0_ldo", "pcie_0_smmu_clk", + "pcie_phy_cfg_ahb_clk", "pcie_phy_aux_clk", "pcie_phy_reset", + "pcie_phy_com_reset", "pcie_phy_nocsr_com_phy_reset", + "pcie_0_phy_reset"; + + max-clock-frequency-hz = <0>, <0>, <1010526>, <0>, <0>, <0>, <0>, + <0>, <0>, <0>, <0>, <0>, <0>, <0>; + }; + + pcie1: qcom,pcie@00608000 { + compatible = "qcom,pci-msm"; + cell-index = <1>; + + reg = <0x00608000 0x2000>, + <0x00034000 0x4000>, + <0x0d000000 0xf1d>, + <0x0d000f20 0xa8>, + <0x0d100000 0x100000>, + <0x0d200000 0x100000>, + <0x0d300000 0xd00000>; + + reg-names = "parf", "phy", "dm_core", "elbi", + "conf", "io", "bars"; + + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x01000000 0x0 0x0d200000 0x0d200000 0x0 0x100000>, + <0x02000000 0x0 0x0d300000 0x0d300000 0x0 0xd00000>; + interrupt-parent = <&pcie1>; + 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 32 33 34 35 36 37 38 + 39 40 41 42 43>; + #interrupt-cells = <1>; + interrupt-map-mask = <0x0 0x0 0x0 0xffffffff>; + interrupt-map = <0x0 0x0 0x0 0 &intc 0 413 0 + 0x0 0x0 0x0 1 &intc 0 272 0 + 0x0 0x0 0x0 2 &intc 0 273 0 + 0x0 0x0 0x0 3 &intc 0 274 0 + 0x0 0x0 0x0 4 &intc 0 275 0 + 0x0 0x0 0x0 5 &intc 0 276 0 + 0x0 0x0 0x0 6 &intc 0 277 0 + 0x0 0x0 0x0 7 &intc 0 278 0 + 0x0 0x0 0x0 8 &intc 0 279 0 + 0x0 0x0 0x0 9 &intc 0 280 0 + 0x0 0x0 0x0 10 &intc 0 281 0 + 0x0 0x0 0x0 11 &intc 0 282 0 + 0x0 0x0 0x0 12 &intc 0 544 0 + 0x0 0x0 0x0 13 &intc 0 545 0 + 0x0 0x0 0x0 14 &intc 0 546 0 + 0x0 0x0 0x0 15 &intc 0 547 0 + 0x0 0x0 0x0 16 &intc 0 548 0 + 0x0 0x0 0x0 17 &intc 0 549 0 + 0x0 0x0 0x0 18 &intc 0 550 0 + 0x0 0x0 0x0 19 &intc 0 551 0 + 0x0 0x0 0x0 20 &intc 0 552 0 + 0x0 0x0 0x0 21 &intc 0 553 0 + 0x0 0x0 0x0 22 &intc 0 554 0 + 0x0 0x0 0x0 23 &intc 0 555 0 + 0x0 0x0 0x0 24 &intc 0 556 0 + 0x0 0x0 0x0 25 &intc 0 557 0 + 0x0 0x0 0x0 26 &intc 0 558 0 + 0x0 0x0 0x0 27 &intc 0 559 0 + 0x0 0x0 0x0 28 &intc 0 560 0 + 0x0 0x0 0x0 29 &intc 0 561 0 + 0x0 0x0 0x0 30 &intc 0 562 0 + 0x0 0x0 0x0 31 &intc 0 563 0 + 0x0 0x0 0x0 32 &intc 0 564 0 + 0x0 0x0 0x0 33 &intc 0 565 0 + 0x0 0x0 0x0 34 &intc 0 566 0 + 0x0 0x0 0x0 35 &intc 0 567 0 + 0x0 0x0 0x0 36 &intc 0 568 0 + 0x0 0x0 0x0 37 &intc 0 569 0 + 0x0 0x0 0x0 38 &intc 0 570 0 + 0x0 0x0 0x0 39 &intc 0 571 0 + 0x0 0x0 0x0 40 &intc 0 572 0 + 0x0 0x0 0x0 41 &intc 0 573 0 + 0x0 0x0 0x0 42 &intc 0 574 0 + 0x0 0x0 0x0 43 &intc 0 575 0>; + + interrupt-names = "int_msi", "int_a", "int_b", "int_c", "int_d", + "int_pls_pme", "int_pme_legacy", "int_pls_err", + "int_aer_legacy", "int_pls_link_up", + "int_pls_link_down", "int_bridge_flush_n", + "msi_0", "msi_1", "msi_2", "msi_3", + "msi_4", "msi_5", "msi_6", "msi_7", + "msi_8", "msi_9", "msi_10", "msi_11", + "msi_12", "msi_13", "msi_14", "msi_15", + "msi_16", "msi_17", "msi_18", "msi_19", + "msi_20", "msi_21", "msi_22", "msi_23", + "msi_24", "msi_25", "msi_26", "msi_27", + "msi_28", "msi_29", "msi_30", "msi_31"; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pcie1_clkreq_default &pcie1_perst_default &pcie1_wake_default>; + pinctrl-1 = <&pcie1_clkreq_sleep + &pcie1_perst_default + &pcie1_wake_sleep>; + + perst-gpio = <&tlmm 130 0>; + + gdsc-smmu-supply = <&gdsc_aggre0_noc>; + gdsc-vdd-supply = <&gdsc_pcie_1>; + vreg-1.8-supply = <&pm8994_l12>; + vreg-0.9-supply = <&pm8994_l28>; + vreg-cx-supply = <&pm8994_s1_corner_ao>; + + qcom,vreg-0.9-voltage-level = <925000 925000 24000>; + qcom,vreg-cx-voltage-level = <7 5 0>; + + qcom,l1-supported; + qcom,l1ss-supported; + qcom,aux-clk-sync; + + qcom,common-phy; + qcom,smmu-exist; + + iommus = <&anoc0_smmu>; + + qcom,ep-wakeirq; + + qcom,ep-latency = <10>; + + linux,pci-domain = <1>; + + qcom,msm-bus,name = "pcie1"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <100 512 0 0>, + <100 512 500 800>; + + clocks = <&clock_gcc clk_gcc_pcie_1_pipe_clk>, + <&clock_gcc clk_ln_bb_clk>, + <&clock_gcc clk_gcc_pcie_1_aux_clk>, + <&clock_gcc clk_gcc_pcie_1_cfg_ahb_clk>, + <&clock_gcc clk_gcc_pcie_1_mstr_axi_clk>, + <&clock_gcc clk_gcc_pcie_1_slv_axi_clk>, + <&clock_gcc clk_gcc_pcie_clkref_clk>, + <&clock_gcc clk_gcc_smmu_aggre0_axi_clk>, + <&clock_gcc clk_gcc_pcie_phy_cfg_ahb_clk>, + <&clock_gcc clk_gcc_pcie_phy_aux_clk>, + <&clock_gcc clk_gcc_pcie_phy_reset>, + <&clock_gcc clk_gcc_pcie_phy_com_reset>, + <&clock_gcc clk_gcc_pcie_phy_nocsr_com_phy_reset>, + <&clock_gcc clk_gcc_pcie_1_phy_reset>; + + clock-names = "pcie_1_pipe_clk", "pcie_1_ref_clk_src", "pcie_1_aux_clk", + "pcie_1_cfg_ahb_clk", "pcie_1_mstr_axi_clk", + "pcie_1_slv_axi_clk", "pcie_1_ldo", "pcie_1_smmu_clk", + "pcie_phy_cfg_ahb_clk", "pcie_phy_aux_clk", "pcie_phy_reset", + "pcie_phy_com_reset", "pcie_phy_nocsr_com_phy_reset", + "pcie_1_phy_reset"; + + max-clock-frequency-hz = <0>, <0>, <1010526>, <0>, <0>, <0>, <0>, + <0>, <0>, <0>, <0>, <0>, <0>, <0>; + }; + + pcie2: qcom,pcie@00610000 { + compatible = "qcom,pci-msm"; + cell-index = <2>; + + reg = <0x00610000 0x2000>, + <0x00034000 0x4000>, + <0x0e000000 0xf1d>, + <0x0e000f20 0xa8>, + <0x0e100000 0x100000>, + <0x0e200000 0x100000>, + <0x0e300000 0x1d00000>; + + reg-names = "parf", "phy", "dm_core", "elbi", + "conf", "io", "bars"; + + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x01000000 0x0 0x0e200000 0x0e200000 0x0 0x100000>, + <0x02000000 0x0 0x0e300000 0x0e300000 0x0 0x1d00000>; + interrupt-parent = <&pcie2>; + 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 32 33 34 35 36 37 38 + 39 40 41 42 43>; + #interrupt-cells = <1>; + interrupt-map-mask = <0x0 0x0 0x0 0xffffffff>; + interrupt-map = <0x0 0x0 0x0 0 &intc 0 421 0 + 0x0 0x0 0x0 1 &intc 0 142 0 + 0x0 0x0 0x0 2 &intc 0 143 0 + 0x0 0x0 0x0 3 &intc 0 144 0 + 0x0 0x0 0x0 4 &intc 0 145 0 + 0x0 0x0 0x0 5 &intc 0 146 0 + 0x0 0x0 0x0 6 &intc 0 147 0 + 0x0 0x0 0x0 7 &intc 0 148 0 + 0x0 0x0 0x0 8 &intc 0 149 0 + 0x0 0x0 0x0 9 &intc 0 260 0 + 0x0 0x0 0x0 10 &intc 0 261 0 + 0x0 0x0 0x0 11 &intc 0 262 0 + 0x0 0x0 0x0 12 &intc 0 576 0 + 0x0 0x0 0x0 13 &intc 0 577 0 + 0x0 0x0 0x0 14 &intc 0 578 0 + 0x0 0x0 0x0 15 &intc 0 579 0 + 0x0 0x0 0x0 16 &intc 0 580 0 + 0x0 0x0 0x0 17 &intc 0 581 0 + 0x0 0x0 0x0 18 &intc 0 582 0 + 0x0 0x0 0x0 19 &intc 0 583 0 + 0x0 0x0 0x0 20 &intc 0 584 0 + 0x0 0x0 0x0 21 &intc 0 585 0 + 0x0 0x0 0x0 22 &intc 0 586 0 + 0x0 0x0 0x0 23 &intc 0 587 0 + 0x0 0x0 0x0 24 &intc 0 588 0 + 0x0 0x0 0x0 25 &intc 0 589 0 + 0x0 0x0 0x0 26 &intc 0 590 0 + 0x0 0x0 0x0 27 &intc 0 591 0 + 0x0 0x0 0x0 28 &intc 0 592 0 + 0x0 0x0 0x0 29 &intc 0 593 0 + 0x0 0x0 0x0 30 &intc 0 594 0 + 0x0 0x0 0x0 31 &intc 0 595 0 + 0x0 0x0 0x0 32 &intc 0 596 0 + 0x0 0x0 0x0 33 &intc 0 597 0 + 0x0 0x0 0x0 34 &intc 0 598 0 + 0x0 0x0 0x0 35 &intc 0 599 0 + 0x0 0x0 0x0 36 &intc 0 600 0 + 0x0 0x0 0x0 37 &intc 0 601 0 + 0x0 0x0 0x0 38 &intc 0 602 0 + 0x0 0x0 0x0 39 &intc 0 603 0 + 0x0 0x0 0x0 40 &intc 0 604 0 + 0x0 0x0 0x0 41 &intc 0 605 0 + 0x0 0x0 0x0 42 &intc 0 606 0 + 0x0 0x0 0x0 43 &intc 0 607 0>; + + interrupt-names = "int_msi", "int_a", "int_b", "int_c", "int_d", + "int_pls_pme", "int_pme_legacy", "int_pls_err", + "int_aer_legacy", "int_pls_link_up", + "int_pls_link_down", "int_bridge_flush_n", + "msi_0", "msi_1", "msi_2", "msi_3", + "msi_4", "msi_5", "msi_6", "msi_7", + "msi_8", "msi_9", "msi_10", "msi_11", + "msi_12", "msi_13", "msi_14", "msi_15", + "msi_16", "msi_17", "msi_18", "msi_19", + "msi_20", "msi_21", "msi_22", "msi_23", + "msi_24", "msi_25", "msi_26", "msi_27", + "msi_28", "msi_29", "msi_30", "msi_31"; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pcie2_clkreq_default &pcie2_perst_default &pcie2_wake_default>; + pinctrl-1 = <&pcie2_clkreq_sleep + &pcie2_perst_default + &pcie2_wake_sleep>; + + perst-gpio = <&tlmm 114 0>; + wake-gpio = <&tlmm 116 0>; + + gdsc-smmu-supply = <&gdsc_aggre0_noc>; + gdsc-vdd-supply = <&gdsc_pcie_2>; + vreg-1.8-supply = <&pm8994_l12>; + vreg-0.9-supply = <&pm8994_l28>; + vreg-cx-supply = <&pm8994_s1_corner_ao>; + + qcom,vreg-0.9-voltage-level = <925000 925000 24000>; + qcom,vreg-cx-voltage-level = <7 4 0>; + + qcom,l1-supported; + qcom,l1ss-supported; + qcom,aux-clk-sync; + + qcom,common-phy; + qcom,smmu-exist; + + iommus = <&anoc0_smmu>; + + qcom,ep-wakeirq; + + qcom,ep-latency = <10>; + + linux,pci-domain = <2>; + + qcom,msi-gicm-addr = <0x09BD0040>; + qcom,msi-gicm-base = <0x260>; + + qcom,msm-bus,name = "pcie2"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <108 512 0 0>, + <108 512 500 800>; + + clocks = <&clock_gcc clk_gcc_pcie_2_pipe_clk>, + <&clock_gcc clk_ln_bb_clk>, + <&clock_gcc clk_gcc_pcie_2_aux_clk>, + <&clock_gcc clk_gcc_pcie_2_cfg_ahb_clk>, + <&clock_gcc clk_gcc_pcie_2_mstr_axi_clk>, + <&clock_gcc clk_gcc_pcie_2_slv_axi_clk>, + <&clock_gcc clk_gcc_pcie_clkref_clk>, + <&clock_gcc clk_gcc_smmu_aggre0_axi_clk>, + <&clock_gcc clk_gcc_pcie_phy_cfg_ahb_clk>, + <&clock_gcc clk_gcc_pcie_phy_aux_clk>, + <&clock_gcc clk_gcc_pcie_phy_reset>, + <&clock_gcc clk_gcc_pcie_phy_com_reset>, + <&clock_gcc clk_gcc_pcie_phy_nocsr_com_phy_reset>, + <&clock_gcc clk_gcc_pcie_2_phy_reset>; + + clock-names = "pcie_2_pipe_clk", "pcie_2_ref_clk_src", "pcie_2_aux_clk", + "pcie_2_cfg_ahb_clk", "pcie_2_mstr_axi_clk", + "pcie_2_slv_axi_clk", "pcie_2_ldo", "pcie_2_smmu_clk", + "pcie_phy_cfg_ahb_clk", "pcie_phy_aux_clk", "pcie_phy_reset", + "pcie_phy_com_reset", "pcie_phy_nocsr_com_phy_reset", + "pcie_2_phy_reset"; + + max-clock-frequency-hz = <0>, <0>, <1010526>, <0>, <0>, <0>, <0>, + <0>, <0>, <0>, <0>, <0>, <0>, <0>; + }; + + mhi: qcom,mhi { + compatible = "qcom,mhi"; + }; + + qcom,ipc-spinlock@740000 { + compatible = "qcom,ipc-spinlock-sfpb"; + reg = <0x740000 0x8000>; + qcom,num-locks = <8>; + }; + + qcom,smem@86000000 { + compatible = "qcom,smem"; + reg = <0x86000000 0x200000>, + <0x9820010 0x4>, + <0x68000 0x8000>, + <0x7b4000 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 449 1>; + label = "modem"; + qcom,not-loadable; + }; + + qcom,smd-adsp { + compatible = "qcom,smd"; + qcom,smd-edge = <1>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x100>; + interrupts = <0 156 1>; + label = "adsp"; + }; + + qcom,smd-dsps { + compatible = "qcom,smd"; + qcom,smd-edge = <3>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x2000000>; + interrupts = <0 176 1>; + label = "dsps"; + }; + + 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; + }; + }; + + wdog: qcom,wdt@9830000 { + compatible = "qcom,msm-watchdog"; + reg = <0x9830000 0x1000>; + reg-names = "wdt-base"; + interrupts = <0 28 0>, <0 29 0>; + qcom,bark-time = <11000>; + qcom,pet-time = <10000>; + qcom,ipi-ping; + qcom,wakeup-enable; + }; + + qcom,msm-rtb { + compatible = "qcom,msm-rtb"; + qcom,rtb-size = <0x100000>; + }; + + qcom,mpm2-sleep-counter@4a3000 { + compatible = "qcom,mpm2-sleep-counter"; + reg = <0x004a3000 0x1000>; + clock-frequency = <32768>; + }; + + qcom,msm-imem@66bf000 { + compatible = "qcom,msm-imem"; + reg = <0x66bf000 0x1000>; /* Address and size of IMEM */ + ranges = <0x0 0x66bf000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + + mem_dump_table@10 { + compatible = "qcom,msm-imem-mem_dump_table"; + reg = <0x10 8>; + }; + + 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>; + }; + }; + + jtag_fuse: jtagfuse@7602c { + compatible = "qcom,jtag-fuse-v3"; + reg = <0x7602c 0xc>; + reg-names = "fuse-base"; + }; + + rpm_bus: qcom,rpm-smd { + compatible = "qcom,rpm-glink"; + qcom,glink-edge = "rpm"; + rpm-channel-name = "rpm_requests"; + }; + + 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,smdtty { + compatible = "qcom,smdtty"; + + 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"; + }; + }; + + usb3: ssusb@6a00000{ + compatible = "qcom,dwc-usb3-msm"; + reg = <0x06a00000 0xfc000>, + <0x7416000 0x400>; + reg-names = "core_base", + "ahb2phy_base"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + interrupts = <0 133 0>, <0 180 0>; + interrupt-names = "hs_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 960000>; + + qcom,dwc-usb3-msm-tx-fifo-size = <21288>; + qcom,power-collapse-on-cable-disconnect; + qcom,por-after-power-collapse; + + clocks = <&clock_gcc clk_gcc_usb30_master_clk>, + <&clock_gcc clk_gcc_sys_noc_usb3_axi_clk>, + <&clock_gcc clk_gcc_aggre2_usb3_axi_clk>, + <&clock_gcc clk_gcc_usb30_mock_utmi_clk>, + <&clock_gcc clk_gcc_usb30_sleep_clk>, + <&clock_gcc clk_cxo_dwc3_clk>, + <&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>; + + clock-names = "core_clk", "iface_clk", "bus_aggr_clk", "utmi_clk", + "sleep_clk", "xo", "cfg_ahb_clk"; + + dwc3@6a00000 { + compatible = "snps,dwc3"; + reg = <0x06a00000 0xc8d0>; + interrupt-parent = <&intc>; + interrupts = <0 131 0>; + usb-phy = <&qusb_phy0>, <&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@6b04000 { + compatible = "qcom,usb-bam-msm"; + reg = <0x06b04000 0x1a934>; + interrupt-parent = <&intc>; + interrupts = <0 132 0>; + + qcom,bam-type = <0>; + qcom,usb-bam-fifo-baseaddr = <0x066bb000>; + 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 = <0x03084000>; + qcom,src-bam-pipe-index = <0>; + qcom,dst-bam-pipe-index = <2>; + qcom,data-fifo-offset = <0x0>; + qcom,data-fifo-size = <0x1800>; + qcom,descriptor-fifo-offset = <0x1800>; + qcom,descriptor-fifo-size = <0x800>; + }; + 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>; + }; + }; + }; + + usb2s: hsusb@7600000 { + compatible = "qcom,dwc-usb3-msm"; + reg = <0x07600000 0xfc000>, + <0x7416000 0x400>; + reg-names = "core_base", + "ahb2phy_base"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + status = "disabled"; + + interrupts = <0 139 0>, <0 140 0>; + interrupt-names = "hs_phy_irq", "pwr_event_irq"; + + qcom,msm-bus,name = "usb-hs"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <87 512 0 0>, + <87 512 60000 960000>; + + clocks = <&clock_gcc clk_gcc_usb20_master_clk>, + <&clock_gcc clk_gcc_periph_noc_usb20_ahb_clk>, + <&clock_gcc clk_gcc_usb20_mock_utmi_clk>, + <&clock_gcc clk_gcc_usb20_sleep_clk>, + <&clock_gcc clk_ln_bb_clk>, + <&clock_gcc clk_cxo_dwc3_clk>, + <&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>; + clock-names = "core_clk", "iface_clk", "utmi_clk", "sleep_clk", + "ref_clk", "xo", "cfg_ahb_clk"; + + dwc3@7600000 { + compatible = "snps,dwc3"; + reg = <0x07600000 0xc8d0>; + interrupt-parent = <&intc>; + interrupts = <0 138 0>; + usb-phy = <&qusb_phy1>, <&usb_nop_phy>; + maximum-speed = "high-speed"; + snps,nominal-elastic-buffer; + snps,is-utmi-l1-suspend; + snps,hird-threshold = /bits/ 8 <0x0>; + }; + }; + + android_usb@66bf0c8 { + compatible = "qcom,android-usb"; + reg = <0x066bf0c8 0xc8>; + qcom,pm-qos-latency = <301 701 801>; + }; + + qusb_phy0: qusb@7411000 { + compatible = "qcom,qusb2phy"; + reg = <0x07411000 0x180>, + <0x06af8800 0x400>, + <0x0007024c 0x4>, + <0x00388018 0x4>; + reg-names = "qusb_phy_base", + "qscratch_base", + "tune2_efuse_addr", + "ref_clk_addr"; + vdd-supply = <&pm8994_s2_corner>; + vdda18-supply = <&pm8994_l12>; + vdda33-supply = <&pm8994_l24>; + qcom,vdd-voltage-level = <1 5 7>; + qcom,tune2-efuse-bit-pos = <21>; + qcom,tune2-efuse-num-bits = <4>; + qcom,enable-dpdm-pulsing; + qcom,qusb-phy-init-seq = <0xF8 0x80 + 0xB3 0x84 + 0x83 0x88 + 0xC0 0x8C + 0x30 0x08 + 0x79 0x0C + 0x21 0x10 + 0x14 0x9C + 0x9F 0x1C + 0x00 0x18>; + phy_type= "utmi"; + + clocks = <&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>, + <&clock_gcc clk_gcc_qusb2phy_prim_reset>; + + clock-names = "cfg_ahb_clk", "phy_reset"; + }; + + qusb_phy1: qusb@7412000 { + compatible = "qcom,qusb2phy"; + reg = <0x07412000 0x180>, + <0x076f8800 0x400>, + <0x0007024c 0x4>, + <0x00388014 0x4>; + reg-names = "qusb_phy_base", + "qscratch_base", + "tune2_efuse_addr", + "ref_clk_addr"; + vdd-supply = <&pm8994_s2_corner>; + vdda18-supply = <&pm8994_l12>; + vdda33-supply = <&pm8994_l24>; + qcom,vdd-voltage-level = <1 5 7>; + qcom,tune2-efuse-bit-pos = <25>; + qcom,tune2-efuse-num-bits = <4>; + qcom,qusb-phy-init-seq = <0xF8 0x80 + 0xB3 0x84 + 0x83 0x88 + 0xC0 0x8C + 0x30 0x08 + 0x79 0x0C + 0x21 0x10 + 0x14 0x9C + 0x9F 0x1C + 0x00 0x18>; + phy_type = "utmi"; + qcom,hold-reset; + + clocks = <&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>, + <&clock_gcc clk_gcc_qusb2phy_sec_reset>; + + clock-names = "cfg_ahb_clk", "phy_reset"; + }; + + ssphy: ssphy@7410000 { + compatible = "qcom,usb-ssphy-qmp-v2"; + reg = <0x7410000 0x45c>, + <0x007ab244 0x4>; + reg-names = "qmp_phy_base", + "vls_clamp_reg"; + vdd-supply = <&pm8994_l28>; + vdda18-supply = <&pm8994_l12>; + qcom,vdd-voltage-level = <0 925000 925000>; + qcom,vbus-valid-override; + + clocks = <&clock_gcc clk_gcc_usb3_phy_aux_clk>, + <&clock_gcc clk_gcc_usb3_phy_pipe_clk>, + <&clock_gcc clk_gcc_usb_phy_cfg_ahb2phy_clk>, + <&clock_gcc clk_gcc_usb3_phy_reset>, + <&clock_gcc clk_gcc_usb3phy_phy_reset>, + <&clock_gcc clk_ln_bb_clk>, + <&clock_gcc clk_gcc_usb3_clkref_clk>; + + clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk", "phy_reset", + "phy_phy_reset", "ref_clk_src", "ref_clk"; + }; + + usb_nop_phy: usb_nop_phy { + compatible = "usb-nop-xceiv"; + }; + + dbm_1p5: dbm@6af8000 { + compatible = "qcom,usb-dbm-1p5"; + reg = <0x06af8000 0x300>; + qcom,reset-ep-after-lpm-resume; + }; + +/* HACK + spmi_bus: qcom,spmi@400f000 { + compatible = "qcom,spmi-pmic-arb"; + reg = <0x400f000 0x1000>, + <0x4400000 0x800000>, + <0x4c00000 0x800000>, + <0x5800000 0x200000>, + <0x400a000 0x2100>; /* includes SPMI_CFG and GENI_CFG */ +/* reg-names = "core", "chnls", "obsrvr", "intr", "cnfg"; + interrupts = <0 326 0>; + qcom,pmic-arb-channel = <0>; + qcom,pmic-arb-ee = <0>; + qcom,pmic-arb-max-peripherals = <256>; + #interrupt-cells = <3>; + interrupt-controller; + #address-cells = <1>; + #size-cells = <0>; + cell-index = <0>; + }; +*/ + qcom,lpass@9300000 { + compatible = "qcom,pil-tz-generic"; + reg = <0x9300000 0x00100>; + interrupts = <0 162 1>; + + vdd_cx-supply = <&pm8994_s1_corner>; + qcom,proxy-reg-names = "vdd_cx"; + qcom,vdd_cx-uV-uA = <7 100000>; + + clocks = <&clock_gcc clk_cxo_pil_lpass_clk>; + clock-names = "xo"; + qcom,proxy-clock-names = "xo"; + + qcom,pas-id = <1>; + qcom,proxy-timeout-ms = <10000>; + qcom,smem-id = <423>; + qcom,sysmon-id = <1>; + qcom,ssctl-instance-id = <0x14>; + qcom,firmware-name = "adsp"; + qcom,edge = "lpass"; + memory-region = <&peripheral_mem>; + + /* 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>; + }; + + qcom,venus@ce0000 { + compatible = "qcom,pil-tz-generic"; + reg = <0xce0000 0x4000>; + + vdd-supply = <&gdsc_venus>; + qcom,proxy-reg-names = "vdd"; + + clocks = <&clock_mmss clk_video_core_clk>, + <&clock_mmss clk_video_ahb_clk>, + <&clock_mmss clk_video_axi_clk>, + <&clock_mmss clk_video_maxi_clk>; + clock-names = "core_clk", "iface_clk", + "bus_clk", "maxi_clk"; + qcom,proxy-clock-names = "core_clk", "iface_clk", + "bus_clk", "maxi_clk"; + + 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 = <&peripheral_mem>; + }; + + qcom,cnss { + compatible = "qcom,cnss"; + wlan-bootstrap-gpio = <&tlmm 46 0>; + wlan-en-gpio = <&pm8994_gpios 8 0>; + vdd-wlan-supply = <&rome_vreg>; + vdd-wlan-io-supply = <&pm8994_s4>; + vdd-wlan-xtal-supply = <&pm8994_l30>; + vdd-wlan-core-supply = <&pm8994_s3>; + qcom,notify-modem-status; + pinctrl-names = "default"; + pinctrl-0 = <&cnss_default>; + qcom,wlan-rc-num = <0>; + qcom,wlan-ramdump-dynamic = <0x200000>; + + qcom,msm-bus,name = "msm-cnss"; + qcom,msm-bus,num-cases = <4>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + /* No vote */ + <45 512 0 0>, + /* Up to 200 Mbps */ + <45 512 41421 1520000>, + /* Up to 400 Mbps */ + <45 512 96650 1520000>, + /* Up to 800 Mbps */ + <45 512 207108 14432000>; + }; + + wil6210: qcom,wil6210 { + compatible = "qcom,wil6210"; + qcom,pcie-parent = <&pcie1>; + qcom,wigig-en = <&tlmm 94 0>; + qcom,sleep-clk-en = <&pm8994_gpios 18 0>; + qcom,msm-bus,name = "wil6210"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <100 512 0 0>, + <100 512 600000 800000>; /* ~4.6Gbps (MCS12) */ + status = "disabled"; + }; + + qcom,ssc@1c00000 { + compatible = "qcom,pil-tz-generic"; + reg = <0x1c00000 0x4000>; + interrupts = <0 390 1>; + + vdd_cx-supply = <&pm8994_l26_corner>; + vdd_px-supply = <&pm8994_lvs2>; + qcom,vdd_cx-uV-uA = <5 0>; + qcom,proxy-reg-names = "vdd_cx", "vdd_px"; + qcom,keep-proxy-regs-on; + + clocks = <&clock_gcc clk_cxo_pil_ssc_clk>, + <&clock_gcc clk_aggre2_noc_clk>; + clock-names = "xo", "aggre2"; + qcom,proxy-clock-names = "xo", "aggre2"; + + qcom,pas-id = <12>; + qcom,proxy-timeout-ms = <10000>; + qcom,smem-id = <424>; + qcom,sysmon-id = <3>; + qcom,ssctl-instance-id = <0x16>; + qcom,firmware-name = "slpi"; + qcom,edge = "dsps"; + memory-region = <&peripheral_mem>; + + /* GPIO inputs from ssc */ + qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_3_in 0 0>; + qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_3_in 2 0>; + qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_3_in 1 0>; + qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_3_in 3 0>; + + /* GPIO output to ssc */ + qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_3_out 0 0>; + }; + + pil_modem: qcom,mss@2080000 { + compatible = "qcom,pil-q6v55-mss"; + reg = <0x2080000 0x100>, + <0x0763000 0x008>, + <0x0765000 0x008>, + <0x0764000 0x008>, + <0x2180000 0x020>, + <0x038f008 0x004>; + reg-names = "qdsp6_base", "halt_q6", "halt_modem", + "halt_nc", "rmb_base", "restart_reg"; + + clocks = <&clock_gcc clk_cxo_clk_src>, + <&clock_gcc clk_gcc_mss_cfg_ahb_clk>, + <&clock_gcc clk_pnoc_clk>, + <&clock_gcc clk_gcc_mss_q6_bimc_axi_clk>, + <&clock_gcc clk_gcc_boot_rom_ahb_clk>, + <&clock_gcc clk_gpll0_out_msscc>, + <&clock_gcc clk_gcc_mss_snoc_axi_clk>, + <&clock_gcc clk_gcc_mss_mnoc_bimc_axi_clk>, + <&clock_gcc clk_qdss_clk>; + clock-names = "xo", "iface_clk", "pnoc_clk", "bus_clk", + "mem_clk", "gpll0_mss_clk", "snoc_axi_clk", + "mnoc_axi_clk", "qdss_clk"; + qcom,proxy-clock-names = "xo", "pnoc_clk", "qdss_clk"; + qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk", + "gpll0_mss_clk", "snoc_axi_clk", + "mnoc_axi_clk"; + + interrupts = <0 448 1>; + vdd_cx-supply = <&pm8994_s1_corner>; + vdd_cx-voltage = <7>; + vdd_mx-supply = <&pm8994_s2_corner>; + vdd_mx-uV = <6>; + vdd_pll-supply = <&pm8994_l12>; + qcom,vdd_pll = <1800000>; + qcom,firmware-name = "modem"; + qcom,pil-self-auth; + qcom,sysmon-id = <0>; + qcom,ssctl-instance-id = <0x12>; + qcom,override-acc; + qcom,ahb-clk-vote; + qcom,pnoc-clk-vote; + qcom,qdsp6v56-1-5; + memory-region = <&modem_mem>; + qcom,mem-protect-id = <0xF>; + + /* 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>; + status = "ok"; + }; + + tsens0: tsens@4a9000 { + compatible = "qcom,msm8996-tsens"; + reg = <0x4a8000 0x2000>, + <0x74230 0x1000>; + reg-names = "tsens_physical", "tsens_eeprom_physical"; + interrupts = <0 184 0>, <0 430 0>; + interrupt-names = "tsens-upper-lower", "tsens-critical"; + qcom,sensors = <16>; + qcom,slope = <2901 2846 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200>; + }; + + spi_0: spi@7575000 { /* BLSP1 QUP1 */ + compatible = "qcom,spi-qup-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "spi_physical", "spi_bam_physical"; + reg = <0x07575000 0x600>, + <0x07544000 0x2b000>; + interrupt-names = "spi_irq", "spi_bam_irq"; + interrupts = <0 95 0>, <0 238 0>; + spi-max-frequency = <19200000>; + + qcom,infinite-mode = <0>; + qcom,use-bam; + qcom,ver-reg-exists; + qcom,bam-consumer-pipe-index = <12>; + qcom,bam-producer-pipe-index = <13>; + qcom,master-id = <86>; + qcom,use-pinctrl; + pinctrl-names = "spi_default", "spi_sleep"; + pinctrl-0 = <&spi_0_active &spi_0_cs_active>; + pinctrl-1 = <&spi_0_sleep &spi_0_cs_sleep>; + + clock-names = "iface_clk", "core_clk"; + + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup1_spi_apps_clk>; + }; + + qcom,rmnet-ipa { + compatible = "qcom,rmnet-ipa"; + qcom,rmnet-ipa-ssr; + qcom,ipa-loaduC; + }; + + qcom_rng: qrng@83000 { + compatible = "qcom,msm-rng"; + reg = <0x83000 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_crypto: qcrypto@660000 { + compatible = "qcom,qcrypto"; + reg = <0x660000 0x20000>, + <0x644000 0x24000>; + reg-names = "crypto-base","crypto-bam-base"; + interrupts = <0 206 0>; + qcom,bam-pipe-pair = <2>; + qcom,ce-hw-instance = <0>; + qcom,ce-device = <0>; + qcom,bam-ee = <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 3936000 393600>; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + clocks = <&clock_gcc clk_ce1_clk>, + <&clock_gcc clk_qcrypto_ce1_clk>, + <&clock_gcc clk_gcc_ce1_ahb_m_clk>, + <&clock_gcc clk_gcc_ce1_axi_m_clk>; + qcom,ce-opp-freq = <171430000>; + 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_cedev: qcedev@660000 { + compatible = "qcom,qcedev"; + reg = <0x660000 0x20000>, + <0x644000 0x24000>; + reg-names = "crypto-base","crypto-bam-base"; + interrupts = <0 206 0>; + qcom,bam-pipe-pair = <1>; + qcom,ce-hw-instance = <0>; + qcom,ce-device = <0>; + qcom,ce-hw-shared; + qcom,bam-ee = <0>; + 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 3936000 393600>; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + clocks = <&clock_gcc clk_ce1_clk>, + <&clock_gcc clk_qcedev_ce1_clk>, + <&clock_gcc clk_gcc_ce1_ahb_m_clk>, + <&clock_gcc clk_gcc_ce1_axi_m_clk>; + qcom,ce-opp-freq = <171430000>; + }; + + qcom_seecom: qseecom@86600000 { + compatible = "qcom,qseecom"; + reg = <0x86600000 0x2200000>; + 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,no-clock-support; + qcom,appsbl-qseecom-support; + qcom,msm-bus,name = "qseecom-noc"; + qcom,msm-bus,num-cases = <4>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 0 0>, + <55 512 120000 1200000>, + <55 512 393600 3936000>; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + clocks = <&clock_gcc clk_ce1_clk>, + <&clock_gcc clk_qseecom_ce1_clk>, + <&clock_gcc clk_gcc_ce1_ahb_m_clk>, + <&clock_gcc clk_gcc_ce1_axi_m_clk>; + qcom,ce-opp-freq = <171430000>; + qcom,qsee-reentrancy-support = <2>; + }; + + qcom,qbt1000 { + compatible = "qcom,qbt1000"; + qcom,fingerprint-sensor-ssc-spi-conn { + qcom,spi-port-id = <2>; + qcom,spi-port-slave-index = <0>; + qcom,tz-subsys-id = <1>; + qcom,ssc-subsys-id = <5>; + clock-frequency = <15000000>; + }; + }; + + 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,alias-name = "pop_mem"; + qcom,scaling-factor = <10>; + }; + + sensor_information2: qcom,sensor-information-2 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor2"; + 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>; + }; + + 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>; + }; + + 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 = "pm8994_tz"; + qcom,scaling-factor = <1000>; + }; + + sensor_information17: qcom,sensor-information-17 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "msm_therm"; + }; + + sensor_information18: qcom,sensor-information-18 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "emmc_therm"; + }; + + sensor_information19: qcom,sensor-information-19 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "pa_therm0"; + }; + + sensor_information20: qcom,sensor-information-20 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "pa_therm1"; + }; + + sensor_information21: qcom,sensor-information-21 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "quiet_therm"; + }; + sensor_information22: qcom,sensor-information-22 { + qcom,sensor-type = "llm"; + qcom,sensor-name = "DLMt_APC1"; + }; + sensor_information23: qcom,sensor-information-23 { + qcom,sensor-type = "llm"; + qcom,sensor-name = "LLM_m4m0"; + }; + sensor_information24: qcom,sensor-information-24 { + qcom,sensor-type = "llm"; + qcom,sensor-name = "LLM_cp10"; + }; + sensor_information25: qcom,sensor-information-25 { + qcom,sensor-type = "llm"; + qcom,sensor-name = "LLM_l3--"; + }; + sensor_information26: qcom,sensor-information-26 { + qcom,sensor-type = "llm"; + qcom,sensor-name = "LLM_cp01"; + }; + sensor_information27: qcom,sensor-information-27 { + qcom,sensor-type = "llm"; + qcom,sensor-name = "LLM_cp00"; + }; + sensor_information28: qcom,sensor-information-28 { + qcom,sensor-type = "llm"; + qcom,sensor-name = "LLM_l21-"; + }; + sensor_information29: qcom,sensor-information-29 { + qcom,sensor-type = "llm"; + qcom,sensor-name = "LLM_cp11"; + }; + sensor_information30: qcom,sensor-information-30 { + qcom,sensor-type = "llm"; + qcom,sensor-name = "LLM_l20-"; + }; + sensor_information31: qcom,sensor-information-31 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor16"; + qcom,scaling-factor = <10>; + }; + sensor_information32: qcom,sensor-information-32 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor17"; + qcom,scaling-factor = <10>; + }; + sensor_information33: qcom,sensor-information-33 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor18"; + qcom,scaling-factor = <10>; + }; + sensor_information34: qcom,sensor-information-34 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor19"; + qcom,scaling-factor = <10>; + }; + sensor_information35: qcom,sensor-information-35 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor20"; + qcom,scaling-factor = <10>; + }; + }; + + mitigation_profile0: qcom,limit_info-0 { + qcom,temperature-sensor = <&sensor_information4>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + }; + + mitigation_profile1: qcom,limit_info-1 { + qcom,temperature-sensor = <&sensor_information6>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + }; + + mitigation_profile2: qcom,limit_info-2 { + qcom,temperature-sensor = <&sensor_information9>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + }; + + mitigation_profile3: qcom,limit_info-3 { + qcom,temperature-sensor = <&sensor_information11>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + }; + + qcom,msm-thermal { + compatible = "qcom,msm-thermal"; + reg = <0x70000 0x1000>; + qcom,sensor-id = <11>; + qcom,poll-ms = <100>; + qcom,limit-temp = <60>; + qcom,temp-hysteresis = <10>; + qcom,therm-reset-temp = <115>; + qcom,freq-step = <4>; + qcom,core-limit-temp = <70>; + qcom,core-temp-hysteresis = <10>; + qcom,hotplug-temp = <105>; + qcom,hotplug-temp-hysteresis = <40>; + qcom,freq-mitigation-temp = <90>; + qcom,freq-mitigation-temp-hysteresis = <40>; + qcom,freq-mitigation-value = <576000>; + qcom,online-hotplug-core; + qcom,synchronous-cluster-id = <0 1>; + qcom,synchronous-cluster-map = <0 2 &CPU0 &CPU1>, + <1 2 &CPU2 &CPU3>; + + qcom,vdd-restriction-temp = <5>; + qcom,vdd-restriction-temp-hysteresis = <10>; + + vdd-dig-supply = <&pm8994_s1_floor_corner>; + vdd-gfx-supply = <&gfx_vreg>; + + qcom,vdd-dig-rstr{ + qcom,vdd-rstr-reg = "vdd-dig"; + qcom,levels = <5 7 7>; /* Nominal, Super Turbo, Super Turbo */ + qcom,min-level = <1>; /* No Request */ + }; + + qcom,vdd-gfx-rstr{ + qcom,vdd-rstr-reg = "vdd-gfx"; + qcom,levels = <4 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 = <576000 600000 600000>; + qcom,freq-req; + }; + }; + + qcom,bcl { + compatible = "qcom,bcl"; + qcom,bcl-enable; + qcom,bcl-framework-interface; + qcom,bcl-freq-control-list = <&CPU2 &CPU3>; + qcom,bcl-hotplug-list = <&CPU2 &CPU3>; + qcom,bcl-soc-hotplug-list = <&CPU2 &CPU3>; + qcom,ibat-monitor { + qcom,low-threshold-uamp = <3400000>; + qcom,high-threshold-uamp = <4200000>; + qcom,mitigation-freq-khz = <576000>; + qcom,vph-high-threshold-uv = <3500000>; + qcom,vph-low-threshold-uv = <3300000>; + qcom,soc-low-threshold = <10>; + qcom,thermal-handle = <&msm_thermal_freq>; + }; + }; + + qcom,msm-core@70000 { + compatible = "qcom,apss-core-ea"; + reg = <0x70000 0x1000>; + qcom,low-hyst-temp = <10>; + qcom,high-hyst-temp = <5>; + qcom,polling-interval = <50>; + + ea0: ea0 { + sensor = <&sensor_information4>; + }; + + ea1: ea1 { + sensor = <&sensor_information6>; + }; + + ea2: ea2 { + sensor = <&sensor_information9>; + }; + + ea3: ea3 { + sensor = <&sensor_information11>; + }; + }; + + cpuss_dump { + compatible = "qcom,cpuss-dump"; + qcom,l2_dump0 { + qcom,dump-node = <&L2_0>; + qcom,dump-id = <0xC0>; + }; + qcom,l2_dump1 { + qcom,dump-node = <&L2_1>; + qcom,dump-id = <0xC1>; + }; + qcom,l1_d_dump0 { + qcom,dump-node = <&L1_D_0>; + qcom,dump-id = <0x80>; + }; + qcom,l1_d_dump1 { + qcom,dump-node = <&L1_D_1>; + qcom,dump-id = <0x81>; + }; + qcom,l1_d_dump100 { + qcom,dump-node = <&L1_D_100>; + qcom,dump-id = <0x82>; + }; + qcom,l1_d_dump101 { + qcom,dump-node = <&L1_D_101>; + qcom,dump-id = <0x83>; + }; + qcom,l1_tlb_dump0 { + qcom,dump-node = <&L1_TLB_0>; + qcom,dump-id = <0x20>; + }; + qcom,l1_tlb_dump1 { + qcom,dump-node = <&L1_TLB_1>; + qcom,dump-id = <0x21>; + }; + qcom,l1_tlb_dump100 { + qcom,dump-node = <&L1_TLB_100>; + qcom,dump-id = <0x22>; + }; + qcom,l1_tlb_dump101 { + qcom,dump-node = <&L1_TLB_101>; + qcom,dump-id = <0x23>; + }; + }; + + qcom_tzlog: tz-log@66bf720 { + compatible = "qcom,tz-log"; + reg = <0x066bf720 0x2000>; + qcom,hyplog-enabled; + hyplog-address-offset = <0x410>; /* 0x066BFB30 */ + hyplog-size-offset = <0x414>; /* 0x066BFB34 */ + }; + + sound-9335 { + compatible = "qcom,msm8996-asoc-snd-tasha"; + qcom,model = "msm8996-tasha-snd-card"; + + qcom,audio-routing = + "AIF4 VI", "MCLK", + "RX_BIAS", "MCLK", + "MADINPUT", "MCLK", + "AMIC2", "MIC BIAS2", + "MIC BIAS2", "Headset Mic", + "AMIC3", "MIC BIAS2", + "MIC BIAS2", "ANCRight Headset Mic", + "AMIC4", "MIC BIAS2", + "MIC BIAS2", "ANCLeft Headset Mic", + "AMIC5", "MIC BIAS3", + "MIC BIAS3", "Handset Mic", + "AMIC6", "MIC BIAS4", + "MIC BIAS4", "Analog Mic6", + "DMIC0", "MIC BIAS1", + "MIC BIAS1", "Digital Mic0", + "DMIC1", "MIC BIAS1", + "MIC BIAS1", "Digital Mic1", + "DMIC2", "MIC BIAS3", + "MIC BIAS3", "Digital Mic2", + "DMIC3", "MIC BIAS3", + "MIC BIAS3", "Digital Mic3", + "DMIC4", "MIC BIAS4", + "MIC BIAS4", "Digital Mic4", + "DMIC5", "MIC BIAS4", + "MIC BIAS4", "Digital Mic5", + "SpkrLeft IN", "SPK1 OUT", + "SpkrRight IN", "SPK2 OUT"; + + qcom,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>, <&compr>; + 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-compr-dsp"; + asoc-cpu = <&dai_pri_auxpcm>, <&dai_sec_auxpcm>, <&dai_hdmi>, <&dai_mi2s>, + <&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_music2_rx>, + <&sb_5_rx>; + asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2", + "msm-dai-q6-hdmi.8", "msm-dai-q6-mi2s.2", + "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"; + asoc-codec = <&stub_codec>; + asoc-codec-names = "msm-stub-codec.1"; + }; + + qcom,msm-adsp-loader { + status = "ok"; + compatible = "qcom,adsp-loader"; + qcom,adsp-state = <0>; + }; + + qcom,msm-audio-ion { + compatible = "qcom,msm-audio-ion"; + qcom,smmu-version = <2>; + qcom,smmu-enabled; + iommus = <&lpass_q6_smmu 1>; + }; + + pcm0: qcom,msm-pcm { + compatible = "qcom,msm-pcm-dsp"; + qcom,msm-pcm-dsp-id = <0>; + }; + + pcm1: qcom,msm-pcm-ull-post-processing { + compatible = "qcom,msm-pcm-dsp"; + qcom,msm-pcm-dsp-id = <1>; + qcom,msm-pcm-low-latency; + qcom,latency-level = "ull-pp"; + }; + + 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"; + }; + + routing: qcom,msm-pcm-routing { + compatible = "qcom,msm-pcm-routing"; + }; + + compr: qcom,msm-compr-dsp { + compatible = "qcom,msm-compr-dsp"; + }; + + 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"; + }; + + dai_hdmi: qcom,msm-dai-q6-hdmi { + compatible = "qcom,msm-dai-q6-hdmi"; + qcom,msm-dai-q6-dev-id = <8>; + }; + + lsm: qcom,msm-lsm-client { + compatible = "qcom,msm-lsm-client"; + }; + + loopback: qcom,msm-pcm-loopback { + compatible = "qcom,msm-pcm-loopback"; + }; + + cpe: qcom,msm-cpe-lsm { + compatible = "qcom,msm-cpe-lsm"; + }; + + 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>; + }; + + 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>; + }; + + 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: com,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_music2_rx: qcom,msm-dai-q6-incall-music-2-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <32770>; + }; + + sb_5_rx: qcom,msm-dai-q6-sb-5-rx { + compatible = "qcom,msm-dai-q6-dev"; + qcom,msm-dai-q6-dev-id = <16394>; + }; + + }; + + 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"; + qcom,msm-cpudai-afe-clk-ver = <2>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pri_aux_pcm_active &pri_aux_pcm_din_active + &pri_aux_pcm_dout_active>; + pinctrl-1 = <&pri_aux_pcm_sleep &pri_aux_pcm_din_sleep + &pri_aux_pcm_dout_sleep>; + }; + + dai_sec_auxpcm: qcom,msm-sec-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 = "secondary"; + qcom,msm-cpudai-afe-clk-ver = <2>; + }; + + qcom,msm-dai-mi2s { + compatible = "qcom,msm-dai-mi2s"; + dai_mi2s: 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 = <2>; + qcom,msm-mi2s-tx-lines = <1>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&tert_mi2s_active &tert_mi2s_sd0_active>; + pinctrl-1 = <&tert_mi2s_sleep &tert_mi2s_sd0_sleep>; + }; + + dai_mi2s_quat: 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 = <0>; + }; + }; + + qcom,msm-dai-tdm-tert-rx { + compatible = "qcom,msm-dai-tdm"; + qcom,msm-cpudai-tdm-group-id = <37152>; + qcom,msm-cpudai-tdm-group-num-ports = <4>; + qcom,msm-cpudai-tdm-group-port-id = <36896 36898 36900 36902>; + qcom,msm-cpudai-tdm-group-nslots-per-frame = <8>; + qcom,msm-cpudai-tdm-group-slot-width = <32>; + qcom,msm-cpudai-tdm-group-slot-mask = <255>; + qcom,msm-cpudai-tdm-clk-rate = <0>; + dai_tert_tdm_rx_0: qcom,msm-dai-q6-tdm-tert-rx-0 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36896>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + + dai_tert_tdm_rx_1: qcom,msm-dai-q6-tdm-tert-rx-1 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36898>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + + dai_tert_tdm_rx_2: qcom,msm-dai-q6-tdm-tert-rx-2 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36900>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + + dai_tert_tdm_rx_3: qcom,msm-dai-q6-tdm-tert-rx-3 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36902>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + }; + + qcom,msm-dai-tdm-tert-tx { + compatible = "qcom,msm-dai-tdm"; + qcom,msm-cpudai-tdm-group-id = <37153>; + qcom,msm-cpudai-tdm-group-num-ports = <4>; + qcom,msm-cpudai-tdm-group-port-id = <36897 36899 36901 36903>; + qcom,msm-cpudai-tdm-group-nslots-per-frame = <8>; + qcom,msm-cpudai-tdm-group-slot-width = <32>; + qcom,msm-cpudai-tdm-group-slot-mask = <255>; + qcom,msm-cpudai-tdm-clk-rate = <0>; + dai_tert_tdm_tx_0: qcom,msm-dai-q6-tdm-tert-tx-0 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36897>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + + dai_tert_tdm_tx_1: qcom,msm-dai-q6-tdm-tert-tx-1 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36899>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + + dai_tert_tdm_tx_2: qcom,msm-dai-q6-tdm-tert-tx-2 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36901>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + + dai_tert_tdm_tx_3: qcom,msm-dai-q6-tdm-tert-tx-3 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36903>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + }; + + qcom,msm-dai-tdm-quat-rx { + compatible = "qcom,msm-dai-tdm"; + qcom,msm-cpudai-tdm-group-id = <37168>; + qcom,msm-cpudai-tdm-group-num-ports = <4>; + qcom,msm-cpudai-tdm-group-port-id = <36912 36914 36916 36918>; + qcom,msm-cpudai-tdm-group-nslots-per-frame = <8>; + qcom,msm-cpudai-tdm-group-slot-width = <32>; + qcom,msm-cpudai-tdm-group-slot-mask = <255>; + qcom,msm-cpudai-tdm-clk-rate = <0>; + dai_quat_tdm_rx_0: qcom,msm-dai-q6-tdm-quat-rx-0 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36912>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + + dai_quat_tdm_rx_1: qcom,msm-dai-q6-tdm-quat-rx-1 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36914>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + + dai_quat_tdm_rx_2: qcom,msm-dai-q6-tdm-quat-rx-2 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36916>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + + dai_quat_tdm_rx_3: qcom,msm-dai-q6-tdm-quat-rx-3 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36918>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + }; + + qcom,msm-dai-tdm-quat-tx { + compatible = "qcom,msm-dai-tdm"; + qcom,msm-cpudai-tdm-group-id = <37169>; + qcom,msm-cpudai-tdm-group-num-ports = <4>; + qcom,msm-cpudai-tdm-group-port-id = <36913 36915 36917 36919>; + qcom,msm-cpudai-tdm-group-nslots-per-frame = <8>; + qcom,msm-cpudai-tdm-group-slot-width = <32>; + qcom,msm-cpudai-tdm-group-slot-mask = <255>; + qcom,msm-cpudai-tdm-clk-rate = <0>; + dai_quat_tdm_tx_0: qcom,msm-dai-q6-tdm-quat-tx-0 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36913>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + + dai_quat_tdm_tx_1: qcom,msm-dai-q6-tdm-quat-tx-1 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36915>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + + dai_quat_tdm_tx_2: qcom,msm-dai-q6-tdm-quat-tx-2 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36917>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + + dai_quat_tdm_tx_3: qcom,msm-dai-q6-tdm-quat-tx-3 { + compatible = "qcom,msm-dai-q6-tdm"; + qcom,msm-cpudai-tdm-dev-id = <36919>; + qcom,msm-cpudai-tdm-sync-mode = <1>; + qcom,msm-cpudai-tdm-sync-src = <0>; + qcom,msm-cpudai-tdm-data-out = <0>; + qcom,msm-cpudai-tdm-invert-sync = <0>; + qcom,msm-cpudai-tdm-data-delay = <0>; + }; + }; + + hostless: qcom,msm-pcm-hostless { + compatible = "qcom,msm-pcm-hostless"; + }; + + qcom,msm-ssc-sensors { + compatible = "qcom,msm-ssc-sensors"; + status = "ok"; + }; + + qcom,msm-pacman { + compatible = "qcom,msm-pacman"; + }; + + qcom,msm_fastrpc { + compatible = "qcom,msm-fastrpc-adsp"; + + qcom,msm_fastrpc_compute_cb1 { + compatible = "qcom,msm-fastrpc-compute-cb"; + label = "adsprpc-smd"; + iommus = <&lpass_q6_smmu 8>; + }; + qcom,msm_fastrpc_compute_cb2 { + compatible = "qcom,msm-fastrpc-compute-cb"; + label = "adsprpc-smd"; + iommus = <&lpass_q6_smmu 9>; + }; + qcom,msm_fastrpc_compute_cb3 { + compatible = "qcom,msm-fastrpc-compute-cb"; + label = "adsprpc-smd"; + iommus = <&lpass_q6_smmu 10>; + }; + qcom,msm_fastrpc_compute_cb4 { + compatible = "qcom,msm-fastrpc-compute-cb"; + label = "adsprpc-smd"; + iommus = <&lpass_q6_smmu 11>; + }; + qcom,msm_fastrpc_compute_cb5 { + compatible = "qcom,msm-fastrpc-compute-cb"; + label = "adsprpc-smd"; + iommus = <&lpass_q6_smmu 12>; + }; + qcom,msm_fastrpc_compute_cb6 { + compatible = "qcom,msm-fastrpc-compute-cb"; + label = "adsprpc-smd"; + iommus = <&lpass_q6_smmu 13>; + }; + qcom,msm_fastrpc_compute_cb7 { + compatible = "qcom,msm-fastrpc-compute-cb"; + label = "adsprpc-smd"; + iommus = <&lpass_q6_smmu 14>; + }; + qcom,msm_fastrpc_compute_cb8 { + compatible = "qcom,msm-fastrpc-compute-cb"; + label = "adsprpc-smd"; + iommus = <&lpass_q6_smmu 15>; + }; + }; + + cpu_pmu: cpu-pmu { + compatible = "arm,armv8-pmuv3"; + qcom,irq-is-percpu; + interrupts = <1 7 4>; + }; + + qcom,glink-smem-native-xprt-modem@86000000 { + compatible = "qcom,glink-smem-native-xprt"; + reg = <0x86000000 0x200000>, + <0x9820010 0x4>; + reg-names = "smem", "irq-reg-base"; + qcom,irq-mask = <0x8000>; + interrupts = <0 452 1>; + label = "mpss"; + }; + + qcom,glink-smem-native-xprt-adsp@86000000 { + compatible = "qcom,glink-smem-native-xprt"; + reg = <0x86000000 0x200000>, + <0x9820010 0x4>; + reg-names = "smem", "irq-reg-base"; + qcom,irq-mask = <0x200>; + interrupts = <0 157 1>; + label = "lpass"; + qcom,qos-config = <&glink_qos_adsp>; + qcom,ramp-time = <0xaf>; + }; + + glink_qos_adsp: qcom,glink-qos-config-adsp { + compatible = "qcom,glink-qos-config"; + qcom,flow-info = <0x3c 0x0>, + <0x3c 0x0>, + <0x3c 0x0>, + <0x3c 0x0>; + qcom,mtu-size = <0x800>; + qcom,tput-stats-cycle = <0xa>; + }; + + qcom,glink-smem-native-xprt-dsps@86000000 { + compatible = "qcom,glink-smem-native-xprt"; + reg = <0x86000000 0x200000>, + <0x9820010 0x4>; + reg-names = "smem", "irq-reg-base"; + qcom,irq-mask = <0x8000000>; + interrupts = <0 179 1>; + label = "dsps"; + }; + + qcom,glink-smem-native-xprt-rpm@68000 { + compatible = "qcom,glink-rpm-native-xprt"; + reg = <0x68000 0x6000>, + <0x9820010 0x4>; + reg-names = "msgram", "irq-reg-base"; + qcom,irq-mask = <0x1>; + interrupts = <0 168 1>; + label = "rpm"; + }; + + glink_mpss: qcom,glink-ssr-modem { + compatible = "qcom,glink_ssr"; + label = "modem"; + qcom,edge = "mpss"; + qcom,notify-edges = <&glink_lpass>, <&glink_dsps>, <&glink_rpm>; + qcom,xprt = "smem"; + }; + + glink_lpass: qcom,glink-ssr-adsp { + compatible = "qcom,glink_ssr"; + label = "adsp"; + qcom,edge = "lpass"; + qcom,notify-edges = <&glink_mpss>, <&glink_dsps>, <&glink_rpm>; + qcom,xprt = "smem"; + }; + + glink_dsps: qcom,glink-ssr-dsps { + compatible = "qcom,glink_ssr"; + label = "slpi"; + qcom,edge = "dsps"; + qcom,notify-edges = <&glink_mpss>, <&glink_lpass>, <&glink_rpm>; + qcom,xprt = "smem"; + }; + + glink_rpm: qcom,glink-ssr-rpm { + compatible = "qcom,glink_ssr"; + label = "rpm"; + qcom,edge = "rpm"; + qcom,notify-edges = <&glink_lpass>, <&glink_mpss>, <&glink_dsps>; + qcom,xprt = "smem"; + }; + + qcom,glink_pkt { + compatible = "qcom,glinkpkt"; + + qcom,glinkpkt-at-mdm0 { + qcom,glinkpkt-transport = "smd_trans"; + qcom,glinkpkt-edge = "mpss"; + qcom,glinkpkt-ch-name = "DS"; + qcom,glinkpkt-dev-name = "at_mdm0"; + }; + + qcom,glinkpkt-loopback_cntl { + qcom,glinkpkt-transport = "lloop"; + qcom,glinkpkt-edge = "local"; + qcom,glinkpkt-ch-name = "LOCAL_LOOPBACK_CLNT"; + qcom,glinkpkt-dev-name = "glink_pkt_loopback_ctrl"; + }; + + qcom,glinkpkt-loopback_data { + qcom,glinkpkt-transport = "lloop"; + qcom,glinkpkt-edge = "local"; + qcom,glinkpkt-ch-name = "glink_pkt_lloop_CLNT"; + qcom,glinkpkt-dev-name = "glink_pkt_loopback"; + }; + }; + + qcom,cache_erp64@6500000 { + compatible = "qcom,kryo_cache_erp64"; + reg = <0x6500000 0x4000>; + /* + * PPI 0 for L0/L1 + * SPI 1 for Cluster 1 L2 Info + * SPI 9 for Cluster 2 L2 Info + * SPI 2 for Cluster 1 L2 Error + * SPI 10 for Cluster 2 L2 Error + * SPI 17 for L3 error + */ + interrupts = <1 0 0>, <0 1 0>, <0 9 0>, <0 2 0>, <0 10 0>, + <0 17 0>; + interrupt-names = "l1_irq", "l2_irq_info_0", "l2_irq_info_1", + "l2_irq_err_0", "l2_irq_err_1", "l3_irq"; + }; + + qcom,m4m_erp64@9A40000 { + compatible = "qcom,m4m_erp"; + reg = <0x9A40000 0x40000>; + interrupts = <0 22 0>; + interrupt-names = "m4m_irq"; + }; + + lmh: qcom,lmh { + compatible = "qcom,lmh_v1"; + interrupts = <0 23 4>; + }; + + timer@09840000 { + #address-cells = <1>; + #size-cells = <1>; + ranges; + compatible = "arm,armv7-timer-mem"; + reg = <0x09840000 0x1000>; + clock-frequency = <19200000>; + + frame@09850000 { + frame-number = <0>; + interrupts = <0 31 0x4>, + <0 30 0x4>; + reg = <0x09850000 0x1000>, + <0x09860000 0x1000>; + }; + + frame@09870000 { + frame-number = <1>; + interrupts = <0 32 0x4>; + reg = <0x09870000 0x1000>; + status = "disabled"; + }; + + frame@09880000 { + frame-number = <2>; + interrupts = <0 33 0x4>; + reg = <0x09880000 0x1000>; + status = "disabled"; + }; + + frame@09890000 { + frame-number = <3>; + interrupts = <0 34 0x4>; + reg = <0x09890000 0x1000>; + status = "disabled"; + }; + + frame@098a0000 { + frame-number = <4>; + interrupts = <0 35 0x4>; + reg = <0x098a0000 0x1000>; + status = "disabled"; + }; + + frame@098b0000 { + frame-number = <5>; + interrupts = <0 36 0x4>; + reg = <0x098b0000 0x1000>; + status = "disabled"; + }; + + frame@098c0000 { + frame-number = <6>; + interrupts = <0 37 0x4>; + reg = <0x098c0000 0x1000>; + status = "disabled"; + }; + }; + + qcom,avtimer@90f7000 { + compatible = "qcom,avtimer"; + reg = <0x90f700c 0x4>, + <0x90f7010 0x4>; + reg-names = "avtimer_lsb_addr", "avtimer_msb_addr"; + qcom,clk-div = <27>; + }; + + mcd { + compatible = "qcom,mcd"; + qcom,ce-hw-instance = <0>; + qcom,ce-device = <0>; + interrupts = <0 248 0>; + interrupt-names = "mcd_irq"; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + clocks = <&clock_gcc clk_ce1_clk>, + <&clock_gcc clk_qseecom_ce1_clk>, + <&clock_gcc clk_gcc_ce1_ahb_m_clk>, + <&clock_gcc clk_gcc_ce1_axi_m_clk>; + qcom,ce-opp-freq = <171430000>; + }; + + dcc: dcc@4b3000 { + compatible = "qcom,dcc"; + reg = <0x4b3000 0x1000>, + <0x4b4000 0x2000>, + <0x4b0000 0x4>; + reg-names = "dcc-base", "dcc-ram-base", "dcc-xpu-base"; + + clocks = <&clock_gcc clk_gcc_dcc_ahb_clk>; + clock-names = "dcc_clk"; + + qcom,save-reg; + }; +}; + +&gdsc_venus { + clock-names = "bus_clk", "maxi_clk", "core_clk"; + clocks = <&clock_mmss clk_video_axi_clk>, + <&clock_mmss clk_video_maxi_clk>, + <&clock_mmss clk_video_core_clk>; + parent-supply = <&gdsc_mmagic_video>; + status = "ok"; +}; + +&gdsc_venus_core0 { + clock-names = "core0_clk"; + clocks = <&clock_mmss clk_video_subcore0_clk>; + status = "ok"; +}; + +&gdsc_venus_core1 { + clock-names = "core1_clk"; + clocks = <&clock_mmss clk_video_subcore1_clk>; + status = "ok"; +}; + +&gdsc_camss_top { + clock-names = "bus_clk", "vfe_axi"; + clocks = <&clock_mmss clk_camss_cpp_axi_clk>, + <&clock_mmss clk_camss_vfe_axi_clk>; + parent-supply = <&gdsc_mmagic_camss>; + status = "ok"; +}; + +&gdsc_vfe0 { + clock-names = "core0_clk"; + clocks = <&clock_mmss clk_camss_vfe0_clk>; + parent-supply = <&gdsc_camss_top>; + status = "ok"; +}; + +&gdsc_vfe1 { + clock-names = "core1_clk"; + clocks = <&clock_mmss clk_camss_vfe1_clk>; + parent-supply = <&gdsc_camss_top>; + status = "ok"; +}; + +&gdsc_jpeg { + clock-names = "bus_clk", "dma_clk", "core0_clk", "core2_clk"; + clocks = <&clock_mmss clk_camss_jpeg_axi_clk>, + <&clock_mmss clk_camss_jpeg_dma_clk>, + <&clock_mmss clk_camss_jpeg0_clk>, + <&clock_mmss clk_camss_jpeg2_clk>; + parent-supply = <&gdsc_camss_top>; + status = "ok"; +}; + +&gdsc_cpp { + clock-names = "core_clk"; + clocks = <&clock_mmss clk_camss_cpp_clk>; + parent-supply = <&gdsc_camss_top>; + status = "ok"; +}; + +&gdsc_fd { + clock-names = "core_clk", "core_uar_clk"; + clocks = <&clock_mmss clk_fd_core_clk>, + <&clock_mmss clk_fd_core_uar_clk>; + parent-supply = <&gdsc_camss_top>; + status = "ok"; +}; + +&gdsc_mdss { + clock-names = "bus_clk", "core_clk"; + clocks = <&clock_mmss clk_mdss_axi_clk>, + <&clock_mmss clk_mdss_mdp_clk>; + parent-supply = <&gdsc_mmagic_mdss>; + proxy-supply = <&gdsc_mdss>; + qcom,proxy-consumer-enable; + status = "ok"; +}; + +&gdsc_pcie_0 { + status = "ok"; +}; + +&gdsc_pcie_1 { + status = "ok"; +}; + +&gdsc_pcie_2 { + status = "ok"; +}; + +&gdsc_usb30 { + reg = <0x30f004 0x4>; + status = "ok"; +}; + +&gdsc_ufs { + status = "ok"; +}; + +&gdsc_gpu { + status = "ok"; +}; + +&gdsc_gpu_gx { + clock-names = "core_clk", "core_root_clk"; + clocks = <&clock_gpu clk_gpu_gx_gfx3d_clk>, + <&clock_gpu clk_gfx3d_clk_src>; + qcom,force-enable-root-clk; + parent-supply = <&gfx_vreg>; + status = "ok"; +}; + +&gdsc_hlos1_vote_aggre0_noc { + status = "ok"; +}; + +&gdsc_hlos1_vote_lpass_adsp { + status = "ok"; +}; + +&gdsc_hlos1_vote_lpass_core { + status = "ok"; +}; + +&gdsc_aggre0_noc { + status = "ok"; +}; + +&gdsc_mmagic_bimc { + status = "ok"; +}; + +&gdsc_mmagic_video { + clock-names = "core_root_clk"; + /* RPM enables the mmagic bimc GDSC when this clk node is voted for. */ + clocks = <&clock_gcc clk_mmssnoc_gds_clk>; + qcom,enable-root-clk; + status = "ok"; +}; + +&gdsc_mmagic_mdss { + clock-names = "core_root_clk"; + /* RPM enables the mmagic bimc GDSC when this clk node is voted for. */ + clocks = <&clock_gcc clk_mmssnoc_gds_clk>; + qcom,enable-root-clk; + status = "ok"; +}; + +&gdsc_mmagic_camss { + clock-names = "core_root_clk"; + /* RPM enables the mmagic bimc GDSC when this clk node is voted for. */ + clocks = <&clock_gcc clk_mmssnoc_gds_clk>; + qcom,enable-root-clk; + status = "ok"; +}; + +#include "msm-pm8994-rpm-regulator.dtsi" +#include "msm-pm8994.dtsi" +#include "msm-pmi8994.dtsi" +#include "msm8996-regulator.dtsi" +#include "msm8996-camera.dtsi" +#include "msm8996-gpu.dtsi" +#include "msm8996-pm.dtsi" +#include "msm-arm-smmu-8996.dtsi" +#include "msm8996-vidc.dtsi" diff --git a/arch/arm64/boot/dts/qcom/skeleton64.dtsi b/arch/arm64/boot/dts/qcom/skeleton64.dtsi new file mode 100644 index 000000000000..1f8ba28132c4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/skeleton64.dtsi @@ -0,0 +1,15 @@ +/* + * Skeleton device tree in the 64 bits version; the bare minimum + * needed to boot; just include and add a compatible value. The + * bootloader will typically populate the memory node. + */ + +/ { + #address-cells = <2>; + #size-cells = <2>; + cpus { }; + soc { }; + chosen { }; + aliases { }; + memory { device_type = "memory"; reg = <0 0 0 0>; }; +}; |