All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@bootlin.com>
To: Philipp Rossak <embed3d@gmail.com>
Cc: lee.jones@linaro.org, robh+dt@kernel.org, mark.rutland@arm.com,
	wens@csie.org, linux@armlinux.org.uk, jic23@kernel.org,
	knaack.h@gmx.de, lars@metafoo.de, pmeerw@pmeerw.net,
	eugen.hristev@microchip.com, rdunlap@infradead.org,
	vilhelm.gray@gmail.com, clabbe.montjoie@gmail.com,
	quentin.schulz@bootlin.com, geert+renesas@glider.be,
	lukas@wunner.de, icenowy@aosc.io, arnd@arndb.de,
	broonie@kernel.org, arnaud.pouliquen@st.com,
	linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com
Subject: Re: [PATCH v3 17/30] iio: adc: sun4i-gpadc-iio: rework: support clocks and reset
Date: Fri, 31 Aug 2018 11:03:07 +0200	[thread overview]
Message-ID: <20180831090307.v3bp445sgugquh6f@flea> (raw)
In-Reply-To: <20180830154518.29507-18-embed3d@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4092 bytes --]

On Thu, Aug 30, 2018 at 05:45:05PM +0200, Philipp Rossak wrote:
> For adding newer sensor some basic rework of the code is necessary.
> 
> The SoCs after H3 has newer thermal sensor ADCs, which have two clock
> inputs (bus clock and sampling clock) and a reset. The registers are
> also re-arranged.
> 
> This commit reworks the code, adds the process of the clocks and resets.
> 
> Signed-off-by: Philipp Rossak <embed3d@gmail.com>
> ---
>  drivers/iio/adc/sun4i-gpadc-iio.c | 72 +++++++++++++++++++++++++++++++++++++--
>  1 file changed, 70 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/adc/sun4i-gpadc-iio.c b/drivers/iio/adc/sun4i-gpadc-iio.c
> index c278e165e161..c12de48c4e86 100644
> --- a/drivers/iio/adc/sun4i-gpadc-iio.c
> +++ b/drivers/iio/adc/sun4i-gpadc-iio.c
> @@ -22,6 +22,7 @@
>   * shutdown for not being used.
>   */
>  
> +#include <linux/clk.h>
>  #include <linux/completion.h>
>  #include <linux/interrupt.h>
>  #include <linux/io.h>
> @@ -31,6 +32,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/pm_runtime.h>
>  #include <linux/regmap.h>
> +#include <linux/reset.h>
>  #include <linux/thermal.h>
>  #include <linux/delay.h>
>  
> @@ -63,6 +65,9 @@ struct gpadc_data {
>  	int		(*ths_suspend)(struct sun4i_gpadc_iio *info);
>  	int		(*ths_resume)(struct sun4i_gpadc_iio *info);
>  	bool		support_irq;
> +	bool		has_bus_clk;
> +	bool		has_bus_rst;
> +	bool		has_mod_clk;
>  	u32		temp_data_base;
>  };
>  
> @@ -127,6 +132,9 @@ struct sun4i_gpadc_iio {
>  	struct mutex			mutex;
>  	struct thermal_zone_device	*tzd;
>  	struct device			*sensor_device;
> +	struct clk			*bus_clk;
> +	struct clk			*mod_clk;
> +	struct reset_control		*reset;
>  };
>  
>  static const struct iio_chan_spec sun4i_gpadc_channels[] = {
> @@ -472,8 +480,13 @@ static int sun4i_gpadc_probe_dt(struct platform_device *pdev,
>  	if (IS_ERR(base))
>  		return PTR_ERR(base);
>  
> -	info->regmap = devm_regmap_init_mmio(&pdev->dev, base,
> -					     &sun4i_gpadc_regmap_config);
> +	if (info->data->has_bus_clk)
> +		info->regmap = devm_regmap_init_mmio_clk(&pdev->dev, "bus",
> +				base, &sun4i_gpadc_regmap_config);
> +	else
> +		info->regmap = devm_regmap_init_mmio(&pdev->dev, base,
> +				&sun4i_gpadc_regmap_config);
> +
>  	if (IS_ERR(info->regmap)) {
>  		ret = PTR_ERR(info->regmap);
>  		dev_err(&pdev->dev, "failed to init regmap: %d\n", ret);
> @@ -498,9 +511,58 @@ static int sun4i_gpadc_probe_dt(struct platform_device *pdev,
>  		}
>  	}
>  
> +	if (info->data->has_bus_rst) {
> +		info->reset = devm_reset_control_get(&pdev->dev, NULL);
> +		if (IS_ERR(info->reset)) {
> +			ret = PTR_ERR(info->reset);
> +			return ret;
> +		}
> +
> +		ret = reset_control_deassert(info->reset);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	if (info->data->has_bus_clk) {
> +		info->bus_clk = devm_clk_get(&pdev->dev, "bus");
> +		if (IS_ERR(info->bus_clk)) {
> +			ret = PTR_ERR(info->bus_clk);
> +			goto assert_reset;
> +		}
> +
> +		ret = clk_prepare_enable(info->bus_clk);
> +		if (ret)
> +			goto assert_reset;

That should be done in the runtime_resume hook

> +	}
> +
> +	if (info->data->has_mod_clk) {
> +		info->mod_clk = devm_clk_get(&pdev->dev, "mod");
> +		if (IS_ERR(info->mod_clk)) {
> +			ret = PTR_ERR(info->mod_clk);
> +			goto disable_bus_clk;
> +		}
> +
> +		/* Running at 4MHz */
> +		ret = clk_set_rate(info->mod_clk, 4000000);
> +		if (ret)
> +			goto disable_bus_clk;

Why?

> +		ret = clk_prepare_enable(info->mod_clk);
> +		if (ret)
> +			goto disable_bus_clk;
> +	}
> +
>  	info->sensor_device = &pdev->dev;
>  
>  	return 0;
> +
> +disable_bus_clk:
> +	clk_disable_unprepare(info->bus_clk);
> +
> +assert_reset:
> +	reset_control_assert(info->reset);

You should check for the variables here before calling those
functions, if you end up here with your variable not set, you'll have
improper refcounting.

Maxime

-- 
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime.ripard-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org>
To: Philipp Rossak <embed3d-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	mark.rutland-5wv7dgnIgG8@public.gmane.org,
	wens-jdAy2FN1RRM@public.gmane.org,
	linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org,
	jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	knaack.h-Mmb7MZpHnFY@public.gmane.org,
	lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org,
	pmeerw-jW+XmwGofnusTnJN9+BGXg@public.gmane.org,
	eugen.hristev-UWL1GkI3JZL3oGB3hsPCZA@public.gmane.org,
	rdunlap-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org,
	vilhelm.gray-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	clabbe.montjoie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	quentin.schulz-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org,
	geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org,
	lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org,
	icenowy-h8G6r0blFSE@public.gmane.org,
	arnd-r2nGTMty4D4@public.gmane.org,
	broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	arnaud.pouliquen-qxv4g6HH51o@public.gmane.org,
	linux-iio-u79uwXL29TY76Z2rM5mHXA@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
Subject: Re: [PATCH v3 17/30] iio: adc: sun4i-gpadc-iio: rework: support clocks and reset
Date: Fri, 31 Aug 2018 11:03:07 +0200	[thread overview]
Message-ID: <20180831090307.v3bp445sgugquh6f@flea> (raw)
In-Reply-To: <20180830154518.29507-18-embed3d-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 3981 bytes --]

On Thu, Aug 30, 2018 at 05:45:05PM +0200, Philipp Rossak wrote:
> For adding newer sensor some basic rework of the code is necessary.
> 
> The SoCs after H3 has newer thermal sensor ADCs, which have two clock
> inputs (bus clock and sampling clock) and a reset. The registers are
> also re-arranged.
> 
> This commit reworks the code, adds the process of the clocks and resets.
> 
> Signed-off-by: Philipp Rossak <embed3d-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
>  drivers/iio/adc/sun4i-gpadc-iio.c | 72 +++++++++++++++++++++++++++++++++++++--
>  1 file changed, 70 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/adc/sun4i-gpadc-iio.c b/drivers/iio/adc/sun4i-gpadc-iio.c
> index c278e165e161..c12de48c4e86 100644
> --- a/drivers/iio/adc/sun4i-gpadc-iio.c
> +++ b/drivers/iio/adc/sun4i-gpadc-iio.c
> @@ -22,6 +22,7 @@
>   * shutdown for not being used.
>   */
>  
> +#include <linux/clk.h>
>  #include <linux/completion.h>
>  #include <linux/interrupt.h>
>  #include <linux/io.h>
> @@ -31,6 +32,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/pm_runtime.h>
>  #include <linux/regmap.h>
> +#include <linux/reset.h>
>  #include <linux/thermal.h>
>  #include <linux/delay.h>
>  
> @@ -63,6 +65,9 @@ struct gpadc_data {
>  	int		(*ths_suspend)(struct sun4i_gpadc_iio *info);
>  	int		(*ths_resume)(struct sun4i_gpadc_iio *info);
>  	bool		support_irq;
> +	bool		has_bus_clk;
> +	bool		has_bus_rst;
> +	bool		has_mod_clk;
>  	u32		temp_data_base;
>  };
>  
> @@ -127,6 +132,9 @@ struct sun4i_gpadc_iio {
>  	struct mutex			mutex;
>  	struct thermal_zone_device	*tzd;
>  	struct device			*sensor_device;
> +	struct clk			*bus_clk;
> +	struct clk			*mod_clk;
> +	struct reset_control		*reset;
>  };
>  
>  static const struct iio_chan_spec sun4i_gpadc_channels[] = {
> @@ -472,8 +480,13 @@ static int sun4i_gpadc_probe_dt(struct platform_device *pdev,
>  	if (IS_ERR(base))
>  		return PTR_ERR(base);
>  
> -	info->regmap = devm_regmap_init_mmio(&pdev->dev, base,
> -					     &sun4i_gpadc_regmap_config);
> +	if (info->data->has_bus_clk)
> +		info->regmap = devm_regmap_init_mmio_clk(&pdev->dev, "bus",
> +				base, &sun4i_gpadc_regmap_config);
> +	else
> +		info->regmap = devm_regmap_init_mmio(&pdev->dev, base,
> +				&sun4i_gpadc_regmap_config);
> +
>  	if (IS_ERR(info->regmap)) {
>  		ret = PTR_ERR(info->regmap);
>  		dev_err(&pdev->dev, "failed to init regmap: %d\n", ret);
> @@ -498,9 +511,58 @@ static int sun4i_gpadc_probe_dt(struct platform_device *pdev,
>  		}
>  	}
>  
> +	if (info->data->has_bus_rst) {
> +		info->reset = devm_reset_control_get(&pdev->dev, NULL);
> +		if (IS_ERR(info->reset)) {
> +			ret = PTR_ERR(info->reset);
> +			return ret;
> +		}
> +
> +		ret = reset_control_deassert(info->reset);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	if (info->data->has_bus_clk) {
> +		info->bus_clk = devm_clk_get(&pdev->dev, "bus");
> +		if (IS_ERR(info->bus_clk)) {
> +			ret = PTR_ERR(info->bus_clk);
> +			goto assert_reset;
> +		}
> +
> +		ret = clk_prepare_enable(info->bus_clk);
> +		if (ret)
> +			goto assert_reset;

That should be done in the runtime_resume hook

> +	}
> +
> +	if (info->data->has_mod_clk) {
> +		info->mod_clk = devm_clk_get(&pdev->dev, "mod");
> +		if (IS_ERR(info->mod_clk)) {
> +			ret = PTR_ERR(info->mod_clk);
> +			goto disable_bus_clk;
> +		}
> +
> +		/* Running at 4MHz */
> +		ret = clk_set_rate(info->mod_clk, 4000000);
> +		if (ret)
> +			goto disable_bus_clk;

Why?

> +		ret = clk_prepare_enable(info->mod_clk);
> +		if (ret)
> +			goto disable_bus_clk;
> +	}
> +
>  	info->sensor_device = &pdev->dev;
>  
>  	return 0;
> +
> +disable_bus_clk:
> +	clk_disable_unprepare(info->bus_clk);
> +
> +assert_reset:
> +	reset_control_assert(info->reset);

You should check for the variables here before calling those
functions, if you end up here with your variable not set, you'll have
improper refcounting.

Maxime

-- 
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

WARNING: multiple messages have this Message-ID (diff)
From: maxime.ripard@bootlin.com (Maxime Ripard)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 17/30] iio: adc: sun4i-gpadc-iio: rework: support clocks and reset
Date: Fri, 31 Aug 2018 11:03:07 +0200	[thread overview]
Message-ID: <20180831090307.v3bp445sgugquh6f@flea> (raw)
In-Reply-To: <20180830154518.29507-18-embed3d@gmail.com>

On Thu, Aug 30, 2018 at 05:45:05PM +0200, Philipp Rossak wrote:
> For adding newer sensor some basic rework of the code is necessary.
> 
> The SoCs after H3 has newer thermal sensor ADCs, which have two clock
> inputs (bus clock and sampling clock) and a reset. The registers are
> also re-arranged.
> 
> This commit reworks the code, adds the process of the clocks and resets.
> 
> Signed-off-by: Philipp Rossak <embed3d@gmail.com>
> ---
>  drivers/iio/adc/sun4i-gpadc-iio.c | 72 +++++++++++++++++++++++++++++++++++++--
>  1 file changed, 70 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/adc/sun4i-gpadc-iio.c b/drivers/iio/adc/sun4i-gpadc-iio.c
> index c278e165e161..c12de48c4e86 100644
> --- a/drivers/iio/adc/sun4i-gpadc-iio.c
> +++ b/drivers/iio/adc/sun4i-gpadc-iio.c
> @@ -22,6 +22,7 @@
>   * shutdown for not being used.
>   */
>  
> +#include <linux/clk.h>
>  #include <linux/completion.h>
>  #include <linux/interrupt.h>
>  #include <linux/io.h>
> @@ -31,6 +32,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/pm_runtime.h>
>  #include <linux/regmap.h>
> +#include <linux/reset.h>
>  #include <linux/thermal.h>
>  #include <linux/delay.h>
>  
> @@ -63,6 +65,9 @@ struct gpadc_data {
>  	int		(*ths_suspend)(struct sun4i_gpadc_iio *info);
>  	int		(*ths_resume)(struct sun4i_gpadc_iio *info);
>  	bool		support_irq;
> +	bool		has_bus_clk;
> +	bool		has_bus_rst;
> +	bool		has_mod_clk;
>  	u32		temp_data_base;
>  };
>  
> @@ -127,6 +132,9 @@ struct sun4i_gpadc_iio {
>  	struct mutex			mutex;
>  	struct thermal_zone_device	*tzd;
>  	struct device			*sensor_device;
> +	struct clk			*bus_clk;
> +	struct clk			*mod_clk;
> +	struct reset_control		*reset;
>  };
>  
>  static const struct iio_chan_spec sun4i_gpadc_channels[] = {
> @@ -472,8 +480,13 @@ static int sun4i_gpadc_probe_dt(struct platform_device *pdev,
>  	if (IS_ERR(base))
>  		return PTR_ERR(base);
>  
> -	info->regmap = devm_regmap_init_mmio(&pdev->dev, base,
> -					     &sun4i_gpadc_regmap_config);
> +	if (info->data->has_bus_clk)
> +		info->regmap = devm_regmap_init_mmio_clk(&pdev->dev, "bus",
> +				base, &sun4i_gpadc_regmap_config);
> +	else
> +		info->regmap = devm_regmap_init_mmio(&pdev->dev, base,
> +				&sun4i_gpadc_regmap_config);
> +
>  	if (IS_ERR(info->regmap)) {
>  		ret = PTR_ERR(info->regmap);
>  		dev_err(&pdev->dev, "failed to init regmap: %d\n", ret);
> @@ -498,9 +511,58 @@ static int sun4i_gpadc_probe_dt(struct platform_device *pdev,
>  		}
>  	}
>  
> +	if (info->data->has_bus_rst) {
> +		info->reset = devm_reset_control_get(&pdev->dev, NULL);
> +		if (IS_ERR(info->reset)) {
> +			ret = PTR_ERR(info->reset);
> +			return ret;
> +		}
> +
> +		ret = reset_control_deassert(info->reset);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	if (info->data->has_bus_clk) {
> +		info->bus_clk = devm_clk_get(&pdev->dev, "bus");
> +		if (IS_ERR(info->bus_clk)) {
> +			ret = PTR_ERR(info->bus_clk);
> +			goto assert_reset;
> +		}
> +
> +		ret = clk_prepare_enable(info->bus_clk);
> +		if (ret)
> +			goto assert_reset;

That should be done in the runtime_resume hook

> +	}
> +
> +	if (info->data->has_mod_clk) {
> +		info->mod_clk = devm_clk_get(&pdev->dev, "mod");
> +		if (IS_ERR(info->mod_clk)) {
> +			ret = PTR_ERR(info->mod_clk);
> +			goto disable_bus_clk;
> +		}
> +
> +		/* Running at 4MHz */
> +		ret = clk_set_rate(info->mod_clk, 4000000);
> +		if (ret)
> +			goto disable_bus_clk;

Why?

> +		ret = clk_prepare_enable(info->mod_clk);
> +		if (ret)
> +			goto disable_bus_clk;
> +	}
> +
>  	info->sensor_device = &pdev->dev;
>  
>  	return 0;
> +
> +disable_bus_clk:
> +	clk_disable_unprepare(info->bus_clk);
> +
> +assert_reset:
> +	reset_control_assert(info->reset);

You should check for the variables here before calling those
functions, if you end up here with your variable not set, you'll have
improper refcounting.

Maxime

-- 
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180831/8743f680/attachment-0001.sig>

  reply	other threads:[~2018-08-31  9:03 UTC|newest]

Thread overview: 244+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-30 15:44 [PATCH v3 00/30] IIO-based thermal sensor driver for Allwinner H3 and A83T SoC Philipp Rossak
2018-08-30 15:44 ` Philipp Rossak
2018-08-30 15:44 ` Philipp Rossak
2018-08-30 15:44 ` [PATCH v3 01/30] mfd: Makefile: Remove build option for MFD:sun4i-gpadc Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-31  8:25   ` Maxime Ripard
2018-08-31  8:25     ` Maxime Ripard
2018-08-31  8:25     ` Maxime Ripard
2018-09-02 19:58     ` Jonathan Cameron
2018-09-02 19:58       ` Jonathan Cameron
2018-08-30 15:44 ` [PATCH v3 02/30] mfd: Kconfig: Remove MFD_SUN4I_GPADC config option Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-09-02 19:58   ` Jonathan Cameron
2018-09-02 19:58     ` Jonathan Cameron
2018-08-30 15:44 ` [PATCH v3 03/30] iio: adc: Remove ID table Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44 ` [PATCH v3 04/30] iio: adc: Kconfig: Update Kconfig to new build options Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-31  8:32   ` Maxime Ripard
2018-08-31  8:32     ` Maxime Ripard
2018-08-31  8:32     ` Maxime Ripard
2018-08-30 15:44 ` [PATCH v3 05/30] iio: adc: move SUN4I_GPADC_CHANNEL define to header file Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-09-02 20:01   ` Jonathan Cameron
2018-09-02 20:01     ` Jonathan Cameron
2018-09-03 14:24     ` Philipp Rossak
2018-09-03 14:24       ` Philipp Rossak
2018-09-03 14:24       ` Philipp Rossak
2018-09-03 17:28       ` Jonathan Cameron
2018-09-03 17:28         ` Jonathan Cameron
2018-08-30 15:44 ` [PATCH v3 06/30] iio: adc: remove ofnode options Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44 ` [PATCH v3 07/30] iio: adc: remove mfd_probe & sunwi_irq_init function Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-31  8:34   ` Maxime Ripard
2018-08-31  8:34     ` Maxime Ripard
2018-08-31  8:34     ` Maxime Ripard
2018-08-30 15:44 ` [PATCH v3 08/30] iio: adc: remove hwmon structure Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-31  8:34   ` Maxime Ripard
2018-08-31  8:34     ` Maxime Ripard
2018-08-31  8:34     ` Maxime Ripard
2018-08-30 15:44 ` [PATCH v3 09/30] iio: adc: Threat A33 as thermal sensor and remove non thermal sun4i channel Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 16:40   ` [linux-sunxi] " Ondřej Jirman
2018-08-30 16:40     ` Ondřej Jirman
2018-08-30 16:40     ` 'Ondřej Jirman' via linux-sunxi
2018-08-31  8:35   ` Maxime Ripard
2018-08-31  8:35     ` Maxime Ripard
2018-08-31  8:35     ` Maxime Ripard
2018-08-30 15:44 ` [PATCH v3 10/30] iio: adc: rework irq and adc_channel handling Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-31  8:44   ` Maxime Ripard
2018-08-31  8:44     ` Maxime Ripard
2018-08-31  8:44     ` Maxime Ripard
2018-08-30 15:44 ` [PATCH v3 11/30] iio: adc: add new compatibles Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-30 15:44   ` Philipp Rossak
2018-08-31  8:46   ` Maxime Ripard
2018-08-31  8:46     ` Maxime Ripard
2018-08-31  8:46     ` Maxime Ripard
2018-08-30 15:45 ` [PATCH v3 12/30] mfd: Remove old mfd driver & Move sun4i-gpadc.h to iio/adc/ Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45 ` [PATCH v3 13/30] arm: config: Enable SUN4I_GPADC in defconfig Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45 ` [PATCH v3 14/30] dt-bindings: update the Allwinner GPADC device tree binding for H3 & A83T Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-31  8:48   ` Maxime Ripard
2018-08-31  8:48     ` Maxime Ripard
2018-08-31  8:48     ` Maxime Ripard
2018-09-10 19:44     ` Rob Herring
2018-09-10 19:44       ` Rob Herring
2018-09-10 19:44       ` Rob Herring
2018-09-11  9:12       ` Maxime Ripard
2018-09-11  9:12         ` Maxime Ripard
2018-09-11  9:12         ` Maxime Ripard
2018-08-30 15:45 ` [PATCH v3 15/30] iio: adc: sun4i-gpadc-iio: rename A33-specified registers to contain A33 Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45 ` [PATCH v3 16/30] iio: adc: sun4i-gpadc-iio: rework: readout temp_data Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-31  8:50   ` Maxime Ripard
2018-08-31  8:50     ` Maxime Ripard
2018-08-31  8:50     ` Maxime Ripard
2018-08-30 15:45 ` [PATCH v3 17/30] iio: adc: sun4i-gpadc-iio: rework: support clocks and reset Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-31  9:03   ` Maxime Ripard [this message]
2018-08-31  9:03     ` Maxime Ripard
2018-08-31  9:03     ` Maxime Ripard
2018-08-30 15:45 ` [PATCH v3 18/30] iio: adc: sun4i-gpadc-iio: rework: support multiple sensors Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-31  9:05   ` Maxime Ripard
2018-08-31  9:05     ` Maxime Ripard
2018-08-31  9:05     ` Maxime Ripard
2018-09-02 20:11   ` Jonathan Cameron
2018-09-02 20:11     ` Jonathan Cameron
2018-09-03 13:58     ` Philipp Rossak
2018-09-03 13:58       ` Philipp Rossak
2018-09-03 13:58       ` Philipp Rossak
2018-09-03 17:29       ` Jonathan Cameron
2018-09-03 17:29         ` Jonathan Cameron
2018-08-30 15:45 ` [PATCH v3 19/30] iio: adc: sun4i-gpadc-iio: rework: support nvmem calibration data Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-31  9:07   ` Maxime Ripard
2018-08-31  9:07     ` Maxime Ripard
2018-08-31  9:07     ` Maxime Ripard
2018-08-30 15:45 ` [PATCH v3 20/30] iio: adc: sun4i-gpadc-iio: rework: device specific suspend & resume Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-31  9:09   ` Maxime Ripard
2018-08-31  9:09     ` Maxime Ripard
2018-08-31  9:09     ` Maxime Ripard
2018-08-31 12:05     ` Philipp Rossak
2018-08-31 12:05       ` Philipp Rossak
2018-08-31 12:05       ` Philipp Rossak
2018-09-03  9:44       ` Maxime Ripard
2018-09-03  9:44         ` Maxime Ripard
2018-09-03  9:44         ` Maxime Ripard
2018-08-30 15:45 ` [PATCH v3 21/30] iio: adc: sun4i-gpadc-iio: add support for H3 thermal sensor Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 16:27   ` [linux-sunxi] " Ondřej Jirman
2018-08-30 16:27     ` Ondřej Jirman
2018-08-30 16:27     ` 'Ondřej Jirman' via linux-sunxi
2018-08-30 20:00     ` [linux-sunxi] " Philipp Rossak
2018-08-30 20:00       ` Philipp Rossak
2018-08-30 20:00       ` Philipp Rossak
2018-08-30 20:46       ` [linux-sunxi] " Philipp Rossak
2018-08-30 20:46         ` Philipp Rossak
2018-08-30 20:46         ` Philipp Rossak
2018-08-31  9:11   ` Maxime Ripard
2018-08-31  9:11     ` Maxime Ripard
2018-08-31  9:11     ` Maxime Ripard
2018-08-31  9:51     ` Icenowy Zheng
2018-08-31  9:51       ` Icenowy Zheng
2018-08-31 11:58       ` [linux-sunxi] " Philipp Rossak
2018-08-31 11:58         ` Philipp Rossak
2018-08-31 11:58         ` Philipp Rossak
2018-09-03 10:20       ` Maxime Ripard
2018-09-03 10:20         ` Maxime Ripard
2018-09-03 10:20         ` Maxime Ripard
2018-09-03 11:01         ` [linux-sunxi] " Icenowy Zheng
2018-09-03 11:01           ` Icenowy Zheng
2018-09-03 11:01           ` Icenowy Zheng
2018-09-03 11:01           ` Icenowy Zheng
2018-09-05 14:58           ` Maxime Ripard
2018-09-05 14:58             ` Maxime Ripard
2018-09-05 14:58             ` Maxime Ripard
2018-08-31 12:01     ` Philipp Rossak
2018-08-31 12:01       ` Philipp Rossak
2018-08-31 12:01       ` Philipp Rossak
2018-08-30 15:45 ` [PATCH v3 22/30] iio: adc: sun4i-gpadc-iio: add support for A83T " Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45 ` [PATCH v3 23/30] ARM: dts: sunxi-h3-h5: add support for the thermal sensor in H3 and H5 Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45 ` [PATCH v3 24/30] ARM: dts: sun8i: h3: add support for the thermal sensor in H3 Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45 ` [PATCH v3 25/30] ARM: dts: sun8i: h3: add thermal zone to H3 Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-31  9:14   ` Maxime Ripard
2018-08-31  9:14     ` Maxime Ripard
2018-08-31  9:14     ` Maxime Ripard
2018-08-30 15:45 ` [PATCH v3 26/30] ARM: dts: sun8i: h3: enable H3 sid controller Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45 ` [PATCH v3 27/30] ARM: dts: sun8i: h3: use calibration for ths Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-09-04 16:46   ` Emmanuel Vadot
2018-09-04 16:46     ` Emmanuel Vadot
2018-09-06 11:47     ` Philipp Rossak
2018-09-06 11:47       ` Philipp Rossak
2018-09-06 11:47       ` Philipp Rossak
2018-09-06 11:51       ` Maxime Ripard
2018-09-06 11:51         ` Maxime Ripard
2018-09-06 11:51         ` Maxime Ripard
2018-09-06 12:04         ` [linux-sunxi] " Icenowy Zheng
2018-09-06 12:04           ` Icenowy Zheng
2018-09-06 12:04           ` Icenowy Zheng
2018-09-06 12:18           ` Philipp Rossak
2018-09-06 12:18             ` Philipp Rossak
2019-02-19  7:54         ` Allwinner SID THS calibration data cell representation? Chen-Yu Tsai
2019-02-20 14:55           ` Maxime Ripard
2019-02-20 14:55             ` Maxime Ripard
2019-02-21 10:10           ` Emmanuel Vadot
2019-02-21 10:10             ` Emmanuel Vadot
2019-02-21 10:10             ` Emmanuel Vadot
2019-02-25 20:37           ` Philipp Rossak
2019-02-25 20:37             ` Philipp Rossak
2019-02-25 20:37             ` Philipp Rossak
2018-08-30 15:45 ` [PATCH v3 28/30] ARM: dts: sun8i: a83t: add support for the thermal sensor in A83T Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45 ` [PATCH v3 29/30] ARM: dts: sun8i: a83t: add thermal zone to A83T Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 15:45 ` [PATCH v3 30/30] ARM: sun8i: a83t: full range OPP tables and CPUfreq Philipp Rossak
2018-08-30 15:45   ` Philipp Rossak
2018-08-30 16:38   ` [linux-sunxi] " Ondřej Jirman
2018-08-30 16:38     ` Ondřej Jirman
2018-08-30 16:38     ` 'Ondřej Jirman' via linux-sunxi
2018-08-30 20:29     ` [linux-sunxi] " Philipp Rossak
2018-08-30 20:29       ` Philipp Rossak
2018-08-30 20:29       ` Philipp Rossak
2018-09-06  7:24   ` Quentin Schulz
2018-09-06  7:24     ` Quentin Schulz
2018-09-06  7:24     ` Quentin Schulz
2018-09-06 11:39     ` Philipp Rossak
2018-09-06 11:39       ` Philipp Rossak
2018-09-06 11:39       ` Philipp Rossak
2018-09-06 11:42       ` Maxime Ripard
2018-09-06 11:42         ` Maxime Ripard
2018-09-06 11:42         ` Maxime Ripard
2018-09-06 12:06         ` Quentin Schulz
2018-09-06 12:06           ` Quentin Schulz
2018-09-06 12:06           ` Quentin Schulz
2019-03-19 12:30 ` [PATCH v3 00/30] IIO-based thermal sensor driver for Allwinner H3 and A83T SoC Måns Rullgård
2019-03-19 12:30   ` Måns Rullgård
2019-03-19 12:37   ` Maxime Ripard
2019-03-19 12:37     ` Maxime Ripard
2019-03-19 12:37     ` Maxime Ripard
2019-03-19 13:04     ` [linux-sunxi] " Chen-Yu Tsai
2019-03-19 13:04       ` Chen-Yu Tsai
2019-03-19 13:04       ` 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=20180831090307.v3bp445sgugquh6f@flea \
    --to=maxime.ripard@bootlin.com \
    --cc=arnaud.pouliquen@st.com \
    --cc=arnd@arndb.de \
    --cc=broonie@kernel.org \
    --cc=clabbe.montjoie@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=embed3d@gmail.com \
    --cc=eugen.hristev@microchip.com \
    --cc=geert+renesas@glider.be \
    --cc=icenowy@aosc.io \
    --cc=jic23@kernel.org \
    --cc=knaack.h@gmx.de \
    --cc=lars@metafoo.de \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=linux@armlinux.org.uk \
    --cc=lukas@wunner.de \
    --cc=mark.rutland@arm.com \
    --cc=pmeerw@pmeerw.net \
    --cc=quentin.schulz@bootlin.com \
    --cc=rdunlap@infradead.org \
    --cc=robh+dt@kernel.org \
    --cc=vilhelm.gray@gmail.com \
    --cc=wens@csie.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.