Merge https://gitlab.denx.de/u-boot/custodians/u-boot-samsung
diff --git a/board/samsung/common/misc.c b/board/samsung/common/misc.c
index d48ba7e..b3b1bbc 100644
--- a/board/samsung/common/misc.c
+++ b/board/samsung/common/misc.c
@@ -117,32 +117,33 @@
 #ifdef CONFIG_LCD_MENU
 static int power_key_pressed(u32 reg)
 {
-#if !CONFIG_IS_ENABLED(DM_I2C) /* TODO(maintainer): Convert to driver model */
-	struct pmic *pmic;
+	struct udevice *dev;
+	int ret;
 	u32 status;
 	u32 mask;
 
-	pmic = pmic_get(KEY_PWR_PMIC_NAME);
-	if (!pmic) {
-		printf("%s: Not found\n", KEY_PWR_PMIC_NAME);
+	if (IS_ENABLED(CONFIG_TARGET_TRATS))
+		ret = pmic_get("max8997-pmic", &dev);
+	else if (IS_ENABLED(CONFIG_TARGET_TRATS2))
+		ret = pmic_get("max77686-pmic", &dev);
+	else if (IS_ENABLED(CONFIG_TARGET_S5PC210_UNIVERSAL))
+		ret = pmic_get("max8998-pmic", &dev);
+	else
 		return 0;
-	}
 
-	if (pmic_probe(pmic))
-		return 0;
+	if (ret)
+		return ret;
 
 	if (reg == KEY_PWR_STATUS_REG)
 		mask = KEY_PWR_STATUS_MASK;
 	else
 		mask = KEY_PWR_INTERRUPT_MASK;
 
-	if (pmic_reg_read(pmic, reg, &status))
-		return 0;
+	status = pmic_reg_read(dev, reg);
+	if (status < 0)
+		return status;
 
 	return !!(status & mask);
-#else
-	return 0;
-#endif
 }
 
 static int key_pressed(int key)
diff --git a/board/samsung/espresso7420/MAINTAINERS b/board/samsung/espresso7420/MAINTAINERS
index e3b2394..9145ad4 100644
--- a/board/samsung/espresso7420/MAINTAINERS
+++ b/board/samsung/espresso7420/MAINTAINERS
@@ -1,5 +1,5 @@
 ESPRESSO7420 Board
-M:	Thomas Abraham <thomas.ab@samsung.com>
+M:	Minkyu Kang <mk7.kang@samsung.com>
 S:	Maintained
 F:	board/samsung/espresso7420/
 F:	include/configs/espresso7420.h
diff --git a/board/samsung/goni/MAINTAINERS b/board/samsung/goni/MAINTAINERS
index 248ec3c..7643f9c 100644
--- a/board/samsung/goni/MAINTAINERS
+++ b/board/samsung/goni/MAINTAINERS
@@ -1,5 +1,5 @@
 GONI BOARD
-M:	Robert Baldyga <r.baldyga@samsung.com>
+M:	Jaehoon Chung <jh80.chung@samsung.com>
 S:	Maintained
 F:	board/samsung/goni/
 F:	include/configs/s5p_goni.h
diff --git a/board/samsung/origen/MAINTAINERS b/board/samsung/origen/MAINTAINERS
index 8bf373e..8fb8f81 100644
--- a/board/samsung/origen/MAINTAINERS
+++ b/board/samsung/origen/MAINTAINERS
@@ -1,5 +1,5 @@
 ORIGEN BOARD
-M:	Chander Kashyap <k.chander@samsung.com>
+M:	Minkyu Kang <mk7.kang@samsung.com>
 S:	Maintained
 F:	board/samsung/origen/
 F:	include/configs/origen.h
diff --git a/board/samsung/smdk5250/MAINTAINERS b/board/samsung/smdk5250/MAINTAINERS
index cde966f..c60b6f8 100644
--- a/board/samsung/smdk5250/MAINTAINERS
+++ b/board/samsung/smdk5250/MAINTAINERS
@@ -1,12 +1,12 @@
 SMDK5250 BOARD
-M:	Chander Kashyap <k.chander@samsung.com>
+M:	Jaehoon Chung <jh80.chung@samsung.com>
 S:	Maintained
 F:	board/samsung/smdk5250/
 F:	include/configs/smdk5250.h
 F:	configs/smdk5250_defconfig
 
 SNOW BOARD
