All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2] spi: kirkwood: Get drvdata in .ofdata_to_platdata
@ 2018-03-15 11:33 Jagan Teki
  2018-03-15 11:33 ` [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion Jagan Teki
  2018-08-01  6:51 ` [U-Boot] [PATCH 1/2] spi: kirkwood: Get drvdata in .ofdata_to_platdata Jagan Teki
  0 siblings, 2 replies; 19+ messages in thread
From: Jagan Teki @ 2018-03-15 11:33 UTC (permalink / raw)
  To: u-boot

Get the is_errata_50mhz_ac in .ofdata_to_platdata, and
reuse it in .set_mode this can eventually initialized
dt code at once and adding room to add platdata.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 drivers/spi/kirkwood_spi.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
index 1ad8cdee64..4850a2b955 100644
--- a/drivers/spi/kirkwood_spi.c
+++ b/drivers/spi/kirkwood_spi.c
@@ -249,6 +249,7 @@ struct mvebu_spi_dev {
 
 struct mvebu_spi_platdata {
 	struct kwspi_registers *spireg;
+	bool is_errata_50mhz_ac;
 };
 
 struct mvebu_spi_priv {
@@ -310,7 +311,6 @@ static int mvebu_spi_set_mode(struct udevice *bus, uint mode)
 {
 	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
 	struct kwspi_registers *reg = plat->spireg;
-	const struct mvebu_spi_dev *drvdata;
 	u32 data = readl(&reg->cfg);
 
 	data &= ~(KWSPI_CPHA | KWSPI_CPOL | KWSPI_RXLSBF | KWSPI_TXLSBF);
@@ -324,8 +324,7 @@ static int mvebu_spi_set_mode(struct udevice *bus, uint mode)
 
 	writel(data, &reg->cfg);
 
-	drvdata = (struct mvebu_spi_dev *)dev_get_driver_data(bus);
-	if (drvdata->is_errata_50mhz_ac)
+	if (plat->is_errata_50mhz_ac)
 		mvebu_spi_50mhz_ac_timing_erratum(bus, mode);
 
 	return 0;
@@ -368,8 +367,11 @@ static int mvebu_spi_probe(struct udevice *bus)
 static int mvebu_spi_ofdata_to_platdata(struct udevice *bus)
 {
 	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	const struct mvebu_spi_dev *drvdata =
+		(struct mvebu_spi_dev *)dev_get_driver_data(bus);
 
 	plat->spireg = (struct kwspi_registers *)devfdt_get_addr(bus);
+	plat->is_errata_50mhz_ac = drvdata->is_errata_50mhz_ac;
 
 	return 0;
 }
-- 
2.14.3

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-03-15 11:33 [U-Boot] [PATCH 1/2] spi: kirkwood: Get drvdata in .ofdata_to_platdata Jagan Teki
@ 2018-03-15 11:33 ` Jagan Teki
  2018-03-20 13:49   ` Stefan Roese
  2018-04-26  6:00   ` Jagan Teki
  2018-08-01  6:51 ` [U-Boot] [PATCH 1/2] spi: kirkwood: Get drvdata in .ofdata_to_platdata Jagan Teki
  1 sibling, 2 replies; 19+ messages in thread
From: Jagan Teki @ 2018-03-15 11:33 UTC (permalink / raw)
  To: u-boot

kirkwood now support dt along with platform data,
respective boards need to switch into dm for the same.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 drivers/spi/kirkwood_spi.c              | 240 ++++++--------------------------
 include/dm/platform_data/spi_kirkwood.h |  15 ++
 2 files changed, 56 insertions(+), 199 deletions(-)
 create mode 100644 include/dm/platform_data/spi_kirkwood.h

diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
index 4850a2b955..16d41de2a6 100644
--- a/drivers/spi/kirkwood_spi.c
+++ b/drivers/spi/kirkwood_spi.c
@@ -14,31 +14,41 @@
 #include <spi.h>
 #include <asm/io.h>
 #include <asm/arch/soc.h>
-#ifdef CONFIG_KIRKWOOD
-#include <asm/arch/mpp.h>
-#endif
 #include <asm/arch-mvebu/spi.h>
 
-static void _spi_cs_activate(struct kwspi_registers *reg)
+#include <dm/platform_data/spi_kirkwood.h>
+
+struct mvebu_spi_dev {
+	bool	is_errata_50mhz_ac;
+};
+
+struct mvebu_spi_priv {
+	struct kwspi_registers *spireg;
+};
+
+static void spi_cs_activate(struct kwspi_registers *reg)
 {
 	setbits_le32(&reg->ctrl, KWSPI_CSN_ACT);
 }
 
-static void _spi_cs_deactivate(struct kwspi_registers *reg)
+static void spi_cs_deactivate(struct kwspi_registers *reg)
 {
 	clrbits_le32(&reg->ctrl, KWSPI_CSN_ACT);
 }
 
-static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,
-		     const void *dout, void *din, unsigned long flags)
+static int mvebu_spi_xfer(struct udevice *dev, unsigned int bitlen,
+			  const void *dout, void *din, unsigned long flags)
 {
+	struct udevice *bus = dev->parent;
+	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
+	struct kwspi_registers *reg = plat->spireg;
 	unsigned int tmpdout, tmpdin;
 	int tm, isread = 0;
 
-	debug("spi_xfer: dout %p din %p bitlen %u\n", dout, din, bitlen);
+	debug("%s: dout %p din %p bitlen %u\n", __func__, dout, din, bitlen);
 
 	if (flags & SPI_XFER_BEGIN)
-		_spi_cs_activate(reg);
+		spi_cs_activate(reg);
 
 	/*
 	 * handle data in 8-bit chunks
@@ -56,8 +66,8 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,
 
 		clrbits_le32(&reg->irq_cause, KWSPI_SMEMRDIRQ);
 		writel(tmpdout, &reg->dout);	/* Write the data out */
-		debug("*** spi_xfer: ... %08x written, bitlen %d\n",
-		      tmpdout, bitlen);
+		debug("%s: ... %08x written, bitlen %d\n",
+		      __func__, tmpdout, bitlen);
 
 		/*
 		 * Wait for SPI transmit to get out
@@ -68,8 +78,8 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,
 			if (readl(&reg->irq_cause) & KWSPI_SMEMRDIRQ) {
 				isread = 1;
 				tmpdin = readl(&reg->din);
-				debug("spi_xfer: din %p..%08x read\n",
-				      din, tmpdin);
+				debug("%s: din %p..%08x read\n",
+				      __func__, din, tmpdin);
 
 				if (din) {
 					*((u8 *)din) = (u8)tmpdin;
@@ -83,179 +93,17 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,
 				break;
 		}
 		if (tm >= KWSPI_TIMEOUT)
-			printf("*** spi_xfer: Time out during SPI transfer\n");
+			printf("%s: Time out during SPI transfer\n", __func__);
 
 		debug("loopend bitlen %d\n", bitlen);
 	}
 
 	if (flags & SPI_XFER_END)
-		_spi_cs_deactivate(reg);
+		spi_cs_deactivate(reg);
 
 	return 0;
 }
 
-#ifndef CONFIG_DM_SPI
-
-static struct kwspi_registers *spireg =
-	(struct kwspi_registers *)MVEBU_SPI_BASE;
-
-#ifdef CONFIG_KIRKWOOD
-static u32 cs_spi_mpp_back[2];
-#endif
-
-struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
-				unsigned int max_hz, unsigned int mode)
-{
-	struct spi_slave *slave;
-	u32 data;
-#ifdef CONFIG_KIRKWOOD
-	static const u32 kwspi_mpp_config[2][2] = {
-		{ MPP0_SPI_SCn, 0 }, /* if cs == 0 */
-		{ MPP7_SPI_SCn, 0 } /* if cs != 0 */
-	};
-#endif
-
-	if (!spi_cs_is_valid(bus, cs))
-		return NULL;
-
-	slave = spi_alloc_slave_base(bus, cs);
-	if (!slave)
-		return NULL;
-
-	writel(KWSPI_SMEMRDY, &spireg->ctrl);
-
-	/* calculate spi clock prescaller using max_hz */
-	data = ((CONFIG_SYS_TCLK / 2) / max_hz) + 0x10;
-	data = data < KWSPI_CLKPRESCL_MIN ? KWSPI_CLKPRESCL_MIN : data;
-	data = data > KWSPI_CLKPRESCL_MASK ? KWSPI_CLKPRESCL_MASK : data;
-
-	/* program spi clock prescaller using max_hz */
-	writel(KWSPI_ADRLEN_3BYTE | data, &spireg->cfg);
-	debug("data = 0x%08x\n", data);
-
-	writel(KWSPI_SMEMRDIRQ, &spireg->irq_cause);
-	writel(KWSPI_IRQMASK, &spireg->irq_mask);
-
-#ifdef CONFIG_KIRKWOOD
-	/* program mpp registers to select  SPI_CSn */
-	kirkwood_mpp_conf(kwspi_mpp_config[cs ? 1 : 0], cs_spi_mpp_back);
-#endif
-
-	return slave;
-}
-
-void spi_free_slave(struct spi_slave *slave)
-{
-#ifdef CONFIG_KIRKWOOD
-	kirkwood_mpp_conf(cs_spi_mpp_back, NULL);
-#endif
-	free(slave);
-}
-
-#if defined(CONFIG_SYS_KW_SPI_MPP)
-u32 spi_mpp_backup[4];
-#endif
-
-__attribute__((weak)) int board_spi_claim_bus(struct spi_slave *slave)
-{
-	return 0;
-}
-
-int spi_claim_bus(struct spi_slave *slave)
-{
-#if defined(CONFIG_SYS_KW_SPI_MPP)
-	u32 config;
-	u32 spi_mpp_config[4];
-
-	config = CONFIG_SYS_KW_SPI_MPP;
-
-	if (config & MOSI_MPP6)
-		spi_mpp_config[0] = MPP6_SPI_MOSI;
-	else
-		spi_mpp_config[0] = MPP1_SPI_MOSI;
-
-	if (config & SCK_MPP10)
-		spi_mpp_config[1] = MPP10_SPI_SCK;
-	else
-		spi_mpp_config[1] = MPP2_SPI_SCK;
-
-	if (config & MISO_MPP11)
-		spi_mpp_config[2] = MPP11_SPI_MISO;
-	else
-		spi_mpp_config[2] = MPP3_SPI_MISO;
-
-	spi_mpp_config[3] = 0;
-	spi_mpp_backup[3] = 0;
-
-	/* set new spi mpp and save current mpp config */
-	kirkwood_mpp_conf(spi_mpp_config, spi_mpp_backup);
-#endif
-
-	return board_spi_claim_bus(slave);
-}
-
-__attribute__((weak)) void board_spi_release_bus(struct spi_slave *slave)
-{
-}
-
-void spi_release_bus(struct spi_slave *slave)
-{
-#if defined(CONFIG_SYS_KW_SPI_MPP)
-	kirkwood_mpp_conf(spi_mpp_backup, NULL);
-#endif
-
-	board_spi_release_bus(slave);
-}
-
-#ifndef CONFIG_SPI_CS_IS_VALID
-/*
- * you can define this function board specific
- * define above CONFIG in board specific config file and
- * provide the function in board specific src file
- */
-int spi_cs_is_valid(unsigned int bus, unsigned int cs)
-{
-	return bus == 0 && (cs == 0 || cs == 1);
-}
-#endif
-
-void spi_init(void)
-{
-}
-
-void spi_cs_activate(struct spi_slave *slave)
-{
-	_spi_cs_activate(spireg);
-}
-
-void spi_cs_deactivate(struct spi_slave *slave)
-{
-	_spi_cs_deactivate(spireg);
-}
-
-int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
-	     const void *dout, void *din, unsigned long flags)
-{
-	return _spi_xfer(spireg, bitlen, dout, din, flags);
-}
-
-#else
-
-/* Here now the DM part */
-
-struct mvebu_spi_dev {
-	bool			is_errata_50mhz_ac;
-};
-
-struct mvebu_spi_platdata {
-	struct kwspi_registers *spireg;
-	bool is_errata_50mhz_ac;
-};
-
-struct mvebu_spi_priv {
-	struct kwspi_registers *spireg;
-};
-
 static int mvebu_spi_set_speed(struct udevice *bus, uint hz)
 {
 	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
@@ -330,15 +178,6 @@ static int mvebu_spi_set_mode(struct udevice *bus, uint mode)
 	return 0;
 }
 
