Add usb_check_phymode
This commit is contained in:
parent
eadaa44dd8
commit
24b1b5ac56
|
@ -77,6 +77,34 @@ void ipc_rndis_init(void){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void usb_check_phymode(int id)
|
||||||
|
{
|
||||||
|
#define PIPE_PHY_GRF0 0xFDC70000
|
||||||
|
#define PIPE_PHY_GRF1 0xFDC80000
|
||||||
|
#define PIPE_PHY_GRF_PIPE_CON0 0x00
|
||||||
|
#define PIPE_PHY_GRF_VIRADDR_BASE 0x0000002100000000ULL
|
||||||
|
void *base = (void *)PIPE_PHY_GRF0;
|
||||||
|
void *base_vir = (void *)PIPE_PHY_GRF_VIRADDR_BASE;
|
||||||
|
uint32_t pipe_phymode;
|
||||||
|
|
||||||
|
if (USB3_0_ID == id) {
|
||||||
|
base = (void *)PIPE_PHY_GRF0;
|
||||||
|
}
|
||||||
|
if (USB3_1_ID == id) {
|
||||||
|
base = (void *)PIPE_PHY_GRF1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!mmap((uintptr_t)base_vir, (uintptr_t)base, 0xFF, true)){
|
||||||
|
USB_LOG_ERR("usb_check_phy mmap fail\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
pipe_phymode = readl ( base_vir + PIPE_PHY_GRF_PIPE_CON0 );
|
||||||
|
USB_LOG_DBG("usbh_initialize PIPE_PHY_GRF_PIPE_CON0=%08X\n", pipe_phymode);
|
||||||
|
if ( (pipe_phymode & 0x000C) != 0x0004) {
|
||||||
|
USB_LOG_ERR("usbh_initialize PIPE_PHY_GRF_PIPE_CON0=%08X is not USB3 mode\n", pipe_phymode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void usb_init(int id)
|
static void usb_init(int id)
|
||||||
{
|
{
|
||||||
if (0 == usbh_initialize(id, &usb[id])){
|
if (0 == usbh_initialize(id, &usb[id])){
|
||||||
|
@ -100,6 +128,8 @@ int main(int argc, char* argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("main usb3 id=%d init.\r\n", id);
|
printf("main usb3 id=%d init.\r\n", id);
|
||||||
|
|
||||||
|
usb_check_phymode(id);
|
||||||
usb_init(id);
|
usb_init(id);
|
||||||
|
|
||||||
ipc_rndis_init();
|
ipc_rndis_init();
|
||||||
|
|
Loading…
Reference in New Issue