diff --git a/qcom/Makefile b/qcom/Makefile index 3b1257129599..0b50a7d19893 100644 --- a/qcom/Makefile +++ b/qcom/Makefile @@ -57,6 +57,11 @@ dtbo-$(CONFIG_CEBU_DTB) += \ bengal-cebu-evt-overlay.dtbo-base := bengal-moto-base-cebu.dtb +dtbo-$(CONFIG_CAPRI_DTB) += \ + bengal-capri-evt-overlay.dtbo + +bengal-capri-evt-overlay.dtbo-base := bengal-moto-base.dtb + else ifeq ($(CONFIG_BUILD_ARM64_DT_OVERLAY),y) dtbo-$(CONFIG_ARCH_KONA) += \ diff --git a/qcom/bengal-capri-awinic-audio-overlay.dtsi b/qcom/bengal-capri-awinic-audio-overlay.dtsi new file mode 100644 index 000000000000..f53c95775e91 --- /dev/null +++ b/qcom/bengal-capri-awinic-audio-overlay.dtsi @@ -0,0 +1,138 @@ +/* Copyright (c) 2019, 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 + +&wsa881x_i2c_e { + status = "disabled"; +}; + +&wsa881x_i2c_44 { + status = "disabled"; +}; + +&wsa881x_analog_clk_gpio { + status = "disabled"; +}; + +&wsa881x_analog_reset_gpio { + status = "disabled"; +}; + +&wsa881x_analog_clk { + status = "disabled"; +}; + +&qupv3_se1_i2c { + status = "ok"; + + /* AWINIC AW882XX mono Smart PA */ + aw882xx_smartpa@34 { + compatible = "awinic,aw882xx_smartpa"; + reg = <0x34>; + reset-gpio = <&tlmm 97 0>; + /*irq-gpio = <&tlmm 136 0x2008>; */ + monitor-flag = <1>; + monitor-timer-val = <3000>; + status = "okay"; + + afe-rx-portid = <0x1000>; + afe-tx-portid = <0x1001>; + + low-vol-table-down = <3650 9 3 3750 9 2 3900 9 1>; + low-vol-table-up = <4000 9 0 3800 9 1 3700 9 2>; + + low-temp-table-down = <0xFFFFFFFB 0x4 0x10 0xFFBEAE7E 0x0 0x5 0x9 0xFFD80505 0x5 0x6 0x6 0xFFED714D>; + low-temp-table-up = <0x7 0x9 0x0 0x00000000 0x2 0x6 0x06 0xFFED714D 0xFFFFFFE 0x05 0x09 0xFFD80505>; + }; + /* AWINIC AW882XX mono Smart PA End */ +}; + +/* Add pinctrl for MI2S0 */ +&soc { + cdc_pri_mi2s_gpios: msm_cdc_pinctrl_pri { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&lpi_i2s1_sck_active &lpi_i2s1_ws_active + &lpi_i2s1_sd0_active &lpi_i2s1_sd1_active>; + pinctrl-1 = <&lpi_i2s1_sck_sleep &lpi_i2s1_ws_sleep + &lpi_i2s1_sd0_sleep &lpi_i2s1_sd1_sleep>; + }; +}; + +/* Configure MI2S0 SD0&SD1 */ +&dai_mi2s0 { + /* SD0 line for playback */ + qcom,msm-mi2s-rx-lines = <1>; + /* SD1 line for recording(SmartPA EC) */ + qcom,msm-mi2s-tx-lines = <2>; +}; + +/* Modify btfmslim_codec's compatible */ +&btfmslim_codec { + compatible = "btfmslim_slave"; + status = "ok"; +}; + + +&bengal_snd { + qcom,model = "bengal-awinic-snd-card"; + aw,have-882xx = <1>; + + qcom,audio-routing = + "AMIC1", "MIC BIAS1", + "MIC BIAS1", "Analog Mic1", + "AMIC2", "MIC BIAS2", + "MIC BIAS2", "Analog Mic2", + "AMIC3", "MIC BIAS3", + "MIC BIAS3", "Analog Mic3", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "IN3_AUX", "AUX_OUT", + "TX SWR_MIC0", "ADC1_OUTPUT", + "TX SWR_MIC4", "ADC2_OUTPUT", + "TX SWR_MIC0", "VA_TX_SWR_CLK", + "TX SWR_MIC1", "VA_TX_SWR_CLK", + "TX SWR_MIC2", "VA_TX_SWR_CLK", + "TX SWR_MIC3", "VA_TX_SWR_CLK", + "TX SWR_MIC4", "VA_TX_SWR_CLK", + "RX_TX DEC0_INP", "TX DEC0 MUX", + "RX_TX DEC1_INP", "TX DEC1 MUX", + "RX_TX DEC2_INP", "TX DEC2 MUX", + "RX_TX DEC3_INP", "TX DEC3 MUX", + "TX_AIF1 CAP", "VA_TX_SWR_CLK", + "TX_AIF2 CAP", "VA_TX_SWR_CLK", + "TX_AIF3 CAP", "VA_TX_SWR_CLK", + "VA SWR_MIC0", "ADC1_OUTPUT", + "VA SWR_MIC4", "ADC2_OUTPUT"; + + qcom,mi2s-audio-intf = <1>; + qcom,pri-mi2s-gpios = <&cdc_pri_mi2s_gpios>; + /delete-property/ qcom,cdc-dmic01-gpios; + /delete-property/ qcom,cdc-dmic23-gpios; + + qcom,wsa-max-devs = <0>; + qcom,wsa-devs = <0>; +}; + +&cdc_dmic01_gpios { + status = "disabled"; +}; + +&cdc_dmic23_gpios { + status = "disabled"; +}; + +/* Modify headset's BIAS voltage to 2.6V */ +&wcd937x_codec { + qcom,cdc-micbias2-mv = <2600>; +}; diff --git a/qcom/bengal-capri-common-overlay.dtsi b/qcom/bengal-capri-common-overlay.dtsi new file mode 100644 index 000000000000..43be2f6ae007 --- /dev/null +++ b/qcom/bengal-capri-common-overlay.dtsi @@ -0,0 +1,264 @@ +/* Copyright (c) 2019, 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 +#include "bengal-moto-common-overlay.dtsi" +#include "bengal-capri-display.dtsi" +#include "bengal-audio-overlay.dtsi" +#include "bengal-capri-touchscreen-overlay.dtsi" +#include "camera/bengal-camera-sensor-mot-capri-overlay.dtsi" +#include "bengal-capri-fps.dtsi" +#include "bengal-capri-moto-thermal.dtsi" + +&firmware { + android { + vbmeta { + compatible = "android,vbmeta"; + parts = "vbmeta,boot,system,vendor,dtbo"; + }; + }; +}; + +&qupv3_se4_2uart { + status = "ok"; +}; + + +&pm6125_gpios { + + key_vol_up { + key_vol_up_default: key_vol_up_default { + pins = "gpio5"; + function = "normal"; + input-enable; + bias-pull-up; + power-source = <0>; + }; + }; +}; + +&tlmm{ + tlmm_gpio_key { + gpio_key_active: gpio_key_active { + mux { + pins = "gpio33"; + function = "gpio"; + }; + + config { + pins = "gpio33"; + drive-strength = <2>; + bias-pull-up; + }; + }; + }; +}; + +&soc { + /delete-node/ qupv3_se0_spi; + + gpio_keys { + compatible = "gpio-keys"; + label = "gpio-keys"; + + pinctrl-names = "default"; + pinctrl-0 = <&key_vol_up_default &gpio_key_active>; + + vol_up { + label = "volume_up"; + gpios = <&pm6125_gpios 5 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + linux,code = ; + linux,can-disable; + debounce-interval = <15>; + gpio-key,wakeup; + }; + + assist_key{ + label = "assist_key"; + gpios = <&tlmm 33 0x1>; + linux,input-type = <1>; + linux,code = ; + debounce-interval = <15>; + linux,can-disable; + gpio-key,wakeup; + }; + }; +}; + + + +&sdhc_1 { + vdd-supply = <&L24A>; + qcom,vdd-voltage-level = <2960000 2960000>; + qcom,vdd-current-level = <0 570000>; + + vdd-io-supply = <&L11A>; + qcom,vdd-io-always-on; + qcom,vdd-io-lpm-sup; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <0 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on + &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off + &sdc1_rclk_off>; + + status = "ok"; +}; + +&sdhc_2 { + vdd-supply = <&L22A>; + qcom,vdd-voltage-level = <2960000 2960000>; + qcom,vdd-current-level = <0 800000>; + + vdd-io-supply = <&L5A>; + qcom,vdd-io-voltage-level = <1800000 2960000>; + qcom,vdd-io-current-level = <0 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>; + + cd-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>; + + status = "ok"; +}; + +&ufsphy_mem { + compatible = "qcom,ufs-phy-qmp-v3-660"; + + vdda-phy-supply = <&L4A>; /* 0.9v */ + vdda-pll-supply = <&L12A>; /* 1.8v */ + vdda-phy-max-microamp = <51400>; + vdda-pll-max-microamp = <14200>; + + status = "ok"; +}; + +&ufshc_mem { + vdd-hba-supply = <&gcc_ufs_phy_gdsc>; + vdd-hba-fixed-regulator; + vcc-supply = <&L24A>; + vcc-voltage-level = <2950000 2960000>; + vccq2-supply = <&L11A>; + vcc-max-microamp = <600000>; + vccq2-max-microamp = <600000>; + + qcom,vddp-ref-clk-supply = <&L18A>; + qcom,vddp-ref-clk-max-microamp = <100>; + qcom,vddp-ref-clk-min-uV = <1232000>; + qcom,vddp-ref-clk-max-uV = <1232000>; + + status = "ok"; +}; + +&sde_dsi { + qcom,dsi-default-panel = <&dsi_hlt_hx83102d_video>; +}; + +&soc{ + mtp_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + df-serialnum = "SB18C77591"; + #include "qg-batterydata-jk50-atl-4850mah.dtsi" + #include "qg-batterydata-jk50-scud-4850mah.dtsi" + #include "qg-batterydata-jk50-atl-flex-4850mah.dtsi" + #include "qg-batterydata-jk50-atl-unicoba-4850mah.dtsi" + #include "qg-batterydata-jk50-swd-4850mah.dtsi" + }; +}; + +&pmi632_qg { + qcom,qg-iterm-ma = <350>; + qcom,vbatt-cutoff-mv = <3200>; + qcom,vbatt-empty-mv = <3000>; + qcom,vbatt-low-mv = <3300>; + qcom,vbatt-low-cold-mv = <3500>; + qcom,battery-data = <&mtp_batterydata>; + qcom,rbat-conn-mohm = <10>; + qcom,cl-feedback-on; + qcom,cl-min-start-soc = <0>; + qcom,cl-max-start-soc = <5>; + qcom,cl-min-temp = <150>; + qcom,cl-max-temp = <450>; + qcom,cl-max-increment = <5>; + qcom,cl-max-decrement = <10>; + qcom,cl-min-limit = <200>; + qcom,cl-max-limit = <30>; + qcom,s3-entry-ibat-ua = <15000>; + qcom,s3-exit-ibat-ua = <35000>; + qcom,vbatt-empty-cold-mv = <3000>; + qcom,ignore-shutdown-soc-secs = <1800>; + qcom.hold-soc-while-full; + qcom,linearize-soc; +}; + +&pmi632_rgb { + red { + label = "charging"; + }; +}; + +&pmi632_charger { + qcom,iterm-ma = <100>; + qcom,fcc-max-ua = <2000000>; + qcom,fv-max-uv = <4400000>; + qcom,usb-icl-ua = <2000000>; + qcom,thermal-mitigation = <2000>, + <1800>, + <1600>, + <1300>, + <1100>, + <900>, + <600>, + <400>; + qcom,battery-data = <&mtp_batterydata>; + qcom,mmi-temp-zones = <0 4200 1000 0>, + <10 4200 1000 1000>, + <15 0 1000 1000>, + <45 0 2000 2000>, + <60 4200 2000 0>; + qcom,enable-charging-limit; + qcom,upper-limit-capacity = <70>; + qcom,lower-limit-capacity = <60>; + qcom,dr_supported; + qcom,hvdcp-disable; + qcom,otg-cl-ua = <1000000>; + qcom,dc-unsupported; + qcom,wireless-unsupported; + qcom,usbeb-unsupported; + qcom,disable-suspend-on-collapse; + dpdm-supply = <&qusb_phy0>; + qcom,auto-recharge-soc = <99>; + qcom,support-microb-dcp; +}; + +&soc { + qcom,tz_gpio { + compatible = "qcom,tz_gpio"; + tlmm-tz = <14>, + <15>, + <16>, + <17>; + }; +}; +&spmi_bus { + qcom,pm6125@0 { + qpnp-power-on-mmi@800 { + compatible = "qcom,qpnp-power-on-mmi"; + interrupts = <0x0 0x8 0x3 IRQ_TYPE_EDGE_BOTH>; + interrupt-names = "kpdpwr-bark"; + }; + }; +}; diff --git a/qcom/bengal-capri-display.dtsi b/qcom/bengal-capri-display.dtsi new file mode 100644 index 000000000000..d8dfc7a11031 --- /dev/null +++ b/qcom/bengal-capri-display.dtsi @@ -0,0 +1,246 @@ +#include +#include "bengal-sde-display.dtsi" +#include "dsi-panel-mot-dummy-qhd-video.dtsi" +#include "dsi-panel-moto-hx83102d-hlt-hdplus-video.dtsi" +#include "dsi-panel-moto-nt36525b-djn-hdplus-video.dtsi" +#include "dsi-panel-moto-icnl9911s-tm-hdplus-video.dtsi" +#include "dsi-panel-moto-ili9882h-hlt-hdplus-video.dtsi" +#include "dsi-panel-moto-ili9882n-tm-hdplus-video.dtsi" + +&sde_dsi { + //qcom,platform-mot-ext-feature-enable; + //qcom,platform-mot-early-power-enable; +}; + +&dsi_panel_pwr_supply { + qcom,panel-supply-entry@2 { + qcom,supply-pre-off-sleep = <2>; + }; +}; + +&dsi_hlt_hx83102d_video { + qcom,mdss-dsi-t-clk-post = <0x0B>; + qcom,mdss-dsi-t-clk-pre = <0x23>; + qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0", + "src_byte_clk0", "src_pixel_clk0", + "shadow_byte_clk0", "shadow_pixel_clk0"; + + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-bl-min-level = <16>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,bklt-dcs-2bytes-enabled; + qcom,mdss-brightness-max-level = <4095>; + qcom,mdss-dsi-hbm-type = "lcd-dcs-only"; + qcom,mdss-dsi-panel-hbm-is-51cmd; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-command =[06 01 00 01 00 00 01 0a]; + qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-status-value = <0x9d>; + qcom,mdss-dsi-panel-status-read-length = <4>; + qcom,mdss-dsi-panel-status-valid-params = <1>; + qcom,mdss-dsi-no-panel-on-read-support; + + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,platform-reset-gpio = <&tlmm 82 0>; + + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-phy-timings = + [1F 1C 05 06 03 02 04 a0 + 1F 1C 05 06 03 02 04 a0 + 1F 1C 05 06 03 02 04 a0 + 1F 1C 05 06 03 02 04 a0 + 1F 11 05 06 03 02 04 a0]; + qcom,display-topology = <1 0 1>; + qcom,default-topology-index = <0>; + }; + }; +}; + +&dsi_djn_nt36525b_video { + qcom,mdss-dsi-t-clk-post = <0x0a>; + qcom,mdss-dsi-t-clk-pre = <0x20>; + qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0", + "src_byte_clk0", "src_pixel_clk0", + "shadow_byte_clk0", "shadow_pixel_clk0"; + + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <255>; + //qcom,bklt-dcs-2bytes-enabled; + qcom,mdss-brightness-max-level = <255>; + qcom,mdss-dsi-hbm-type = "lcd-dcs-only"; + qcom,mdss-dsi-panel-hbm-is-51cmd; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-command =[06 01 00 01 00 00 01 0a]; + qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-status-value = <0x9c>; + qcom,mdss-dsi-panel-status-read-length = <1>; + qcom,mdss-dsi-no-panel-on-read-support; + + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,platform-reset-gpio = <&tlmm 82 0>; + + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-phy-timings = + [1F 1C 04 06 03 03 04 a0 + 1F 1C 04 06 03 03 04 a0 + 1F 1C 04 06 03 03 04 a0 + 1F 1C 04 06 03 03 04 a0 + 1F 0F 04 06 03 03 04 a0]; + qcom,display-topology = <1 0 1>; + qcom,default-topology-index = <0>; + }; + }; +}; + +&dsi_tm_icnl9911s_video { + qcom,mdss-dsi-t-clk-post = <0x0a>; + qcom,mdss-dsi-t-clk-pre = <0x20>; + qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0", + "src_byte_clk0", "src_pixel_clk0", + "shadow_byte_clk0", "shadow_pixel_clk0"; + + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-bl-min-level = <16>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,bklt-dcs-2bytes-enabled; + qcom,mdss-brightness-max-level = <4095>; + qcom,mdss-dsi-hbm-type = "lcd-dcs-only"; + qcom,mdss-dsi-panel-hbm-is-51cmd; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-command =[06 01 00 01 00 00 01 0a]; + qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-status-value = <0x9c>; + qcom,mdss-dsi-panel-status-read-length = <1>; + qcom,mdss-dsi-no-panel-on-read-support; + qcom,platform-reset-gpio-always-on; + + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,platform-reset-gpio = <&tlmm 82 0>; + + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-phy-timings = + [1F 1C 04 06 03 02 04 a0 + 1F 1C 04 06 03 02 04 a0 + 1F 1C 04 06 03 02 04 a0 + 1F 1C 04 06 03 02 04 a0 + 1F 0F 04 06 03 02 04 a0]; + qcom,display-topology = <1 0 1>; + qcom,default-topology-index = <0>; + }; + }; +}; + +&dsi_hlt_ili9882h_video { + qcom,mdss-dsi-t-clk-post = <0x0A>; + qcom,mdss-dsi-t-clk-pre = <0x21>; + qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0", + "src_byte_clk0", "src_pixel_clk0", + "shadow_byte_clk0", "shadow_pixel_clk0"; + + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-bl-min-level = <16>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,bklt-dcs-2bytes-enabled; + qcom,mdss-brightness-max-level = <4095>; + qcom,mdss-dsi-hbm-type = "lcd-dcs-only"; + qcom,mdss-dsi-panel-hbm-is-51cmd; + +// qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-command =[06 01 00 01 00 00 01 0a]; + qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-status-value = <0x9c>; + qcom,mdss-dsi-panel-status-read-length = <4>; + qcom,mdss-dsi-panel-status-valid-params = <1>; + qcom,mdss-dsi-no-panel-on-read-support; + + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,platform-reset-gpio = <&tlmm 82 0>; + + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-phy-timings = + [1F 1C 05 06 03 02 04 a0 + 1F 1C 05 06 03 02 04 a0 + 1F 1C 05 06 03 02 04 a0 + 1F 1C 05 06 03 02 04 a0 + 1F 0F 05 06 03 02 04 a0]; + qcom,display-topology = <1 0 1>; + qcom,default-topology-index = <0>; + }; + }; +}; + +&dsi_tm_ili9882n_video { + qcom,mdss-dsi-t-clk-post = <0x0A>; + qcom,mdss-dsi-t-clk-pre = <0x1E>; + qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0", + "src_byte_clk0", "src_pixel_clk0", + "shadow_byte_clk0", "shadow_pixel_clk0"; + + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-bl-min-level = <16>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,bklt-dcs-2bytes-enabled; + qcom,mdss-brightness-max-level = <4095>; + qcom,mdss-dsi-hbm-type = "lcd-dcs-only"; + qcom,mdss-dsi-panel-hbm-is-51cmd; + +// qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-command =[06 01 00 01 00 00 01 0a]; + qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-status-value = <0x9d>; + qcom,mdss-dsi-panel-status-read-length = <4>; + qcom,mdss-dsi-panel-status-valid-params = <1>; + qcom,mdss-dsi-no-panel-on-read-support; + + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,platform-reset-gpio = <&tlmm 82 0>; + + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-phy-timings = + [1F 1C 05 06 03 02 04 a0 + 1F 1C 05 06 03 02 04 a0 + 1F 1C 05 06 03 02 04 a0 + 1F 1C 05 06 03 02 04 a0 + 1F 10 05 06 03 02 04 a0]; + qcom,display-topology = <1 0 1>; + qcom,default-topology-index = <0>; + }; + }; +}; + +&mot_dummy_vid_qhd { + qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0", + "src_byte_clk0", "src_pixel_clk0", + "shadow_byte_clk0", "shadow_pixel_clk0"; + + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,platform-reset-gpio = <&tlmm 82 0>; + + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-phy-timings = + [1F 1B 05 06 03 03 04 a0 + 1F 1B 05 06 03 03 04 a0 + 1F 1B 05 06 03 03 04 a0 + 1F 1B 05 06 03 03 04 a0 + 1F 10 04 06 03 03 04 a0]; + qcom,display-topology = <1 0 1>; + qcom,default-topology-index = <0>; + }; + }; +}; diff --git a/qcom/bengal-capri-evt-overlay.dts b/qcom/bengal-capri-evt-overlay.dts new file mode 100644 index 000000000000..d1641014f2a9 --- /dev/null +++ b/qcom/bengal-capri-evt-overlay.dts @@ -0,0 +1,28 @@ +/* Copyright (c) 2020, 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/; +/plugin/; + +#include "bengal-capri-common-overlay.dtsi" +#include "bengal-capri-awinic-audio-overlay.dtsi" + +/ { + model = "capri"; + compatible = "qcom,bengal-capri", "qcom,bengal-moto", "qcom,bengal"; + qcom,msm-id = <417 0x10000>; + qcom,board-id = <0 0xA000>; +}; + +/* + * capri HW rev specific changes go here + */ diff --git a/qcom/bengal-capri-fps.dtsi b/qcom/bengal-capri-fps.dtsi new file mode 100644 index 000000000000..f9b56c69a7e7 --- /dev/null +++ b/qcom/bengal-capri-fps.dtsi @@ -0,0 +1,146 @@ + +&tlmm { + fps_rst_active: fps_rst_active { + /* active state */ + mux { + pins = "gpio104"; + function = "gpio"; + }; + + config { + pins = "gpio104"; + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + fps_rst_suspend: fps_rst_suspend { + /* sleep state */ + mux { + pins = "gpio104"; + function = "gpio"; + }; + + config { + pins = "gpio104"; + drive-strength = <2>; /* 2 MA */ + }; + }; + + fps_int_active: fps_int_active { + /* active state */ + mux { + pins = "gpio65"; + function = "gpio"; + }; + + config { + pins = "gpio65"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + input-enable; + }; + }; + + fps_int_suspend: fps_int_suspend { + /* sleep state */ + mux { + pins = "gpio65"; + function = "gpio"; + }; + + config { + pins = "gpio65"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + input-enable; + }; + }; + + fps_ido3_en_active: ldo3_en_active { + /* active state */ + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + drive-strength = <2>; /* 2 MA */ + bias-pull-up; + output-high; + }; + }; + + fps_ido3_en_suspend: ldo3_en_suspend { + /* suspend state */ + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + drive-strength = <2>; /* 2 MA */ + bias-pull-up; + output-high; + }; + }; + + fps_ido1p8_en_active: ldo1p8_en_active { + /* active state */ + mux { + pins = "gpio106"; + function = "gpio"; + }; + + config { + pins = "gpio106"; + drive-strength = <2>; /* 2 MA */ + bias-pull-up; + output-high; + }; + }; + + fps_ido1p8_en_suspend: ldo1p8_en_suspend { + /* suspend state */ + mux { + pins = "gpio106"; + function = "gpio"; + }; + + config { + pins = "gpio106"; + drive-strength = <2>; /* 2 MA */ + bias-pull-up; + output-high; + }; + }; +}; + +&soc { + goodix_fingerprint{ + //status = "/chosen", "mmi,fps", "true"; + status = "ok"; + compatible = "goodix,fingerprint"; + fp-gpio-reset = <&tlmm 104 0x00>; + fp-gpio-irq = <&tlmm 65 0x00>; + fp-gpio-ven = <&tlmm 34 0x00>; + interrupt-parent = <&tlmm>; + interrupts = <65 0>; + interrupt-controller; + pinctrl-names = "default", "suspend"; + pinctrl-0 = <&fps_rst_active &fps_int_active &fps_ido3_en_active>; + pinctrl-1 = <&fps_rst_suspend &fps_int_suspend &fps_ido3_en_suspend>; + }; + + fpc: fpc_fpc1020 { + compatible = "fpc,fpc1020"; + status = "ok"; + irq = <&tlmm 65 0>; + rst = <&tlmm 104 0>; + pinctrl-names = "default", "suspend"; + pinctrl-0 = <&fps_rst_active &fps_int_active>; + pinctrl-1 = <&fps_rst_suspend &fps_int_suspend>; + }; +}; diff --git a/qcom/bengal-capri-moto-thermal.dtsi b/qcom/bengal-capri-moto-thermal.dtsi new file mode 100644 index 000000000000..e58d25541e2a --- /dev/null +++ b/qcom/bengal-capri-moto-thermal.dtsi @@ -0,0 +1,110 @@ +#include +#include +#include + +&soc { + sys_temp_support { + compatible = "mmi,sys-temp"; + mmi,temperature-names = "front_temp", + "back_temp"; + status = "ok"; + }; +}; + +&thermal_zones { + camera-therm-usr { + status = "disabled"; + }; + + camera_therm { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6125_adc_tm_iio ADC_GPIO1_PU2>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + xo-therm-usr { + status = "disabled"; + }; + + xo_therm { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6125_adc_tm ADC_XO_THERM_PU2>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + pa-therm0-usr { + status = "disabled"; + }; + + pa_therm0 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6125_adc_tm ADC_AMUX_THM1_PU2>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + quiet-therm-usr { + status = "disabled"; + }; + + msm_therm { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6125_adc_tm ADC_AMUX_THM2_PU2>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + chg-skin-therm-usr { + status = "disabled"; + }; + + chg_therm { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pmi632_adc_tm ADC_GPIO2_PU2>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; +}; + diff --git a/qcom/bengal-capri-touchscreen-overlay.dtsi b/qcom/bengal-capri-touchscreen-overlay.dtsi new file mode 100644 index 000000000000..074f323e6810 --- /dev/null +++ b/qcom/bengal-capri-touchscreen-overlay.dtsi @@ -0,0 +1,187 @@ +&tlmm{ + pmx_ts_int_active { + ts_int_active: ts_int_active { + mux { + pins = "gpio67"; + function = "gpio"; + }; + + config { + pins = "gpio67"; + drive-strength = <8>; + bias-pull-up; + }; + }; + }; + + pmx_ts_int_suspend { + ts_int_suspend: ts_int_suspend { + mux { + pins = "gpio67"; + function = "gpio"; + }; + + config { + pins = "gpio67"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + pmx_ts_reset_active { + ts_reset_active: ts_reset_active { + mux { + pins = "gpio66"; + function = "gpio"; + }; + + config { + pins = "gpio66"; + drive-strength = <8>; + bias-pull-up; + }; + }; + }; + + pmx_ts_reset_suspend { + ts_reset_suspend: ts_reset_suspend { + mux { + pins = "gpio66"; + function = "gpio"; + }; + + config { + pins = "gpio66"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + pmx_ts_release { + ts_release: ts_release { + mux { + pins = "gpio67", "gpio66"; + function = "gpio"; + }; + + config { + pins = "gpio67", "gpio66"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + ts_int_pull_up: ts_int_pull_up { + mux { + pins = "gpio67"; + function = "gpio"; + }; + config { + pins = "gpio67"; + drive-strength = <6>; + input-enable; + bias-pull-up; + }; + }; +}; + +&qupv3_se2_spi_pins { + qupv3_se2_spi_sleep: qupv3_se2_spi_sleep { + mux { + pins = "gpio6", "gpio7","gpio71"; + function = "gpio"; + }; + + config { + pins = "gpio6", "gpio7","gpio71"; + drive-strength = <6>; + bias-disable; + }; + }; + qupv3_se2_cs_sleep: qupv3_se2_cs_sleep { + mux { + pins = "gpio80"; + function = "gpio"; + }; + + config { + pins = "gpio80"; + drive-strength = <6>; + bias-pull-up; + }; + }; +}; + +&qupv3_se2_spi { + status = "ok"; + qcom,spi-touch-active="himax,hxcommon"; + pinctrl-1 = <&qupv3_se2_spi_sleep &qupv3_se2_cs_sleep>; + himax_0flash_ts@0 { + compatible = "himax,hxcommon"; + reg = <0>; + spi-max-frequency = <10000000>; + spi-cpha; + himax,panel-coords = <0 720 0 1600>; + himax,display-coords = <0 720 0 1600>; + /* himax,touch_info = <32 18 0 720 1600 10 0 1>;*/ + himax,irq-gpio = <&tlmm 67 0x2008>; + himax,rst-gpio = <&tlmm 66 0x00>; + himax,def-build-id = <0x1203>; + himax,def-config-id = <0x0002>; + report_type = <1>; + interrupt-parent = <&tlmm>; + interrupts = <67 0x02>; + /* lab-supply = <&lcdb_ldo_vreg>; + ibb-supply = <&lcdb_ncp_vreg>;*/ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + panel = <&dsi_hlt_hx83102d_video>; + }; + ilitek@1{ + compatible = "tchip,ilitek"; + reg = <0x1>; + interrupt-parent = <&tlmm>; + interrupts = <67 0x2008>; + spi-max-frequency = <10000000>; + spi-cpha; + spi-cpol; + touch,reset-gpio = <&tlmm 66 0x00>; + touch,irq-gpio = <&tlmm 67 0x2008>; + panel = <&dsi_hlt_ili9882h_video>; + panel2 = <&dsi_tm_ili9882n_video>; + }; + chipone_tddi@2 { + compatible = "chipone-tddi"; + reg = <2>; + interrupt-parent = <&tlmm>; + spi-max-frequency = <4000000>; + spi-cpha; + spi-cpol; + interrupts = <67 0x02>; + chipone,rst-gpio = <&tlmm 66 0x00>; + chipone,irq-gpio = <&tlmm 67 0x2008>; + chipone,x-res = <720>; + chipone,y-res = <1600>; + chipone,def-build-id = <0x010a>; + chipone,def-config-id = <0x0001>; + panel = <&dsi_tm_icnl9911s_video>; + }; + nova_0flash_ts@3 { + compatible = "novatek,NVT-ts-spi"; + reg = <3>; + spi-max-frequency = <9600000>; + novatek,swrst-n8-addr = <0x03F0FE>; + novatek,spi-rd-fast-addr = <0x03F310>; + spi-cpha; + novatek,irq-gpio = <&tlmm 67 0x2008>; + novatek,reset-gpio = <&tlmm 66 0x00>; + report_type = <1>; + novatek,def-max-resolution = <720 1600>; + interrupt-parent = <&tlmm>; + interrupts = <67 0x02>; + pinctrl-names = "pmx_ts_active","pmx_ts_suspend"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + }; +};