Skip to contentSkip to conversation

spi: davinci: Full dm conversion

PATCH New Jagan Teki 2 participants 2 messages Aug 7, 2018 SPI

lore
Share & tools
lore

Jagan Teki

author
#0 lore raw

PATCH v4 1/1 spi: davinci: Full dm conversion

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

Cc Adam Ford <[email protected]>
Cc Vitaly Andrianov <[email protected]>
Cc Stefano Babic <[email protected]>
Cc Peter Howard <[email protected]>
Cc Tom Rini <[email protected]>

---
Changes for v4, v3, v2:
- rebased to master

 drivers/spi/Kconfig                    |  12 +-
 drivers/spi/davinci_spi.c              | 289 +++++++------------------
 include/dm/platform_data/spi_davinci.h |  15 ++
 3 files changed, 97 insertions(+), 219 deletions(-)
 create mode 100644 include/dm/platform_data/spi_davinci.h
drivers/spi/Kconfig +6 -6
index d046e919b4..18ebff0231 100644
@@ -80,6 +80,12 @@ config CADENCE_QSPI
 	  used to access the SPI NOR flash on platforms embedding this
 	  Cadence IP core.
 
+config DAVINCI_SPI
+	bool "Davinci & Keystone SPI driver"
+	depends on ARCH_DAVINCI || ARCH_KEYSTONE
+	help
+	  Enable the Davinci SPI driver
+
 config DESIGNWARE_SPI
 	bool "Designware SPI driver"
 	help
@@ -281,12 +287,6 @@ config FSL_QSPI
 	  used to access the SPI NOR flash on platforms embedding this
 	  Freescale IP core.
 
-config DAVINCI_SPI
-	bool "Davinci & Keystone SPI driver"
-	depends on ARCH_DAVINCI || ARCH_KEYSTONE
-	help
-	  Enable the Davinci SPI driver
-
 config SH_SPI
 	bool "SuperH SPI driver"
 	help
drivers/spi/davinci_spi.c +76 -213

369 lines not on this page · raw message

include/dm/platform_data/spi_davinci.h new file +15 -0
new file mode 100644
index 0000000000..fbc62c262a
@@ -0,0 +1,15 @@
+/*
+ * Copyright (C) 2018 Jagan Teki <[email protected]>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef __spi_davinci_h
+#define __spi_davinci_h
+
+struct davinci_spi_platdata {
+	struct davinci_spi_regs *regs;
+	u8 num_cs;	   /* total no. of CS available */
+};
+
+#endif /* __spi_davinci_h */
Signature · 1 line
2.18.0.321.gffc6fa0e3
#1 lore raw

PATCH v4 1/1 spi: davinci: Full dm conversion

Quoted 10 lines · Jagan Teki

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

Cc Adam Ford <[email protected]>
Cc Vitaly Andrianov <[email protected]>
Cc Stefano Babic <[email protected]>
Cc Peter Howard <[email protected]>
Cc Tom Rini <[email protected]>
Quoted 4 lines

---
Changes for v4, v3, v2:
- rebased to master

I reset to origin/master and applied this patch and attempted to build da850evm_defconfig, but I got build errors.

I confirmed that both DM_SPI and DM_SPI_FLASH are both 'y'

drivers/spi/davinci_spi.c: In function ‘davinci_spi_claim_bus’:
drivers/spi/davinci_spi.c:272:16: error: dereferencing pointer to incomplete type ‘struct dm_spi_slave_platdata’

  if (slave_plat->cs >= ds->num_cs) {
                ^~
drivers/spi/davinci_spi.c: In function ‘davinci_spi_xfer’:
drivers/spi/davinci_spi.c:345:11: error: dereferencing pointer to
incomplete type ‘struct dm_spi_slave_platdata’
  if (slave->cs >= ds->num_cs) {
           ^~
drivers/spi/davinci_spi.c: At top level:
drivers/spi/davinci_spi.c:388:21: error: variable ‘davinci_spi_ops’
has initializer but incomplete type
 static const struct dm_spi_ops davinci_spi_ops = {
                     ^~~~~~~~~~

drivers/spi/davinci_spi.c:389:3: error: ‘const struct dm_spi_ops’ has no member named ‘claim_bus’
.claim_bus = davinci_spi_claim_bus,
^~~~~~~~~
drivers/spi/davinci_spi.c:389:15: warning: excess elements in struct initializer
.claim_bus = davinci_spi_claim_bus,

               ^~~~~~~~~~~~~~~~~~~~~

drivers/spi/davinci_spi.c:389:15: note: (near initialization for ‘davinci_spi_ops’)
drivers/spi/davinci_spi.c:390:3: error: ‘const struct dm_spi_ops’ has no member named ‘release_bus’
.release_bus = davinci_spi_release_bus,
^~~~~~~~~~~
drivers/spi/davinci_spi.c:390:17: warning: excess elements in struct initializer
.release_bus = davinci_spi_release_bus,

                 ^~~~~~~~~~~~~~~~~~~~~~~

drivers/spi/davinci_spi.c:390:17: note: (near initialization for ‘davinci_spi_ops’)
drivers/spi/davinci_spi.c:391:3: error: ‘const struct dm_spi_ops’ has no member named ‘xfer’
.xfer = davinci_spi_xfer,
^~~~
drivers/spi/davinci_spi.c:391:11: warning: excess elements in struct initializer
.xfer = davinci_spi_xfer,

           ^~~~~~~~~~~~~~~~

drivers/spi/davinci_spi.c:391:11: note: (near initialization for ‘davinci_spi_ops’)
drivers/spi/davinci_spi.c:392:3: error: ‘const struct dm_spi_ops’ has no member named ‘set_speed’
.set_speed = davinci_spi_set_speed,
^~~~~~~~~
drivers/spi/davinci_spi.c:392:15: warning: excess elements in struct initializer
.set_speed = davinci_spi_set_speed,

               ^~~~~~~~~~~~~~~~~~~~~

drivers/spi/davinci_spi.c:392:15: note: (near initialization for ‘davinci_spi_ops’)
drivers/spi/davinci_spi.c:393:3: error: ‘const struct dm_spi_ops’ has no member named ‘set_mode’
.set_mode = davinci_spi_set_mode,
^~~~~~~~
drivers/spi/davinci_spi.c:393:14: warning: excess elements in struct initializer
.set_mode = davinci_spi_set_mode,

              ^~~~~~~~~~~~~~~~~~~~

drivers/spi/davinci_spi.c:393:14: note: (near initialization for ‘davinci_spi_ops’)
drivers/spi/davinci_spi.c:388:32: error: storage size of ‘davinci_spi_ops’ isn’t known

 static const struct dm_spi_ops davinci_spi_ops = {
                                ^~~~~~~~~~~~~~~

scripts/Makefile.build:278: recipe for target
'spl/drivers/spi/davinci_spi.o' failed

Quoted 6 lines
 drivers/spi/Kconfig                    |  12 +-
 drivers/spi/davinci_spi.c              | 289 +++++++------------------
 include/dm/platform_data/spi_davinci.h |  15 ++
 3 files changed, 97 insertions(+), 219 deletions(-)
 create mode 100644 include/dm/platform_data/spi_davinci.h

[snip]

Quoted 3 lines

--
2.18.0.321.gffc6fa0e3