* [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).