All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 0/7] clk: at91: Improve the clock implementation
@ 2016-09-27  3:00 Wenyou Yang
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 1/7] clk: clk-uclass: Assign clk->dev before call .of_xlate Wenyou Yang
                   ` (6 more replies)
  0 siblings, 7 replies; 17+ messages in thread
From: Wenyou Yang @ 2016-09-27  3:00 UTC (permalink / raw)
  To: u-boot

Add the clock ops for such as spi0_clk, which is the real clock
provider, instead of periph32ck, which only recursively bind its
children as clk devices. Also update the clocks called in the
drivers.

Changes in v3:
 - Remove the unneeded wrapper functions.
 - Fix typo, Invaild -> Invalid.
 - Add Acked-by tag.
 - Fix typo, unneccessary -> unnecessary.
 - Add Reviewed-by tag.

Changes in v2:
 - Add Acked-by tag.
 - For the periph32ck, periph64ck, gck, systemck nodes, they aren't
   the clock providers, are to house various actual clock providers,
   use UCLASS_MISC, instead of UCLASS_CLK.
 - For *_of_xlate(), add argument check.
 - Fix the implementation of the *_get_rate().
 - Use documentation-wise variables for *_clk_probe().
 - Remove the duplicated code, use the common functions.
 - Add Acked-by tag for gpio/atmel_pio4.

Wenyou Yang (7):
  clk: clk-uclass: Assign clk->dev before call .of_xlate
  clk: at91: Improve the clock implementation
  gpio: atmel_pio4: Remove unnecessary clock calling
  i2c: at91_i2c: Remove unnecessary clock calling
  i2c: at91_i2c: Change error return -ENODEV to -EINVAL
  usb: ehci-atmel: Remove unnecessary clock calling
  mmc: atmel_sdhci: Remove unnecessary clock calling

 drivers/clk/at91/Kconfig          |  1 +
 drivers/clk/at91/clk-generated.c  | 87 +++++++++++++++++++++++----------------
 drivers/clk/at91/clk-peripheral.c | 72 ++++++++++++++++++++++----------
 drivers/clk/at91/clk-system.c     | 57 ++++++++++++++-----------
 drivers/clk/at91/pmc.c            | 62 ++++++++++++++++++++++++----
 drivers/clk/at91/pmc.h            |  5 ++-
 drivers/clk/clk-uclass.c          |  3 ++
 drivers/gpio/atmel_pio4.c         | 12 ------
 drivers/i2c/at91_i2c.c            | 18 +-------
 drivers/mmc/atmel_sdhci.c         | 27 +-----------
 drivers/usb/host/ehci-atmel.c     | 15 -------
 11 files changed, 201 insertions(+), 158 deletions(-)

-- 
2.7.4

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

* [U-Boot] [PATCH v3 1/7] clk: clk-uclass: Assign clk->dev before call .of_xlate
  2016-09-27  3:00 [U-Boot] [PATCH v3 0/7] clk: at91: Improve the clock implementation Wenyou Yang
@ 2016-09-27  3:00 ` Wenyou Yang
  2016-09-27 17:55   ` Simon Glass
  2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 2/7] clk: at91: Improve the clock implementation Wenyou Yang
                   ` (5 subsequent siblings)
  6 siblings, 2 replies; 17+ messages in thread
From: Wenyou Yang @ 2016-09-27  3:00 UTC (permalink / raw)
  To: u-boot

In order to make clk->dev available in ops->of_xlate() to get the
clock ID from the 'reg' property of the clock node, assign the
clk->dev before calling ops->of_xlate().

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
---

Changes in v3: None
Changes in v2:
 - Add Acked-by tag.

 drivers/clk/clk-uclass.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
index 4d78e3f..4a3248b 100644
--- a/drivers/clk/clk-uclass.c
+++ b/drivers/clk/clk-uclass.c
@@ -80,6 +80,9 @@ int clk_get_by_index(struct udevice *dev, int index, struct clk *clk)
 		      __func__, ret);
 		return ret;
 	}
+
+	clk->dev = dev_clk;
+
 	ops = clk_dev_ops(dev_clk);
 
 	if (ops->of_xlate)
-- 
2.7.4

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

* [U-Boot] [PATCH v3 2/7] clk: at91: Improve the clock implementation
  2016-09-27  3:00 [U-Boot] [PATCH v3 0/7] clk: at91: Improve the clock implementation Wenyou Yang
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 1/7] clk: clk-uclass: Assign clk->dev before call .of_xlate Wenyou Yang
@ 2016-09-27  3:00 ` Wenyou Yang
  2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 3/7] gpio: atmel_pio4: Remove unnecessary clock calling Wenyou Yang
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Wenyou Yang @ 2016-09-27  3:00 UTC (permalink / raw)
  To: u-boot

For the peripheral clock, provide the clock ops for the clock
provider, such as spi0_clk. The .of_xlate is to get the clk->id,
the .enable is to enable the spi0 peripheral clock, the .get_rate
is to get the clock frequency.

The driver for periph32ck node is responsible for recursively
binding its children as clk devices, not provide the clock ops.

So do the generated clock and system clock.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
---

Changes in v3:
 - Remove the unneeded wrapper functions.
 - Fix typo, Invaild -> Invalid.
 - Add Acked-by tag.

Changes in v2:
 - For the periph32ck, periph64ck, gck, systemck nodes, they aren't
   the clock providers, are to house various actual clock providers,
   use UCLASS_MISC, instead of UCLASS_CLK.
 - For *_of_xlate(), add argument check.
 - Fix the implementation of the *_get_rate().
 - Use documentation-wise variables for *_clk_probe().
 - Remove the duplicated code, use the common functions.

 drivers/clk/at91/Kconfig          |  1 +
 drivers/clk/at91/clk-generated.c  | 87 +++++++++++++++++++++++----------------
 drivers/clk/at91/clk-peripheral.c | 72 ++++++++++++++++++++++----------
 drivers/clk/at91/clk-system.c     | 57 ++++++++++++++-----------
 drivers/clk/at91/pmc.c            | 62 ++++++++++++++++++++++++----
 drivers/clk/at91/pmc.h            |  5 ++-
 6 files changed, 195 insertions(+), 89 deletions(-)

diff --git a/drivers/clk/at91/Kconfig b/drivers/clk/at91/Kconfig
index 10050d8..904ed48 100644
--- a/drivers/clk/at91/Kconfig
+++ b/drivers/clk/at91/Kconfig
@@ -1,6 +1,7 @@
 config CLK_AT91
 	bool "AT91 clock drivers"
 	depends on CLK
+	select MISC
 	help
 	  This option is used to enable the AT91 clock driver.
 	  The driver supports the AT91 clock generator, including
diff --git a/drivers/clk/at91/clk-generated.c b/drivers/clk/at91/clk-generated.c
index f6164cc..d36f64f 100644
--- a/drivers/clk/at91/clk-generated.c
+++ b/drivers/clk/at91/clk-generated.c
@@ -17,15 +17,41 @@ DECLARE_GLOBAL_DATA_PTR;
 #define GENERATED_SOURCE_MAX	6
 #define GENERATED_MAX_DIV	255
 
-struct generated_clk_priv {
+/**
+ * generated_clk_bind() - for the generated clock driver
+ * Recursively bind its children as clk devices.
+ *
+ * @return: 0 on success, or negative error code on failure
+ */
+static int generated_clk_bind(struct udevice *dev)
+{
+	return at91_clk_sub_device_bind(dev, "generic-clk");
+}
+
+static const struct udevice_id generated_clk_match[] = {
+	{ .compatible = "atmel,sama5d2-clk-generated" },
+	{}
+};
+
+U_BOOT_DRIVER(generated_clk) = {
+	.name = "generated-clk",
+	.id = UCLASS_MISC,
+	.of_match = generated_clk_match,
+	.bind = generated_clk_bind,
+};
+
+/*-------------------------------------------------------------*/
+
+struct generic_clk_priv {
 	u32 num_parents;
 };
 
-static ulong generated_clk_get_rate(struct clk *clk)
+static ulong generic_clk_get_rate(struct clk *clk)
 {
 	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
 	struct clk parent;
+	ulong clk_rate;
 	u32 tmp, gckdiv;
 	u8 parent_id;
 	int ret;
@@ -36,18 +62,22 @@ static ulong generated_clk_get_rate(struct clk *clk)
 		    AT91_PMC_PCR_GCKCSS_MASK;
 	gckdiv = (tmp >> AT91_PMC_PCR_GCKDIV_OFFSET) & AT91_PMC_PCR_GCKDIV_MASK;
 
-	ret = clk_get_by_index(clk->dev, parent_id, &parent);
+	ret = clk_get_by_index(dev_get_parent(clk->dev), parent_id, &parent);
 	if (ret)
 		return 0;
 
-	return clk_get_rate(&parent) / (gckdiv + 1);
+	clk_rate = clk_get_rate(&parent) / (gckdiv + 1);
+
+	clk_free(&parent);
+
+	return clk_rate;
 }
 
-static ulong generated_clk_set_rate(struct clk *clk, ulong rate)
+static ulong generic_clk_set_rate(struct clk *clk, ulong rate)
 {
 	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
-	struct generated_clk_priv *priv = dev_get_priv(clk->dev);
+	struct generic_clk_priv *priv = dev_get_priv(clk->dev);
 	struct clk parent, best_parent;
 	ulong tmp_rate, best_rate = rate, parent_rate;
 	int tmp_diff, best_diff = -1;
@@ -58,7 +88,7 @@ static ulong generated_clk_set_rate(struct clk *clk, ulong rate)
 	int ret;
 
 	for (i = 0; i < priv->num_parents; i++) {
-		ret = clk_get_by_index(clk->dev, i, &parent);
+		ret = clk_get_by_index(dev_get_parent(clk->dev), i, &parent);
 		if (ret)
 			return ret;
 
@@ -111,18 +141,20 @@ static ulong generated_clk_set_rate(struct clk *clk, ulong rate)
 	return 0;
 }
 
-static struct clk_ops generated_clk_ops = {
-	.get_rate = generated_clk_get_rate,
-	.set_rate = generated_clk_set_rate,
+static struct clk_ops generic_clk_ops = {
+	.of_xlate = at91_clk_of_xlate,
+	.get_rate = generic_clk_get_rate,
+	.set_rate = generic_clk_set_rate,
 };
 
-static int generated_clk_ofdata_to_platdata(struct udevice *dev)
+static int generic_clk_ofdata_to_platdata(struct udevice *dev)
 {
-	struct generated_clk_priv *priv = dev_get_priv(dev);
+	struct generic_clk_priv *priv = dev_get_priv(dev);
 	u32 cells[GENERATED_SOURCE_MAX];
 	u32 num_parents;
 
-	num_parents = fdtdec_get_int_array_count(gd->fdt_blob, dev->of_offset,
+	num_parents = fdtdec_get_int_array_count(gd->fdt_blob,
+						 dev_get_parent(dev)->of_offset,
 						 "clocks", cells,
 						 GENERATED_SOURCE_MAX);
 
@@ -134,29 +166,12 @@ static int generated_clk_ofdata_to_platdata(struct udevice *dev)
 	return 0;
 }
 
-static int generated_clk_bind(struct udevice *dev)
-{
-	return at91_pmc_clk_node_bind(dev);
-}
-
-static int generated_clk_probe(struct udevice *dev)
-{
-	return at91_pmc_core_probe(dev);
-}
-
-static const struct udevice_id generated_clk_match[] = {
-	{ .compatible = "atmel,sama5d2-clk-generated" },
-	{}
-};
-
-U_BOOT_DRIVER(generated_clk) = {
-	.name = "generated-clk",
+U_BOOT_DRIVER(generic_clk) = {
+	.name = "generic-clk",
 	.id = UCLASS_CLK,
-	.of_match = generated_clk_match,
-	.bind = generated_clk_bind,
-	.probe = generated_clk_probe,
-	.ofdata_to_platdata = generated_clk_ofdata_to_platdata,
-	.priv_auto_alloc_size = sizeof(struct generated_clk_priv),
+	.probe = at91_clk_probe,
+	.ofdata_to_platdata = generic_clk_ofdata_to_platdata,
+	.priv_auto_alloc_size = sizeof(struct generic_clk_priv),
 	.platdata_auto_alloc_size = sizeof(struct pmc_platdata),
-	.ops = &generated_clk_ops,
+	.ops = &generic_clk_ops,
 };
diff --git a/drivers/clk/at91/clk-peripheral.c b/drivers/clk/at91/clk-peripheral.c
index 16688e9..e1ed447 100644
--- a/drivers/clk/at91/clk-peripheral.c
+++ b/drivers/clk/at91/clk-peripheral.c
@@ -16,7 +16,32 @@
 #define PERIPHERAL_ID_MAX	31
 #define PERIPHERAL_MASK(id)	(1 << ((id) & PERIPHERAL_ID_MAX))
 
-static int sam9x5_periph_clk_enable(struct clk *clk)
+/**
+ * sam9x5_periph_clk_bind() - for the periph clock driver
+ * Recursively bind its children as clk devices.
+ *
+ * @return: 0 on success, or negative error code on failure
+ */
+static int sam9x5_periph_clk_bind(struct udevice *dev)
+{
+	return at91_clk_sub_device_bind(dev, "periph-clk");
+}
+
+static const struct udevice_id sam9x5_periph_clk_match[] = {
+	{ .compatible = "atmel,at91sam9x5-clk-peripheral" },
+	{}
+};
+
+U_BOOT_DRIVER(sam9x5_periph_clk) = {
+	.name = "sam9x5-periph-clk",
+	.id = UCLASS_MISC,
+	.of_match = sam9x5_periph_clk_match,
+	.bind = sam9x5_periph_clk_bind,
+};
+
+/*---------------------------------------------------------*/
+
+static int periph_clk_enable(struct clk *clk)
 {
 	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
@@ -30,31 +55,36 @@ static int sam9x5_periph_clk_enable(struct clk *clk)
 	return 0;
 }
 
-static struct clk_ops sam9x5_periph_clk_ops = {
-	.enable = sam9x5_periph_clk_enable,
-};
-
-static int sam9x5_periph_clk_bind(struct udevice *dev)
+static ulong periph_get_rate(struct clk *clk)
 {
-	return at91_pmc_clk_node_bind(dev);
-}
+	struct udevice *dev;
+	struct clk clk_dev;
+	ulong clk_rate;
+	int ret;
 
-static int sam9x5_periph_clk_probe(struct udevice *dev)
-{
-	return at91_pmc_core_probe(dev);
+	dev = dev_get_parent(clk->dev);
+
+	ret = clk_get_by_index(dev, 0, &clk_dev);
+	if (ret)
+		return ret;
+
+	clk_rate = clk_get_rate(&clk_dev);
+
+	clk_free(&clk_dev);
+
+	return clk_rate;
 }
 
-static const struct udevice_id sam9x5_periph_clk_match[] = {
-	{ .compatible = "atmel,at91sam9x5-clk-peripheral" },
-	{}
+static struct clk_ops periph_clk_ops = {
+	.of_xlate = at91_clk_of_xlate,
+	.enable = periph_clk_enable,
+	.get_rate = periph_get_rate,
 };
 
-U_BOOT_DRIVER(sam9x5_periph_clk) = {
-	.name = "sam9x5-periph-clk",
-	.id = UCLASS_CLK,
-	.of_match = sam9x5_periph_clk_match,
-	.bind = sam9x5_periph_clk_bind,
-	.probe = sam9x5_periph_clk_probe,
+U_BOOT_DRIVER(clk_periph) = {
+	.name	= "periph-clk",
+	.id	= UCLASS_CLK,
 	.platdata_auto_alloc_size = sizeof(struct pmc_platdata),
-	.ops = &sam9x5_periph_clk_ops,
+	.probe = at91_clk_probe,
+	.ops	= &periph_clk_ops,
 };
diff --git a/drivers/clk/at91/clk-system.c b/drivers/clk/at91/clk-system.c
index fa80bad..5b59a0c 100644
--- a/drivers/clk/at91/clk-system.c
+++ b/drivers/clk/at91/clk-system.c
@@ -14,12 +14,37 @@
 
 #define SYSTEM_MAX_ID		31
 
+/**
+ * at91_system_clk_bind() - for the system clock driver
+ * Recursively bind its children as clk devices.
+ *
+ * @return: 0 on success, or negative error code on failure
+ */
+static int at91_system_clk_bind(struct udevice *dev)
+{
+	return at91_clk_sub_device_bind(dev, "system-clk");
+}
+
+static const struct udevice_id at91_system_clk_match[] = {
+	{ .compatible = "atmel,at91rm9200-clk-system" },
+	{}
+};
+
+U_BOOT_DRIVER(at91_system_clk) = {
+	.name = "at91-system-clk",
+	.id = UCLASS_MISC,
+	.of_match = at91_system_clk_match,
+	.bind = at91_system_clk_bind,
+};
+
+/*----------------------------------------------------------*/
+
 static inline int is_pck(int id)
 {
 	return (id >= 8) && (id <= 15);
 }
 
-static int at91_system_clk_enable(struct clk *clk)
+static int system_clk_enable(struct clk *clk)
 {
 	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
 	struct at91_pmc *pmc = plat->reg_base;
@@ -46,31 +71,15 @@ static int at91_system_clk_enable(struct clk *clk)
 	return 0;
 }
 
-static struct clk_ops at91_system_clk_ops = {
-	.enable = at91_system_clk_enable,
+static struct clk_ops system_clk_ops = {
+	.of_xlate = at91_clk_of_xlate,
+	.enable = system_clk_enable,
 };
 
-static int at91_system_clk_bind(struct udevice *dev)
-{
-	return at91_pmc_clk_node_bind(dev);
-}
-
-static int at91_system_clk_probe(struct udevice *dev)
-{
-	return at91_pmc_core_probe(dev);
-}
-
-static const struct udevice_id at91_system_clk_match[] = {
-	{ .compatible = "atmel,at91rm9200-clk-system" },
-	{}
-};
-
-U_BOOT_DRIVER(at91_system_clk) = {
-	.name = "at91-system-clk",
+U_BOOT_DRIVER(system_clk) = {
+	.name = "system-clk",
 	.id = UCLASS_CLK,
-	.of_match = at91_system_clk_match,
-	.bind = at91_system_clk_bind,
-	.probe = at91_system_clk_probe,
+	.probe = at91_clk_probe,
 	.platdata_auto_alloc_size = sizeof(struct pmc_platdata),
-	.ops = &at91_system_clk_ops,
+	.ops = &system_clk_ops,
 };
diff --git a/drivers/clk/at91/pmc.c b/drivers/clk/at91/pmc.c
index 76ff387..76ba91a 100644
--- a/drivers/clk/at91/pmc.c
+++ b/drivers/clk/at91/pmc.c
@@ -25,6 +25,8 @@ U_BOOT_DRIVER(at91_pmc) = {
 	.of_match = at91_pmc_match,
 };
 
+/*---------------------------------------------------------*/
+
 int at91_pmc_core_probe(struct udevice *dev)
 {
 	struct pmc_platdata *plat = dev_get_platdata(dev);
@@ -36,21 +38,41 @@ int at91_pmc_core_probe(struct udevice *dev)
 	return 0;
 }
 
-int at91_pmc_clk_node_bind(struct udevice *dev)
+/**
+ * at91_clk_sub_device_bind() - for the at91 clock driver
+ * Recursively bind its children as clk devices.
+ *
+ * @return: 0 on success, or negative error code on failure
+ */
+int at91_clk_sub_device_bind(struct udevice *dev, const char *drv_name)
 {
 	const void *fdt = gd->fdt_blob;
 	int offset = dev->of_offset;
+	bool pre_reloc_only = !(gd->flags & GD_FLG_RELOC);
 	const char *name;
 	int ret;
 
 	for (offset = fdt_first_subnode(fdt, offset);
 	     offset > 0;
 	     offset = fdt_next_subnode(fdt, offset)) {
+		if (pre_reloc_only &&
+		    !fdt_getprop(fdt, offset, "u-boot,dm-pre-reloc", NULL))
+			continue;
+		/*
+		 * If this node has "compatible" property, this is not
+		 * a clock sub-node, but a normal device. skip.
+		 */
+		fdt_get_property(fdt, offset, "compatible", &ret);
+		if (ret >= 0)
+			continue;
+
+		if (ret != -FDT_ERR_NOTFOUND)
+			return ret;
+
 		name = fdt_get_name(fdt, offset, NULL);
 		if (!name)
 			return -EINVAL;
-
-		ret = device_bind_driver_to_node(dev, "clk", name,
+		ret = device_bind_driver_to_node(dev, drv_name, name,
 						 offset, NULL);
 		if (ret)
 			return ret;
@@ -59,7 +81,33 @@ int at91_pmc_clk_node_bind(struct udevice *dev)
 	return 0;
 }
 
-U_BOOT_DRIVER(clk_generic) = {
-	.id	= UCLASS_CLK,
-	.name	= "clk",
-};
+int at91_clk_of_xlate(struct clk *clk, struct fdtdec_phandle_args *args)
+{
+	int periph;
+
+	if (args->args_count) {
+		debug("Invalid args_count: %d\n", args->args_count);
+		return -EINVAL;
+	}
+
+	periph = fdtdec_get_uint(gd->fdt_blob, clk->dev->of_offset, "reg", -1);
+	if (periph < 0)
+		return -EINVAL;
+
+	clk->id = periph;
+
+	return 0;
+}
+
+int at91_clk_probe(struct udevice *dev)
+{
+	struct udevice *dev_periph_container, *dev_pmc;
+	struct pmc_platdata *plat = dev_get_platdata(dev);
+
+	dev_periph_container = dev_get_parent(dev);
+	dev_pmc = dev_get_parent(dev_periph_container);
+
+	plat->reg_base = (struct at91_pmc *)dev_get_addr_ptr(dev_pmc);
+
+	return 0;
+}
diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h
index 5444c84..f222fce 100644
--- a/drivers/clk/at91/pmc.h
+++ b/drivers/clk/at91/pmc.h
@@ -13,6 +13,9 @@ struct pmc_platdata {
 };
 
 int at91_pmc_core_probe(struct udevice *dev);
-int at91_pmc_clk_node_bind(struct udevice *dev);
+int at91_clk_sub_device_bind(struct udevice *dev, const char *drv_name);
+
+int at91_clk_of_xlate(struct clk *clk, struct fdtdec_phandle_args *args);
+int at91_clk_probe(struct udevice *dev);
 
 #endif
-- 
2.7.4

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

* [U-Boot] [PATCH v3 3/7] gpio: atmel_pio4: Remove unnecessary clock calling
  2016-09-27  3:00 [U-Boot] [PATCH v3 0/7] clk: at91: Improve the clock implementation Wenyou Yang
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 1/7] clk: clk-uclass: Assign clk->dev before call .of_xlate Wenyou Yang
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 2/7] clk: at91: Improve the clock implementation Wenyou Yang
@ 2016-09-27  3:00 ` Wenyou Yang
  2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 4/7] i2c: at91_i2c: " Wenyou Yang
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Wenyou Yang @ 2016-09-27  3:00 UTC (permalink / raw)
  To: u-boot

