[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