brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · 35f95b1 Raw
50 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2/* Header File for Loongson SPI Driver. */3/* Copyright (C) 2023 Loongson Technology Corporation Limited */4 5#ifndef __LINUX_SPI_LOONGSON_H6#define __LINUX_SPI_LOONGSON_H7 8#include <linux/bits.h>9#include <linux/pm.h>10#include <linux/types.h>11 12#define	LOONGSON_SPI_SPCR_REG	0x0013#define	LOONGSON_SPI_SPSR_REG	0x0114#define	LOONGSON_SPI_FIFO_REG	0x0215#define	LOONGSON_SPI_SPER_REG	0x0316#define	LOONGSON_SPI_PARA_REG	0x0417#define	LOONGSON_SPI_SFCS_REG	0x0518#define	LOONGSON_SPI_TIMI_REG	0x0619 20/* Bits definition for Loongson SPI register */21#define	LOONGSON_SPI_PARA_MEM_EN	BIT(0)22#define	LOONGSON_SPI_SPCR_CPHA	BIT(2)23#define	LOONGSON_SPI_SPCR_CPOL	BIT(3)24#define	LOONGSON_SPI_SPCR_SPE	BIT(6)25#define	LOONGSON_SPI_SPSR_RFEMPTY	BIT(0)26#define	LOONGSON_SPI_SPSR_WCOL	BIT(6)27#define	LOONGSON_SPI_SPSR_SPIF	BIT(7)28 29struct device;30struct spi_controller;31 32struct loongson_spi {33	struct	spi_controller	*controller;34	void __iomem		*base;35	int			cs_active;36	unsigned int		hz;37	unsigned char		spcr;38	unsigned char		sper;39	unsigned char		spsr;40	unsigned char		para;41	unsigned char		sfcs;42	unsigned char		timi;43	unsigned int		mode;44	u64			clk_rate;45};46 47int loongson_spi_init_controller(struct device *dev, void __iomem *reg);48extern const struct dev_pm_ops loongson_spi_dev_pm_ops;49#endif /* __LINUX_SPI_LOONGSON_H */50