Due to the peripheral clock driver improvement, remove the
unnecessary clock calling.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
---

Changes in v3: None
Changes in v2:
 - Add Acked-by tag for gpio/atmel_pio4.

 drivers/gpio/atmel_pio4.c | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/drivers/gpio/atmel_pio4.c b/drivers/gpio/atmel_pio4.c
index 7adea88..cb90b02 100644
--- a/drivers/gpio/atmel_pio4.c
+++ b/drivers/gpio/atmel_pio4.c
@@ -284,27 +284,15 @@ static int atmel_pio4_probe(struct udevice *dev)
 	struct atmel_pio4_platdata *plat = dev_get_platdata(dev);
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct atmel_pioctrl_data *pioctrl_data;
-	struct udevice *dev_clk;
 	struct clk clk;
 	fdt_addr_t addr_base;
 	u32 nbanks;
-	int periph;
 	int ret;
 
 	ret = clk_get_by_index(dev, 0, &clk);
 	if (ret)
 		return ret;
 
-	periph = fdtdec_get_uint(gd->fdt_blob, clk.dev->of_offset, "reg", -1);
-	if (periph < 0)
-		return -EINVAL;
-
-	dev_clk = dev_get_parent(clk.dev);
-	ret = clk_request(dev_clk, &clk);
-	if (ret)
-		return ret;
-
-	clk.id = periph;
 	ret = clk_enable(&clk);
 	if (ret)
 		return ret;
