linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] mfd: wm8998: Remove some unused registers
@ 2019-10-01 13:46 Charles Keepax
  2019-10-01 13:46 ` [PATCH v3 2/3] mfd: madera: Update DT binding document to support clock supplies Charles Keepax
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Charles Keepax @ 2019-10-01 13:46 UTC (permalink / raw)
  To: lee.jones; +Cc: robh+dt, mark.rutland, devicetree, linux-kernel, patches

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---

Patch is new to the series.

Thanks,
Charles

 drivers/mfd/wm8998-tables.c           | 12 ------------
 include/linux/mfd/arizona/registers.h |  7 -------
 2 files changed, 19 deletions(-)

diff --git a/drivers/mfd/wm8998-tables.c b/drivers/mfd/wm8998-tables.c
index ebf0eadd2075c..9b34a6d760949 100644
--- a/drivers/mfd/wm8998-tables.c
+++ b/drivers/mfd/wm8998-tables.c
@@ -806,12 +806,6 @@ static const struct reg_default wm8998_reg_default[] = {
 	{ 0x00000EF3, 0x0000 },    /* R3827  - ISRC 2 CTRL 1 */
 	{ 0x00000EF4, 0x0001 },    /* R3828  - ISRC 2 CTRL 2 */
 	{ 0x00000EF5, 0x0000 },    /* R3829  - ISRC 2 CTRL 3 */
-	{ 0x00001700, 0x0000 },    /* R5888  - FRF_COEFF_1 */
-	{ 0x00001701, 0x0000 },    /* R5889  - FRF_COEFF_2 */
-	{ 0x00001702, 0x0000 },    /* R5890  - FRF_COEFF_3 */
-	{ 0x00001703, 0x0000 },    /* R5891  - FRF_COEFF_4 */
-	{ 0x00001704, 0x0000 },    /* R5892  - DAC_COMP_1 */
-	{ 0x00001705, 0x0000 },    /* R5893  - DAC_COMP_2 */
 };
 
 static bool wm8998_readable_register(struct device *dev, unsigned int reg)
@@ -1492,12 +1486,6 @@ static bool wm8998_readable_register(struct device *dev, unsigned int reg)
 	case ARIZONA_ISRC_2_CTRL_1:
 	case ARIZONA_ISRC_2_CTRL_2:
 	case ARIZONA_ISRC_2_CTRL_3:
-	case ARIZONA_FRF_COEFF_1:
-	case ARIZONA_FRF_COEFF_2:
-	case ARIZONA_FRF_COEFF_3:
-	case ARIZONA_FRF_COEFF_4:
-	case ARIZONA_V2_DAC_COMP_1:
-	case ARIZONA_V2_DAC_COMP_2:
 		return true;
 	default:
 		return false;
diff --git a/include/linux/mfd/arizona/registers.h b/include/linux/mfd/arizona/registers.h
index bb1a2530ae279..49e24d1de8d47 100644
--- a/include/linux/mfd/arizona/registers.h
+++ b/include/linux/mfd/arizona/registers.h
@@ -1186,13 +1186,6 @@
 #define ARIZONA_DSP4_SCRATCH_1                   0x1441
 #define ARIZONA_DSP4_SCRATCH_2                   0x1442
 #define ARIZONA_DSP4_SCRATCH_3                   0x1443
-#define ARIZONA_FRF_COEFF_1                      0x1700
-#define ARIZONA_FRF_COEFF_2                      0x1701
-#define ARIZONA_FRF_COEFF_3                      0x1702
-#define ARIZONA_FRF_COEFF_4                      0x1703
-#define ARIZONA_V2_DAC_COMP_1                    0x1704
-#define ARIZONA_V2_DAC_COMP_2                    0x1705
-
 
 /*
  * Field Definitions.
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v3 2/3] mfd: madera: Update DT binding document to support clock supplies
  2019-10-01 13:46 [PATCH 1/3] mfd: wm8998: Remove some unused registers Charles Keepax
@ 2019-10-01 13:46 ` Charles Keepax
  2019-10-01 13:46 ` [PATCH v3 3/3] mfd: madera: Add support for requesting the supply clocks Charles Keepax
  2019-10-04 14:47 ` [PATCH 1/3] mfd: wm8998: Remove some unused registers Andrew F. Davis
  2 siblings, 0 replies; 6+ messages in thread
From: Charles Keepax @ 2019-10-01 13:46 UTC (permalink / raw)
  To: lee.jones; +Cc: robh+dt, mark.rutland, devicetree, linux-kernel, patches

Add the 3 input clock sources for the chip into the device tree binding
document.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---

No changes since v2.

Thanks,
Charles

 Documentation/devicetree/bindings/mfd/madera.txt | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/Documentation/devicetree/bindings/mfd/madera.txt b/Documentation/devicetree/bindings/mfd/madera.txt
index cad0f28005027..47e2b8bc60519 100644
--- a/Documentation/devicetree/bindings/mfd/madera.txt
+++ b/Documentation/devicetree/bindings/mfd/madera.txt
@@ -67,6 +67,14 @@ Optional properties:
     As defined in bindings/gpio.txt.
     Although optional, it is strongly recommended to use a hardware reset
 
+  - clocks: Should reference the clocks supplied on MCLK1, MCLK2 and MCLK3
+  - clock-names: May contain up to three strings:
+      "mclk1" for the clock supplied on MCLK1, recommended to be a high
+      quality audio reference clock
+      "mclk2" for the clock supplied on MCLK2, required to be an always on
+      32k clock
+      "mclk3" for the clock supplied on MCLK3
+
   - MICBIASx : Initial data for the MICBIAS regulators, as covered in
     Documentation/devicetree/bindings/regulator/regulator.txt.
     One for each MICBIAS generator (MICBIAS1, MICBIAS2, ...)
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v3 3/3] mfd: madera: Add support for requesting the supply clocks
  2019-10-01 13:46 [PATCH 1/3] mfd: wm8998: Remove some unused registers Charles Keepax
  2019-10-01 13:46 ` [PATCH v3 2/3] mfd: madera: Update DT binding document to support clock supplies Charles Keepax
@ 2019-10-01 13:46 ` Charles Keepax
  2019-10-04 14:34   ` Lee Jones
  2019-10-04 14:47 ` [PATCH 1/3] mfd: wm8998: Remove some unused registers Andrew F. Davis
  2 siblings, 1 reply; 6+ messages in thread
From: Charles Keepax @ 2019-10-01 13:46 UTC (permalink / raw)
  To: lee.jones; +Cc: robh+dt, mark.rutland, devicetree, linux-kernel, patches

Add the ability to get the clock for each clock input pin of the chip
and enable MCLK2 since that is expected to be a permanently enabled
32kHz clock.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---

Changes since v2:
 - Use new devm_clk_bulk_get_optional API

Thanks,
Charles

 drivers/mfd/madera-core.c       | 27 ++++++++++++++++++++++++++-
 include/linux/mfd/madera/core.h | 11 +++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)

diff --git a/drivers/mfd/madera-core.c b/drivers/mfd/madera-core.c
index 29540cbf75934..88d904eb016ea 100644
--- a/drivers/mfd/madera-core.c
+++ b/drivers/mfd/madera-core.c
@@ -450,6 +450,21 @@ int madera_dev_init(struct madera *madera)
 		       sizeof(madera->pdata));
 	}
 
+	madera->mclk[MADERA_MCLK1].id = "mclk1";
+	madera->mclk[MADERA_MCLK2].id = "mclk2";
+	madera->mclk[MADERA_MCLK3].id = "mclk3";
+
+	ret = devm_clk_bulk_get_optional(madera->dev, ARRAY_SIZE(madera->mclk),
+					 madera->mclk);
+	if (ret) {
+		dev_err(madera->dev, "Failed to get clocks: %d\n", ret);
+		return ret;
+	}
+
+	/* Not using devm_clk_get to prevent breakage of existing DTs */
+	if (!madera->mclk[MADERA_MCLK2].clk)
+		dev_warn(madera->dev, "Missing MCLK2, requires 32kHz clock\n");
+
 	ret = madera_get_reset_gpio(madera);
 	if (ret)
 		return ret;
@@ -660,13 +675,19 @@ int madera_dev_init(struct madera *madera)
 	}
 
 	/* Init 32k clock sourced from MCLK2 */
+	ret = clk_prepare_enable(madera->mclk[MADERA_MCLK2].clk);
+	if (ret != 0) {
+		dev_err(madera->dev, "Failed to enable 32k clock: %d\n", ret);
+		goto err_reset;
+	}
+
 	ret = regmap_update_bits(madera->regmap,
 			MADERA_CLOCK_32K_1,
 			MADERA_CLK_32K_ENA_MASK | MADERA_CLK_32K_SRC_MASK,
 			MADERA_CLK_32K_ENA | MADERA_32KZ_MCLK2);
 	if (ret) {
 		dev_err(madera->dev, "Failed to init 32k clock: %d\n", ret);
-		goto err_reset;
+		goto err_clock;
 	}
 
 	pm_runtime_set_active(madera->dev);
@@ -687,6 +708,8 @@ int madera_dev_init(struct madera *madera)
 
 err_pm_runtime:
 	pm_runtime_disable(madera->dev);
+err_clock:
+	clk_disable_unprepare(madera->mclk[MADERA_MCLK2].clk);
 err_reset:
 	madera_enable_hard_reset(madera);
 	regulator_disable(madera->dcvdd);
@@ -713,6 +736,8 @@ int madera_dev_exit(struct madera *madera)
 	 */
 	pm_runtime_disable(madera->dev);
 
+	clk_disable_unprepare(madera->mclk[MADERA_MCLK2].clk);
+
 	regulator_disable(madera->dcvdd);
 	regulator_put(madera->dcvdd);
 
diff --git a/include/linux/mfd/madera/core.h b/include/linux/mfd/madera/core.h
index 7ffa696cce7ca..ad2c138105d4b 100644
--- a/include/linux/mfd/madera/core.h
+++ b/include/linux/mfd/madera/core.h
@@ -8,6 +8,7 @@
 #ifndef MADERA_CORE_H
 #define MADERA_CORE_H
 
+#include <linux/clk.h>
 #include <linux/gpio/consumer.h>
 #include <linux/interrupt.h>
 #include <linux/mfd/madera/pdata.h>
@@ -29,6 +30,13 @@ enum madera_type {
 	CS42L92 = 9,
 };
 
+enum {
+	MADERA_MCLK1,
+	MADERA_MCLK2,
+	MADERA_MCLK3,
+	MADERA_NUM_MCLK
+};
+
 #define MADERA_MAX_CORE_SUPPLIES	2
 #define MADERA_MAX_GPIOS		40
 
@@ -155,6 +163,7 @@ struct snd_soc_dapm_context;
  * @irq_dev:		the irqchip child driver device
  * @irq_data:		pointer to irqchip data for the child irqchip driver
  * @irq:		host irq number from SPI or I2C configuration
+ * @mclk:		Structure holding clock supplies
  * @out_clamp:		indicates output clamp state for each analogue output
  * @out_shorted:	indicates short circuit state for each analogue output
  * @hp_ena:		bitflags of enable state for the headphone outputs
