All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 0/2] clk: at91: enhance the peripheral clock
@ 2017-03-03  6:19 Wenyou Yang
  2017-03-03  6:19 ` [U-Boot] [PATCH v2 1/2] " Wenyou Yang
  2017-03-03  6:19 ` [U-Boot] [PATCH v2 2/2] clk: at91: align clk-master's compatibles with kernel's Wenyou Yang
  0 siblings, 2 replies; 3+ messages in thread
From: Wenyou Yang @ 2017-03-03  6:19 UTC (permalink / raw)
  To: u-boot

The purpose of the patch set is to enhance the peripheral clock
to support both at9sam9x5's and at91rm9200's peripheral clock,
and align the clk-master's compatibles with kernel's.

Changes in v2:
 - Use an enum with a descriptive name to denote the clock type.
 - Add the Reviewed-by tags.

Wenyou Yang (2):
  clk: at91: enhance the peripheral clock
  clk: at91: align clk-master's compatibles with kernel's

 drivers/clk/at91/clk-master.c     |  1 +
 drivers/clk/at91/clk-peripheral.c | 29 ++++++++++++++++++++++++++---
 2 files changed, 27 insertions(+), 3 deletions(-)

-- 
2.11.0

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

* [U-Boot] [PATCH v2 1/2] clk: at91: enhance the peripheral clock
  2017-03-03  6:19 [U-Boot] [PATCH v2 0/2] clk: at91: enhance the peripheral clock Wenyou Yang
@ 2017-03-03  6:19 ` Wenyou Yang
  2017-03-03  6:19 ` [U-Boot] [PATCH v2 2/2] clk: at91: align clk-master's compatibles with kernel's Wenyou Yang
  1 sibling, 0 replies; 3+ messages in thread
From: Wenyou Yang @ 2017-03-03  6:19 UTC (permalink / raw)
  To: u-boot

Enhance the peripheral clock to support both at9sam9x5's
and at91rm9200's peripheral clock via the different compatibles.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---

Changes in v2:
 - Use an enum with a descriptive name to denote the clock type.

 drivers/clk/at91/clk-peripheral.c | 29 ++++++++++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)

diff --git a/drivers/clk/at91/clk-peripheral.c b/drivers/clk/at91/clk-peripheral.c
index e1ed447133..62fabe304d 100644
--- a/drivers/clk/at91/clk-peripheral.c
+++ b/drivers/clk/at91/clk-peripheral.c
@@ -16,6 +16,10 @@
 #define PERIPHERAL_ID_MAX	31
 #define PERIPHERAL_MASK(id)	(1 << ((id) & PERIPHERAL_ID_MAX))
 
+enum periph_clk_type {
+	CLK_PERIPH_AT91RM9200 = 0,
+	CLK_PERIPH_AT91SAM9X5,
+};
 /**
  * sam9x5_periph_clk_bind() - for the periph clock driver
  * Recursively bind its children as clk devices.
@@ -28,7 +32,14 @@ static int sam9x5_periph_clk_bind(struct udevice *dev)
 }
 
 static const struct udevice_id sam9x5_periph_clk_match[] = {
-	{ .compatible = "atmel,at91sam9x5-clk-peripheral" },
+	{
+		.compatible = "atmel,at91rm9200-clk-peripheral",
+		.data = CLK_PERIPH_AT91RM9200,
+	},
+	{
+		.compatible = "atmel,at91sam9x5-clk-peripheral",
+		.data = CLK_PERIPH_AT91SAM9X5,
+	},
 	{}
 };
 
@@ -45,12 +56,24 @@ static int periph_clk_enable(struct clk *clk)
 {
 	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
+	enum periph_clk_type clk_type;
+	void *addr;
 
 	if (clk->id < PERIPHERAL_ID_MIN)
 		return -1;
 
-	writel(clk->id & AT91_PMC_PCR_PID_MASK, &pmc->pcr);
-	setbits_le32(&pmc->pcr, AT91_PMC_PCR_CMD_WRITE | AT91_PMC_PCR_EN);
+	clk_type = dev_get_driver_data(dev_get_parent(clk->dev));
+	if (clk_type == CLK_PERIPH_AT91RM9200) {
+		addr = &pmc->pcer;
+		if (clk->id > PERIPHERAL_ID_MAX)
+			addr = &pmc->pcer1;
+
+		setbits_le32(addr, PERIPHERAL_MASK(clk->id));
+	} else {
+		writel(clk->id & AT91_PMC_PCR_PID_MASK, &pmc->pcr);
+		setbits_le32(&pmc->pcr,
+			     AT91_PMC_PCR_CMD_WRITE | AT91_PMC_PCR_EN);
+	}
 
 	return 0;
 }
-- 
2.11.0

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

* [U-Boot] [PATCH v2 2/2] clk: at91: align clk-master's compatibles with kernel's
  2017-03-03  6:19 [U-Boot] [PATCH v2 0/2] clk: at91: enhance the peripheral clock Wenyou Yang
  2017-03-03  6:19 ` [U-Boot] [PATCH v2 1/2] " Wenyou Yang
@ 2017-03-03  6:19 ` Wenyou Yang
  1 sibling, 0 replies; 3+ messages in thread
From: Wenyou Yang @ 2017-03-03  6:19 UTC (permalink / raw)
  To: u-boot

Add the compatible "atmel,at91rm9200-clk-master" to align with
the kernel's.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---

Changes in v2:
 - Add the Reviewed-by tags.

 drivers/clk/at91/clk-master.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/clk/at91/clk-master.c b/drivers/clk/at91/clk-master.c
index 284b248271..72d0a739f1 100644
--- a/drivers/clk/at91/clk-master.c
+++ b/drivers/clk/at91/clk-master.c
@@ -21,6 +21,7 @@ static struct clk_ops at91_master_clk_ops = {
 };
 
 static const struct udevice_id at91_master_clk_match[] = {
+	{ .compatible = "atmel,at91rm9200-clk-master" },
 	{ .compatible = "atmel,at91sam9x5-clk-master" },
 	{}
 };
-- 
2.11.0

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

end of thread, other threads:[~2017-03-03  6:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-03  6:19 [U-Boot] [PATCH v2 0/2] clk: at91: enhance the peripheral clock Wenyou Yang
2017-03-03  6:19 ` [U-Boot] [PATCH v2 1/2] " Wenyou Yang
2017-03-03  6:19 ` [U-Boot] [PATCH v2 2/2] clk: at91: align clk-master's compatibles with kernel's Wenyou Yang

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.