-- 
2.7.4

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

* [U-Boot] [PATCH v3 4/7] i2c: at91_i2c: Remove unnecessary clock calling
  2016-09-27  3:00 [U-Boot] [PATCH v3 0/7] clk: at91: Improve the clock implementation Wenyou Yang
                   ` (2 preceding siblings ...)
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 3/7] gpio: atmel_pio4: Remove unnecessary clock calling Wenyou Yang
@ 2016-09-27  3:00 ` Wenyou Yang
  2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 5/7] i2c: at91_i2c: Change error return -ENODEV to -EINVAL Wenyou Yang
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Wenyou Yang @ 2016-09-27  3:00 UTC (permalink / raw)
  To: u-boot

Due to the peripheral clock driver improvement, remove the
unnecessary clock calling.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
---

Changes in v3: None
Changes in v2: None

 drivers/i2c/at91_i2c.c | 16 ----------------
 1 file changed, 16 deletions(-)

diff --git a/drivers/i2c/at91_i2c.c b/drivers/i2c/at91_i2c.c
index d71f75c..dcd3ce8 100644
--- a/drivers/i2c/at91_i2c.c
+++ b/drivers/i2c/at91_i2c.c
@@ -176,34 +176,18 @@ static void at91_calc_i2c_clock(struct udevice *dev, int i2c_clk)
 static int at91_i2c_enable_clk(struct udevice *dev)
 {
 	struct at91_i2c_bus *bus = dev_get_priv(dev);
-	struct udevice *dev_clk;
 	struct clk clk;
 	ulong clk_rate;
-	int periph;
 	int ret;
 
 	ret = clk_get_by_index(dev, 0, &clk);
 	if (ret)
 		return -EINVAL;
 
-	periph = fdtdec_get_uint(gd->fdt_blob, clk.dev->of_offset, "reg", -1);
-	if (periph < 0)
-		return -EINVAL;
-
-	dev_clk = dev_get_parent(clk.dev);
-	ret = clk_request(dev_clk, &clk);
-	if (ret)
-		return ret;
-
-	clk.id = periph;
 	ret = clk_enable(&clk);
 	if (ret)
 		return ret;
 
-	ret = clk_get_by_index(dev_clk, 0, &clk);
-	if (ret)
-		return ret;
-
 	clk_rate = clk_get_rate(&clk);
 	if (!clk_rate)
 		return -ENODEV;
-- 
2.7.4

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

* [U-Boot] [PATCH v3 5/7] i2c: at91_i2c: Change error return -ENODEV to -EINVAL
  2016-09-27  3:00 [U-Boot] [PATCH v3 0/7] clk: at91: Improve the clock implementation Wenyou Yang
                   ` (3 preceding siblings ...)
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 4/7] i2c: at91_i2c: " Wenyou Yang
@ 2016-09-27  3:00 ` Wenyou Yang
  2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 6/7] usb: ehci-atmel: Remove unnecessary clock calling Wenyou Yang
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 7/7] mmc: atmel_sdhci: " Wenyou Yang
  6 siblings, 1 reply; 17+ messages in thread
