On Mon, 14 May 2018 08:01:45 +1000 Simon Glass <[email protected]> wrote:
> Hi Lukasz, > > On 7 May 2018 at 06:26, Lukasz Majewski <[email protected]> wrote: > > This patch adds support for MC34708 PMIC, to be used with driver > > model (DM). > > > > Signed-off-by: Lukasz Majewski <[email protected]> > > > > --- > > > > Changes in v2: > > - Support for uclass private data with trasfer length > > > > drivers/power/pmic/Kconfig | 7 +++ > > drivers/power/pmic/Makefile | 1 + > > drivers/power/pmic/mc34708.c | 101 > > +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 > > insertions(+) create mode 100644 drivers/power/pmic/mc34708.c > > > > diff --git a/drivers/power/pmic/Kconfig b/drivers/power/pmic/Kconfig > > index 40ab9f7fa5..d504c28b77 100644 > > --- a/drivers/power/pmic/Kconfig > > +++ b/drivers/power/pmic/Kconfig > > @@ -69,6 +69,13 @@ config DM_PMIC_MAX8998 > > This config enables implementation of driver-model pmic > > uclass features for PMIC MAX8998. The driver implements read/write > > operations. > > > > +config DM_PMIC_MC34708 > > + bool "Enable Driver Model for PMIC MC34708" > > + depends on DM_PMIC > > + help > > + This config enables implementation of driver-model pmic > > uclass features > > + for PMIC MC34708. The driver implements read/write > > operations. + > > config PMIC_MAX8997 > > bool "Enable Driver Model for PMIC MAX8997" > > depends on DM_PMIC > > diff --git a/drivers/power/pmic/Makefile > > b/drivers/power/pmic/Makefile index ad32068b3a..418b5e7aee 100644 > > --- a/drivers/power/pmic/Makefile > > +++ b/drivers/power/pmic/Makefile > > @@ -8,6 +8,7 @@ > > obj-$(CONFIG_DM_PMIC) += pmic-uclass.o > > obj-$(CONFIG_DM_PMIC_MAX77686) += max77686.o > > obj-$(CONFIG_DM_PMIC_MAX8998) += max8998.o > > +obj-$(CONFIG_DM_PMIC_MC34708) += mc34708.o > > obj-$(CONFIG_$(SPL_)DM_PMIC_PFUZE100) += pfuze100.o > > obj-$(CONFIG_PMIC_S2MPS11) += s2mps11.o > > obj-$(CONFIG_DM_PMIC_SANDBOX) += sandbox.o i2c_pmic_emul.o > > diff --git a/drivers/power/pmic/mc34708.c > > b/drivers/power/pmic/mc34708.c new file mode 100644 > > index 0000000000..d9d1a41802 > > --- /dev/null > > +++ b/drivers/power/pmic/mc34708.c > > @@ -0,0 +1,101 @@ > > +/* > > + * Copyright (C) 2018 > > + * Lukasz Majewski, DENX Software Engineering, [email protected] > > + * > > + * SPDX-License-Identifier: GPL-2.0+ > > + */ > > + > > +#include <common.h> > > +#include <dm.h> > > +#include <errno.h> > > +#include <i2c.h> > > +#include <power/pmic.h> > > should be at end > > > +#include <fsl_pmic.h> > > should be above i2c.h > > > + > > +DECLARE_GLOBAL_DATA_PTR; > > + > > +static int mc34708_reg_count(struct udevice *dev) > > +{ > > + return PMIC_NUM_OF_REGS; > > +} > > + > > +static int mc34708_write(struct udevice *dev, uint reg, const u8 > > *buff, > > + int len) > > +{ > > + u8 buf[3] = { 0 }; > > + int ret; > > + > > + if (len != MC34708_TRANSFER_SIZE) > > + return -EINVAL; > > + > > + buf[0] = buff[2]; > > + buf[1] = buff[1]; > > + buf[2] = buff[0]; > > What is going on here? It deserves a comment at least. This is the data endianess conversion for this chip (as described in earlier reply). The upper layer (pmic-uclass) will receive data formatted in little endian. This unification can be leveraged with pmic_read/write generic functions (as it is done latter). > > > + > > + ret = dm_i2c_write(dev, reg, buf, len); > > + if (ret) > > + printf("write error to device: %p register: %#x!", > > dev, reg); + > > + return ret; > > +} > > + > > Regards, > Simon Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: [email protected]
pgpFjsvCUg0kd.pgp
Description: OpenPGP digital signature
_______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

