[U-Boot] [PATCH 1/6] exynos: Use common pmic_reg_update() definition
Lukasz Majewski
l.majewski at samsung.com
Wed Oct 2 16:49:20 CEST 2013
Hi Leela,
> This function is used by different Exynos platforms, put it in the
> common file.
>
> Signed-off-by: Vadim Bendebury <vbendeb at chromium.org>
> Signed-off-by: Leela Krishna Amudala <l.krishna at samsung.com>
> Reviewed-by: Doug Anderson <dianders at google.com>
> ---
> board/samsung/common/board.c | 19 -------------------
> drivers/power/power_i2c.c | 19 +++++++++++++++++++
> include/power/pmic.h | 1 +
> 3 files changed, 20 insertions(+), 19 deletions(-)
>
> diff --git a/board/samsung/common/board.c
> b/board/samsung/common/board.c index ce85ddb..87ca9de 100644
> --- a/board/samsung/common/board.c
> +++ b/board/samsung/common/board.c
> @@ -152,25 +152,6 @@ static int board_init_cros_ec_devices(const void
> *blob)
> #if defined(CONFIG_POWER)
> #ifdef CONFIG_POWER_MAX77686
> -static int pmic_reg_update(struct pmic *p, int reg, uint regval)
> -{
> - u32 val;
> - int ret = 0;
> -
> - ret = pmic_reg_read(p, reg, &val);
> - if (ret) {
> - debug("%s: PMIC %d register read failed\n",
> __func__, reg);
> - return -1;
> - }
> - val |= regval;
> - ret = pmic_reg_write(p, reg, val);
> - if (ret) {
> - debug("%s: PMIC %d register write failed\n",
> __func__, reg);
> - return -1;
> - }
> - return 0;
> -}
> -
> static int max77686_init(void)
> {
> struct pmic *p;
> diff --git a/drivers/power/power_i2c.c b/drivers/power/power_i2c.c
> index ac76870..47c606f 100644
> --- a/drivers/power/power_i2c.c
> +++ b/drivers/power/power_i2c.c
> @@ -96,6 +96,25 @@ int pmic_reg_read(struct pmic *p, u32 reg, u32
> *val) return 0;
> }
>
> +int pmic_reg_update(struct pmic *p, int reg, uint regval)
It seems like this function shall be added to pmic_core.c, since it uses
the pmic_reg_{read|write}, which are defined for both, spi and i2c.
> +{
> + u32 val;
> + int ret = 0;
> +
> + ret = pmic_reg_read(p, reg, &val);
> + if (ret) {
> + debug("%s: PMIC %d register read failed\n",
> __func__, reg);
> + return -1;
> + }
> + val |= regval;
> + ret = pmic_reg_write(p, reg, val);
> + if (ret) {
> + debug("%s: PMIC %d register write failed\n",
> __func__, reg);
> + return -1;
> + }
> + return 0;
> +}
> +
> int pmic_probe(struct pmic *p)
> {
> i2c_set_bus_num(p->bus);
> diff --git a/include/power/pmic.h b/include/power/pmic.h
> index 0e7aa31..d17dbdc 100644
> --- a/include/power/pmic.h
> +++ b/include/power/pmic.h
> @@ -83,6 +83,7 @@ int pmic_probe(struct pmic *p);
> int pmic_reg_read(struct pmic *p, u32 reg, u32 *val);
> int pmic_reg_write(struct pmic *p, u32 reg, u32 val);
> int pmic_set_output(struct pmic *p, u32 reg, int ldo, int on);
> +int pmic_reg_update(struct pmic *p, int reg, uint regval);
>
> #define pmic_i2c_addr (p->hw.i2c.addr)
> #define pmic_i2c_tx_num (p->hw.i2c.tx_num)
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
More information about the U-Boot
mailing list