public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/6] mfd: hi6421v530: add support for HiSilicon Hi6421v530
Date: Tue, 30 May 2017 08:36:06 +0100	[thread overview]
Message-ID: <20170530073606.tm4gacph4yj47ntx@dell> (raw)
In-Reply-To: <20170526063518.21246-4-guodong.xu@linaro.org>

On Fri, 26 May 2017, Guodong Xu wrote:

> Add support for HiSilicon Hi6421v530 PMIC. Hi6421v530 communicates with
> main SoC via memory-mapped I/O.
> 
> Hi6421v530 and Hi6421 are PMIC chips from the same vendor, HiSilicon, but
> at different revisions. They share the same memory-mapped I/O design. They
> differ in regulator details, eg. LDO voltage points.
> 
> Signed-off-by: Guodong Xu <guodong.xu@linaro.org>
> Signed-off-by: Wang Xiaoyin <hw.wangxiaoyin@hisilicon.com>
> ---
>  drivers/mfd/Kconfig           |  9 +++++
>  drivers/mfd/Makefile          |  1 +
>  drivers/mfd/hi6421v530-pmic.c | 92 +++++++++++++++++++++++++++++++++++++++++++

As previously discussed, this support should be added to the existing
driver.

>  3 files changed, 102 insertions(+)
>  create mode 100644 drivers/mfd/hi6421v530-pmic.c
> 
> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> index 3eb5c93..bdc8304 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -388,6 +388,15 @@ config MFD_HI6421_PMIC
>  	  menus in order to enable them.
>  	  We communicate with the Hi6421 via memory-mapped I/O.
>  
> +config MFD_HI6421V530_PMIC
> +	tristate "HiSilicon Hi6421v530 PMU/Codec IC"
> +	depends on OF
> +	select MFD_CORE
> +	select REGMAP_MMIO
> +	help
> +	  Add support for HiSilicon Hi6421v530 PMIC. Hi6421v530 communicates
> +	  with main SoC via memory-mapped I/O.
> +
>  config MFD_HI655X_PMIC
>  	tristate "HiSilicon Hi655X series PMU/Codec IC"
>  	depends on ARCH_HISI || COMPILE_TEST
> diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
> index c16bf1e..cde62fc 100644
> --- a/drivers/mfd/Makefile
> +++ b/drivers/mfd/Makefile
> @@ -206,6 +206,7 @@ obj-$(CONFIG_MFD_STW481X)	+= stw481x.o
>  obj-$(CONFIG_MFD_IPAQ_MICRO)	+= ipaq-micro.o
>  obj-$(CONFIG_MFD_MENF21BMC)	+= menf21bmc.o
>  obj-$(CONFIG_MFD_HI6421_PMIC)	+= hi6421-pmic-core.o
> +obj-$(CONFIG_MFD_HI6421V530_PMIC)	+= hi6421v530-pmic.o
>  obj-$(CONFIG_MFD_HI655X_PMIC)   += hi655x-pmic.o
>  obj-$(CONFIG_MFD_DLN2)		+= dln2.o
>  obj-$(CONFIG_MFD_RT5033)	+= rt5033.o
> diff --git a/drivers/mfd/hi6421v530-pmic.c b/drivers/mfd/hi6421v530-pmic.c
> new file mode 100644
> index 0000000..651659a
> --- /dev/null
> +++ b/drivers/mfd/hi6421v530-pmic.c
> @@ -0,0 +1,92 @@
> +/*
> + * Device driver for Hi6421 IC
> + *
> + * Copyright (c) <2017> HiSilicon Technologies Co., Ltd.
> + *              http://www.hisilicon.com
> + * Copyright (c) <2017> Linaro Ltd.
> + *              http://www.linaro.org
> + *
> + * Author: Wang Xiaoyin <hw.wangxiaoyin@hisilicon.com>
> + *         Guodong Xu <guodong.xu@linaro.org>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope it will be useful, but WITHOUT
> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
> + * more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program.  If not, see <http://www.gnu.org/licenses/>.

Can you use the shorter licence script?

> + */
> +
> +#include <linux/device.h>
> +#include <linux/err.h>
> +#include <linux/mfd/core.h>
> +#include <linux/module.h>
> +#include <linux/of.h>
> +#include <linux/platform_device.h>
> +#include <linux/regmap.h>
> +#include <linux/mfd/hi6421-pmic.h>

Alphabetical.