From: Wenyou Yang @ 2016-09-27  3:00 UTC (permalink / raw)
  To: u-boot

Change the error return value -ENODEV from to -EINVAL for more
reasonable.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
---

Changes in v3: None
Changes in v2: None

 drivers/i2c/at91_i2c.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i2c/at91_i2c.c b/drivers/i2c/at91_i2c.c
index dcd3ce8..4bc54ee 100644
--- a/drivers/i2c/at91_i2c.c
+++ b/drivers/i2c/at91_i2c.c
@@ -190,7 +190,7 @@ static int at91_i2c_enable_clk(struct udevice *dev)
 
 	clk_rate = clk_get_rate(&clk);
 	if (!clk_rate)
-		return -ENODEV;
+		return -EINVAL;
 
 	bus->bus_clk_rate = clk_rate;
 
-- 
2.7.4

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

* [U-Boot] [PATCH v3 6/7] usb: ehci-atmel: Remove unnecessary clock calling
  2016-09-27  3:00 [U-Boot] [PATCH v3 0/7] clk: at91: Improve the clock implementation Wenyou Yang
                   ` (4 preceding siblings ...)
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 5/7] i2c: at91_i2c: Change error return -ENODEV to -EINVAL Wenyou Yang
@ 2016-09-27  3:00 ` Wenyou Yang
  2016-10-28 10:37   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
  2016-10-28 16:49   ` Andreas Bießmann
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 7/7] mmc: atmel_sdhci: " Wenyou Yang
  6 siblings, 2 replies; 17+ messages in thread
From: Wenyou Yang @ 2016-09-27  3:00 UTC (permalink / raw)
  To: u-boot

Due to the peripheral clock driver improvement, remove the
unnecessary clock calling.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
---

Changes in v3: None
Changes in v2: None

 drivers/usb/host/ehci-atmel.c | 15 ---------------
 1 file changed, 15 deletions(-)

diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c
index 2b138c5..a5c6d34 100644
--- a/drivers/usb/host/ehci-atmel.c
+++ b/drivers/usb/host/ehci-atmel.c
@@ -56,9 +56,7 @@ struct ehci_atmel_priv {
 
 static int ehci_atmel_enable_clk(struct udevice *dev)
 {
-	struct udevice *dev_clk;
 	struct clk clk;
-	int periph;
 	int ret;
 
 	ret = clk_get_by_index(dev, 0, &clk);
@@ -73,19 +71,6 @@ static int ehci_atmel_enable_clk(struct udevice *dev)
 	if (ret)
 		return -EINVAL;
 
-	periph = fdtdec_get_uint(gd->fdt_blob, clk.dev->of_offset, "reg", -1);
-	if (periph < 0)
-		return -EINVAL;
-
-	dev_clk = dev_get_parent(clk.dev);
-	if (!dev_clk)
-		return -ENODEV;
-
-	ret = clk_request(dev_clk, &clk);
-	if (ret)
-		return ret;
-
-	clk.id = periph;
 	ret = clk_enable(&clk);
 	if (ret)
 		return ret;
-- 
2.7.4

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

* [U-Boot] [PATCH v3 7/7] mmc: atmel_sdhci: Remove unnecessary clock calling
  2016-09-27  3:00 [U-Boot] [PATCH v3 0/7] clk: at91: Improve the clock implementation Wenyou Yang
                   ` (5 preceding siblings ...)
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 6/7] usb: ehci-atmel: Remove unnecessary clock calling Wenyou Yang
@ 2016-09-27  3:00 ` Wenyou Yang
  2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
  6 siblings, 1 reply; 17+ messages in thread
From: Wenyou Yang @ 2016-09-27  3:00 UTC (permalink / raw)
  To: u-boot

Due to the peripheral and generated clock driver improvement,
remove the unnecessary clock calling.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
---

Changes in v3:
 - Fix typo, unneccessary -> unnecessary.
 - Add Reviewed-by tag.

Changes in v2: None

 drivers/mmc/atmel_sdhci.c | 27 ++-------------------------
 1 file changed, 2 insertions(+), 25 deletions(-)

diff --git a/drivers/mmc/atmel_sdhci.c b/drivers/mmc/atmel_sdhci.c
index d8f8087..080a0a1 100644
--- a/drivers/mmc/atmel_sdhci.c
+++ b/drivers/mmc/atmel_sdhci.c
@@ -51,29 +51,6 @@ struct atmel_sdhci_plat {
 	struct mmc mmc;
 };
 
-static int atmel_sdhci_get_clk(struct udevice *dev, int index, struct clk *clk)
-{
-	struct udevice *dev_clk;
-	int periph, ret;
-
-	ret = clk_get_by_index(dev, index, clk);
-	if (ret)
-		return ret;
-
-	periph = fdtdec_get_uint(gd->fdt_blob, clk->dev->of_offset, "reg", -1);
-	if (periph < 0)
-		return -EINVAL;
-
-	dev_clk = dev_get_parent(clk->dev);
-	ret = clk_request(dev_clk, clk);
-	if (ret)
-		return ret;
-
-	clk->id = periph;
-
-	return 0;
-}
-
 static int atmel_sdhci_probe(struct udevice *dev)
 {
 	struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
@@ -86,7 +63,7 @@ static int atmel_sdhci_probe(struct udevice *dev)
 	struct clk clk;
 	int ret;
 
-	ret = atmel_sdhci_get_clk(dev, 0, &clk);
+	ret = clk_get_by_index(dev, 0, &clk);
 	if (ret)
 		return ret;
 
@@ -107,7 +84,7 @@ static int atmel_sdhci_probe(struct udevice *dev)
 	clk_mul = (caps_1 & SDHCI_CLOCK_MUL_MASK) >> SDHCI_CLOCK_MUL_SHIFT;
 	gck_rate = clk_base * 1000000 * (clk_mul + 1);
 
-	ret = atmel_sdhci_get_clk(dev, 1, &clk);
+	ret = clk_get_by_index(dev, 1, &clk);
 	if (ret)
 		return ret;
 
-- 
2.7.4

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

* [U-Boot] [PATCH v3 1/7] clk: clk-uclass: Assign clk->dev before call .of_xlate
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 1/7] clk: clk-uclass: Assign clk->dev before call .of_xlate Wenyou Yang
@ 2016-09-27 17:55   ` Simon Glass
  2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
  1 sibling, 0 replies; 17+ messages in thread
