mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 12:25:00 -04:00
fogo charger_ic bring up module
Add cc ic sc89890 support at fogona. Change-Id: I79a636cc2f3e67aab7f4a77ed85e369c9c98a035 Reviewed-on: https://gerrit.mot.com/2690275 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Wei Xu <xuwei9@lenovo.com> Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
707d70b158
commit
afbff129a9
3 changed files with 68 additions and 9 deletions
|
|
@ -21,5 +21,6 @@ LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
|
|||
|
||||
LOCAL_ADDITIONAL_DEPENDENCIES := $(KERNEL_MODULES_OUT)/mmi_discrete_charger_class.ko
|
||||
KBUILD_OPTIONS_GKI += GKI_OBJ_MODULE_DIR=gki
|
||||
KBUILD_OPTIONS += MODULE_KERNEL_VERSION=$(TARGET_KERNEL_VERSION)
|
||||
|
||||
include $(DLKM_DIR)/AndroidKernelModule.mk
|
||||
|
|
|
|||
|
|
@ -1,3 +1,24 @@
|
|||
ifeq ($(strip $(MODULE_KERNEL_VERSION)), 5.15)
|
||||
|
||||
all: modules
|
||||
|
||||
modules:
|
||||
$(MAKE) -C $(KERNEL_SRC) M=$(M) modules $(KBUILD_OPTIONS)
|
||||
|
||||
modules_install:
|
||||
$(MAKE) INSTALL_MOD_STRIP=1 -C $(KERNEL_SRC) M=$(M) modules_install
|
||||
|
||||
%:
|
||||
$(MAKE) -C $(KERNEL_SRC) M=$(M) $@ $(KBUILD_OPTIONS)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.ko *.mod.c *.mod.o *~ .*.cmd Module.symvers
|
||||
rm -rf .tmp_versions
|
||||
|
||||
KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../mmi_discrete_charger/$(GKI_OBJ_MODULE_DIR)/Module.symvers
|
||||
|
||||
else
|
||||
|
||||
KERNEL_SRC ?= /lib/modules/$(shell uname -r)/build
|
||||
|
||||
all:
|
||||
|
|
@ -8,4 +29,4 @@ modules_install:
|
|||
|
||||
clean:
|
||||
$(MAKE) -C $(KERNEL_SRC) M=$(PWD) clean
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -31,9 +31,14 @@
|
|||
#include <linux/seq_file.h>
|
||||
#include <uapi/linux/sched/types.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/iio/consumer.h>
|
||||
#include "bq2589x_reg.h"
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0)
|
||||
#include <linux/qti_power_supply.h>
|
||||
#endif
|
||||
|
||||
#ifdef __indicator_led_en__
|
||||
static struct bq2589x *bq_g;
|
||||
#define TRILED_NUM_MAX 3
|
||||
|
|
@ -1299,13 +1304,21 @@ static int bq2589x_power_supply_get_property(struct power_supply *psy,
|
|||
val->intval = POWER_SUPPLY_USB_TYPE_DCP;
|
||||
break;
|
||||
case 4: /* 100 - Adjustable High Voltage DCP */
|
||||
val->intval = POWER_SUPPLY_TYPE_USB_HVDCP;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0)
|
||||
val->intval = QTI_POWER_SUPPLY_TYPE_USB_HVDCP;
|
||||
#else
|
||||
val->intval = POWER_SUPPLY_TYPE_USB_HVDCP;
|
||||
#endif
|
||||
break;
|
||||
case 5: /* 101 - Unkown Adapter */
|
||||
val->intval = POWER_SUPPLY_USB_TYPE_UNKNOWN;
|
||||
break;
|
||||
case 6: /* 110 - Non-Standard Adapter */
|
||||
val->intval = POWER_SUPPLY_TYPE_USB_FLOAT;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0)
|
||||
val->intval = QTI_POWER_SUPPLY_TYPE_USB_FLOAT;
|
||||
#else
|
||||
val->intval = POWER_SUPPLY_TYPE_USB_FLOAT;
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
val->intval = POWER_SUPPLY_CHARGE_TYPE_UNKNOWN;
|
||||
|
|
@ -1831,7 +1844,11 @@ static int mmi_detected_qc20_hvdcp(struct bq2589x *bq, int *charger_type)
|
|||
|
||||
if (vbus_voltage > MMI_HVDCP2_VOLTAGE_STANDARD) {
|
||||
dev_info(bq->dev, "QC20 charger detected\n");
|
||||
*charger_type = POWER_SUPPLY_TYPE_USB_HVDCP;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0)
|
||||
*charger_type = QTI_POWER_SUPPLY_TYPE_USB_HVDCP;
|
||||
#else
|
||||
*charger_type = POWER_SUPPLY_TYPE_USB_HVDCP;
|
||||
#endif
|
||||
} else {
|
||||
dev_info(bq->dev, "charger type is not HVDCP\n");
|
||||
}
|
||||
|
|
@ -1936,7 +1953,11 @@ static int mmi_detected_qc30_hvdcp(struct bq2589x *bq, int *charger_type)
|
|||
dev_info(bq->dev, "%s vbus voltage now = %d in detected qc30\n", __func__,vbus_voltage);
|
||||
|
||||
if (vbus_voltage > MMI_HVDCP3_VOLTAGE_STANDARD) {
|
||||
*charger_type = POWER_SUPPLY_TYPE_USB_HVDCP_3;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0)
|
||||
*charger_type = QTI_POWER_SUPPLY_TYPE_USB_HVDCP_3;
|
||||
#else
|
||||
*charger_type = POWER_SUPPLY_TYPE_USB_HVDCP_3;
|
||||
#endif
|
||||
dev_info(bq->dev, "%s QC3.0 charger detected\n", __func__);
|
||||
}
|
||||
|
||||
|
|
@ -2193,7 +2214,11 @@ bool qc3p_update_policy(struct bq2589x *chip )
|
|||
}
|
||||
#endif
|
||||
|
||||
static int bq2589x_enable_termination(struct charger_device *chg_dev, bool enable)
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0)
|
||||
int bq2589x_enable_termination(struct charger_device *chg_dev, bool enable)
|
||||
#else
|
||||
static int bq2589x_enable_termination(struct charger_device *chg_dev, bool enable)
|
||||
#endif
|
||||
{
|
||||
struct bq2589x *bq = dev_get_drvdata(&chg_dev->dev);
|
||||
u8 val;
|
||||
|
|
@ -2240,7 +2265,11 @@ static int mmi_hvdcp_detect_kthread(void *param)
|
|||
goto out;
|
||||
}
|
||||
|
||||
if (charger_type != POWER_SUPPLY_TYPE_USB_HVDCP || bq->pd_active)
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0)
|
||||
if (charger_type != QTI_POWER_SUPPLY_TYPE_USB_HVDCP || bq->pd_active)
|
||||
#else
|
||||
if (charger_type != POWER_SUPPLY_TYPE_USB_HVDCP || bq->pd_active)
|
||||
#endif
|
||||
goto out;
|
||||
|
||||
//do qc3.0 detected
|
||||
|
|
@ -2348,7 +2377,11 @@ static void bq2589x_adapter_in_func(struct bq2589x *bq)
|
|||
switch (bq->vbus_type) {
|
||||
case BQ2589X_VBUS_MAXC:
|
||||
dev_info(bq->dev, "%s:HVDCP adapter plugged in\n", __func__);
|
||||
bq->real_charger_type = POWER_SUPPLY_TYPE_USB_HVDCP;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0)
|
||||
bq->real_charger_type = QTI_POWER_SUPPLY_TYPE_USB_HVDCP;
|
||||
#else
|
||||
bq->real_charger_type = POWER_SUPPLY_TYPE_USB_HVDCP;
|
||||
#endif
|
||||
bq->chg_dev->noti.hvdcp_done = true;
|
||||
schedule_delayed_work(&bq->ico_work, 0);
|
||||
break;
|
||||
|
|
@ -2370,7 +2403,11 @@ static void bq2589x_adapter_in_func(struct bq2589x *bq)
|
|||
dev_err(bq->dev, "%s:Unkown adpater plugged in\n", __func__);
|
||||
case BQ2589X_VBUS_NONSTAND:
|
||||
dev_info(bq->dev, "%s:NON STAND plugged in\n", __func__);
|
||||
bq->real_charger_type = POWER_SUPPLY_TYPE_USB_FLOAT;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0)
|
||||
bq->real_charger_type = QTI_POWER_SUPPLY_TYPE_USB_FLOAT;
|
||||
#else
|
||||
bq->real_charger_type = POWER_SUPPLY_TYPE_USB_FLOAT;
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
dev_info(bq->dev, "%s:Other adapter %d plugged in\n", __func__, bq->vbus_type);
|
||||
|
|
|
|||
Loading…
Reference in a new issue