-M:	Akshay Saraswat <akshay.s@samsung.com>
+M:	Jaehoon Chung <jh80.chung@samsung.com>
 S:	Maintained
 F:	include/configs/snow.h
 F:	configs/snow_defconfig
diff --git a/board/samsung/smdk5420/MAINTAINERS b/board/samsung/smdk5420/MAINTAINERS
index 31c0036..217ff71 100644
--- a/board/samsung/smdk5420/MAINTAINERS
+++ b/board/samsung/smdk5420/MAINTAINERS
@@ -1,5 +1,5 @@
 SMDK5420 BOARD
-M:	Akshay Saraswat <akshay.s@samsung.com>
+M:	Jaehoon Chung <jh80.chung@samsung.com>
 S:	Maintained
 F:	board/samsung/smdk5420/
 F:	include/configs/peach-pit.h
diff --git a/board/samsung/smdkv310/MAINTAINERS b/board/samsung/smdkv310/MAINTAINERS
index 1e058cb..4fa1531 100644
--- a/board/samsung/smdkv310/MAINTAINERS
+++ b/board/samsung/smdkv310/MAINTAINERS
@@ -1,5 +1,5 @@
 SMDKV310 BOARD
-M:	Chander Kashyap <k.chander@samsung.com>
+M:	Jaehoon Chung <jh80.chung@samsung.com>
 S:	Maintained
 F:	board/samsung/smdkv310/
 F:	include/configs/smdkv310.h
diff --git a/drivers/power/pmic/Makefile b/drivers/power/pmic/Makefile
index 2b2a6dd..7b4c0f0 100644
--- a/drivers/power/pmic/Makefile
+++ b/drivers/power/pmic/Makefile
@@ -31,8 +31,6 @@
 
 obj-$(CONFIG_POWER_LTC3676) += pmic_ltc3676.o
 obj-$(CONFIG_POWER_MAX77696) += pmic_max77696.o
-obj-$(CONFIG_POWER_MAX8998) += pmic_max8998.o
-obj-$(CONFIG_POWER_MAX8997) += pmic_max8997.o
 obj-$(CONFIG_POWER_MUIC_MAX8997) += muic_max8997.o
 obj-$(CONFIG_POWER_PCA9450) += pmic_pca9450.o
 obj-$(CONFIG_POWER_PFUZE100) += pmic_pfuze100.o
