[U-Boot] [PATCH v2 05/11] pmic: dm: Add support for MC34708 for PMIC DM

Simon Glass sjg at chromium.org
Sun May 13 22:01:45 UTC 2018


Hi Lukasz,

On 7 May 2018 at 06:26, Lukasz Majewski <lukma at denx.de> wrote:
> This patch adds support for MC34708 PMIC, to be used with driver model
> (DM).
>
> Signed-off-by: Lukasz Majewski <lukma at denx.de>
>
> ---
>
> 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, lukma at denx.de
> + *
> + * 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.

> +
> +       ret = dm_i2c_write(dev, reg, buf, len);
> +       if (ret)
> +               printf("write error to device: %p register: %#x!", dev, reg);
> +
> +       return ret;
> +}
> +

Regards,
Simon


More information about the U-Boot mailing list