/* Copyright (c) 2014, 2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

qcom,qrd-skua-4v35-2000mAh-data {
	qcom,battery-type = "qrd_skua_4v35_2000mAh";
	qcom,batt-id-kohm = <200>;
	qcom,chg-term-ua = <100000>;
	qcom,default-rbatt-mohm = <146>;
	qcom,fcc-mah = <2000>;
	qcom,max-voltage-uv = <4350000>;
	qcom,rbatt-capacitive-mohm = <50>;
	qcom,v-cutoff-uv = <3400000>;
	qcom,flat-ocv-threshold-uv = <3800000>;

	qcom,fcc-temp-lut {
		qcom,lut-col-legend = <(-20) 0 25 40 60>;
		qcom,lut-data = <2064 2067 2067 2066 2063>;
	};

	qcom,ibat-acc-lut {
		qcom,lut-col-legend = <(-20) 0 25>;
		qcom,lut-row-legend = <0 250 500 1000>;
		qcom,lut-data = <2022 2046 2046>,
				<1151 1962 2024>,
				<680 1864 2008>,
				<51 1548 1970>;
	};

	qcom,rbatt-sf-lut {
		qcom,lut-col-legend = <(-20) 0 25 40 60>;
		qcom,lut-row-legend = <100 95 90 85 80>,
					<75 70 65 60 55>,
					<50 45 40 35 30>,
					<25 20 16 13 11>,
					<10 9 8 7 6>,
					<5 4 3 2 1>,
					<0>;
		qcom,lut-data = <1355 273 100 81 74>,
				<1352 273 100 81 74>,
				<1268 280 102 83 75>,
				<1197 286 106 85 76>,
				<1143 285 110 87 78>,
				<1109 281 116 90 79>,
				<1090 272 124 94 82>,
				<1080 269 134 100 85>,
				<1077 267 133 108 91>,
				<1079 266 111 100 90>,
				<1090 266 101 83 76>,
				<1116 267 101 84 77>,
				<1156 268 103 86 79>,
				<1205 270 103 88 83>,
				<1266 274 106 88 82>,
				<1337 276 108 87 78>,
				<1431 276 107 85 79>,
				<1560 284 104 84 78>,
				<1680 293 99 81 75>,
				<2078 306 99 81 77>,
				<2438 318 100 83 78>,
				<2875 333 102 85 80>,
				<3411 354 104 87 81>,
				<4092 392 108 89 84>,
				<5118 448 116 92 86>,
				<6939 551 121 95 85>,
				<10433 791 120 90 81>,
				<17054 1280 121 93 84>,
				<29375 2077 133 101 92>,
				<52518 3457 173 135 133>,
				<230352 176376 150360 117059 92159>;
	};

	qcom,pc-temp-ocv-lut {
		qcom,lut-col-legend = <(-20) 0 25 40 60>;
		qcom,lut-row-legend = <100 95 90 85 80>,
					<75 70 65 60 55>,
					<50 45 40 35 30>,
					<25 20 16 13 11>,
					<10 9 8 7 6>,
					<5 4 3 2 1>,
					<0>;
		qcom,lut-data = <4328 4328 4322 4318 4310>,
				<4234 4252 4252 4250 4245>,
				<4164 4191 4193 4191 4186>,
				<4098 4132 4137 4135 4131>,
				<4036 4074 4084 4082 4078>,
				<3980 4019 4035 4033 4029>,
				<3932 3967 3990 3989 3985>,
				<3891 3923 3950 3950 3945>,
				<3856 3886 3909 3912 3909>,
				<3825 3855 3862 3868 3867>,
				<3800 3828 3829 3829 3826>,
				<3782 3805 3807 3806 3804>,
				<3768 3786 3789 3789 3786>,
				<3753 3770 3775 3774 3772>,
				<3737 3757 3764 3761 3755>,
				<3718 3740 3753 3746 3734>,
				<3695 3719 3733 3725 3712>,
				<3671 3702 3705 3698 3684>,
				<3650 3691 3677 3668 3656>,
				<3630 3681 3670 3662 3651>,
				<3619 3676 3668 3660 3649>,
				<3605 3670 3665 3658 3647>,
				<3590 3664 3662 3655 3644>,
				<3573 3655 3658 3651 3641>,
				<3553 3643 3652 3647 3635>,
				<3529 3622 3639 3632 3618>,
				<3498 3590 3605 3595 3576>,
				<3460 3543 3547 3535 3519>,
				<3401 3476 3467 3455 3443>,
				<3306 3368 3347 3336 3313>,
				<3000 3000 3000 3000 3000>;
	};
};

