All of lore.kernel.org
 help / color / mirror / Atom feed
From: Przemyslaw Marczak <p.marczak@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 39/54] dm: pmic: Add functions to adjust PMIC registers
Date: Wed, 01 Jul 2015 11:44:30 +0200	[thread overview]
Message-ID: <5593B67E.1050106@samsung.com> (raw)
In-Reply-To: <1435095556-15924-40-git-send-email-sjg@chromium.org>

Hello Simon,

On 06/23/2015 11:39 PM, Simon Glass wrote:
> It is a common requirement to update some PMIC registers. Provide some
> simple convenience functions to do this.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
> Changes in v3: None
> Changes in v2: None
>
>   drivers/power/pmic/pmic-uclass.c | 32 ++++++++++++++++++++++++++++++++
>   include/power/pmic.h             | 34 ++++++++++++++++++++++++++++++++++
>   2 files changed, 66 insertions(+)
>
> diff --git a/drivers/power/pmic/pmic-uclass.c b/drivers/power/pmic/pmic-uclass.c
> index 40b5135..dbab3e3 100644
> --- a/drivers/power/pmic/pmic-uclass.c
> +++ b/drivers/power/pmic/pmic-uclass.c
> @@ -139,6 +139,38 @@ int pmic_write(struct udevice *dev, uint reg, const uint8_t *buffer, int len)
>   	return ops->write(dev, reg, buffer, len);
>   }
>
> +int pmic_reg_read(struct udevice *dev, uint reg)
> +{
> +	u8 byte;
> +	int ret;
> +
> +	ret = pmic_read(dev, reg, &byte, 1);
> +	debug("%s: reg=%x, value=%x\n", __func__, reg, byte);
> +
> +	return ret ? ret : byte;
> +}
> +
> +int pmic_reg_write(struct udevice *dev, uint reg, uint value)
> +{
> +	u8 byte = value;
> +
> +	debug("%s: reg=%x, value=%x\n", __func__, reg, value);
> +	return pmic_read(dev, reg, &byte, 1);
> +}
> +
> +int pmic_clrsetbits(struct udevice *dev, uint reg, uint clr, uint set)
> +{
> +	u8 byte;
> +	int ret;
> +
> +	ret = pmic_reg_read(dev, reg);
> +	if (ret < 0)
> +		return ret;
> +	byte = (ret & ~clr) | set;
> +
> +	return pmic_reg_write(dev, reg, byte);
> +}
> +
>   UCLASS_DRIVER(pmic) = {
>   	.id		= UCLASS_PMIC,
>   	.name		= "pmic",
> diff --git a/include/power/pmic.h b/include/power/pmic.h
> index eb152ef..6ba4b6e 100644
> --- a/include/power/pmic.h
> +++ b/include/power/pmic.h
> @@ -264,6 +264,40 @@ int pmic_reg_count(struct udevice *dev);
>    */
>   int pmic_read(struct udevice *dev, uint reg, uint8_t *buffer, int len);
>   int pmic_write(struct udevice *dev, uint reg, const uint8_t *buffer, int len);
> +
> +/**
> + * pmic_reg_read() - read a PMIC register value
> + *
> + * @dev:	PMIC device to read
> + * @reg:	Register to read
> + * @return value read on success or negative value of errno.
> + */
> +int pmic_reg_read(struct udevice *dev, uint reg);
> +
> +/**
> + * pmic_reg_write() - write a PMIC register value
> + *
> + * @dev:	PMIC device to write
> + * @reg:	Register to write
> + * @value:	Value to write
> + * @return 0 on success or negative value of errno.
> + */
> +int pmic_reg_write(struct udevice *dev, uint reg, uint value);
> +
> +/**
> + * pmic_clrsetbits() - clear and set bits in a PMIC register
> + *
> + * This reads a register, optionally clears some bits, optionally sets some
> + * bits, then writes the register.
> + *
> + * @dev:	PMIC device to update
> + * @reg:	Register to update
> + * @clr:	Bit mask to clear (set those bits that you want cleared)
> + * @set:	Bit mask to set (set those bits that you want set)
> + * @return 0 on success or negative value of errno.
> + */
> +int pmic_clrsetbits(struct udevice *dev, uint reg, uint clr, uint set);
> +
>   #endif /* CONFIG_DM_PMIC */
>
>   #ifdef CONFIG_POWER
>

Tested on:
- Odroid U3 (odroid_defconfig)
- Sandbox - ut pmic/regulator

Tested-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Przemyslaw Marczak <p.marczak@samsung.com>

Best regards,
-- 
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com

  reply	other threads:[~2015-07-01  9:44 UTC|newest]

Thread overview: 133+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-23 21:38 [U-Boot] [PATCH v3 00/54] dm: Introduce new driver model uclasses Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 01/54] Add a dhrystone benchmark command Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 02/54] sandbox: Enable dhry command Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 03/54] mkimage: Display a better list of available image types Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 04/54] fdt: Add a function to remove unused strings from a device tree Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 05/54] fdt: Add fdt_first/next_region() functions Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 06/54] fdt: Add fdtgrep tool Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 07/54] dm: Reduce SPL device tree size Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 08/54] dm: arm: Put driver model I2C drivers before legacy ones Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 09/54] Add a way of checking the position of a structure member Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 10/54] debug_uart: Remove use of asmlinkage Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 11/54] dm: Allow debug UART to support an early console Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 12/54] sandbox: Drop special-case sandbox console code Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 13/54] dm: Move the tree/uclass dump code into its own file Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 14/54] dm: core: Use debug() instead of printf() for failures Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 15/54] dm: core: Add a function to find any device from device tree Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 16/54] dm: core: Correct device_get_child_by_of_offset() parameter Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 17/54] dm: gpio: Allow GPIO uclass to be used in SPL Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 18/54] dm: gpio: Add dm_gpio_lookup_name() to look up a GPIO name Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 19/54] dm: gpio: Add dm_gpio_request() to manually request a GPIO Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 20/54] dm: Add support for register maps (regmap) Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 21/54] dm: Add support for generic system controllers (syscon) Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 22/54] dm: Correct the missing method check in cpu_get_info() Simon Glass
2015-07-08 14:10   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 23/54] dm: Add support for LEDs Simon Glass
2015-07-17 23:56   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 24/54] dm: led: Add a driver for GPIO-controlled LEDs Simon Glass
2015-07-17 23:57   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 25/54] spl: Add debugging info for spl_mmc boot Simon Glass
2015-07-17 23:57   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 26/54] dm: mmc: Add an MMC uclass Simon Glass
2015-07-17 23:57   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 27/54] mmc: Avoid using printf() for errors Simon Glass
2015-06-24  1:56   ` Chen-Yu Tsai
2015-06-23 21:38 ` [U-Boot] [PATCH v3 28/54] mmc: Add debug() output on read errors Simon Glass
2015-07-17 23:57   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 29/54] dm: mmc: Allow driver model to be used for MMC in SPL Simon Glass
2015-07-17 23:57   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 30/54] mmc: Add structure comments for dwmmc Simon Glass
2015-07-17 23:57   ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 31/54] mmc: Support bypass mode with the get_mmc_clk() method Simon Glass
2015-06-24  1:50   ` Chen-Yu Tsai
2015-06-25  1:58   ` Jaehoon Chung
2015-06-23 21:38 ` [U-Boot] [PATCH v3 32/54] mmc: Calculate dwmmc FIFO threshold size if not provided Simon Glass
2015-06-25  1:58   ` Jaehoon Chung
2015-06-25 19:26     ` Simon Glass
2015-06-26  4:49       ` Jaehoon Chung
2015-06-23 21:38 ` [U-Boot] [PATCH v3 33/54] dm: Add basic support for pin multiplexing (pinctrl) Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 34/54] dm: power: Avoid case-insensitve match for child names Simon Glass
2015-07-01  9:44   ` Przemyslaw Marczak
2015-07-17 23:57     ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 35/54] dm: power: Add regulator flags to centralise auto-set logic Simon Glass
2015-07-01  9:44   ` Przemyslaw Marczak
2015-07-17 23:57     ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 36/54] dm: pmic: Split output from function Simon Glass
2015-07-01  9:44   ` Przemyslaw Marczak
2015-07-17 23:57     ` Simon Glass
2015-06-23 21:38 ` [U-Boot] [PATCH v3 37/54] dm: power: Add a function to set up all regulators Simon Glass
2015-07-01  9:44   ` Przemyslaw Marczak
2015-07-17 23:57     ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 38/54] dm: power: Use debug() for errors in regulator uclass Simon Glass
2015-07-01  9:44   ` Przemyslaw Marczak
2015-07-17 23:57     ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 39/54] dm: pmic: Add functions to adjust PMIC registers Simon Glass
2015-07-01  9:44   ` Przemyslaw Marczak [this message]
2015-07-17 23:57     ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 40/54] dm: power: Allow use of regulators in SPL Simon Glass
2015-07-17 23:57   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 41/54] Drop CONFIG_ERRNO_STR from SPL Simon Glass
2015-07-17 23:57   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 42/54] dm: Add support for RAM drivers Simon Glass
2015-07-17 23:57   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 43/54] dm: spi: Make local functions static Simon Glass
2015-07-17 23:57   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 44/54] ns16550: Improve debug UART so it can work with 32-bit access Simon Glass
2015-07-17 23:57   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 45/54] Add rivest cipher 4 (rc4) implementation Simon Glass
2015-07-17 23:57   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 46/54] lib: Add function to extract a number from the end of a string Simon Glass
2015-07-17 23:58   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 47/54] fdt: Provide debug info when a device tree cannot be found Simon Glass
2015-07-17 23:58   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 48/54] dm: spl: Allow device tree/driver model in board_init_f() Simon Glass
2015-07-17 23:58   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 49/54] spl: Add a debug string before the jump to U-Boot Simon Glass
2015-07-17 23:58   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 50/54] mkimage: Set up a file size parameter and keep it updated Simon Glass
2015-06-25 22:51   ` Joe Hershberger
2015-07-17 23:58     ` Simon Glass
2015-08-10 23:43       ` Marek Vasut
2015-08-11  1:10         ` Marek Vasut
2015-06-23 21:39 ` [U-Boot] [PATCH v3 51/54] dm: Add a system reset uclass Simon Glass
2015-07-17 23:58   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 52/54] zynq: Rename struct clk_ops to zynq_clk_ops Simon Glass
2015-07-17 23:58   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 53/54] dm: Add a clock uclass Simon Glass
2015-07-17 23:58   ` Simon Glass
2015-06-23 21:39 ` [U-Boot] [PATCH v3 54/54] power: pmic: Use trailing_strtol() instead of a local function Simon Glass
2015-07-01  9:44   ` Przemyslaw Marczak
2015-07-17 23:58     ` Simon Glass
2015-06-30 16:08 ` [U-Boot] [PATCH v3 00/54] dm: Introduce new driver model uclasses York Sun
2015-06-30 18:33   ` Simon Glass
2015-06-30 18:42     ` York Sun
2015-06-30 19:01       ` Tom Rini
2015-06-30 20:10         ` York Sun
2015-06-30 20:31           ` Tom Rini
2015-06-30 21:08             ` Simon Glass
2015-07-02  7:03               ` Jagan Teki
2015-07-09 20:31                 ` Jagan Teki
2015-07-09 21:10                   ` Simon Glass
2015-06-30 19:01       ` Jagan Teki
2015-07-03  3:28 ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5593B67E.1050106@samsung.com \
    --to=p.marczak@samsung.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.