ARM: s3c24xx: move spi fiq handler into platform

The fiq handler needs access to some register definitions that
should not be used directly by device drivers.

Since this is closely related to the irqchip driver anyway,
move it into the same place.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
[krzk: Add a header guard in include/linux/spi/s3c24xx-fiq.h, fix
       SPDX comment style, update maintainer's entry]
Co-developed-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20200806182059.2431-23-krzk%40kernel.org
Acked-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Arnd Bergmann 2019-09-03 11:31:09 +02:00 committed by Krzysztof Kozlowski
parent 7dbad03ebc
commit f131a4443e
7 changed files with 24 additions and 8 deletions

View File

@ -15317,6 +15317,7 @@ S: Maintained
F: Documentation/devicetree/bindings/spi/spi-samsung.txt
F: drivers/spi/spi-s3c*
F: include/linux/platform_data/spi-s3c64xx.h
F: include/linux/spi/s3c24xx-fiq.h
SAMSUNG SXGBE DRIVERS
M: Byungho An <bh74.an@samsung.com>

View File

@ -9,6 +9,8 @@
obj-y += common.o
obj-y += irq-s3c24xx.o
obj-$(CONFIG_SPI_S3C24XX_FIQ) += irq-s3c24xx-fiq.o
obj-$(CONFIG_SPI_S3C24XX_FIQ) += irq-s3c24xx-fiq-exports.o
obj-$(CONFIG_CPU_S3C2410) += s3c2410.o
obj-$(CONFIG_S3C2410_PLL) += pll-s3c2410.o

View File

@ -0,0 +1,9 @@
// SPDX-License-Identifier: GPL-2.0-only
#include <linux/stddef.h>
#include <linux/export.h>
#include <linux/spi/s3c24xx-fiq.h>
EXPORT_SYMBOL(s3c24xx_spi_fiq_rx);
EXPORT_SYMBOL(s3c24xx_spi_fiq_txrx);
EXPORT_SYMBOL(s3c24xx_spi_fiq_tx);

View File

@ -13,7 +13,7 @@
#include <mach/map.h>
#include <mach/regs-irq.h>
#include "spi-s3c24xx-fiq.h"
#include <linux/spi/s3c24xx-fiq.h>
#define S3C2410_SPTDAT (0x10)
#define S3C2410_SPRDAT (0x14)

View File

@ -97,7 +97,6 @@ obj-$(CONFIG_SPI_RPCIF) += spi-rpc-if.o
obj-$(CONFIG_SPI_RSPI) += spi-rspi.o
obj-$(CONFIG_SPI_S3C24XX) += spi-s3c24xx-hw.o
spi-s3c24xx-hw-y := spi-s3c24xx.o
spi-s3c24xx-hw-$(CONFIG_SPI_S3C24XX_FIQ) += spi-s3c24xx-fiq.o
obj-$(CONFIG_SPI_S3C64XX) += spi-s3c64xx.o
obj-$(CONFIG_SPI_SC18IS602) += spi-sc18is602.o
obj-$(CONFIG_SPI_SH) += spi-sh.o

View File

@ -19,12 +19,12 @@
#include <linux/spi/spi.h>
#include <linux/spi/spi_bitbang.h>
#include <linux/spi/s3c24xx.h>
#include <linux/spi/s3c24xx-fiq.h>
#include <linux/module.h>
#include <asm/fiq.h>
#include "spi-s3c24xx-regs.h"
#include "spi-s3c24xx-fiq.h"
/**
* s3c24xx_spi_devstate - per device data
@ -229,10 +229,6 @@ struct spi_fiq_code {
u8 data[];
};
extern struct spi_fiq_code s3c24xx_spi_fiq_txrx;
extern struct spi_fiq_code s3c24xx_spi_fiq_tx;
extern struct spi_fiq_code s3c24xx_spi_fiq_rx;
/**
* ack_bit - turn IRQ into IRQ acknowledgement bit
* @irq: The interrupt number
@ -282,7 +278,6 @@ static void s3c24xx_spi_tryfiq(struct s3c24xx_spi *hw)
regs.uregs[fiq_rrx] = (long)hw->rx;
regs.uregs[fiq_rtx] = (long)hw->tx + 1;
regs.uregs[fiq_rcount] = hw->len - 1;
regs.uregs[fiq_rirq] = (long)S3C24XX_VA_IRQ;
set_fiq_regs(&regs);

View File

@ -7,11 +7,19 @@
* S3C24XX SPI - FIQ pseudo-DMA transfer support
*/
#ifndef __LINUX_SPI_S3C24XX_FIQ_H
#define __LINUX_SPI_S3C24XX_FIQ_H __FILE__
/* We have R8 through R13 to play with */
#ifdef __ASSEMBLY__
#define __REG_NR(x) r##x
#else
extern struct spi_fiq_code s3c24xx_spi_fiq_txrx;
extern struct spi_fiq_code s3c24xx_spi_fiq_tx;
extern struct spi_fiq_code s3c24xx_spi_fiq_rx;
#define __REG_NR(x) (x)
#endif
@ -21,3 +29,5 @@
#define fiq_rtx __REG_NR(11)
#define fiq_rcount __REG_NR(12)
#define fiq_rirq __REG_NR(13)
#endif /* __LINUX_SPI_S3C24XX_FIQ_H */