Commit 51eea52d authored by Lubomir Rintel's avatar Lubomir Rintel Committed by Mark Brown

pxa2xx: replace spi_master with spi_controller

It's also a slave controller driver now, calling it "master" is slightly
misleading.
Signed-off-by: default avatarLubomir Rintel <lkundrak@v3.sk>
Acked-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent bfc7af6d
...@@ -21,15 +21,15 @@ Typically a SPI master is defined in the arch/.../mach-*/board-*.c as a ...@@ -21,15 +21,15 @@ Typically a SPI master is defined in the arch/.../mach-*/board-*.c as a
"platform device". The master configuration is passed to the driver via a table "platform device". The master configuration is passed to the driver via a table
found in include/linux/spi/pxa2xx_spi.h: found in include/linux/spi/pxa2xx_spi.h:
struct pxa2xx_spi_master { struct pxa2xx_spi_controller {
u16 num_chipselect; u16 num_chipselect;
u8 enable_dma; u8 enable_dma;
}; };
The "pxa2xx_spi_master.num_chipselect" field is used to determine the number of The "pxa2xx_spi_controller.num_chipselect" field is used to determine the number of
slave device (chips) attached to this SPI master. slave device (chips) attached to this SPI master.
The "pxa2xx_spi_master.enable_dma" field informs the driver that SSP DMA should The "pxa2xx_spi_controller.enable_dma" field informs the driver that SSP DMA should
be used. This caused the driver to acquire two DMA channels: rx_channel and be used. This caused the driver to acquire two DMA channels: rx_channel and
tx_channel. The rx_channel has a higher DMA service priority the tx_channel. tx_channel. The rx_channel has a higher DMA service priority the tx_channel.
See the "PXA2xx Developer Manual" section "DMA Controller". See the "PXA2xx Developer Manual" section "DMA Controller".
...@@ -51,7 +51,7 @@ static struct resource pxa_spi_nssp_resources[] = { ...@@ -51,7 +51,7 @@ static struct resource pxa_spi_nssp_resources[] = {
}, },
}; };
static struct pxa2xx_spi_master pxa_nssp_master_info = { static struct pxa2xx_spi_controller pxa_nssp_master_info = {
.num_chipselect = 1, /* Matches the number of chips attached to NSSP */ .num_chipselect = 1, /* Matches the number of chips attached to NSSP */
.enable_dma = 1, /* Enables NSSP DMA */ .enable_dma = 1, /* Enables NSSP DMA */
}; };
...@@ -206,7 +206,7 @@ DMA and PIO I/O Support ...@@ -206,7 +206,7 @@ DMA and PIO I/O Support
----------------------- -----------------------
The pxa2xx_spi driver supports both DMA and interrupt driven PIO message The pxa2xx_spi driver supports both DMA and interrupt driven PIO message
transfers. The driver defaults to PIO mode and DMA transfers must be enabled transfers. The driver defaults to PIO mode and DMA transfers must be enabled
by setting the "enable_dma" flag in the "pxa2xx_spi_master" structure. The DMA by setting the "enable_dma" flag in the "pxa2xx_spi_controller" structure. The DMA
mode supports both coherent and stream based DMA mappings. mode supports both coherent and stream based DMA mappings.
The following logic is used to determine the type of I/O to be used on The following logic is used to determine the type of I/O to be used on
......
...@@ -98,7 +98,7 @@ static unsigned long cmx255_pin_config[] = { ...@@ -98,7 +98,7 @@ static unsigned long cmx255_pin_config[] = {
}; };
#if defined(CONFIG_SPI_PXA2XX) #if defined(CONFIG_SPI_PXA2XX)
static struct pxa2xx_spi_master pxa_ssp_master_info = { static struct pxa2xx_spi_controller pxa_ssp_master_info = {
.num_chipselect = 1, .num_chipselect = 1,
}; };
......
...@@ -313,7 +313,7 @@ static inline void cmx270_init_mmc(void) {} ...@@ -313,7 +313,7 @@ static inline void cmx270_init_mmc(void) {}
#endif #endif
#if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE)
static struct pxa2xx_spi_master cm_x270_spi_info = { static struct pxa2xx_spi_controller cm_x270_spi_info = {
.num_chipselect = 1, .num_chipselect = 1,
.enable_dma = 1, .enable_dma = 1,
}; };
......
...@@ -530,7 +530,7 @@ static struct pxa2xx_udc_mach_info udc_info __initdata = { ...@@ -530,7 +530,7 @@ static struct pxa2xx_udc_mach_info udc_info __initdata = {
}; };
#if IS_ENABLED(CONFIG_SPI_PXA2XX) #if IS_ENABLED(CONFIG_SPI_PXA2XX)
static struct pxa2xx_spi_master corgi_spi_info = { static struct pxa2xx_spi_controller corgi_spi_info = {
.num_chipselect = 3, .num_chipselect = 3,
}; };
......
...@@ -1065,7 +1065,7 @@ struct platform_device pxa93x_device_gpio = { ...@@ -1065,7 +1065,7 @@ struct platform_device pxa93x_device_gpio = {
/* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1. /* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1.
* See comment in arch/arm/mach-pxa/ssp.c::ssp_probe() */ * See comment in arch/arm/mach-pxa/ssp.c::ssp_probe() */
void __init pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_master *info) void __init pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_controller *info)
{ {
struct platform_device *pd; struct platform_device *pd;
......
...@@ -689,7 +689,7 @@ static inline void em_x270_init_lcd(void) {} ...@@ -689,7 +689,7 @@ static inline void em_x270_init_lcd(void) {}
#endif #endif
#if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE)
static struct pxa2xx_spi_master em_x270_spi_info = { static struct pxa2xx_spi_controller em_x270_spi_info = {
.num_chipselect = 1, .num_chipselect = 1,
}; };
...@@ -703,7 +703,7 @@ static struct tdo24m_platform_data em_x270_tdo24m_pdata = { ...@@ -703,7 +703,7 @@ static struct tdo24m_platform_data em_x270_tdo24m_pdata = {
.model = TDO35S, .model = TDO35S,
}; };
static struct pxa2xx_spi_master em_x270_spi_2_info = { static struct pxa2xx_spi_controller em_x270_spi_2_info = {
.num_chipselect = 1, .num_chipselect = 1,
.enable_dma = 1, .enable_dma = 1,
}; };
......
...@@ -629,7 +629,7 @@ static struct spi_board_info tsc2046_board_info[] __initdata = { ...@@ -629,7 +629,7 @@ static struct spi_board_info tsc2046_board_info[] __initdata = {
}, },
}; };
static struct pxa2xx_spi_master pxa_ssp2_master_info = { static struct pxa2xx_spi_controller pxa_ssp2_master_info = {
.num_chipselect = 1, .num_chipselect = 1,
.enable_dma = 1, .enable_dma = 1,
}; };
......
...@@ -115,12 +115,12 @@ static struct spi_board_info mcp251x_board_info[] = { ...@@ -115,12 +115,12 @@ static struct spi_board_info mcp251x_board_info[] = {
} }
}; };
static struct pxa2xx_spi_master pxa_ssp3_spi_master_info = { static struct pxa2xx_spi_controller pxa_ssp3_spi_master_info = {
.num_chipselect = 2, .num_chipselect = 2,
.enable_dma = 1 .enable_dma = 1
}; };
static struct pxa2xx_spi_master pxa_ssp4_spi_master_info = { static struct pxa2xx_spi_controller pxa_ssp4_spi_master_info = {
.num_chipselect = 2, .num_chipselect = 2,
.enable_dma = 1 .enable_dma = 1
}; };
......
...@@ -191,7 +191,7 @@ static inline void littleton_init_lcd(void) {}; ...@@ -191,7 +191,7 @@ static inline void littleton_init_lcd(void) {};
#endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULE */ #endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULE */
#if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE)
static struct pxa2xx_spi_master littleton_spi_info = { static struct pxa2xx_spi_controller littleton_spi_info = {
.num_chipselect = 1, .num_chipselect = 1,
}; };
......
...@@ -197,7 +197,7 @@ static struct platform_device sa1111_device = { ...@@ -197,7 +197,7 @@ static struct platform_device sa1111_device = {
* (to J5) and poking board registers (as done below). Else it's only useful * (to J5) and poking board registers (as done below). Else it's only useful
* for the temperature sensors. * for the temperature sensors.
*/ */
static struct pxa2xx_spi_master pxa_ssp_master_info = { static struct pxa2xx_spi_controller pxa_ssp_master_info = {
.num_chipselect = 1, .num_chipselect = 1,
}; };
......
...@@ -932,7 +932,7 @@ struct pxa2xx_spi_chip tsc2046_chip_info = { ...@@ -932,7 +932,7 @@ struct pxa2xx_spi_chip tsc2046_chip_info = {
.gpio_cs = GPIO14_MAGICIAN_TSC2046_CS, .gpio_cs = GPIO14_MAGICIAN_TSC2046_CS,
}; };
static struct pxa2xx_spi_master magician_spi_info = { static struct pxa2xx_spi_controller magician_spi_info = {
.num_chipselect = 1, .num_chipselect = 1,
.enable_dma = 1, .enable_dma = 1,
}; };
......
...@@ -132,7 +132,7 @@ static struct platform_device smc91x_device = { ...@@ -132,7 +132,7 @@ static struct platform_device smc91x_device = {
/* /*
* SPI host and devices * SPI host and devices
*/ */
static struct pxa2xx_spi_master pxa_ssp_master_info = { static struct pxa2xx_spi_controller pxa_ssp_master_info = {
.num_chipselect = 1, .num_chipselect = 1,
}; };
......
...@@ -196,7 +196,7 @@ struct platform_device poodle_locomo_device = { ...@@ -196,7 +196,7 @@ struct platform_device poodle_locomo_device = {
EXPORT_SYMBOL(poodle_locomo_device); EXPORT_SYMBOL(poodle_locomo_device);
#if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE)
static struct pxa2xx_spi_master poodle_spi_info = { static struct pxa2xx_spi_controller poodle_spi_info = {
.num_chipselect = 1, .num_chipselect = 1,
}; };
......
...@@ -572,7 +572,7 @@ static struct spi_board_info spitz_spi_devices[] = { ...@@ -572,7 +572,7 @@ static struct spi_board_info spitz_spi_devices[] = {
}, },
}; };
static struct pxa2xx_spi_master spitz_spi_info = { static struct pxa2xx_spi_controller spitz_spi_info = {
.num_chipselect = 3, .num_chipselect = 3,
}; };
......
...@@ -337,15 +337,15 @@ static struct platform_device stargate2_flash_device = { ...@@ -337,15 +337,15 @@ static struct platform_device stargate2_flash_device = {
.num_resources = 1, .num_resources = 1,
}; };
static struct pxa2xx_spi_master pxa_ssp_master_0_info = { static struct pxa2xx_spi_controller pxa_ssp_master_0_info = {
.num_chipselect = 1, .num_chipselect = 1,
}; };
static struct pxa2xx_spi_master pxa_ssp_master_1_info = { static struct pxa2xx_spi_controller pxa_ssp_master_1_info = {
.num_chipselect = 1, .num_chipselect = 1,
}; };
static struct pxa2xx_spi_master pxa_ssp_master_2_info = { static struct pxa2xx_spi_controller pxa_ssp_master_2_info = {
.num_chipselect = 1, .num_chipselect = 1,
}; };
......
...@@ -813,7 +813,7 @@ static struct platform_device tosa_bt_device = { ...@@ -813,7 +813,7 @@ static struct platform_device tosa_bt_device = {
.dev.platform_data = &tosa_bt_data, .dev.platform_data = &tosa_bt_data,
}; };
static struct pxa2xx_spi_master pxa_ssp_master_info = { static struct pxa2xx_spi_controller pxa_ssp_master_info = {
.num_chipselect = 1, .num_chipselect = 1,
}; };
......
...@@ -607,12 +607,12 @@ static struct spi_board_info spi_board_info[] __initdata = { ...@@ -607,12 +607,12 @@ static struct spi_board_info spi_board_info[] __initdata = {
}, },
}; };
static struct pxa2xx_spi_master pxa_ssp1_master_info = { static struct pxa2xx_spi_controller pxa_ssp1_master_info = {
.num_chipselect = 1, .num_chipselect = 1,
.enable_dma = 1, .enable_dma = 1,
}; };
static struct pxa2xx_spi_master pxa_ssp2_master_info = { static struct pxa2xx_spi_controller pxa_ssp2_master_info = {
.num_chipselect = 1, .num_chipselect = 1,
}; };
......
...@@ -391,7 +391,7 @@ static struct platform_device zeus_sram_device = { ...@@ -391,7 +391,7 @@ static struct platform_device zeus_sram_device = {
}; };
/* SPI interface on SSP3 */ /* SPI interface on SSP3 */
static struct pxa2xx_spi_master pxa2xx_spi_ssp3_master_info = { static struct pxa2xx_spi_controller pxa2xx_spi_ssp3_master_info = {
.num_chipselect = 1, .num_chipselect = 1,
.enable_dma = 1, .enable_dma = 1,
}; };
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
static void pxa2xx_spi_dma_transfer_complete(struct driver_data *drv_data, static void pxa2xx_spi_dma_transfer_complete(struct driver_data *drv_data,
bool error) bool error)
{ {
struct spi_message *msg = drv_data->master->cur_msg; struct spi_message *msg = drv_data->controller->cur_msg;
/* /*
* It is possible that one CPU is handling ROR interrupt and other * It is possible that one CPU is handling ROR interrupt and other
...@@ -59,7 +59,7 @@ static void pxa2xx_spi_dma_transfer_complete(struct driver_data *drv_data, ...@@ -59,7 +59,7 @@ static void pxa2xx_spi_dma_transfer_complete(struct driver_data *drv_data,
msg->status = -EIO; msg->status = -EIO;
} }
spi_finalize_current_transfer(drv_data->master); spi_finalize_current_transfer(drv_data->controller);
} }
} }
...@@ -74,7 +74,7 @@ pxa2xx_spi_dma_prepare_one(struct driver_data *drv_data, ...@@ -74,7 +74,7 @@ pxa2xx_spi_dma_prepare_one(struct driver_data *drv_data,
struct spi_transfer *xfer) struct spi_transfer *xfer)
{ {
struct chip_data *chip = struct chip_data *chip =
spi_get_ctldata(drv_data->master->cur_msg->spi); spi_get_ctldata(drv_data->controller->cur_msg->spi);
enum dma_slave_buswidth width; enum dma_slave_buswidth width;
struct dma_slave_config cfg; struct dma_slave_config cfg;
struct dma_chan *chan; struct dma_chan *chan;
...@@ -102,14 +102,14 @@ pxa2xx_spi_dma_prepare_one(struct driver_data *drv_data, ...@@ -102,14 +102,14 @@ pxa2xx_spi_dma_prepare_one(struct driver_data *drv_data,
cfg.dst_maxburst = chip->dma_burst_size; cfg.dst_maxburst = chip->dma_burst_size;
sgt = &xfer->tx_sg; sgt = &xfer->tx_sg;
chan = drv_data->master->dma_tx; chan = drv_data->controller->dma_tx;
} else { } else {
cfg.src_addr = drv_data->ssdr_physical; cfg.src_addr = drv_data->ssdr_physical;
cfg.src_addr_width = width; cfg.src_addr_width = width;
cfg.src_maxburst = chip->dma_burst_size; cfg.src_maxburst = chip->dma_burst_size;
sgt = &xfer->rx_sg; sgt = &xfer->rx_sg;
chan = drv_data->master->dma_rx; chan = drv_data->controller->dma_rx;
} }
ret = dmaengine_slave_config(chan, &cfg); ret = dmaengine_slave_config(chan, &cfg);
...@@ -130,8 +130,8 @@ irqreturn_t pxa2xx_spi_dma_transfer(struct driver_data *drv_data) ...@@ -130,8 +130,8 @@ irqreturn_t pxa2xx_spi_dma_transfer(struct driver_data *drv_data)
if (status & SSSR_ROR) { if (status & SSSR_ROR) {
dev_err(&drv_data->pdev->dev, "FIFO overrun\n"); dev_err(&drv_data->pdev->dev, "FIFO overrun\n");
dmaengine_terminate_async(drv_data->master->dma_rx); dmaengine_terminate_async(drv_data->controller->dma_rx);
dmaengine_terminate_async(drv_data->master->dma_tx); dmaengine_terminate_async(drv_data->controller->dma_tx);
pxa2xx_spi_dma_transfer_complete(drv_data, true); pxa2xx_spi_dma_transfer_complete(drv_data, true);
return IRQ_HANDLED; return IRQ_HANDLED;
...@@ -171,15 +171,15 @@ int pxa2xx_spi_dma_prepare(struct driver_data *drv_data, ...@@ -171,15 +171,15 @@ int pxa2xx_spi_dma_prepare(struct driver_data *drv_data,
return 0; return 0;
err_rx: err_rx:
dmaengine_terminate_async(drv_data->master->dma_tx); dmaengine_terminate_async(drv_data->controller->dma_tx);
err_tx: err_tx:
return err; return err;
} }
void pxa2xx_spi_dma_start(struct driver_data *drv_data) void pxa2xx_spi_dma_start(struct driver_data *drv_data)
{ {
dma_async_issue_pending(drv_data->master->dma_rx); dma_async_issue_pending(drv_data->controller->dma_rx);
dma_async_issue_pending(drv_data->master->dma_tx); dma_async_issue_pending(drv_data->controller->dma_tx);
atomic_set(&drv_data->dma_running, 1); atomic_set(&drv_data->dma_running, 1);
} }
...@@ -187,30 +187,30 @@ void pxa2xx_spi_dma_start(struct driver_data *drv_data) ...@@ -187,30 +187,30 @@ void pxa2xx_spi_dma_start(struct driver_data *drv_data)
void pxa2xx_spi_dma_stop(struct driver_data *drv_data) void pxa2xx_spi_dma_stop(struct driver_data *drv_data)
{ {
atomic_set(&drv_data->dma_running, 0); atomic_set(&drv_data->dma_running, 0);
dmaengine_terminate_sync(drv_data->master->dma_rx); dmaengine_terminate_sync(drv_data->controller->dma_rx);
dmaengine_terminate_sync(drv_data->master->dma_tx); dmaengine_terminate_sync(drv_data->controller->dma_tx);
} }
int pxa2xx_spi_dma_setup(struct driver_data *drv_data) int pxa2xx_spi_dma_setup(struct driver_data *drv_data)
{ {
struct pxa2xx_spi_master *pdata = drv_data->master_info; struct pxa2xx_spi_controller *pdata = drv_data->controller_info;
struct device *dev = &drv_data->pdev->dev; struct device *dev = &drv_data->pdev->dev;
struct spi_controller *master = drv_data->master; struct spi_controller *controller = drv_data->controller;
dma_cap_mask_t mask; dma_cap_mask_t mask;
dma_cap_zero(mask); dma_cap_zero(mask);
dma_cap_set(DMA_SLAVE, mask); dma_cap_set(DMA_SLAVE, mask);
master->dma_tx = dma_request_slave_channel_compat(mask, controller->dma_tx = dma_request_slave_channel_compat(mask,
pdata->dma_filter, pdata->tx_param, dev, "tx"); pdata->dma_filter, pdata->tx_param, dev, "tx");
if (!master->dma_tx) if (!controller->dma_tx)
return -ENODEV; return -ENODEV;
master->dma_rx = dma_request_slave_channel_compat(mask, controller->dma_rx = dma_request_slave_channel_compat(mask,
pdata->dma_filter, pdata->rx_param, dev, "rx"); pdata->dma_filter, pdata->rx_param, dev, "rx");
if (!master->dma_rx) { if (!controller->dma_rx) {
dma_release_channel(master->dma_tx); dma_release_channel(controller->dma_tx);
master->dma_tx = NULL; controller->dma_tx = NULL;
return -ENODEV; return -ENODEV;
} }
...@@ -219,17 +219,17 @@ int pxa2xx_spi_dma_setup(struct driver_data *drv_data) ...@@ -219,17 +219,17 @@ int pxa2xx_spi_dma_setup(struct driver_data *drv_data)
void pxa2xx_spi_dma_release(struct driver_data *drv_data) void pxa2xx_spi_dma_release(struct driver_data *drv_data)
{ {
struct spi_controller *master = drv_data->master; struct spi_controller *controller = drv_data->controller;
if (master->dma_rx) { if (controller->dma_rx) {
dmaengine_terminate_sync(master->dma_rx); dmaengine_terminate_sync(controller->dma_rx);
dma_release_channel(master->dma_rx); dma_release_channel(controller->dma_rx);
master->dma_rx = NULL; controller->dma_rx = NULL;
} }
if (master->dma_tx) { if (controller->dma_tx) {
dmaengine_terminate_sync(master->dma_tx); dmaengine_terminate_sync(controller->dma_tx);
dma_release_channel(master->dma_tx); dma_release_channel(controller->dma_tx);
master->dma_tx = NULL; controller->dma_tx = NULL;
} }
} }
......
...@@ -197,7 +197,7 @@ static int pxa2xx_spi_pci_probe(struct pci_dev *dev, ...@@ -197,7 +197,7 @@ static int pxa2xx_spi_pci_probe(struct pci_dev *dev,
struct platform_device_info pi; struct platform_device_info pi;
int ret; int ret;
struct platform_device *pdev; struct platform_device *pdev;
struct pxa2xx_spi_master spi_pdata; struct pxa2xx_spi_controller spi_pdata;
struct ssp_device *ssp; struct ssp_device *ssp;
struct pxa_spi_info *c; struct pxa_spi_info *c;
char buf[40]; char buf[40];
...@@ -265,7 +265,7 @@ static int pxa2xx_spi_pci_probe(struct pci_dev *dev, ...@@ -265,7 +265,7 @@ static int pxa2xx_spi_pci_probe(struct pci_dev *dev,
static void pxa2xx_spi_pci_remove(struct pci_dev *dev) static void pxa2xx_spi_pci_remove(struct pci_dev *dev)
{ {
struct platform_device *pdev = pci_get_drvdata(dev); struct platform_device *pdev = pci_get_drvdata(dev);
struct pxa2xx_spi_master *spi_pdata; struct pxa2xx_spi_controller *spi_pdata;
spi_pdata = dev_get_platdata(&pdev->dev); spi_pdata = dev_get_platdata(&pdev->dev);
......
This diff is collapsed.
...@@ -31,10 +31,10 @@ struct driver_data { ...@@ -31,10 +31,10 @@ struct driver_data {
/* SPI framework hookup */ /* SPI framework hookup */
enum pxa_ssp_type ssp_type; enum pxa_ssp_type ssp_type;
struct spi_controller *master; struct spi_controller *controller;
/* PXA hookup */ /* PXA hookup */
struct pxa2xx_spi_master *master_info; struct pxa2xx_spi_controller *controller_info;
/* SSP register addresses */ /* SSP register addresses */
void __iomem *ioaddr; void __iomem *ioaddr;
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
struct dma_chan; struct dma_chan;
/* device.platform_data for SSP controller devices */ /* device.platform_data for SSP controller devices */
struct pxa2xx_spi_master { struct pxa2xx_spi_controller {
u16 num_chipselect; u16 num_chipselect;
u8 enable_dma; u8 enable_dma;
bool is_slave; bool is_slave;
...@@ -54,7 +54,7 @@ struct pxa2xx_spi_chip { ...@@ -54,7 +54,7 @@ struct pxa2xx_spi_chip {
#include <linux/clk.h> #include <linux/clk.h>
extern void pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_master *info); extern void pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_controller *info);
#endif #endif
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment