Files
android_kernel_motorola_sm6225/qcom/discrete_charging.dtsi
T
xuwei9 74f42adfa6 dts:charging parameter per battery spec
Charging parameter per battery
spec of rhode.

Change-Id: I0747075003106b49765a8baf783cc79f4d71b8e6
Signed-off-by: xuwei9 <xuwei9@lenovo.com>
Reviewed-on: https://gerrit.mot.com/2148109
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com>
Submit-Approved: Jira Key
2023-05-31 17:01:04 -03:00

541 lines
16 KiB
Devicetree

/* 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 <dt-bindings/iio/qti_power_supply_iio.h>
&pm6125_vadc {
gpio6_div3{
reg = <ADC_GPIO3_DIV3>;
label = "gpio3_div3";
qcom,pre-scaling = <1 3>;
};
};
&pm6125_gpios {
gpio6_adc{
gpio6_adc_default:gpio6_adc_default{
pins = "gpio6";
function = "normal";
bias-high-impedance;
};
};
};
/*
&soc {
indicator_led {
compatible = "qcom,indicator-pwm-led";
pinctrl-names = "default";
pinctrl-0 = <&indicator_led_default>;
indicator_led {
label = "charging";
led-sources = <0>;
pwms = <&pm6125_pwm 0 1000000>;
linux,default-trigger = "timer";
};
};
};
&spmi_bus {
qcom,pm6125@1 {
#address-cells = <1>;
qcom,pwms@b300 {
status = "ok";
};
};
};*/
&qupv3_se0_i2c {
status = "okay";
wt6670: wt6670f@35 {
status = "okay";
compatible = "mediatek,wt6670f_qc3p";
reg = <0x35>;
#io-channel-cells = <1>;
wt6670f-reset-gpio = <&tlmm 68 0x0>;
wt6670f-int-gpio = <&tlmm 93 0x0>;
//wt6670f-i2c-scl-pin = <&tlmm 1 0x0>;
//wt6670f-i2c-sda-pin = <&tlmm 0 0x0>;
/*
pinctrl-names = "default",
"wt6670_i2c_scl_low", "wt6670_i2c_scl_high",
"wt6670_i2c_sda_low", "wt6670_i2c_sda_high",
"wt6670_i2c";
*/
// pinctrl-0 = <&wt6670_pins_default>;
//pinctrl-1 = <&wt6670_pins_scl_low>;
//pinctrl-2 = <&wt6670_pins_scl_high>;
// pinctrl-3 = <&wt6670_pins_sda_low>;
//pinctrl-4 = <&wt6670_pins_sda_high>;
//pinctrl-5 = <&wt6670_pins_i2c>;
};
cw2217@64 {
compatible = "cellwise,cw2217";
reg = <0x64>;
status = "okay";
sense_r_mohm = <5>;
df-serialnum = "SB18D38323";
#include "bat_setting/CW_ng50-ATL-5000mah-rhode.dtsi"
#include "bat_setting/CW_ng50-SWD-5000mah-rhode.dtsi"
};
sm5602@71 {
compatible = "sm,sm5602";
reg = <0x71>;
//interrupt-parent = <&tlmm>;
//interrupts = <38 2>;
//qcom,irq-gpio = <&tlmm 38 0x0>;
sm,en_temp_ex;
//sm,en_temp_in;
sm,en_batt_det;
//sm,iocv_man_mode;
sm,misc = <0x0800>;
sm,aging_ctrl = <0x0125>;
sm,cycle_cfg = <0x7000>;
sm,rsns = <0>;
sm,fg_irq_set = <0x07FF>;
sm,low_soc1 = <1>;
sm,low_soc2 = <15>;
sm,v_l_alarm = <3400>;
sm,v_h_alarm = <4450>;
sm,battery_table_num = <0>;
sm,param_version = <2>;
sm,t_l_alarm_in = <54>;
sm,t_h_alarm_in = <1>;
sm,t_l_alarm_ex = <0xD3D8>;
sm,t_h_alarm_ex = <0x9245>;
battery_params {
//battery,id = <0>;
//NE50(SWD)
battery0,param_version = <2>;
battery0,max_voltage_uv = <4450000>;
battery0,battery_type = <4450 0x0 0x2600>;
battery0,battery_table0 = <0x1400 0x1C6C 0x1CE7 0x1D42 0x1D64 0x1D84 0x1D91 0x1D9B
0x1DD6 0x1E0A 0x1E39 0x1E77 0x1ECB 0x1F2B 0x1F59 0x1FE1
0x200E 0x20E1 0x2195 0x2214 0x226A 0x230B 0x234E 0x2733>;
battery0,battery_table1 = <0x0 0x85 0x193 0x2A0 0x327 0x435 0x650 0xA86 0xEBC 0x13FF
0x1942 0x2127 0x2BAE 0x3393 0x3635 0x3B78 0x3E1A 0x48A1
0x5086 0x55C9 0x5979 0x60D7 0x6400 0x64E6>;
battery0,battery_table2 = <0x1C28 0x1618 0x1415 0x1112 0x1010 0x0F0F 0x0E0E 0x0E0E>;
battery0,alpha = <0x00CC>;
battery0,beta = <0x0025>;
battery0,rs = <0x805F>;
battery0,rs_value = <0x0050 0x010A 0x3800 0x0048>;
battery0,vit_period = <0x325A>;
battery0,volt_cal = <0x8000>;
battery0,mix_value = <0x0003>;
battery0,curr_offset = <0x000>;
battery0,curr_slope = <0x8080>;
battery0,topoff_soc = <7 343>;
battery0,temp_std = <25>;
battery0,temp_offset = <0 11 1 0 8 (-1)>;
battery0,temp_cal = <0 6 1 11 (-1) 0 6 1 9 1>;
battery0,ext_temp_cal = <0 2 1 2 1 0 2 3 2 3>;
battery0,tem_poff = <3400 100>;
battery0,thermal_table = <0x3EEF 0x3957 0x3234 0x2C25 0x2654 0x2089 0x1B71 0x1574 0x1068 0x0B3C
0x0640 0x0181 0xF4FA 0xF09D 0xEC1E 0xE82D 0xE3B3 0xDFE0 0xDC28 0xD88E
0xD580 0xD22A 0xCF03 0xCC0B 0xC944 0xC68E 0xC405 0xC169 0xBF0F 0xBCFD
0xBABE 0xB889 0xB692 0xB4AB 0xB2E5 0xB127 0xAF8E 0xAE0F 0xAC8A 0xAB1E
0xA9E9 0xA888 0xA742 0xA620 0xA4A5 0xA39C 0xA2A5 0xA1BE 0xA0CF 0x9FF9
0x9F2C 0x9E67 0x9DA0 0x9CEC 0x9C43 0x9BA1 0x9AFF 0x9A6F 0x99D9 0x9950
0x98D0 0x9857 0x97E8 0x9776 0x96FD 0x9695 0x9632 0x95D5 0x9579 0x9522
0x94CF 0x9480 0x9434 0x93EB 0x93A4 0x9361 0x9322 0x92E7 0x92AF 0x9278
0x9242 0x920E 0x91DD 0x91AF 0x9181 0x9156 0x912E 0x9107 0x90E2 0x90BF
0x909C 0x907A 0x905A 0x903B 0x901E 0x9003 0x8FE7 0x8FCE 0x8FB4 0x8F9D
0x8F85>; //NTC value(DEC) table -20~80
//NE50(ATL)
battery1,param_version = <2>;
battery1,max_voltage_uv = <4450000>;
battery1,battery_type = <4450 0x0 0x2666>;
battery1,battery_table0 = <0x1400 0x1C9E 0x1D11 0x1D72 0x1D83 0x1D88 0x1D90 0x1DB5
0x1DE7 0x1E11 0x1E44 0x1E78 0x1F09 0x1F62 0x1FB2 0x1FE2
0x200E 0x20DC 0x218F 0x220C 0x2261 0x2301 0x2344 0x2733>;
battery1,battery_table1 = <0x0 0x84 0x18F 0x31F 0x42A 0x534 0x74A 0xB74 0xF9F 0x14D4
0x1A0A 0x21DA 0x317A 0x36AF 0x394A 0x3BE5 0x3E7F 0x48EA
0x50BA 0x55EF 0x5995 0x60DF 0x6400 0x64E6>;
battery1,battery_table2 = <0x1F2D 0x181A 0x1516 0x1213 0x1111 0x1010 0x0F0F 0x0F0F>;
battery1,alpha = <0x00CC>;
battery1,beta = <0x0025>;
battery1,rs = <0x805F>;
battery1,rs_value = <0x0050 0x010A 0x3800 0x0048>;
battery1,vit_period = <0x325A>;
battery1,volt_cal = <0x8000>;
battery1,mix_value = <0x0003>;
battery1,curr_offset = <0x000>;
battery1,curr_slope = <0x8080>;
battery1,topoff_soc = <7 343>;
battery1,temp_std = <25>;
battery1,temp_offset = <0 11 1 0 8 (-1)>;
battery1,temp_cal = <0 6 1 11 (-1) 0 6 1 9 1>;
battery1,ext_temp_cal = <0 2 1 2 0 0 2 3 2 3>;
battery1,tem_poff = <3400 100>;
battery1,thermal_table = <0x3EEF 0x3957 0x3234 0x2C25 0x2654 0x2089 0x1B71 0x1574 0x1068 0x0B3C
0x0640 0x0181 0xF4FA 0xF09D 0xEC1E 0xE82D 0xE3B3 0xDFE0 0xDC28 0xD88E
0xD580 0xD22A 0xCF03 0xCC0B 0xC944 0xC68E 0xC405 0xC169 0xBF0F 0xBCFD
0xBABE 0xB889 0xB692 0xB4AB 0xB2E5 0xB127 0xAF8E 0xAE0F 0xAC8A 0xAB1E
0xA9E9 0xA888 0xA742 0xA620 0xA4A5 0xA39C 0xA2A5 0xA1BE 0xA0CF 0x9FF9
0x9F2C 0x9E67 0x9DA0 0x9CEC 0x9C43 0x9BA1 0x9AFF 0x9A6F 0x99D9 0x9950
0x98D0 0x9857 0x97E8 0x9776 0x96FD 0x9695 0x9632 0x95D5 0x9579 0x9522
0x94CF 0x9480 0x9434 0x93EB 0x93A4 0x9361 0x9322 0x92E7 0x92AF 0x9278
0x9242 0x920E 0x91DD 0x91AF 0x9181 0x9156 0x912E 0x9107 0x90E2 0x90BF
0x909C 0x907A 0x905A 0x903B 0x901E 0x9003 0x8FE7 0x8FCE 0x8FB4 0x8F9D
0x8F85>; //NTC value(DEC) table -20~80
};
};
};
&qupv3_se1_i2c {
status = "okay";
sgm4154x: sgm4154x@3B {
status = "okay";
compatible = "sgm,sgm41542";
reg = <0x3B>;
pinctrl-names = "default";
pinctrl-0 = <&sgm4154x_gpio_pins &gpio6_adc_default>;
#io-channel-cells = <1>;
io-channels = <&pm6125_vadc ADC_GPIO3_DIV3>,
<&wt6670 PSY_IIO_QC3P_REAL_TYPE>,
<&wt6670 PSY_IIO_QC3P_POWER>,
<&wt6670 PSY_IIO_START_DETECTION>,
<&wt6670 PSY_IIO_DETECTION_READY>,
<&mmi_chrg PSY_IIO_QC3P_START_POLICY>;
io-channel-names = "gpio3_div3",
"wt6670_usb_real_type",
"wt6670_usb_qc3p_power",
"wt6670_start_detection",
"wt6670_detection_ready",
"qc3p_start_policy";
interrupt-parent = <&tlmm>;
interrupts = <96 0>; //irq num base on hardware design
sgm,irq-gpio = <&tlmm 96 0>; //irq num base on hardware design
sgm,chg-en-gpio = <&tlmm 36 0>; //gpio num base on hardware design 1.MTK parent node name is pio 2.QUALCOMM parent node name is tlmm or other
dpdm-supply = <&usb2_phy0>;
mmi,qc3-support;
/* sw jeita parameter customer defined*/
enable_sw_jeita;
jeita_temp_above_t4_cv = <0>;
jeita_temp_t3_to_t4_cv = <4100000>;
jeita_temp_t2_to_t3_cv = <4350000>;
jeita_temp_t1_to_t2_cv = <4350000>;
jeita_temp_t0_to_t1_cv = <0>;
jeita_temp_below_t0_cv = <0>;
jeita_temp_above_t4_cc_current = <0>;
jeita_temp_t3_to_t4_cc_current = <1000000>;
jeita_temp_t2_to_t3_cc_current = <1250000>;
jeita_temp_t1_to_t2_cc_current = <1000000>;
jeita_temp_below_t0_cc_current = <0>;
temp_t4_thres = <50>;
temp_t4_thres_minus_x_degree = <48>;
temp_t3_thres = <45>;
temp_t3_thres_minus_x_degree = <45>;
temp_t2_thres = <20>;
temp_t2_thres_plus_x_degree = <15>;
temp_t1_thres = <0>;
temp_t1_thres_plus_x_degree = <0>;
temp_t0_thres = <0>;
temp_t0_thres_plus_x_degree = <2>;
temp_neg_10_thres = <0>;
};
bq25890@6A {
status = "okay";
compatible = "ti,bq2589x-1";
reg = <0x6A>;
pinctrl-names = "default";
pinctrl-0 = <&bq2589x_irq>;
bq2589x_irq-gpio = <&tlmm 96 0>;
bq2589x_en-gpio = <&tlmm 36 0>;
dpdm-supply = <&usb2_phy0>;
mmi,qc3-support;
ti,bq2589x,vbus-volt-high-level = <8700>;/* tune adapter to output 9v */
ti,bq2589x,vbus-volt-low-level = <4400>;/* tune adapter to output 5v */
ti,bq2589x,vbat-min-volt-to-tuneup = <3000>;
ti,bq2589x,charge-voltage = <4350>;
ti,bq2589x,charge-current = <3250>;
ti,bq2589x,term-current = <256>;
ti,bq2589x,enable-auto-dpdm;
ti,bq2589x,enable-termination;
ti,bq2589x,enable-ico;
ti,bq2589x,use-absolute-vindpm;
};
bq2597x: bq2597x-charger@66 {
compatible = "ti,bq25970-charger";
reg = <0x66>;
#io-channel-cells = <1>;
//ti,bq2597x,interrupt_gpios = <&pio 30 0>;
//interrupt-parent = <&pio>;
//interrupts = <2 IRQ_TYPE_EDGE_FALLING 2 0>;
//interrupt-names = "bq2597x_irq";
//pinctrl-names = "default_slave";
//pinctrl-0 = <&bq2597x_int_default_slave>;
interrupt-parent = <&tlmm>;
interrupts = <3 0>; //irq num base on hardware design
bq2597x,irq-gpio = <&tlmm 3 0>; //irq num base on hardware design
ti,bq2597x,bat-ovp-disable = <0>;
ti,bq2597x,bat-ocp_disable = <0>;
ti,bq2597x,bat-ovp-alarm-disable = <0>;
ti,bq2597x,bus-ocp-disable = <0>;
ti,bq2597x,bus-ovp-alarm-disable = <0>;
ti,bq2597x,bus-ocp-alarm-disable = <0>;
ti,bq2597x,bat-ucp-alarm-disable = <0>;
ti,bq2597x,bat-therm-disable = <0>;
ti,bq2597x,bus-therm-disable = <0>;
ti,bq2597x,bat-ovp-threshold = <4500>;
ti,bq2597x,bat-ovp-alarm-threshold = <4450>;
ti,bq2597x,bat-ocp-threshold = <8000>;
ti,bq2597x,bat-ocp-alarm-threshold = <7500>;
ti,bq2597x,bus-ovp-threshold = <12000>;
ti,bq2597x,bus-ovp-alarm-threshold = <11000>;
ti,bq2597x,bus-ocp-threshold = <3750>;
ti,bq2597x,bus-ocp-alarm-threshold = <3500>;
ti,bq2597x,bat-ucp-alarm-threshold = <2000>;
ti,bq2597x,bat-therm-threshold = <0x15>;
ti,bq2597x,bus-therm-threshold = <0x15>;
ti,bq2597x,die-therm-threshold = <125>;
ti,bq2597x,ac-ovp-threshold = <17>;
ti,bq2597x,sense-resistor-mohm = <5>;
};
};
&tlmm {
wt6670_pins_default: wt6670_default_mode {
};
wt6670_pins_scl_low: wt6670_scl_low {
mux {
pins = "gpio1";
function = "gpio";
};
config {
pins = "gpio1";
drive-strength = <2>;
bias-pull-down;
};
};
wt6670_pins_scl_high: wt6670_scl_high {
mux {
pins = "gpio1";
function = "gpio";
};
config {
pins = "gpio1";
drive-strength = <2>;
bias-pull-up;
output-high;
};
};
wt6670_pins_sda_low: wt6670_sda_low {
mux {
pins = "gpio0";
function = "gpio";
};
config {
pins = "gpio0";
drive-strength = <2>;
bias-pull-down;
};
};
wt6670_pins_sda_high: wt6670_sda_high {
mux {
pins = "gpio0";
function = "gpio";
};
config {
pins = "gpio0";
drive-strength = <2>;
bias-pull-up;
output-high;
};
};
/*
wt6670_pins_i2c: wt6670_i2c_mode {
pins_cmd_dat {
pinmux = <PINMUX_GPIO90__FUNC_SDA6>,
<PINMUX_GPIO89__FUNC_SCL6>;
};
};
*/
};
&tlmm {
sgm4154x_gpio_pins: sgm4154x_gpio_pins {
mux {
pins = "gpio96";
function = "gpio";
};
config {
pins = "gpio96";
drive-strength = <2>;
bias-pull-up;
input-enable;
};
};
};
&tlmm {
bq2589x_irq: bq2589x_irq {
mux {
pins = "gpio96";
function = "gpio";
};
config {
pins = "gpio96";
drive-strength = <2>;
bias-pull-up;
input-enable;
};
};
};
&soc {
mmi_charger: mmi,charger {
status = "ok"
compatible = "mmi,mmi-charger";
mmi,enable-charging-limit;
mmi,upper-limit-capacity = <65>;
mmi,lower-limit-capacity = <60>;
mmi,heartbeat-interval = <100000>;
mmi,dcp-power-max = <10000>;
mmi,hvdcp-power-max = <15000>;
};
mmi_discrete_charger: mmi,discrete-charging {
status = "ok"
compatible = "mmi,mmi-discrete-charger";
#io-channel-cells = <1>;
battery-names = "battery";
supplied-from = "mmi_battery";
mmi,chrg-iterm-ma = <243>;
mmi,fg-iterm-ma = <500>;
mmi,max-fv-mv = <4450>;
mmi,max-fcc-ma = <4000>;
mmi,demo-fv-mv = <4000>;
mmi,df-serialnum = "SB18D33989";
mmi,mmi-temp-zones = <0 4200 1000 0>,
<10 4250 3000 1000>,
<15 0 3000 3000>,
<45 0 4000 4000>,
<60 4200 3000 0>;
mmi,thermal-mitigation = <4000000 3500000
3000000 2500000
2000000 1500000
1200000 900000
600000 300000>;
};
};
&soc {
mmi_chrg: mmi_chrg_manager {
compatible = "mmi,chrg-manager";
#io-channel-cells = <1>;
io-channels = <&mmi_discrete_charger PSY_IIO_HW_CURRENT_MAX>,
<&mmi_discrete_charger PSY_IIO_USB_CHARGING_ENABLED>,
<&mmi_discrete_charger PSY_IIO_TYPEC_MODE>,
<&mmi_discrete_charger PSY_IIO_INPUT_CURRENT_SETTLED>,
<&mmi_discrete_charger PSY_IIO_PD_ACTIVE>,
<&mmi_discrete_charger PSY_IIO_USB_TERMINATION_ENABLED>,
<&wt6670 PSY_IIO_QC3P_REAL_TYPE>,
<&wt6670 PSY_IIO_QC3P_POWER>,
<&wt6670 PSY_IIO_BATTERY_DP_DM>,
<&wt6670 PSY_IIO_START_DETECTION>,
<&bq2597x PSY_IIO_CP_ENABLE>,
<&bq2597x PSY_IIO_MMI_CP_INPUT_CURRENT_NOW>,
<&bq2597x PSY_IIO_MMI_CP_INPUT_VOLTAGE_NOW>,
<&bq2597x PSY_IIO_CP_STATUS1>,
<&bq2597x PSY_IIO_CP_CLEAR_ERROR>;
io-channel-names = "hw_current_max",
"charging_enabled",
"typec_mode",
"input_current_settled",
"pd_active",
"termination_enabled",
"wt6670_usb_real_type",
"wt6670_usb_qc3p_power",
"wt6670_battery_dp_dm",
"wt6670_start_detection",
"bq2597x_cp_enabled",
"bq2597x_input_current_now",
"bq2597x_input_voltage_settled",
"bq2597x_cp_status1",
"bq2597x_cp_clear_error";
// qcom,usbpd-phandle = <&pm7250b_pdphy>;
mmi,pps-volt-steps = <20000>;
mmi,pps-curr-steps = <100000>;
mmi,pd-volt-max = <10000000>;
mmi,pd-curr-max = <3000000>;
mmi,batt-curr-boost = <300000>;
mmi,batt-ovp-lmt = <4550000>;
mmi,pl-chrg-vbatt-min = <3600000>;
mmi,typec-middle-current = <2000000>;
mmi,pd-allow-min-current = <1000000>;
mmi,step-first-current-comp = <0>;
mmi,dont-rerun-aicl;
mmi,qc3p-max-ibus-ma = <3000>;
mmi,qc3p-volt-steps = <20000>;
mmi,qc3p-volt-max = <10000000>;
mmi,chrg-temp-zones-num = <5>;
mmi,mmi-chrg-temp-zones =
<0 4200 1000 0 0>,
<10 4250 3000 4450 1000>,
<15 4450 3000 0 0>,
<45 4350 6000 4480 4000>,
<60 4200 4000 0 0>;
mmi,thermal-mitigation =
<5800000>,
<5000000>,
<4000000>,
<3500000>,
<3000000>,
<2000000>,
<1000000>;
charger_device_0 {
chrg-name = "pmic-sw";
psy-name = "battery";
charging-curr-limited = <500000>;
};
charger_device_1 {
chrg-name = "cp-master";
psy-name = "cp-standalone";
charging-curr-min = <2000000>;
};
};
};