mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-08-17 20:57:01 +02:00
Compared to SAM9X5 the only difference is the DPRAM memory from the USB High Speed Device Port (UDPHS) hardware block was increased, so we can reuse the same endpoint data. Also add compatible "microchip,sam9x60-udc". Signed-off-by: Zixun LI <admin@hifiphile.com> Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org> Link: https://lore.kernel.org/r/20250331162611.1557759-2-admin@hifiphile.com Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
65 lines
1.6 KiB
C
65 lines
1.6 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Copyright (C) 2005-2013 Atmel Corporation
|
|
* Bo Shen <voice.shen@atmel.com>
|
|
*/
|
|
|
|
#ifndef __ATMEL_USBA_UDC_H__
|
|
#define __ATMEL_USBA_UDC_H__
|
|
|
|
#include <linux/usb/atmel_usba_udc.h>
|
|
|
|
#define EP(nam, idx, maxpkt, maxbk, dma, isoc) \
|
|
[idx] = { \
|
|
.name = nam, \
|
|
.index = idx, \
|
|
.fifo_size = maxpkt, \
|
|
.nr_banks = maxbk, \
|
|
.can_dma = dma, \
|
|
.can_isoc = isoc, \
|
|
}
|
|
|
|
#if defined(CONFIG_AT91SAM9G45) || defined(CONFIG_AT91SAM9M10G45) || \
|
|
defined(CONFIG_AT91SAM9X5) || defined(CONFIG_SAM9X60)
|
|
static struct usba_ep_data usba_udc_ep[] = {
|
|
EP("ep0", 0, 64, 1, 0, 0),
|
|
EP("ep1", 1, 1024, 2, 1, 1),
|
|
EP("ep2", 2, 1024, 2, 1, 1),
|
|
EP("ep3", 3, 1024, 3, 1, 0),
|
|
EP("ep4", 4, 1024, 3, 1, 0),
|
|
EP("ep5", 5, 1024, 3, 1, 1),
|
|
EP("ep6", 6, 1024, 3, 1, 1),
|
|
};
|
|
#elif defined(CONFIG_SAMA5D2) || defined(CONFIG_SAMA5D3) || \
|
|
defined(CONFIG_SAMA5D4)
|
|
static struct usba_ep_data usba_udc_ep[] = {
|
|
EP("ep0", 0, 64, 1, 0, 0),
|
|
EP("ep1", 1, 1024, 3, 1, 0),
|
|
EP("ep2", 2, 1024, 3, 1, 0),
|
|
EP("ep3", 3, 1024, 2, 1, 0),
|
|
EP("ep4", 4, 1024, 2, 1, 0),
|
|
EP("ep5", 5, 1024, 2, 1, 0),
|
|
EP("ep6", 6, 1024, 2, 1, 0),
|
|
EP("ep7", 7, 1024, 2, 1, 0),
|
|
EP("ep8", 8, 1024, 2, 0, 0),
|
|
EP("ep9", 9, 1024, 2, 0, 0),
|
|
EP("ep10", 10, 1024, 2, 0, 0),
|
|
EP("ep11", 11, 1024, 2, 0, 0),
|
|
EP("ep12", 12, 1024, 2, 0, 0),
|
|
EP("ep13", 13, 1024, 2, 0, 0),
|
|
EP("ep14", 14, 1024, 2, 0, 0),
|
|
EP("ep15", 15, 1024, 2, 0, 0),
|
|
};
|
|
#else
|
|
# error "NO usba_udc_ep defined"
|
|
#endif
|
|
|
|
#undef EP
|
|
|
|
struct usba_platform_data pdata = {
|
|
.num_ep = ARRAY_SIZE(usba_udc_ep),
|
|
.ep = usba_udc_ep,
|
|
};
|
|
|
|
#endif
|