All of lore.kernel.org
 help / color / mirror / Atom feed
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v6 6/9] mfd: axp20x: Add support for RSB based AXP223 PMIC
Date: Mon, 11 Jan 2016 09:24:27 +0000	[thread overview]
Message-ID: <20160111092427.GI14104@x1> (raw)
In-Reply-To: <1450283538-25067-7-git-send-email-wens@csie.org>

On Thu, 17 Dec 2015, Chen-Yu Tsai wrote:

> The AXP223 is a new PMIC commonly paired with Allwinner A23/A33 SoCs.
> It is functionally identical to AXP221; only the regulator default
> voltage/status and the external host interface are different.
> 
> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
> ---
>  drivers/mfd/Kconfig        | 11 +++++++
>  drivers/mfd/Makefile       |  1 +
>  drivers/mfd/axp20x-rsb.c   | 78 ++++++++++++++++++++++++++++++++++++++++++++++
>  drivers/mfd/axp20x.c       |  2 ++
>  include/linux/mfd/axp20x.h |  1 +
>  5 files changed, 93 insertions(+)
>  create mode 100644 drivers/mfd/axp20x-rsb.c
> 
> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> index 804cd3dcce32..13c565103e96 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -107,6 +107,17 @@ config MFD_AXP20X_I2C
>  	  components like regulators or the PEK (Power Enable Key) under the
>  	  corresponding menus.
>  
> +config MFD_AXP20X_RSB
> +	tristate "X-Powers AXP series PMICs with RSB"
> +	select MFD_AXP20X
> +	depends on SUNXI_RSB
> +	help
> +	  If you say Y here you get support for the X-Powers AXP series power
> +	  management ICs (PMICs) controlled with RSB.
> +	  This driver include only the core APIs. You have to select individual
> +	  components like regulators or the PEK (Power Enable Key) under the
> +	  corresponding menus.
> +
>  config MFD_CROS_EC
>  	tristate "ChromeOS Embedded Controller"
>  	select MFD_CORE
> diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
> index a6913007d667..caea6637d5e8 100644
> --- a/drivers/mfd/Makefile
> +++ b/drivers/mfd/Makefile
> @@ -108,6 +108,7 @@ obj-$(CONFIG_MFD_DA9052_SPI)	+= da9052-spi.o
>  obj-$(CONFIG_MFD_DA9052_I2C)	+= da9052-i2c.o
>  obj-$(CONFIG_MFD_AXP20X)	+= axp20x.o
>  obj-$(CONFIG_MFD_AXP20X_I2C)	+= axp20x-i2c.o
> +obj-$(CONFIG_MFD_AXP20X_RSB)	+= axp20x-rsb.o
>  
>  obj-$(CONFIG_MFD_LP3943)	+= lp3943.o
>  obj-$(CONFIG_MFD_LP8788)	+= lp8788.o lp8788-irq.o
> diff --git a/drivers/mfd/axp20x-rsb.c b/drivers/mfd/axp20x-rsb.c
> new file mode 100644
> index 000000000000..76ff02b96df0
> --- /dev/null
> +++ b/drivers/mfd/axp20x-rsb.c
> @@ -0,0 +1,78 @@
> +/*
> + * axp20x-rsb.c - RSB driver for the X-Powers' Power Management ICs

Please remove the name of the file from the header.

They have a habit of becoming out of date.

> + * AXP20x typically comprises an adaptive USB-Compatible PWM charger, BUCK DC-DC
> + * converters, LDOs, multiple 12-bit ADCs of voltage, current and temperature
> + * as well as configurable GPIOs.
> + *
> + * This driver supports the RSB variants.

No copyright line?

> + * Author: Chen-Yu Tsai <wens@csie.org>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include <linux/acpi.h>
> +#include <linux/err.h>
> +#include <linux/module.h>
> +#include <linux/mfd/axp20x.h>

'f' comes before 'o'.

> +#include <linux/of.h>
> +#include <linux/regmap.h>
> +#include <linux/slab.h>
> +#include <linux/sunxi-rsb.h>
> +
> +static int axp20x_rsb_probe(struct sunxi_rsb_device *rdev)
> +{
> +	struct axp20x_dev *axp20x;
> +	int ret;
> +
> +	axp20x = devm_kzalloc(&rdev->dev, sizeof(*axp20x), GFP_KERNEL);
> +	if (!axp20x)
> +		return -ENOMEM;
> +
> +	axp20x->dev = &rdev->dev;
> +	axp20x->irq = rdev->irq;
> +	sunxi_rsb_device_set_drvdata(rdev, axp20x);

What's the point of this call?  Why do you need a sunxi_ variant?

> +	ret = axp20x_match_device(axp20x);
> +	if (ret)
> +		return ret;
> +
> +	axp20x->regmap = devm_regmap_init_sunxi_rsb(rdev, axp20x->regmap_cfg);
> +	if (IS_ERR(axp20x->regmap)) {
> +		ret = PTR_ERR(axp20x->regmap);
> +		dev_err(&rdev->dev, "regmap init failed: %d\n", ret);
> +		return ret;
> +	}
> +
> +	return axp20x_device_probe(axp20x);
> +}
> +
> +static int axp20x_rsb_remove(struct sunxi_rsb_device *rdev)
> +{
> +	struct axp20x_dev *axp20x = sunxi_rsb_device_get_drvdata(rdev);
> +
> +	return axp20x_device_remove(axp20x);
> +}
> +
> +static const struct of_device_id axp20x_rsb_of_match[] = {
> +	{ .compatible = "x-powers,axp223", .data = (void *)AXP223_ID },
> +	{ },
> +};
> +MODULE_DEVICE_TABLE(of, axp20x_rsb_of_match);
> +
> +static struct sunxi_rsb_driver axp20x_rsb_driver = {
> +	.driver = {
> +		.name	= "axp20x-rsb",
> +		.of_match_table	= of_match_ptr(axp20x_rsb_of_match),
> +	},
> +	.probe	= axp20x_rsb_probe,
> +	.remove	= axp20x_rsb_remove,
> +};
> +module_sunxi_rsb_driver(axp20x_rsb_driver);
> +
> +MODULE_DESCRIPTION("PMIC MFD sunXi RSB driver for AXP20X");
> +MODULE_AUTHOR("Chen-Yu Tsai <wens@csie.org>");
> +MODULE_LICENSE("GPL v2");
> diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c
> index 54a00168da26..968d77fb95d8 100644
> --- a/drivers/mfd/axp20x.c
> +++ b/drivers/mfd/axp20x.c
> @@ -33,6 +33,7 @@ static const char * const axp20x_model_names[] = {
>  	"AXP202",
>  	"AXP209",
>  	"AXP221",
> +	"AXP223",
>  	"AXP288",
>  };
>  
> @@ -616,6 +617,7 @@ int axp20x_match_device(struct axp20x_dev *axp20x)
>  		axp20x->regmap_irq_chip = &axp20x_regmap_irq_chip;
>  		break;
>  	case AXP221_ID:
> +	case AXP223_ID:
>  		axp20x->nr_cells = ARRAY_SIZE(axp22x_cells);
>  		axp20x->cells = axp22x_cells;
>  		axp20x->regmap_cfg = &axp22x_regmap_config;
> diff --git a/include/linux/mfd/axp20x.h b/include/linux/mfd/axp20x.h
> index 00697c6ad8b0..d82e7d51372b 100644
> --- a/include/linux/mfd/axp20x.h
> +++ b/include/linux/mfd/axp20x.h
> @@ -18,6 +18,7 @@ enum {
>  	AXP202_ID,
>  	AXP209_ID,
>  	AXP221_ID,
> +	AXP223_ID,
>  	AXP288_ID,
>  	NR_AXP20X_VARIANTS,
>  };

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

WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
Cc: Maxime Ripard
	<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Chen-Yu Tsai <wens-9oqZluOz41k@public.gmane.org>,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
	Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Andy Shevchenko
	<andy.shevchenko-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Subject: Re: [PATCH v6 6/9] mfd: axp20x: Add support for RSB based AXP223 PMIC
Date: Mon, 11 Jan 2016 09:24:27 +0000	[thread overview]
Message-ID: <20160111092427.GI14104@x1> (raw)
In-Reply-To: <1450283538-25067-7-git-send-email-wens-jdAy2FN1RRM@public.gmane.org>

On Thu, 17 Dec 2015, Chen-Yu Tsai wrote:

> The AXP223 is a new PMIC commonly paired with Allwinner A23/A33 SoCs.
> It is functionally identical to AXP221; only the regulator default
> voltage/status and the external host interface are different.
> 
> Signed-off-by: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
> ---
>  drivers/mfd/Kconfig        | 11 +++++++
>  drivers/mfd/Makefile       |  1 +
>  drivers/mfd/axp20x-rsb.c   | 78 ++++++++++++++++++++++++++++++++++++++++++++++
>  drivers/mfd/axp20x.c       |  2 ++
>  include/linux/mfd/axp20x.h |  1 +
>  5 files changed, 93 insertions(+)
>  create mode 100644 drivers/mfd/axp20x-rsb.c
> 
> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> index 804cd3dcce32..13c565103e96 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -107,6 +107,17 @@ config MFD_AXP20X_I2C
>  	  components like regulators or the PEK (Power Enable Key) under the
>  	  corresponding menus.
>  
> +config MFD_AXP20X_RSB
> +	tristate "X-Powers AXP series PMICs with RSB"
> +	select MFD_AXP20X
> +	depends on SUNXI_RSB
> +	help
> +	  If you say Y here you get support for the X-Powers AXP series power
> +	  management ICs (PMICs) controlled with RSB.
> +	  This driver include only the core APIs. You have to select individual
> +	  components like regulators or the PEK (Power Enable Key) under the
> +	  corresponding menus.
> +
>  config MFD_CROS_EC
>  	tristate "ChromeOS Embedded Controller"
>  	select MFD_CORE
> diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
> index a6913007d667..caea6637d5e8 100644
> --- a/drivers/mfd/Makefile
> +++ b/drivers/mfd/Makefile
> @@ -108,6 +108,7 @@ obj-$(CONFIG_MFD_DA9052_SPI)	+= da9052-spi.o
>  obj-$(CONFIG_MFD_DA9052_I2C)	+= da9052-i2c.o
>  obj-$(CONFIG_MFD_AXP20X)	+= axp20x.o
>  obj-$(CONFIG_MFD_AXP20X_I2C)	+= axp20x-i2c.o
> +obj-$(CONFIG_MFD_AXP20X_RSB)	+= axp20x-rsb.o
>  
>  obj-$(CONFIG_MFD_LP3943)	+= lp3943.o
>  obj-$(CONFIG_MFD_LP8788)	+= lp8788.o lp8788-irq.o
> diff --git a/drivers/mfd/axp20x-rsb.c b/drivers/mfd/axp20x-rsb.c
> new file mode 100644
> index 000000000000..76ff02b96df0
> --- /dev/null
> +++ b/drivers/mfd/axp20x-rsb.c
> @@ -0,0 +1,78 @@
> +/*
> + * axp20x-rsb.c - RSB driver for the X-Powers' Power Management ICs

Please remove the name of the file from the header.

They have a habit of becoming out of date.

> + * AXP20x typically comprises an adaptive USB-Compatible PWM charger, BUCK DC-DC
> + * converters, LDOs, multiple 12-bit ADCs of voltage, current and temperature
> + * as well as configurable GPIOs.
> + *
> + * This driver supports the RSB variants.

No copyright line?

> + * Author: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include <linux/acpi.h>
> +#include <linux/err.h>
> +#include <linux/module.h>
> +#include <linux/mfd/axp20x.h>

'f' comes before 'o'.

> +#include <linux/of.h>
> +#include <linux/regmap.h>
> +#include <linux/slab.h>
> +#include <linux/sunxi-rsb.h>
> +
> +static int axp20x_rsb_probe(struct sunxi_rsb_device *rdev)
> +{
> +	struct axp20x_dev *axp20x;
> +	int ret;
> +
> +	axp20x = devm_kzalloc(&rdev->dev, sizeof(*axp20x), GFP_KERNEL);
> +	if (!axp20x)
> +		return -ENOMEM;
> +
> +	axp20x->dev = &rdev->dev;
> +	axp20x->irq = rdev->irq;
> +	sunxi_rsb_device_set_drvdata(rdev, axp20x);

What's the point of this call?  Why do you need a sunxi_ variant?

> +	ret = axp20x_match_device(axp20x);
> +	if (ret)
> +		return ret;
> +
> +	axp20x->regmap = devm_regmap_init_sunxi_rsb(rdev, axp20x->regmap_cfg);
> +	if (IS_ERR(axp20x->regmap)) {
> +		ret = PTR_ERR(axp20x->regmap);
> +		dev_err(&rdev->dev, "regmap init failed: %d\n", ret);
> +		return ret;
> +	}
> +
> +	return axp20x_device_probe(axp20x);
> +}
> +
> +static int axp20x_rsb_remove(struct sunxi_rsb_device *rdev)
> +{
> +	struct axp20x_dev *axp20x = sunxi_rsb_device_get_drvdata(rdev);
> +
> +	return axp20x_device_remove(axp20x);
> +}
> +
> +static const struct of_device_id axp20x_rsb_of_match[] = {
> +	{ .compatible = "x-powers,axp223", .data = (void *)AXP223_ID },
> +	{ },
> +};
> +MODULE_DEVICE_TABLE(of, axp20x_rsb_of_match);
> +
> +static struct sunxi_rsb_driver axp20x_rsb_driver = {
> +	.driver = {
> +		.name	= "axp20x-rsb",
> +		.of_match_table	= of_match_ptr(axp20x_rsb_of_match),
> +	},
> +	.probe	= axp20x_rsb_probe,
> +	.remove	= axp20x_rsb_remove,
> +};
> +module_sunxi_rsb_driver(axp20x_rsb_driver);
> +
> +MODULE_DESCRIPTION("PMIC MFD sunXi RSB driver for AXP20X");
> +MODULE_AUTHOR("Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>");
> +MODULE_LICENSE("GPL v2");
> diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c
> index 54a00168da26..968d77fb95d8 100644
> --- a/drivers/mfd/axp20x.c
> +++ b/drivers/mfd/axp20x.c
> @@ -33,6 +33,7 @@ static const char * const axp20x_model_names[] = {
>  	"AXP202",
>  	"AXP209",
>  	"AXP221",
> +	"AXP223",
>  	"AXP288",
>  };
>  
> @@ -616,6 +617,7 @@ int axp20x_match_device(struct axp20x_dev *axp20x)
>  		axp20x->regmap_irq_chip = &axp20x_regmap_irq_chip;
>  		break;
>  	case AXP221_ID:
> +	case AXP223_ID:
>  		axp20x->nr_cells = ARRAY_SIZE(axp22x_cells);
>  		axp20x->cells = axp22x_cells;
>  		axp20x->regmap_cfg = &axp22x_regmap_config;
> diff --git a/include/linux/mfd/axp20x.h b/include/linux/mfd/axp20x.h
> index 00697c6ad8b0..d82e7d51372b 100644
> --- a/include/linux/mfd/axp20x.h
> +++ b/include/linux/mfd/axp20x.h
> @@ -18,6 +18,7 @@ enum {
>  	AXP202_ID,
>  	AXP209_ID,
>  	AXP221_ID,
> +	AXP223_ID,
>  	AXP288_ID,
>  	NR_AXP20X_VARIANTS,
>  };

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

-- 
You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/d/optout.

WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: Chen-Yu Tsai <wens@csie.org>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>,
	Chen-Yu Tsai <wens@wens.tw>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com,
	Hans de Goede <hdegoede@redhat.com>,
	Mark Brown <broonie@kernel.org>,
	Andy Shevchenko <andy.shevchenko@gmail.com>,
	Rob Herring <robh+dt@kernel.org>
Subject: Re: [PATCH v6 6/9] mfd: axp20x: Add support for RSB based AXP223 PMIC
Date: Mon, 11 Jan 2016 09:24:27 +0000	[thread overview]
Message-ID: <20160111092427.GI14104@x1> (raw)
In-Reply-To: <1450283538-25067-7-git-send-email-wens@csie.org>

On Thu, 17 Dec 2015, Chen-Yu Tsai wrote:

> The AXP223 is a new PMIC commonly paired with Allwinner A23/A33 SoCs.
> It is functionally identical to AXP221; only the regulator default
> voltage/status and the external host interface are different.
> 
> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
> ---
>  drivers/mfd/Kconfig        | 11 +++++++
>  drivers/mfd/Makefile       |  1 +
>  drivers/mfd/axp20x-rsb.c   | 78 ++++++++++++++++++++++++++++++++++++++++++++++
>  drivers/mfd/axp20x.c       |  2 ++
>  include/linux/mfd/axp20x.h |  1 +
>  5 files changed, 93 insertions(+)
>  create mode 100644 drivers/mfd/axp20x-rsb.c
> 
> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> index 804cd3dcce32..13c565103e96 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -107,6 +107,17 @@ config MFD_AXP20X_I2C
>  	  components like regulators or the PEK (Power Enable Key) under the
>  	  corresponding menus.
>  
> +config MFD_AXP20X_RSB
> +	tristate "X-Powers AXP series PMICs with RSB"
> +	select MFD_AXP20X
> +	depends on SUNXI_RSB
> +	help
> +	  If you say Y here you get support for the X-Powers AXP series power
> +	  management ICs (PMICs) controlled with RSB.
> +	  This driver include only the core APIs. You have to select individual
> +	  components like regulators or the PEK (Power Enable Key) under the
> +	  corresponding menus.
> +
>  config MFD_CROS_EC
>  	tristate "ChromeOS Embedded Controller"
>  	select MFD_CORE
> diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
> index a6913007d667..caea6637d5e8 100644
> --- a/drivers/mfd/Makefile
> +++ b/drivers/mfd/Makefile
> @@ -108,6 +108,7 @@ obj-$(CONFIG_MFD_DA9052_SPI)	+= da9052-spi.o
>  obj-$(CONFIG_MFD_DA9052_I2C)	+= da9052-i2c.o
>  obj-$(CONFIG_MFD_AXP20X)	+= axp20x.o
>  obj-$(CONFIG_MFD_AXP20X_I2C)	+= axp20x-i2c.o
> +obj-$(CONFIG_MFD_AXP20X_RSB)	+= axp20x-rsb.o
>  
>  obj-$(CONFIG_MFD_LP3943)	+= lp3943.o
>  obj-$(CONFIG_MFD_LP8788)	+= lp8788.o lp8788-irq.o
> diff --git a/drivers/mfd/axp20x-rsb.c b/drivers/mfd/axp20x-rsb.c
> new file mode 100644
> index 000000000000..76ff02b96df0
> --- /dev/null
> +++ b/drivers/mfd/axp20x-rsb.c
> @@ -0,0 +1,78 @@
> +/*
> + * axp20x-rsb.c - RSB driver for the X-Powers' Power Management ICs

Please remove the name of the file from the header.

They have a habit of becoming out of date.

> + * AXP20x typically comprises an adaptive USB-Compatible PWM charger, BUCK DC-DC
> + * converters, LDOs, multiple 12-bit ADCs of voltage, current and temperature
> + * as well as configurable GPIOs.
> + *
> + * This driver supports the RSB variants.

No copyright line?

> + * Author: Chen-Yu Tsai <wens@csie.org>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include <linux/acpi.h>
> +#include <linux/err.h>
> +#include <linux/module.h>
> +#include <linux/mfd/axp20x.h>

'f' comes before 'o'.

> +#include <linux/of.h>
> +#include <linux/regmap.h>
> +#include <linux/slab.h>
> +#include <linux/sunxi-rsb.h>
> +
> +static int axp20x_rsb_probe(struct sunxi_rsb_device *rdev)
> +{
> +	struct axp20x_dev *axp20x;
> +	int ret;
> +
> +	axp20x = devm_kzalloc(&rdev->dev, sizeof(*axp20x), GFP_KERNEL);
> +	if (!axp20x)
> +		return -ENOMEM;
> +
> +	axp20x->dev = &rdev->dev;
> +	axp20x->irq = rdev->irq;
> +	sunxi_rsb_device_set_drvdata(rdev, axp20x);

What's the point of this call?  Why do you need a sunxi_ variant?

> +	ret = axp20x_match_device(axp20x);
> +	if (ret)
> +		return ret;
> +
> +	axp20x->regmap = devm_regmap_init_sunxi_rsb(rdev, axp20x->regmap_cfg);
> +	if (IS_ERR(axp20x->regmap)) {
> +		ret = PTR_ERR(axp20x->regmap);
> +		dev_err(&rdev->dev, "regmap init failed: %d\n", ret);
> +		return ret;
> +	}
> +
> +	return axp20x_device_probe(axp20x);
> +}
> +
> +static int axp20x_rsb_remove(struct sunxi_rsb_device *rdev)
> +{
> +	struct axp20x_dev *axp20x = sunxi_rsb_device_get_drvdata(rdev);
> +
> +	return axp20x_device_remove(axp20x);
> +}
> +
> +static const struct of_device_id axp20x_rsb_of_match[] = {
> +	{ .compatible = "x-powers,axp223", .data = (void *)AXP223_ID },
> +	{ },
> +};
> +MODULE_DEVICE_TABLE(of, axp20x_rsb_of_match);
> +
> +static struct sunxi_rsb_driver axp20x_rsb_driver = {
> +	.driver = {
> +		.name	= "axp20x-rsb",
> +		.of_match_table	= of_match_ptr(axp20x_rsb_of_match),
> +	},
> +	.probe	= axp20x_rsb_probe,
> +	.remove	= axp20x_rsb_remove,
> +};
> +module_sunxi_rsb_driver(axp20x_rsb_driver);
> +
> +MODULE_DESCRIPTION("PMIC MFD sunXi RSB driver for AXP20X");
> +MODULE_AUTHOR("Chen-Yu Tsai <wens@csie.org>");
> +MODULE_LICENSE("GPL v2");
> diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c
> index 54a00168da26..968d77fb95d8 100644
> --- a/drivers/mfd/axp20x.c
> +++ b/drivers/mfd/axp20x.c
> @@ -33,6 +33,7 @@ static const char * const axp20x_model_names[] = {
>  	"AXP202",
>  	"AXP209",
>  	"AXP221",
> +	"AXP223",
>  	"AXP288",
>  };
>  
> @@ -616,6 +617,7 @@ int axp20x_match_device(struct axp20x_dev *axp20x)
>  		axp20x->regmap_irq_chip = &axp20x_regmap_irq_chip;
>  		break;
>  	case AXP221_ID:
> +	case AXP223_ID:
>  		axp20x->nr_cells = ARRAY_SIZE(axp22x_cells);
>  		axp20x->cells = axp22x_cells;
>  		axp20x->regmap_cfg = &axp22x_regmap_config;
> diff --git a/include/linux/mfd/axp20x.h b/include/linux/mfd/axp20x.h
> index 00697c6ad8b0..d82e7d51372b 100644
> --- a/include/linux/mfd/axp20x.h
> +++ b/include/linux/mfd/axp20x.h
> @@ -18,6 +18,7 @@ enum {
>  	AXP202_ID,
>  	AXP209_ID,
>  	AXP221_ID,
> +	AXP223_ID,
>  	AXP288_ID,
>  	NR_AXP20X_VARIANTS,
>  };

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

  reply	other threads:[~2016-01-11  9:24 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-16 16:32 [PATCH v6 0/9] mfd: axp20x: Add support for RSB based AXP223 Chen-Yu Tsai
2015-12-16 16:32 ` Chen-Yu Tsai
2015-12-16 16:32 ` Chen-Yu Tsai
2015-12-16 16:32 ` [PATCH v6 1/9] mfd: axp20x: Add AXP223 to list of supported PMICs in DT bindings Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2015-12-16 16:32 ` [PATCH v6 2/9] mfd: axp20x: Remove second struct device * parameter for axp20x_match_device() Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2016-01-11  9:25   ` Lee Jones
2016-01-11  9:25     ` Lee Jones
2016-01-11  9:25     ` Lee Jones
2015-12-16 16:32 ` [PATCH v6 3/9] mfd: axp20x: use dev->driver->of_match_table in axp20x_match_device() Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2016-01-11  9:25   ` Lee Jones
2016-01-11  9:25     ` Lee Jones
2016-01-11  9:25     ` Lee Jones
2015-12-16 16:32 ` [PATCH v6 4/9] mfd: axp20x: Split the driver into core and i2c bits Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2016-01-11  9:25   ` Lee Jones
2016-01-11  9:25     ` Lee Jones
2016-01-11  9:25     ` Lee Jones
2016-01-12  2:06     ` Chen-Yu Tsai
2016-01-12  2:06       ` Chen-Yu Tsai
2016-01-12  2:06       ` Chen-Yu Tsai
2016-01-12  7:39       ` Lee Jones
2016-01-12  7:39         ` Lee Jones
2016-01-12  7:39         ` Lee Jones
2015-12-16 16:32 ` [PATCH v6 5/9] mfd: axp20x: Whitespace, open parenthesis alignment code style fixes Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2016-01-11  9:24   ` Lee Jones
2016-01-11  9:24     ` Lee Jones
2016-01-11  9:24     ` Lee Jones
2015-12-16 16:32 ` [PATCH v6 6/9] mfd: axp20x: Add support for RSB based AXP223 PMIC Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2016-01-11  9:24   ` Lee Jones [this message]
2016-01-11  9:24     ` Lee Jones
2016-01-11  9:24     ` Lee Jones
2016-01-11 11:58     ` Chen-Yu Tsai
2016-01-11 11:58       ` Chen-Yu Tsai
2016-01-11 12:09       ` Lee Jones
2016-01-11 12:09         ` Lee Jones
2016-01-11 12:09         ` Lee Jones
2016-01-11 12:49         ` Chen-Yu Tsai
2016-01-11 12:49           ` Chen-Yu Tsai
2016-01-11 12:49           ` Chen-Yu Tsai
2016-01-11 13:35           ` Lee Jones
2016-01-11 13:35             ` Lee Jones
2016-01-11 13:35             ` Lee Jones
2015-12-16 16:32 ` [PATCH v6 7/9] regulator: axp20x: Support new " Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2015-12-16 16:32 ` [PATCH v6 8/9] ARM: dts: sun8i: sinlinx-sina33: Add AXP223 PMIC device and regulator nodes Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2015-12-16 16:32 ` [PATCH v6 9/9] ARM: dts: sun8i: q8-common: " Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2015-12-16 16:32   ` Chen-Yu Tsai
2016-01-04  8:40 ` [PATCH v6 0/9] mfd: axp20x: Add support for RSB based AXP223 Chen-Yu Tsai
2016-01-04  8:40   ` Chen-Yu Tsai
2016-01-04  8:40   ` Chen-Yu Tsai

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=20160111092427.GI14104@x1 \
    --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 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.