Message ID | 20170119061347.5698-1-jh80.chung@samsung.com |
---|---|
State | Superseded |
Delegated to: | Jaehoon Chung |
Headers | show |
Hi Jaehoon, On 18 January 2017 at 23:13, Jaehoon Chung <jh80.chung@samsung.com> 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> > --- > drivers/power/pmic/Kconfig | 7 +++++ > drivers/power/pmic/Makefile | 1 + > drivers/power/pmic/max8997.c | 61 ++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 69 insertions(+) > create mode 100644 drivers/power/pmic/max8997.c Reviewed-by: Simon Glass <sjg@chromium.org> But please see comments below. > > diff --git a/drivers/power/pmic/Kconfig b/drivers/power/pmic/Kconfig > index 5e244c8..19494fa 100644 > --- a/drivers/power/pmic/Kconfig > +++ b/drivers/power/pmic/Kconfig > @@ -54,6 +54,13 @@ config DM_PMIC_MAX77686 > This config enables implementation of driver-model pmic uclass features > for PMIC MAX77686. The driver implements read/write operations. > > +config DM_PMIC_MAX8997 config PMIC_MAX8997 Since I don't think you have a non-DM option here. > + 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. Can you mention a few details about the device? Number of LDOs, etc.? > + > config DM_PMIC_MAX8998 > bool "Enable Driver Model for PMIC MAX8998" > depends on DM_PMIC > diff --git a/drivers/power/pmic/Makefile b/drivers/power/pmic/Makefile > index b4ac7d2..43f5557 100644 > --- a/drivers/power/pmic/Makefile > +++ b/drivers/power/pmic/Makefile > @@ -7,6 +7,7 @@ > > obj-$(CONFIG_DM_PMIC) += pmic-uclass.o > obj-$(CONFIG_DM_PMIC_MAX77686) += max77686.o > +obj-$(CONFIG_DM_PMIC_MAX8997) += max8997.o > obj-$(CONFIG_DM_PMIC_MAX8998) += max8998.o > obj-$(CONFIG_DM_PMIC_PFUZE100) += pfuze100.o > obj-$(CONFIG_PMIC_S2MPS11) += s2mps11.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> nit: Should go above i2.h [...] Regards, Simon
Hi Simon On 01/26/2017 11:23 PM, Simon Glass wrote: > Hi Jaehoon, > > On 18 January 2017 at 23:13, Jaehoon Chung <jh80.chung@samsung.com> 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> >> --- >> drivers/power/pmic/Kconfig | 7 +++++ >> drivers/power/pmic/Makefile | 1 + >> drivers/power/pmic/max8997.c | 61 ++++++++++++++++++++++++++++++++++++++++++++ >> 3 files changed, 69 insertions(+) >> create mode 100644 drivers/power/pmic/max8997.c > > Reviewed-by: Simon Glass <sjg@chromium.org> > > But please see comments below. > >> >> diff --git a/drivers/power/pmic/Kconfig b/drivers/power/pmic/Kconfig >> index 5e244c8..19494fa 100644 >> --- a/drivers/power/pmic/Kconfig >> +++ b/drivers/power/pmic/Kconfig >> @@ -54,6 +54,13 @@ config DM_PMIC_MAX77686 >> This config enables implementation of driver-model pmic uclass features >> for PMIC MAX77686. The driver implements read/write operations. >> >> +config DM_PMIC_MAX8997 > > config PMIC_MAX8997 > > Since I don't think you have a non-DM option here. Will fix. > > >> + 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. > > Can you mention a few details about the device? Number of LDOs, etc.? Ok. > >> + >> config DM_PMIC_MAX8998 >> bool "Enable Driver Model for PMIC MAX8998" >> depends on DM_PMIC >> diff --git a/drivers/power/pmic/Makefile b/drivers/power/pmic/Makefile >> index b4ac7d2..43f5557 100644 >> --- a/drivers/power/pmic/Makefile >> +++ b/drivers/power/pmic/Makefile >> @@ -7,6 +7,7 @@ >> >> obj-$(CONFIG_DM_PMIC) += pmic-uclass.o >> obj-$(CONFIG_DM_PMIC_MAX77686) += max77686.o >> +obj-$(CONFIG_DM_PMIC_MAX8997) += max8997.o >> obj-$(CONFIG_DM_PMIC_MAX8998) += max8998.o >> obj-$(CONFIG_DM_PMIC_PFUZE100) += pfuze100.o >> obj-$(CONFIG_PMIC_S2MPS11) += s2mps11.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> > > nit: Should go above i2.h Will fix. Best Regards, Jaehoon Chung > > [...] > > Regards, > Simon > > >
diff --git a/drivers/power/pmic/Kconfig b/drivers/power/pmic/Kconfig index 5e244c8..19494fa 100644 --- a/drivers/power/pmic/Kconfig +++ b/drivers/power/pmic/Kconfig @@ -54,6 +54,13 @@ config DM_PMIC_MAX77686 This config enables implementation of driver-model pmic uclass features for PMIC MAX77686. The driver implements read/write operations. +config DM_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. + config DM_PMIC_MAX8998 bool "Enable Driver Model for PMIC MAX8998" depends on DM_PMIC diff --git a/drivers/power/pmic/Makefile b/drivers/power/pmic/Makefile index b4ac7d2..43f5557 100644 --- a/drivers/power/pmic/Makefile +++ b/drivers/power/pmic/Makefile @@ -7,6 +7,7 @@ obj-$(CONFIG_DM_PMIC) += pmic-uclass.o obj-$(CONFIG_DM_PMIC_MAX77686) += max77686.o +obj-$(CONFIG_DM_PMIC_MAX8997) += max8997.o obj-$(CONFIG_DM_PMIC_MAX8998) += max8998.o obj-$(CONFIG_DM_PMIC_PFUZE100) += pfuze100.o obj-$(CONFIG_PMIC_S2MPS11) += s2mps11.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, +};
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> --- drivers/power/pmic/Kconfig | 7 +++++ drivers/power/pmic/Makefile | 1 + drivers/power/pmic/max8997.c | 61 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 drivers/power/pmic/max8997.c