Lines Matching +full:frame +full:- +full:master
2 * SuperH MSIOF SPI Master Interface
6 * Copyright (C) 2014-2017 Glider bvba
18 #include <linux/dma-mapping.h>
46 struct spi_master *master; member
88 #define MDR1_TRMD 0x80000000 /* Transfer Mode (1 = Master mode) */
92 #define MDR1_SYNCAC_SHIFT 25 /* Sync Polarity (1 = Active-low) */
95 #define MDR1_SYNCDL_SHIFT 16 /* Frame Sync Signal Timing Delay */
96 #define MDR1_FLD_MASK 0x0000000c /* Frame Sync Signal Interval (0-3) */
105 #define MDR2_BITLEN1(i) (((i) - 1) << 24) /* Data Size (8-32 bits) */
106 #define MDR2_WDLEN1(i) (((i) - 1) << 16) /* Word Count (1-64/256 (SH, A1))) */
110 #define SCR_BRPS_MASK 0x1f00 /* Prescaler Setting (1-32) */
111 #define SCR_BRPS(i) (((i) - 1) << 8)
132 #define CTR_TXDIZ_HIZ 0x00800000 /* High-impedance */
134 #define CTR_TFSE 0x00004000 /* Transmit Frame Sync Signal Output Enable */
167 #define STR_TEOF 0x00800000 /* Frame Transmission End */
168 #define STR_TFSERR 0x00200000 /* Transmit Frame Synchronization Error */
173 #define STR_REOF 0x00000080 /* Frame Reception End */
174 #define STR_RFSERR 0x00000020 /* Receive Frame Synchronization Error */
182 #define IER_TEOFE 0x00800000 /* Frame Transmission End Enable */
183 #define IER_TFSERRE 0x00200000 /* Transmit Frame Sync Error Enable */
189 #define IER_REOFE 0x00000080 /* Frame Reception End Enable */
190 #define IER_RFSERRE 0x00000020 /* Receive Frame Sync Error Enable */
200 return ioread16(p->mapbase + reg_offs); in sh_msiof_read()
202 return ioread32(p->mapbase + reg_offs); in sh_msiof_read()
212 iowrite16(value, p->mapbase + reg_offs); in sh_msiof_write()
215 iowrite32(value, p->mapbase + reg_offs); in sh_msiof_write()
232 for (k = 100; k > 0; k--) { in sh_msiof_modify_ctr_wait()
239 return k > 0 ? 0 : -ETIMEDOUT; in sh_msiof_modify_ctr_wait()
248 complete(&p->done); in sh_msiof_spi_irq()
263 unsigned int div_pow = p->min_div_pow; in sh_msiof_spi_set_clk_regs()
286 dev_err(&p->pdev->dev, in sh_msiof_spi_set_clk_regs()
294 if (!(p->master->flags & SPI_MASTER_MUST_TX)) in sh_msiof_spi_set_clk_regs()
301 * DTDL/SYNCDL bit : p->info->dtdl or p->info->syncdl in sh_msiof_get_delay_bit()
319 if (!p->info) in sh_msiof_spi_get_dtdl_and_syncdl()
323 if (p->info->dtdl > 200 || p->info->syncdl > 300) { in sh_msiof_spi_get_dtdl_and_syncdl()
324 dev_warn(&p->pdev->dev, "DTDL or SYNCDL is too large\n"); in sh_msiof_spi_get_dtdl_and_syncdl()
329 if ((p->info->dtdl + p->info->syncdl) % 100) { in sh_msiof_spi_get_dtdl_and_syncdl()
330 dev_warn(&p->pdev->dev, "the sum of DTDL/SYNCDL is not good\n"); in sh_msiof_spi_get_dtdl_and_syncdl()
334 val = sh_msiof_get_delay_bit(p->info->dtdl) << MDR1_DTDL_SHIFT; in sh_msiof_spi_get_dtdl_and_syncdl()
335 val |= sh_msiof_get_delay_bit(p->info->syncdl) << MDR1_SYNCDL_SHIFT; in sh_msiof_spi_get_dtdl_and_syncdl()
358 if (spi_controller_is_slave(p->master)) { in sh_msiof_spi_set_pin_regs()
365 if (p->master->flags & SPI_MASTER_MUST_TX) { in sh_msiof_spi_set_pin_regs()
389 if (tx_buf || (p->master->flags & SPI_MASTER_MUST_TX)) in sh_msiof_spi_set_mode_regs()
546 struct device_node *np = spi->master->dev.of_node; in sh_msiof_spi_setup()
547 struct sh_msiof_spi_priv *p = spi_master_get_devdata(spi->master); in sh_msiof_spi_setup()
552 * Use spi->controller_data for CS (same strategy as spi_gpio), in sh_msiof_spi_setup()
555 spi->cs_gpio = (uintptr_t)spi->controller_data; in sh_msiof_spi_setup()
558 if (gpio_is_valid(spi->cs_gpio)) { in sh_msiof_spi_setup()
559 gpio_direction_output(spi->cs_gpio, !(spi->mode & SPI_CS_HIGH)); in sh_msiof_spi_setup()
563 if (spi_controller_is_slave(p->master)) in sh_msiof_spi_setup()
566 if (p->native_cs_inited && in sh_msiof_spi_setup()
567 (p->native_cs_high == !!(spi->mode & SPI_CS_HIGH))) in sh_msiof_spi_setup()
573 if (spi->mode & SPI_CS_HIGH) in sh_msiof_spi_setup()
577 pm_runtime_get_sync(&p->pdev->dev); in sh_msiof_spi_setup()
582 pm_runtime_put(&p->pdev->dev); in sh_msiof_spi_setup()
583 p->native_cs_high = spi->mode & SPI_CS_HIGH; in sh_msiof_spi_setup()
584 p->native_cs_inited = true; in sh_msiof_spi_setup()
588 static int sh_msiof_prepare_message(struct spi_master *master, in sh_msiof_prepare_message() argument
591 struct sh_msiof_spi_priv *p = spi_master_get_devdata(master); in sh_msiof_prepare_message()
592 const struct spi_device *spi = msg->spi; in sh_msiof_prepare_message()
596 if (gpio_is_valid(spi->cs_gpio)) { in sh_msiof_prepare_message()
597 ss = p->unused_ss; in sh_msiof_prepare_message()
598 cs_high = p->native_cs_high; in sh_msiof_prepare_message()
600 ss = spi->chip_select; in sh_msiof_prepare_message()
601 cs_high = !!(spi->mode & SPI_CS_HIGH); in sh_msiof_prepare_message()
603 sh_msiof_spi_set_pin_regs(p, ss, !!(spi->mode & SPI_CPOL), in sh_msiof_prepare_message()
604 !!(spi->mode & SPI_CPHA), in sh_msiof_prepare_message()
605 !!(spi->mode & SPI_3WIRE), in sh_msiof_prepare_message()
606 !!(spi->mode & SPI_LSB_FIRST), cs_high); in sh_msiof_prepare_message()
612 bool slave = spi_controller_is_slave(p->master); in sh_msiof_spi_start()
623 /* start by setting frame bit */ in sh_msiof_spi_start()
632 bool slave = spi_controller_is_slave(p->master); in sh_msiof_spi_stop()
635 /* shut down frame, rx/tx and clock signals */ in sh_msiof_spi_stop()
648 static int sh_msiof_slave_abort(struct spi_master *master) in sh_msiof_slave_abort() argument
650 struct sh_msiof_spi_priv *p = spi_master_get_devdata(master); in sh_msiof_slave_abort()
652 p->slave_aborted = true; in sh_msiof_slave_abort()
653 complete(&p->done); in sh_msiof_slave_abort()
654 complete(&p->done_txdma); in sh_msiof_slave_abort()
661 if (spi_controller_is_slave(p->master)) { in sh_msiof_wait_for_completion()
663 p->slave_aborted) { in sh_msiof_wait_for_completion()
664 dev_dbg(&p->pdev->dev, "interrupted\n"); in sh_msiof_wait_for_completion()
665 return -EINTR; in sh_msiof_wait_for_completion()
669 dev_err(&p->pdev->dev, "timeout\n"); in sh_msiof_wait_for_completion()
670 return -ETIMEDOUT; in sh_msiof_wait_for_completion()
690 words = min_t(int, words, p->tx_fifo_size); in sh_msiof_spi_txrx_once()
692 words = min_t(int, words, p->rx_fifo_size); in sh_msiof_spi_txrx_once()
695 fifo_shift = 32 - bits; in sh_msiof_spi_txrx_once()
708 reinit_completion(&p->done); in sh_msiof_spi_txrx_once()
709 p->slave_aborted = false; in sh_msiof_spi_txrx_once()
713 dev_err(&p->pdev->dev, "failed to start hardware\n"); in sh_msiof_spi_txrx_once()
718 ret = sh_msiof_wait_for_completion(p, &p->done); in sh_msiof_spi_txrx_once()
731 dev_err(&p->pdev->dev, "failed to shut down hardware\n"); in sh_msiof_spi_txrx_once()
761 desc_rx = dmaengine_prep_slave_single(p->master->dma_rx, in sh_msiof_dma_once()
762 p->rx_dma_addr, len, DMA_DEV_TO_MEM, in sh_msiof_dma_once()
765 return -EAGAIN; in sh_msiof_dma_once()
767 desc_rx->callback = sh_msiof_dma_complete; in sh_msiof_dma_once()
768 desc_rx->callback_param = &p->done; in sh_msiof_dma_once()
776 dma_sync_single_for_device(p->master->dma_tx->device->dev, in sh_msiof_dma_once()
777 p->tx_dma_addr, len, DMA_TO_DEVICE); in sh_msiof_dma_once()
778 desc_tx = dmaengine_prep_slave_single(p->master->dma_tx, in sh_msiof_dma_once()
779 p->tx_dma_addr, len, DMA_MEM_TO_DEV, in sh_msiof_dma_once()
782 ret = -EAGAIN; in sh_msiof_dma_once()
786 desc_tx->callback = sh_msiof_dma_complete; in sh_msiof_dma_once()
787 desc_tx->callback_param = &p->done_txdma; in sh_msiof_dma_once()
798 /* setup msiof transfer mode registers (32-bit words) */ in sh_msiof_dma_once()
803 reinit_completion(&p->done); in sh_msiof_dma_once()
805 reinit_completion(&p->done_txdma); in sh_msiof_dma_once()
806 p->slave_aborted = false; in sh_msiof_dma_once()
810 dma_async_issue_pending(p->master->dma_rx); in sh_msiof_dma_once()
812 dma_async_issue_pending(p->master->dma_tx); in sh_msiof_dma_once()
816 dev_err(&p->pdev->dev, "failed to start hardware\n"); in sh_msiof_dma_once()
822 ret = sh_msiof_wait_for_completion(p, &p->done_txdma); in sh_msiof_dma_once()
829 ret = sh_msiof_wait_for_completion(p, &p->done); in sh_msiof_dma_once()
837 ret = sh_msiof_wait_for_completion(p, &p->done); in sh_msiof_dma_once()
847 dev_err(&p->pdev->dev, "failed to shut down hardware\n"); in sh_msiof_dma_once()
852 dma_sync_single_for_cpu(p->master->dma_rx->device->dev, in sh_msiof_dma_once()
853 p->rx_dma_addr, len, in sh_msiof_dma_once()
863 dmaengine_terminate_all(p->master->dma_tx); in sh_msiof_dma_once()
866 dmaengine_terminate_all(p->master->dma_rx); in sh_msiof_dma_once()
875 while (words--) { in copy_bswap32()
880 while (words--) { in copy_bswap32()
885 while (words--) in copy_bswap32()
894 while (words--) { in copy_wswap32()
899 while (words--) { in copy_wswap32()
904 while (words--) in copy_wswap32()
914 static int sh_msiof_transfer_one(struct spi_master *master, in sh_msiof_transfer_one() argument
918 struct sh_msiof_spi_priv *p = spi_master_get_devdata(master); in sh_msiof_transfer_one()
922 const void *tx_buf = t->tx_buf; in sh_msiof_transfer_one()
923 void *rx_buf = t->rx_buf; in sh_msiof_transfer_one()
924 unsigned int len = t->len; in sh_msiof_transfer_one()
925 unsigned int bits = t->bits_per_word; in sh_msiof_transfer_one()
933 if (!spi_controller_is_slave(p->master)) in sh_msiof_transfer_one()
934 sh_msiof_spi_set_clk_regs(p, clk_get_rate(p->clk), t->speed_hz); in sh_msiof_transfer_one()
936 while (master->dma_tx && len > 15) { in sh_msiof_transfer_one()
938 * DMA supports 32-bit words only, hence pack 8-bit and 16-bit in sh_msiof_transfer_one()
944 l = min(len, p->tx_fifo_size * 4); in sh_msiof_transfer_one()
946 l = min(len, p->rx_fifo_size * 4); in sh_msiof_transfer_one()
961 copy32(p->tx_dma_page, tx_buf, l / 4); in sh_msiof_transfer_one()
964 if (ret == -EAGAIN) { in sh_msiof_transfer_one()
965 dev_warn_once(&p->pdev->dev, in sh_msiof_transfer_one()
973 copy32(rx_buf, p->rx_dma_page, l / 4); in sh_msiof_transfer_one()
979 len -= l; in sh_msiof_transfer_one()
1044 words -= n; in sh_msiof_transfer_one()
1072 { .compatible = "renesas,sh-mobile-msiof", .data = &sh_data },
1073 { .compatible = "renesas,msiof-r8a7743", .data = &rcar_gen2_data },
1074 { .compatible = "renesas,msiof-r8a7745", .data = &rcar_gen2_data },
1075 { .compatible = "renesas,msiof-r8a7790", .data = &rcar_gen2_data },
1076 { .compatible = "renesas,msiof-r8a7791", .data = &rcar_gen2_data },
1077 { .compatible = "renesas,msiof-r8a7792", .data = &rcar_gen2_data },
1078 { .compatible = "renesas,msiof-r8a7793", .data = &rcar_gen2_data },
1079 { .compatible = "renesas,msiof-r8a7794", .data = &rcar_gen2_data },
1080 { .compatible = "renesas,rcar-gen2-msiof", .data = &rcar_gen2_data },
1081 { .compatible = "renesas,msiof-r8a7796", .data = &rcar_gen3_data },
1082 { .compatible = "renesas,rcar-gen3-msiof", .data = &rcar_gen3_data },
1083 { .compatible = "renesas,sh-msiof", .data = &sh_data }, /* Deprecated */
1092 struct device_node *np = dev->of_node; in sh_msiof_spi_parse_dt()
1099 info->mode = of_property_read_bool(np, "spi-slave") ? MSIOF_SPI_SLAVE in sh_msiof_spi_parse_dt()
1103 if (info->mode == MSIOF_SPI_MASTER) in sh_msiof_spi_parse_dt()
1104 of_property_read_u32(np, "num-cs", &num_cs); in sh_msiof_spi_parse_dt()
1105 of_property_read_u32(np, "renesas,tx-fifo-size", in sh_msiof_spi_parse_dt()
1106 &info->tx_fifo_override); in sh_msiof_spi_parse_dt()
1107 of_property_read_u32(np, "renesas,rx-fifo-size", in sh_msiof_spi_parse_dt()
1108 &info->rx_fifo_override); in sh_msiof_spi_parse_dt()
1109 of_property_read_u32(np, "renesas,dtdl", &info->dtdl); in sh_msiof_spi_parse_dt()
1110 of_property_read_u32(np, "renesas,syncdl", &info->syncdl); in sh_msiof_spi_parse_dt()
1112 info->num_chipselect = num_cs; in sh_msiof_spi_parse_dt()
1125 struct device *dev = &p->pdev->dev; in sh_msiof_get_cs_gpios()
1135 num_cs = max_t(unsigned int, ret, p->master->num_chipselect); in sh_msiof_get_cs_gpios()
1145 if (PTR_ERR(gpiod) != -ENOENT) in sh_msiof_get_cs_gpios()
1150 return -EINVAL; in sh_msiof_get_cs_gpios()
1154 p->unused_ss = ffz(used_ss_mask); in sh_msiof_get_cs_gpios()
1155 if (cs_gpios && p->unused_ss >= MAX_SS) { in sh_msiof_get_cs_gpios()
1157 return -EINVAL; in sh_msiof_get_cs_gpios()
1203 struct platform_device *pdev = p->pdev; in sh_msiof_request_dma()
1204 struct device *dev = &pdev->dev; in sh_msiof_request_dma()
1208 struct spi_master *master; in sh_msiof_request_dma() local
1211 if (dev->of_node) { in sh_msiof_request_dma()
1215 } else if (info && info->dma_tx_id && info->dma_rx_id) { in sh_msiof_request_dma()
1216 dma_tx_id = info->dma_tx_id; in sh_msiof_request_dma()
1217 dma_rx_id = info->dma_rx_id; in sh_msiof_request_dma()
1228 master = p->master; in sh_msiof_request_dma()
1229 master->dma_tx = sh_msiof_request_dma_chan(dev, DMA_MEM_TO_DEV, in sh_msiof_request_dma()
1231 res->start + TFDR); in sh_msiof_request_dma()
1232 if (!master->dma_tx) in sh_msiof_request_dma()
1233 return -ENODEV; in sh_msiof_request_dma()
1235 master->dma_rx = sh_msiof_request_dma_chan(dev, DMA_DEV_TO_MEM, in sh_msiof_request_dma()
1237 res->start + RFDR); in sh_msiof_request_dma()
1238 if (!master->dma_rx) in sh_msiof_request_dma()
1241 p->tx_dma_page = (void *)__get_free_page(GFP_KERNEL | GFP_DMA); in sh_msiof_request_dma()
1242 if (!p->tx_dma_page) in sh_msiof_request_dma()
1245 p->rx_dma_page = (void *)__get_free_page(GFP_KERNEL | GFP_DMA); in sh_msiof_request_dma()
1246 if (!p->rx_dma_page) in sh_msiof_request_dma()
1249 tx_dev = master->dma_tx->device->dev; in sh_msiof_request_dma()
1250 p->tx_dma_addr = dma_map_single(tx_dev, p->tx_dma_page, PAGE_SIZE, in sh_msiof_request_dma()
1252 if (dma_mapping_error(tx_dev, p->tx_dma_addr)) in sh_msiof_request_dma()
1255 rx_dev = master->dma_rx->device->dev; in sh_msiof_request_dma()
1256 p->rx_dma_addr = dma_map_single(rx_dev, p->rx_dma_page, PAGE_SIZE, in sh_msiof_request_dma()
1258 if (dma_mapping_error(rx_dev, p->rx_dma_addr)) in sh_msiof_request_dma()
1265 dma_unmap_single(tx_dev, p->tx_dma_addr, PAGE_SIZE, DMA_TO_DEVICE); in sh_msiof_request_dma()
1267 free_page((unsigned long)p->rx_dma_page); in sh_msiof_request_dma()
1269 free_page((unsigned long)p->tx_dma_page); in sh_msiof_request_dma()
1271 dma_release_channel(master->dma_rx); in sh_msiof_request_dma()
1273 dma_release_channel(master->dma_tx); in sh_msiof_request_dma()
1274 master->dma_tx = NULL; in sh_msiof_request_dma()
1275 return -ENODEV; in sh_msiof_request_dma()
1280 struct spi_master *master = p->master; in sh_msiof_release_dma() local
1282 if (!master->dma_tx) in sh_msiof_release_dma()
1285 dma_unmap_single(master->dma_rx->device->dev, p->rx_dma_addr, in sh_msiof_release_dma()
1287 dma_unmap_single(master->dma_tx->device->dev, p->tx_dma_addr, in sh_msiof_release_dma()
1289 free_page((unsigned long)p->rx_dma_page); in sh_msiof_release_dma()
1290 free_page((unsigned long)p->tx_dma_page); in sh_msiof_release_dma()
1291 dma_release_channel(master->dma_rx); in sh_msiof_release_dma()
1292 dma_release_channel(master->dma_tx); in sh_msiof_release_dma()
1298 struct spi_master *master; in sh_msiof_spi_probe() local
1305 chipdata = of_device_get_match_data(&pdev->dev); in sh_msiof_spi_probe()
1307 info = sh_msiof_spi_parse_dt(&pdev->dev); in sh_msiof_spi_probe()
1309 chipdata = (const void *)pdev->id_entry->driver_data; in sh_msiof_spi_probe()
1310 info = dev_get_platdata(&pdev->dev); in sh_msiof_spi_probe()
1314 dev_err(&pdev->dev, "failed to obtain device info\n"); in sh_msiof_spi_probe()
1315 return -ENXIO; in sh_msiof_spi_probe()
1318 if (info->mode == MSIOF_SPI_SLAVE) in sh_msiof_spi_probe()
1319 master = spi_alloc_slave(&pdev->dev, in sh_msiof_spi_probe()
1322 master = spi_alloc_master(&pdev->dev, in sh_msiof_spi_probe()
1324 if (master == NULL) in sh_msiof_spi_probe()
1325 return -ENOMEM; in sh_msiof_spi_probe()
1327 p = spi_master_get_devdata(master); in sh_msiof_spi_probe()
1330 p->master = master; in sh_msiof_spi_probe()
1331 p->info = info; in sh_msiof_spi_probe()
1332 p->min_div_pow = chipdata->min_div_pow; in sh_msiof_spi_probe()
1334 init_completion(&p->done); in sh_msiof_spi_probe()
1335 init_completion(&p->done_txdma); in sh_msiof_spi_probe()
1337 p->clk = devm_clk_get(&pdev->dev, NULL); in sh_msiof_spi_probe()
1338 if (IS_ERR(p->clk)) { in sh_msiof_spi_probe()
1339 dev_err(&pdev->dev, "cannot get clock\n"); in sh_msiof_spi_probe()
1340 ret = PTR_ERR(p->clk); in sh_msiof_spi_probe()
1346 dev_err(&pdev->dev, "cannot get IRQ\n"); in sh_msiof_spi_probe()
1352 p->mapbase = devm_ioremap_resource(&pdev->dev, r); in sh_msiof_spi_probe()
1353 if (IS_ERR(p->mapbase)) { in sh_msiof_spi_probe()
1354 ret = PTR_ERR(p->mapbase); in sh_msiof_spi_probe()
1358 ret = devm_request_irq(&pdev->dev, i, sh_msiof_spi_irq, 0, in sh_msiof_spi_probe()
1359 dev_name(&pdev->dev), p); in sh_msiof_spi_probe()
1361 dev_err(&pdev->dev, "unable to request irq\n"); in sh_msiof_spi_probe()
1365 p->pdev = pdev; in sh_msiof_spi_probe()
1366 pm_runtime_enable(&pdev->dev); in sh_msiof_spi_probe()
1369 p->tx_fifo_size = chipdata->tx_fifo_size; in sh_msiof_spi_probe()
1370 p->rx_fifo_size = chipdata->rx_fifo_size; in sh_msiof_spi_probe()
1371 if (p->info->tx_fifo_override) in sh_msiof_spi_probe()
1372 p->tx_fifo_size = p->info->tx_fifo_override; in sh_msiof_spi_probe()
1373 if (p->info->rx_fifo_override) in sh_msiof_spi_probe()
1374 p->rx_fifo_size = p->info->rx_fifo_override; in sh_msiof_spi_probe()
1377 master->num_chipselect = p->info->num_chipselect; in sh_msiof_spi_probe()
1382 /* init master code */ in sh_msiof_spi_probe()
1383 master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; in sh_msiof_spi_probe()
1384 master->mode_bits |= SPI_LSB_FIRST | SPI_3WIRE; in sh_msiof_spi_probe()
1385 master->flags = chipdata->master_flags; in sh_msiof_spi_probe()
1386 master->bus_num = pdev->id; in sh_msiof_spi_probe()
1387 master->dev.of_node = pdev->dev.of_node; in sh_msiof_spi_probe()
1388 master->setup = sh_msiof_spi_setup; in sh_msiof_spi_probe()
1389 master->prepare_message = sh_msiof_prepare_message; in sh_msiof_spi_probe()
1390 master->slave_abort = sh_msiof_slave_abort; in sh_msiof_spi_probe()
1391 master->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32); in sh_msiof_spi_probe()
1392 master->auto_runtime_pm = true; in sh_msiof_spi_probe()
1393 master->transfer_one = sh_msiof_transfer_one; in sh_msiof_spi_probe()
1397 dev_warn(&pdev->dev, "DMA not available, using PIO\n"); in sh_msiof_spi_probe()
1399 ret = devm_spi_register_master(&pdev->dev, master); in sh_msiof_spi_probe()
1401 dev_err(&pdev->dev, "spi_register_master error.\n"); in sh_msiof_spi_probe()
1409 pm_runtime_disable(&pdev->dev); in sh_msiof_spi_probe()
1411 spi_master_put(master); in sh_msiof_spi_probe()
1420 pm_runtime_disable(&pdev->dev); in sh_msiof_spi_remove()
1436 return spi_master_suspend(p->master); in sh_msiof_spi_suspend()
1444 return spi_master_resume(p->master); in sh_msiof_spi_resume()
1466 MODULE_DESCRIPTION("SuperH MSIOF SPI Master Interface Driver");