summaryrefslogtreecommitdiffstats
path: root/drivers/usb/isp1760/isp1760-hcd.h
diff options
context:
space:
mode:
authorRui Miguel Silva <rui.silva@linaro.org>2021-05-13 10:47:15 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-05-21 20:05:32 +0200
commit60d789f3bfbb7428e6ba2949de70a6db8e12e8fa (patch)
treed1ff3b1af72d50cbe755e40f08d93e7740368f84 /drivers/usb/isp1760/isp1760-hcd.h
parentusb: isp1760: use dr_mode binding (diff)
downloadlinux-60d789f3bfbb7428e6ba2949de70a6db8e12e8fa.tar.xz
linux-60d789f3bfbb7428e6ba2949de70a6db8e12e8fa.zip
usb: isp1760: add support for isp1763
isp1763 have some differences from the isp1760, 8 bit address for registers and 16 bit for values, no bulk access to memory addresses, 16 PTD's instead of 32. Following the regmap work done before add the registers, memory access and add the functions to support differences in setup sequences. Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org> Link: https://lore.kernel.org/r/20210513084717.2487366-8-rui.silva@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/isp1760/isp1760-hcd.h')
-rw-r--r--drivers/usb/isp1760/isp1760-hcd.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/isp1760/isp1760-hcd.h b/drivers/usb/isp1760/isp1760-hcd.h
index 9d2427ce3f1a..ee3063a34de3 100644
--- a/drivers/usb/isp1760/isp1760-hcd.h
+++ b/drivers/usb/isp1760/isp1760-hcd.h
@@ -19,13 +19,14 @@ struct isp1760_slotinfo {
};
/* chip memory management */
+#define ISP176x_BLOCK_MAX (32 + 20 + 4)
#define ISP176x_BLOCK_NUM 3
struct isp1760_memory_layout {
unsigned int blocks[ISP176x_BLOCK_NUM];
unsigned int blocks_size[ISP176x_BLOCK_NUM];
- unsigned int ptd_num;
+ unsigned int slot_num;
unsigned int payload_blocks;
unsigned int payload_area_size;
};
@@ -51,6 +52,7 @@ struct isp1760_hcd {
struct regmap *regs;
struct regmap_field *fields[HC_FIELD_MAX];
+ bool is_isp1763;
const struct isp1760_memory_layout *memory_layout;
spinlock_t lock;
@@ -58,7 +60,7 @@ struct isp1760_hcd {
int atl_done_map;
struct isp1760_slotinfo *int_slots;
int int_done_map;
- struct isp1760_memory_chunk *memory_pool;
+ struct isp1760_memory_chunk memory_pool[ISP176x_BLOCK_MAX];
struct list_head qh_list[QH_END];
/* periodic schedule support */