7575#define SUN4I_FIFO_STA_TF_CNT_BITS 16
7676
7777struct sun4i_spi {
78- struct spi_master * master ;
78+ struct spi_controller * host ;
7979 void __iomem * base_addr ;
8080 struct clk * hclk ;
8181 struct clk * mclk ;
@@ -161,7 +161,7 @@ static inline void sun4i_spi_fill_fifo(struct sun4i_spi *sspi, int len)
161161
162162static void sun4i_spi_set_cs (struct spi_device * spi , bool enable )
163163{
164- struct sun4i_spi * sspi = spi_master_get_devdata (spi -> master );
164+ struct sun4i_spi * sspi = spi_controller_get_devdata (spi -> controller );
165165 u32 reg ;
166166
167167 reg = sun4i_spi_read (sspi , SUN4I_CTL_REG );
@@ -201,11 +201,11 @@ static size_t sun4i_spi_max_transfer_size(struct spi_device *spi)
201201 return SUN4I_MAX_XFER_SIZE - 1 ;
202202}
203203
204- static int sun4i_spi_transfer_one (struct spi_master * master ,
204+ static int sun4i_spi_transfer_one (struct spi_controller * host ,
205205 struct spi_device * spi ,
206206 struct spi_transfer * tfr )
207207{
208- struct sun4i_spi * sspi = spi_master_get_devdata ( master );
208+ struct sun4i_spi * sspi = spi_controller_get_devdata ( host );
209209 unsigned int mclk_rate , div , timeout ;
210210 unsigned int start , end , tx_time ;
211211 unsigned int tx_len = 0 ;
@@ -334,7 +334,7 @@ static int sun4i_spi_transfer_one(struct spi_master *master,
334334 msecs_to_jiffies (tx_time ));
335335 end = jiffies ;
336336 if (!timeout ) {
337- dev_warn (& master -> dev ,
337+ dev_warn (& host -> dev ,
338338 "%s: timeout transferring %u bytes@%iHz for %i(%i)ms" ,
339339 dev_name (& spi -> dev ), tfr -> len , tfr -> speed_hz ,
340340 jiffies_to_msecs (end - start ), tx_time );
@@ -389,8 +389,8 @@ static irqreturn_t sun4i_spi_handler(int irq, void *dev_id)
389389
390390static int sun4i_spi_runtime_resume (struct device * dev )
391391{
392- struct spi_master * master = dev_get_drvdata (dev );
393- struct sun4i_spi * sspi = spi_master_get_devdata ( master );
392+ struct spi_controller * host = dev_get_drvdata (dev );
393+ struct sun4i_spi * sspi = spi_controller_get_devdata ( host );
394394 int ret ;
395395
396396 ret = clk_prepare_enable (sspi -> hclk );
@@ -418,8 +418,8 @@ static int sun4i_spi_runtime_resume(struct device *dev)
418418
419419static int sun4i_spi_runtime_suspend (struct device * dev )
420420{
421- struct spi_master * master = dev_get_drvdata (dev );
422- struct sun4i_spi * sspi = spi_master_get_devdata ( master );
421+ struct spi_controller * host = dev_get_drvdata (dev );
422+ struct sun4i_spi * sspi = spi_controller_get_devdata ( host );
423423
424424 clk_disable_unprepare (sspi -> mclk );
425425 clk_disable_unprepare (sspi -> hclk );
@@ -429,62 +429,62 @@ static int sun4i_spi_runtime_suspend(struct device *dev)
429429
430430static int sun4i_spi_probe (struct platform_device * pdev )
431431{
432- struct spi_master * master ;
432+ struct spi_controller * host ;
433433 struct sun4i_spi * sspi ;
434434 int ret = 0 , irq ;
435435
436- master = spi_alloc_master (& pdev -> dev , sizeof (struct sun4i_spi ));
437- if (!master ) {
438- dev_err (& pdev -> dev , "Unable to allocate SPI Master \n" );
436+ host = spi_alloc_host (& pdev -> dev , sizeof (struct sun4i_spi ));
437+ if (!host ) {
438+ dev_err (& pdev -> dev , "Unable to allocate SPI Host \n" );
439439 return - ENOMEM ;
440440 }
441441
442- platform_set_drvdata (pdev , master );
443- sspi = spi_master_get_devdata ( master );
442+ platform_set_drvdata (pdev , host );
443+ sspi = spi_controller_get_devdata ( host );
444444
445445 sspi -> base_addr = devm_platform_ioremap_resource (pdev , 0 );
446446 if (IS_ERR (sspi -> base_addr )) {
447447 ret = PTR_ERR (sspi -> base_addr );
448- goto err_free_master ;
448+ goto err_free_host ;
449449 }
450450
451451 irq = platform_get_irq (pdev , 0 );
452452 if (irq < 0 ) {
453453 ret = - ENXIO ;
454- goto err_free_master ;
454+ goto err_free_host ;
455455 }
456456
457457 ret = devm_request_irq (& pdev -> dev , irq , sun4i_spi_handler ,
458458 0 , "sun4i-spi" , sspi );
459459 if (ret ) {
460460 dev_err (& pdev -> dev , "Cannot request IRQ\n" );
461- goto err_free_master ;
461+ goto err_free_host ;
462462 }
463463
464- sspi -> master = master ;
465- master -> max_speed_hz = 100 * 1000 * 1000 ;
466- master -> min_speed_hz = 3 * 1000 ;
467- master -> set_cs = sun4i_spi_set_cs ;
468- master -> transfer_one = sun4i_spi_transfer_one ;
469- master -> num_chipselect = 4 ;
470- master -> mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LSB_FIRST ;
471- master -> bits_per_word_mask = SPI_BPW_MASK (8 );
472- master -> dev .of_node = pdev -> dev .of_node ;
473- master -> auto_runtime_pm = true;
474- master -> max_transfer_size = sun4i_spi_max_transfer_size ;
464+ sspi -> host = host ;
465+ host -> max_speed_hz = 100 * 1000 * 1000 ;
466+ host -> min_speed_hz = 3 * 1000 ;
467+ host -> set_cs = sun4i_spi_set_cs ;
468+ host -> transfer_one = sun4i_spi_transfer_one ;
469+ host -> num_chipselect = 4 ;
470+ host -> mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LSB_FIRST ;
471+ host -> bits_per_word_mask = SPI_BPW_MASK (8 );
472+ host -> dev .of_node = pdev -> dev .of_node ;
473+ host -> auto_runtime_pm = true;
474+ host -> max_transfer_size = sun4i_spi_max_transfer_size ;
475475
476476 sspi -> hclk = devm_clk_get (& pdev -> dev , "ahb" );
477477 if (IS_ERR (sspi -> hclk )) {
478478 dev_err (& pdev -> dev , "Unable to acquire AHB clock\n" );
479479 ret = PTR_ERR (sspi -> hclk );
480- goto err_free_master ;
480+ goto err_free_host ;
481481 }
482482
483483 sspi -> mclk = devm_clk_get (& pdev -> dev , "mod" );
484484 if (IS_ERR (sspi -> mclk )) {
485485 dev_err (& pdev -> dev , "Unable to acquire module clock\n" );
486486 ret = PTR_ERR (sspi -> mclk );
487- goto err_free_master ;
487+ goto err_free_host ;
488488 }
489489
490490 init_completion (& sspi -> done );
@@ -496,16 +496,16 @@ static int sun4i_spi_probe(struct platform_device *pdev)
496496 ret = sun4i_spi_runtime_resume (& pdev -> dev );
497497 if (ret ) {
498498 dev_err (& pdev -> dev , "Couldn't resume the device\n" );
499- goto err_free_master ;
499+ goto err_free_host ;
500500 }
501501
502502 pm_runtime_set_active (& pdev -> dev );
503503 pm_runtime_enable (& pdev -> dev );
504504 pm_runtime_idle (& pdev -> dev );
505505
506- ret = devm_spi_register_master (& pdev -> dev , master );
506+ ret = devm_spi_register_controller (& pdev -> dev , host );
507507 if (ret ) {
508- dev_err (& pdev -> dev , "cannot register SPI master \n" );
508+ dev_err (& pdev -> dev , "cannot register SPI host \n" );
509509 goto err_pm_disable ;
510510 }
511511
@@ -514,8 +514,8 @@ static int sun4i_spi_probe(struct platform_device *pdev)
514514err_pm_disable :
515515 pm_runtime_disable (& pdev -> dev );
516516 sun4i_spi_runtime_suspend (& pdev -> dev );
517- err_free_master :
518- spi_master_put ( master );
517+ err_free_host :
518+ spi_controller_put ( host );
519519 return ret ;
520520}
521521
0 commit comments