Регистры Allwinner H616

Сокращения  |  Дерево шин  |  Карта памяти

Хост-контроллер USB2.0 ( Руководство )

Имя модуля: USB1 , базовый адрес: 0x05200000

Имя модуля: USB2 , базовый адрес: 0x05310000

Имя модуля: USB3 , базовый адрес: 0x05311000

Руководство п. 9.5.3


Регистров: 43

Имя регистра | Смещение


  • 1) E_CAPLENGTH | 0x0000

    typedef union  e_caplength
    {
      struct
      {
       unsigned caplength : 8;
       unsigned unused0 : 24;
      } b;
       unsigned long w;
    } E_CAPLENGTH
       

  • 2) E_HCIVERSION | 0x0002

    typedef union  e_hciversion
    {
      struct
      {
       unsigned hciversion : 16;
       unsigned unused0 : 16;
      } b;
       unsigned long w;
    } E_HCIVERSION
       

  • 3) E_HCSPARAMS | 0x0004

    typedef union  e_hcsparams
    {
      struct
      {
       unsigned n_ports : 4;
       unsigned unused0 : 3;
       unsigned port_routing_rules : 1;
       unsigned n_pcc : 4;
       unsigned n_cc : 4;
       unsigned unused1 : 4;
       unsigned debug_port_number : 4;
       unsigned unused2 : 8;
      } b;
       unsigned long w;
    } E_HCSPARAMS
       

  • 4) E_HCCPARAMS | 0x0008

    typedef union  e_hccparams
    {
      struct
      {
       unsigned unused0 : 1;
       unsigned progr_frame_list_flg : 1;
       unsigned asynch_sched_park_cap : 1;
       unsigned reserv : 1;
       unsigned iso_sched_threshold : 4;
       unsigned eecp : 8;
       unsigned unused1 : 16;
      } b;
       unsigned long w;
    } E_HCCPARAMS
       

  • 5) E_HCSPPORTROUTE | 0x000C

    typedef union  e_hcspportroute
    {
      struct
      {
       unsigned hcsp_ortroute : 32;
      } b;
       unsigned long w;
    } E_HCSPPORTROUTE
       

  • 6) E_USBCMD | 0x0010

    typedef union  e_usbcmd
    {
      struct
      {
       unsigned run_stop : 1;
       unsigned host_controller_reset : 1;
       unsigned frame_list_size : 2;
       unsigned aperiod_sched_ena : 1;
       unsigned asynch_sched_ena : 1;
       unsigned inter_async_adv_doorbell : 1;
       unsigned light_host_contr_res : 1;
       unsigned asyn_sched_pm_count : 2;
       unsigned unused0 : 1;
       unsigned asyn_sched_pm_ena : 1;
       unsigned unused1 : 4;
       unsigned interrupt_threshold_control : 8;
       unsigned unused2 : 8;
      } b;
       unsigned long w;
    } E_USBCMD
       

  • 7) E_USBSTS | 0x0014

    typedef union  e_usbsts
    {
      struct
      {
       unsigned usb_int : 1;
       unsigned usb_err_int : 1;
       unsigned port_change_detect : 1;
       unsigned frame_list_rollover : 1;
       unsigned host_system_error : 1;
       unsigned inter_async_advance : 1;
       unsigned unused0 : 6;
       unsigned hc_halted : 1;
       unsigned reclamation : 1;
       unsigned period_sched_stat : 1;
       unsigned asynchr_sched_stat : 1;
       unsigned unused1 : 16;
      } b;
       unsigned long w;
    } E_USBSTS
       

  • 8) E_USBINTR | 0x0018

    typedef union  e_usbintr
    {
      struct
      {
       unsigned usb_inter_ena : 1;
       unsigned usb_err_inter_ena : 1;
       unsigned port_change_inter_ena : 1;
       unsigned frame_list_roll_ena : 1;
       unsigned host_syst_err_ena : 1;
       unsigned inter_async_adv_ena : 1;
       unsigned unused0 : 26;
      } b;
       unsigned long w;
    } E_USBINTR
       

  • 9) E_FRINDEX | 0x001C

    typedef union  e_frindex
    {
      struct
      {
       unsigned frame_index : 14;
       unsigned unused0 : 18;
      } b;
       unsigned long w;
    } E_FRINDEX
       

  • 10) E_CTRLDSSEGMENT | 0x0020

    typedef union  e_ctrldssegment
    {
      struct
      {
       unsigned unused0 : 32;
      } b;
       unsigned long w;
    } E_CTRLDSSEGMENT
       

  • 11) E_PERIODICLISTBASE | 0x0024

    typedef union  e_periodiclistbase
    {
      struct
      {
       unsigned unused0 : 12;
       unsigned base_addr : 20;
      } b;
       unsigned long w;
    } E_PERIODICLISTBASE
       

  • 12) E_ASYNCLISTADDR | 0x0028

    typedef union  e_asynclistaddr
    {
      struct
      {
       unsigned unused0 : 5;
       unsigned link_pointer : 27;
      } b;
       unsigned long w;
    } E_ASYNCLISTADDR
       

  • 13) E_TIMERINTERRUPT | 0x0030

    typedef union  e_timerinterrupt
    {
      struct
      {
       unsigned timer_ena : 1;
       unsigned standby_irq_stat : 1;
       unsigned standby_irq_ena : 1;
       unsigned unused0 : 5;
       unsigned timer_cfg : 2;
       unsigned unused1 : 22;
      } b;
       unsigned long w;
    } E_TIMERINTERRUPT
       

  • 14) E_CONFIGFLAG | 0x0050

    typedef union  e_configflag
    {
      struct
      {
       unsigned configure_flag : 1;
       unsigned unused0 : 31;
      } b;
       unsigned long w;
    } E_CONFIGFLAG
       

  • 15) E_PORTSC | 0x0054

    typedef union  e_portsc
    {
      struct
      {
       unsigned current_connect_status : 1;
       unsigned connect_status_change : 1;
       unsigned port_enabled_disabled : 1;
       unsigned port_enable_disable_change : 1;
       unsigned over_current_active : 1;
       unsigned over_current_change : 1;
       unsigned force_port_resume : 1;
       unsigned suspend : 1;
       unsigned port_reset : 1;
       unsigned unused0 : 1;
       unsigned line_status : 2;
       unsigned unused1 : 1;
       unsigned port_owner : 1;
       unsigned unused2 : 2;
       unsigned port_test_control : 4;
       unsigned wkcnnt_e : 1;
       unsigned wkdscnnt_e : 1;
       unsigned unused3 : 10;
      } b;
       unsigned long w;
    } E_PORTSC
       

  • 16) O_HcRevision | 0x0400

    typedef union  o_hcrevision
    {
      struct
      {
       unsigned revision : 8;
       unsigned unused0 : 24;
      } b;
       unsigned long w;
    } O_HcRevision
       

  • 17) O_HcControl | 0x0404

    typedef union  o_hccontrol
    {
      struct
      {
       unsigned control_bulk_service_ratio : 2;
       unsigned periodic_list_enable : 1;
       unsigned isochronous_enable : 1;
       unsigned control_list_enable : 1;
       unsigned bulk_list_enable : 1;
       unsigned host_contr_func_state : 2;
       unsigned interrupt_routing : 1;
       unsigned remote_wakeup_connected : 1;
       unsigned remote_wakeup_enable : 1;
       unsigned unused0 : 21;
      } b;
       unsigned long w;
    } O_HcControl
       

  • 18) O_HcCommandStatus | 0x0408

    typedef union  o_hccommandstatus
    {
      struct
      {
       unsigned host_controller_reset : 1;
       unsigned control_list_filled : 1;
       unsigned bulk_list_filled : 1;
       unsigned owership_change_request : 1;
       unsigned unused0 : 12;
       unsigned scheduling_overrun_count : 2;
       unsigned reserv : 14;
      } b;
       unsigned long w;
    } O_HcCommandStatus
       

  • 19) O_HcInterruptStatus | 0x040C

    typedef union  o_hcinterruptstatus
    {
      struct
      {
       unsigned scheduling_overrun : 1;
       unsigned write_back_done_head : 1;
       unsigned start_of_frame : 1;
       unsigned resume_detected : 1;
       unsigned un_recoverable_error : 1;
       unsigned frame_number_overflow : 1;
       unsigned root_hub_status_change : 1;
       unsigned unused0 : 25;
      } b;
       unsigned long w;
    } O_HcInterruptStatus
       

  • 20) O_HcInterruptEnable | 0x0410

    typedef union  o_hcinterruptenable
    {
      struct
      {
       unsigned scheduling_overrun : 1;
       unsigned write_back_done_head : 1;
       unsigned start_of_frame : 1;
       unsigned resume_detected : 1;
       unsigned unrecoverable_error : 1;
       unsigned frame_number_overflow : 1;
       unsigned root_hub_status_change : 1;
       unsigned unused0 : 24;
       unsigned master_interrupt_enable : 1;
      } b;
       unsigned long w;
    } O_HcInterruptEnable
       

  • 21) O_HcInterruptDisable | 0x0414

    typedef union  o_hcinterruptdisable
    {
      struct
      {
       unsigned scheduling_overrun : 1;
       unsigned write_back_done_head : 1;
       unsigned start_of_frame : 1;
       unsigned resume_detected : 1;
       unsigned unrecoverable_error : 1;
       unsigned frame_number_overflow : 1;
       unsigned root_hub_status_change : 1;
       unsigned unused0 : 24;
       unsigned master_interrupt_enable : 1;
      } b;
       unsigned long w;
    } O_HcInterruptDisable
       

  • 22) O_HcHCCA | 0x0418

    typedef union  o_hchcca
    {
      struct
      {
       unsigned hcca_7_0 : 8;
       unsigned cca_31_8 : 24;
      } b;
       unsigned long w;
    } O_HcHCCA
       

  • 23) O_HcPeriodCurrentED | 0x041C

    typedef union  o_hcperiodcurrented
    {
      struct
      {
       unsigned pced_3_0 : 4;
       unsigned pced_31_4 : 28;
      } b;
       unsigned long w;
    } O_HcPeriodCurrentED
       

  • 24) O_HcControlHeadED | 0x0420

    typedef union  o_hccontrolheaded
    {
      struct
      {
       unsigned ehcd_3_0 : 4;
       unsigned hcd_31_4 : 28;
      } b;
       unsigned long w;
    } O_HcControlHeadED
       

  • 25) O_HcControlCurrentED | 0x0424

    typedef union  o_hccontrolcurrented
    {
      struct
      {
       unsigned cced_3_0 : 4;
       unsigned cced_31_4 : 28;
      } b;
       unsigned long w;
    } O_HcControlCurrentED
       

  • 26) O_HcBulkHeadED | 0x0428

    typedef union  o_hcbulkheaded
    {
      struct
      {
       unsigned bhed_3_0 : 4;
       unsigned bhed_31_4 : 28;
      } b;
       unsigned long w;
    } O_HcBulkHeadED
       

  • 27) O_HcBulkCurrentED | 0x042C

    typedef union  o_hcbulkcurrented
    {
      struct
      {
       unsigned bulk_current_ed_3_0 : 4;
       unsigned bulk_current_ed_31_4 : 28;
      } b;
       unsigned long w;
    } O_HcBulkCurrentED
       

  • 28) O_HcDoneHead | 0x0430

    typedef union  o_hcdonehead
    {
      struct
      {
       unsigned hc_done_head_3_0 : 4;
       unsigned hc_done_head_31_4 : 28;
      } b;
       unsigned long w;
    } O_HcDoneHead
       

  • 29) O_HcFmInterval | 0x0434

    typedef union  o_hcfminterval
    {
      struct
      {
       unsigned frame_interval : 14;
       unsigned unused0 : 2;
       unsigned fs_largest_data_packet : 15;
       unsigned frame_interval_toggler : 1;
      } b;
       unsigned long w;
    } O_HcFmInterval
       

  • 30) O_HcFmRemaining | 0x0438

    typedef union  o_hcfmremaining
    {
      struct
      {
       unsigned frame_remaining : 14;
       unsigned unused0 : 17;
       unsigned frame_remaining_toggle : 1;
      } b;
       unsigned long w;
    } O_HcFmRemaining
       

  • 31) O_HcFmNumber | 0x043C

    typedef union  o_hcfmnumber
    {
      struct
      {
       unsigned frame_number : 16;
       unsigned unused0 : 16;
      } b;
       unsigned long w;
    } O_HcFmNumber
       

  • 32) O_HcPeriodicStart | 0x0440

    typedef union  o_hcperiodicstart
    {
      struct
      {
       unsigned periodic_start : 14;
       unsigned unused0 : 18;
      } b;
       unsigned long w;
    } O_HcPeriodicStart
       

  • 33) O_HcLSThreshold | 0x0444

    typedef union  o_hclsthreshold
    {
      struct
      {
       unsigned lst_hres_hold : 12;
       unsigned unused0 : 20;
      } b;
       unsigned long w;
    } O_HcLSThreshold
       

  • 34) O_HcRhDescriptorA | 0x0448

    typedef union  o_hcrhdescriptora
    {
      struct
      {
       unsigned number_down_stream_ports : 8;
       unsigned no_power_switching : 1;
       unsigned power_switching_mode : 1;
       unsigned device_type : 1;
       unsigned over_current_protection_mode : 1;
       unsigned no_over_current_protection : 1;
       unsigned unused0 : 11;
       unsigned potpgt : 8;
      } b;
       unsigned long w;
    } O_HcRhDescriptorA
       

  • 35) O_HcRhDescriptorB | 0x044C

    typedef union  o_hcrhdescriptorb
    {
      struct
      {
       unsigned device_removable : 16;
       unsigned port_power_control_mask : 16;
      } b;
       unsigned long w;
    } O_HcRhDescriptorB
       

  • 36) O_HcRhStatus | 0x0450

    typedef union  o_hcrhstatus
    {
      struct
      {
       unsigned local_power_status : 1;
       unsigned over_current_indicator : 1;
       unsigned unused0 : 13;
       unsigned device_remote_wakeup_enable : 1;
       unsigned local_power_startus_change : 1;
       unsigned over_current_indicator_chang : 1;
       unsigned unused1 : 13;
       unsigned clear_remote_wakeup_enable : 1;
      } b;
       unsigned long w;
    } O_HcRhStatus
       

  • 37) O_HcRhPortStatus | 0x0454

    typedef union  o_hcrhportstatus
    {
      struct
      {
       unsigned current_connect_status : 1;
       unsigned port_enable_status : 1;
       unsigned port_suspend_status : 1;
       unsigned ort_over_current_indicator : 1;
       unsigned port_reset_status : 1;
       unsigned unused0 : 3;
       unsigned port_power_status : 1;
       unsigned low_speed_device_attached : 1;
       unsigned unused1 : 6;
       unsigned connect_status_change : 1;
       unsigned port_enable_status_change : 1;
       unsigned port_suspend_status_change : 1;
       unsigned port_over_current_indicator_change : 1;
       unsigned port_reset_status_change : 1;
       unsigned unused2 : 11;
      } b;
       unsigned long w;
    } O_HcRhPortStatus
       

  • 38) USB_CTRL | 0x0800

    typedef union  usb_ctrl
    {
      struct
      {
       unsigned ulpi_bypass_enable : 1;
       unsigned unused0 : 1;
       unsigned rc16m_clk_enable : 1;
       unsigned unused1 : 5;
       unsigned incrx_align_ena : 1;
       unsigned incr4_ena : 1;
       unsigned incr8_ena : 1;
       unsigned incr16_ena : 1;
       unsigned pp2vbus : 1;
       unsigned unused2 : 5;
       unsigned resume_se0_trans : 1;
       unsigned unused3 : 1;
       unsigned ehci_hs_force : 1;
       unsigned unused4 : 3;
       unsigned simulation_mode : 1;
       unsigned ohci_count_select : 1;
       unsigned unused5 : 2;
       unsigned dma_transf_stat_ena : 1;
       unsigned unused6 : 3;
      } b;
       unsigned long w;
    } USB_CTRL
       

  • 39) PHY_Control | 0x0810

    typedef union  phy_control
    {
      struct
      {
       unsigned vatestenb : 2;
       unsigned commononn : 1;
       unsigned siddq : 1;
       unsigned vbusvldextsel : 1;
       unsigned vbusvldext : 1;
       unsigned idpullup : 1;
       unsigned loopbackenb : 1;
       unsigned unused0 : 24;
      } b;
       unsigned long w;
    } PHY_Control
       

  • 40) HSIC_PHY_tune1 | 0x081C

    typedef union  hsic_phy_tune1
    {
      struct
      {
       unsigned txsrtune : 4;
       unsigned txrpdtune : 2;
       unsigned txrputune : 2;
       unsigned unused0 : 25;
      } b;
       unsigned long w;
    } HSIC_PHY_tune1
       

  • 41) HSIC_PHY_tune2 | 0x0820

    typedef union  hsic_phy_tune2
    {
      struct
      {
       unsigned refclk_div : 4;
       unsigned siddq : 12;
       unsigned testdatain : 8;
       unsigned testaddr : 4;
       unsigned testclk : 1;
       unsigned testdataoutsel : 1;
       unsigned testburnin : 1;
       unsigned bist_en : 1;
      } b;
       unsigned long w;
    } HSIC_PHY_tune2
       

  • 42) HSIC_PHY_tune3 | 0x0824

    typedef union  hsic_phy_tune3
    {
      struct
      {
       unsigned non_hsic_mode_bist_done : 1;
       unsigned non_hsic_mode_bist_error : 1;
       unsigned hsic_testdata_out : 2;
       unsigned sic_bist_done : 1;
       unsigned hsic_bist_error : 1;
       unsigned unused0 : 26;
      } b;
       unsigned long w;
    } HSIC_PHY_tune3
       

  • 43) USB_SPDCR | 0x0828

    typedef union  usb_spdcr
    {
      struct
      {
       unsigned port_disable_control : 2;
       unsigned unused0 : 2;
       unsigned resume_sel : 1;
       unsigned unused1 : 11;
       unsigned se0_status : 1;
       unsigned unused2 : 15;
      } b;
       unsigned long w;
    } USB_SPDCR
       


  • Allwinner H616 Manual