brintos

brintos / linux-shallow public Read only

0
0
Text · 1.8 KiB · 8f48086 Raw
98 lines · c
1/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */2/*3 *   Copyright (c) 2011, 2012, Qualcomm Atheros Communications Inc.4 *   Copyright (c) 2014, I2SE GmbH5 */6 7/*   Qualcomm Atheros SPI register definition.8 *9 *   This module is designed to define the Qualcomm Atheros SPI register10 *   placeholders;11 */12 13#ifndef _QCA_SPI_H14#define _QCA_SPI_H15 16#include <linux/netdevice.h>17#include <linux/sched.h>18#include <linux/skbuff.h>19#include <linux/spi/spi.h>20#include <linux/types.h>21 22#include "qca_7k_common.h"23 24#define QCASPI_DRV_VERSION "0.2.7-i"25#define QCASPI_DRV_NAME    "qcaspi"26 27#define QCASPI_GOOD_SIGNATURE 0xAA5528 29#define QCASPI_TX_RING_MAX_LEN 1030#define QCASPI_TX_RING_MIN_LEN 231#define QCASPI_RX_MAX_FRAMES 432 33/* sync related constants */34#define QCASPI_SYNC_UNKNOWN 035#define QCASPI_SYNC_RESET   136#define QCASPI_SYNC_READY   237 38#define QCASPI_RESET_TIMEOUT 1039 40/* sync events */41#define QCASPI_EVENT_UPDATE 042#define QCASPI_EVENT_CPUON  143 44struct tx_ring {45	struct sk_buff *skb[QCASPI_TX_RING_MAX_LEN];46	u16 head;47	u16 tail;48	u16 size;49	u16 count;50};51 52struct qcaspi_stats {53	u64 trig_reset;54	u64 device_reset;55	u64 reset_timeout;56	u64 read_err;57	u64 write_err;58	u64 read_buf_err;59	u64 write_buf_err;60	u64 out_of_mem;61	u64 write_buf_miss;62	u64 ring_full;63	u64 spi_err;64	u64 write_verify_failed;65	u64 buf_avail_err;66	u64 bad_signature;67};68 69struct qcaspi {70	struct net_device *net_dev;71	struct spi_device *spi_dev;72	struct task_struct *spi_thread;73 74	struct tx_ring txr;75	struct qcaspi_stats stats;76 77	u8 *rx_buffer;78	u32 buffer_size;79	u8 sync;80 81	struct qcafrm_handle frm_handle;82	struct sk_buff *rx_skb;83 84	unsigned long intr;85	u16 reset_count;86 87#ifdef CONFIG_DEBUG_FS88	struct dentry *device_root;89#endif90 91	/* user configurable options */92	u32 clkspeed;93	u8 legacy_mode;94	u16 burst_len;95};96 97#endif /* _QCA_SPI_H */98