mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-30 22:08:52 +09:00
![Tom Rini](/assets/img/avatar_default.png)
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
147 lines
3.9 KiB
C
147 lines
3.9 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* PXA25x UDC definitions
|
|
*
|
|
* Copyright (C) 2012 Łukasz Dałek <luk0104@gmail.com>
|
|
*/
|
|
|
|
#ifndef __REGS_USB_H__
|
|
#define __REGS_USB_H__
|
|
|
|
struct pxa25x_udc_regs {
|
|
/* UDC Control Register */
|
|
uint32_t udccr; /* 0x000 */
|
|
uint32_t reserved1;
|
|
|
|
/* UDC Control Function Register */
|
|
uint32_t udccfr; /* 0x008 */
|
|
uint32_t reserved2;
|
|
|
|
/* UDC Endpoint Control/Status Registers */
|
|
uint32_t udccs[16]; /* 0x010 - 0x04c */
|
|
|
|
/* UDC Interrupt Control/Status Registers */
|
|
uint32_t uicr0; /* 0x050 */
|
|
uint32_t uicr1; /* 0x054 */
|
|
uint32_t usir0; /* 0x058 */
|
|
uint32_t usir1; /* 0x05c */
|
|
|
|
/* UDC Frame Number/Byte Count Registers */
|
|
uint32_t ufnrh; /* 0x060 */
|
|
uint32_t ufnrl; /* 0x064 */
|
|
uint32_t ubcr2; /* 0x068 */
|
|
uint32_t ubcr4; /* 0x06c */
|
|
uint32_t ubcr7; /* 0x070 */
|
|
uint32_t ubcr9; /* 0x074 */
|
|
uint32_t ubcr12; /* 0x078 */
|
|
uint32_t ubcr14; /* 0x07c */
|
|
|
|
/* UDC Endpoint Data Registers */
|
|
uint32_t uddr0; /* 0x080 */
|
|
uint32_t reserved3[7];
|
|
uint32_t uddr5; /* 0x0a0 */
|
|
uint32_t reserved4[7];
|
|
uint32_t uddr10; /* 0x0c0 */
|
|
uint32_t reserved5[7];
|
|
uint32_t uddr15; /* 0x0e0 */
|
|
uint32_t reserved6[7];
|
|
uint32_t uddr1; /* 0x100 */
|
|
uint32_t reserved7[31];
|
|
uint32_t uddr2; /* 0x180 */
|
|
uint32_t reserved8[31];
|
|
uint32_t uddr3; /* 0x200 */
|
|
uint32_t reserved9[127];
|
|
uint32_t uddr4; /* 0x400 */
|
|
uint32_t reserved10[127];
|
|
uint32_t uddr6; /* 0x600 */
|
|
uint32_t reserved11[31];
|
|
uint32_t uddr7; /* 0x680 */
|
|
uint32_t reserved12[31];
|
|
uint32_t uddr8; /* 0x700 */
|
|
uint32_t reserved13[127];
|
|
uint32_t uddr9; /* 0x900 */
|
|
uint32_t reserved14[127];
|
|
uint32_t uddr11; /* 0xb00 */
|
|
uint32_t reserved15[31];
|
|
uint32_t uddr12; /* 0xb80 */
|
|
uint32_t reserved16[31];
|
|
uint32_t uddr13; /* 0xc00 */
|
|
uint32_t reserved17[127];
|
|
uint32_t uddr14; /* 0xe00 */
|
|
|
|
};
|
|
|
|
#define PXA25X_UDC_BASE 0x40600000
|
|
|
|
#define UDCCR_UDE (1 << 0)
|
|
#define UDCCR_UDA (1 << 1)
|
|
#define UDCCR_RSM (1 << 2)
|
|
#define UDCCR_RESIR (1 << 3)
|
|
#define UDCCR_SUSIR (1 << 4)
|
|
#define UDCCR_SRM (1 << 5)
|
|
#define UDCCR_RSTIR (1 << 6)
|
|
#define UDCCR_REM (1 << 7)
|
|
|
|
/* Bulk IN endpoint 1/6/11 */
|
|
#define UDCCS_BI_TSP (1 << 7)
|
|
#define UDCCS_BI_FST (1 << 5)
|
|
#define UDCCS_BI_SST (1 << 4)
|
|
#define UDCCS_BI_TUR (1 << 3)
|
|
#define UDCCS_BI_FTF (1 << 2)
|
|
#define UDCCS_BI_TPC (1 << 1)
|
|
#define UDCCS_BI_TFS (1 << 0)
|
|
|
|
/* Bulk OUT endpoint 2/7/12 */
|
|
#define UDCCS_BO_RSP (1 << 7)
|
|
#define UDCCS_BO_RNE (1 << 6)
|
|
#define UDCCS_BO_FST (1 << 5)
|
|
#define UDCCS_BO_SST (1 << 4)
|
|
#define UDCCS_BO_DME (1 << 3)
|
|
#define UDCCS_BO_RPC (1 << 1)
|
|
#define UDCCS_BO_RFS (1 << 0)
|
|
|
|
/* Isochronous OUT endpoint 4/9/14 */
|
|
#define UDCCS_IO_RSP (1 << 7)
|
|
#define UDCCS_IO_RNE (1 << 6)
|
|
#define UDCCS_IO_DME (1 << 3)
|
|
#define UDCCS_IO_ROF (1 << 2)
|
|
#define UDCCS_IO_RPC (1 << 1)
|
|
#define UDCCS_IO_RFS (1 << 0)
|
|
|
|
/* Control endpoint 0 */
|
|
#define UDCCS0_OPR (1 << 0)
|
|
#define UDCCS0_IPR (1 << 1)
|
|
#define UDCCS0_FTF (1 << 2)
|
|
#define UDCCS0_DRWF (1 << 3)
|
|
#define UDCCS0_SST (1 << 4)
|
|
#define UDCCS0_FST (1 << 5)
|
|
#define UDCCS0_RNE (1 << 6)
|
|
#define UDCCS0_SA (1 << 7)
|
|
|
|
#define UICR0_IM0 (1 << 0)
|
|
|
|
#define USIR0_IR0 (1 << 0)
|
|
#define USIR0_IR1 (1 << 1)
|
|
#define USIR0_IR2 (1 << 2)
|
|
#define USIR0_IR3 (1 << 3)
|
|
#define USIR0_IR4 (1 << 4)
|
|
#define USIR0_IR5 (1 << 5)
|
|
#define USIR0_IR6 (1 << 6)
|
|
#define USIR0_IR7 (1 << 7)
|
|
|
|
#define UDCCFR_AREN (1 << 7) /* ACK response enable (now) */
|
|
#define UDCCFR_ACM (1 << 2) /* ACK control mode (wait for AREN) */
|
|
/*
|
|
* Intel(R) PXA255 Processor Specification, September 2003 (page 31)
|
|
* define new "must be one" bits in UDCCFR (see Table 12-13.)
|
|
*/
|
|
#define UDCCFR_MB1 (0xff & ~(UDCCFR_AREN | UDCCFR_ACM))
|
|
|
|
#define UFNRH_SIR (1 << 7) /* SOF interrupt request */
|
|
#define UFNRH_SIM (1 << 6) /* SOF interrupt mask */
|
|
#define UFNRH_IPE14 (1 << 5) /* ISO packet error, ep14 */
|
|
#define UFNRH_IPE9 (1 << 4) /* ISO packet error, ep9 */
|
|
#define UFNRH_IPE4 (1 << 3) /* ISO packet error, ep4 */
|
|
|
|
#endif /* __REGS_USB_H__ */
|