]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - drivers/scsi/hisi_sas/hisi_sas.h
hisi_sas: Add scsi host registration
[mirror_ubuntu-artful-kernel.git] / drivers / scsi / hisi_sas / hisi_sas.h
CommitLineData
e8899fad
JG
1/*
2 * Copyright (c) 2015 Linaro Ltd.
3 * Copyright (c) 2015 Hisilicon Limited.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 */
11
12#ifndef _HISI_SAS_H_
13#define _HISI_SAS_H_
14
15#include <linux/dmapool.h>
16#include <linux/mfd/syscon.h>
17#include <linux/module.h>
18#include <linux/of_address.h>
19#include <linux/of_irq.h>
20#include <linux/platform_device.h>
21#include <linux/regmap.h>
22#include <scsi/libsas.h>
23
24#define DRV_VERSION "v1.0"
25
7eb7869f
JG
26#define HISI_SAS_MAX_PHYS 9
27#define HISI_SAS_MAX_ITCT_ENTRIES 4096
28#define HISI_SAS_MAX_DEVICES HISI_SAS_MAX_ITCT_ENTRIES
29#define HISI_SAS_COMMAND_ENTRIES 8192
30
31struct hisi_sas_phy {
32 struct asd_sas_phy sas_phy;
33};
34
35struct hisi_sas_port {
36 struct asd_sas_port sas_port;
37};
38
39struct hisi_sas_hw {
40};
41
42struct hisi_hba {
43 /* This must be the first element, used by SHOST_TO_SAS_HA */
44 struct sas_ha_struct *p;
45
46 struct platform_device *pdev;
47 u8 sas_addr[SAS_ADDR_SIZE];
48
49 int n_phy;
50
51 /* SCSI/SAS glue */
52 struct sas_ha_struct sha;
53 struct Scsi_Host *shost;
54 struct hisi_sas_phy phy[HISI_SAS_MAX_PHYS];
55 struct hisi_sas_port port[HISI_SAS_MAX_PHYS];
56 const struct hisi_sas_hw *hw; /* Low level hw interface */
57};
58
59#define HISI_SAS_SGE_PAGE_CNT SCSI_MAX_SG_SEGMENTS
e8899fad 60#endif