@@ -184,6 +193,8 @@ struct madera {
 	struct regmap_irq_chip_data *irq_data;
 	int irq;
 
+	struct clk_bulk_data mclk[MADERA_NUM_MCLK];
+
 	unsigned int num_micbias;
 	unsigned int num_childbias[MADERA_MAX_MICBIAS];
 
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v3 3/3] mfd: madera: Add support for requesting the supply clocks
  2019-10-01 13:46 ` [PATCH v3 3/3] mfd: madera: Add support for requesting the supply clocks Charles Keepax
@ 2019-10-04 14:34   ` Lee Jones
  2019-10-04 15:21     ` Charles Keepax
  0 siblings, 1 reply; 6+ messages in thread
From: Lee Jones @ 2019-10-04 14:34 UTC (permalink / raw)
  To: Charles Keepax; +Cc: robh+dt, mark.rutland, devicetree, linux-kernel, patches

On Tue, 01 Oct 2019, Charles Keepax wrote:

> Add the ability to get the clock for each clock input pin of the chip
> and enable MCLK2 since that is expected to be a permanently enabled
> 32kHz clock.
> 
> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> ---
> 
> Changes since v2:
>  - Use new devm_clk_bulk_get_optional API
> 
> Thanks,
> Charles
> 
>  drivers/mfd/madera-core.c       | 27 ++++++++++++++++++++++++++-
>  include/linux/mfd/madera/core.h | 11 +++++++++++
>  2 files changed, 37 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mfd/madera-core.c b/drivers/mfd/madera-core.c
> index 29540cbf75934..88d904eb016ea 100644
> --- a/drivers/mfd/madera-core.c
> +++ b/drivers/mfd/madera-core.c
> @@ -450,6 +450,21 @@ int madera_dev_init(struct madera *madera)
>  		       sizeof(madera->pdata));
>  	}
>  
> +	madera->mclk[MADERA_MCLK1].id = "mclk1";
> +	madera->mclk[MADERA_MCLK2].id = "mclk2";
> +	madera->mclk[MADERA_MCLK3].id = "mclk3";
> +
> +	ret = devm_clk_bulk_get_optional(madera->dev, ARRAY_SIZE(madera->mclk),
> +					 madera->mclk);
> +	if (ret) {
> +		dev_err(madera->dev, "Failed to get clocks: %d\n", ret);
> +		return ret;
> +	}
> +
> +	/* Not using devm_clk_get to prevent breakage of existing DTs */
> +	if (!madera->mclk[MADERA_MCLK2].clk)
> +		dev_warn(madera->dev, "Missing MCLK2, requires 32kHz clock\n");
> +
>  	ret = madera_get_reset_gpio(madera);
>  	if (ret)
>  		return ret;
> @@ -660,13 +675,19 @@ int madera_dev_init(struct madera *madera)
>  	}
>  
>  	/* Init 32k clock sourced from MCLK2 */
> +	ret = clk_prepare_enable(madera->mclk[MADERA_MCLK2].clk);
> +	if (ret != 0) {

Nit: Why is this not 'if (ret)' like in the rest of the file?

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/3] mfd: wm8998: Remove some unused registers
  2019-10-01 13:46 [PATCH 1/3] mfd: wm8998: Remove some unused registers Charles Keepax
  2019-10-01 13:46 ` [PATCH v3 2/3] mfd: madera: Update DT binding document to support clock supplies Charles Keepax
  2019-10-01 13:46 ` [PATCH v3 3/3] mfd: madera: Add support for requesting the supply clocks Charles Keepax
@ 2019-10-04 14:47 ` Andrew F. Davis
  2 siblings, 0 replies; 6+ messages in thread
From: Andrew F. Davis @ 2019-10-04 14:47 UTC (permalink / raw)
  To: Charles Keepax, lee.jones
  Cc: robh+dt, mark.rutland, devicetree, linux-kernel, patches

On 10/1/19 9:46 AM, Charles Keepax wrote:
> Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> ---
> 


Why do this? There is no commit message..

Andrew


