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);
......
...@@ -328,7 +328,7 @@ static void lpss_ssp_setup(struct driver_data *drv_data) ...@@ -328,7 +328,7 @@ static void lpss_ssp_setup(struct driver_data *drv_data)
__lpss_ssp_write_priv(drv_data, config->reg_cs_ctrl, value); __lpss_ssp_write_priv(drv_data, config->reg_cs_ctrl, value);
/* Enable multiblock DMA transfers */ /* Enable multiblock DMA transfers */
if (drv_data->master_info->enable_dma) { if (drv_data->controller_info->enable_dma) {
__lpss_ssp_write_priv(drv_data, config->reg_ssp, 1); __lpss_ssp_write_priv(drv_data, config->reg_ssp, 1);
if (config->reg_general >= 0) { if (config->reg_general >= 0) {
...@@ -368,7 +368,7 @@ static void lpss_ssp_select_cs(struct spi_device *spi, ...@@ -368,7 +368,7 @@ static void lpss_ssp_select_cs(struct spi_device *spi,
__lpss_ssp_write_priv(drv_data, __lpss_ssp_write_priv(drv_data,
config->reg_cs_ctrl, value); config->reg_cs_ctrl, value);
ndelay(1000000000 / ndelay(1000000000 /
(drv_data->master->max_speed_hz / 2)); (drv_data->controller->max_speed_hz / 2));
} }
} }
...@@ -567,7 +567,7 @@ static int u32_reader(struct driver_data *drv_data) ...@@ -567,7 +567,7 @@ static int u32_reader(struct driver_data *drv_data)
static void reset_sccr1(struct driver_data *drv_data) static void reset_sccr1(struct driver_data *drv_data)
{ {
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);
u32 sccr1_reg; u32 sccr1_reg;
sccr1_reg = pxa2xx_spi_read(drv_data, SSCR1) & ~drv_data->int_cr1; sccr1_reg = pxa2xx_spi_read(drv_data, SSCR1) & ~drv_data->int_cr1;
...@@ -599,8 +599,8 @@ static void int_error_stop(struct driver_data *drv_data, const char* msg) ...@@ -599,8 +599,8 @@ static void int_error_stop(struct driver_data *drv_data, const char* msg)
dev_err(&drv_data->pdev->dev, "%s\n", msg); dev_err(&drv_data->pdev->dev, "%s\n", msg);
drv_data->master->cur_msg->status = -EIO; drv_data->controller->cur_msg->status = -EIO;
spi_finalize_current_transfer(drv_data->master); spi_finalize_current_transfer(drv_data->controller);
} }
static void int_transfer_complete(struct driver_data *drv_data) static void int_transfer_complete(struct driver_data *drv_data)
...@@ -611,7 +611,7 @@ static void int_transfer_complete(struct driver_data *drv_data) ...@@ -611,7 +611,7 @@ static void int_transfer_complete(struct driver_data *drv_data)
if (!pxa25x_ssp_comp(drv_data)) if (!pxa25x_ssp_comp(drv_data))
pxa2xx_spi_write(drv_data, SSTO, 0); pxa2xx_spi_write(drv_data, SSTO, 0);
spi_finalize_current_transfer(drv_data->master); spi_finalize_current_transfer(drv_data->controller);
} }
static irqreturn_t interrupt_transfer(struct driver_data *drv_data) static irqreturn_t interrupt_transfer(struct driver_data *drv_data)
...@@ -747,7 +747,7 @@ static irqreturn_t ssp_int(int irq, void *dev_id) ...@@ -747,7 +747,7 @@ static irqreturn_t ssp_int(int irq, void *dev_id)
pxa2xx_spi_write(drv_data, SSCR1, sccr1_reg & ~drv_data->int_cr1); pxa2xx_spi_write(drv_data, SSCR1, sccr1_reg & ~drv_data->int_cr1);
pxa2xx_spi_write(drv_data, SSCR1, sccr1_reg); pxa2xx_spi_write(drv_data, SSCR1, sccr1_reg);
if (!drv_data->master->cur_msg) { if (!drv_data->controller->cur_msg) {
handle_bad_msg(drv_data); handle_bad_msg(drv_data);
/* Never fail */ /* Never fail */
return IRQ_HANDLED; return IRQ_HANDLED;
...@@ -879,7 +879,7 @@ static unsigned int quark_x1000_get_clk_div(int rate, u32 *dds) ...@@ -879,7 +879,7 @@ static unsigned int quark_x1000_get_clk_div(int rate, u32 *dds)
static unsigned int ssp_get_clk_div(struct driver_data *drv_data, int rate) static unsigned int ssp_get_clk_div(struct driver_data *drv_data, int rate)
{ {
unsigned long ssp_clk = drv_data->master->max_speed_hz; unsigned long ssp_clk = drv_data->controller->max_speed_hz;
const struct ssp_device *ssp = drv_data->ssp; const struct ssp_device *ssp = drv_data->ssp;
rate = min_t(int, ssp_clk, rate); rate = min_t(int, ssp_clk, rate);
...@@ -894,7 +894,7 @@ static unsigned int pxa2xx_ssp_get_clk_div(struct driver_data *drv_data, ...@@ -894,7 +894,7 @@ static unsigned int pxa2xx_ssp_get_clk_div(struct driver_data *drv_data,
int rate) int rate)
{ {
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);
unsigned int clk_div; unsigned int clk_div;
switch (drv_data->ssp_type) { switch (drv_data->ssp_type) {
...@@ -908,7 +908,7 @@ static unsigned int pxa2xx_ssp_get_clk_div(struct driver_data *drv_data, ...@@ -908,7 +908,7 @@ static unsigned int pxa2xx_ssp_get_clk_div(struct driver_data *drv_data,
return clk_div << 8; return clk_div << 8;
} }
static bool pxa2xx_spi_can_dma(struct spi_controller *master, static bool pxa2xx_spi_can_dma(struct spi_controller *controller,
struct spi_device *spi, struct spi_device *spi,
struct spi_transfer *xfer) struct spi_transfer *xfer)
{ {
...@@ -919,12 +919,12 @@ static bool pxa2xx_spi_can_dma(struct spi_controller *master, ...@@ -919,12 +919,12 @@ static bool pxa2xx_spi_can_dma(struct spi_controller *master,
xfer->len >= chip->dma_burst_size; xfer->len >= chip->dma_burst_size;
} }
static int pxa2xx_spi_transfer_one(struct spi_controller *master, static int pxa2xx_spi_transfer_one(struct spi_controller *controller,
struct spi_device *spi, struct spi_device *spi,
struct spi_transfer *transfer) struct spi_transfer *transfer)
{ {
struct driver_data *drv_data = spi_controller_get_devdata(master); struct driver_data *drv_data = spi_controller_get_devdata(controller);
struct spi_message *message = master->cur_msg; struct spi_message *message = controller->cur_msg;
struct chip_data *chip = spi_get_ctldata(message->spi); struct chip_data *chip = spi_get_ctldata(message->spi);
u32 dma_thresh = chip->dma_threshold; u32 dma_thresh = chip->dma_threshold;
u32 dma_burst = chip->dma_burst_size; u32 dma_burst = chip->dma_burst_size;
...@@ -1006,9 +1006,9 @@ static int pxa2xx_spi_transfer_one(struct spi_controller *master, ...@@ -1006,9 +1006,9 @@ static int pxa2xx_spi_transfer_one(struct spi_controller *master,
"DMA burst size reduced to match bits_per_word\n"); "DMA burst size reduced to match bits_per_word\n");
} }
dma_mapped = master->can_dma && dma_mapped = controller->can_dma &&
master->can_dma(master, message->spi, transfer) && controller->can_dma(controller, message->spi, transfer) &&
master->cur_msg_mapped; controller->cur_msg_mapped;
if (dma_mapped) { if (dma_mapped) {
/* Ensure we have the correct interrupt handler */ /* Ensure we have the correct interrupt handler */
...@@ -1036,12 +1036,12 @@ static int pxa2xx_spi_transfer_one(struct spi_controller *master, ...@@ -1036,12 +1036,12 @@ static int pxa2xx_spi_transfer_one(struct spi_controller *master,
cr0 = pxa2xx_configure_sscr0(drv_data, clk_div, bits); cr0 = pxa2xx_configure_sscr0(drv_data, clk_div, bits);
if (!pxa25x_ssp_comp(drv_data)) if (!pxa25x_ssp_comp(drv_data))
dev_dbg(&message->spi->dev, "%u Hz actual, %s\n", dev_dbg(&message->spi->dev, "%u Hz actual, %s\n",
master->max_speed_hz controller->max_speed_hz
/ (1 + ((cr0 & SSCR0_SCR(0xfff)) >> 8)), / (1 + ((cr0 & SSCR0_SCR(0xfff)) >> 8)),
dma_mapped ? "DMA" : "PIO"); dma_mapped ? "DMA" : "PIO");
else else
dev_dbg(&message->spi->dev, "%u Hz actual, %s\n", dev_dbg(&message->spi->dev, "%u Hz actual, %s\n",
master->max_speed_hz / 2 controller->max_speed_hz / 2
/ (1 + ((cr0 & SSCR0_SCR(0x0ff)) >> 8)), / (1 + ((cr0 & SSCR0_SCR(0x0ff)) >> 8)),
dma_mapped ? "DMA" : "PIO"); dma_mapped ? "DMA" : "PIO");
...@@ -1092,7 +1092,7 @@ static int pxa2xx_spi_transfer_one(struct spi_controller *master, ...@@ -1092,7 +1092,7 @@ static int pxa2xx_spi_transfer_one(struct spi_controller *master,
} }
} }
if (spi_controller_is_slave(master)) { if (spi_controller_is_slave(controller)) {
while (drv_data->write(drv_data)) while (drv_data->write(drv_data))
; ;
if (drv_data->gpiod_ready) { if (drv_data->gpiod_ready) {
...@@ -1111,9 +1111,9 @@ static int pxa2xx_spi_transfer_one(struct spi_controller *master, ...@@ -1111,9 +1111,9 @@ static int pxa2xx_spi_transfer_one(struct spi_controller *master,
return 1; return 1;
} }
static int pxa2xx_spi_slave_abort(struct spi_master *master) static int pxa2xx_spi_slave_abort(struct spi_controller *controller)
{ {
struct driver_data *drv_data = spi_controller_get_devdata(master); struct driver_data *drv_data = spi_controller_get_devdata(controller);
/* Stop and reset SSP */ /* Stop and reset SSP */
write_SSSR_CS(drv_data, drv_data->clear_sr); write_SSSR_CS(drv_data, drv_data->clear_sr);
...@@ -1126,16 +1126,16 @@ static int pxa2xx_spi_slave_abort(struct spi_master *master) ...@@ -1126,16 +1126,16 @@ static int pxa2xx_spi_slave_abort(struct spi_master *master)
dev_dbg(&drv_data->pdev->dev, "transfer aborted\n"); dev_dbg(&drv_data->pdev->dev, "transfer aborted\n");
drv_data->master->cur_msg->status = -EINTR; drv_data->controller->cur_msg->status = -EINTR;
spi_finalize_current_transfer(drv_data->master); spi_finalize_current_transfer(drv_data->controller);
return 0; return 0;
} }
static void pxa2xx_spi_handle_err(struct spi_controller *master, static void pxa2xx_spi_handle_err(struct spi_controller *controller,
struct spi_message *msg) struct spi_message *msg)
{ {
struct driver_data *drv_data = spi_controller_get_devdata(master); struct driver_data *drv_data = spi_controller_get_devdata(controller);
/* Disable the SSP */ /* Disable the SSP */
pxa2xx_spi_write(drv_data, SSCR0, pxa2xx_spi_write(drv_data, SSCR0,
...@@ -1159,9 +1159,9 @@ static void pxa2xx_spi_handle_err(struct spi_controller *master, ...@@ -1159,9 +1159,9 @@ static void pxa2xx_spi_handle_err(struct spi_controller *master,
pxa2xx_spi_dma_stop(drv_data); pxa2xx_spi_dma_stop(drv_data);
} }
static int pxa2xx_spi_unprepare_transfer(struct spi_controller *master) static int pxa2xx_spi_unprepare_transfer(struct spi_controller *controller)
{ {
struct driver_data *drv_data = spi_controller_get_devdata(master); struct driver_data *drv_data = spi_controller_get_devdata(controller);
/* Disable the SSP now */ /* Disable the SSP now */
pxa2xx_spi_write(drv_data, SSCR0, pxa2xx_spi_write(drv_data, SSCR0,
...@@ -1260,7 +1260,7 @@ static int setup(struct spi_device *spi) ...@@ -1260,7 +1260,7 @@ static int setup(struct spi_device *spi)
break; break;
default: default:
tx_hi_thres = 0; tx_hi_thres = 0;
if (spi_controller_is_slave(drv_data->master)) { if (spi_controller_is_slave(drv_data->controller)) {
tx_thres = 1; tx_thres = 1;
rx_thres = 2; rx_thres = 2;
} else { } else {
...@@ -1287,7 +1287,7 @@ static int setup(struct spi_device *spi) ...@@ -1287,7 +1287,7 @@ static int setup(struct spi_device *spi)
chip->frm = spi->chip_select; chip->frm = spi->chip_select;
} }
chip->enable_dma = drv_data->master_info->enable_dma; chip->enable_dma = drv_data->controller_info->enable_dma;
chip->timeout = TIMOUT_DFLT; chip->timeout = TIMOUT_DFLT;
} }
...@@ -1310,7 +1310,7 @@ static int setup(struct spi_device *spi) ...@@ -1310,7 +1310,7 @@ static int setup(struct spi_device *spi)
if (chip_info->enable_loopback) if (chip_info->enable_loopback)
chip->cr1 = SSCR1_LBM; chip->cr1 = SSCR1_LBM;
} }
if (spi_controller_is_slave(drv_data->master)) { if (spi_controller_is_slave(drv_data->controller)) {
chip->cr1 |= SSCR1_SCFR; chip->cr1 |= SSCR1_SCFR;
chip->cr1 |= SSCR1_SCLKDIR; chip->cr1 |= SSCR1_SCLKDIR;
chip->cr1 |= SSCR1_SFRMDIR; chip->cr1 |= SSCR1_SFRMDIR;
...@@ -1497,10 +1497,10 @@ static bool pxa2xx_spi_idma_filter(struct dma_chan *chan, void *param) ...@@ -1497,10 +1497,10 @@ static bool pxa2xx_spi_idma_filter(struct dma_chan *chan, void *param)
#endif /* CONFIG_PCI */ #endif /* CONFIG_PCI */
static struct pxa2xx_spi_master * static struct pxa2xx_spi_controller *
pxa2xx_spi_init_pdata(struct platform_device *pdev) pxa2xx_spi_init_pdata(struct platform_device *pdev)
{ {
struct pxa2xx_spi_master *pdata; struct pxa2xx_spi_controller *pdata;
struct acpi_device *adev; struct acpi_device *adev;
struct ssp_device *ssp; struct ssp_device *ssp;
struct resource *res; struct resource *res;
...@@ -1568,10 +1568,10 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev) ...@@ -1568,10 +1568,10 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
return pdata; return pdata;
} }
static int pxa2xx_spi_fw_translate_cs(struct spi_controller *master, static int pxa2xx_spi_fw_translate_cs(struct spi_controller *controller,
unsigned int cs) unsigned int cs)
{ {
struct driver_data *drv_data = spi_controller_get_devdata(master); struct driver_data *drv_data = spi_controller_get_devdata(controller);
if (has_acpi_companion(&drv_data->pdev->dev)) { if (has_acpi_companion(&drv_data->pdev->dev)) {
switch (drv_data->ssp_type) { switch (drv_data->ssp_type) {
...@@ -1595,8 +1595,8 @@ static int pxa2xx_spi_fw_translate_cs(struct spi_controller *master, ...@@ -1595,8 +1595,8 @@ static int pxa2xx_spi_fw_translate_cs(struct spi_controller *master,
static int pxa2xx_spi_probe(struct platform_device *pdev) static int pxa2xx_spi_probe(struct platform_device *pdev)
{ {
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
struct pxa2xx_spi_master *platform_info; struct pxa2xx_spi_controller *platform_info;
struct spi_controller *master; struct spi_controller *controller;
struct driver_data *drv_data; struct driver_data *drv_data;
struct ssp_device *ssp; struct ssp_device *ssp;
const struct lpss_config *config; const struct lpss_config *config;
...@@ -1622,37 +1622,37 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) ...@@ -1622,37 +1622,37 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
} }
if (platform_info->is_slave) if (platform_info->is_slave)
master = spi_alloc_slave(dev, sizeof(struct driver_data)); controller = spi_alloc_slave(dev, sizeof(struct driver_data));
else else
master = spi_alloc_master(dev, sizeof(struct driver_data)); controller = spi_alloc_master(dev, sizeof(struct driver_data));
if (!master) { if (!controller) {
dev_err(&pdev->dev, "cannot alloc spi_master\n"); dev_err(&pdev->dev, "cannot alloc spi_controller\n");
pxa_ssp_free(ssp); pxa_ssp_free(ssp);
return -ENOMEM; return -ENOMEM;
} }
drv_data = spi_controller_get_devdata(master); drv_data = spi_controller_get_devdata(controller);
drv_data->master = master; drv_data->controller = controller;
drv_data->master_info = platform_info; drv_data->controller_info = platform_info;
drv_data->pdev = pdev; drv_data->pdev = pdev;
drv_data->ssp = ssp; drv_data->ssp = ssp;
master->dev.of_node = pdev->dev.of_node; controller->dev.of_node = pdev->dev.of_node;
/* the spi->mode bits understood by this driver: */ /* the spi->mode bits understood by this driver: */
master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LOOP; controller->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LOOP;
master->bus_num = ssp->port_id; controller->bus_num = ssp->port_id;
master->dma_alignment = DMA_ALIGNMENT; controller->dma_alignment = DMA_ALIGNMENT;
master->cleanup = cleanup; controller->cleanup = cleanup;
master->setup = setup; controller->setup = setup;
master->set_cs = pxa2xx_spi_set_cs; controller->set_cs = pxa2xx_spi_set_cs;
master->transfer_one = pxa2xx_spi_transfer_one; controller->transfer_one = pxa2xx_spi_transfer_one;
master->slave_abort = pxa2xx_spi_slave_abort; controller->slave_abort = pxa2xx_spi_slave_abort;
master->handle_err = pxa2xx_spi_handle_err; controller->handle_err = pxa2xx_spi_handle_err;
master->unprepare_transfer_hardware = pxa2xx_spi_unprepare_transfer; controller->unprepare_transfer_hardware = pxa2xx_spi_unprepare_transfer;
master->fw_translate_cs = pxa2xx_spi_fw_translate_cs; controller->fw_translate_cs = pxa2xx_spi_fw_translate_cs;
master->auto_runtime_pm = true; controller->auto_runtime_pm = true;
master->flags = SPI_CONTROLLER_MUST_RX | SPI_CONTROLLER_MUST_TX; controller->flags = SPI_CONTROLLER_MUST_RX | SPI_CONTROLLER_MUST_TX;
drv_data->ssp_type = ssp->type; drv_data->ssp_type = ssp->type;
...@@ -1661,10 +1661,10 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) ...@@ -1661,10 +1661,10 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
if (pxa25x_ssp_comp(drv_data)) { if (pxa25x_ssp_comp(drv_data)) {
switch (drv_data->ssp_type) { switch (drv_data->ssp_type) {
case QUARK_X1000_SSP: case QUARK_X1000_SSP:
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32); controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32);
break; break;
default: default:
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 16); controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 16);
break; break;
} }
...@@ -1673,7 +1673,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) ...@@ -1673,7 +1673,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
drv_data->clear_sr = SSSR_ROR; drv_data->clear_sr = SSSR_ROR;
drv_data->mask_sr = SSSR_RFS | SSSR_TFS | SSSR_ROR; drv_data->mask_sr = SSSR_RFS | SSSR_TFS | SSSR_ROR;
} else { } else {
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32); controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32);
drv_data->int_cr1 = SSCR1_TIE | SSCR1_RIE | SSCR1_TINTE; drv_data->int_cr1 = SSCR1_TIE | SSCR1_RIE | SSCR1_TINTE;
drv_data->dma_cr1 = DEFAULT_DMA_CR1; drv_data->dma_cr1 = DEFAULT_DMA_CR1;
drv_data->clear_sr = SSSR_ROR | SSSR_TINT; drv_data->clear_sr = SSSR_ROR | SSSR_TINT;
...@@ -1685,7 +1685,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) ...@@ -1685,7 +1685,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
drv_data); drv_data);
if (status < 0) { if (status < 0) {
dev_err(&pdev->dev, "cannot get IRQ %d\n", ssp->irq); dev_err(&pdev->dev, "cannot get IRQ %d\n", ssp->irq);
goto out_error_master_alloc; goto out_error_controller_alloc;
} }
/* Setup DMA if requested */ /* Setup DMA if requested */
...@@ -1695,7 +1695,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) ...@@ -1695,7 +1695,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
dev_dbg(dev, "no DMA channels available, using PIO\n"); dev_dbg(dev, "no DMA channels available, using PIO\n");
platform_info->enable_dma = false; platform_info->enable_dma = false;
} else { } else {
master->can_dma = pxa2xx_spi_can_dma; controller->can_dma = pxa2xx_spi_can_dma;
} }
} }
...@@ -1704,7 +1704,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) ...@@ -1704,7 +1704,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
if (status) if (status)
goto out_error_dma_irq_alloc; goto out_error_dma_irq_alloc;
master->max_speed_hz = clk_get_rate(ssp->clk); controller->max_speed_hz = clk_get_rate(ssp->clk);
/* Load default SSP configuration */ /* Load default SSP configuration */
pxa2xx_spi_write(drv_data, SSCR0, 0); pxa2xx_spi_write(drv_data, SSCR0, 0);
...@@ -1727,7 +1727,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) ...@@ -1727,7 +1727,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
break; break;
default: default:
if (spi_controller_is_slave(master)) { if (spi_controller_is_slave(controller)) {
tmp = SSCR1_SCFR | tmp = SSCR1_SCFR |
SSCR1_SCLKDIR | SSCR1_SCLKDIR |
SSCR1_SFRMDIR | SSCR1_SFRMDIR |
...@@ -1740,7 +1740,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) ...@@ -1740,7 +1740,7 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
} }
pxa2xx_spi_write(drv_data, SSCR1, tmp); pxa2xx_spi_write(drv_data, SSCR1, tmp);
tmp = SSCR0_Motorola | SSCR0_DataSize(8); tmp = SSCR0_Motorola | SSCR0_DataSize(8);
if (!spi_controller_is_slave(master)) if (!spi_controller_is_slave(controller))
tmp |= SSCR0_SCR(2); tmp |= SSCR0_SCR(2);
pxa2xx_spi_write(drv_data, SSCR0, tmp); pxa2xx_spi_write(drv_data, SSCR0, tmp);
break; break;
...@@ -1765,24 +1765,24 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) ...@@ -1765,24 +1765,24 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
platform_info->num_chipselect = config->cs_num; platform_info->num_chipselect = config->cs_num;
} }
} }
master->num_chipselect = platform_info->num_chipselect; controller->num_chipselect = platform_info->num_chipselect;
count = gpiod_count(&pdev->dev, "cs"); count = gpiod_count(&pdev->dev, "cs");
if (count > 0) { if (count > 0) {
int i; int i;
master->num_chipselect = max_t(int, count, controller->num_chipselect = max_t(int, count,
master->num_chipselect); controller->num_chipselect);
drv_data->cs_gpiods = devm_kcalloc(&pdev->dev, drv_data->cs_gpiods = devm_kcalloc(&pdev->dev,
master->num_chipselect, sizeof(struct gpio_desc *), controller->num_chipselect, sizeof(struct gpio_desc *),
GFP_KERNEL); GFP_KERNEL);
if (!drv_data->cs_gpiods) { if (!drv_data->cs_gpiods) {
status = -ENOMEM; status = -ENOMEM;
goto out_error_clock_enabled; goto out_error_clock_enabled;
} }
for (i = 0; i < master->num_chipselect; i++) { for (i = 0; i < controller->num_chipselect; i++) {
struct gpio_desc *gpiod; struct gpio_desc *gpiod;
gpiod = devm_gpiod_get_index(dev, "cs", i, GPIOD_ASIS); gpiod = devm_gpiod_get_index(dev, "cs", i, GPIOD_ASIS);
...@@ -1815,9 +1815,9 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) ...@@ -1815,9 +1815,9 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
/* Register with the SPI framework */ /* Register with the SPI framework */
platform_set_drvdata(pdev, drv_data); platform_set_drvdata(pdev, drv_data);
status = devm_spi_register_controller(&pdev->dev, master); status = devm_spi_register_controller(&pdev->dev, controller);
if (status != 0) { if (status != 0) {
dev_err(&pdev->dev, "problem registering spi master\n"); dev_err(&pdev->dev, "problem registering spi controller\n");
goto out_error_clock_enabled; goto out_error_clock_enabled;
} }
...@@ -1832,8 +1832,8 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) ...@@ -1832,8 +1832,8 @@ static int pxa2xx_spi_probe(struct platform_device *pdev)
pxa2xx_spi_dma_release(drv_data); pxa2xx_spi_dma_release(drv_data);
free_irq(ssp->irq, drv_data); free_irq(ssp->irq, drv_data);
out_error_master_alloc: out_error_controller_alloc:
spi_controller_put(master); spi_controller_put(controller);
pxa_ssp_free(ssp); pxa_ssp_free(ssp);
return status; return status;
} }
...@@ -1854,7 +1854,7 @@ static int pxa2xx_spi_remove(struct platform_device *pdev) ...@@ -1854,7 +1854,7 @@ static int pxa2xx_spi_remove(struct platform_device *pdev)
clk_disable_unprepare(ssp->clk); clk_disable_unprepare(ssp->clk);
/* Release DMA */ /* Release DMA */
if (drv_data->master_info->enable_dma) if (drv_data->controller_info->enable_dma)
pxa2xx_spi_dma_release(drv_data); pxa2xx_spi_dma_release(drv_data);
pm_runtime_put_noidle(&pdev->dev); pm_runtime_put_noidle(&pdev->dev);
...@@ -1876,7 +1876,7 @@ static int pxa2xx_spi_suspend(struct device *dev) ...@@ -1876,7 +1876,7 @@ static int pxa2xx_spi_suspend(struct device *dev)
struct ssp_device *ssp = drv_data->ssp; struct ssp_device *ssp = drv_data->ssp;
int status; int status;
status = spi_controller_suspend(drv_data->master); status = spi_controller_suspend(drv_data->controller);
if (status != 0) if (status != 0)
return status; return status;
pxa2xx_spi_write(drv_data, SSCR0, 0); pxa2xx_spi_write(drv_data, SSCR0, 0);
...@@ -1901,7 +1901,7 @@ static int pxa2xx_spi_resume(struct device *dev) ...@@ -1901,7 +1901,7 @@ static int pxa2xx_spi_resume(struct device *dev)
} }
/* Start the queue running */ /* Start the queue running */
return spi_controller_resume(drv_data->master); return spi_controller_resume(drv_data->controller);
} }
#endif #endif
......
...@@ -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