1 /*
2  * Copyright (c) 2015-2016 Quantenna Communications, Inc.
3  * All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  */
16 
17 #ifndef	_QTN_HW_IDS_H_
18 #define	_QTN_HW_IDS_H_
19 
20 #include <linux/pci_ids.h>
21 
22 #define PCIE_VENDOR_ID_QUANTENNA	(0x1bb5)
23 
24 /* PCIE Device IDs */
25 
26 #define	PCIE_DEVICE_ID_QSR		(0x0008)
27 
28 #define QTN_REG_SYS_CTRL_CSR		0x14
29 #define QTN_CHIP_ID_MASK		0xF0
30 #define QTN_CHIP_ID_TOPAZ		0x40
31 #define QTN_CHIP_ID_PEARL		0x50
32 #define QTN_CHIP_ID_PEARL_B		0x60
33 #define QTN_CHIP_ID_PEARL_C		0x70
34 
35 /* FW names */
36 
37 #define QTN_PCI_PEARL_FW_NAME		"qtn/fmac_qsr10g.img"
38 #define QTN_PCI_TOPAZ_FW_NAME		"qtn/fmac_qsr1000.img"
39 #define QTN_PCI_TOPAZ_BOOTLD_NAME	"qtn/uboot_qsr1000.img"
40 
41 static inline unsigned int qtnf_chip_id_get(const void __iomem *regs_base)
42 {
43 	u32 board_rev = readl(regs_base + QTN_REG_SYS_CTRL_CSR);
44 
45 	return board_rev & QTN_CHIP_ID_MASK;
46 }
47 
48 #endif	/* _QTN_HW_IDS_H_ */
49