> +static const struct mfd_cell hi6421v530_devs[] = {
> +	{ .name = "hi6421v530-regulator", },
> +};

Chen Feng promised me that he would add other devices to the original
driver nearly 18 months ago.  Until more devices are added, these are
not MFD drivers.  When will you add the remaining devices?

> +static int hi6421v530_pmic_probe(struct platform_device *pdev)
> +{
> +	struct hi6421_pmic *pmic;
> +	struct resource *res;
> +	void __iomem *base;
> +	int ret;
> +
> +	pmic = devm_kzalloc(&pdev->dev, sizeof(*pmic), GFP_KERNEL);
> +	if (!pmic)
> +		return -ENOMEM;
> +
> +	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> +	base = devm_ioremap_resource(&pdev->dev, res);
> +	if (IS_ERR(base))
> +		return PTR_ERR(base);
> +
> +	pmic->regmap = devm_regmap_init_mmio_clk(&pdev->dev, NULL, base,
> +						 &hi6421_regmap_config);
> +	if (IS_ERR(pmic->regmap)) {
> +		dev_err(&pdev->dev,
> +			"regmap init failed: %ld\n", PTR_ERR(pmic->regmap));

"Failed to initialise Regmap"

> +		return PTR_ERR(pmic->regmap);
> +	}
> +
> +	platform_set_drvdata(pdev, pmic);
> +
> +	ret = devm_mfd_add_devices(&pdev->dev, 0, hi6421v530_devs,

Use the #defines provided instead of '0'.

> +				   ARRAY_SIZE(hi6421v530_devs), NULL, 0, NULL);
> +	if (ret) {
> +		dev_err(&pdev->dev, "add mfd devices failed: %d\n", ret);

"Failed to add child devices"

> +		return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +static const struct of_device_id of_hi6421v530_pmic_match_tbl[] = {
> +	{ .compatible = "hisilicon,hi6421v530-pmic", },
> +	{ },
> +};
> +MODULE_DEVICE_TABLE(of, of_hi6421v530_pmic_match_tbl);

Drop the "_tbl" part, it's implied and superfluous.

> +static struct platform_driver hi6421v530_pmic_driver = {
> +	.driver = {
> +		.name	= "hi6421v530_pmic",

One space please.

> +		.of_match_table = of_hi6421v530_pmic_match_tbl,
> +	},
> +	.probe	= hi6421v530_pmic_probe,
> +};
> +module_platform_driver(hi6421v530_pmic_driver);
> +
> +MODULE_AUTHOR("Guodong Xu <guodong.xu@linaro.org>");
> +MODULE_DESCRIPTION("Hi6421v530 PMIC driver");
> +MODULE_LICENSE("GPL v2");

This does not match the header comment.

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

  reply	other threads:[~2017-05-30  7:36 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-26  6:35 [PATCH 0/6] MFD: add driver for HiSilicon Hi6421v530 PMIC Guodong Xu
2017-05-26  6:35 ` [PATCH 1/6] dt-bindings: mfd: Add hi6421v530 bindings Guodong Xu
2017-05-31 18:07   ` Rob Herring
2017-06-02  9:01     ` Guodong Xu
2017-05-26  6:35 ` [PATCH 2/6] mfd: hi6421-pmic: move hi6421_regmap_config definition to header file Guodong Xu
2017-05-26  8:33   ` Arnd Bergmann
2017-05-27  3:08     ` Guodong Xu
2017-05-26  6:35 ` [PATCH 3/6] mfd: hi6421v530: add support for HiSilicon Hi6421v530 Guodong Xu
2017-05-30  7:36   ` Lee Jones [this message]
2017-06-02  9:35     ` Guodong Xu
2017-05-26  6:35 ` [PATCH 4/6] regulator: hi6421v530: add driver for hi6421v530 voltage regulator Guodong Xu
2017-05-26 11:38   ` Mark Brown
2017-05-27  9:47     ` Guodong Xu
2017-05-26 12:13   ` Javier Martinez Canillas
2017-05-27  9:42     ` Guodong Xu
2017-05-26  6:35 ` [PATCH 5/6] arm64: dts: hikey960: add device node for pmic and regulators Guodong Xu
2017-05-26  6:35 ` [PATCH 6/6] arm64: defconfig: enable hi6421v530 MFD and regulator Guodong Xu

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=20170530073606.tm4gacph4yj47ntx@dell \
    --to=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox