
Hi,
On 02/02/2017 05:04 PM, Jaehoon Chung wrote:
Add the max8997 controller for Driver model. Exynos4210 is using max8997 pmic controller. (pmic_max8997.c should be deprecated.)
Signed-off-by: Jaehoon Chung jh80.chung@samsung.com Reviewed-by: Simon Glass sjg@chromium.org
Applied on pmic branch of u-boot-mmc. Thanks!
Best Regards, Jaehoon Chung
Changelog on V2:
- Add the descirption in more detail
- Change from DM_PMIC_MAX8997 to PMIC_MAX8997
- Fixes header file ordering
drivers/power/pmic/Kconfig | 15 +++++++++++ drivers/power/pmic/Makefile | 1 + drivers/power/pmic/max8997.c | 61 ++++++++++++++++++++++++++++++++++++++++++++ drivers/power/pmic/max8998.c | 2 +- 4 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 drivers/power/pmic/max8997.c
diff --git a/drivers/power/pmic/Kconfig b/drivers/power/pmic/Kconfig index e7cc405..03fea07 100644 --- a/drivers/power/pmic/Kconfig +++ b/drivers/power/pmic/Kconfig @@ -61,6 +61,21 @@ config DM_PMIC_MAX8998 This config enables implementation of driver-model pmic uclass features for PMIC MAX8998. The driver implements read/write operations.
+config PMIC_MAX8997
- bool "Enable Driver Model for PMIC MAX8997"
- depends on DM_PMIC
- ---help---
- This config enables implementation of driver-model pmic uclass features
- for PMIC MAX8997. The driver implements read/write operations.
- This is a Power Management IC with RTC, Fuel Gauge, MUIC control on Chip.
- 21x LDOs
- 12x GPIOs
- Haptic Motor driver
- RTC with two alarms
- Fueal Gauge and One backup battery charger
- MUIC
- Others
config PMIC_PM8916 bool "Enable Driver Model for Qualcomm PM8916 PMIC" depends on DM_PMIC diff --git a/drivers/power/pmic/Makefile b/drivers/power/pmic/Makefile index 8615939..40240c7 100644 --- a/drivers/power/pmic/Makefile +++ b/drivers/power/pmic/Makefile @@ -12,6 +12,7 @@ obj-$(CONFIG_DM_PMIC_PFUZE100) += pfuze100.o obj-$(CONFIG_PMIC_S2MPS11) += s2mps11.o obj-$(CONFIG_DM_PMIC_SANDBOX) += sandbox.o i2c_pmic_emul.o obj-$(CONFIG_PMIC_ACT8846) += act8846.o +obj-$(CONFIG_PMIC_MAX8997) += max8997.o obj-$(CONFIG_PMIC_PM8916) += pm8916.o obj-$(CONFIG_PMIC_RK808) += rk808.o obj-$(CONFIG_PMIC_RN5T567) += rn5t567.o diff --git a/drivers/power/pmic/max8997.c b/drivers/power/pmic/max8997.c new file mode 100644 index 0000000..f749d7d --- /dev/null +++ b/drivers/power/pmic/max8997.c @@ -0,0 +1,61 @@ +/*
- Copyright (C) 2016 Samsung Electronics
- Jaehoon Chung jh80.chung@samsung.com
- SPDX-License-Identifier: GPL-2.0+
- */
+#include <common.h> +#include <dm.h> +#include <i2c.h> +#include <power/pmic.h> +#include <power/max8997_pmic.h> +#include <errno.h>
+DECLARE_GLOBAL_DATA_PTR;
+static int max8997_reg_count(struct udevice *dev) +{
- return PMIC_NUM_OF_REGS;
+}
+static int max8997_write(struct udevice *dev, uint reg, const uint8_t *buff,
int len)
+{
- int ret;
- ret = dm_i2c_write(dev, reg, buff, len);
- if (ret)
error("write error to device: %p register: %#x!", dev, reg);
- return ret;
+}
+static int max8997_read(struct udevice *dev, uint reg, uint8_t *buff, int len) +{
- int ret;
- ret = dm_i2c_read(dev, reg, buff, len);
- if (ret)
error("read error from device: %p register: %#x!", dev, reg);
- return ret;
+}
+static struct dm_pmic_ops max8997_ops = {
- .reg_count = max8997_reg_count,
- .read = max8997_read,
- .write = max8997_write,
+};
+static const struct udevice_id max8997_ids[] = {
- { .compatible = "maxim,max8997" },
- { },
+};
+U_BOOT_DRIVER(pmic_max8997) = {
- .name = "max8997_pmic",
- .id = UCLASS_PMIC,
- .of_match = max8997_ids,
- .ops = &max8997_ops,
+}; diff --git a/drivers/power/pmic/max8998.c b/drivers/power/pmic/max8998.c index 3baa8da..7c4773c 100644 --- a/drivers/power/pmic/max8998.c +++ b/drivers/power/pmic/max8998.c @@ -7,10 +7,10 @@
#include <common.h> #include <dm.h> +#include <errno.h> #include <i2c.h> #include <power/pmic.h> #include <power/max8998_pmic.h> -#include <errno.h>
DECLARE_GLOBAL_DATA_PTR;