|  | // Copyright 2017 The Fuchsia Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #pragma once | 
|  |  | 
|  | // size of phy port register block | 
|  | #define PHY_REGISTER_SIZE 32 | 
|  | #define U2P_R0_OFFSET   0 | 
|  | #define U2P_R1_OFFSET   4 | 
|  | #define U2P_R2_OFFSET   8 | 
|  |  | 
|  | #define USB_R0_OFFSET   0 | 
|  | #define USB_R1_OFFSET   4 | 
|  | #define USB_R2_OFFSET   8 | 
|  | #define USB_R3_OFFSET   12 | 
|  | #define USB_R4_OFFSET   16 | 
|  | #define USB_R5_OFFSET   20 | 
|  |  | 
|  | #define U2P_R0_BYPASS_SEL                       (1 << 0) | 
|  | #define U2P_R0_BYPASS_DM_EN                     (1 << 1) | 
|  | #define U2P_R0_BYPASS_DP_EN                     (1 << 2) | 
|  | #define U2P_R0_TXBITSTUFFENH                    (1 << 3) | 
|  | #define U2P_R0_TXBITSTUFFEN                     (1 << 4) | 
|  | #define U2P_R0_DMPULLDOWN                       (1 << 5) | 
|  | #define U2P_R0_DPPULLDOWN                       (1 << 6) | 
|  | #define U2P_R0_VBUSVLDEXTSEL                    (1 << 7) | 
|  | #define U2P_R0_VBUSVLDEXT                       (1 << 8) | 
|  | #define U2P_R0_ADP_PRB_EN                       (1 << 9) | 
|  | #define U2P_R0_ADP_DISCHRG                      (1 << 10) | 
|  | #define U2P_R0_ADP_CHRG                         (1 << 11) | 
|  | #define U2P_R0_DRVVBUS                          (1 << 12) | 
|  | #define U2P_R0_IDPULLUP                         (1 << 13) | 
|  | #define U2P_R0_LOOPBACKENB                      (1 << 14) | 
|  | #define U2P_R0_OTGDISABLE                       (1 << 15) | 
|  | #define U2P_R0_COMMONONN                        (1 << 16) | 
|  | #define U2P_R0_FSEL_START                       17 | 
|  | #define U2P_R0_FSEL_BITS                        3 | 
|  | #define U2P_R0_REFCLKSEL_START                  20 | 
|  | #define U2P_R0_REFCLKSEL_BITS                   2 | 
|  | #define U2P_R0_POR                              (1 << 22) | 
|  | #define U2P_R0_VATESTENB_START                  23 | 
|  | #define U2P_R0_VATESTENB_BITS                   2 | 
|  | #define U2P_R0_SET_IDDQ                         (1 << 25) | 
|  | #define U2P_R0_ATE_RESET                        (1 << 26) | 
|  | #define U2P_R0_FSV_MINUS                        (1 << 27) | 
|  | #define U2P_R0_FSV_PLUS                         (1 << 28) | 
|  | #define U2P_R0_BYPASS_DM_DATA                   (1 << 29) | 
|  | #define U2P_R0_BYPASS_DP_DATA                   (1 << 30) | 
|  |  | 
|  | #define U2P_R1_BURN_IN_TEST                     (1 << 0) | 
|  | #define U2P_R1_ACA_ENABLE                       (1 << 1) | 
|  | #define U2P_R1_DCD_ENABLE                       (1 << 2) | 
|  | #define U2P_R1_VDATSRCENB                       (1 << 3) | 
|  | #define U2P_R1_VDATDETENB                       (1 << 4) | 
|  | #define U2P_R1_CHRGSEL                          (1 << 5) | 
|  | #define U2P_R1_TX_PREEMP_PULSE_TUNE             (1 << 6) | 
|  | #define U2P_R1_TX_PREEMP_AMP_TUNE_START         7 | 
|  | #define U2P_R1_TX_PREEMP_AMP_TUNE_BITS          2 | 
|  | #define U2P_R1_TX_RES_TUNE_START                9 | 
|  | #define U2P_R1_TX_RES_TUNE_BITS                 2 | 
|  | #define U2P_R1_TX_RISE_TUNE_START               11 | 
|  | #define U2P_R1_TX_RISE_TUNE_BITS                2 | 
|  | #define U2P_R1_TX_VREF_TUNE_START               13 | 
|  | #define U2P_R1_TX_VREF_TUNE_BITS                4 | 
|  | #define U2P_R1_TX_FSLS_TUNE_START               17 | 
|  | #define U2P_R1_TX_FSLS_TUNE_BITS                4 | 
|  | #define U2P_R1_TX_HSXV_TUNE_START               21 | 
|  | #define U2P_R1_TX_HSXV_TUNE_BITS                2 | 
|  | #define U2P_R1_OTG_TUNE_START                   23 | 
|  | #define U2P_R1_OTG_TUNE_BITS                    3 | 
|  | #define U2P_R1_SQRX_TUNE_START                  26 | 
|  | #define U2P_R1_SQRX_TUNE_BITS                   3 | 
|  | #define U2P_R1_COMP_DIS_TUNE_START              29 | 
|  | #define U2P_R1_COMP_DIS_TUNE_BITS               3 | 
|  |  | 
|  | #define U2P_R2_DATA_IN_START                    0 | 
|  | #define U2P_R2_DATA_IN_BITS                     4 | 
|  | #define U2P_R2_DATA_IN_EN_START                 4 | 
|  | #define U2P_R2_DATA_IN_EN_BITS                  4 | 
|  | #define U2P_R2_ADDR_START                       8 | 
|  | #define U2P_R2_ADDR_BITS                        4 | 
|  | #define U2P_R2_DATA_OUT_SEL                     (1 << 12) | 
|  | #define U2P_R2_CLK                              (1 << 13) | 
|  | #define U2P_R2_DATA_OUT_START                    14 | 
|  | #define U2P_R2_DATA_OUT_BITS                     4 | 
|  | #define U2P_R2_ACA_PIN_RANGE_C                  (1 << 18) | 
|  | #define U2P_R2_ACA_PIN_RANGE_B                  (1 << 19) | 
|  | #define U2P_R2_ACA_PIN_RANGE_A                  (1 << 20) | 
|  | #define U2P_R2_ACA_PIN_GND                      (1 << 21) | 
|  | #define U2P_R2_ACA_PIN_FLOAT                    (1 << 22) | 
|  | #define U2P_R2_CHG_DET                          (1 << 23) | 
|  | #define U2P_R2_DEVICE_SESS_VLD                  (1 << 24) | 
|  | #define U2P_R2_ADP_PROBE                        (1 << 25) | 
|  | #define U2P_R2_ADP_SENSE                        (1 << 26) | 
|  | #define U2P_R2_SESSEND                          (1 << 27) | 
|  | #define U2P_R2_VBUSVALID                        (1 << 28) | 
|  | #define U2P_R2_BVALID                           (1 << 29) | 
|  | #define U2P_R2_AVALID                           (1 << 30) | 
|  | #define U2P_R2_IDDIG                            (1 << 31) | 
|  |  | 
|  | #define USB_R0_P30_FSEL_START                   0 | 
|  | #define USB_R0_P30_FSEL_BITS                    6 | 
|  | #define USB_R0_P30_PHY_RESET                    (1 << 6) | 
|  | #define USB_R0_P30_TEST_POWERDOWN_HSP           (1 << 7) | 
|  | #define USB_R0_P30_TEST_POWERDOWN_SSP           (1 << 8) | 
|  | #define USB_R0_P30_ACJT_LEVEL_START             9 | 
|  | #define USB_R0_P30_ACJT_LEVEL_BITS              5 | 
|  | #define USB_R0_P30_TX_VBOOST_LVL_START          14 | 
|  | #define USB_R0_P30_TX_VBOOST_LVL_BITS           3 | 
|  | #define USB_R0_P30_LANE0_TX2RX_LOOPBK           (1 << 17) | 
|  | #define USB_R0_P30_LANE0_EXT_PCLK_REQ           (1 << 18) | 
|  | #define USB_R0_P30_PCS_RX_LOS_MASK_VAL_START    19 | 
|  | #define USB_R0_P30_PCS_RX_LOS_MASK_VAL_BITS     10 | 
|  | #define USB_R0_U2D_SS_SCALEDOWN_MODE_START      29 | 
|  | #define USB_R0_U2D_SS_SCALEDOWN_MODE_BITS       2 | 
|  | #define USB_R0_U2D_ACT                          (1 << 31) | 
|  |  | 
|  | #define USB_R1_U3H_BIGENDIAN_GS                 (1 << 0) | 
|  | #define USB_R1_U3H_PME_EN                       (1 << 1) | 
|  | #define USB_R1_U3H_HUB_PORT_OVERCURRENT_START   2 | 
|  | #define USB_R1_U3H_HUB_PORT_OVERCURRENT_BITS    5 | 
|  | #define USB_R1_U3H_HUB_PORT_PERM_ATTACH_START   7 | 
|  | #define USB_R1_U3H_HUB_PORT_PERM_ATTACH_BITS    5 | 
|  | #define USB_R1_U3H_HOST_U2_PORT_DISABLE_START   12 | 
|  | #define USB_R1_U3H_HOST_U2_PORT_DISABLE_BITS    4 | 
|  | #define USB_R1_U3H_HOST_U3_PORT_DISABLE         (1 << 16) | 
|  | #define USB_R1_U3H_HOST_PORT_POWER_CONTROL_PRESENT  (1 << 17) | 
|  | #define USB_R1_U3H_HOST_MSI_ENABLE              (1 << 18) | 
|  | #define USB_R1_U3H_FLADJ_30MHZ_REG_START        19 | 
|  | #define USB_R1_U3H_FLADJ_30MHZ_REG_BITS         6 | 
|  | #define USB_R1_P30_PCS_TX_SWING_FULL_START      25 | 
|  | #define USB_R1_P30_PCS_TX_SWING_FULL            7 | 
|  |  | 
|  | #define USB_R2_P30_CR_DATA_IN_START             0 | 
|  | #define USB_R2_P30_CR_DATA_IN_BITS              16 | 
|  | #define USB_R2_P30_CR_READ                      (1 << 16) | 
|  | #define USB_R2_P30_CR_WRITE                     (1 << 17) | 
|  | #define USB_R2_P30_CR_CAP_ADDR                  (1 << 18) | 
|  | #define USB_R2_P30_CR_CAP_DATA                  (1 << 19) | 
|  | #define USB_R2_P30_PCS_TX_DEEMPH_3P5DB_START    20 | 
|  | #define USB_R2_P30_PCS_TX_DEEMPH_3P5DB_BITS     6 | 
|  | #define USB_R2_P30_PCS_TX_DEEMPH_6DB_START      26 | 
|  | #define USB_R2_P30_PCS_TX_DEEMPH_6DB_BITS       6 | 
|  |  | 
|  | #define USB_R3_P30_SSC_EN                       (1 << 0) | 
|  | #define USB_R3_P30_SSC_RANGE_START              1 | 
|  | #define USB_R3_P30_SSC_RANGE_BITS               3 | 
|  | #define USB_R3_P30_SSC_REF_CLK_SEL_START        4 | 
|  | #define USB_R3_P30_SSC_REF_CLK_SEL_BITS         9 | 
|  | #define USB_R3_P30_REF_SSP_EN                   (1 << 13) | 
|  | #define USB_R3_RESERVED14_START                 14 | 
|  | #define USB_R3_RESERVED14_BITS                  2 | 
|  | #define USB_R3_P30_LOS_BIAS_START               16 | 
|  | #define USB_R3_P30_LOS_BIAS_BITS                3 | 
|  | #define USB_R3_P30_LOS_LEVEL_START              19 | 
|  | #define USB_R3_P30_LOS_LEVEL_BITS               5 | 
|  | #define USB_R3_P30_MPLL_MULTIPLIER_START        24 | 
|  | #define USB_R3_P30_MPLL_MULTIPLIER_BITS         7 | 
|  |  | 
|  | #define USB_R4_P21_PORTRESET0                   (1 << 0) | 
|  | #define USB_R4_P21_SLEEPM0                      (1 << 1) | 
|  | #define USB_R4_MEM_PD_START                     2 | 
|  | #define USB_R4_MEM_PD_BITS                      2 | 
|  | #define USB_R4_P21_ONLY                         (1 << 4) | 
|  |  | 
|  | #define USB_R5_IDDIG_SYNC                       (1 << 0) | 
|  | #define USB_R5_IDDIG_REG                        (1 << 1) | 
|  | #define USB_R5_IDDIG_CFG_START                  2 | 
|  | #define USB_R5_IDDIG_CFG_BITS                   2 | 
|  | #define USB_R5_IDDIG_EN0                        (1 << 4) | 
|  | #define USB_R5_IDDIG_EN1                        (1 << 5) | 
|  | #define USB_R5_IDDIG_CURR                       (1 << 6) | 
|  | #define USB_R5_IDDIG_IRQ                        (1 << 7) | 
|  | #define USB_R5_IDDIG_TH_START                   8 | 
|  | #define USB_R5_IDDIG_TH_BITS                    8 | 
|  | #define USB_R5_IDDIG_CNT_START                  16 | 
|  | #define USB_R5_IDDIG_CNT_BITS                   8 | 
|  |  | 
|  | #define USB_R6_P30_CR_DATA_OUT_START            0 | 
|  | #define USB_R6_P30_CR_DATA_OUT_BITS             16 | 
|  | #define USB_R6_P30_CR_ACK                       (1 << 16) |