power: add wirelesscharger(WLC) bq51051b driver

Change-Id: I61c4b9c3d648e8f709ec78708271f807ceed1715
diff --git a/drivers/power/pm8921-bms.c b/drivers/power/pm8921-bms.c
index e3e5cca..148b9ff 100644
--- a/drivers/power/pm8921-bms.c
+++ b/drivers/power/pm8921-bms.c
@@ -352,6 +352,25 @@
 	return ret.intval;
 }
 
+#ifdef CONFIG_WIRELESS_CHARGER
+static int wireless_chg_plugged_in(void)
+{
+	union power_supply_propval ret = {0,};
+	static struct power_supply *psy;
+
+	if (psy == NULL) {
+		psy = power_supply_get_by_name("wireless");
+		if (psy == NULL)
+			return 0;
+	}
+
+	if (psy->get_property(psy, POWER_SUPPLY_PROP_ONLINE, &ret))
+		return 0;
+
+	return ret.intval;
+}
+#endif
+
 #define HOLD_OREG_DATA		BIT(1)
 static int pm_bms_lock_output_data(struct pm8921_bms_chip *chip)
 {
@@ -870,6 +889,10 @@
 
 	usb_chg = usb_chg_plugged_in();
 
+#ifdef CONFIG_WIRELESS_CHARGER
+	usb_chg |= wireless_chg_plugged_in();
+#endif
+
 	convert_vbatt_raw_to_uv(the_chip, usb_chg, vbat_raw, vbat_uv);
 	convert_vsense_to_uv(the_chip, vsense_raw, &vsense_uv);
 	*ibat_ua = vsense_uv * 1000 / (int)the_chip->r_sense;
@@ -901,6 +924,10 @@
 	mutex_unlock(&chip->bms_output_lock);
 
 	usb_chg = usb_chg_plugged_in();
+
+#ifdef CONFIG_WIRELESS_CHARGER
+	usb_chg |= wireless_chg_plugged_in();
+#endif
 	convert_vbatt_raw_to_uv(chip, usb_chg,
 			raw->vbatt_for_rbatt_raw, &raw->vbatt_for_rbatt_uv);
 	convert_vbatt_raw_to_uv(chip, usb_chg,
@@ -947,6 +974,10 @@
 
 	usb_chg =  usb_chg_plugged_in();
 
+#ifdef CONFIG_WIRELESS_CHARGER
+	usb_chg |= wireless_chg_plugged_in();
+#endif
+
 	if (chip->prev_last_good_ocv_raw == 0) {
 		chip->prev_last_good_ocv_raw = raw->last_good_ocv_raw;
 		adjust_pon_ocv_raw(chip, raw);
@@ -1692,6 +1723,10 @@
 	voltage = xoadc_reading_to_microvolt(result.adc_code);
 
 	usb_chg = usb_chg_plugged_in();
+
+#ifdef CONFIG_WIRELESS_CHARGER
+	usb_chg |= wireless_chg_plugged_in();
+#endif
 	pr_debug("result 0.625V = 0x%x, voltage = %duV adc_meas = %lld "
 				"usb_chg = %d\n",
 				result.adc_code, voltage, result.measurement,
@@ -2278,6 +2313,10 @@
 	ocv_uv = 0;
 	pm_bms_read_output_data(chip, LAST_GOOD_OCV_VALUE, &ocv_raw);
 	usb_chg = usb_chg_plugged_in();
+
+#ifdef CONFIG_WIRELESS_CHARGER
+	usb_chg |= wireless_chg_plugged_in();
+#endif
 	rc = convert_vbatt_raw_to_uv(chip, usb_chg, ocv_raw, &ocv_uv);
 	if (rc || ocv_uv == 0) {
 		rc = adc_based_ocv(chip, &ocv_uv);