From: Simon Glass @ 2016-09-27 17:55 UTC (permalink / raw)
  To: u-boot

On 26 September 2016 at 21:00, Wenyou Yang <wenyou.yang@atmel.com> wrote:
> In order to make clk->dev available in ops->of_xlate() to get the
> clock ID from the 'reg' property of the clock node, assign the
> clk->dev before calling ops->of_xlate().
>
> Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
> Acked-by: Stephen Warren <swarren@nvidia.com>
> ---
>
> Changes in v3: None
> Changes in v2:
>  - Add Acked-by tag.
>
>  drivers/clk/clk-uclass.c | 3 +++
>  1 file changed, 3 insertions(+)

Acked-by: Simon Glass <sjg@chromium.org>

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

* [U-Boot] [U-Boot, v3, 6/7] usb: ehci-atmel: Remove unnecessary clock calling
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 6/7] usb: ehci-atmel: Remove unnecessary clock calling Wenyou Yang
@ 2016-10-28 10:37   ` Andreas Bießmann
  2016-10-28 16:49   ` Andreas Bießmann
  1 sibling, 0 replies; 17+ messages in thread
From: Andreas Bießmann @ 2016-10-28 10:37 UTC (permalink / raw)
  To: u-boot

On Tue, Sep 27, 2016 at 11:00:33AM +0800, Wenyou Yang wrote:
> Due to the peripheral clock driver improvement, remove the
> unnecessary clock calling.
> 
> Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>

