Skip to content

Commit f6997e9

Browse files
Srinivas Goudbroonie
authored andcommitted
spi: spi-cadence: Switch to spi_controller structure
Replace spi_master structure with spi_controller structure. spi_controller structure provides interface support for both SPI master and slave controller. Signed-off-by: Srinivas Goud <srinivas.goud@amd.com> Link: https://lore.kernel.org/r/1681825625-10265-2-git-send-email-srinivas.goud@amd.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent ed5a25a commit f6997e9

1 file changed

Lines changed: 58 additions & 58 deletions

File tree

drivers/spi/spi-cadence.c

Lines changed: 58 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ static void cdns_spi_init_hw(struct cdns_spi *xspi)
173173
*/
174174
static void cdns_spi_chipselect(struct spi_device *spi, bool is_high)
175175
{
176-
struct cdns_spi *xspi = spi_master_get_devdata(spi->master);
176+
struct cdns_spi *xspi = spi_controller_get_devdata(spi->controller);
177177
u32 ctrl_reg;
178178

179179
ctrl_reg = cdns_spi_read(xspi, CDNS_SPI_CR);
@@ -204,7 +204,7 @@ static void cdns_spi_chipselect(struct spi_device *spi, bool is_high)
204204
*/
205205
static void cdns_spi_config_clock_mode(struct spi_device *spi)
206206
{
207-
struct cdns_spi *xspi = spi_master_get_devdata(spi->master);
207+
struct cdns_spi *xspi = spi_controller_get_devdata(spi->controller);
208208
u32 ctrl_reg, new_ctrl_reg;
209209

210210
new_ctrl_reg = cdns_spi_read(xspi, CDNS_SPI_CR);
@@ -247,7 +247,7 @@ static void cdns_spi_config_clock_mode(struct spi_device *spi)
247247
static void cdns_spi_config_clock_freq(struct spi_device *spi,
248248
struct spi_transfer *transfer)
249249
{
250-
struct cdns_spi *xspi = spi_master_get_devdata(spi->master);
250+
struct cdns_spi *xspi = spi_controller_get_devdata(spi->controller);
251251
u32 ctrl_reg, baud_rate_val;
252252
unsigned long frequency;
253253

@@ -285,7 +285,7 @@ static void cdns_spi_config_clock_freq(struct spi_device *spi,
285285
static int cdns_spi_setup_transfer(struct spi_device *spi,
286286
struct spi_transfer *transfer)
287287
{
288-
struct cdns_spi *xspi = spi_master_get_devdata(spi->master);
288+
struct cdns_spi *xspi = spi_controller_get_devdata(spi->controller);
289289

290290
cdns_spi_config_clock_freq(spi, transfer);
291291

@@ -340,8 +340,8 @@ static void cdns_spi_fill_tx_fifo(struct cdns_spi *xspi)
340340
*/
341341
static irqreturn_t cdns_spi_irq(int irq, void *dev_id)
342342
{
343-
struct spi_master *master = dev_id;
344-
struct cdns_spi *xspi = spi_master_get_devdata(master);
343+
struct spi_controller *ctlr = dev_id;
344+
struct cdns_spi *xspi = spi_controller_get_devdata(ctlr);
345345
irqreturn_t status;
346346
u32 intr_status;
347347

@@ -355,7 +355,7 @@ static irqreturn_t cdns_spi_irq(int irq, void *dev_id)
355355
* transferred is non-zero
356356
*/
357357
cdns_spi_write(xspi, CDNS_SPI_IDR, CDNS_SPI_IXR_DEFAULT);
358-
spi_finalize_current_transfer(master);
358+
spi_finalize_current_transfer(ctlr);
359359
status = IRQ_HANDLED;
360360
} else if (intr_status & CDNS_SPI_IXR_TXOW) {
361361
unsigned long trans_cnt;
@@ -381,15 +381,15 @@ static irqreturn_t cdns_spi_irq(int irq, void *dev_id)
381381
/* Transfer is completed */
382382
cdns_spi_write(xspi, CDNS_SPI_IDR,
383383
CDNS_SPI_IXR_DEFAULT);
384-
spi_finalize_current_transfer(master);
384+
spi_finalize_current_transfer(ctlr);
385385
}
386386
status = IRQ_HANDLED;
387387
}
388388

389389
return status;
390390
}
391391

392-
static int cdns_prepare_message(struct spi_master *master,
392+
static int cdns_prepare_message(struct spi_controller *ctlr,
393393
struct spi_message *msg)
394394
{
395395
cdns_spi_config_clock_mode(msg->spi);
@@ -398,7 +398,7 @@ static int cdns_prepare_message(struct spi_master *master,
398398

399399
/**
400400
* cdns_transfer_one - Initiates the SPI transfer
401-
* @master: Pointer to spi_master structure
401+
* @ctlr: Pointer to spi_controller structure
402402
* @spi: Pointer to the spi_device structure
403403
* @transfer: Pointer to the spi_transfer structure which provides
404404
* information about next transfer parameters
@@ -408,11 +408,11 @@ static int cdns_prepare_message(struct spi_master *master,
408408
*
409409
* Return: Number of bytes transferred in the last transfer
410410
*/
411-
static int cdns_transfer_one(struct spi_master *master,
411+
static int cdns_transfer_one(struct spi_controller *ctlr,
412412
struct spi_device *spi,
413413
struct spi_transfer *transfer)
414414
{
415-
struct cdns_spi *xspi = spi_master_get_devdata(master);
415+
struct cdns_spi *xspi = spi_controller_get_devdata(ctlr);
416416

417417
xspi->txbuf = transfer->tx_buf;
418418
xspi->rxbuf = transfer->rx_buf;
@@ -429,16 +429,16 @@ static int cdns_transfer_one(struct spi_master *master,
429429

430430
/**
431431
* cdns_prepare_transfer_hardware - Prepares hardware for transfer.
432-
* @master: Pointer to the spi_master structure which provides
432+
* @ctlr: Pointer to the spi_controller structure which provides
433433
* information about the controller.
434434
*
435435
* This function enables SPI master controller.
436436
*
437437
* Return: 0 always
438438
*/
439-
static int cdns_prepare_transfer_hardware(struct spi_master *master)
439+
static int cdns_prepare_transfer_hardware(struct spi_controller *ctlr)
440440
{
441-
struct cdns_spi *xspi = spi_master_get_devdata(master);
441+
struct cdns_spi *xspi = spi_controller_get_devdata(ctlr);
442442

443443
cdns_spi_write(xspi, CDNS_SPI_ER, CDNS_SPI_ER_ENABLE);
444444

@@ -447,16 +447,16 @@ static int cdns_prepare_transfer_hardware(struct spi_master *master)
447447

448448
/**
449449
* cdns_unprepare_transfer_hardware - Relaxes hardware after transfer
450-
* @master: Pointer to the spi_master structure which provides
450+
* @ctlr: Pointer to the spi_controller structure which provides
451451
* information about the controller.
452452
*
453453
* This function disables the SPI master controller when no slave selected.
454454
*
455455
* Return: 0 always
456456
*/
457-
static int cdns_unprepare_transfer_hardware(struct spi_master *master)
457+
static int cdns_unprepare_transfer_hardware(struct spi_controller *ctlr)
458458
{
459-
struct cdns_spi *xspi = spi_master_get_devdata(master);
459+
struct cdns_spi *xspi = spi_controller_get_devdata(ctlr);
460460
u32 ctrl_reg;
461461

462462
/* Disable the SPI if slave is deselected */
@@ -497,42 +497,42 @@ static void cdns_spi_detect_fifo_depth(struct cdns_spi *xspi)
497497
static int cdns_spi_probe(struct platform_device *pdev)
498498
{
499499
int ret = 0, irq;
500-
struct spi_master *master;
500+
struct spi_controller *ctlr;
501501
struct cdns_spi *xspi;
502502
u32 num_cs;
503503

504-
master = spi_alloc_master(&pdev->dev, sizeof(*xspi));
505-
if (!master)
504+
ctlr = spi_alloc_master(&pdev->dev, sizeof(*xspi));
505+
if (!ctlr)
506506
return -ENOMEM;
507507

508-
xspi = spi_master_get_devdata(master);
509-
master->dev.of_node = pdev->dev.of_node;
510-
platform_set_drvdata(pdev, master);
508+
xspi = spi_controller_get_devdata(ctlr);
509+
ctlr->dev.of_node = pdev->dev.of_node;
510+
platform_set_drvdata(pdev, ctlr);
511511

512512
xspi->regs = devm_platform_ioremap_resource(pdev, 0);
513513
if (IS_ERR(xspi->regs)) {
514514
ret = PTR_ERR(xspi->regs);
515-
goto remove_master;
515+
goto remove_ctlr;
516516
}
517517

518518
xspi->pclk = devm_clk_get(&pdev->dev, "pclk");
519519
if (IS_ERR(xspi->pclk)) {
520520
dev_err(&pdev->dev, "pclk clock not found.\n");
521521
ret = PTR_ERR(xspi->pclk);
522-
goto remove_master;
522+
goto remove_ctlr;
523523
}
524524

525525
xspi->ref_clk = devm_clk_get(&pdev->dev, "ref_clk");
526526
if (IS_ERR(xspi->ref_clk)) {
527527
dev_err(&pdev->dev, "ref_clk clock not found.\n");
528528
ret = PTR_ERR(xspi->ref_clk);
529-
goto remove_master;
529+
goto remove_ctlr;
530530
}
531531

532532
ret = clk_prepare_enable(xspi->pclk);
533533
if (ret) {
534534
dev_err(&pdev->dev, "Unable to enable APB clock.\n");
535-
goto remove_master;
535+
goto remove_ctlr;
536536
}
537537

538538
ret = clk_prepare_enable(xspi->ref_clk);
@@ -549,9 +549,9 @@ static int cdns_spi_probe(struct platform_device *pdev)
549549

550550
ret = of_property_read_u32(pdev->dev.of_node, "num-cs", &num_cs);
551551
if (ret < 0)
552-
master->num_chipselect = CDNS_SPI_DEFAULT_NUM_CS;
552+
ctlr->num_chipselect = CDNS_SPI_DEFAULT_NUM_CS;
553553
else
554-
master->num_chipselect = num_cs;
554+
ctlr->num_chipselect = num_cs;
555555

556556
ret = of_property_read_u32(pdev->dev.of_node, "is-decoded-cs",
557557
&xspi->is_decoded_cs);
@@ -570,35 +570,35 @@ static int cdns_spi_probe(struct platform_device *pdev)
570570
}
571571

572572
ret = devm_request_irq(&pdev->dev, irq, cdns_spi_irq,
573-
0, pdev->name, master);
573+
0, pdev->name, ctlr);
574574
if (ret != 0) {
575575
ret = -ENXIO;
576576
dev_err(&pdev->dev, "request_irq failed\n");
577577
goto clk_dis_all;
578578
}
579579

580-
master->use_gpio_descriptors = true;
581-
master->prepare_transfer_hardware = cdns_prepare_transfer_hardware;
582-
master->prepare_message = cdns_prepare_message;
583-
master->transfer_one = cdns_transfer_one;
584-
master->unprepare_transfer_hardware = cdns_unprepare_transfer_hardware;
585-
master->set_cs = cdns_spi_chipselect;
586-
master->auto_runtime_pm = true;
587-
master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
580+
ctlr->use_gpio_descriptors = true;
581+
ctlr->prepare_transfer_hardware = cdns_prepare_transfer_hardware;
582+
ctlr->prepare_message = cdns_prepare_message;
583+
ctlr->transfer_one = cdns_transfer_one;
584+
ctlr->unprepare_transfer_hardware = cdns_unprepare_transfer_hardware;
585+
ctlr->set_cs = cdns_spi_chipselect;
586+
ctlr->auto_runtime_pm = true;
587+
ctlr->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
588588

589589
xspi->clk_rate = clk_get_rate(xspi->ref_clk);
590590
/* Set to default valid value */
591-
master->max_speed_hz = xspi->clk_rate / 4;
592-
xspi->speed_hz = master->max_speed_hz;
591+
ctlr->max_speed_hz = xspi->clk_rate / 4;
592+
xspi->speed_hz = ctlr->max_speed_hz;
593593

594-
master->bits_per_word_mask = SPI_BPW_MASK(8);
594+
ctlr->bits_per_word_mask = SPI_BPW_MASK(8);
595595

596596
pm_runtime_mark_last_busy(&pdev->dev);
597597
pm_runtime_put_autosuspend(&pdev->dev);
598598

599-
ret = spi_register_master(master);
599+
ret = spi_register_controller(ctlr);
600600
if (ret) {
601-
dev_err(&pdev->dev, "spi_register_master failed\n");
601+
dev_err(&pdev->dev, "spi_register_controller failed\n");
602602
goto clk_dis_all;
603603
}
604604

@@ -610,8 +610,8 @@ static int cdns_spi_probe(struct platform_device *pdev)
610610
clk_disable_unprepare(xspi->ref_clk);
611611
clk_dis_apb:
612612
clk_disable_unprepare(xspi->pclk);
613-
remove_master:
614-
spi_master_put(master);
613+
remove_ctlr:
614+
spi_controller_put(ctlr);
615615
return ret;
616616
}
617617

@@ -627,8 +627,8 @@ static int cdns_spi_probe(struct platform_device *pdev)
627627
*/
628628
static void cdns_spi_remove(struct platform_device *pdev)
629629
{
630-
struct spi_master *master = platform_get_drvdata(pdev);
631-
struct cdns_spi *xspi = spi_master_get_devdata(master);
630+
struct spi_controller *ctlr = platform_get_drvdata(pdev);
631+
struct cdns_spi *xspi = spi_controller_get_devdata(ctlr);
632632

633633
cdns_spi_write(xspi, CDNS_SPI_ER, CDNS_SPI_ER_DISABLE);
634634

@@ -637,7 +637,7 @@ static void cdns_spi_remove(struct platform_device *pdev)
637637
pm_runtime_set_suspended(&pdev->dev);
638638
pm_runtime_disable(&pdev->dev);
639639

640-
spi_unregister_master(master);
640+
spi_unregister_controller(ctlr);
641641
}
642642

643643
/**
@@ -651,9 +651,9 @@ static void cdns_spi_remove(struct platform_device *pdev)
651651
*/
652652
static int __maybe_unused cdns_spi_suspend(struct device *dev)
653653
{
654-
struct spi_master *master = dev_get_drvdata(dev);
654+
struct spi_controller *ctlr = dev_get_drvdata(dev);
655655

656-
return spi_master_suspend(master);
656+
return spi_controller_suspend(ctlr);
657657
}
658658

659659
/**
@@ -666,11 +666,11 @@ static int __maybe_unused cdns_spi_suspend(struct device *dev)
666666
*/
667667
static int __maybe_unused cdns_spi_resume(struct device *dev)
668668
{
669-
struct spi_master *master = dev_get_drvdata(dev);
670-
struct cdns_spi *xspi = spi_master_get_devdata(master);
669+
struct spi_controller *ctlr = dev_get_drvdata(dev);
670+
struct cdns_spi *xspi = spi_controller_get_devdata(ctlr);
671671

672672
cdns_spi_init_hw(xspi);
673-
return spi_master_resume(master);
673+
return spi_controller_resume(ctlr);
674674
}
675675

676676
/**
@@ -683,8 +683,8 @@ static int __maybe_unused cdns_spi_resume(struct device *dev)
683683
*/
684684
static int __maybe_unused cdns_spi_runtime_resume(struct device *dev)
685685
{
686-
struct spi_master *master = dev_get_drvdata(dev);
687-
struct cdns_spi *xspi = spi_master_get_devdata(master);
686+
struct spi_controller *ctlr = dev_get_drvdata(dev);
687+
struct cdns_spi *xspi = spi_controller_get_devdata(ctlr);
688688
int ret;
689689

690690
ret = clk_prepare_enable(xspi->pclk);
@@ -712,8 +712,8 @@ static int __maybe_unused cdns_spi_runtime_resume(struct device *dev)
712712
*/
713713
static int __maybe_unused cdns_spi_runtime_suspend(struct device *dev)
714714
{
715-
struct spi_master *master = dev_get_drvdata(dev);
716-
struct cdns_spi *xspi = spi_master_get_devdata(master);
715+
struct spi_controller *ctlr = dev_get_drvdata(dev);
716+
struct cdns_spi *xspi = spi_controller_get_devdata(ctlr);
717717

718718
clk_disable_unprepare(xspi->ref_clk);
719719
clk_disable_unprepare(xspi->pclk);

0 commit comments

Comments
 (0)