All of lore.kernel.org
 help / color / mirror / Atom feed
From: jic23@kernel.org (Jonathan Cameron)
To: linus-amlogic@lists.infradead.org
Subject: [PATCH 4/5] iio: adc: meson-saradc: fix the clock frequency on Meson8 and Meson8b
Date: Sun, 19 Nov 2017 15:55:48 +0000	[thread overview]
Message-ID: <20171119155548.41cf4f6f@archlinux> (raw)
In-Reply-To: <20171031200147.14660-5-martin.blumenstingl@googlemail.com>

On Tue, 31 Oct 2017 21:01:46 +0100
Martin Blumenstingl <martin.blumenstingl@googlemail.com> wrote:

> GX SoCs use a 1.2 MHz ADC clock, while the older SoCs use a 1.14 MHz
> clock.
> 
> A comment in the driver from Amlogic's GPL kernel says that it's
> running at 1.28 MHz. However, it's actually programming a divider of
> 20 + 1. With a XTAL clock of 24 MHz this results in a frequency of
> 1.14 MHz. (their calculation might be based on a 27 MHz XTAL clock,
> but this is not what we have on the Meson8 and Meson8b SoCs).
> 
> The ADC was still working with the 1.2MHz clock. In my own tests I did
> not see a difference between 1.2 and 1.14 MHz (regardless of the clock
> frequency used, the ADC results were identical).
> 
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

Hmm. This will have to wait until the other patches have gotten into
mainline and back to my upstream.  Let me know if I seem to have lost
it. 

Thanks,

 
Jonathan