Reviewed-by: Andreas Bie?mann <andreas@biessmann.org>

> ---
> 
> Changes in v3: None
> Changes in v2: None
> 
>  drivers/usb/host/ehci-atmel.c | 15 ---------------
>  1 file changed, 15 deletions(-)
> 
> diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c
> index 2b138c5..a5c6d34 100644
> --- a/drivers/usb/host/ehci-atmel.c
> +++ b/drivers/usb/host/ehci-atmel.c
> @@ -56,9 +56,7 @@ struct ehci_atmel_priv {
>  
>  static int ehci_atmel_enable_clk(struct udevice *dev)
>  {
> -	struct udevice *dev_clk;
>  	struct clk clk;
> -	int periph;
>  	int ret;
>  
>  	ret = clk_get_by_index(dev, 0, &clk);
> @@ -73,19 +71,6 @@ static int ehci_atmel_enable_clk(struct udevice *dev)
>  	if (ret)
>  		return -EINVAL;
>  
> -	periph = fdtdec_get_uint(gd->fdt_blob, clk.dev->of_offset, "reg", -1);
> -	if (periph < 0)
> -		return -EINVAL;
> -
> -	dev_clk = dev_get_parent(clk.dev);
> -	if (!dev_clk)
> -		return -ENODEV;
> -
> -	ret = clk_request(dev_clk, &clk);
> -	if (ret)
> -		return ret;
> -
> -	clk.id = periph;
>  	ret = clk_enable(&clk);
>  	if (ret)
>  		return ret;

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

* [U-Boot] [U-Boot, v3, 1/7] clk: clk-uclass: Assign clk->dev before call .of_xlate
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 1/7] clk: clk-uclass: Assign clk->dev before call .of_xlate Wenyou Yang
  2016-09-27 17:55   ` Simon Glass
@ 2016-10-28 16:49   ` Andreas Bießmann
  1 sibling, 0 replies; 17+ messages in thread
From: Andreas Bießmann @ 2016-10-28 16:49 UTC (permalink / raw)
  To: u-boot

Dear Wenyou Yang,

Wenyou Yang <wenyou.yang@atmel.com> writes:
>In order to make clk->dev available in ops->of_xlate() to get the
>clock ID from the 'reg' property of the clock node, assign the
>clk->dev before calling ops->of_xlate().
>
>Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
>Acked-by: Stephen Warren <swarren@nvidia.com>
>Acked-by: Simon Glass <sjg@chromium.org>
>---
>
>Changes in v3: None
>Changes in v2:
> - Add Acked-by tag.
>
> drivers/clk/clk-uclass.c | 3 +++
> 1 file changed, 3 insertions(+)

applied to u-boot-atmel/master, thanks!

Best regards,
Andreas Bie?mann

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

* [U-Boot] [U-Boot, v3, 2/7] clk: at91: Improve the clock implementation
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 2/7] clk: at91: Improve the clock implementation Wenyou Yang
@ 2016-10-28 16:49   ` Andreas Bießmann
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Bießmann @ 2016-10-28 16:49 UTC (permalink / raw)
  To: u-boot

Dear Wenyou Yang,

Wenyou Yang <wenyou.yang@atmel.com> writes:
>For the peripheral clock, provide the clock ops for the clock
>provider, such as spi0_clk. The .of_xlate is to get the clk->id,
>the .enable is to enable the spi0 peripheral clock, the .get_rate
>is to get the clock frequency.
>
>The driver for periph32ck node is responsible for recursively
>binding its children as clk devices, not provide the clock ops.
>
>So do the generated clock and system clock.
>
>Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
>Acked-by: Stephen Warren <swarren@nvidia.com>
>---
>
>Changes in v3:
> - Remove the unneeded wrapper functions.
> - Fix typo, Invaild -> Invalid.
> - Add Acked-by tag.
>
>Changes in v2:
> - For the periph32ck, periph64ck, gck, systemck nodes, they aren't
>   the clock providers, are to house various actual clock providers,
>   use UCLASS_MISC, instead of UCLASS_CLK.
> - For *_of_xlate(), add argument check.
> - Fix the implementation of the *_get_rate().
> - Use documentation-wise variables for *_clk_probe().
> - Remove the duplicated code, use the common functions.
>
> drivers/clk/at91/Kconfig          |  1 +
> drivers/clk/at91/clk-generated.c  | 87 +++++++++++++++++++++++----------------
> drivers/clk/at91/clk-peripheral.c | 72 ++++++++++++++++++++++----------
> drivers/clk/at91/clk-system.c     | 57 ++++++++++++++-----------
> drivers/clk/at91/pmc.c            | 62 ++++++++++++++++++++++++----
> drivers/clk/at91/pmc.h            |  5 ++-
> 6 files changed, 195 insertions(+), 89 deletions(-)

applied to u-boot-atmel/master, thanks!

Best regards,
Andreas Bie?mann

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

* [U-Boot] [U-Boot, v3, 3/7] gpio: atmel_pio4: Remove unnecessary clock calling
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 3/7] gpio: atmel_pio4: Remove unnecessary clock calling Wenyou Yang
@ 2016-10-28 16:49   ` Andreas Bießmann
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Bießmann @ 2016-10-28 16:49 UTC (permalink / raw)
  To: u-boot

Dear Wenyou Yang,