-static int mvebu_spi_xfer(struct udevice *dev, unsigned int bitlen,
-			  const void *dout, void *din, unsigned long flags)
-{
-	struct udevice *bus = dev->parent;
-	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
-
-	return _spi_xfer(plat->spireg, bitlen, dout, din, flags);
-}
-
 static int mvebu_spi_claim_bus(struct udevice *dev)
 {
 	struct udevice *bus = dev->parent;
@@ -364,6 +203,18 @@ static int mvebu_spi_probe(struct udevice *bus)
 	return 0;
 }
 
+static const struct dm_spi_ops mvebu_spi_ops = {
+	.claim_bus	= mvebu_spi_claim_bus,
+	.xfer		= mvebu_spi_xfer,
+	.set_speed	= mvebu_spi_set_speed,
+	.set_mode	= mvebu_spi_set_mode,
+	/*
+	 * cs_info is not needed, since we require all chip selects to be
+	 * in the device tree explicitly
+	 */
+};
+
+#if CONFIG_IS_ENABLED(OF_CONTROL)
 static int mvebu_spi_ofdata_to_platdata(struct udevice *bus)
 {
 	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
@@ -376,17 +227,6 @@ static int mvebu_spi_ofdata_to_platdata(struct udevice *bus)
 	return 0;
 }
 
-static const struct dm_spi_ops mvebu_spi_ops = {
-	.claim_bus	= mvebu_spi_claim_bus,
-	.xfer		= mvebu_spi_xfer,
-	.set_speed	= mvebu_spi_set_speed,
-	.set_mode	= mvebu_spi_set_mode,
-	/*
-	 * cs_info is not needed, since we require all chip selects to be
-	 * in the device tree explicitly
-	 */
-};
-
 static const struct mvebu_spi_dev armada_xp_spi_dev_data = {
 	.is_errata_50mhz_ac = false,
 };
@@ -414,15 +254,17 @@ static const struct udevice_id mvebu_spi_ids[] = {
 	},
 	{ }
 };
+#endif
 
 U_BOOT_DRIVER(mvebu_spi) = {
 	.name = "mvebu_spi",
 	.id = UCLASS_SPI,
+#if CONFIG_IS_ENABLED(OF_CONTROL)
 	.of_match = mvebu_spi_ids,
-	.ops = &mvebu_spi_ops,
 	.ofdata_to_platdata = mvebu_spi_ofdata_to_platdata,
 	.platdata_auto_alloc_size = sizeof(struct mvebu_spi_platdata),
+#endif
+	.ops = &mvebu_spi_ops,
 	.priv_auto_alloc_size = sizeof(struct mvebu_spi_priv),
 	.probe = mvebu_spi_probe,
 };
-#endif
diff --git a/include/dm/platform_data/spi_kirkwood.h b/include/dm/platform_data/spi_kirkwood.h
new file mode 100644
index 0000000000..ae9b2783a9
--- /dev/null
+++ b/include/dm/platform_data/spi_kirkwood.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright (C) 2018 Jagan Teki <jagan@amarulasolutions.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef __spi_kirkwood_h
+#define __spi_kirkwood_h
+
+struct mvebu_spi_platdata {
+	struct kwspi_registers *spireg;
+	bool is_errata_50mhz_ac;
+};
+
+#endif /* __spi_kirkwood_h */
-- 
2.14.3

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-03-15 11:33 ` [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion Jagan Teki
@ 2018-03-20 13:49   ` Stefan Roese
  2018-03-20 15:06     ` Jagan Teki
  2018-04-26  6:00   ` Jagan Teki
  1 sibling, 1 reply; 19+ messages in thread
