spi: davinci: Full dm conversion
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.
---
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
@@ -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
@@ -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
PATCH v4 1/1 spi: davinci: Full dm conversion
Quoted 10 lines · Jagan Teki
davinci_spinow 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]>Signed-off-by Jagan Teki <[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