From 86329c1e9e9dbd98c0cc03c470d22ee86aed8f8b Mon Sep 17 00:00:00 2001 From: yangqh5 Date: Tue, 22 Jun 2021 13:53:35 +0800 Subject: [PATCH] arm64/dt: initial cypfq and cypfr dts files cyprus 5g have below two chip: cypfq: 4350-pro(mannar-pro) cypfr: 6375(strait) initial dts files cloned from cypfg. Change-Id: Ibe8896bf660e60ea831c49c7cb9e4b8da043ef6b Reviewed-on: https://gerrit.mot.com/1987823 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Xiaojun Ji Reviewed-by: Huosheng Liao Submit-Approved: Liyun Zhang --- qcom/Makefile | 14 + qcom/holi-cypfq-common-overlay.dtsi | 548 ++++++++++++++++++++++++++++ qcom/holi-cypfq-evb-overlay.dts | 24 ++ qcom/holi-cypfq-evt-overlay.dts | 24 ++ qcom/holi-cypfr-common-overlay.dtsi | 548 ++++++++++++++++++++++++++++ qcom/holi-cypfr-evb-overlay.dts | 24 ++ qcom/holi-cypfr-evt-overlay.dts | 24 ++ 7 files changed, 1206 insertions(+) create mode 100644 qcom/holi-cypfq-common-overlay.dtsi create mode 100644 qcom/holi-cypfq-evb-overlay.dts create mode 100644 qcom/holi-cypfq-evt-overlay.dts create mode 100644 qcom/holi-cypfr-common-overlay.dtsi create mode 100644 qcom/holi-cypfr-evb-overlay.dts create mode 100644 qcom/holi-cypfr-evt-overlay.dts diff --git a/qcom/Makefile b/qcom/Makefile index daf1ff59bf5f..a2a94675af76 100644 --- a/qcom/Makefile +++ b/qcom/Makefile @@ -52,6 +52,20 @@ dtbo-$(CONFIG_CYPFG_DTB) += \ holi-cypfg-evb-overlay.dtbo-base := holi-moto-base.dtb holi-cypfg-evt-overlay.dtbo-base := holi-moto-base.dtb +dtbo-$(CONFIG_CYPFQ_DTB) += \ + holi-cypfq-evb-overlay.dtbo \ + holi-cypfq-evt-overlay.dtbo + +holi-cypfq-evb-overlay.dtbo-base := holi-moto-base.dtb +holi-cypfq-evt-overlay.dtbo-base := holi-moto-base.dtb + +dtbo-$(CONFIG_CYPFR_DTB) += \ + holi-cypfr-evb-overlay.dtbo \ + holi-cypfr-evt-overlay.dtbo + +holi-cypfr-evb-overlay.dtbo-base := holi-moto-base.dtb +holi-cypfr-evt-overlay.dtbo-base := holi-moto-base.dtb + else ifneq ($(CONFIG_ARCH_QTI_VM), y) ifeq ($(CONFIG_BUILD_ARM64_DT_OVERLAY),y) diff --git a/qcom/holi-cypfq-common-overlay.dtsi b/qcom/holi-cypfq-common-overlay.dtsi new file mode 100644 index 000000000000..b15ad387ba35 --- /dev/null +++ b/qcom/holi-cypfq-common-overlay.dtsi @@ -0,0 +1,548 @@ +/* Copyright (c) 2021, 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-moto-common-overlay.dtsi" +#include "cypfg-display.dtsi" +#include "cypfg-touchscreen.dtsi" +#include "denver-sensors.dtsi" +#include "camera/holi-camera-sensor-mot-cypfg-overlay.dtsi" +#include "holi-audio-wcd9370-aw882xx-overlay.dtsi" +#include "cypfg-fps-overlay.dtsi" +#include "moto_therm_sys_temp.dtsi" + +&sdhc_2 { + status = "ok"; + cd-gpios = <&tlmm 94 GPIO_ACTIVE_HIGH>; +}; + +&tlmm { + google_key_default: google_key_default { + mux { + pins = "gpio11"; + function = "gpio"; + }; + + config { + pins = "gpio11"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + cam_pmic_en_default: cam_pmic_en_default { + mux { + pins = "gpio38"; + function = "gpio"; + }; + config { + pins = "gpio38"; + drive-strength = <2>; + bias-pull-down; + output-low; + }; + }; + + 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 { + /* 48: Enable, 8: Firmware*/ + pins = "gpio48"; + function = "gpio"; + }; + + config { + pins = "gpio48"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + }; + }; + + nfc_enable_suspend: nfc_enable_suspend { + mux { + /* 48: Enable, 8: Firmware */ + 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 = "gpi7"; + function = "gpio"; + }; + + config { + pins = "gpio7"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + input-enable; + }; + }; + }; +}; + +&gpio_keys { + pinctrl-0 = <&key_vol_up_default &google_key_default>; + + google_key { + label = "google_key"; + gpios = <&tlmm 11 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + linux,code = ; + gpio-key,wakeup; + debounce-interval = <15>; + linux,can-disable; + }; +}; + +&qupv3_se7_i2c { + status = "ok"; + #address-cells = <1>; + #size-cells = <0>; + st21nfc@8 { + compatible = "st,st21nfc"; + mmi,status = "/chosen", "mmi,nfc", "st"; + status = "ok"; + reg = <0x08>; + st,irq_gpio = <&tlmm 9 0x00>; + st,reset_gpio = <&tlmm 48 0x00>; + st,clkreq_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>; + }; +}; + +&qupv3_se10_i2c { + status = "ok"; + + cam_pmic: wl2864c@29{ + compatible = "semi,wl2864c"; + reg = <0x29>; + + semi,cs-gpios = <&tlmm 38 0>; + + pinctrl-names = "default"; + pinctrl-0 = <&cam_pmic_en_default>; + + vin1-supply = <&S8E>; + vin2-supply = <&BOB>; + + regulators { + cam_ldo1: ldo1 { + regulator-name = "ldo1"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1800000>; + }; + + cam_ldo2: ldo2 { + regulator-name = "ldo2"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1800000>; + }; + + cam_ldo3: ldo3 { + regulator-name = "ldo3"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + + cam_ldo4: ldo4 { + regulator-name = "ldo4"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + + cam_ldo5: ldo5 { + regulator-name = "ldo5"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + + cam_ldo6: ldo6 { + regulator-name = "ldo6"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + + cam_ldo7: ldo7 { + regulator-name = "ldo7"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + }; + }; +}; + +&mot_batterydata { + df-serialnum = "SB18C77591"; + qcom,batt-id-range-pct = <15>; + #include "qg-batterydata-jk50-atl-5000mah.dtsi" + #include "qg-batterydata-jk50-scud-5000mah.dtsi" +}; + +&pm7250b_mmi { + qcom,mmi-temp-zones = <0 4200 1000 0>, + <15 0 1000 1000>, + <45 0 3000 3000>, + <60 4200 2500 0>; + qcom,iterm-ma = <150>; +}; + +&pm7250b_charger { + qcom,dcp-curr-max = <2000000>; + qcom,fcc-max-ua = <3000000>; + qcom,fv-max-uv = <4400000>; + qcom,thermal-mitigation = <3000000 2500000 + 2000000 1500000 + 1200000 900000 + 600000 300000>; +}; + +&pm7250b_qg { + qcom,qg-iterm-ma = <500>; +}; + +&pm7250b_vib { + qcom,vib-ldo-volt-uv = <2900000>; +}; + +&thermal_zones { + pa-therm0-usr { + status = "disabled"; + }; + sdm-skin-therm-usr { + status = "disabled"; + }; + pa-therm1-usr { + status = "disabled"; + }; + quiet-therm-usr { + status = "disabled"; + }; + rfc-cam-pa3-usr { + status = "disabled"; + }; + camera-therm-usr { + status = "disabled"; + }; + chg-skin-therm-usr { + status = "disabled"; + }; + conn-therm-usr { + status = "disabled"; + }; + xo-therm-usr { + status = "disabled"; + }; + pa_therm2 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6150l_adc_tm ADC5_AMUX_THM1_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + msm_therm { + polling-delay-passive = <5000>; + polling-delay = <20000>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6150l_adc_tm_iio ADC5_AMUX_THM2_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 = <&pm6150l_adc_tm ADC5_AMUX_THM3_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 = <&pm6150l_adc_tm ADC5_GPIO3_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 = <&pm6150l_adc_tm ADC5_GPIO4_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"; + }; + }; + }; + 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"; + }; + }; + }; +}; + +&pm8008_8 { + status = "disabled"; +}; + +&pm8008_9 { + status = "disabled"; +}; + +&sx937x { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&sar_int_default>; + pinctrl-1 = <&sar_int_sleep>; + /*use PH4/5/6 as the reference sensor + set it to 0xff if the ref-phases-x is not used*/ + Semtech,ref-phases-a = <5>; + Semtech,ref-phases-b = <6>; + Semtech,ref-phases-c = <0xff>; + Semtech,button-flag = <0x1f>; + Semtech,reg-num = <75>; + Semtech,reg-init = < + 0x8024 0x7F00 /*PHEN, Disable all Phases*/ + 0x4004 0x70 /*irq mask*/ + 0x8008 0x0 + 0x4280 0x0 + 0x8020 0x32 + 0x8028 0x25E /*AFE_PARAM_PH0*/ + 0x8034 0x25E /*AFE_PARAM_PH1*/ + 0x8040 0x25E /*AFE_PARAM_PH2*/ + 0x804C 0x25E /*AFE_PARAM_PH3*/ + 0x8058 0x25E /*AFE_PARAM_PH4*/ + 0x8064 0x25E /*AFE_PARAM_PH5*/ + 0x8070 0x25E /*AFE_PARAM_PH6*/ + 0x807C 0x25E /*AFE_PARAM_PH7*/ + /*set CS3 to hiz, because it used as IRQ pin*/ + 0x8030 0xFFF9FD /*REG_AFEPH_PH0, CS0, ANT0, Bottom center*/ + 0x803C 0xBFF9FF /*REG_AFEPH_PH1, CS7, ANT6, Top Left*/ + 0x8048 0xFFF97F /*REG_AFEPH_PH2, CS2, ANT1, Bottom Right*/ + 0x8054 0xFFD9FF /*REG_AFEPH_PH3, CS4, ANT4, Right*/ + 0x8060 0xF7F9FF /*REG_AFEPH_PH4, CS6, ANT5, Back center*/ + 0x806C 0xFFF9EF /*REG_AFEPH_PH5, CS1, REF*/ + 0x8078 0xFEF9FF /*REG_AFEPH_PH6, CS5, REF*/ + 0x8084 0xFFF9FF /*REG_AFEPH_PH7, NOT USE*/ + 0x802C 0x0 + 0x8038 0x0 + 0x8044 0x0 + 0x8050 0x0 + 0x805C 0x0 + 0x8068 0x0 + 0x8074 0x0 + 0x8080 0x0 + 0x8098 0xC8644D2C + 0x80B8 0xC8644D2C + 0x80D8 0xC8644D2C + 0x80F8 0xC8644D2C + 0x8118 0xC8644D2C + 0x8138 0xC8644D2C + 0x8158 0xC8644D2C + 0x8178 0xC8644D2C + 0x80A0 0x0 + 0x80C0 0x0 + 0x80E0 0x0 + 0x8100 0x0 + 0x8120 0x0 + 0x8140 0x0 + 0x8160 0x0 + 0x8180 0x0 + 0x8188 0x0 + 0x818C 0x0 + 0x8190 0x0 + 0x8194 0x0 + 0x8090 0x2AD67000 + 0x80B0 0x2AD67000 + 0x80D0 0x2AD67000 + 0x80F0 0x2AD67000 + 0x8110 0x2AD67000 + 0x8130 0x2AD67000 + 0x8150 0x2AD67000 + 0x8170 0x2AD67000 + 0x8088 0x300000 + 0x80A8 0x300000 + 0x80C8 0x300000 + 0x80E8 0x300000 + 0x8108 0x300000 + 0x8128 0x300000 + 0x8148 0x300000 + 0x8168 0x300000 + 0x808C 0x60200018 + 0x80AC 0x60200018 + 0x80CC 0x60200018 + 0x80EC 0x60200018 + 0x810C 0x60200018 + 0x812C 0x60200018 + 0x814C 0x60200018 + 0x816C 0x60200018 + 0x8024 0x7F7F + 0x4280 0xe + >; +}; + +&qusb_phy0 { + qcom,qusb-phy-init-seq = + /* */ + <0x23 0x210 /* PWR_CTRL1 */ + 0x03 0x04 /* PLL_ANALOG_CONTROLS_TWO */ + 0x7c 0x18c /* PLL_CLOCK_INVERTERS */ + 0x80 0x2c /* PLL_CMODE */ + 0x0a 0x184 /* PLL_LOCK_DELAY */ + 0x19 0xb4 /* PLL_DIGITAL_TIMERS_TWO */ + 0x40 0x194 /* PLL_BIAS_CONTROL_1 */ + 0x1c 0x198 /* PLL_BIAS_CONTROL_2 */ + 0x21 0x214 /* PWR_CTRL2 */ + 0x08 0x220 /* IMP_CTRL1 */ + 0x58 0x224 /* IMP_CTRL2 */ + 0x47 0x240 /* TUNE1 */ + 0x29 0x244 /* TUNE2 */ + 0xca 0x248 /* TUNE3 */ + 0x04 0x24c /* TUNE4 */ + 0x03 0x250 /* TUNE5 */ + 0x30 0x23c /* CHG_CTRL2 */ + 0x22 0x210>; /* PWR_CTRL1 */ + + qcom,qusb-phy-host-init-seq = + /* */ + <0x23 0x210 /* PWR_CTRL1 */ + 0x03 0x04 /* PLL_ANALOG_CONTROLS_TWO */ + 0x7c 0x18c /* PLL_CLOCK_INVERTERS */ + 0x80 0x2c /* PLL_CMODE */ + 0x0a 0x184 /* PLL_LOCK_DELAY */ + 0x19 0xb4 /* PLL_DIGITAL_TIMERS_TWO */ + 0x40 0x194 /* PLL_BIAS_CONTROL_1 */ + 0x1c 0x198 /* PLL_BIAS_CONTROL_2 */ + 0x21 0x214 /* PWR_CTRL2 */ + 0x08 0x220 /* IMP_CTRL1 */ + 0x58 0x224 /* IMP_CTRL2 */ + 0x47 0x240 /* TUNE1 */ + 0x29 0x244 /* TUNE2 */ + 0xca 0x248 /* TUNE3 */ + 0x04 0x24c /* TUNE4 */ + 0x03 0x250 /* TUNE5 */ + 0x30 0x23c /* CHG_CTRL2 */ + 0x22 0x210>; /* PWR_CTRL1 */ +}; diff --git a/qcom/holi-cypfq-evb-overlay.dts b/qcom/holi-cypfq-evb-overlay.dts new file mode 100644 index 000000000000..1dbc8fd9e0e8 --- /dev/null +++ b/qcom/holi-cypfq-evb-overlay.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2021, 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 "holi-cypfq-common-overlay.dtsi" + +/ { + model = "cypfq"; + compatible = "qcom,holi-cypfq", "qcom,holi-moto", "qcom,holi"; + qcom,msm-id = <454 0x10000>, <472 0x10000>; + qcom,board-id = <0x47 0xA100>; +}; + diff --git a/qcom/holi-cypfq-evt-overlay.dts b/qcom/holi-cypfq-evt-overlay.dts new file mode 100644 index 000000000000..ed3720e36810 --- /dev/null +++ b/qcom/holi-cypfq-evt-overlay.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2021, 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 "holi-cypfq-common-overlay.dtsi" + +/ { + model = "cypfq"; + compatible = "qcom,holi-cypfq", "qcom,holi-moto", "qcom,holi"; + qcom,msm-id = <454 0x10000>, <472 0x10000>; + qcom,board-id = <0x47 0xA200>, <0x48 0xA200>; +}; + diff --git a/qcom/holi-cypfr-common-overlay.dtsi b/qcom/holi-cypfr-common-overlay.dtsi new file mode 100644 index 000000000000..b15ad387ba35 --- /dev/null +++ b/qcom/holi-cypfr-common-overlay.dtsi @@ -0,0 +1,548 @@ +/* Copyright (c) 2021, 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-moto-common-overlay.dtsi" +#include "cypfg-display.dtsi" +#include "cypfg-touchscreen.dtsi" +#include "denver-sensors.dtsi" +#include "camera/holi-camera-sensor-mot-cypfg-overlay.dtsi" +#include "holi-audio-wcd9370-aw882xx-overlay.dtsi" +#include "cypfg-fps-overlay.dtsi" +#include "moto_therm_sys_temp.dtsi" + +&sdhc_2 { + status = "ok"; + cd-gpios = <&tlmm 94 GPIO_ACTIVE_HIGH>; +}; + +&tlmm { + google_key_default: google_key_default { + mux { + pins = "gpio11"; + function = "gpio"; + }; + + config { + pins = "gpio11"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + cam_pmic_en_default: cam_pmic_en_default { + mux { + pins = "gpio38"; + function = "gpio"; + }; + config { + pins = "gpio38"; + drive-strength = <2>; + bias-pull-down; + output-low; + }; + }; + + 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 { + /* 48: Enable, 8: Firmware*/ + pins = "gpio48"; + function = "gpio"; + }; + + config { + pins = "gpio48"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + }; + }; + + nfc_enable_suspend: nfc_enable_suspend { + mux { + /* 48: Enable, 8: Firmware */ + 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 = "gpi7"; + function = "gpio"; + }; + + config { + pins = "gpio7"; + drive-strength = <2>; /* 2 MA */ + bias-disable; + input-enable; + }; + }; + }; +}; + +&gpio_keys { + pinctrl-0 = <&key_vol_up_default &google_key_default>; + + google_key { + label = "google_key"; + gpios = <&tlmm 11 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + linux,code = ; + gpio-key,wakeup; + debounce-interval = <15>; + linux,can-disable; + }; +}; + +&qupv3_se7_i2c { + status = "ok"; + #address-cells = <1>; + #size-cells = <0>; + st21nfc@8 { + compatible = "st,st21nfc"; + mmi,status = "/chosen", "mmi,nfc", "st"; + status = "ok"; + reg = <0x08>; + st,irq_gpio = <&tlmm 9 0x00>; + st,reset_gpio = <&tlmm 48 0x00>; + st,clkreq_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>; + }; +}; + +&qupv3_se10_i2c { + status = "ok"; + + cam_pmic: wl2864c@29{ + compatible = "semi,wl2864c"; + reg = <0x29>; + + semi,cs-gpios = <&tlmm 38 0>; + + pinctrl-names = "default"; + pinctrl-0 = <&cam_pmic_en_default>; + + vin1-supply = <&S8E>; + vin2-supply = <&BOB>; + + regulators { + cam_ldo1: ldo1 { + regulator-name = "ldo1"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1800000>; + }; + + cam_ldo2: ldo2 { + regulator-name = "ldo2"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1800000>; + }; + + cam_ldo3: ldo3 { + regulator-name = "ldo3"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + + cam_ldo4: ldo4 { + regulator-name = "ldo4"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + + cam_ldo5: ldo5 { + regulator-name = "ldo5"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + + cam_ldo6: ldo6 { + regulator-name = "ldo6"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + + cam_ldo7: ldo7 { + regulator-name = "ldo7"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <4300000>; + }; + }; + }; +}; + +&mot_batterydata { + df-serialnum = "SB18C77591"; + qcom,batt-id-range-pct = <15>; + #include "qg-batterydata-jk50-atl-5000mah.dtsi" + #include "qg-batterydata-jk50-scud-5000mah.dtsi" +}; + +&pm7250b_mmi { + qcom,mmi-temp-zones = <0 4200 1000 0>, + <15 0 1000 1000>, + <45 0 3000 3000>, + <60 4200 2500 0>; + qcom,iterm-ma = <150>; +}; + +&pm7250b_charger { + qcom,dcp-curr-max = <2000000>; + qcom,fcc-max-ua = <3000000>; + qcom,fv-max-uv = <4400000>; + qcom,thermal-mitigation = <3000000 2500000 + 2000000 1500000 + 1200000 900000 + 600000 300000>; +}; + +&pm7250b_qg { + qcom,qg-iterm-ma = <500>; +}; + +&pm7250b_vib { + qcom,vib-ldo-volt-uv = <2900000>; +}; + +&thermal_zones { + pa-therm0-usr { + status = "disabled"; + }; + sdm-skin-therm-usr { + status = "disabled"; + }; + pa-therm1-usr { + status = "disabled"; + }; + quiet-therm-usr { + status = "disabled"; + }; + rfc-cam-pa3-usr { + status = "disabled"; + }; + camera-therm-usr { + status = "disabled"; + }; + chg-skin-therm-usr { + status = "disabled"; + }; + conn-therm-usr { + status = "disabled"; + }; + xo-therm-usr { + status = "disabled"; + }; + pa_therm2 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6150l_adc_tm ADC5_AMUX_THM1_100K_PU>; + wake-capable-sensor; + trips { + active-config0 { + temperature = <125000>; + hysteresis = <1000>; + type = "passive"; + }; + }; + }; + msm_therm { + polling-delay-passive = <5000>; + polling-delay = <20000>; + thermal-governor = "user_space"; + thermal-sensors = <&pm6150l_adc_tm_iio ADC5_AMUX_THM2_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 = <&pm6150l_adc_tm ADC5_AMUX_THM3_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 = <&pm6150l_adc_tm ADC5_GPIO3_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 = <&pm6150l_adc_tm ADC5_GPIO4_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"; + }; + }; + }; + 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"; + }; + }; + }; +}; + +&pm8008_8 { + status = "disabled"; +}; + +&pm8008_9 { + status = "disabled"; +}; + +&sx937x { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&sar_int_default>; + pinctrl-1 = <&sar_int_sleep>; + /*use PH4/5/6 as the reference sensor + set it to 0xff if the ref-phases-x is not used*/ + Semtech,ref-phases-a = <5>; + Semtech,ref-phases-b = <6>; + Semtech,ref-phases-c = <0xff>; + Semtech,button-flag = <0x1f>; + Semtech,reg-num = <75>; + Semtech,reg-init = < + 0x8024 0x7F00 /*PHEN, Disable all Phases*/ + 0x4004 0x70 /*irq mask*/ + 0x8008 0x0 + 0x4280 0x0 + 0x8020 0x32 + 0x8028 0x25E /*AFE_PARAM_PH0*/ + 0x8034 0x25E /*AFE_PARAM_PH1*/ + 0x8040 0x25E /*AFE_PARAM_PH2*/ + 0x804C 0x25E /*AFE_PARAM_PH3*/ + 0x8058 0x25E /*AFE_PARAM_PH4*/ + 0x8064 0x25E /*AFE_PARAM_PH5*/ + 0x8070 0x25E /*AFE_PARAM_PH6*/ + 0x807C 0x25E /*AFE_PARAM_PH7*/ + /*set CS3 to hiz, because it used as IRQ pin*/ + 0x8030 0xFFF9FD /*REG_AFEPH_PH0, CS0, ANT0, Bottom center*/ + 0x803C 0xBFF9FF /*REG_AFEPH_PH1, CS7, ANT6, Top Left*/ + 0x8048 0xFFF97F /*REG_AFEPH_PH2, CS2, ANT1, Bottom Right*/ + 0x8054 0xFFD9FF /*REG_AFEPH_PH3, CS4, ANT4, Right*/ + 0x8060 0xF7F9FF /*REG_AFEPH_PH4, CS6, ANT5, Back center*/ + 0x806C 0xFFF9EF /*REG_AFEPH_PH5, CS1, REF*/ + 0x8078 0xFEF9FF /*REG_AFEPH_PH6, CS5, REF*/ + 0x8084 0xFFF9FF /*REG_AFEPH_PH7, NOT USE*/ + 0x802C 0x0 + 0x8038 0x0 + 0x8044 0x0 + 0x8050 0x0 + 0x805C 0x0 + 0x8068 0x0 + 0x8074 0x0 + 0x8080 0x0 + 0x8098 0xC8644D2C + 0x80B8 0xC8644D2C + 0x80D8 0xC8644D2C + 0x80F8 0xC8644D2C + 0x8118 0xC8644D2C + 0x8138 0xC8644D2C + 0x8158 0xC8644D2C + 0x8178 0xC8644D2C + 0x80A0 0x0 + 0x80C0 0x0 + 0x80E0 0x0 + 0x8100 0x0 + 0x8120 0x0 + 0x8140 0x0 + 0x8160 0x0 + 0x8180 0x0 + 0x8188 0x0 + 0x818C 0x0 + 0x8190 0x0 + 0x8194 0x0 + 0x8090 0x2AD67000 + 0x80B0 0x2AD67000 + 0x80D0 0x2AD67000 + 0x80F0 0x2AD67000 + 0x8110 0x2AD67000 + 0x8130 0x2AD67000 + 0x8150 0x2AD67000 + 0x8170 0x2AD67000 + 0x8088 0x300000 + 0x80A8 0x300000 + 0x80C8 0x300000 + 0x80E8 0x300000 + 0x8108 0x300000 + 0x8128 0x300000 + 0x8148 0x300000 + 0x8168 0x300000 + 0x808C 0x60200018 + 0x80AC 0x60200018 + 0x80CC 0x60200018 + 0x80EC 0x60200018 + 0x810C 0x60200018 + 0x812C 0x60200018 + 0x814C 0x60200018 + 0x816C 0x60200018 + 0x8024 0x7F7F + 0x4280 0xe + >; +}; + +&qusb_phy0 { + qcom,qusb-phy-init-seq = + /* */ + <0x23 0x210 /* PWR_CTRL1 */ + 0x03 0x04 /* PLL_ANALOG_CONTROLS_TWO */ + 0x7c 0x18c /* PLL_CLOCK_INVERTERS */ + 0x80 0x2c /* PLL_CMODE */ + 0x0a 0x184 /* PLL_LOCK_DELAY */ + 0x19 0xb4 /* PLL_DIGITAL_TIMERS_TWO */ + 0x40 0x194 /* PLL_BIAS_CONTROL_1 */ + 0x1c 0x198 /* PLL_BIAS_CONTROL_2 */ + 0x21 0x214 /* PWR_CTRL2 */ + 0x08 0x220 /* IMP_CTRL1 */ + 0x58 0x224 /* IMP_CTRL2 */ + 0x47 0x240 /* TUNE1 */ + 0x29 0x244 /* TUNE2 */ + 0xca 0x248 /* TUNE3 */ + 0x04 0x24c /* TUNE4 */ + 0x03 0x250 /* TUNE5 */ + 0x30 0x23c /* CHG_CTRL2 */ + 0x22 0x210>; /* PWR_CTRL1 */ + + qcom,qusb-phy-host-init-seq = + /* */ + <0x23 0x210 /* PWR_CTRL1 */ + 0x03 0x04 /* PLL_ANALOG_CONTROLS_TWO */ + 0x7c 0x18c /* PLL_CLOCK_INVERTERS */ + 0x80 0x2c /* PLL_CMODE */ + 0x0a 0x184 /* PLL_LOCK_DELAY */ + 0x19 0xb4 /* PLL_DIGITAL_TIMERS_TWO */ + 0x40 0x194 /* PLL_BIAS_CONTROL_1 */ + 0x1c 0x198 /* PLL_BIAS_CONTROL_2 */ + 0x21 0x214 /* PWR_CTRL2 */ + 0x08 0x220 /* IMP_CTRL1 */ + 0x58 0x224 /* IMP_CTRL2 */ + 0x47 0x240 /* TUNE1 */ + 0x29 0x244 /* TUNE2 */ + 0xca 0x248 /* TUNE3 */ + 0x04 0x24c /* TUNE4 */ + 0x03 0x250 /* TUNE5 */ + 0x30 0x23c /* CHG_CTRL2 */ + 0x22 0x210>; /* PWR_CTRL1 */ +}; diff --git a/qcom/holi-cypfr-evb-overlay.dts b/qcom/holi-cypfr-evb-overlay.dts new file mode 100644 index 000000000000..56378e80d554 --- /dev/null +++ b/qcom/holi-cypfr-evb-overlay.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2021, 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 "holi-cypfr-common-overlay.dtsi" + +/ { + model = "cypfr"; + compatible = "qcom,holi-cypfr", "qcom,holi-moto", "qcom,holi"; + qcom,msm-id = <454 0x10000>, <472 0x10000>; + qcom,board-id = <0x47 0xA100>; +}; + diff --git a/qcom/holi-cypfr-evt-overlay.dts b/qcom/holi-cypfr-evt-overlay.dts new file mode 100644 index 000000000000..50b4d4326b10 --- /dev/null +++ b/qcom/holi-cypfr-evt-overlay.dts @@ -0,0 +1,24 @@ +/* Copyright (c) 2021, 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 "holi-cypfr-common-overlay.dtsi" + +/ { + model = "cypfr"; + compatible = "qcom,holi-cypfr", "qcom,holi-moto", "qcom,holi"; + qcom,msm-id = <454 0x10000>, <472 0x10000>; + qcom,board-id = <0x47 0xA200>, <0x48 0xA200>; +}; +