| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * PIC32 Quad SPI controller driver. |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Purna Chandra Mandal <purna.mandal@microchip.com> |
|---|
| 5 | 6 | * Copyright (c) 2016, Microchip Technology Inc. |
|---|
| 6 | | - * |
|---|
| 7 | | - * This program is free software; you can distribute it and/or modify it |
|---|
| 8 | | - * under the terms of the GNU General Public License (Version 2) as |
|---|
| 9 | | - * published by the Free Software Foundation. |
|---|
| 10 | | - * |
|---|
| 11 | | - * This program is distributed in the hope it will be useful, but WITHOUT |
|---|
| 12 | | - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|---|
| 13 | | - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|---|
| 14 | | - * for more details. |
|---|
| 15 | 7 | */ |
|---|
| 16 | 8 | |
|---|
| 17 | 9 | #include <linux/clk.h> |
|---|
| .. | .. |
|---|
| 466 | 458 | int i; |
|---|
| 467 | 459 | |
|---|
| 468 | 460 | /* allocate coherent DMAable memory for hardware buffer descriptors. */ |
|---|
| 469 | | - sqi->bd = dma_zalloc_coherent(&sqi->master->dev, |
|---|
| 470 | | - sizeof(*bd) * PESQI_BD_COUNT, |
|---|
| 471 | | - &sqi->bd_dma, GFP_DMA32); |
|---|
| 461 | + sqi->bd = dma_alloc_coherent(&sqi->master->dev, |
|---|
| 462 | + sizeof(*bd) * PESQI_BD_COUNT, |
|---|
| 463 | + &sqi->bd_dma, GFP_KERNEL); |
|---|
| 472 | 464 | if (!sqi->bd) { |
|---|
| 473 | 465 | dev_err(&sqi->master->dev, "failed allocating dma buffer\n"); |
|---|
| 474 | 466 | return -ENOMEM; |
|---|
| .. | .. |
|---|
| 578 | 570 | { |
|---|
| 579 | 571 | struct spi_master *master; |
|---|
| 580 | 572 | struct pic32_sqi *sqi; |
|---|
| 581 | | - struct resource *reg; |
|---|
| 582 | 573 | int ret; |
|---|
| 583 | 574 | |
|---|
| 584 | 575 | master = spi_alloc_master(&pdev->dev, sizeof(*sqi)); |
|---|
| .. | .. |
|---|
| 588 | 579 | sqi = spi_master_get_devdata(master); |
|---|
| 589 | 580 | sqi->master = master; |
|---|
| 590 | 581 | |
|---|
| 591 | | - reg = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
|---|
| 592 | | - sqi->regs = devm_ioremap_resource(&pdev->dev, reg); |
|---|
| 582 | + sqi->regs = devm_platform_ioremap_resource(pdev, 0); |
|---|
| 593 | 583 | if (IS_ERR(sqi->regs)) { |
|---|
| 594 | 584 | ret = PTR_ERR(sqi->regs); |
|---|
| 595 | 585 | goto err_free_master; |
|---|
| .. | .. |
|---|
| 598 | 588 | /* irq */ |
|---|
| 599 | 589 | sqi->irq = platform_get_irq(pdev, 0); |
|---|
| 600 | 590 | if (sqi->irq < 0) { |
|---|
| 601 | | - dev_err(&pdev->dev, "no irq found\n"); |
|---|
| 602 | 591 | ret = sqi->irq; |
|---|
| 603 | 592 | goto err_free_master; |
|---|
| 604 | 593 | } |
|---|
| .. | .. |
|---|
| 656 | 645 | master->max_speed_hz = clk_get_rate(sqi->base_clk); |
|---|
| 657 | 646 | master->dma_alignment = 32; |
|---|
| 658 | 647 | master->max_dma_len = PESQI_BD_BUF_LEN_MAX; |
|---|
| 659 | | - master->dev.of_node = of_node_get(pdev->dev.of_node); |
|---|
| 648 | + master->dev.of_node = pdev->dev.of_node; |
|---|
| 660 | 649 | master->mode_bits = SPI_MODE_3 | SPI_MODE_0 | SPI_TX_DUAL | |
|---|
| 661 | 650 | SPI_RX_DUAL | SPI_TX_QUAD | SPI_RX_QUAD; |
|---|
| 662 | 651 | master->flags = SPI_MASTER_HALF_DUPLEX; |
|---|