Wenyou Yang <wenyou.yang@atmel.com> writes:
>Due to the peripheral clock driver improvement, remove the
>unnecessary clock calling.
>
>Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
>Acked-by: Stephen Warren <swarren@nvidia.com>
>---
>
>Changes in v3: None
>Changes in v2:
> - Add Acked-by tag for gpio/atmel_pio4.
>
> drivers/gpio/atmel_pio4.c | 12 ------------
> 1 file changed, 12 deletions(-)

applied to u-boot-atmel/master, thanks!

Best regards,
Andreas Bie?mann

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

* [U-Boot] [U-Boot, v3, 4/7] i2c: at91_i2c: Remove unnecessary clock calling
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 4/7] i2c: at91_i2c: " Wenyou Yang
@ 2016-10-28 16:49   ` Andreas Bießmann
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Bießmann @ 2016-10-28 16:49 UTC (permalink / raw)
  To: u-boot

Dear Wenyou Yang,

Wenyou Yang <wenyou.yang@atmel.com> writes:
>Due to the peripheral clock driver improvement, remove the
>unnecessary clock calling.
>
>Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
>Reviewed-by: Heiko Schocher <hs@denx.de>
>---
>
>Changes in v3: None
>Changes in v2: None
>
> drivers/i2c/at91_i2c.c | 16 ----------------
> 1 file changed, 16 deletions(-)

applied to u-boot-atmel/master, thanks!

Best regards,
Andreas Bie?mann

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

* [U-Boot] [U-Boot, v3, 5/7] i2c: at91_i2c: Change error return -ENODEV to -EINVAL
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 5/7] i2c: at91_i2c: Change error return -ENODEV to -EINVAL Wenyou Yang
@ 2016-10-28 16:49   ` Andreas Bießmann
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Bießmann @ 2016-10-28 16:49 UTC (permalink / raw)
  To: u-boot

Dear Wenyou Yang,

Wenyou Yang <wenyou.yang@atmel.com> writes:
>Change the error return value -ENODEV from to -EINVAL for more
>reasonable.
>
>Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
>Reviewed-by: Heiko Schocher <hs@denx.de>
>---
>
>Changes in v3: None
>Changes in v2: None
>
> drivers/i2c/at91_i2c.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

applied to u-boot-atmel/master, thanks!

Best regards,
Andreas Bie?mann

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

* [U-Boot] [U-Boot, v3, 6/7] usb: ehci-atmel: Remove unnecessary clock calling
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 6/7] usb: ehci-atmel: Remove unnecessary clock calling Wenyou Yang
  2016-10-28 10:37   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
@ 2016-10-28 16:49   ` Andreas Bießmann
  1 sibling, 0 replies; 17+ messages in thread
From: Andreas Bießmann @ 2016-10-28 16:49 UTC (permalink / raw)
  To: u-boot

Dear Wenyou Yang,

Wenyou Yang <wenyou.yang@atmel.com> writes:
>Due to the peripheral clock driver improvement, remove the
>unnecessary clock calling.
>
>Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
>Reviewed-by: Andreas Bie?mann <andreas@biessmann.org>
>---
>
>Changes in v3: None
>Changes in v2: None
>
> drivers/usb/host/ehci-atmel.c | 15 ---------------
> 1 file changed, 15 deletions(-)

applied to u-boot-atmel/master, thanks!

Best regards,
Andreas Bie?mann

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

* [U-Boot] [U-Boot, v3, 7/7] mmc: atmel_sdhci: Remove unnecessary clock calling
  2016-09-27  3:00 ` [U-Boot] [PATCH v3 7/7] mmc: atmel_sdhci: " Wenyou Yang
@ 2016-10-28 16:49   ` Andreas Bießmann
  0 siblings, 0 replies; 17+ messages in thread
From: Andreas Bießmann @ 2016-10-28 16:49 UTC (permalink / raw)
  To: u-boot

Dear Wenyou Yang,

Wenyou Yang <wenyou.yang@atmel.com> writes:
>Due to the peripheral and generated clock driver improvement,
>remove the unnecessary clock calling.
>
>Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
>Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
>---
>
>Changes in v3:
> - Fix typo, unneccessary -> unnecessary.
> - Add Reviewed-by tag.
>
>Changes in v2: None
>
> drivers/mmc/atmel_sdhci.c | 27 ++-------------------------
> 1 file changed, 2 insertions(+), 25 deletions(-)

applied to u-boot-atmel/master, thanks!

Best regards,
Andreas Bie?mann

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

end of thread, other threads:[~2016-10-28 16:49 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-27  3:00 [U-Boot] [PATCH v3 0/7] clk: at91: Improve the clock implementation Wenyou Yang
2016-09-27  3:00 ` [U-Boot] [PATCH v3 1/7] clk: clk-uclass: Assign clk->dev before call .of_xlate Wenyou Yang
2016-09-27 17:55   ` Simon Glass
2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
2016-09-27  3:00 ` [U-Boot] [PATCH v3 2/7] clk: at91: Improve the clock implementation Wenyou Yang
2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
2016-09-27  3:00 ` [U-Boot] [PATCH v3 3/7] gpio: atmel_pio4: Remove unnecessary clock calling Wenyou Yang
2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
2016-09-27  3:00 ` [U-Boot] [PATCH v3 4/7] i2c: at91_i2c: " Wenyou Yang
2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
2016-09-27  3:00 ` [U-Boot] [PATCH v3 5/7] i2c: at91_i2c: Change error return -ENODEV to -EINVAL Wenyou Yang
2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
2016-09-27  3:00 ` [U-Boot] [PATCH v3 6/7] usb: ehci-atmel: Remove unnecessary clock calling Wenyou Yang
2016-10-28 10:37   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann
2016-10-28 16:49   ` Andreas Bießmann
2016-09-27  3:00 ` [U-Boot] [PATCH v3 7/7] mmc: atmel_sdhci: " Wenyou Yang
2016-10-28 16:49   ` [U-Boot] [U-Boot, v3, " Andreas Bießmann

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.