Commit f131a444 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Krzysztof Kozlowski

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: default avatarArnd 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: default avatarKrzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20200806182059.2431-23-krzk%40kernel.orgAcked-by: default avatarMark Brown <broonie@kernel.org>
parent 7dbad03e
......@@ -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>
......
......@@ -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
......
// 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);
......@@ -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)
......
......@@ -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
......
......@@ -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);
......
......@@ -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 */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment