From 2d295f64321016799c49c926f8d0f1596972830a Mon Sep 17 00:00:00 2001 From: liyun zhang Date: Wed, 28 Jun 2023 14:19:04 +0800 Subject: [PATCH] arm/dts: init dts for Fogo5G NA init devicetree for Fogo5G NA based on Fogo5G ROW(fogor) Change-Id: Iea5a3c96a6db6cdb0c0b940f2cf4f28925039f75 Reviewed-on: https://gerrit.mot.com/2658396 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Reviewed-by: Xiaojun Ji Reviewed-by: Huosheng Liao Tested-by: Jira Key Submit-Approved: Jira Key --- qcom/Makefile | 5 + qcom/blair-fogo-common-overlay.dtsi | 524 +++++++++++++++++++++ qcom/blair-fogo-evb-overlay.dts | 24 + qcom/blair-fogo-fmr-overlay.dtsi | 48 ++ qcom/blair-moto-fogo-base.dts | 45 ++ qcom/blair-pm6125-fogo-common-overlay.dtsi | 22 + qcom/fogo-charger.dtsi | 116 +++++ qcom/fogo-display.dtsi | 274 +++++++++++ qcom/fogo-fps-overlay.dtsi | 97 ++++ qcom/fogo-sensors.dtsi | 157 ++++++ qcom/fogo-touchscreen.dtsi | 205 ++++++++ qcom/fogo-wl286xx.dtsi | 74 +++ qcom/holi-audio-fogo-overlay.dtsi | 392 +++++++++++++++ 13 files changed, 1983 insertions(+) create mode 100644 qcom/blair-fogo-common-overlay.dtsi create mode 100644 qcom/blair-fogo-evb-overlay.dts create mode 100644 qcom/blair-fogo-fmr-overlay.dtsi create mode 100644 qcom/blair-moto-fogo-base.dts create mode 100644 qcom/blair-pm6125-fogo-common-overlay.dtsi create mode 100644 qcom/fogo-charger.dtsi create mode 100644 qcom/fogo-display.dtsi create mode 100644 qcom/fogo-fps-overlay.dtsi create mode 100755 qcom/fogo-sensors.dtsi create mode 100755 qcom/fogo-touchscreen.dtsi create mode 100644 qcom/fogo-wl286xx.dtsi create mode 100644 qcom/holi-audio-fogo-overlay.dtsi diff --git a/qcom/Makefile b/qcom/Makefile index 11409baa6662..acae4e31166d 100644 --- a/qcom/Makefile +++ b/qcom/Makefile @@ -110,6 +110,11 @@ dtbo-$(CONFIG_FOGOR_DTB) += \ blair-fogor-evb-overlay.dtbo-base := blair-moto-fogor-base.dtb +dtbo-$(CONFIG_FOGO_DTB) += \ + blair-fogo-evb-overlay.dtbo + +blair-fogo-evb-overlay.dtbo-base := blair-moto-fogo-base.dtb + dtbo-$(CONFIG_PENANG_DTB) += \ holi-penang-dvt2-jp-overlay.dtbo \ diff --git a/qcom/blair-fogo-common-overlay.dtsi b/qcom/blair-fogo-common-overlay.dtsi new file mode 100644 index 000000000000..fdbc2d97362e --- /dev/null +++ b/qcom/blair-fogo-common-overlay.dtsi @@ -0,0 +1,524 @@ +/* Copyright (c) 2023, 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 "holi-audio-fogo-overlay.dtsi" +#include +#include +#include "holi-pmic-overlay-pm6125.dtsi" +#include "holi-thermal-overlay-pm6125.dtsi" +#include "display/holi-sde-display-mtp-pm6125.dtsi" +#include "display/blair-sde-display-mtp.dtsi" +#include "fogo-fps-overlay.dtsi" +#include "fogo-display.dtsi" +#include "fogo-touchscreen.dtsi" +#include "fogo-sensors.dtsi" +#include "fogo-wl286xx.dtsi" +#include "moto_therm_sys_temp.dtsi" +#include "blair-fogo-fmr-overlay.dtsi" + +&wcd937x_codec { + cdc-vdd-rxtx-supply = <&L9A>; + cdc-vddpx-supply = <&L9A>; + qcom,cdc-static-supplies = "cdc-vdd-rxtx", + "cdc-vddpx"; + /* + * Overriding cdc-vdd-mic-bias-supply to dummy value + * to avoid compilation errors as BOB is not definied + * for pm6125 + */ + cdc-vdd-mic-bias-supply = <>; +}; + +&pm7250b_vib { + qcom,vib-ldo-volt-uv = <3000000>; + qcom,vib-dis-short-long; + qcom,vib-dis-short-long-val = <70>; + qcom,vib-ldo-volt-uv-long = <2600000>; +}; + +&tlmm { + nfc { + nfc_int_active: nfc_int_active { + /* active state */ + mux { + /* GPIO 9: NFC Read Interrupt */ + pins = "gpio9"; + function = "gpio"; + }; + + config { + pins = "gpio9"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + }; + }; + + nfc_int_suspend: nfc_int_suspend { + /* sleep state */ + mux { + /* GPIO 9: NFC Read Interrupt */ + pins = "gpio9"; + function = "gpio"; + }; + + config { + pins = "gpio9"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + }; + }; + + nfc_enable_active: nfc_enable_active { + mux { + pins = "gpio48"; + function = "gpio"; + }; + + config { + pins = "gpio48"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + }; + }; + + nfc_enable_suspend: nfc_enable_suspend { + mux { + pins = "gpio48"; + function = "gpio"; + }; + + config { + pins = "gpio48"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + }; + }; + + + nfc_clk_req_active: nfc_clk_req_active { + /* active state */ + mux { + /* GPIO 7: NFC CLK Req*/ + pins = "gpio7"; + function = "gpio"; + }; + + config { + pins = "gpio7"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + input-enable; + }; + }; + + nfc_clk_req_suspend: nfc_clk_req_suspend { + /* sleep state */ + mux { + /* GPIO 7: NFC CLK Req */ + pins = "gpio7"; + function = "gpio"; + }; + + config { + pins = "gpio7"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + input-enable; + }; + }; + }; +}; + +/* Dummy LDO reference */ +&sdhc_1 { + status = "ok"; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&sdc1_on>; + pinctrl-1 = <&sdc1_off>; + + 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>; +}; + +&sdhc_2 { + status = "ok"; + + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&sdc2_on>; + pinctrl-1 = <&sdc2_off>; + + 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>; + + cd-gpios = <&tlmm 94 GPIO_ACTIVE_HIGH>; +}; + +&ufsphy_mem { + compatible = "qcom,ufs-phy-qmp-v4-yupik"; + + vdda-phy-supply = <&L7A>; + vdda-pll-supply = <&L4A>; + vdda-phy-max-microamp = <85700>; + vdda-pll-max-microamp = <18300>; + + status = "ok"; +}; + +&ufshc_mem { + vdd-hba-supply = <&gcc_ufs_phy_gdsc>; + vdd-hba-fixed-regulator; + + vcc-supply = <&L24A>; + vcc-voltage-level = <2950000 2960000>; + vcc-max-microamp = <800000>; + + vccq2-supply = <&L11A>; + vccq2-max-microamp = <800000>; + vccq2-voltage-level = <1800000 1800000>; + + qcom,vddp-ref-clk-supply = <&L4A>; + qcom,vddp-ref-clk-max-microamp = <100>; + + status = "ok"; +}; + +&pmk8350_vadc { + pmk8350_qtm_n_therm { + reg = ; + label = "pmk8350_qtm_n_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; + pmk8350_qtm_e_therm { + reg = ; + label = "pmk8350_qtm_e_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; +}; + +&pmk8350_adc_tm { + io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>, + <&pmk8350_vadc PMK8350_ADC7_AMUX_THM2_100K_PU>, + <&pmk8350_vadc PMK8350_ADC7_AMUX_THM4_100K_PU>; + + qtm_n__therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; + qtm_e_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; +}; + +&pmr735a_gpios { + camera_therm { + camera_therm_default:camera_therm_default { + pins = "gpio3"; + bias-high-impedance; + }; + }; +}; + +&pmr735a_vadc { + status = "ok"; + + pinctrl-names = "default"; + pinctrl-0 = <&camera_therm_default>; + + pmr735a_camera_therm { + reg = ; + label = "pmr735a_camera_therm"; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + qcom,pre-scaling = <1 1>; + }; +}; + +&pmr735a_4{ + pmr735a_adc_tm_iio: adc_tm@3400 { + compatible = "qcom,adc-tm5-iio"; + reg = <0x3400>; + #thermal-sensor-cells = <1>; + #address-cells = <1>; + #size-cells = <0>; + io-channels = <&pmr735a_vadc ADC7_GPIO3_100K_PU>; + + pmr735a_camera_therm { + reg = ; + qcom,ratiometric; + qcom,hw-settle-time = <200>; + }; + }; +}; + +&qupv3_se7_i2c { + status = "ok"; + #address-cells = <1>; + #size-cells = <0>; + sec-nfc@27 { + compatible = "sec-nfc"; + reg = <0x27>; + sec-nfc,ven-gpio = <&tlmm 48 0x00>; + sec-nfc,firm-gpio = <&tlmm 135 0x00>; + sec-nfc,irq-gpio = <&tlmm 9 0x00>; + sec-nfc,clk_req-gpio = <&tlmm 7 0x00>; + interrupt-parent = <&tlmm>; + interrupts = <9 0>; + interrupt-names = "nfc_irq"; + pinctrl-names = "nfc_active", "nfc_suspend"; + pinctrl-0 = <&nfc_int_active &nfc_enable_active + &nfc_clk_req_active>; + pinctrl-1 = <&nfc_int_suspend &nfc_enable_suspend + &nfc_clk_req_suspend>; + clock-names = "OSC_NFC"; + }; +}; + +&thermal_zones { + sdm-skin-therm-usr { + status = "disabled"; + }; + + rear-cam-therm-usr { + status = "disabled"; + }; + + camera-therm-usr { + status = "disabled"; + }; + + quiet-therm-usr { + status = "disabled"; + }; + + pa-therm0-usr { + status = "disabled"; + }; + + pa-therm1-usr { + status = "disabled"; + }; + + xo-therm-usr { + status = "disabled"; + }; + chg-skin-therm-usr { + status = "disabled"; + }; + msm_therm { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6125_adc_tm_iio ADC5_GPIO1_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + chg_therm { + polling-delay-passive = <5000>; + polling-delay = <20000>; + thermal-governor = "user_space"; + thermal-sensors = <&pm7250b_adc_tm ADC5_AMUX_THM1_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + cam_flash_therm { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6125_adc_tm ADC5_GPIO3_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + pa_therm2 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6125_adc_tm ADC5_GPIO4_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + pa_therm1 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6125_adc_tm ADC5_AMUX_THM1_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + quiet_therm { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6125_adc_tm ADC5_AMUX_THM2_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + + active-config1 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + xo_therm { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pmk8350_adc_tm PMK8350_ADC7_AMUX_THM1_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + qtm_n_therm { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pmk8350_adc_tm PMK8350_ADC7_AMUX_THM2_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + + qtm_e_therm { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pmk8350_adc_tm PMK8350_ADC7_AMUX_THM4_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + soc_usr { + polling-delay-passive = <1000>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&bcl_soc>; + }; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + label = "gpio-keys"; + + pinctrl-names = "default"; + pinctrl-0 = <&key_vol_up_default>; + + vol_up { + label = "volume_up"; + gpios = <&pmr735a_gpios 1 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + linux,code = ; + gpio-key,wakeup; + debounce-interval = <15>; + linux,can-disable; + }; + }; + + ldo_vib { + compatible = "moto,vibrator-ldo"; + moto,vib-ldo-gpio = <&tlmm 100 0x0>; + status = "disabled"; + }; + + qcom,tz_gpio { + compatible = "qcom,tz_gpio"; + tlmm-tz = <0>, + <13>, + <14>, + <15>, + <16>; + }; +}; + +/* Primary USB port related QUSB2 PHY */ +&usb2_phy0 { + qcom,param-override-seq = + <0xa6 0x6c /* override_x0 */ + 0x25 0x70 /* override_x1 */ + 0x16 0x74>; /* override x2 */ +}; + diff --git a/qcom/blair-fogo-evb-overlay.dts b/qcom/blair-fogo-evb-overlay.dts new file mode 100644 index 000000000000..334dddd1b918 --- /dev/null +++ b/qcom/blair-fogo-evb-overlay.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2023, 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 "blair-pm6125-fogo-common-overlay.dtsi" + +/ { + model = "fogo"; + compatible = "qcom,blair-fogo", "qcom,blair-moto", "qcom,blair"; + qcom,msm-id = <507 0x10000>, <578 0x10000>; + qcom,board-id = <0x47 0xA100>, <0x48 0xA100>; +}; + diff --git a/qcom/blair-fogo-fmr-overlay.dtsi b/qcom/blair-fogo-fmr-overlay.dtsi new file mode 100644 index 000000000000..8ce398dbec2e --- /dev/null +++ b/qcom/blair-fogo-fmr-overlay.dtsi @@ -0,0 +1,48 @@ +&tlmm { + fm_elna_default: fm_elna_default { + mux { + pins = "gpio47"; + function = "gpio"; + }; + config { + pins = "gpio47"; + drive_strength = <16>; + output-low; + }; + }; + + fm_elna_active: fm_elna_active { + mux { + pins = "gpio47"; + function = "gpio"; + }; + config { + pins = "gpio47"; + drive_strength = <16>; + output-high; + }; + }; + + fm_elna_suspend: fm_elna_suspend { + mux { + pins = "gpio47"; + function = "gpio"; + }; + config { + pins = "gpio47"; + drive_strength = <16>; + output-low; + }; + }; +}; + +&soc { + fmradio: fm_wcn39x0 { + status = "ok"; + compatible = "moto,fmctrl"; + pinctrl-names = "default", "elna_active", "elna_suspend"; + pinctrl-0 = <&fm_elna_default>; + pinctrl-1 = <&fm_elna_active>; + pinctrl-2 = <&fm_elna_suspend>; + }; +}; diff --git a/qcom/blair-moto-fogo-base.dts b/qcom/blair-moto-fogo-base.dts new file mode 100644 index 000000000000..27713afa7129 --- /dev/null +++ b/qcom/blair-moto-fogo-base.dts @@ -0,0 +1,45 @@ +/* Copyright (c) 2023, 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 "blair.dtsi" + +/ { + qcom,board-id = <0 0>; + channel-id-map = ""; +/* + * Some nodes need labels assigned to appear in __symbols__ + */ + chosen: chosen { }; + aliases: aliases { }; + reserved_memory: reserved-memory { }; + mot_batterydata: qcom,battery-data { }; + utags: utags { }; + hw: hw { }; +}; + +&reserved_memory { + /delete-node/ ramoops; +}; + +&tlmm { + /delete-node/ nfc; +}; + +&firmware { + /delete-node/ android; +}; + +&mdss_dsi_phy0 { + /delete-property/ qcom,dsi-pll-ssc-en; +}; diff --git a/qcom/blair-pm6125-fogo-common-overlay.dtsi b/qcom/blair-pm6125-fogo-common-overlay.dtsi new file mode 100644 index 000000000000..d274eaa614bc --- /dev/null +++ b/qcom/blair-pm6125-fogo-common-overlay.dtsi @@ -0,0 +1,22 @@ +/* Copyright (c) 2023, 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 "blair-pm6125-moto-common-overlay.dtsi" +#include "blair-fogo-common-overlay.dtsi" +#include "fogo-charger.dtsi" + +&pm7250b_charger { + dpdm-supply = <&usb2_phy0>; +}; + +&smb1394 { + status = "disabled"; +}; diff --git a/qcom/fogo-charger.dtsi b/qcom/fogo-charger.dtsi new file mode 100644 index 000000000000..4774fb7127a9 --- /dev/null +++ b/qcom/fogo-charger.dtsi @@ -0,0 +1,116 @@ + +#include + + +&mot_batterydata { + df-serialnum = "SB18D87863"; + qcom,batt-id-range-pct = <15>; + #include "qg-batterydata-qb50-swd-5000mah.dtsi" +}; + +&pm7250b_charger { + #io-channel-cells = <1>; + io-channels = <&pm7250b_vadc ADC5_USB_IN_V_16>, + <&pm7250b_vadc ADC5_USB_IN_I>, + <&pm7250b_vadc ADC5_CHG_TEMP>, + <&pm7250b_vadc ADC5_DIE_TEMP>, + <&pm7250b_vadc ADC5_AMUX_THM3_100K_PU>, + <&pm7250b_vadc ADC5_SBUx>, + <&pm7250b_vadc ADC5_VPH_PWR>, + <&pm7250b_vadc ADC5_AMUX_THM1_100K_PU>, + <&pm7250b_qg PSY_IIO_RESISTANCE_ID>, + <&pm7250b_qg PSY_IIO_VOLTAGE_NOW>, + <&pm7250b_qg PSY_IIO_TEMP>, + <&pm7250b_qg PSY_IIO_CAPACITY>, + <&pm7250b_qg PSY_IIO_VOLTAGE_OCV>, + <&pm7250b_qg PSY_IIO_VOLTAGE_AVG>, + <&pm7250b_qg PSY_IIO_DEBUG_BATTERY>, + <&pm7250b_qg PSY_IIO_REAL_CAPACITY>, + <&pm7250b_qg PSY_IIO_CC_SOC>, + <&pm7250b_qg PSY_IIO_CURRENT_NOW>, + <&pm7250b_qg PSY_IIO_VOLTAGE_MAX>, + <&pm7250b_qg PSY_IIO_CHARGE_FULL>, + <&pm7250b_qg PSY_IIO_CHARGE_COUNTER>, + <&pm7250b_qg PSY_IIO_CYCLE_COUNT>, + <&pm7250b_qg PSY_IIO_CHARGE_FULL_DESIGN>, + <&pm7250b_qg PSY_IIO_TIME_TO_FULL_NOW>; + io-channel-names = "usb_in_voltage", + "usb_in_current", + "chg_temp", + "die_temp", + "conn_temp", + "sbux_res", + "vph_voltage", + "skin_temp", + "resistance_id", + "voltage_now", + "temp", + "capacity", + "voltage_ocv", + "voltage_avg", + "debug_battery", + "real_capacity", + "cc_soc", + "current_now", + "voltage_max", + "charge_full", + "charge_counter", + "cycle_count", + "charge_full_design", + "time_to_full_now"; + qcom,fcc-max-ua = <4000000>; + qcom,fv-max-uv = <4530000>; + qcom,dcp-curr-max = <2000000>; + qcom,otg-cl-ua = <1500000>; + qcom,thermal-mitigation = <4000000 3500000 + 3000000 2500000 + 2000000 1500000 + 1200000 900000 + 600000>; + /delete-property/ qcom,fcc-stepping-enable; + +}; + +&pm7250b_mmi { + qcom,mmi-temp-zones = <0 4200 1000 0>, + <10 4250 3000 1000>, + <15 0 3000 3000>, + <25 0 4000 4000>, + <35 0 4000 4000>, + <45 0 4000 4000>, + <60 4200 4000 0>; + qcom,mmi-ffc-zones = <4200 243 534>, + <4500 243 534>, + <4500 243 534>, + <4530 506 960>, + <4530 560 1010>, + <4530 965 1160>, + <4200 243 575>; + + qcom,iterm-ma = <243>; + qcom,hvdcp-power-max = <18000>; + mmi,enable-factory-mode-aicl; + qcom,noffc-chg-iterm = <243>; + qcom,noffc-chg-iterm-45c = <670>; + qcom,noffc-qg-iterm = <500>; + qcom,noffc-max-fv = <4500>; + +}; + +&pm7250b_qg { + #io-channel-cells = <1>; + io-channels = <&pm7250b_vadc ADC5_BAT_THERM_100K_PU>, + <&pm7250b_vadc ADC5_BAT_ID_100K_PU>, + <&pm7250b_charger PSY_IIO_INPUT_CURRENT_LIMITED>, + <&pm7250b_charger PSY_IIO_RECHARGE_SOC>, + <&pm7250b_charger PSY_IIO_FORCE_RECHARGE>, + <&pm7250b_charger PSY_IIO_CHARGE_DONE>; + io-channel-names = "batt-therm", + "batt-id", + "input_current_limited", + "recharge_soc", + "force_recharge", + "charge_done"; + qcom,qg-iterm-ma = <500>; +}; + diff --git a/qcom/fogo-display.dtsi b/qcom/fogo-display.dtsi new file mode 100644 index 000000000000..2a72b38eaded --- /dev/null +++ b/qcom/fogo-display.dtsi @@ -0,0 +1,274 @@ +#include "dsi-panel-mot-dummy-qhd-video.dtsi" +#include "dsi-panel-mot-tianma-icnl9916c-652-720x1600-video.dtsi" +#include "dsi-panel-mot-tongxingda-ili9883c-652-720x1600-video.dtsi" + +&display_panel_avdd { + /delete-property/ gpio; + /delete-property/ pinctrl-0; +}; + +&tlmm { + lcd_panel_vddio_default: lcd_panel_vddio_default { + mux { + pins = "gpio11"; + function = "gpio"; + }; + + config { + pins = "gpio11"; + drive-strength = <8>; + bias-disable = <0>; + output-high; + }; + }; + lcd_panel_avdd_default: lcd_panel_avdd_default { + mux { + pins = "gpio84"; + function = "gpio"; + }; + + config { + pins = "gpio84"; + drive-strength = <8>; + bias-disable = <0>; + output-high; + }; + }; + + lcd_panel_avee_default: lcd_panel_avee_default { + mux { + pins = "gpio85"; + function = "gpio"; + }; + + config { + pins = "gpio85"; + drive-strength = <8>; + bias-disable = <0>; + output-high; + }; + }; +}; + +&soc { + lcd_panel_vddio: lcd_gpio_regulator@0 { + compatible = "qti-regulator-fixed"; + regulator-name = "lcd_panel_vddio"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + gpio = <&tlmm 11 0>; + enable-active-high; + regulator-boot-on; + proxy-supply = <&lcd_panel_vddio>; + qcom,proxy-consumer-enable; + pinctrl-names = "default"; + pinctrl-0 = <&lcd_panel_vddio_default>; + }; + + lcd_panel_avdd: lcd_gpio_regulator@1 { + compatible = "qti-regulator-fixed"; + regulator-name = "lcd_panel_avdd"; + regulator-min-microvolt = <6000000>; + regulator-max-microvolt = <6000000>; + regulator-enable-ramp-delay = <233>; + gpio = <&tlmm 84 0>; + enable-active-high; + regulator-boot-on; + proxy-supply = <&lcd_panel_avdd>; + pinctrl-names = "default"; + pinctrl-0 = <&lcd_panel_avdd_default>; + }; + + lcd_panel_avee: lcd_gpio_regulator@2 { + compatible = "qti-regulator-fixed"; + regulator-name = "lcd_panel_avee"; + regulator-min-microvolt = <6000000>; + regulator-max-microvolt = <6000000>; + regulator-enable-ramp-delay = <233>; + gpio = <&tlmm 85 0>; + enable-active-high; + regulator-boot-on; + proxy-supply = <&lcd_panel_avee>; + pinctrl-names = "default"; + pinctrl-0 = <&lcd_panel_avee_default>; + }; + + dsi_panel_pwr_supply_fogo: dsi_panel_pwr_supply_fogo{ + #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 = <1904000>; + qcom,supply-enable-load = <32000>; + qcom,supply-disable-load = <80>; + qcom,supply-pre-off-sleep = <2>; + }; + + qcom,panel-supply-entry@1 { + reg = <1>; + qcom,supply-name = "lab"; + qcom,supply-min-voltage = <6000000>; + qcom,supply-max-voltage = <6000000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + qcom,supply-pre-on-sleep = <3>; + }; + + qcom,panel-supply-entry@2 { + reg = <2>; + qcom,supply-name = "ibb"; + qcom,supply-min-voltage = <6000000>; + qcom,supply-max-voltage = <6000000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + qcom,supply-pre-off-sleep = <3>; + qcom,supply-post-on-sleep = <3>; + }; + + }; +}; + +&sde_dsi { + /delete-property/ lab-supply; + /delete-property/ ibb-supply; + /delete-property/ vddio-supply; + /delete-property/ qcom,dsi-default-panel; + /delete-property/ avdd-supply; + + lab-supply = <&lcd_panel_avdd>; + ibb-supply = <&lcd_panel_avee>; + vddio-supply = <&lcd_panel_vddio>; + + qcom,dsi-default-panel = <&dsi_icnl9916c_hd_plus_120_video>; +}; + + +&dsi_icnl9916c_hd_plus_120_video{ + qcom,platform-te-gpio = <&tlmm 23 0>; + qcom,platform-reset-gpio = <&pmr735a_gpios 2 0>; + + qcom,dsi-supported-dfps-list = <120 90 60>; + qcom,mdss-dsi-pan-enable-dynamic-fps; + qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp"; + /*qcom,mdss-dsi-pan-dfps-send-command;*/ + qcom,mdss-dsi-pan-on-fps = <120>; + + qcom,panel-supply-entries = <&dsi_panel_pwr_supply_fogo>; + + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-bl-min-level = <13>; + qcom,mdss-dsi-bl-max-level = <1650>; + qcom,mdss-dsi-bl-default-level = <745>; + qcom,mdss-brightness-max-level = <1650>; + qcom,bklt-dcs-2bytes-enabled; + + qcom,mdss-dsi-no-panel-on-read-support; + +/* qcom,mdss-dsi-panel-hdr-enable; + qcom,mdss-dsi-panel-hdr-color-primaries = <14950 15750 34000 + 16000 13000 35500 7000 2500>; + qcom,mdss-dsi-panel-peak-brightness = <5000000>; + qcom,mdss-dsi-panel-blackness-level = <100>; +*/ + 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-panel-hbm-is-51cmd; + qcom,mdss-dsi-hbm-type = "lcd-dcs-wled"; + qcom,mdss-dsi-hbm-on-command = [39 01 00 00 00 00 03 51 07 FF]; + qcom,mdss-dsi-hbm-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-hbm-off-command = [39 01 00 00 00 00 03 51 06 66]; + qcom,mdss-dsi-hbm-off-command-state = "dsi_lp_mode"; + + qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0"; + + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-phy-timings = [00 24 0A 0A 1A 19 09 + 0A 09 02 04 00 1E 0F]; + + qcom,display-topology = <1 0 1>; + qcom,default-topology-index = <0>; + }; + }; +}; + +&dsi_ili9883c_hd_plus_120_video{ + qcom,platform-te-gpio = <&tlmm 23 0>; + qcom,platform-reset-gpio = <&pmr735a_gpios 2 0>; + + qcom,dsi-supported-dfps-list = <120 90 60>; + qcom,mdss-dsi-pan-enable-dynamic-fps; + qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp"; + /*qcom,mdss-dsi-pan-dfps-send-command;*/ + qcom,mdss-dsi-pan-on-fps = <120>; + + qcom,panel-supply-entries = <&dsi_panel_pwr_supply_fogo>; + + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs"; + qcom,mdss-dsi-bl-min-level = <13>; + qcom,mdss-dsi-bl-max-level = <1650>; + qcom,mdss-dsi-bl-default-level = <745>; + qcom,mdss-brightness-max-level = <1650>; + qcom,bklt-dcs-2bytes-enabled; + + qcom,mdss-dsi-no-panel-on-read-support; + +/* qcom,mdss-dsi-panel-hdr-enable; + qcom,mdss-dsi-panel-hdr-color-primaries = <14950 15750 34000 + 16000 13000 35500 7000 2500>; + qcom,mdss-dsi-panel-peak-brightness = <5000000>; + qcom,mdss-dsi-panel-blackness-level = <100>; +*/ + 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-panel-hbm-is-51cmd; + qcom,mdss-dsi-hbm-type = "lcd-dcs-wled"; + qcom,mdss-dsi-hbm-on-command = [39 01 00 00 00 00 03 51 07 FF]; + qcom,mdss-dsi-hbm-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-hbm-off-command = [39 01 00 00 00 00 03 51 06 66]; + qcom,mdss-dsi-hbm-off-command-state = "dsi_lp_mode"; + + qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0"; + + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-phy-timings = [00 27 0A 0A 1B 19 0A + 0B 0A 02 04 00 20 0F]; + + qcom,display-topology = <1 0 1>; + qcom,default-topology-index = <0>; + }; + }; +}; + +&mot_dummy_vid_qhd { + qcom,platform-te-gpio = <&tlmm 23 0>; + qcom,platform-reset-gpio = <&pmr735a_gpios 2 0>; + + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dummy"; + + qcom,dsi-select-clocks = "mux_byte_clk0", "mux_pixel_clk0"; + + qcom,mdss-dsi-display-timings { + timing@0 { + qcom,mdss-dsi-panel-phy-timings = [00 0B 02 02 1C 1C 03 + 02 01 02 04 00 0C 12]; + qcom,display-topology = <1 0 1>; + qcom,default-topology-index = <0>; + }; + }; +}; diff --git a/qcom/fogo-fps-overlay.dtsi b/qcom/fogo-fps-overlay.dtsi new file mode 100644 index 000000000000..5932983d77ab --- /dev/null +++ b/qcom/fogo-fps-overlay.dtsi @@ -0,0 +1,97 @@ +&tlmm { + fps_rst_active: fps_rst_active { + /* active state */ + mux { + pins = "gpio18"; + function = "gpio"; + }; + + config { + pins = "gpio18"; + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + fps_rst_suspend: fps_rst_suspend { + /* sleep state */ + mux { + pins = "gpio18"; + function = "gpio"; + }; + + config { + pins = "gpio18"; + drive-strength = <2>; /* 2 MA */ + }; + }; + + fps_int_active: fps_int_active { + /* active state */ + mux { + pins = "gpio17"; + function = "gpio"; + }; + + config { + pins = "gpio17"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + input-enable; + }; + }; + + fps_int_suspend: fps_int_suspend { + /* sleep state */ + mux { + pins = "gpio17"; + function = "gpio"; + }; + + config { + pins = "gpio17"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + input-enable; + }; + }; +}; + +&L21A { + regulator-max-microvolt = <3008000>; + qcom,init-voltage = <3000000>; + status = "ok"; +}; + +&soc { + fpc: fpc_fpc1020 { + compatible = "fpc,fpc1020"; + status = "ok"; + irq = <&tlmm 17 0>; + rst = <&tlmm 18 0>; + interrupt-parent = <&tlmm>; + interrupts = <17 0>; + rgltr-ctrl-support; + fp,vdd-supply=<&L21A>; + fp,voltage-range = <3000000 3000000>; + pinctrl-names = "default", "suspend"; + pinctrl-0 = <&fps_rst_active &fps_int_active>; + pinctrl-1 = <&fps_rst_suspend &fps_int_suspend>; + }; + goodix_fingerprint{ + //status = "/chosen", "mmi,fps", "true"; + status = "ok"; + compatible = "goodix,fingerprint"; + fp-gpio-reset = <&tlmm 18 0x00>; + fp-gpio-irq = <&tlmm 17 0x00>; + rgltr-ctrl-support; + fp,vdd-supply=<&L21A>; + fp,voltage-range = <3000000 3000000>; + interrupt-parent = <&tlmm>; + interrupts = <17 0>; + interrupt-controller; + pinctrl-names = "default", "suspend"; + pinctrl-0 = <&fps_rst_active &fps_int_active>; + pinctrl-1 = <&fps_rst_suspend &fps_int_suspend>; + }; +}; diff --git a/qcom/fogo-sensors.dtsi b/qcom/fogo-sensors.dtsi new file mode 100755 index 000000000000..5e658bc3c24a --- /dev/null +++ b/qcom/fogo-sensors.dtsi @@ -0,0 +1,157 @@ +/* + * 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. + */ + +&tlmm { + pen_int_default: pen_int_default { + mux { + pins = "gpio84"; + function = "gpio"; + }; + config { + pins = "gpio84"; + num-grp-pins = <1>; + drive-strength = <2>; + bias-no-pull; + }; + }; + + pen_int_sleep: pen_int_sleep { + mux { + pins = "gpio84"; + function = "gpio"; + }; + config { + pins = "gpio84"; + num-grp-pins = <1>; + drive-strength = <2>; + bias-no-pull; + }; + }; + + sar_int_fogo_default: sar_int_fogo_default { + mux { + pins = "gpio60"; + function = "gpio"; + }; + config { + pins = "gpio60"; + num-grp-pins = <1>; + drive-strength = <2>; + bias-pull-up; + }; + }; + + sar_int_fogo_sleep: sar_int_fogo_sleep { + mux { + pins = "gpio60"; + function = "gpio"; + }; + config { + pins = "gpio60"; + num-grp-pins = <1>; + drive-strength = <2>; + bias-pull-up; + }; + }; +}; + +&soc { + pen_detect{ + compatible = "rohm,bu520xx_pen_detect"; + pinctrl-names = "default","sleep"; + pinctrl-0 = <&pen_int_default>; + pinctrl-1 = <&pen_int_sleep>; + rohm,nirq-gpio=<&tlmm 84 0x02>; + }; +}; + +&sx937x { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&sar_int_fogo_default>; + pinctrl-1 = <&sar_int_fogo_sleep>; + interrupt-parent = <&tlmm>; + interrupts = <60 0x02>; + interrupt-names = "sx937x_irq"; + Semtech,nirq-gpio = <&tlmm 60 0x02>; + reinit-on-i2c-failure = <1>; + Semtech,reg-num = <66>; + Semtech,reg-init = < + 0x8024 0x7F00 /*PHEN, Disable all Phases*/ + 0x4004 0x70 /*irq mask*/ + 0x8020 0x32 + 0x8028 0x45F + 0x8034 0x45F + 0x8040 0x45F + 0x804C 0x45F + 0x8058 0x45F + 0x8064 0x45E + 0x8070 0x45E + 0x807C 0x45E + 0x8030 0x924925 + 0x803C 0xB24924 + 0x8048 0x924964 + 0x8054 0x925924 + 0x8060 0x964924 + 0x806C 0x92492C + 0x8078 0x92C924 + 0x8084 0x924924 + 0x8098 0x685A + 0x80B8 0x2D23 + 0x80D8 0x4D40 + 0x80F8 0x5A47 + 0x8118 0x4637 + 0x8138 0xFF + 0x8158 0xFF + 0x8178 0xFF + 0x80A0 0x20200001 + 0x80C0 0x1A1A0002 + 0x80E0 0x20200001 + 0x8100 0x0 + 0x8120 0x20200002 + 0x8140 0x0 + 0x8160 0x0 + 0x8180 0x0 + 0x8188 0x8000015 + 0x818C 0x8000016 + 0x8190 0x0 + 0x8194 0x0 + 0x8090 0x7C845200 + 0x80B0 0x7C845102 + 0x80D0 0x7C845200 + 0x80F0 0x7C845100 + 0x8110 0x7C845100 + 0x8130 0x54AC5300 + 0x8150 0x54AC5300 + 0x8170 0x54AC5300 + 0x8088 0x300000 + 0x80A8 0x300000 + 0x80C8 0x300000 + 0x80E8 0x300000 + 0x8108 0x300000 + 0x8128 0x300000 + 0x8148 0x300000 + 0x8168 0x300000 + 0x808C 0x60200020 + 0x80AC 0x60200010 + 0x80CC 0x60200020 + 0x80EC 0x60200010 + 0x810C 0x60200010 + 0x812C 0x60200031 + 0x814C 0x60200031 + 0x816C 0x60200031 + 0x8024 0x7F7F + 0x8274 0x2E040000 + 0x4280 0x0E + >; +}; + diff --git a/qcom/fogo-touchscreen.dtsi b/qcom/fogo-touchscreen.dtsi new file mode 100755 index 000000000000..28bd42339b54 --- /dev/null +++ b/qcom/fogo-touchscreen.dtsi @@ -0,0 +1,205 @@ +/* + * 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. + */ +&tlmm { + touch_int_mux { + touch_int_active: active { + mux { + pins = "gpio22"; + function = "gpio"; + }; + config { + pins = "gpio22"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + touch_int_suspend: default { + mux { + pins = "gpio22"; + function = "gpio"; + }; + config { + pins = "gpio22"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + pmx_ts_int_suspend_high { + ts_int_suspend_high: ts_int_suspend_high { + mux { + pins = "gpio22"; + function = "gpio"; + }; + config { + pins = "gpio22"; + drive-strength = <2>; + bias-pull-up; + }; + }; + }; + + touch_reset_mux { + touch_reset_active: active { + mux { + pins = "gpio21"; + function = "gpio"; + }; + config { + pins = "gpio21"; + drive-strength = <8>; + bias-disable; + }; + }; + + touch_reset_suspend: default { + mux { + pins = "gpio21"; + function = "gpio"; + }; + config { + pins = "gpio21"; + drive-strength = <2>; + bias-pull-down; + output-low; + }; + }; + }; + + ts_release_mux { + ts_release: ts_release { + mux { + pins = "gpio21", "gpio22"; + function = "gpio"; + }; + + config { + pins = "gpio21", "gpio22"; + drive-strength = <2>; + bias-disable; + }; + }; + }; +}; + +&qupv3_se0_i2c { + status = "disabled"; +}; + +&L9A { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; +}; + +&qupv3_se0_spi_pins { + qupv3_se0_spi_active: qupv3_se0_spi_active { + mux { + pins = "gpio0", "gpio1", "gpio2"; + function = "qup00"; + }; + + config { + pins = "gpio0", "gpio1", "gpio2"; + drive-strength = <6>; + bias-disable; + }; + }; + + qupv3_se0_spi_sleep: qupv3_se0_spi_sleep { + mux { + pins = "gpio0", "gpio1", "gpio2"; + function = "gpio"; + }; + + config { + pins = "gpio0", "gpio1", "gpio2"; + drive-strength = <6>; + bias-disable; + }; + }; + + qupv3_se0_spi_cs_active: qupv3_se0_spi_cs_active { + mux { + pins = "gpio3"; + function = "qup00"; + }; + + config { + pins = "gpio3"; + drive-strength = <6>; + bias-disable; + }; + }; + + qupv3_se0_spi_cs_sleep: qupv3_se0_spi_cs_sleep { + mux { + pins = "gpio3"; + function = "gpio"; + }; + + config { + pins = "gpio3"; + drive-strength = <6>; + bias-pull-up; + }; + }; +}; + +&qupv3_se0_spi { + status = "ok"; + + pinctrl-0 = <&qupv3_se0_spi_active &qupv3_se0_spi_cs_active>; + pinctrl-1 = <&qupv3_se0_spi_sleep &qupv3_se0_spi_cs_sleep>; + + chipone_tddi@0 { + compatible = "chipone-tddi"; + reg = <0x0>; + spi-max-frequency = <8000000>; + interrupt-parent = <&tlmm>; + interrupts = <22 0x2001>; + spi-cpha; + spi-cpol; + chipone,rst-gpio = <&tlmm 21 0x00>; + chipone,irq-gpio = <&tlmm 22 0x2001>; + chipone,x-res = <720>; + chipone,y-res = <1600>; + chipone,def-build-id = <0x0101>; + chipone,def-config-id = <0x0001>; + pinctrl-names = "pmx_ts_int_active","pmx_ts_int_suspend_high"; + pinctrl-3 = <&ts_active>; + pinctrl-4 = <&ts_int_suspend_high>; + panel = <&dsi_icnl9916c_hd_plus_120_video>; + mmi,status = "/chosen","mmi,panel_name","contains","icnl9916c"; + status = "ok"; + }; + ilitek@1 { + compatible = "tchip,ilitek"; + reg = <0x1>; + spi-max-frequency = <8000000>; + interrupt-parent = <&tlmm>; + interrupts = <22 0x2001>; + panel = <&dsi_ili9883c_hd_plus_120_video>; + mmi,status = "/chosen","mmi,panel_name","contains","ili9883c"; + touch,reset-gpio = <&tlmm 21 0x00>; + touch,irq-gpio = <&tlmm 22 0x2001>; + pinctrl-names = "pmx_ts_int_active","pmx_ts_int_suspend_high"; + pinctrl-0 = <&ts_active>; + pinctrl-1 = <&ts_int_suspend_high>; + ilitek,report_gesture_key; + status = "ok"; + }; +}; diff --git a/qcom/fogo-wl286xx.dtsi b/qcom/fogo-wl286xx.dtsi new file mode 100644 index 000000000000..80bd9f868469 --- /dev/null +++ b/qcom/fogo-wl286xx.dtsi @@ -0,0 +1,74 @@ +&tlmm{ + pmic1_en_default: pmic1_en_default { + mux { + pins = "gpio33"; + function = "gpio"; + }; + config { + pins = "gpio33"; + drive-strength = <2>; + bias-pull-down; + }; + }; +}; + +&gcc { + qcom,critical-devices = <&qupv3_se10_i2c>; +}; + +&qupv3_se10_i2c { + status = "ok"; + + cam_pmic1: wl2864c@29{ + compatible = "semi,wl2864c"; + reg = <0x29>; + semi,cs-gpios = <&tlmm 33 0>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic1_en_default>; + vin1-supply = <&S6A>; + + regulators { + cam_pmic1_ldo1_dvdd1: ldo1 { + regulator-name = "ldo1"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1800000>; + }; + + cam_pmic1_ldo2_dvdd2: ldo2 { + regulator-name = "ldo2"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1800000>; + }; + + cam_pmic1_ldo3_avdd1: ldo3 { + regulator-name = "ldo3"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + + cam_pmic1_ldo4_avdd2: ldo4 { + regulator-name = "ldo4"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + + cam_pmic1_ldo5_vddaf: ldo5 { + regulator-name = "ldo5"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + + cam_pmic1_ldo6_vddois: ldo6 { + regulator-name = "ldo6"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + + cam_pmic1_ldo7_vddio: ldo7 { + regulator-name = "ldo7"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + }; + }; +}; diff --git a/qcom/holi-audio-fogo-overlay.dtsi b/qcom/holi-audio-fogo-overlay.dtsi new file mode 100644 index 000000000000..238c57cff51b --- /dev/null +++ b/qcom/holi-audio-fogo-overlay.dtsi @@ -0,0 +1,392 @@ +#include +#include +#include +#include +#include + +&tlmm{ + fsm_rcv_rst: fsm_rcv_rst { + mux { + pins = "gpio86"; + function = "gpio"; + }; + config { + pins = "gpio86"; + drive-strength = <2>; /* 2 MA */ + bias-pull-down; + output-low; + }; + }; + fsm_spk_rst: fsm_spk_rst { + mux { + pins = "gpio58"; + function = "gpio"; + }; + config { + pins = "gpio58"; + drive-strength = <2>; /* 2 MA */ + bias-pull-down; + output-low; + }; + }; +}; + +&cdc_dmic01_gpios { + status = "disabled"; +}; + +&cdc_dmic23_gpios { + status = "disabled"; +}; + +&rx_swr_gpios { + status = "okay"; +}; + +&dai_mi2s0_rx { + status = "okay"; + qcom,msm-mi2s-lines = <1>; +}; + +&dai_mi2s0_tx { + status = "okay"; + qcom,msm-mi2s-lines = <0>; +}; + +&dai_mi2s1_rx { + status = "okay"; + qcom,msm-mi2s-lines = <1>; +}; + +&dai_mi2s1_tx { + status = "okay"; + qcom,msm-mi2s-lines = <2>; +}; + +&dai_mi2s2_rx { + status = "okay"; + qcom,msm-mi2s-lines = <1>; +}; + +&dai_mi2s2_tx { + status = "okay"; + qcom,msm-mi2s-lines = <0>; +}; + +&dai_mi2s3_rx { + status = "okay"; + qcom,msm-mi2s-lines = <1>; +}; + +&dai_mi2s3_tx { + status = "okay"; + qcom,msm-mi2s-lines = <0>; +}; + +&bolero { + qcom,num-macros = <3>; + qcom,bolero-version = <5>; + #address-cells = <1>; + #size-cells = <1>; + bolero-clk-rsc-mngr { + compatible = "qcom,bolero-clk-rsc-mngr"; + qcom,fs-gen-sequence = <0x3000 0x1 0x1>, <0x3004 0x3 0x3>, + <0x3004 0x3 0x1>, <0x3080 0x2 0x2>; + qcom,rx_mclk_mode_muxsel = <0x0A5640D8>; + qcom,va_mclk_mode_muxsel = <0x0A7A0000>; + clock-names = "tx_core_clk", "tx_npl_clk", "rx_core_clk", "rx_npl_clk", + "va_core_clk", "va_npl_clk"; + clocks = <&clock_audio_tx_1 0>, <&clock_audio_tx_2 0>, + <&clock_audio_rx_1 0>, <&clock_audio_rx_2 0>, + <&clock_audio_va_1 0>, <&clock_audio_va_2 0>; + }; + + va_macro: va-macro@A730000 { + compatible = "qcom,va-macro"; + reg = <0xA730000 0x0>; + clock-names = "lpass_audio_hw_vote"; + clocks = <&lpass_audio_hw_vote 0>; + qcom,va-dmic-sample-rate = <600000>; + qcom,default-clk-id = ; + qcom,is-used-swr-gpio = <1>; + qcom,va-swr-gpios = <&va_swr_gpios>; + swr0: va_swr_master { + compatible = "qcom,swr-mstr"; + qcom,is_wcd937x = <1>; + #address-cells = <2>; + #size-cells = <0>; + clock-names = "lpass_audio_hw_vote"; + clocks = <&lpass_audio_hw_vote 0>; + qcom,swr_master_id = <3>; + qcom,swrm-hctl-reg = <0x0A7EC100>; + qcom,mipi-sdw-block-packing-mode = <1>; + swrm-io-base = <0xA740000 0x0>; + interrupts-extended = + <&wakegic 5 IRQ_TYPE_LEVEL_HIGH>, + <&tlmm 128 GPIO_ACTIVE_HIGH>; + interrupt-names = "swr_master_irq", "swr_wake_irq"; + qcom,swr-num-ports = <3>; + qcom,swr-port-mapping = <1 SWRM_TX1_CH1 0x1>, + <1 SWRM_TX1_CH2 0x2>, + <1 SWRM_TX1_CH3 0x4>, <1 SWRM_TX1_CH4 0x8>, + <2 SWRM_TX2_CH1 0x1>, <2 SWRM_TX2_CH2 0x2>, + <2 SWRM_TX2_CH3 0x4>, <2 SWRM_TX2_CH4 0x8>, + <3 SWRM_TX3_CH1 0x1>, <3 SWRM_TX3_CH2 0x2>, + <3 SWRM_TX3_CH3 0x4>, <3 SWRM_TX3_CH4 0x8>; + qcom,swr-num-dev = <1>; + qcom,swr-phy-dev-addr = <0x0A 0x01170223>, + <0x08 0x58350223>, + <0x08 0x58350222>, + <0x08 0x58350221>, + <0x08 0x58350220>; + qcom,swr-clock-stop-mode0 = <1>; + qcom,swr-mstr-irq-wakeup-capable = <1>; + qcom,is-always-on = <1>; + wcd937x_tx_slave: wcd937x-tx-slave { + compatible = "qcom,wcd937x-slave"; + reg = <0x0A 0x01170223>; + }; + }; + }; + + tx_macro: tx-macro@A620000 { + compatible = "qcom,tx-macro"; + reg = <0xA620000 0x0>; + clock-names = "tx_core_clk", "tx_npl_clk"; + clocks = <&clock_audio_tx_1 0>, + <&clock_audio_tx_2 0>; + qcom,tx-dmic-sample-rate = <2400000>; + qcom,is-used-swr-gpio = <0>; + }; + + rx_macro: rx-macro@A600000 { + compatible = "qcom,rx-macro"; + reg = <0xA600000 0x0>; + clock-names = "rx_core_clk", "rx_npl_clk"; + clocks = <&clock_audio_rx_1 0>, + <&clock_audio_rx_2 0>; + qcom,rx-swr-gpios = <&rx_swr_gpios>; + qcom,rx_mclk_mode_muxsel = <0xA5640D8>; + qcom,rx-bcl-pmic-params = /bits/ 8 <0x00 0x03 0x48>; + qcom,default-clk-id = ; + swr1: rx_swr_master { + compatible = "qcom,swr-mstr"; + #address-cells = <2>; + #size-cells = <0>; + clock-names = "lpass_audio_hw_vote"; + clocks = <&lpass_audio_hw_vote 0>; + qcom,swr_master_id = <2>; + qcom,swrm-hctl-reg = <0x0A6A9098>; + qcom,mipi-sdw-block-packing-mode = <1>; + swrm-io-base = <0xA610000 0x0>; + interrupts = ; + interrupt-names = "swr_master_irq"; + qcom,swr-num-ports = <6>; + qcom,swr-port-mapping = <1 HPH_L 0x1>, + <1 HPH_R 0x2>, <2 CLSH 0x1>, + <3 COMP_L 0x1>, <3 COMP_R 0x2>, + <4 LO 0x1>, <5 DSD_L 0x1>, + <5 DSD_R 0x2>, <6 PCM_OUT1 0x01>; + qcom,swr-num-dev = <1>; + qcom,swr-clock-stop-mode0 = <1>; + wcd937x_rx_slave: wcd937x-rx-slave { + compatible = "qcom,wcd937x-slave"; + reg = <0x0A 0x01170224>; + }; + }; + }; + + wcd937x_codec: wcd937x-codec { + compatible = "qcom,wcd937x-codec"; + qcom,split-codec = <1>; + qcom,rx_swr_ch_map = <0 HPH_L 0x1 0 HPH_L>, + <0 HPH_R 0x2 0 HPH_R>, <1 CLSH 0x1 0 CLSH>, + <2 COMP_L 0x1 0 COMP_L>, <2 COMP_R 0x2 0 COMP_R>, + <3 LO 0x1 0 LO>, <4 DSD_L 0x1 0 DSD_L>, + <4 DSD_R 0x2 0 DSD_R>; + qcom,tx_swr_ch_map = <0 ADC1 0x1 0 SWRM_TX1_CH1>, + <1 ADC2 0x1 0 SWRM_TX2_CH1>, + <1 ADC3 0x2 0 SWRM_TX2_CH2>, + <2 DMIC0 0x1 0 SWRM_TX1_CH4>, + <2 DMIC1 0x2 0 SWRM_TX2_CH1>, + <2 MBHC 0x4 0 SWRM_TX2_CH2>, + <3 DMIC2 0x1 0 SWRM_TX2_CH3>, + <3 DMIC3 0x2 0 SWRM_TX2_CH4>, + <3 DMIC4 0x4 0 SWRM_TX3_CH1>, + <3 DMIC5 0x8 0 SWRM_TX3_CH2>; + + qcom,wcd-rst-gpio-node = <&wcd937x_rst_gpio>; + qcom,rx-slave = <&wcd937x_rx_slave>; + qcom,tx-slave = <&wcd937x_tx_slave>; + + cdc-vdd-rxtx-supply = <&L11A>; + qcom,cdc-vdd-rxtx-voltage = <1800000 1800000>; + qcom,cdc-vdd-rxtx-current = <30000>; + + cdc-vddpx-supply = <&L11A>; + qcom,cdc-vddpx-voltage = <1800000 1800000>; + qcom,cdc-vddpx-current = <30000>; + + cdc-vdd-buck-supply = <&L14A>; + qcom,cdc-vdd-buck-voltage = <1800000 1800000>; + qcom,cdc-vdd-buck-current = <650000>; + + cdc-vdd-mic-bias-supply = <&BOB>; + qcom,cdc-vdd-mic-bias-voltage = <3296000 3296000>; + qcom,cdc-vdd-mic-bias-current = <45000>; + + qcom,cdc-micbias1-mv = <2800>; + qcom,cdc-micbias2-mv = <2800>; + qcom,cdc-micbias3-mv = <2800>; + + qcom,cdc-static-supplies = "cdc-vdd-rxtx", + "cdc-vddpx", + "cdc-vdd-mic-bias"; + qcom,cdc-on-demand-supplies = "cdc-vdd-buck"; + }; +}; + +&holi_snd { + qcom,model = "holi-9370_fs1815-snd-card"; + qcom,wcn-btfm = <1>; + qcom,tdm-max-slots = <4>; + qcom,mi2s-audio-intf = <0>; + + qcom,audio-routing = + "AMIC1", "Analog Mic1", + "Analog Mic1", "MIC BIAS1", + "AMIC2", "Analog Mic2", + "Analog Mic2", "MIC BIAS2", + "AMIC3", "Analog Mic3", + "Analog Mic3", "MIC BIAS3", + "Analog Mic4", "MIC BIAS3", + "TX DMIC0", "Digital Mic0", + "TX DMIC0", "MIC BIAS1", + "TX DMIC1", "Digital Mic1", + "TX DMIC1", "MIC BIAS1", + "TX DMIC2", "Digital Mic2", + "TX DMIC2", "MIC BIAS3", + "TX DMIC3", "Digital Mic3", + "TX DMIC3", "MIC BIAS3", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "IN3_AUX", "AUX_OUT", + "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 SWR_INPUT", "WCD_TX_OUTPUT", + "VA SWR_INPUT", "VA_SWR_CLK", + "VA SWR_INPUT", "WCD_TX_OUTPUT", + "VA_AIF1 CAP", "VA_SWR_CLK", + "VA_AIF2 CAP", "VA_SWR_CLK", + "VA_AIF3 CAP", "VA_SWR_CLK", + "VA DMIC0", "Digital Mic0", + "VA DMIC1", "Digital Mic1", + "VA DMIC2", "Digital Mic2", + "VA DMIC3", "Digital Mic3", + "VA DMIC4", "Digital Mic4", + "VA DMIC5", "Digital Mic5", + "VA DMIC0", "VA MIC BIAS1", + "VA DMIC1", "VA MIC BIAS1", + "VA DMIC2", "VA MIC BIAS3", + "VA DMIC3", "VA MIC BIAS3"; + qcom,msm-mbhc-hphl-swh = <1>; + qcom,msm-mbhc-gnd-swh = <1>; + asoc-codec = <&stub_codec>, <&bolero>, + <&wcd937x_codec>; + asoc-codec-names = "msm-stub-codec.1", "bolero_codec", + "wcd937x_codec"; + qcom,msm_audio_ssr_devs = <&audio_apr>, <&q6core>, <&lpi_tlmm>, + <&bolero>; + qcom,msm-mbhc-hs-mic-max-threshold-mv = <2700>; + qcom,msm-mbhc-hs-mic-min-threshold-mv = <116>; +}; + +&qupv3_se10_i2c { + status = "ok"; + fs1815_rcv: fs1815_rcv@34{ + compatible = "foursemi,fs1815"; + reg = <0x34>; + pinctrl-names = "default"; + pinctrl-0 = <&fsm_rcv_rst>; + fsm,rst-gpio = <&tlmm 86 0x00>; + status = "okay"; + }; + fs1815_spk: fs1815_spk@35{ + compatible = "foursemi,fs1815"; + reg = <0x35>; + pinctrl-names = "default"; + pinctrl-0 = <&fsm_spk_rst>; + fsm,rst-gpio = <&tlmm 58 0x00>; + status = "okay"; + }; +}; + +&va_cdc_dma_0_tx { + qcom,msm-dai-is-island-supported = <1>; +}; + +&soc { + wcd937x_rst_gpio: msm_cdc_pinctrl@32 { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&wcd937x_reset_active>; + pinctrl-1 = <&wcd937x_reset_sleep>; + }; + + clock_audio_rx_1: rx_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <22579200>; + qcom,codec-lpass-clk-id = <0x30E>; + #clock-cells = <1>; + }; + + clock_audio_rx_2: rx_npl_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <22579200>; + qcom,codec-lpass-clk-id = <0x30F>; + #clock-cells = <1>; + }; + + clock_audio_tx_1: tx_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x30C>; + #clock-cells = <1>; + }; + + clock_audio_tx_2: tx_npl_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x30D>; + #clock-cells = <1>; + }; + + clock_audio_va_1: va_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x30B>; + #clock-cells = <1>; + }; + + clock_audio_va_2: va_npl_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x310>; + #clock-cells = <1>; + }; +}; + +&adsp_loader { + nvmem-cells = <&adsp_variant>; + nvmem-cell-names = "adsp_variant"; + adsp-fw-names = "adsp2"; + adsp-fw-bit-values = <0x1>; +};