From: Stefan Roese @ 2018-03-20 13:49 UTC (permalink / raw)
  To: u-boot

Hi Jagan,

On 15.03.2018 12:33, Jagan Teki wrote:
> kirkwood now support dt along with platform data,
> respective boards need to switch into dm for the same.
> 
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>   drivers/spi/kirkwood_spi.c              | 240 ++++++--------------------------
>   include/dm/platform_data/spi_kirkwood.h |  15 ++
>   2 files changed, 56 insertions(+), 199 deletions(-)
>   create mode 100644 include/dm/platform_data/spi_kirkwood.h
> 
> diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
> index 4850a2b955..16d41de2a6 100644
> --- a/drivers/spi/kirkwood_spi.c
> +++ b/drivers/spi/kirkwood_spi.c
> @@ -14,31 +14,41 @@
>   #include <spi.h>
>   #include <asm/io.h>
>   #include <asm/arch/soc.h>
> -#ifdef CONFIG_KIRKWOOD
> -#include <asm/arch/mpp.h>
> -#endif
>   #include <asm/arch-mvebu/spi.h>
>   
> -static void _spi_cs_activate(struct kwspi_registers *reg)
> +#include <dm/platform_data/spi_kirkwood.h>
> +
> +struct mvebu_spi_dev {
> +	bool	is_errata_50mhz_ac;
> +};
> +
> +struct mvebu_spi_priv {
> +	struct kwspi_registers *spireg;
> +};
> +
> +static void spi_cs_activate(struct kwspi_registers *reg)
>   {
>   	setbits_le32(&reg->ctrl, KWSPI_CSN_ACT);
>   }
>   
> -static void _spi_cs_deactivate(struct kwspi_registers *reg)
> +static void spi_cs_deactivate(struct kwspi_registers *reg)
>   {
>   	clrbits_le32(&reg->ctrl, KWSPI_CSN_ACT);
>   }
>   
> -static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,
> -		     const void *dout, void *din, unsigned long flags)
> +static int mvebu_spi_xfer(struct udevice *dev, unsigned int bitlen,
> +			  const void *dout, void *din, unsigned long flags)
>   {
> +	struct udevice *bus = dev->parent;
> +	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
> +	struct kwspi_registers *reg = plat->spireg;
>   	unsigned int tmpdout, tmpdin;
>   	int tm, isread = 0;
>   
> -	debug("spi_xfer: dout %p din %p bitlen %u\n", dout, din, bitlen);
> +	debug("%s: dout %p din %p bitlen %u\n", __func__, dout, din, bitlen);
>   
>   	if (flags & SPI_XFER_BEGIN)
> -		_spi_cs_activate(reg);
> +		spi_cs_activate(reg);
>   
>   	/*
>   	 * handle data in 8-bit chunks
> @@ -56,8 +66,8 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,
>   
>   		clrbits_le32(&reg->irq_cause, KWSPI_SMEMRDIRQ);
>   		writel(tmpdout, &reg->dout);	/* Write the data out */
> -		debug("*** spi_xfer: ... %08x written, bitlen %d\n",
> -		      tmpdout, bitlen);
> +		debug("%s: ... %08x written, bitlen %d\n",
> +		      __func__, tmpdout, bitlen);
>   
>   		/*
>   		 * Wait for SPI transmit to get out
> @@ -68,8 +78,8 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,
>   			if (readl(&reg->irq_cause) & KWSPI_SMEMRDIRQ) {
>   				isread = 1;
>   				tmpdin = readl(&reg->din);
> -				debug("spi_xfer: din %p..%08x read\n",
> -				      din, tmpdin);
> +				debug("%s: din %p..%08x read\n",
> +				      __func__, din, tmpdin);
>   
>   				if (din) {
>   					*((u8 *)din) = (u8)tmpdin;
> @@ -83,179 +93,17 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,
>   				break;
>   		}
>   		if (tm >= KWSPI_TIMEOUT)
> -			printf("*** spi_xfer: Time out during SPI transfer\n");
> +			printf("%s: Time out during SPI transfer\n", __func__);
>   
>   		debug("loopend bitlen %d\n", bitlen);
>   	}
>   
>   	if (flags & SPI_XFER_END)
> -		_spi_cs_deactivate(reg);
> +		spi_cs_deactivate(reg);
>   
>   	return 0;
>   }
>   
> -#ifndef CONFIG_DM_SPI
> -
> -static struct kwspi_registers *spireg =
> -	(struct kwspi_registers *)MVEBU_SPI_BASE;
> -
> -#ifdef CONFIG_KIRKWOOD
> -static u32 cs_spi_mpp_back[2];
> -#endif
> -
> -struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
> -				unsigned int max_hz, unsigned int mode)
> -{
> -	struct spi_slave *slave;
> -	u32 data;
> -#ifdef CONFIG_KIRKWOOD
> -	static const u32 kwspi_mpp_config[2][2] = {
> -		{ MPP0_SPI_SCn, 0 }, /* if cs == 0 */
> -		{ MPP7_SPI_SCn, 0 } /* if cs != 0 */
> -	};
> -#endif
> -
> -	if (!spi_cs_is_valid(bus, cs))
> -		return NULL;
> -
> -	slave = spi_alloc_slave_base(bus, cs);
> -	if (!slave)
> -		return NULL;
> -
> -	writel(KWSPI_SMEMRDY, &spireg->ctrl);
> -
> -	/* calculate spi clock prescaller using max_hz */
> -	data = ((CONFIG_SYS_TCLK / 2) / max_hz) + 0x10;
> -	data = data < KWSPI_CLKPRESCL_MIN ? KWSPI_CLKPRESCL_MIN : data;
> -	data = data > KWSPI_CLKPRESCL_MASK ? KWSPI_CLKPRESCL_MASK : data;
> -
> -	/* program spi clock prescaller using max_hz */
> -	writel(KWSPI_ADRLEN_3BYTE | data, &spireg->cfg);
> -	debug("data = 0x%08x\n", data);
> -
> -	writel(KWSPI_SMEMRDIRQ, &spireg->irq_cause);
> -	writel(KWSPI_IRQMASK, &spireg->irq_mask);
> -
> -#ifdef CONFIG_KIRKWOOD
> -	/* program mpp registers to select  SPI_CSn */
> -	kirkwood_mpp_conf(kwspi_mpp_config[cs ? 1 : 0], cs_spi_mpp_back);
> -#endif
> -
> -	return slave;
> -}
> -
> -void spi_free_slave(struct spi_slave *slave)
> -{
> -#ifdef CONFIG_KIRKWOOD
> -	kirkwood_mpp_conf(cs_spi_mpp_back, NULL);
> -#endif
> -	free(slave);
> -}
> -
> -#if defined(CONFIG_SYS_KW_SPI_MPP)
> -u32 spi_mpp_backup[4];
> -#endif
> -
> -__attribute__((weak)) int board_spi_claim_bus(struct spi_slave *slave)
> -{
> -	return 0;
> -}
> -
> -int spi_claim_bus(struct spi_slave *slave)
> -{
> -#if defined(CONFIG_SYS_KW_SPI_MPP)
> -	u32 config;
> -	u32 spi_mpp_config[4];
> -
> -	config = CONFIG_SYS_KW_SPI_MPP;
> -
> -	if (config & MOSI_MPP6)
> -		spi_mpp_config[0] = MPP6_SPI_MOSI;
> -	else
> -		spi_mpp_config[0] = MPP1_SPI_MOSI;
> -
> -	if (config & SCK_MPP10)
> -		spi_mpp_config[1] = MPP10_SPI_SCK;
> -	else
> -		spi_mpp_config[1] = MPP2_SPI_SCK;
> -
> -	if (config & MISO_MPP11)
> -		spi_mpp_config[2] = MPP11_SPI_MISO;
> -	else
> -		spi_mpp_config[2] = MPP3_SPI_MISO;
> -
> -	spi_mpp_config[3] = 0;
> -	spi_mpp_backup[3] = 0;
> -
> -	/* set new spi mpp and save current mpp config */
> -	kirkwood_mpp_conf(spi_mpp_config, spi_mpp_backup);
> -#endif
> -
> -	return board_spi_claim_bus(slave);
> -}
> -
> -__attribute__((weak)) void board_spi_release_bus(struct spi_slave *slave)
> -{
> -}
> -
> -void spi_release_bus(struct spi_slave *slave)
> -{
> -#if defined(CONFIG_SYS_KW_SPI_MPP)
> -	kirkwood_mpp_conf(spi_mpp_backup, NULL);
> -#endif
> -
> -	board_spi_release_bus(slave);
> -}
> -
> -#ifndef CONFIG_SPI_CS_IS_VALID
> -/*
> - * you can define this function board specific
> - * define above CONFIG in board specific config file and
> - * provide the function in board specific src file
> - */
> -int spi_cs_is_valid(unsigned int bus, unsigned int cs)
> -{
> -	return bus == 0 && (cs == 0 || cs == 1);
> -}
> -#endif
> -
> -void spi_init(void)
> -{
> -}
> -
> -void spi_cs_activate(struct spi_slave *slave)
> -{
> -	_spi_cs_activate(spireg);
> -}
> -
> -void spi_cs_deactivate(struct spi_slave *slave)
> -{
> -	_spi_cs_deactivate(spireg);
> -}
> -
> -int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
> -	     const void *dout, void *din, unsigned long flags)
> -{
> -	return _spi_xfer(spireg, bitlen, dout, din, flags);
> -}
> -
> -#else
> -
> -/* Here now the DM part */
> -
> -struct mvebu_spi_dev {
> -	bool			is_errata_50mhz_ac;
> -};
> -
> -struct mvebu_spi_platdata {
> -	struct kwspi_registers *spireg;
> -	bool is_errata_50mhz_ac;
> -};
> -
> -struct mvebu_spi_priv {
> -	struct kwspi_registers *spireg;
> -};
> -
>   static int mvebu_spi_set_speed(struct udevice *bus, uint hz)
>   {
>   	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
> @@ -330,15 +178,6 @@ static int mvebu_spi_set_mode(struct udevice *bus, uint mode)
>   	return 0;
>   }
>   
> -static int mvebu_spi_xfer(struct udevice *dev, unsigned int bitlen,
> -			  const void *dout, void *din, unsigned long flags)
> -{
> -	struct udevice *bus = dev->parent;
> -	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
> -
> -	return _spi_xfer(plat->spireg, bitlen, dout, din, flags);
> -}
> -
>   static int mvebu_spi_claim_bus(struct udevice *dev)
>   {
>   	struct udevice *bus = dev->parent;
> @@ -364,6 +203,18 @@ static int mvebu_spi_probe(struct udevice *bus)
>   	return 0;
>   }
>   
> +static const struct dm_spi_ops mvebu_spi_ops = {
> +	.claim_bus	= mvebu_spi_claim_bus,
> +	.xfer		= mvebu_spi_xfer,
> +	.set_speed	= mvebu_spi_set_speed,
> +	.set_mode	= mvebu_spi_set_mode,
> +	/*
> +	 * cs_info is not needed, since we require all chip selects to be
> +	 * in the device tree explicitly
> +	 */
> +};
> +
> +#if CONFIG_IS_ENABLED(OF_CONTROL)
>   static int mvebu_spi_ofdata_to_platdata(struct udevice *bus)
>   {
>   	struct mvebu_spi_platdata *plat = dev_get_platdata(bus);
> @@ -376,17 +227,6 @@ static int mvebu_spi_ofdata_to_platdata(struct udevice *bus)
>   	return 0;
>   }
>   
> -static const struct dm_spi_ops mvebu_spi_ops = {
> -	.claim_bus	= mvebu_spi_claim_bus,
> -	.xfer		= mvebu_spi_xfer,
> -	.set_speed	= mvebu_spi_set_speed,
> -	.set_mode	= mvebu_spi_set_mode,
> -	/*
> -	 * cs_info is not needed, since we require all chip selects to be
> -	 * in the device tree explicitly
> -	 */
> -};
> -
>   static const struct mvebu_spi_dev armada_xp_spi_dev_data = {
>   	.is_errata_50mhz_ac = false,
>   };
> @@ -414,15 +254,17 @@ static const struct udevice_id mvebu_spi_ids[] = {
>   	},
>   	{ }
>   };
> +#endif
>   
>   U_BOOT_DRIVER(mvebu_spi) = {
>   	.name = "mvebu_spi",
>   	.id = UCLASS_SPI,
> +#if CONFIG_IS_ENABLED(OF_CONTROL)
>   	.of_match = mvebu_spi_ids,
> -	.ops = &mvebu_spi_ops,
>   	.ofdata_to_platdata = mvebu_spi_ofdata_to_platdata,
>   	.platdata_auto_alloc_size = sizeof(struct mvebu_spi_platdata),
> +#endif
> +	.ops = &mvebu_spi_ops,
>   	.priv_auto_alloc_size = sizeof(struct mvebu_spi_priv),
>   	.probe = mvebu_spi_probe,
>   };
> -#endif
> diff --git a/include/dm/platform_data/spi_kirkwood.h b/include/dm/platform_data/spi_kirkwood.h
> new file mode 100644
> index 0000000000..ae9b2783a9
> --- /dev/null
> +++ b/include/dm/platform_data/spi_kirkwood.h
> @@ -0,0 +1,15 @@
> +/*
> + * Copyright (C) 2018 Jagan Teki <jagan@amarulasolutions.com>
> + *
> + * SPDX-License-Identifier:	GPL-2.0+
> + */
> +
> +#ifndef __spi_kirkwood_h
> +#define __spi_kirkwood_h
> +
> +struct mvebu_spi_platdata {
> +	struct kwspi_registers *spireg;
> +	bool is_errata_50mhz_ac;
> +};
> +
> +#endif /* __spi_kirkwood_h */
> 

