diff --git a/drivers/power/mfd/Makefile b/drivers/power/mfd/Makefile
new file mode 100644
index 0000000..76a05da
--- /dev/null
+++ b/drivers/power/mfd/Makefile
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2013 Samsung Electronics
+# Piotr Wilczek <p.wilczek@samsung.com>
+#
+# SPDX-License-Identifier:	GPL-2.0+
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	:= $(obj)libmfd.o
+
+COBJS-$(CONFIG_POWER_PMIC_MAX77693) += pmic_max77693.o
+COBJS-$(CONFIG_POWER_MUIC_MAX77693) += muic_max77693.o
+COBJS-$(CONFIG_POWER_FG_MAX77693) += fg_max77693.o
+
+COBJS	:= $(COBJS-y)
+SRCS	:= $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+
+all:	$(LIB)
+
+$(LIB):	$(obj).depend $(OBJS)
+	$(call cmd_link_o_target, $(OBJS))
+
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+########################################################################
diff --git a/drivers/power/mfd/fg_max77693.c b/drivers/power/mfd/fg_max77693.c
new file mode 100644
index 0000000..4519fed
--- /dev/null
+++ b/drivers/power/mfd/fg_max77693.c
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2013 Samsung Electronics
+ * Piotr Wilczek <p.wilczek@samsung.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <power/pmic.h>
+#include <power/max77693_fg.h>
+#include <i2c.h>
+#include <power/power_chrg.h>
+#include <power/battery.h>
+#include <power/fg_battery_cell_params.h>
+#include <errno.h>
+
+static int max77693_get_vcell(u32 *vcell)
+{
+	u16 value;
+	u8 ret;
+
+	ret = i2c_read(MAX77693_FUEL_I2C_ADDR, MAX77693_VCELL, 1,
+		       (u8 *)&value, 2);
+	if (ret)
+		return ret;
+
+	*vcell = (u32)(value >> 3);
+	*vcell = *vcell * 625;
+
+	return 0;
+}
+
+static int max77693_get_soc(u32 *soc)
+{
+	u16 value;
+	u8 ret;
+
+	ret = i2c_read(MAX77693_FUEL_I2C_ADDR, MAX77693_VFSOC, 1,
+		       (u8 *)&value, 2);
+	if (ret)
+		return ret;
+
+	*soc = (u32)(value >> 8);
+
+	return 0;
+}
+
+static int power_update_battery(struct pmic *p, struct pmic *bat)
+{
+	struct power_battery *pb = bat->pbat;
+	int ret;
+
+	if (pmic_probe(p)) {
+		puts("Can't find max77693 fuel gauge\n");
+		return -1;
+	}
+
+	ret = max77693_get_soc(&pb->bat->state_of_chrg);
+	if (ret)
+		return ret;
+
+	max77693_get_vcell(&pb->bat->voltage_uV);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+
+static int power_check_battery(struct pmic *p, struct pmic *bat)
+{
+	struct power_battery *pb = bat->pbat;
+	unsigned int val;
+	int ret = 0;
+
+	if (pmic_probe(p)) {
+		puts("Can't find max77693 fuel gauge\n");
+		return -1;
+	}
+
+	ret = pmic_reg_read(p, MAX77693_STATUS, &val);
+	if (ret)
+		return ret;
+	debug("fg status: 0x%x\n", val);
+
+	ret = pmic_reg_read(p, MAX77693_VERSION, &pb->bat->version);
+	if (ret)
+		return ret;
+
+	ret = power_update_battery(p, bat);
+	if (ret)
+		return ret;
+	debug("fg ver: 0x%x\n", pb->bat->version);
+	printf("BAT: state_of_charge(SOC):%d%%\n",
+	       pb->bat->state_of_chrg);
+
+	printf("     voltage: %d.%6.6d [V] (expected to be %d [mAh])\n",
+	       pb->bat->voltage_uV / 1000000,
+	       pb->bat->voltage_uV % 1000000,
+	       pb->bat->capacity);
+
+	if (pb->bat->voltage_uV > 3850000)
+		pb->bat->state = EXT_SOURCE;
+	else if (pb->bat->voltage_uV < 3600000 || pb->bat->state_of_chrg < 5)
+		pb->bat->state = CHARGE;
+	else
+		pb->bat->state = NORMAL;
+
+	return 0;
+}
+
+static struct power_fg power_fg_ops = {
+	.fg_battery_check = power_check_battery,
+	.fg_battery_update = power_update_battery,
+};
+
+int power_fg_init(unsigned char bus)
+{
+	static const char name[] = "MAX77693_FG";
+	struct pmic *p = pmic_alloc();
+
+	if (!p) {
+		printf("%s: POWER allocation error!\n", __func__);
+		return -ENOMEM;
+	}
+
+	debug("Board Fuel Gauge init\n");
+
+	p->name = name;
+	p->interface = PMIC_I2C;
+	p->number_of_regs = FG_NUM_OF_REGS;
+	p->hw.i2c.addr = MAX77693_FUEL_I2C_ADDR;
+	p->hw.i2c.tx_num = 2;
+	p->sensor_byte_order = PMIC_SENSOR_BYTE_ORDER_BIG;
+	p->bus = bus;
+
+	p->fg = &power_fg_ops;
+
+	return 0;
+}
diff --git a/drivers/power/mfd/muic_max77693.c b/drivers/power/mfd/muic_max77693.c
new file mode 100644
index 0000000..e71012d
--- /dev/null
+++ b/drivers/power/mfd/muic_max77693.c
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2013 Samsung Electronics
+ * Piotr Wilczek <p.wilczek@samsung.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <power/pmic.h>
+#include <power/power_chrg.h>
+#include <power/max77693_muic.h>
+#include <i2c.h>
+#include <errno.h>
+
+static int power_chrg_get_type(struct pmic *p)
+{
+	unsigned int val;
+	unsigned int charge_type, charger;
+
+	/* if probe failed, return cable none */
+	if (pmic_probe(p))
+		return CHARGER_NO;
+
+	pmic_reg_read(p, MAX77693_MUIC_STATUS2, &val);
+
+	charge_type = val & MAX77693_MUIC_CHG_MASK;
+
+	switch (charge_type) {
+	case MAX77693_MUIC_CHG_NO:
+		charger = CHARGER_NO;
+		break;
+	case MAX77693_MUIC_CHG_USB:
+	case MAX77693_MUIC_CHG_USB_D:
+		charger = CHARGER_USB;
+		break;
+	case MAX77693_MUIC_CHG_TA:
+	case MAX77693_MUIC_CHG_TA_1A:
+		charger = CHARGER_TA;
+		break;
+	case MAX77693_MUIC_CHG_TA_500:
+		charger = CHARGER_TA_500;
+		break;
+	default:
+		charger = CHARGER_UNKNOWN;
+		break;
+	}
+
+	return charger;
+}
+
+static struct power_chrg power_chrg_muic_ops = {
+	.chrg_type = power_chrg_get_type,
+};
+
+int power_muic_init(unsigned int bus)
+{
+	static const char name[] = "MAX77693_MUIC";
+	struct pmic *p = pmic_alloc();
+
+	if (!p) {
+		printf("%s: POWER allocation error!\n", __func__);
+		return -ENOMEM;
+	}
+
+	debug("Board Micro USB Interface Controller init\n");
+
+	p->name = name;
+	p->interface = PMIC_I2C;
+	p->number_of_regs = MUIC_NUM_OF_REGS;
+	p->hw.i2c.addr = MAX77693_MUIC_I2C_ADDR;
+	p->hw.i2c.tx_num = 1;
+	p->bus = bus;
+
+	p->chrg = &power_chrg_muic_ops;
+
+	return 0;
+}
diff --git a/drivers/power/mfd/pmic_max77693.c b/drivers/power/mfd/pmic_max77693.c
new file mode 100644
index 0000000..1a4416b
--- /dev/null
+++ b/drivers/power/mfd/pmic_max77693.c
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2013 Samsung Electronics
+ * Piotr Wilczek <p.wilczek@samsung.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <power/pmic.h>
+#include <power/max77693_pmic.h>
+#include <i2c.h>
+#include <errno.h>
+
+static int max77693_charger_state(struct pmic *p, int state, int current)
+{
+	unsigned int val;
+
+	if (pmic_probe(p))
+		return -1;
+
+	/* unlock write capability */
+	val = MAX77693_CHG_UNLOCK;
+	pmic_reg_write(p, MAX77693_CHG_CNFG_06, val);
+
+	if (state == CHARGER_DISABLE) {
+		puts("Disable the charger.\n");
+		pmic_reg_read(p, MAX77693_CHG_CNFG_00, &val);
+		val &= ~0x01;
+		pmic_reg_write(p, MAX77693_CHG_CNFG_00, val);
+		return -1;
+	}
+
+	if (current < CHARGER_MIN_CURRENT || current > CHARGER_MAX_CURRENT) {
+		printf("%s: Wrong charge current: %d [mA]\n",
+		       __func__, current);
+		return -1;
+	}
+
+	/* set charging current */
+	pmic_reg_read(p, MAX77693_CHG_CNFG_02, &val);
+	val &= ~MAX77693_CHG_CC;
+	val |= current * 10 / 333;	/* 0.1A/3 steps */
+	pmic_reg_write(p, MAX77693_CHG_CNFG_02, val);
+
+	/* enable charging */
+	val = MAX77693_CHG_MODE_ON;
+	pmic_reg_write(p, MAX77693_CHG_CNFG_00, val);
+
+	/* check charging current */
+	pmic_reg_read(p, MAX77693_CHG_CNFG_02, &val);
+	val &= 0x3f;
+	printf("Enable the charger @ %d [mA]\n", val * 333 / 10);
+
+	return 0;
+}
+
+static int max77693_charger_bat_present(struct pmic *p)
+{
+	unsigned int val;
+
+	if (pmic_probe(p))
+		return -1;
+
+	pmic_reg_read(p, MAX77693_CHG_INT_OK, &val);
+
+	return !(val & MAX77693_CHG_DETBAT);
+}
+
+static struct power_chrg power_chrg_pmic_ops = {
+	.chrg_bat_present = max77693_charger_bat_present,
+	.chrg_state = max77693_charger_state,
+};
+
+int pmic_init_max77693(unsigned char bus)
+{
+	static const char name[] = "MAX77693_PMIC";
+	struct pmic *p = pmic_alloc();
+
+	if (!p) {
+		printf("%s: POWER allocation error!\n", __func__);
+		return -ENOMEM;
+	}
+
+	debug("Board PMIC init\n");
+
+	p->name = name;
+	p->interface = PMIC_I2C;
+	p->number_of_regs = PMIC_NUM_OF_REGS;
+	p->hw.i2c.addr = MAX77693_PMIC_I2C_ADDR;
+	p->hw.i2c.tx_num = 1;
+	p->bus = bus;
+
+	p->chrg = &power_chrg_pmic_ops;
+
+	return 0;
+}
