static void smb347_set_charging_state(struct smb_charger_callbacks *ptr,
		int cable_status)
{
	struct smb347_chg_data *chg = container_of(ptr,
			struct smb347_chg_data, callbacks);

	if (cable_status) {
		/* Init smb347 charger */
		smb347_charger_init(chg);

		switch (cable_status) {
		case CABLE_TYPE_AC:
			/* Input current limit : DCIN 1800mA, USBIN HC 1800mA */
			smb347_i2c_write(chg->client,
				SMB347_INPUT_CURRENTLIMIT, 0x66);

			/* CommandB : High-current mode */
			smb347_i2c_write(chg->client, SMB347_COMMAND_B, 0x03);

			pr_info("%s : 1.8A charging enable\n", __func__);
			break;
		case CABLE_TYPE_USB:
			/* CommandB : USB5 */
			smb347_i2c_write(chg->client, SMB347_COMMAND_B, 0x02);
			pr_info("%s : LOW(USB5) charging enable\n", __func__);
			break;
		default:
			/* CommandB : USB1 */
			smb347_i2c_write(chg->client, SMB347_COMMAND_B, 0x00);
			pr_info("%s : LOW(USB1) charging enable\n", __func__);
			break;
		}
	}
}
static void smb347_set_charging_state(int enable, int charging_mode)
{
	struct smb347_chg_data *chg = smb347_chg;
	pr_info("%s : enable(%d), charging_mode(%d)\n",
		__func__, enable, charging_mode);

	if (enable) {
		/* Only for P4C rev0.2, Check vbus for opeartion charger */
		if (!smb347_check_powersource(chg))
			return;

		/* Init smb347 charger */
		smb347_charger_init(chg);

		switch (charging_mode) {
		case CABLE_TYPE_TA:
			/* Input current limit : DCIN 1800mA, USBIN HC 1800mA */
			smb347_i2c_write(chg->client,
				SMB347_INPUT_CURRENTLIMIT, 0x66);

			/* CommandB : High-current mode */
			smb347_i2c_write(chg->client, SMB347_COMMAND_B, 0x03);

			pr_info("%s : 1.8A charging enable\n", __func__);
			break;
		case CABLE_TYPE_DESKDOCK:
			/* Input current limit : DCIN 1500mA, USBIN HC 1500mA */
			smb347_i2c_write(chg->client,
				SMB347_INPUT_CURRENTLIMIT, 0x55);

			/* CommandB : High-current mode */
			smb347_i2c_write(chg->client, SMB347_COMMAND_B, 0x03);
			pr_info("%s : 1.5A charging enable\n", __func__);
			break;
		case CABLE_TYPE_USB:
			/* CommandB : USB5 */
			smb347_i2c_write(chg->client, SMB347_COMMAND_B, 0x02);
			pr_info("%s : LOW(USB5) charging enable\n", __func__);
			break;
		default:
			/* CommandB : USB1 */
			smb347_i2c_write(chg->client, SMB347_COMMAND_B, 0x00);
			pr_info("%s : LOW(USB1) charging enable\n", __func__);
			break;
		}

		smb347_enable_charging(chg);
	} else {
		smb347_disable_charging(chg);
	}

	smb347_test_read();
}