So you are removing non-DM support from the SPI driver, which breaks
current Kirkwood board using this SPI driver (e.g. inetspace_v2).
Are you aware of this breakage?

Thanks,
Stefan

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-03-20 13:49   ` Stefan Roese
@ 2018-03-20 15:06     ` Jagan Teki
  2018-03-20 15:14       ` Stefan Roese
  0 siblings, 1 reply; 19+ messages in thread
From: Jagan Teki @ 2018-03-20 15:06 UTC (permalink / raw)
  To: u-boot

On Tue, Mar 20, 2018 at 7:19 PM, Stefan Roese <sr@denx.de> wrote:
> Hi Jagan,
>
>
> On 15.03.2018 12:33, Jagan Teki wrote:
>>
>> kirkwood now support dt along with platform data,
>> respective boards need to switch into dm for the same.
>>
>> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
>> ---
>>   drivers/spi/kirkwood_spi.c              | 240
>> ++++++--------------------------
>>   include/dm/platform_data/spi_kirkwood.h |  15 ++
>>   2 files changed, 56 insertions(+), 199 deletions(-)
>>   create mode 100644 include/dm/platform_data/spi_kirkwood.h

snip

>> +
>> +struct mvebu_spi_platdata {
>> +       struct kwspi_registers *spireg;
>> +       bool is_errata_50mhz_ac;
>> +};
>> +
>> +#endif /* __spi_kirkwood_h */
>>
>
> So you are removing non-DM support from the SPI driver, which breaks
> current Kirkwood board using this SPI driver (e.g. inetspace_v2).
> Are you aware of this breakage?

Yes, we have migration plan for DM_SPI and DM_SPI_FLASH [1] I have
converted this to expect the board MAINTAINERS do switch DM before the
deadline. I will not apply until all used boards moved or deadline
expire.

[1] doc/driver-model/MIGRATION.txt

Jagan.
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-03-20 15:06     ` Jagan Teki
@ 2018-03-20 15:14       ` Stefan Roese
  0 siblings, 0 replies; 19+ messages in thread
From: Stefan Roese @ 2018-03-20 15:14 UTC (permalink / raw)
  To: u-boot

Hi Jagan,

On 20.03.2018 16:06, Jagan Teki wrote:
> On Tue, Mar 20, 2018 at 7:19 PM, Stefan Roese <sr@denx.de> wrote:
>> Hi Jagan,
>>
>>
>> On 15.03.2018 12:33, Jagan Teki wrote:
>>>
>>> kirkwood now support dt along with platform data,
>>> respective boards need to switch into dm for the same.
>>>
>>> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
>>> ---
>>>    drivers/spi/kirkwood_spi.c              | 240
>>> ++++++--------------------------
>>>    include/dm/platform_data/spi_kirkwood.h |  15 ++
>>>    2 files changed, 56 insertions(+), 199 deletions(-)
>>>    create mode 100644 include/dm/platform_data/spi_kirkwood.h
> 
> snip
> 
>>> +
>>> +struct mvebu_spi_platdata {
>>> +       struct kwspi_registers *spireg;
>>> +       bool is_errata_50mhz_ac;
>>> +};
>>> +
>>> +#endif /* __spi_kirkwood_h */
>>>
>>
>> So you are removing non-DM support from the SPI driver, which breaks
>> current Kirkwood board using this SPI driver (e.g. inetspace_v2).
>> Are you aware of this breakage?
> 
> Yes, we have migration plan for DM_SPI and DM_SPI_FLASH [1] I have
> converted this to expect the board MAINTAINERS do switch DM before the
> deadline. I will not apply until all used boards moved or deadline
> expire.

Then please Cc the board maintainers of these boards that will break
here, so that they are aware (again) of this migration and can possibly
take some action.

Thanks,
Stefan

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-03-15 11:33 ` [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion Jagan Teki
  2018-03-20 13:49   ` Stefan Roese
@ 2018-04-26  6:00   ` Jagan Teki
  2018-04-26 22:45     ` Chris Packham
  2018-04-27  8:51     ` Simon Guinot
  1 sibling, 2 replies; 19+ messages in thread
From: Jagan Teki @ 2018-04-26  6:00 UTC (permalink / raw)
  To: u-boot

On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <jagan@amarulasolutions.com> wrote:
> kirkwood now support dt along with platform data,
> respective boards need to switch into dm for the same.

Added all board mainatiner, using this driver on their relevant
boards. So try to switch to DM_SPI(SPI_FLASH) before migration
deadline expires.

Jagan.

-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-04-26  6:00   ` Jagan Teki
@ 2018-04-26 22:45     ` Chris Packham
  2018-04-27  5:44       ` Stefan Roese
  2018-04-27  8:51     ` Simon Guinot
  1 sibling, 1 reply; 19+ messages in thread
From: Chris Packham @ 2018-04-26 22:45 UTC (permalink / raw)
  To: u-boot

Hi Jagan,

On 26/04/18 18:00, Jagan Teki wrote:
> On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <jagan@amarulasolutions.com> wrote:
>> kirkwood now support dt along with platform data,
>> respective boards need to switch into dm for the same.
> 
> Added all board mainatiner, using this driver on their relevant
> boards. So try to switch to DM_SPI(SPI_FLASH) before migration
> deadline expires.
> 
> Jagan.

Hopefully I can get to db88f6820-amc next week.

Stefan, did you want me to send a patch for db88f6820-gp at the same 
time since the amc board is derived from it?

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-04-26 22:45     ` Chris Packham
@ 2018-04-27  5:44       ` Stefan Roese
  2018-04-27  8:12         ` Chris Packham
  0 siblings, 1 reply; 19+ messages in thread
From: Stefan Roese @ 2018-04-27  5:44 UTC (permalink / raw)
  To: u-boot

Hi Chris,

On 27.04.2018 00:45, Chris Packham wrote:
> On 26/04/18 18:00, Jagan Teki wrote:
>> On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <jagan@amarulasolutions.com> wrote:
>>> kirkwood now support dt along with platform data,
>>> respective boards need to switch into dm for the same.
>>
>> Added all board mainatiner, using this driver on their relevant
>> boards. So try to switch to DM_SPI(SPI_FLASH) before migration
>> deadline expires.
>>
>> Jagan.
> 
> Hopefully I can get to db88f6820-amc next week.
> 
> Stefan, did you want me to send a patch for db88f6820-gp at the same
> time since the amc board is derived from it?

Sure, that would be helpful.

But I'm a little bit puzzled about this DM conversion for MVEBU
platforms. As all MVEBU targets are already using DM and DM_SPI:

arch/arm/Kconfig:

...
config ARCH_MVEBU
         bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
         select OF_CONTROL
         select OF_SEPARATE
         select DM
         select DM_ETH
         select DM_SERIAL
         select DM_SPI
         select DM_SPI_FLASH

So there should be no need to change something here. Or is something
not working correctly on some of the MVEBU platforms?

What really is missing is the conversion of the older Marvell
platforms, like Kirkwood and Orion. Those are quite ancient and
have no DM / OF / DT support at all (AFAIR). So here is the real
work that needs to be done. Or all those boards might get dropped
soon.

Thanks,
Stefan

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-04-27  5:44       ` Stefan Roese
@ 2018-04-27  8:12         ` Chris Packham
  2018-04-27  8:16           ` Stefan Roese
  0 siblings, 1 reply; 19+ messages in thread
From: Chris Packham @ 2018-04-27  8:12 UTC (permalink / raw)
  To: u-boot

On Fri, Apr 27, 2018 at 5:44 PM Stefan Roese <sr@denx.de> wrote:

> Hi Chris,

> On 27.04.2018 00:45, Chris Packham wrote:
> > On 26/04/18 18:00, Jagan Teki wrote:
> >> On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki
> <jagan@amarulasolutions.com>
wrote:
> >>> kirkwood now support dt along with platform data,
> >>> respective boards need to switch into dm for the same.
> >>
> >> Added all board mainatiner, using this driver on their relevant
> >> boards. So try to switch to DM_SPI(SPI_FLASH) before migration
> >> deadline expires.
> >>
> >> Jagan.
> >
> > Hopefully I can get to db88f6820-amc next week.
> >
> > Stefan, did you want me to send a patch for db88f6820-gp at the same
> > time since the amc board is derived from it?

> Sure, that would be helpful.

> But I'm a little bit puzzled about this DM conversion for MVEBU
> platforms. As all MVEBU targets are already using DM and DM_SPI:

> arch/arm/Kconfig:

> ...
> config ARCH_MVEBU
>           bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
>           select OF_CONTROL
>           select OF_SEPARATE
>           select DM
>           select DM_ETH
>           select DM_SERIAL
>           select DM_SPI
>           select DM_SPI_FLASH

> So there should be no need to change something here. Or is something
> not working correctly on some of the MVEBU platforms?

> What really is missing is the conversion of the older Marvell
> platforms, like Kirkwood and Orion. Those are quite ancient and
> have no DM / OF / DT support at all (AFAIR). So here is the real
> work that needs to be done. Or all those boards might get dropped
> soon.

Yeah sure enough

=> dm tree
  Class      Probed  Driver      Name
----------------------------------------
  root       [ + ]   root_drive  root_driver
  simple_bus [ + ]   generic_si  `-- soc
  simple_bus [ + ]   generic_si      `-- internal-regs
  spi        [ + ]   mvebu_spi           |-- spi at 10680
  spi_flash  [   ]   spi_flash_          |   `-- spi-flash at 0
  i2c        [   ]   i2c_mvtwsi          |-- i2c at 11000
  serial     [ + ]   ns16550_se          |-- serial at 12000
  eth        [ + ]   mvneta              |-- ethernet at 34000
  usb        [   ]   ehci_mvebu          |-- usb at 58000
  eth        [ + ]   mvneta              `-- ethernet at 70000

So nothing to do for MVEBU.

I do have a passing interest in keeping kirkwood support but lack an
upstream supported platform to use. I'll have to see if I can update one of
our boards to use and upstream bootloader.

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-04-27  8:12         ` Chris Packham
@ 2018-04-27  8:16           ` Stefan Roese
  0 siblings, 0 replies; 19+ messages in thread
From: Stefan Roese @ 2018-04-27  8:16 UTC (permalink / raw)
  To: u-boot

Hi Chris,

On 27.04.2018 10:12, Chris Packham wrote:
> On Fri, Apr 27, 2018 at 5:44 PM Stefan Roese <sr@denx.de> wrote:
>>> Stefan, did you want me to send a patch for db88f6820-gp at the same
>>> time since the amc board is derived from it?
> 
>> Sure, that would be helpful.
> 
>> But I'm a little bit puzzled about this DM conversion for MVEBU
>> platforms. As all MVEBU targets are already using DM and DM_SPI:
> 
>> arch/arm/Kconfig:
> 
>> ...
>> config ARCH_MVEBU
>>            bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
>>            select OF_CONTROL
>>            select OF_SEPARATE
>>            select DM
>>            select DM_ETH
>>            select DM_SERIAL
>>            select DM_SPI
>>            select DM_SPI_FLASH
> 
>> So there should be no need to change something here. Or is something
>> not working correctly on some of the MVEBU platforms?
> 
>> What really is missing is the conversion of the older Marvell
>> platforms, like Kirkwood and Orion. Those are quite ancient and
>> have no DM / OF / DT support at all (AFAIR). So here is the real
>> work that needs to be done. Or all those boards might get dropped
>> soon.
> 
> Yeah sure enough
> 
> => dm tree
>    Class      Probed  Driver      Name
> ----------------------------------------
>    root       [ + ]   root_drive  root_driver
>    simple_bus [ + ]   generic_si  `-- soc
>    simple_bus [ + ]   generic_si      `-- internal-regs
>    spi        [ + ]   mvebu_spi           |-- spi at 10680
>    spi_flash  [   ]   spi_flash_          |   `-- spi-flash at 0
>    i2c        [   ]   i2c_mvtwsi          |-- i2c at 11000
>    serial     [ + ]   ns16550_se          |-- serial at 12000
>    eth        [ + ]   mvneta              |-- ethernet at 34000
>    usb        [   ]   ehci_mvebu          |-- usb at 58000
>    eth        [ + ]   mvneta              `-- ethernet at 70000
> 
> So nothing to do for MVEBU.

Yep, thats what I thought.

> I do have a passing interest in keeping kirkwood support but lack an
> upstream supported platform to use. I'll have to see if I can update one of
> our boards to use and upstream bootloader.

Yes, that would be good. As I fear, that Kirkwood might get dropped
completely, if nobody reacts here and updates this platform to DM,
DT etc.

Thanks,
Stefan

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-04-26  6:00   ` Jagan Teki
  2018-04-26 22:45     ` Chris Packham
@ 2018-04-27  8:51     ` Simon Guinot
  2018-04-30  5:58       ` Jagan Teki
  1 sibling, 1 reply; 19+ messages in thread
From: Simon Guinot @ 2018-04-27  8:51 UTC (permalink / raw)
  To: u-boot

On Thu, Apr 26, 2018 at 11:30:00AM +0530, Jagan Teki wrote:
> On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <jagan@amarulasolutions.com> wrote:
> > kirkwood now support dt along with platform data,
> > respective boards need to switch into dm for the same.
> 
> Added all board mainatiner, using this driver on their relevant
> boards. So try to switch to DM_SPI(SPI_FLASH) before migration
> deadline expires.

Hi Jagan,

And what is the deadline exactly ?

Simon
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180427/1bb6cc20/attachment.sig>

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-04-27  8:51     ` Simon Guinot
@ 2018-04-30  5:58       ` Jagan Teki
  2018-05-01 10:54         ` Simon Guinot
  0 siblings, 1 reply; 19+ messages in thread
From: Jagan Teki @ 2018-04-30  5:58 UTC (permalink / raw)
  To: u-boot

On Fri, Apr 27, 2018 at 2:21 PM, Simon Guinot <simon.guinot@sequanux.org> wrote:
> On Thu, Apr 26, 2018 at 11:30:00AM +0530, Jagan Teki wrote:
>> On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <jagan@amarulasolutions.com> wrote:
>> > kirkwood now support dt along with platform data,
>> > respective boards need to switch into dm for the same.
>>
>> Added all board mainatiner, using this driver on their relevant
>> boards. So try to switch to DM_SPI(SPI_FLASH) before migration
>> deadline expires.
>
> Hi Jagan,
>
> And what is the deadline exactly ?

See DM_SPI/SPI_FLASH migration details from, doc/driver-model/MIGRATION.txt

Jagan.

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-04-30  5:58       ` Jagan Teki
@ 2018-05-01 10:54         ` Simon Guinot
  2018-05-02 10:53           ` Stefan Roese
  0 siblings, 1 reply; 19+ messages in thread
From: Simon Guinot @ 2018-05-01 10:54 UTC (permalink / raw)
  To: u-boot

On Mon, Apr 30, 2018 at 11:28:28AM +0530, Jagan Teki wrote:
> On Fri, Apr 27, 2018 at 2:21 PM, Simon Guinot <simon.guinot@sequanux.org> wrote:
> > On Thu, Apr 26, 2018 at 11:30:00AM +0530, Jagan Teki wrote:
> >> On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <jagan@amarulasolutions.com> wrote:
> >> > kirkwood now support dt along with platform data,
> >> > respective boards need to switch into dm for the same.
> >>
> >> Added all board mainatiner, using this driver on their relevant
> >> boards. So try to switch to DM_SPI(SPI_FLASH) before migration
> >> deadline expires.
> >
> > Hi Jagan,
> >
> > And what is the deadline exactly ?
> 
> See DM_SPI/SPI_FLASH migration details from, doc/driver-model/MIGRATION.txt

Thanks for letting me know Jagan...

I am no longer reading the U-Boot ML. So if you need me to do some
changes on the LaCie/Seagate boards then it would be better to send
me an email rather than burying information inside a file.

Simon
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180501/76c17af8/attachment.sig>

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-05-01 10:54         ` Simon Guinot
@ 2018-05-02 10:53           ` Stefan Roese
  2018-05-02 21:56             ` Chris Packham
  0 siblings, 1 reply; 19+ messages in thread
From: Stefan Roese @ 2018-05-02 10:53 UTC (permalink / raw)
  To: u-boot

Hi Simon,

On 01.05.2018 12:54, Simon Guinot wrote:
> On Mon, Apr 30, 2018 at 11:28:28AM +0530, Jagan Teki wrote:
>> On Fri, Apr 27, 2018 at 2:21 PM, Simon Guinot <simon.guinot@sequanux.org> wrote:
>>> On Thu, Apr 26, 2018 at 11:30:00AM +0530, Jagan Teki wrote:
>>>> On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <jagan@amarulasolutions.com> wrote:
>>>>> kirkwood now support dt along with platform data,
>>>>> respective boards need to switch into dm for the same.
>>>>
>>>> Added all board mainatiner, using this driver on their relevant
>>>> boards. So try to switch to DM_SPI(SPI_FLASH) before migration
>>>> deadline expires.
>>>
>>> Hi Jagan,
>>>
>>> And what is the deadline exactly ?
>>
>> See DM_SPI/SPI_FLASH migration details from, doc/driver-model/MIGRATION.txt
> 
> Thanks for letting me know Jagan...

Just to be clear here. The older Marvell platforms Orion and Kirkwood
completely lack DM (Driver-Model) and DT (Device-Tree) support in
U-Boot. This needs to be added (similar to what I've done to the
newer parts beginning with Armada XP / 38x) so that the SPI driver
(and others) can be used as DM-enabled driver.

Please see arch/arm/mach-mvebu/ for more details here.

Any work on this is greatly appreciated as I fear that the support
for these older SoC's might get dropped completely otherwise soon.

Thanks,
Stefan

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-05-02 10:53           ` Stefan Roese
@ 2018-05-02 21:56             ` Chris Packham
  2018-05-03  5:40               ` Simon Baatz
  2018-05-03 11:21               ` Stefan Roese
  0 siblings, 2 replies; 19+ messages in thread
From: Chris Packham @ 2018-05-02 21:56 UTC (permalink / raw)
  To: u-boot

Hi All,
On Wed, May 2, 2018 at 10:53 PM Stefan Roese <sr@denx.de> wrote:

> Hi Simon,

> On 01.05.2018 12:54, Simon Guinot wrote:
> > On Mon, Apr 30, 2018 at 11:28:28AM +0530, Jagan Teki wrote:
> >> On Fri, Apr 27, 2018 at 2:21 PM, Simon Guinot <
simon.guinot@sequanux.org> wrote:
> >>> On Thu, Apr 26, 2018 at 11:30:00AM +0530, Jagan Teki wrote:
> >>>> On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <
jagan@amarulasolutions.com> wrote:
> >>>>> kirkwood now support dt along with platform data,
> >>>>> respective boards need to switch into dm for the same.
> >>>>
> >>>> Added all board mainatiner, using this driver on their relevant
> >>>> boards. So try to switch to DM_SPI(SPI_FLASH) before migration
> >>>> deadline expires.
> >>>
> >>> Hi Jagan,
> >>>
> >>> And what is the deadline exactly ?
> >>
> >> See DM_SPI/SPI_FLASH migration details from,
doc/driver-model/MIGRATION.txt
> >
> > Thanks for letting me know Jagan...

> Just to be clear here. The older Marvell platforms Orion and Kirkwood
> completely lack DM (Driver-Model) and DT (Device-Tree) support in
> U-Boot. This needs to be added (similar to what I've done to the
> newer parts beginning with Armada XP / 38x) so that the SPI driver
> (and others) can be used as DM-enabled driver.

> Please see arch/arm/mach-mvebu/ for more details here.

> Any work on this is greatly appreciated as I fear that the support
> for these older SoC's might get dropped completely otherwise soon.

I had a quick try on one of the kirkwood based boards I have. It was pretty
easy to bring in the dts files from Linux and get some basic stuff working.
I started with i2c since I can still boot without it, I haven't been brave
enough to try spi yet.

Hopefully I can spend a bit more time on it over the weekend.

In terms of a long-term plan. I could upstream support for our board, we
still include it in the source we distribute as part of our GPL compliance.
Since it's a older board that has been fairly stable we're not doing a lot
of development on it. My motivation for retaining support for kirkwood is
just in case we have some other EOL part that requires us to release a new
bootloader. I could do a blind conversion of other in-tree kirkwood boards
but my ability to test them would be quite limited.

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-05-02 21:56             ` Chris Packham
@ 2018-05-03  5:40               ` Simon Baatz
  2018-05-03 11:21               ` Stefan Roese
  1 sibling, 0 replies; 19+ messages in thread
From: Simon Baatz @ 2018-05-03  5:40 UTC (permalink / raw)
  To: u-boot

Hi Chris,

On Wed, May 02, 2018 at 09:56:52PM +0000, Chris Packham wrote:
> Hi All,
> On Wed, May 2, 2018 at 10:53 PM Stefan Roese <sr@denx.de> wrote:
> 
> > Hi Simon,
> 
> > On 01.05.2018 12:54, Simon Guinot wrote:
> > > On Mon, Apr 30, 2018 at 11:28:28AM +0530, Jagan Teki wrote:
> > >> On Fri, Apr 27, 2018 at 2:21 PM, Simon Guinot <
> simon.guinot at sequanux.org> wrote:
> > >>> On Thu, Apr 26, 2018 at 11:30:00AM +0530, Jagan Teki wrote:
> > >>>> On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <
> jagan at amarulasolutions.com> wrote:
> > >>>>> kirkwood now support dt along with platform data,
> > >>>>> respective boards need to switch into dm for the same.
> > >>>>
> > >>>> Added all board mainatiner, using this driver on their relevant
> > >>>> boards. So try to switch to DM_SPI(SPI_FLASH) before migration
> > >>>> deadline expires.
> > >>>
> > >>> Hi Jagan,
> > >>>
> > >>> And what is the deadline exactly ?
> > >>
> > >> See DM_SPI/SPI_FLASH migration details from,
> doc/driver-model/MIGRATION.txt
> > >
> > > Thanks for letting me know Jagan...
> 
> > Just to be clear here. The older Marvell platforms Orion and Kirkwood
> > completely lack DM (Driver-Model) and DT (Device-Tree) support in
> > U-Boot. This needs to be added (similar to what I've done to the
> > newer parts beginning with Armada XP / 38x) so that the SPI driver
> > (and others) can be used as DM-enabled driver.
> 
> > Please see arch/arm/mach-mvebu/ for more details here.
> 
> > Any work on this is greatly appreciated as I fear that the support
> > for these older SoC's might get dropped completely otherwise soon.
> 
> I had a quick try on one of the kirkwood based boards I have. It was pretty
> easy to bring in the dts files from Linux and get some basic stuff working.
> I started with i2c since I can still boot without it, I haven't been brave
> enough to try spi yet.
> 
> Hopefully I can spend a bit more time on it over the weekend.
> 
> In terms of a long-term plan. I could upstream support for our board, we
> still include it in the source we distribute as part of our GPL compliance.
> Since it's a older board that has been fairly stable we're not doing a lot
> of development on it. My motivation for retaining support for kirkwood is
> just in case we have some other EOL part that requires us to release a new
> bootloader. I could do a blind conversion of other in-tree kirkwood boards
> but my ability to test them would be quite limited.

I have a eSATA Sheevaplug and a IB-NAS6210 lying around here.  Both
are supported by U-Boot and the Linux kernel.  Provided they still
work, I could test on these boards if that helps.

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-05-02 21:56             ` Chris Packham
  2018-05-03  5:40               ` Simon Baatz
@ 2018-05-03 11:21               ` Stefan Roese
  2018-05-07 23:20                 ` Chris Packham
  1 sibling, 1 reply; 19+ messages in thread
From: Stefan Roese @ 2018-05-03 11:21 UTC (permalink / raw)
  To: u-boot

Hi Chris,

On 02.05.2018 23:56, Chris Packham wrote:
> Hi All,
> On Wed, May 2, 2018 at 10:53 PM Stefan Roese <sr@denx.de> wrote:
> 
>> Hi Simon,
> 
>> On 01.05.2018 12:54, Simon Guinot wrote:
>>> On Mon, Apr 30, 2018 at 11:28:28AM +0530, Jagan Teki wrote:
>>>> On Fri, Apr 27, 2018 at 2:21 PM, Simon Guinot <
> simon.guinot at sequanux.org> wrote:
>>>>> On Thu, Apr 26, 2018 at 11:30:00AM +0530, Jagan Teki wrote:
>>>>>> On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <
> jagan at amarulasolutions.com> wrote:
>>>>>>> kirkwood now support dt along with platform data,
>>>>>>> respective boards need to switch into dm for the same.
>>>>>>
>>>>>> Added all board mainatiner, using this driver on their relevant
>>>>>> boards. So try to switch to DM_SPI(SPI_FLASH) before migration
>>>>>> deadline expires.
>>>>>
>>>>> Hi Jagan,
>>>>>
>>>>> And what is the deadline exactly ?
>>>>
>>>> See DM_SPI/SPI_FLASH migration details from,
> doc/driver-model/MIGRATION.txt
>>>
>>> Thanks for letting me know Jagan...
> 
>> Just to be clear here. The older Marvell platforms Orion and Kirkwood
>> completely lack DM (Driver-Model) and DT (Device-Tree) support in
>> U-Boot. This needs to be added (similar to what I've done to the
>> newer parts beginning with Armada XP / 38x) so that the SPI driver
>> (and others) can be used as DM-enabled driver.
> 
>> Please see arch/arm/mach-mvebu/ for more details here.
> 
>> Any work on this is greatly appreciated as I fear that the support
>> for these older SoC's might get dropped completely otherwise soon.
> 
> I had a quick try on one of the kirkwood based boards I have. It was pretty
> easy to bring in the dts files from Linux and get some basic stuff working.
> I started with i2c since I can still boot without it, I haven't been brave
> enough to try spi yet.
> 
> Hopefully I can spend a bit more time on it over the weekend.

This sound just great. Thanks.

> In terms of a long-term plan. I could upstream support for our board, we
> still include it in the source we distribute as part of our GPL compliance.
> Since it's a older board that has been fairly stable we're not doing a lot
> of development on it. My motivation for retaining support for kirkwood is
> just in case we have some other EOL part that requires us to release a new
> bootloader. I could do a blind conversion of other in-tree kirkwood boards
> but my ability to test them would be quite limited.

This "blind conversion" is definitely much better, than the removal.
Others might be able to test some of the boards. I don't have any of
those - so I can't help out here.

Thanks,
Stefan

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

* [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion
  2018-05-03 11:21               ` Stefan Roese
@ 2018-05-07 23:20                 ` Chris Packham
  0 siblings, 0 replies; 19+ messages in thread
From: Chris Packham @ 2018-05-07 23:20 UTC (permalink / raw)
  To: u-boot

On Thu, May 3, 2018 at 11:21 PM Stefan Roese <sr@denx.de> wrote:

> Hi Chris,

> On 02.05.2018 23:56, Chris Packham wrote:
> > Hi All,
> > On Wed, May 2, 2018 at 10:53 PM Stefan Roese <sr@denx.de> wrote:
> >
> >> Hi Simon,
> >
> >> On 01.05.2018 12:54, Simon Guinot wrote:
> >>> On Mon, Apr 30, 2018 at 11:28:28AM +0530, Jagan Teki wrote:
> >>>> On Fri, Apr 27, 2018 at 2:21 PM, Simon Guinot <
> > simon.guinot at sequanux.org> wrote:
> >>>>> On Thu, Apr 26, 2018 at 11:30:00AM +0530, Jagan Teki wrote:
> >>>>>> On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <
> > jagan at amarulasolutions.com> wrote:
> >>>>>>> kirkwood now support dt along with platform data,
> >>>>>>> respective boards need to switch into dm for the same.
> >>>>>>
> >>>>>> Added all board mainatiner, using this driver on their relevant
> >>>>>> boards. So try to switch to DM_SPI(SPI_FLASH) before migration
> >>>>>> deadline expires.
> >>>>>
> >>>>> Hi Jagan,
> >>>>>
> >>>>> And what is the deadline exactly ?
> >>>>
> >>>> See DM_SPI/SPI_FLASH migration details from,
> > doc/driver-model/MIGRATION.txt
> >>>
> >>> Thanks for letting me know Jagan...
> >
> >> Just to be clear here. The older Marvell platforms Orion and Kirkwood
> >> completely lack DM (Driver-Model) and DT (Device-Tree) support in
> >> U-Boot. This needs to be added (similar to what I've done to the
> >> newer parts beginning with Armada XP / 38x) so that the SPI driver
> >> (and others) can be used as DM-enabled driver.
> >
> >> Please see arch/arm/mach-mvebu/ for more details here.
> >
> >> Any work on this is greatly appreciated as I fear that the support
> >> for these older SoC's might get dropped completely otherwise soon.
> >
> > I had a quick try on one of the kirkwood based boards I have. It was
pretty
> > easy to bring in the dts files from Linux and get some basic stuff
working.
> > I started with i2c since I can still boot without it, I haven't been
brave
> > enough to try spi yet.
> >
> > Hopefully I can spend a bit more time on it over the weekend.

> This sound just great. Thanks.

> > In terms of a long-term plan. I could upstream support for our board, we
> > still include it in the source we distribute as part of our GPL
compliance.
> > Since it's a older board that has been fairly stable we're not doing a
lot
> > of development on it. My motivation for retaining support for kirkwood
is
> > just in case we have some other EOL part that requires us to release a
new
> > bootloader. I could do a blind conversion of other in-tree kirkwood
boards
> > but my ability to test them would be quite limited.

> This "blind conversion" is definitely much better, than the removal.
> Others might be able to test some of the boards. I don't have any of
> those - so I can't help out here.


An update on this.

I've tested these 2 patches from Jagan on my out-of-tree Kirkwood board
with the addition of http://patchwork.ozlabs.org/patch/909973/ the chip
seems accessible. So for both

Tested-by: Chris Packham <judge.packham@gmail.com>

In terms of getting the conversion done. I'm about halfway through bringing
in the dts files from Linux. My plan is to send an initial series for
boards that don't enable CONFIG_CMD_SF that just imports the dts and
enables CONFIG_OF_CONTROL without actually enabling the DM for any
subsystem (that isn't already enabled).

Then for the boards with SF enabled I'll need to build test them with and
without Jagan's patches. So that could take a bit longer. Unfortunately in
order to maintain bisect-ability these will have have to go in before
Jagan's changes can be merged.

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

* [U-Boot] [PATCH 1/2] spi: kirkwood: Get drvdata in .ofdata_to_platdata
  2018-03-15 11:33 [U-Boot] [PATCH 1/2] spi: kirkwood: Get drvdata in .ofdata_to_platdata Jagan Teki
  2018-03-15 11:33 ` [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion Jagan Teki
@ 2018-08-01  6:51 ` Jagan Teki
  1 sibling, 0 replies; 19+ messages in thread
From: Jagan Teki @ 2018-08-01  6:51 UTC (permalink / raw)
  To: u-boot

On Thu, Mar 15, 2018 at 5:03 PM, Jagan Teki <jagan@amarulasolutions.com> wrote:
> Get the is_errata_50mhz_ac in .ofdata_to_platdata, and
> reuse it in .set_mode this can eventually initialized
> dt code at once and adding room to add platdata.
>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---

Applied to u-boot-spi/master

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

end of thread, other threads:[~2018-08-01  6:51 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-15 11:33 [U-Boot] [PATCH 1/2] spi: kirkwood: Get drvdata in .ofdata_to_platdata Jagan Teki
2018-03-15 11:33 ` [U-Boot] [PATCH 2/2] spi: kirkwood: Full dm conversion Jagan Teki
2018-03-20 13:49   ` Stefan Roese
2018-03-20 15:06     ` Jagan Teki
2018-03-20 15:14       ` Stefan Roese
2018-04-26  6:00   ` Jagan Teki
2018-04-26 22:45     ` Chris Packham
2018-04-27  5:44       ` Stefan Roese
2018-04-27  8:12         ` Chris Packham
2018-04-27  8:16           ` Stefan Roese
2018-04-27  8:51     ` Simon Guinot
2018-04-30  5:58       ` Jagan Teki
2018-05-01 10:54         ` Simon Guinot
2018-05-02 10:53           ` Stefan Roese
2018-05-02 21:56             ` Chris Packham
2018-05-03  5:40               ` Simon Baatz
2018-05-03 11:21               ` Stefan Roese
2018-05-07 23:20                 ` Chris Packham
2018-08-01  6:51 ` [U-Boot] [PATCH 1/2] spi: kirkwood: Get drvdata in .ofdata_to_platdata Jagan Teki

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.