> Patch is new to the series.
> 
> Thanks,
> Charles
> 
>  drivers/mfd/wm8998-tables.c           | 12 ------------
>  include/linux/mfd/arizona/registers.h |  7 -------
>  2 files changed, 19 deletions(-)
> 
> diff --git a/drivers/mfd/wm8998-tables.c b/drivers/mfd/wm8998-tables.c
> index ebf0eadd2075c..9b34a6d760949 100644
> --- a/drivers/mfd/wm8998-tables.c
> +++ b/drivers/mfd/wm8998-tables.c
> @@ -806,12 +806,6 @@ static const struct reg_default wm8998_reg_default[] = {
>  	{ 0x00000EF3, 0x0000 },    /* R3827  - ISRC 2 CTRL 1 */
>  	{ 0x00000EF4, 0x0001 },    /* R3828  - ISRC 2 CTRL 2 */
>  	{ 0x00000EF5, 0x0000 },    /* R3829  - ISRC 2 CTRL 3 */
> -	{ 0x00001700, 0x0000 },    /* R5888  - FRF_COEFF_1 */
> -	{ 0x00001701, 0x0000 },    /* R5889  - FRF_COEFF_2 */
> -	{ 0x00001702, 0x0000 },    /* R5890  - FRF_COEFF_3 */
> -	{ 0x00001703, 0x0000 },    /* R5891  - FRF_COEFF_4 */
> -	{ 0x00001704, 0x0000 },    /* R5892  - DAC_COMP_1 */
> -	{ 0x00001705, 0x0000 },    /* R5893  - DAC_COMP_2 */
>  };
>  
>  static bool wm8998_readable_register(struct device *dev, unsigned int reg)
> @@ -1492,12 +1486,6 @@ static bool wm8998_readable_register(struct device *dev, unsigned int reg)
>  	case ARIZONA_ISRC_2_CTRL_1:
>  	case ARIZONA_ISRC_2_CTRL_2:
>  	case ARIZONA_ISRC_2_CTRL_3:
> -	case ARIZONA_FRF_COEFF_1:
> -	case ARIZONA_FRF_COEFF_2:
> -	case ARIZONA_FRF_COEFF_3:
> -	case ARIZONA_FRF_COEFF_4:
> -	case ARIZONA_V2_DAC_COMP_1:
> -	case ARIZONA_V2_DAC_COMP_2:
>  		return true;
>  	default:
>  		return false;
> diff --git a/include/linux/mfd/arizona/registers.h b/include/linux/mfd/arizona/registers.h
> index bb1a2530ae279..49e24d1de8d47 100644
> --- a/include/linux/mfd/arizona/registers.h
> +++ b/include/linux/mfd/arizona/registers.h
> @@ -1186,13 +1186,6 @@
>  #define ARIZONA_DSP4_SCRATCH_1                   0x1441
>  #define ARIZONA_DSP4_SCRATCH_2                   0x1442
>  #define ARIZONA_DSP4_SCRATCH_3                   0x1443
> -#define ARIZONA_FRF_COEFF_1                      0x1700
> -#define ARIZONA_FRF_COEFF_2                      0x1701
> -#define ARIZONA_FRF_COEFF_3                      0x1702
> -#define ARIZONA_FRF_COEFF_4                      0x1703
> -#define ARIZONA_V2_DAC_COMP_1                    0x1704
> -#define ARIZONA_V2_DAC_COMP_2                    0x1705
> -
>  
>  /*
>   * Field Definitions.
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v3 3/3] mfd: madera: Add support for requesting the supply clocks
  2019-10-04 14:34   ` Lee Jones
@ 2019-10-04 15:21     ` Charles Keepax
  0 siblings, 0 replies; 6+ messages in thread
From: Charles Keepax @ 2019-10-04 15:21 UTC (permalink / raw)
  To: Lee Jones; +Cc: robh+dt, mark.rutland, devicetree, linux-kernel, patches

On Fri, Oct 04, 2019 at 03:34:10PM +0100, Lee Jones wrote:
> On Tue, 01 Oct 2019, Charles Keepax wrote:
> 
> > Add the ability to get the clock for each clock input pin of the chip
> > and enable MCLK2 since that is expected to be a permanently enabled
> > 32kHz clock.
> > 
> > Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> > ---
> >  	/* Init 32k clock sourced from MCLK2 */
> > +	ret = clk_prepare_enable(madera->mclk[MADERA_MCLK2].clk);
> > +	if (ret != 0) {
> 
> Nit: Why is this not 'if (ret)' like in the rest of the file?
> 

Apologies will get that fixed up.

Thanks,
Charles

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-10-04 15:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-01 13:46 [PATCH 1/3] mfd: wm8998: Remove some unused registers Charles Keepax
2019-10-01 13:46 ` [PATCH v3 2/3] mfd: madera: Update DT binding document to support clock supplies Charles Keepax
2019-10-01 13:46 ` [PATCH v3 3/3] mfd: madera: Add support for requesting the supply clocks Charles Keepax
2019-10-04 14:34   ` Lee Jones
2019-10-04 15:21     ` Charles Keepax
2019-10-04 14:47 ` [PATCH 1/3] mfd: wm8998: Remove some unused registers Andrew F. Davis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).