Skip to contentSkip to conversation

drivers; add DM_NO_OF Kconfig option

PATCH New Angelo Dureghello 3 participants 9 messages May 3, 2018 – Jun 1, 2018 SPI

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/2 drivers; add DM_NO_OF Kconfig option

To be able to build spi driver with DM support, a new config option has been introduced (DM_NO_OF) since m68k architecture does not support fdt.

---
Changes from v1:
- split into 2 patches

---
 arch/Kconfig             |  1 +
 drivers/core/Kconfig     |  4 ++++
 drivers/spi/spi-uclass.c | 12 +++++++-----
 3 files changed, 12 insertions(+), 5 deletions(-)
arch/Kconfig +1 -0
index dd5a887001..c96cbfa2bd 100644
@@ -28,6 +28,7 @@ config M68K
 	select HAVE_PRIVATE_LIBGCC
 	select SYS_BOOT_GET_CMDLINE
 	select SYS_BOOT_GET_KBD
+	select DM_NO_OF
 
 config MICROBLAZE
 	bool "MicroBlaze architecture"
drivers/core/Kconfig +4 -0
index e8ba20ca82..47960a8a6a 100644
@@ -244,4 +244,8 @@ config DM_DEV_READ_INLINE
 	bool
 	default y if !OF_LIVE
 
+config DM_NO_OF
+	bool
+	default n
+
 endmenu
drivers/spi/spi-uclass.c +7 -5
index 15d90a54a1..908be1d4cf 100644
@@ -107,7 +107,7 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
 	return dm_spi_xfer(slave->dev, bitlen, dout, din, flags);
 }
 