diff --git a/drivers/power/pmic/pmic_max8997.c b/drivers/power/pmic/pmic_max8997.c
deleted file mode 100644
index 1d834ff7..0000000
--- a/drivers/power/pmic/pmic_max8997.c
+++ /dev/null
@@ -1,107 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- *  Copyright (C) 2012 Samsung Electronics
- *  Lukasz Majewski <l.majewski@samsung.com>
- */
-
-#include <common.h>
-#include <log.h>
-#include <power/pmic.h>
-#include <power/max8997_pmic.h>
-#include <i2c.h>
-#include <errno.h>
-
-unsigned char max8997_reg_ldo(int uV)
-{
-	unsigned char ret;
-	if (uV <= 800000)
-		return 0;
-	if (uV >= 3950000)
-		return MAX8997_LDO_MAX_VAL;
-	ret = (uV - 800000) / 50000;
-	if (ret > MAX8997_LDO_MAX_VAL) {
-		printf("MAX8997 LDO SETTING ERROR (%duV) -> %u\n", uV, ret);
-		ret = MAX8997_LDO_MAX_VAL;
-	}
-
-	return ret;
-}
-
-static int pmic_charger_state(struct pmic *p, int state, int current)
-{
-	unsigned char fc;
-	u32 val = 0;
-
-	if (pmic_probe(p))
-		return -ENODEV;
-
-	if (state == PMIC_CHARGER_DISABLE) {
-		puts("Disable the charger.\n");
-		pmic_reg_read(p, MAX8997_REG_MBCCTRL2, &val);
-		val &= ~(MBCHOSTEN | VCHGR_FC);
-		pmic_reg_write(p, MAX8997_REG_MBCCTRL2, val);
-
-		return -ENOTSUPP;
-	}
-
-	if (current < CHARGER_MIN_CURRENT || current > CHARGER_MAX_CURRENT) {
-		printf("%s: Wrong charge current: %d [mA]\n",
-		       __func__, current);
-		return -EINVAL;
-	}
-
-	fc = (current - CHARGER_MIN_CURRENT) / CHARGER_CURRENT_RESOLUTION;
-	fc = fc & 0xf; /* up to 950 mA */
-
-	printf("Enable the charger @ %d [mA]\n", fc * CHARGER_CURRENT_RESOLUTION
-	       + CHARGER_MIN_CURRENT);
-
-	val = fc | MBCICHFCSET;
-	pmic_reg_write(p, MAX8997_REG_MBCCTRL4, val);
-
-	pmic_reg_read(p, MAX8997_REG_MBCCTRL2, &val);
-	val = MBCHOSTEN | VCHGR_FC; /* enable charger & fast charge */
-	pmic_reg_write(p, MAX8997_REG_MBCCTRL2, val);
-
-	return 0;
-}
-
-static int pmic_charger_bat_present(struct pmic *p)
-{
-	u32 val;
-
-	if (pmic_probe(p))
-		return -ENODEV;
-
-	pmic_reg_read(p, MAX8997_REG_STATUS4, &val);
-
-	return !(val & DETBAT);
-}
-
-static struct power_chrg power_chrg_pmic_ops = {
-	.chrg_bat_present = pmic_charger_bat_present,
-	.chrg_state = pmic_charger_state,
-};
-
-int pmic_init(unsigned char bus)
-{
-	static const char name[] = "MAX8997_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 = MAX8997_I2C_ADDR;
-	p->hw.i2c.tx_num = 1;
-	p->bus = bus;
-
-	p->chrg = &power_chrg_pmic_ops;
-	return 0;
-}
diff --git a/drivers/power/pmic/pmic_max8998.c b/drivers/power/pmic/pmic_max8998.c
deleted file mode 100644
index f058238..0000000
--- a/drivers/power/pmic/pmic_max8998.c
+++ /dev/null
@@ -1,32 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- *  Copyright (C) 2011 Samsung Electronics
- *  Lukasz Majewski <l.majewski@samsung.com>
- */
-
-#include <common.h>
-#include <power/pmic.h>
-#include <power/max8998_pmic.h>
-#include <errno.h>
-
-int pmic_init(unsigned char bus)
-{
-	static const char name[] = "MAX8998_PMIC";
-	struct pmic *p = pmic_alloc();
-
-	if (!p) {
-		printf("%s: POWER allocation error!\n", __func__);
-		return -ENOMEM;
-	}
-
-	puts("Board PMIC init\n");
-
-	p->name = name;
-	p->interface = PMIC_I2C;
-	p->number_of_regs = PMIC_NUM_OF_REGS;
-	p->hw.i2c.addr = MAX8998_I2C_ADDR;
-	p->hw.i2c.tx_num = 1;
-	p->bus = bus;
-
-	return 0;
-}
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index 79ad0a1..24413d1 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -722,6 +722,13 @@
 	  This uses the ns16550 driver, converting the platdata from of-platdata
 	  to the ns16550 format.
 
+config S5P_SERIAL
+	bool "Support for Samsung S5P UART"
+	depends on ARCH_EXYNOS || ARCH_S5PC1XX
+	default y
+	help
+	  Select this to enable Samsung S5P UART support.
+
 config SANDBOX_SERIAL
 	bool "Sandbox UART support"
 	depends on SANDBOX
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
index 0c3810f..92bcb30 100644
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -41,7 +41,7 @@
 obj-$(CONFIG_LPC32XX_HSUART) += lpc32xx_hsuart.o
 obj-$(CONFIG_MCFUART) += serial_mcf.o
 obj-$(CONFIG_SYS_NS16550) += ns16550.o
-obj-$(CONFIG_S5P) += serial_s5p.o
+obj-$(CONFIG_S5P_SERIAL) += serial_s5p.o
 obj-$(CONFIG_MXC_UART) += serial_mxc.o
 obj-$(CONFIG_PXA_SERIAL) += serial_pxa.o
 obj-$(CONFIG_MESON_SERIAL) += serial_meson.o