> ---
>  drivers/iio/adc/meson_saradc.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c
> index 7dc7d297a0fc..fa3c1378c2c9 100644
> --- a/drivers/iio/adc/meson_saradc.c
> +++ b/drivers/iio/adc/meson_saradc.c
> @@ -221,6 +221,7 @@ enum meson_sar_adc_chan7_mux_sel {
>  
>  struct meson_sar_adc_data {
>  	bool					has_bl30_integration;
> +	unsigned long				clock_rate;
>  	u32					bandgap_reg;
>  	unsigned int				resolution;
>  	const char				*name;
> @@ -684,7 +685,7 @@ static int meson_sar_adc_init(struct iio_dev *indio_dev)
>  		return ret;
>  	}
>  
> -	ret = clk_set_rate(priv->adc_clk, 1200000);
> +	ret = clk_set_rate(priv->adc_clk, priv->data->clock_rate);
>  	if (ret) {
>  		dev_err(indio_dev->dev.parent,
>  			"failed to set adc clock rate\n");
> @@ -867,6 +868,7 @@ static const struct iio_info meson_sar_adc_iio_info = {
>  
>  static const struct meson_sar_adc_data meson_sar_adc_meson8_data = {
>  	.has_bl30_integration = false,
> +	.clock_rate = 1150000,
>  	.bandgap_reg = MESON_SAR_ADC_DELTA_10,
>  	.regmap_config = &meson_sar_adc_regmap_config_meson8,
>  	.resolution = 10,
> @@ -875,6 +877,7 @@ static const struct meson_sar_adc_data meson_sar_adc_meson8_data = {
>  
>  static const struct meson_sar_adc_data meson_sar_adc_meson8b_data = {
>  	.has_bl30_integration = false,
> +	.clock_rate = 1150000,
>  	.bandgap_reg = MESON_SAR_ADC_DELTA_10,
>  	.regmap_config = &meson_sar_adc_regmap_config_meson8,
>  	.resolution = 10,
> @@ -883,6 +886,7 @@ static const struct meson_sar_adc_data meson_sar_adc_meson8b_data = {
>  
>  static const struct meson_sar_adc_data meson_sar_adc_gxbb_data = {
>  	.has_bl30_integration = true,
> +	.clock_rate = 1200000,
>  	.bandgap_reg = MESON_SAR_ADC_REG11,
>  	.regmap_config = &meson_sar_adc_regmap_config_gxbb,
>  	.resolution = 10,
> @@ -891,6 +895,7 @@ static const struct meson_sar_adc_data meson_sar_adc_gxbb_data = {
>  
>  static const struct meson_sar_adc_data meson_sar_adc_gxl_data = {
>  	.has_bl30_integration = true,
> +	.clock_rate = 1200000,
>  	.bandgap_reg = MESON_SAR_ADC_REG11,
>  	.regmap_config = &meson_sar_adc_regmap_config_gxbb,
>  	.resolution = 12,
> @@ -899,6 +904,7 @@ static const struct meson_sar_adc_data meson_sar_adc_gxl_data = {
>  
>  static const struct meson_sar_adc_data meson_sar_adc_gxm_data = {
>  	.has_bl30_integration = true,
> +	.clock_rate = 1200000,
>  	.bandgap_reg = MESON_SAR_ADC_REG11,
>  	.regmap_config = &meson_sar_adc_regmap_config_gxbb,
>  	.resolution = 12,

WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <jic23@kernel.org>
To: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: linux-iio@vger.kernel.org, knaack.h@gmx.de, lars@metafoo.de,
	pmeerw@pmeerw.net, linux-amlogic@lists.infradead.org
Subject: Re: [PATCH 4/5] iio: adc: meson-saradc: fix the clock frequency on Meson8 and Meson8b
Date: Sun, 19 Nov 2017 15:55:48 +0000	[thread overview]
Message-ID: <20171119155548.41cf4f6f@archlinux> (raw)
In-Reply-To: <20171031200147.14660-5-martin.blumenstingl@googlemail.com>

On Tue, 31 Oct 2017 21:01:46 +0100
Martin Blumenstingl <martin.blumenstingl@googlemail.com> wrote:

> GX SoCs use a 1.2 MHz ADC clock, while the older SoCs use a 1.14 MHz
> clock.
> 
> A comment in the driver from Amlogic's GPL kernel says that it's
> running at 1.28 MHz. However, it's actually programming a divider of
> 20 + 1. With a XTAL clock of 24 MHz this results in a frequency of
> 1.14 MHz. (their calculation might be based on a 27 MHz XTAL clock,
> but this is not what we have on the Meson8 and Meson8b SoCs).
> 
> The ADC was still working with the 1.2MHz clock. In my own tests I did
> not see a difference between 1.2 and 1.14 MHz (regardless of the clock
> frequency used, the ADC results were identical).
> 
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

Hmm. This will have to wait until the other patches have gotten into
mainline and back to my upstream.  Let me know if I seem to have lost
it. 

Thanks,

 
Jonathan

> ---
>  drivers/iio/adc/meson_saradc.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/meson_saradc.c b/drivers/iio/adc/meson_saradc.c
> index 7dc7d297a0fc..fa3c1378c2c9 100644
> --- a/drivers/iio/adc/meson_saradc.c
> +++ b/drivers/iio/adc/meson_saradc.c
> @@ -221,6 +221,7 @@ enum meson_sar_adc_chan7_mux_sel {
>  
>  struct meson_sar_adc_data {
>  	bool					has_bl30_integration;
> +	unsigned long				clock_rate;
>  	u32					bandgap_reg;
>  	unsigned int				resolution;
>  	const char				*name;
> @@ -684,7 +685,7 @@ static int meson_sar_adc_init(struct iio_dev *indio_dev)
>  		return ret;
>  	}
>  
> -	ret = clk_set_rate(priv->adc_clk, 1200000);
> +	ret = clk_set_rate(priv->adc_clk, priv->data->clock_rate);
>  	if (ret) {
>  		dev_err(indio_dev->dev.parent,
>  			"failed to set adc clock rate\n");
> @@ -867,6 +868,7 @@ static const struct iio_info meson_sar_adc_iio_info = {
>  
>  static const struct meson_sar_adc_data meson_sar_adc_meson8_data = {
>  	.has_bl30_integration = false,
> +	.clock_rate = 1150000,
>  	.bandgap_reg = MESON_SAR_ADC_DELTA_10,
>  	.regmap_config = &meson_sar_adc_regmap_config_meson8,
>  	.resolution = 10,
> @@ -875,6 +877,7 @@ static const struct meson_sar_adc_data meson_sar_adc_meson8_data = {
>  
>  static const struct meson_sar_adc_data meson_sar_adc_meson8b_data = {
>  	.has_bl30_integration = false,
> +	.clock_rate = 1150000,
>  	.bandgap_reg = MESON_SAR_ADC_DELTA_10,
>  	.regmap_config = &meson_sar_adc_regmap_config_meson8,
>  	.resolution = 10,
> @@ -883,6 +886,7 @@ static const struct meson_sar_adc_data meson_sar_adc_meson8b_data = {
>  
>  static const struct meson_sar_adc_data meson_sar_adc_gxbb_data = {
>  	.has_bl30_integration = true,
> +	.clock_rate = 1200000,
>  	.bandgap_reg = MESON_SAR_ADC_REG11,
>  	.regmap_config = &meson_sar_adc_regmap_config_gxbb,
>  	.resolution = 10,
> @@ -891,6 +895,7 @@ static const struct meson_sar_adc_data meson_sar_adc_gxbb_data = {
>  
>  static const struct meson_sar_adc_data meson_sar_adc_gxl_data = {
>  	.has_bl30_integration = true,
> +	.clock_rate = 1200000,
>  	.bandgap_reg = MESON_SAR_ADC_REG11,
>  	.regmap_config = &meson_sar_adc_regmap_config_gxbb,
>  	.resolution = 12,
> @@ -899,6 +904,7 @@ static const struct meson_sar_adc_data meson_sar_adc_gxl_data = {
>  
>  static const struct meson_sar_adc_data meson_sar_adc_gxm_data = {
>  	.has_bl30_integration = true,
> +	.clock_rate = 1200000,
>  	.bandgap_reg = MESON_SAR_ADC_REG11,
>  	.regmap_config = &meson_sar_adc_regmap_config_gxbb,
>  	.resolution = 12,


  reply	other threads:[~2017-11-19 15:55 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-31 20:01 [PATCH 0/5] meson_saradc fixes and minor improvements Martin Blumenstingl
2017-10-31 20:01 ` Martin Blumenstingl
2017-10-31 20:01 ` [PATCH 1/5] iio: adc: meson-saradc: fix the bit_idx of the adc_en clock Martin Blumenstingl
2017-10-31 20:01   ` Martin Blumenstingl
2017-11-19 15:43   ` Jonathan Cameron
2017-11-19 15:43     ` Jonathan Cameron
2017-10-31 20:01 ` [PATCH 2/5] iio: adc: meson-saradc: initialize the bandgap correctly on older SoCs Martin Blumenstingl
2017-10-31 20:01   ` Martin Blumenstingl
2017-11-19 15:44   ` Jonathan Cameron
2017-11-19 15:44     ` Jonathan Cameron
2017-10-31 20:01 ` [PATCH 3/5] iio: adc: meson-saradc: Meson8 and Meson8b do not have REG11 and REG13 Martin Blumenstingl
2017-10-31 20:01   ` Martin Blumenstingl
2017-11-19 15:46   ` Jonathan Cameron
2017-11-19 15:46     ` Jonathan Cameron
2017-10-31 20:01 ` [PATCH 4/5] iio: adc: meson-saradc: fix the clock frequency on Meson8 and Meson8b Martin Blumenstingl
2017-10-31 20:01   ` Martin Blumenstingl
2017-11-19 15:55   ` Jonathan Cameron [this message]
2017-11-19 15:55     ` Jonathan Cameron
2017-12-10 19:47     ` Jonathan Cameron
2017-12-10 19:47       ` Jonathan Cameron
2017-10-31 20:01 ` [PATCH 5/5] iio: adc: meson-saradc: program the channel muxes during initialization Martin Blumenstingl
2017-10-31 20:01   ` Martin Blumenstingl
2017-11-19 15:57   ` Jonathan Cameron
2017-11-19 15:57     ` Jonathan Cameron
2017-12-10 19:49     ` Jonathan Cameron
2017-12-10 19:49       ` Jonathan Cameron
2017-11-02 15:05 ` [PATCH 0/5] meson_saradc fixes and minor improvements Jonathan Cameron
2017-11-02 15:05   ` Jonathan Cameron
2017-11-27 23:47   ` Kevin Hilman
2017-11-27 23:47     ` Kevin Hilman
2017-12-02 11:30     ` Jonathan Cameron
2017-12-02 11:30       ` Jonathan Cameron
2017-12-10 17:48       ` Martin Blumenstingl
2017-12-10 17:48         ` Martin Blumenstingl
2017-12-10 19:50         ` Jonathan Cameron
2017-12-10 19:50           ` Jonathan Cameron
2017-12-10 22:27           ` Martin Blumenstingl
2017-12-10 22:27             ` Martin Blumenstingl

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=20171119155548.41cf4f6f@archlinux \
    --to=jic23@kernel.org \
    --cc=linus-amlogic@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.