-#if !CONFIG_IS_ENABLED(OF_PLATDATA)
+#if !CONFIG_IS_ENABLED(OF_PLATDATA) && !defined(CONFIG_DM_NO_OF)
 static int spi_child_post_bind(struct udevice *dev)
 {
 	struct dm_spi_slave_platdata *plat = dev_get_parent_platdata(dev);
@@ -121,7 +121,7 @@ static int spi_child_post_bind(struct udevice *dev)
 
 static int spi_post_probe(struct udevice *bus)
 {
-#if !CONFIG_IS_ENABLED(OF_PLATDATA)
+#if !CONFIG_IS_ENABLED(OF_PLATDATA) && !defined(CONFIG_DM_NO_OF)
 	struct dm_spi_bus *spi = dev_get_uclass_priv(bus);
 
 	spi->max_hz = dev_read_u32_default(bus, "spi-max-frequency", 0);
@@ -274,7 +274,7 @@ int spi_get_bus_and_cs(int busnum, int cs, int speed, int mode,
 	bool created = false;
 	int ret;
 
-#if CONFIG_IS_ENABLED(OF_PLATDATA)
+#if CONFIG_IS_ENABLED(OF_PLATDATA) || defined(CONFIG_DM_NO_OF)
 	ret = uclass_first_device_err(UCLASS_SPI, &bus);
 #else
 	ret = uclass_get_device_by_seq(UCLASS_SPI, busnum, &bus);
@@ -283,6 +283,7 @@ int spi_get_bus_and_cs(int busnum, int cs, int speed, int mode,
 		printf("Invalid bus %d (err=%d)\n", busnum, ret);
 		return ret;
 	}
+
 	ret = spi_find_chip_select(bus, cs, &dev);
 
 	/*
@@ -321,6 +322,7 @@ int spi_get_bus_and_cs(int busnum, int cs, int speed, int mode,
 	}
 
 	plat = dev_get_parent_platdata(dev);
+
 	if (!speed) {
 		speed = plat->max_hz;
 		mode = plat->mode;
@@ -427,7 +429,7 @@ UCLASS_DRIVER(spi) = {
 	.id		= UCLASS_SPI,
 	.name		= "spi",
 	.flags		= DM_UC_FLAG_SEQ_ALIAS,
-#if !CONFIG_IS_ENABLED(OF_PLATDATA)
+#if !CONFIG_IS_ENABLED(OF_PLATDATA) && !defined(CONFIG_DM_NO_OF)
 	.post_bind	= dm_scan_fdt_dev,
 #endif
 	.post_probe	= spi_post_probe,
@@ -436,7 +438,7 @@ UCLASS_DRIVER(spi) = {
 	.per_child_auto_alloc_size = sizeof(struct spi_slave),
 	.per_child_platdata_auto_alloc_size =
 			sizeof(struct dm_spi_slave_platdata),
-#if !CONFIG_IS_ENABLED(OF_PLATDATA)
+#if !CONFIG_IS_ENABLED(OF_PLATDATA) && !defined(CONFIG_DM_NO_OF)
 	.child_post_bind = spi_child_post_bind,
 #endif
 };
Signature · 1 line
2.17.0
#1 lore raw

PATCH v2 1/2 drivers; add DM_NO_OF Kconfig option

Hi Angelo,

Quoted 8 lines · Angelo Dureghello

To be able to build spi driver with DM support, a new config option has been introduced (DM_NO_OF) since m68k architecture does not support fdt.

---
Changes from v1:
- split into 2 patches

Quoted 7 lines
---
 arch/Kconfig             |  1 +
 drivers/core/Kconfig     |  4 ++++
 drivers/spi/spi-uclass.c | 12 +++++++-----
 3 files changed, 12 insertions(+), 5 deletions(-)

Is it possible to use SPL_OF_PLATDATA instead?

How come m68k cannot use device tree?

Regards,
Simon

#2 lore raw

PATCH v2 1/2 drivers; add DM_NO_OF Kconfig option

Hi Simon,

Quoted 19 lines · Simon Glass

Hi Angelo,

Quoted 8 lines · Angelo Dureghello

To be able to build spi driver with DM support, a new config option has been introduced (DM_NO_OF) since m68k architecture does not support fdt.

---
Changes from v1:
- split into 2 patches

Quoted 7 lines
---
 arch/Kconfig             |  1 +
 drivers/core/Kconfig     |  4 ++++
 drivers/spi/spi-uclass.c | 12 +++++++-----
 3 files changed, 12 insertions(+), 5 deletions(-)
Quoted 2 lines

Is it possible to use SPL_OF_PLATDATA instead?

I have seen that setting, but my understanding is that SPL_OF_PLATDATA ws made for a different purpose, and also, i tried to use it, but cannot select it from menuconfig.

Quoted 2 lines

How come m68k cannot use device tree?

There was never any devicetree implementation, probably becouse it is missing on Linux too.

Quoted 2 lines

Regards,
Simon

Regards,
Angelo

#3 lore raw

PATCH v2 1/2 drivers; add DM_NO_OF Kconfig option

+Tom

Hi Angelo,

Quoted 24 lines · Angelo Dureghello

Hi Simon,

Quoted 19 lines · Simon Glass

Hi Angelo,

Quoted 8 lines · Angelo Dureghello

To be able to build spi driver with DM support, a new config option has been introduced (DM_NO_OF) since m68k architecture does not support fdt.

---
Changes from v1:
- split into 2 patches

Quoted 7 lines
---
 arch/Kconfig             |  1 +
 drivers/core/Kconfig     |  4 ++++
 drivers/spi/spi-uclass.c | 12 +++++++-----
 3 files changed, 12 insertions(+), 5 deletions(-)
Quoted 2 lines

Is it possible to use SPL_OF_PLATDATA instead?

Quoted 8 lines

I have seen that setting, but my understanding is that SPL_OF_PLATDATA ws made for a different purpose, and also, i tried to use it, but cannot select it from menuconfig.

Quoted 2 lines

How come m68k cannot use device tree?

There was never any devicetree implementation, probably becouse it is missing on Linux too.

It is a real shame that we can't do better than that.

I've added Tom in for comment as I'm not sure what is best here.

Regards,
Simon

#4 lore raw

PATCH v2 1/2 drivers; add DM_NO_OF Kconfig option

Quoted 33 lines · Simon Glass

+Tom

Hi Angelo,

Quoted 28 lines · Angelo Dureghello

Hi Simon,

Quoted 19 lines · Simon Glass

Hi Angelo,

Quoted 8 lines · Angelo Dureghello

To be able to build spi driver with DM support, a new config option has been introduced (DM_NO_OF) since m68k architecture does not support fdt.

---
Changes from v1:
- split into 2 patches

Quoted 7 lines
---
 arch/Kconfig             |  1 +
 drivers/core/Kconfig     |  4 ++++
 drivers/spi/spi-uclass.c | 12 +++++++-----
 3 files changed, 12 insertions(+), 5 deletions(-)
Quoted 2 lines

Is it possible to use SPL_OF_PLATDATA instead?

I have seen that setting, but my understanding is that SPL_OF_PLATDATA ws made for a different purpose, and also, i tried to use it, but cannot select it from menuconfig.

Quoted 8 lines
Quoted 4 lines
Quoted 2 lines

How come m68k cannot use device tree?

There was never any devicetree implementation, probably becouse it is missing on Linux too.

It is a real shame that we can't do better than that.

I've added Tom in for comment as I'm not sure what is best here.

Yeah, I think as sandbox shows, if/when we don't have to worry about also Linux dts files, it's not a lot of work to populate up what's required for just U-Boot, so long as we have the run-time space. And if not, that's what OF_PLATDATA is for.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180528/06f74f14/attachment.sig>
#5 lore raw

PATCH v2 1/2 drivers; add DM_NO_OF Kconfig option

Hi,

Quoted 39 lines · Tom Rini
Quoted 38 lines · Simon Glass

+Tom

Hi Angelo,

Quoted 32 lines · Angelo Dureghello

Hi Simon,

Quoted 19 lines · Simon Glass

Hi Angelo,

Quoted 8 lines · Angelo Dureghello

To be able to build spi driver with DM support, a new config option has been introduced (DM_NO_OF) since m68k architecture does not support fdt.

---
Changes from v1:
- split into 2 patches

Quoted 7 lines
---
 arch/Kconfig             |  1 +
 drivers/core/Kconfig     |  4 ++++
 drivers/spi/spi-uclass.c | 12 +++++++-----
 3 files changed, 12 insertions(+), 5 deletions(-)
Quoted 2 lines

Is it possible to use SPL_OF_PLATDATA instead?

I have seen that setting, but my understanding is that SPL_OF_PLATDATA ws made for a different purpose, and also, i tried to use it, but cannot select it from menuconfig.

Quoted 2 lines

How come m68k cannot use device tree?

There was never any devicetree implementation, probably becouse it is missing on Linux too.

Quoted 9 lines
Quoted 3 lines

It is a real shame that we can't do better than that.

I've added Tom in for comment as I'm not sure what is best here.

Yeah, I think as sandbox shows, if/when we don't have to worry about also Linux dts files, it's not a lot of work to populate up what's required for just U-Boot, so long as we have the run-time space. And if not, that's what OF_PLATDATA is for.

Ok, so i retry the OF_PLATDATA way, i probably missed something there. About fdt addition, i keep that task in a TO DO list for now.

Thanks,
Angelo

Quoted 2 lines
Signature · 1 line
Tom
#6 lore raw

PATCH v2 1/2 drivers; add DM_NO_OF Kconfig option

In reply to Tom Rini

Hi Tom and Simon,

thanks for the support.

Quoted 39 lines · Tom Rini
Quoted 38 lines · Simon Glass

+Tom

Hi Angelo,

Quoted 32 lines · Angelo Dureghello

Hi Simon,

Quoted 19 lines · Simon Glass

Hi Angelo,

Quoted 8 lines · Angelo Dureghello

To be able to build spi driver with DM support, a new config option has been introduced (DM_NO_OF) since m68k architecture does not support fdt.

---
Changes from v1:
- split into 2 patches

Quoted 7 lines
---
 arch/Kconfig             |  1 +
 drivers/core/Kconfig     |  4 ++++
 drivers/spi/spi-uclass.c | 12 +++++++-----
 3 files changed, 12 insertions(+), 5 deletions(-)
Quoted 2 lines

Is it possible to use SPL_OF_PLATDATA instead?

I have seen that setting, but my understanding is that SPL_OF_PLATDATA ws made for a different purpose, and also, i tried to use it, but cannot select it from menuconfig.

Quoted 2 lines

How come m68k cannot use device tree?

There was never any devicetree implementation, probably becouse it is missing on Linux too.

Quoted 9 lines
Quoted 3 lines

It is a real shame that we can't do better than that.

I've added Tom in for comment as I'm not sure what is best here.

Yeah, I think as sandbox shows, if/when we don't have to worry about also Linux dts files, it's not a lot of work to populate up what's required for just U-Boot, so long as we have the run-time space. And if not, that's what OF_PLATDATA is for.

About SPL_OF_PLATDATA, do you think i can change it to a more generic OF_PLATDATA, or GENERIC_OF_PLATDATA not dependant from SPL (i am not using SPL) ?
I also need to add "select SUPPORT_OF_CONTROL" for m68k arch.

Let me know if the above is ok, otherwise i start to work for the devicetree option.

Quoted 2 lines
Signature · 1 line
Tom

Regards,
Angelo

#7 lore raw

PATCH v2 1/2 drivers; add DM_NO_OF Kconfig option

Hi Angelo,

Quoted 54 lines · Angelo Dureghello

Hi Tom and Simon,

thanks for the support.

Quoted 39 lines · Tom Rini
Quoted 38 lines · Simon Glass

+Tom

Hi Angelo,

Quoted 32 lines · Angelo Dureghello

Hi Simon,

Quoted 19 lines · Simon Glass

Hi Angelo,

Quoted 8 lines · Angelo Dureghello

To be able to build spi driver with DM support, a new config option has been introduced (DM_NO_OF) since m68k architecture does not support fdt.

---
Changes from v1:
- split into 2 patches

Quoted 7 lines
---
 arch/Kconfig             |  1 +
 drivers/core/Kconfig     |  4 ++++
 drivers/spi/spi-uclass.c | 12 +++++++-----
 3 files changed, 12 insertions(+), 5 deletions(-)
Quoted 2 lines

Is it possible to use SPL_OF_PLATDATA instead?

I have seen that setting, but my understanding is that SPL_OF_PLATDATA ws made for a different purpose, and also, i tried to use it, but cannot select it from menuconfig.

Quoted 2 lines

How come m68k cannot use device tree?

There was never any devicetree implementation, probably becouse it is missing on Linux too.

Quoted 9 lines
Quoted 3 lines

It is a real shame that we can't do better than that.

I've added Tom in for comment as I'm not sure what is best here.

Yeah, I think as sandbox shows, if/when we don't have to worry about also Linux dts files, it's not a lot of work to populate up what's required for just U-Boot, so long as we have the run-time space. And if not, that's what OF_PLATDATA is for.

Quoted 7 lines

About SPL_OF_PLATDATA, do you think i can change it to a more generic OF_PLATDATA, or GENERIC_OF_PLATDATA not dependant from SPL (i am not using SPL) ?
I also need to add "select SUPPORT_OF_CONTROL" for m68k arch.

Let me know if the above is ok, otherwise i start to work for the devicetree option.

I am nervous about it since it opens the door to people using OF_PLATDATA in U-Boot proper, which I was hoping to avoid. If you look at the code you will see that it is somewhat ugly. Fine for SPL since it reduces the size so much, but the size advantage would be less in U-Boot (since we have libfdt anyway).

So my preference would be to add device tree. But it's not the end of the world.

What do you think, Tom?

Regards,
Simon

#8 lore raw

PATCH v2 1/2 drivers; add DM_NO_OF Kconfig option

In reply to Angelo Dureghello
Quoted 54 lines · Angelo Dureghello

Hi Tom and Simon,

thanks for the support.

Quoted 39 lines · Tom Rini
Quoted 38 lines · Simon Glass

+Tom

Hi Angelo,

Quoted 32 lines · Angelo Dureghello

Hi Simon,

Quoted 19 lines · Simon Glass

Hi Angelo,

Quoted 8 lines · Angelo Dureghello

To be able to build spi driver with DM support, a new config option has been introduced (DM_NO_OF) since m68k architecture does not support fdt.

---
Changes from v1:
- split into 2 patches

Quoted 7 lines
---
 arch/Kconfig             |  1 +
 drivers/core/Kconfig     |  4 ++++
 drivers/spi/spi-uclass.c | 12 +++++++-----
 3 files changed, 12 insertions(+), 5 deletions(-)
Quoted 2 lines

Is it possible to use SPL_OF_PLATDATA instead?

I have seen that setting, but my understanding is that SPL_OF_PLATDATA ws made for a different purpose, and also, i tried to use it, but cannot select it from menuconfig.

Quoted 2 lines

How come m68k cannot use device tree?

There was never any devicetree implementation, probably becouse it is missing on Linux too.

Quoted 9 lines
Quoted 3 lines

It is a real shame that we can't do better than that.

I've added Tom in for comment as I'm not sure what is best here.

Yeah, I think as sandbox shows, if/when we don't have to worry about also Linux dts files, it's not a lot of work to populate up what's required for just U-Boot, so long as we have the run-time space. And if not, that's what OF_PLATDATA is for.

Quoted 7 lines

About SPL_OF_PLATDATA, do you think i can change it to a more generic OF_PLATDATA, or GENERIC_OF_PLATDATA not dependant from SPL (i am not using SPL) ?
I also need to add "select SUPPORT_OF_CONTROL" for m68k arch.

Let me know if the above is ok, otherwise i start to work for the devicetree option.

Really, we should probably go the device tree path first and see where that gets us. I think it'll be less work in the end. Thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180531/ddfb5cac/attachment.sig>