From: Minkyu Kang <mk7.kang@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 4/7] dm: pmic: add s2mps11 PMIC I/O driver
Date: Mon, 07 Sep 2015 09:11:37 +0900 [thread overview]
Message-ID: <55ECD639.8000707@samsung.com> (raw)
In-Reply-To: <1440770374-11501-5-git-send-email-p.marczak@samsung.com>
Dear Przemyslaw Marczak,
Just some minor comment,
On 28/08/15 22:59, Przemyslaw Marczak wrote:
> This driver allows I/O operations on the Samsung S2MPS11 PMIC,
> which provides lots of LDO/BUCK outputs.
>
> To enable it, update defconfig with:
> - CONFIG_DM_PMIC_S2MPS11
> and additional, if were not defined:
> - CONFIG_CMD_PMIC
> - CONFIG_ERRNO_STR
>
> The binding info: doc/device-tree-bindings/pmic/s2mps11.txt
>
> Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
> ---
> doc/device-tree-bindings/pmic/s2mps11.txt | 17 +++++
> drivers/power/pmic/Kconfig | 14 ++++
> drivers/power/pmic/Makefile | 1 +
> drivers/power/pmic/s2mps11.c | 60 ++++++++++++++++
> include/power/s2mps11.h | 109 ++++++++++++++++++++++++++++++
> 5 files changed, 201 insertions(+)
> create mode 100644 doc/device-tree-bindings/pmic/s2mps11.txt
> create mode 100644 drivers/power/pmic/s2mps11.c
> create mode 100644 include/power/s2mps11.h
>
> diff --git a/doc/device-tree-bindings/pmic/s2mps11.txt b/doc/device-tree-bindings/pmic/s2mps11.txt
> new file mode 100644
> index 0000000..db8d624
> --- /dev/null
> +++ b/doc/device-tree-bindings/pmic/s2mps11.txt
> @@ -0,0 +1,17 @@
> +SAMSUBNG, S2MPS11 PMIC
SAMSUNG?
> +
> +This file describes the binding info for the PMIC driver:
> +- drivers/power/pmic/s2mps11.c
> +
> +Required properties:
> +- compatible: "samsung,s2mps11-pmic"
> +- reg = 0x66
> +
> +With those two properties, the pmic device can be used for read/write only.
> +
> +Example:
> +
> +s2mps11 at 66 {
> + compatible = "samsung,s2mps11-pmic";
> + reg = <0x66>;
> +};
> diff --git a/drivers/power/pmic/Kconfig b/drivers/power/pmic/Kconfig
> index fc6a374..c66b352 100644
> --- a/drivers/power/pmic/Kconfig
> +++ b/drivers/power/pmic/Kconfig
> @@ -24,6 +24,20 @@ config DM_PMIC_MAX77686
> This config enables implementation of driver-model pmic uclass features
> for PMIC MAX77686. The driver implements read/write operations.
>
> +config DM_PMIC_S2MPS11
> + bool "Enable Driver Model for PMIC Samsung S2MPS11"
> + depends on DM_PMIC
> + ---help---
> + The Samsung S2MPS11 PMIC provides:
> + - 38 adjustable LDO regulators
> + - 9 High-Efficiency Buck Converters
> + - 1 BuckBoost Converter
> + - RTC with two alarms
> + - Backup battery charger
> + - I2C Configuration Interface
> + This driver provides access to I/O interface only.
> + Binding info: doc/device-tree-bindings/pmic/s2mps11.txt
> +
> config DM_PMIC_SANDBOX
> bool "Enable Driver Model for emulated Sandbox PMIC "
> depends on DM_PMIC
> diff --git a/drivers/power/pmic/Makefile b/drivers/power/pmic/Makefile
> index 99c5778..1b58d98 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_PFUZE100) += pfuze100.o
> +obj-$(CONFIG_DM_PMIC_S2MPS11) += s2mps11.o
> obj-$(CONFIG_DM_PMIC_SANDBOX) += sandbox.o i2c_pmic_emul.o
> obj-$(CONFIG_PMIC_TPS65090) += tps65090.o
> obj-$(CONFIG_PMIC_S5M8767) += s5m8767.o
> diff --git a/drivers/power/pmic/s2mps11.c b/drivers/power/pmic/s2mps11.c
> new file mode 100644
> index 0000000..7e28402
> --- /dev/null
> +++ b/drivers/power/pmic/s2mps11.c
> @@ -0,0 +1,60 @@
> +/*
> + * Copyright (C) 2015 Samsung Electronics
> + * Przemyslaw Marczak <p.marczak@samsung.com>
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <fdtdec.h>
> +#include <errno.h>
> +#include <dm.h>
> +#include <i2c.h>
> +#include <power/pmic.h>
> +#include <power/s2mps11.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +static int s2mps11_reg_count(struct udevice *dev)
> +{
> + return S2MPS11_REG_COUNT;
> +}
> +
> +static int s2mps11_write(struct udevice *dev, uint reg, const uint8_t *buff,
> + int len)
> +{
> + if (dm_i2c_write(dev, reg, buff, len)) {
> + error("write error to device: %p register: %#x!", dev, reg);
> + return -EIO;
> + }
> +
> + return 0;
> +}
> +
> +static int s2mps11_read(struct udevice *dev, uint reg, uint8_t *buff, int len)
> +{
> + if (dm_i2c_read(dev, reg, buff, len)) {
> + error("read error from device: %p register: %#x!", dev, reg);
> + return -EIO;
> + }
> +
> + return 0;
> +}
> +
> +static struct dm_pmic_ops s2mps11_ops = {
> + .reg_count = s2mps11_reg_count,
> + .read = s2mps11_read,
> + .write = s2mps11_write,
> +};
> +
> +static const struct udevice_id s2mps11_ids[] = {
> + { .compatible = "samsung,s2mps11-pmic" },
> + { }
> +};
> +
> +U_BOOT_DRIVER(pmic_s2mps11) = {
> + .name = "s2mps11_pmic",
> + .id = UCLASS_PMIC,
> + .of_match = s2mps11_ids,
> + .ops = &s2mps11_ops,
> +};
> diff --git a/include/power/s2mps11.h b/include/power/s2mps11.h
> new file mode 100644
> index 0000000..885a816
> --- /dev/null
> +++ b/include/power/s2mps11.h
> @@ -0,0 +1,109 @@
> +#ifndef __INCLUDE__S2MPS11__H__
> +#define __INCLUDE__S2MPS11__H__
> +
> +enum s2mps11_reg {
> + S2MPS11_REG_ID = 0,
> + S2MPS11_REG_INT1,
> + S2MPS11_REG_INT2,
> + S2MPS11_REG_INT3,
> + S2MPS11_REG_INT1M,
> + S2MPS11_REG_INT2M,
> + S2MPS11_REG_INT3M,
> + S2MPS11_REG_STATUS1,
> + S2MPS11_REG_STATUS2,
> + S2MPS11_REG_OFFSRC,
> + S2MPS11_REG_PWRONSRC,
> + S2MPS11_REG_RTC_CTRL,
> + S2MPS11_REG_CTRL1,
> + S2MPS11_REG_ETC_TEST,
> + S2MPS11_REG_RSVD3,
> + S2MPS11_REG_BU_CHG,
> + S2MPS11_REG_RAMP,
> + S2MPS11_REG_RAMP_BUCK,
> + S2MPS11_REG_LDO1_8,
> + S2MPS11_REG_LDO9_16,
> + S2MPS11_REG_LDO17_24,
> + S2MPS11_REG_LDO25_32,
> + S2MPS11_REG_LDO33_38,
> + S2MPS11_REG_LDO1_8_OVC,
> + S2MPS11_REG_LDO9_16_OVC,
> + S2MPS11_REG_LDO17_24_OVC,
> + S2MPS11_REG_LDO25_32_OVC,
> + S2MPS11_REG_LDO33_38_OVC,
> + S2MPS11_REG_RESERVED1,
> + S2MPS11_REG_RESERVED2,
> + S2MPS11_REG_RESERVED3,
> + S2MPS11_REG_RESERVED4,
> + S2MPS11_REG_RESERVED5,
> + S2MPS11_REG_RESERVED6,
> + S2MPS11_REG_RESERVED7,
> + S2MPS11_REG_RESERVED8,
> + S2MPS11_REG_WDRSTEN_CTRL,
> + S2MPS11_REG_B1CTRL1,
> + S2MPS11_REG_B1CTRL2,
> + S2MPS11_REG_B2CTRL1,
> + S2MPS11_REG_B2CTRL2,
> + S2MPS11_REG_B3CTRL1,
> + S2MPS11_REG_B3CTRL2,
> + S2MPS11_REG_B4CTRL1,
> + S2MPS11_REG_B4CTRL2,
> + S2MPS11_REG_B5CTRL1,
> + S2MPS11_REG_BUCK5_SW,
> + S2MPS11_REG_B5CTRL2,
> + S2MPS11_REG_B5CTRL3,
> + S2MPS11_REG_B5CTRL4,
> + S2MPS11_REG_B5CTRL5,
> + S2MPS11_REG_B6CTRL1,
> + S2MPS11_REG_B6CTRL2,
> + S2MPS11_REG_B7CTRL1,
> + S2MPS11_REG_B7CTRL2,
> + S2MPS11_REG_B8CTRL1,
> + S2MPS11_REG_B8CTRL2,
> + S2MPS11_REG_B9CTRL1,
> + S2MPS11_REG_B9CTRL2,
> + S2MPS11_REG_B10CTRL1,
> + S2MPS11_REG_B10CTRL2,
> + S2MPS11_REG_L1CTRL,
> + S2MPS11_REG_L2CTRL,
> + S2MPS11_REG_L3CTRL,
> + S2MPS11_REG_L4CTRL,
> + S2MPS11_REG_L5CTRL,
> + S2MPS11_REG_L6CTRL,
> + S2MPS11_REG_L7CTRL,
> + S2MPS11_REG_L8CTRL,
> + S2MPS11_REG_L9CTRL,
> + S2MPS11_REG_L10CTRL,
> + S2MPS11_REG_L11CTRL,
> + S2MPS11_REG_L12CTRL,
> + S2MPS11_REG_L13CTRL,
> + S2MPS11_REG_L14CTRL,
> + S2MPS11_REG_L15CTRL,
> + S2MPS11_REG_L16CTRL,
> + S2MPS11_REG_L17CTRL,
> + S2MPS11_REG_L18CTRL,
> + S2MPS11_REG_L19CTRL,
> + S2MPS11_REG_L20CTRL,
> + S2MPS11_REG_L21CTRL,
> + S2MPS11_REG_L22CTRL,
> + S2MPS11_REG_L23CTRL,
> + S2MPS11_REG_L24CTRL,
> + S2MPS11_REG_L25CTRL,
> + S2MPS11_REG_L26CTRL,
> + S2MPS11_REG_L27CTRL,
> + S2MPS11_REG_L28CTRL,
> + S2MPS11_REG_L29CTRL,
> + S2MPS11_REG_L30CTRL,
> + S2MPS11_REG_L31CTRL,
> + S2MPS11_REG_L32CTRL,
> + S2MPS11_REG_L33CTRL,
> + S2MPS11_REG_L34CTRL,
> + S2MPS11_REG_L35CTRL,
> + S2MPS11_REG_L36CTRL,
> + S2MPS11_REG_L37CTRL,
> + S2MPS11_REG_L38CTRL,
> + S2MPS11_REG_COUNT,
> +};
> +
> +#define S2MPS11_LDO26_ENABLE 0xec
> +
> +#endif
>
Thanks,
Minkyu Kang.
next prev parent reply other threads:[~2015-09-07 0:11 UTC|newest]
Thread overview: 106+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-28 13:59 [U-Boot] [PATCH 0/7] Add board detection for Odroid XU3 / XU3Lite / XU4 Przemyslaw Marczak
2015-08-28 13:59 ` [U-Boot] [PATCH 1/7] s5p: cpu_info: use defined CPU name if available Przemyslaw Marczak
2015-09-01 0:33 ` Simon Glass
2015-09-04 15:04 ` Przemyslaw Marczak
2015-08-28 13:59 ` [U-Boot] [PATCH 2/7] peach-pi: define CPU name for SoC Exynos5800 Przemyslaw Marczak
2015-08-28 13:59 ` [U-Boot] [PATCH 3/7] Exynos5422/5800: set cpu id to 0x5422 Przemyslaw Marczak
2015-09-01 0:33 ` Simon Glass
2015-08-28 13:59 ` [U-Boot] [PATCH 4/7] dm: pmic: add s2mps11 PMIC I/O driver Przemyslaw Marczak
2015-09-01 0:33 ` Simon Glass
2015-09-04 15:04 ` Przemyslaw Marczak
2015-09-07 0:11 ` Minkyu Kang [this message]
2015-09-09 10:31 ` Przemyslaw Marczak
2015-08-28 13:59 ` [U-Boot] [PATCH 5/7] odroid-xu3: enable s2mps11 PMIC support Przemyslaw Marczak
2015-09-01 0:33 ` Simon Glass
2015-08-28 13:59 ` [U-Boot] [PATCH 6/7] Exynos: add internal ADC driver Przemyslaw Marczak
2015-09-01 0:33 ` Simon Glass
2015-09-04 15:04 ` Przemyslaw Marczak
2015-08-28 13:59 ` [U-Boot] [PATCH 7/7] exynos5-dt: add board detection for Odroid XU3/XU3L/XU4 Przemyslaw Marczak
2015-09-01 0:33 ` Simon Glass
2015-09-04 15:04 ` Przemyslaw Marczak
2015-08-30 19:03 ` [U-Boot] [PATCH 0/7] Add board detection for Odroid XU3 / XU3Lite / XU4 Anand Moon
2015-08-31 12:17 ` Przemyslaw Marczak
2015-10-21 1:58 ` Siarhei Siamashka
2015-10-21 9:47 ` Anand Moon
2015-10-21 9:57 ` Anand Moon
2015-10-21 10:13 ` Przemyslaw Marczak
2015-08-31 13:22 ` Simon Glass
2015-08-31 18:29 ` Przemyslaw Marczak
2015-08-31 23:13 ` Simon Glass
2015-09-04 15:04 ` Przemyslaw Marczak
2015-09-21 12:26 ` [U-Boot] [PATCH V2 00/11] " Przemyslaw Marczak
2015-09-21 12:26 ` [U-Boot] [PATCH V2 01/11] samsung: board/misc: check returned pointer for get_board_type() calls Przemyslaw Marczak
2015-10-03 14:27 ` Simon Glass
2015-09-21 12:26 ` [U-Boot] [PATCH V2 02/11] s5p: cpu_info: print "cpu-model" if exists in dts Przemyslaw Marczak
2015-10-03 14:27 ` Simon Glass
2015-10-13 11:57 ` Przemyslaw Marczak
2015-09-21 12:26 ` [U-Boot] [PATCH V2 03/11] Peach-Pi: dts: add cpu-model string Przemyslaw Marczak
2015-10-03 14:28 ` Simon Glass
2015-10-13 11:57 ` Przemyslaw Marczak
2015-09-21 12:26 ` [U-Boot] [PATCH V2 04/11] Exynos5422/5800: set cpu id to 0x5422 Przemyslaw Marczak
2015-09-21 12:47 ` Jaehoon Chung
2015-09-21 13:01 ` Przemyslaw Marczak
2015-09-21 12:26 ` [U-Boot] [PATCH V2 05/11] dm: pmic: add s2mps11 PMIC I/O driver Przemyslaw Marczak
2015-10-03 14:28 ` Simon Glass
2015-10-13 11:57 ` Przemyslaw Marczak
2015-09-21 12:26 ` [U-Boot] [PATCH V2 06/11] dm: adc: add simple ADC uclass implementation Przemyslaw Marczak
2015-10-03 14:28 ` Simon Glass
2015-10-13 11:57 ` Przemyslaw Marczak
2015-09-21 12:26 ` [U-Boot] [PATCH V2 07/11] dm: adc: add Exynos54xx compatible ADC driver Przemyslaw Marczak
2015-10-03 14:28 ` Simon Glass
2015-10-13 11:58 ` Przemyslaw Marczak
2015-10-19 2:20 ` Simon Glass
2015-09-21 12:26 ` [U-Boot] [PATCH V2 08/11] Odroid-XU3: enable s2mps11 PMIC support Przemyslaw Marczak
2015-10-03 14:28 ` Simon Glass
2015-09-21 12:26 ` [U-Boot] [PATCH V2 09/11] Exynos54xx: dts: add ADC node Przemyslaw Marczak
2015-10-03 14:28 ` Simon Glass
2015-09-21 12:26 ` [U-Boot] [PATCH V2 10/11] Odroid-XU3: dts: enable ADC, with request for pre-reloc bind Przemyslaw Marczak
2015-10-03 14:28 ` Simon Glass
2015-09-21 12:26 ` [U-Boot] [PATCH V2 11/11] exynos5-dt-types: add board detection for Odroid XU3/XU3L/XU4 Przemyslaw Marczak
2015-10-03 14:28 ` Simon Glass
2015-10-13 11:59 ` Przemyslaw Marczak
2015-10-19 2:21 ` Simon Glass
2015-09-27 12:20 ` [U-Boot] [PATCH V2 00/11] Add board detection for Odroid XU3 / XU3Lite / XU4 Anand Moon
2015-09-28 10:19 ` Przemyslaw Marczak
2015-10-01 11:07 ` Przemyslaw Marczak
2015-10-03 14:30 ` Simon Glass
2015-10-13 11:59 ` Przemyslaw Marczak
2015-10-27 12:07 ` [U-Boot] [PATCH V3 00/14] " Przemyslaw Marczak
2015-10-27 12:07 ` [U-Boot] [PATCH V3 01/14] samsung: board/misc: check returned pointer for get_board_type() calls Przemyslaw Marczak
2015-10-28 18:50 ` Simon Glass
2015-10-30 3:00 ` Anand Moon
2015-10-27 12:07 ` [U-Boot] [PATCH V3 02/14] s5p: cpu_info: print "cpu-model" if exists in dts Przemyslaw Marczak
2015-10-28 18:50 ` Simon Glass
2015-10-30 3:01 ` Anand Moon
2015-10-27 12:07 ` [U-Boot] [PATCH V3 03/14] Peach-Pi: dts: add cpu-model string Przemyslaw Marczak
2015-10-28 18:50 ` Simon Glass
2015-10-30 3:02 ` Anand Moon
2015-10-27 12:07 ` [U-Boot] [PATCH V3 04/14] Exynos5422/5800: set cpu id to 0x5422 Przemyslaw Marczak
2015-10-30 3:03 ` Anand Moon
2015-10-27 12:07 ` [U-Boot] [PATCH V3 05/14] dm: pmic: add s2mps11 PMIC I/O driver Przemyslaw Marczak
2015-10-28 18:50 ` Simon Glass
2015-10-30 3:04 ` Anand Moon
2015-10-27 12:07 ` [U-Boot] [PATCH V3 06/14] dm: regulator: add function device_get_supply_regulator() Przemyslaw Marczak
2015-11-05 18:25 ` Simon Glass
2015-10-27 12:08 ` [U-Boot] [PATCH V3 07/14] dm: adc: add simple ADC uclass implementation Przemyslaw Marczak
2015-10-27 13:53 ` Przemyslaw Marczak
2015-11-05 18:25 ` Simon Glass
2015-10-27 12:08 ` [U-Boot] [PATCH V3 08/14] dm: adc: add Exynos54xx compatible ADC driver Przemyslaw Marczak
2015-11-06 0:15 ` Simon Glass
2015-10-27 12:08 ` [U-Boot] [PATCH V3 09/14] Odroid-XU3: enable s2mps11 PMIC support Przemyslaw Marczak
2015-10-30 3:09 ` Anand Moon
2015-10-27 12:08 ` [U-Boot] [PATCH V3 10/14] Exynos54xx: dts: add ADC node Przemyslaw Marczak
2015-10-28 18:50 ` Simon Glass
2015-10-29 13:58 ` Przemyslaw Marczak
2015-11-06 3:15 ` Simon Glass
2015-11-06 8:48 ` Przemyslaw Marczak
2015-10-27 12:08 ` [U-Boot] [PATCH V3 11/14] Odroid-XU3: dts: enable ADC, with request for pre-reloc bind Przemyslaw Marczak
2015-10-27 12:08 ` [U-Boot] [PATCH V3 12/14] exynos5-dt-types: add board detection for Odroid XU3/XU3L/XU4 Przemyslaw Marczak
2015-10-30 3:06 ` Anand Moon
2015-10-27 12:08 ` [U-Boot] [PATCH V3 13/14] sandbox: add ADC driver Przemyslaw Marczak
2015-11-04 9:52 ` [U-Boot] [PATCH] Add missing file: include/sandbox-adc.h Przemyslaw Marczak
2015-11-06 12:07 ` Simon Glass
2015-11-06 0:15 ` [U-Boot] [PATCH V3 13/14] sandbox: add ADC driver Simon Glass
2015-10-27 12:08 ` [U-Boot] [PATCH V3 14/14] sandbox: add ADC unit tests Przemyslaw Marczak
2015-11-06 0:15 ` Simon Glass
2015-11-02 5:37 ` [U-Boot] [PATCH V3 00/14] Add board detection for Odroid XU3 / XU3Lite / XU4 Minkyu Kang
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=55ECD639.8000707@samsung.com \
--to=mk7.kang@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.