/********************************************************************************
 * Marvell GPL License Option
 *
 * If you received this File from Marvell, you may opt to use, redistribute and/or
 * modify this File in accordance with the terms and conditions of the General
 * Public License Version 2, June 1991 (the "GPL License"), a copy of which is
 * available along with the File in the license.txt file or by writing to the Free
 * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
 * on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
 *
 * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
 * DISCLAIMED.  The GPL License provides additional details about this warranty
 * disclaimer.
 ******************************************************************************/

//////
/// don't edit! auto-generated by docc: global.h
////////////////////////////////////////////////////////////
#ifndef global_h
#define global_h (){}


#include "ctypes.h"

#pragma pack(1)
#ifdef __cplusplus
  extern "C" {
#endif

#ifndef _DOCC_H_BITOPS_
#define _DOCC_H_BITOPS_ (){}

    #define _bSETMASK_(b)                                      ((b)<32 ? (1<<((b)&31)) : 0)
    #define _NSETMASK_(msb,lsb)                                (_bSETMASK_((msb)+1)-_bSETMASK_(lsb))
    #define _bCLRMASK_(b)                                      (~_bSETMASK_(b))
    #define _NCLRMASK_(msb,lsb)                                (~_NSETMASK_(msb,lsb))
    #define _BFGET_(r,msb,lsb)                                 (_NSETMASK_((msb)-(lsb),0)&((r)>>(lsb)))
    #define _BFSET_(r,msb,lsb,v)                               do{ (r)&=_NCLRMASK_(msb,lsb); (r)|=_NSETMASK_(msb,lsb)&((v)<<(lsb)); }while(0)

#endif



//////
/// 
/// $INTERFACE pll                                      (4,4)
///     ###
///     * SSPLL is a differential, wide range, and low power spread-spectrum PLL that is also capable of
///     * adding in a fixed frequency offset in about 1 ppm/step resolution.
///     * .. Input Frequency: Fref: 8 MHz ~ 2 GHz
///     * Output Frequency: Fout: 9 MHz ~ 3GHz for differential outputs CLKOUTP and CLKOUTN;
///     * 9 MHz ~ 2.1 GHz for single -ended output CLKOUT.
///     * .. Fout(CLKOUT) = Fref *(4*N/M) / CLKOUT_SE_DIV_SEL
///     * Fout(CLKOUTP, CLKOUTN) = Fref*(4*N/M) / CLKOUT_DIFF_DIV_SEL
///     * M: Reference Divider: 1 to 511.
///     * N: Feedback Divider: 1 to 511.
///     * VCODIV: VCO differential divider is controlled by CLKOUT_DIFF_DIV_SEL.
///     * VCO single-ended divider is controlled by CLKOUT_SE_DIV_SEL.
///     * Divider value = 1 1,2,3,4.128.
///     * Update Rate: Fref / M = 8 to 32 MHz (to maintain the PLL stability).
///     * NOTE: Although VCO can be operated between 12 ~ 3 GHz, the 1 ~ 1.5 GHz range is
///     * applicable only in the low power mode and cannot be used with the SSC function. In order to
///     * use the SSC function VCO must be operated above 1.5GHz.
///     * .. Cycle to Cycle Jitter (max): <30 ps.
///     * .. Programmable Reference and Feedback Divider.
///     * .. 1 ppm/step frequency offset resolution. Up to 50,000 ppm without changing the Feedback
///     * Divider setting.
///     * .. SSC frequency range: 30 KHz ~ 100 KHz
///     * .. SSC amplitude range: up to +/-5%. (SSC function is disabled by default.)
///     * .. Supporting both down-spread and center-spread modes.
///     * .. Current consumption( typical corner, AVDD=1.8 V, DVDD=1.05V): see sspll document
///     * .. Locking time: < 50 us
///     * .. Process Node: 28 nm LP
///     * .. Analog Power Supply: 1.8 V (+10%, -5%)
///     * .. Digital Power Supply: 1.05 V (±10%)
///     * Support Low DVDD Mode: Digtial Power Supply = 0.75V ~ 1.32V. See section 2.1 for detail.
///     * .. Output Duty Cycle: 45% - 55% for any post divider ratio
///     * .. Built-in Bandgap circuit.
///     ###
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (P-)
///               ###
///               * PLL Control register
///               ###
///               %unsigned 1  PU                        0x1
///                                    ###
///                                    * PLL Power-Up
///                                    * 1: power up.
///                                    * 0: power down.
///                                    ###
///               %unsigned 1  RESET                     0x0
///                                    ###
///                                    * Power On Reset. Active high, reset PLL and all logic.
///                                    * 1: reset.
///                                    * 0: no reset.
///                                    ###
///               %unsigned 1  AVDD1815_SEL              0x1
///                                    ###
///                                    * AVDD Select.
///                                    * Selects whether AVDD is 1.8V
///                                    * or 1.5V.
///                                    * 1: 1.8V
///                                    * 0: 1.5V
///                                    ###
///               %unsigned 9  REFDIV                    0x2
///                                    ###
///                                    * Reference Clock Divider
///                                    * Select.
///                                    * Divider = REFDIV[8:0]
///                                    * 9’h000 = divide by 1
///                                    * 9’h001 = divide by 1
///                                    * 9’h002 = divide by 2
///                                    * 9’h003 = divide by 3
///                                    * ...
///                                    * 9’h1FF = divide by 511.
///                                    * REFDIV[8:0] range is 1~250
///                                    ###
///               %unsigned 9  FBDIV                     0x20
///                                    ###
///                                    * Feedback Clock Divider Select.
///                                    * Divider= FBDIV [8:0]
///                                    * 9’h000 = divide by 1
///                                    * 9’h001 = divide by 1
///                                    * 9’h002 = divide by 2
///                                    * 9’h003 = divide by 3
///                                    * ...
///                                    * 9’h1FF = divide by 511.
///                                    * FBDIV range is 9 to 94
///                                    ###
///               %unsigned 2  VDDM                      0x1
///                                    ###
///                                    * VCO Supply Control.
///                                    * 11: 1.3 V
///                                    * 10: 1.25 V
///                                    * 01: 1.2 V
///                                    * 00: 1.15 V.
///                                    ###
///               %unsigned 3  VDDL                      0x4
///                                    ###
///                                    * Internal VDD Supply
///                                    * Control.
///                                    * 000:0.9V
///                                    * 001:0.95V
///                                    * 010:1V
///                                    * 011:1.05V
///                                    * 100:1.1V
///                                    * 101:1.15V
///                                    * 110:1.2V
///                                    * 111:1.2V.
///                                    ###
///               %unsigned 4  ICP                       0x1
///                                    ###
///                                    * Charge-pump Current Control Bits.
///                                    * 0000: 3 uA
///                                    * 0001: 3.75 uA
///                                    * 0010: 4.5 uA
///                                    * 0011: 5.25 uA
///                                    * 0100: 6 uA
///                                    * 0101: 7.5 uA
///                                    * 0110: 9 uA
///                                    * 0111: 10.5 uA
///                                    * 1000: 12 uA
///                                    * 1001: 15 uA
///                                    * 1010: 18 uA
///                                    * 1011: 21 uA
///                                    * 1100: 24 uA
///                                    * 1101: 30 uA
///                                    * 1110: 36 uA
///                                    * 1111: 42 uA.
///                                    * Note : ICP[3:0] = (10 MHz / Update Rate) * Default.
///                                    * If PU_BW_SEL = 1, then increase ICP value by 2x
///                                    ###
///               %unsigned 1  PLL_BW_SEL                0x0
///                                    ###
///                                    * PLL Bandwidth Select.
///                                    * 1: BW x 2
///                                    * 0: Normal PLL bandwidth.
///                                    * Note: Use bandwidth x 2 only if update rate is between 16 - 32 MHz.
///                                    * NOTE: Bandwidth x 2 is for special cases only. If used, the update rate must be between 16 MHz - 32 MHz.
///                                    ###
///               %%        1          # Stuffing bits...
///     # 0x00004 ctrl1                
///               %unsigned 4  KVCO                      0xA
///                                    ###
///                                    * KVCO Frequency Range
///                                    * Select.
///                                    * 0000~0111: Reserved.
///                                    * 1000:1.2GHz ~ 1.35GHz
///                                    * 1001:1.35GHz ~ 1.5GHz
///                                    * 1010:1.5GHz ~ 1.75GHz
///                                    * 1011:1.75GHz ~ 2.00GHz
///                                    * 1100: 2GHz ~ 2.2GHz
///                                    * 1101: 2.2GHz ~ 2.4GHz
///                                    * 1110: 2.4GHz ~ 2.6GHz
///                                    * 1111: 2.6GHz ~ 3GHz
///                                    * SSC mode is only supported for frequency >=2 GHz
///                                    * FVCO=((4*REFCLK/M)*N)/(1+OFFSET_PERCENT)
///                                    ###
///               %unsigned 2  CTUNE                     0x1
///                                    ###
///                                    * VCO Capacitor Select.
///                                    * 00: No Cap Loading
///                                    * 01: One Unit Cap Loading
///                                    * 10: Two Unit Cap Loading
///                                    * 11: Three Unit Cap Loading.
///                                    ###
///               %unsigned 3  CLKOUT_DIFF_DIV_SEL       0x2
///                                    ###
///                                    * Post Divider For Differential
///                                    * Output Clock.
///                                    * 000: 1
///                                    * 001: 2
///                                    * 010: 4
///                                    * 011: 8
///                                    * 100: 16
///                                    * 101: 32
///                                    * 110: 64
///                                    * 111:128
///                                    ###
///               %unsigned 3  CLKOUT_SE_DIV_SEL         0x2
///                                    ###
///                                    * Post Divider For
///                                    * Single-ended Output Clock.
///                                    * 000: 1
///                                    * 001: 2
///                                    * 010: 4
///                                    * 011: 8
///                                    * 100: 16
///                                    * 101: 32
///                                    * 110: 64
///                                    * 111:128
///                                    ###
///               %unsigned 1  CLKOUT_SOURCE_SEL         0x1
///                                    ###
///                                    * Differential Clock And
///                                    * Single-ended Clock Source Control.
///                                    * 0: from the phase interpolator.
///                                    * 1: from VCO directly.
///                                    * Note: This is used in test mode only. Select ‘1’ for normal operation.
///                                    ###
///               %unsigned 1  CLKOUT_DIFF_EN            0x1
///                                    ###
///                                    * Differential Clock Enable.
///                                    * 0:Disable differential clock
///                                    * 1:Enable differential clock
///                                    ###
///               %unsigned 1  BYPASS_EN                 0x0
///                                    ###
///                                    * PLL Clock Bypass Enable.
///                                    * 1: The PLL is bypassed. CLKOUT is derived from REFCLK.
///                                    * 0: CLKOUT is derived from the PLL clock.
///                                    * NOTE: Bypass only works for the single ended clock.
///                                    * If BYPASS_EN==1. CLKOUT= REFCLK.
///                                    * Make sure Fvco/CLKOUT_SE_DIV_SEL< 2.1 GHz, when using the bypass function.
///                                    ###
///               %unsigned 1  CLKOUT_SE_GATING_EN       0x0
///                                    ###
///                                    * Clock Output Gating Control.
///                                    * Selection for using the PLL lock signal to gate the output clock.
///                                    * 0: The PLL_LOCK signal won't affect the output clock, CLKOUT
///                                    * 1: Use PLL_LOCK signal to gate the output clock, CLKOUT.
///                                    ###
///               %unsigned 1  FBCLK_EXT_SEL             0x0
///                                    ###
///                                    * External Or Internal Feedback
///                                    * Clock Select.
///                                    * 0: select internal feedback clock
///                                    * 1: select external feedback clock.
///                                    * Note: For most applications the external feedback clock is not used. In these cases use the default selection "0".
///                                    ###
///               %unsigned 6  FBCDLY                    0x0
///                                    ###
///                                    * Fine Tune Delay Select
///                                    * Between REFCLK And FBCLK_EXT When FBCLK_EXT_SEL = 1.
///                                    * FBCDLY[5] is the sign bit.
///                                    * 1 = FBCLK_EXT will lag REFCLK.
///                                    * 0 = FBCLK_EXT will lead REFCLK.
///                                    * FBCDLY[4:0] decides the actual amount of delay.
///                                    * 00000: No delay.
///                                    * Each additional step has these
///                                    * delays:
///                                    * 00h = No delay
///                                    * 01h = 15 - 50 ps phase difference
///                                    * 02h = 30 - 100 ps phase difference
///                                    * 03h = 45 - 150 ps phase difference
///                                    * ...
///                                    * 3Fh = 945 ps - 3150 ps phase difference.
///                                    * Note: Used in DSPLL application, do not use in regular PLL application.
///                                    ###
///               %unsigned 3  FD                        0x4
///                                    ###
///                                    * Tune Frequency Detector Precision
///                                    * FD[0]: Reserved.
///                                    * FD[2:1] FD precision
///                                    * 00 +/- 0.1%
///                                    * 01 +/- 0.2%
///                                    * 10 +/- 0.4%
///                                    * 11 +/- 0.8%.
///                                    ###
///               %unsigned 4  INTPI                     0x6
///                                    ###
///                                    * Phase Interpolator Bias Current Select.
///                                    * 1.2 ~ 1.5 GHz NOT SUPPORTED
///                                    * 0101: (VCO:1.5 ~ 2 GHz)
///                                    * 0110: (VCO:2 ~ 2.5 GHz)
///                                    * 1000: (VCO:2.5 ~ 3GHz).
///                                    * NOTE: VCO running frequency below 1.5 GHz not supported.
///                                    ###
///               %%        2          # Stuffing bits...
///     # 0x00008 ctrl2                
///               %unsigned 3  INTPR                     0x4
///                                    ###
///                                    * Phase Interpolator Resistor Select.
///                                    * NOTE: VCO running frequency below 1.5 GHz not supported.
///                                    ###
///               %unsigned 1  PI_EN                     0x0
///                                    ###
///                                    * Phase Interpolator Enable.
///                                    * 1: Enable phase interpolator
///                                    * 0: Disable phase interpolator.
///                                    ###
///               %unsigned 1  PI_LOOP_MODE              0x0
///                                    ###
///                                    * Phase Interpolator Loop Control.
///                                    * 1: PI is in the PLL loop.
///                                    * 0: PI is out of the PLL loop
///                                    ###
///               %unsigned 1  CLK_DET_EN                0x1
///                                    ###
///                                    * PI Output Clock Enable. This selection enables the PI output clock for the internal reset circuit
///                                    ###
///               %unsigned 1  RESET_PI                  0x0
///                                    ###
///                                    * External Interpolator Reset.
///                                    * 1: reset.
///                                    * 0: no reset.
///                                    ###
///               %unsigned 1  RESET_SSC                 0x0
///                                    ###
///                                    * SSC reset
///                                    * 0 : No reset
///                                    * 1 : Reset
///                                    ###
///               %unsigned 1  FREQ_OFFSET_EN            0x0
///                                    ###
///                                    * Frequency Offset Enable.
///                                    * 0: Disable
///                                    * 1: Enable.
///                                    ###
///               %unsigned 17 FREQ_OFFSET               0x0
///                                    ###
///                                    * Frequency Offset Value
///                                    * Control.
///                                    * [16]: Sign-Bit.
///                                    * 0: Frequency down
///                                    * 1: Frequency up
///                                    * [15:0] : 1 LSB 1 ppm, upto 5%
///                                    * 1LSB=10e6/(4*128 *2048) ppm
///                                    * [16]=0--->Sign= 1
///                                    * [16]=1--->Sign= -1
///                                    * Fout = Fvco/ (1 + Sign* FREQ_OFFSET[15:0] *1LSB)
///                                    ###
///               %unsigned 1  FREQ_OFFSET_MODE_SELECTION 0x0
///                                    ###
///                                    * Frequency Offset Mode Select.
///                                    * 0: FREQ_OFFSET[16:0] is updated by FREQ_OFFSET_VALID
///                                    * 1: FREQ_OFFSET[16:0] is sampled by CK_DIV64_OUT
///                                    * (It has to be valid at the rising edge of CK_DIV64_OUT).
///                                    * Note: For special application only. Use FREQ_OFFSET_VALID to update FREQ_OFFSET[16:0] by default.
///                                    ###
///               %unsigned 1  FREQ_OFFSET_VALID         0x0
///                                    ###
///                                    * Frequency Offset Value Valid.
///                                    * Indicates that frequency offset value (FREQ_OFFSET[16:0]) is valid.
///                                    * Note:
///                                    * 1) A rising edge will trigger the frequency offset generation circuit to read in the FREQ_OFFSET [16:0] value. The pulse width has to be no less than 50 ns.
///                                    * 2) This signal is only needed when FREQ_OFFSET_MODE_SELECTION=0.
///                                    ###
///               %unsigned 1  SSC_CLK_EN                0x0
///                                    ###
///                                    * SSC Clock Enable.
///                                    * This selection enables the PI output clock for SSC digital logic.
///                                    ###
///               %unsigned 1  SSC_MODE                  0x1
///                                    ###
///                                    * SSC Mode Select.
///                                    * 0: center spread
///                                    * 1: down spread.
///                                    ###
///               %%        2          # Stuffing bits...
///     # 0x0000C ctrl3                
///               %unsigned 16 SSC_FREQ_DIV              0x0
///                                    ###
///                                    * SSC Frequency Select.
///                                    ###
///               %unsigned 11 SSC_RNGE                  0x0
///                                    ###
///                                    * SSC Range Select. SSC_RNGE[10:0] = Desired SSC amplitude /(SSC_FREQ_DIV[14:0]*2^(-28)).
///                                    * Rounding to integer required.
///                                    ###
///               %unsigned 4  TEST_ANA                  0x0
///                                    ###
///                                    * Analog test point
///                                    ###
///               %%        1          # Stuffing bits...
///     # 0x00010 ctrl4                
///               %unsigned 8  RESERVE_IN                0x0
///                                    ###
///                                    * Reserved input pins
///                                    ###
///               %%        24         # Stuffing bits...
///     @ 0x00014 status               (R-)
///               ###
///               * PLL status register
///               ###
///               %unsigned 1  PLL_LOCK                  
///                                    ###
///                                    * PLL Lock Detect.
///                                    * 1: PLL locked.
///                                    * 0: PLL not locked.
///                                    * Note:
///                                    * After PLL is powered up, wait for 50 us to check for the lock status.
///                                    * In normal operation, when PLL_LOCK signal is detected low, sample the signal again after 100 us to confirm the status.
///                                    * This signal is for testing purpose only, do not use it for any functional use.
///                                    ###
///               %unsigned 1  CLK_CFMOD                 
///                                    ###
///                                    * Clock Mode Output.
///                                    *  For down spread and
///                                    * PI_LOOP_MODE = 0, output
///                                    * is 0.
///                                    *  For down spread and
///                                    * PI_LOOP_MODE = 1, output
///                                    * is 1.
///                                    *  For center spread, output a
///                                    * clock with SSC modulation
///                                    * frequency.
///                                    ###
///               %unsigned 1  CLK_FMOD                  
///                                    ###
///                                    * Clock Output And Modulation
///                                    * Frequency.
///                                    * For down spread, output a clock
///                                    * with SSC modulation frequency.
///                                    * For center spread, output a clock
///                                    * with double SSC modulation
///                                    * frequency.
///                                    ###
///               %unsigned 8  RESERVE_OUT               
///                                    ###
///                                    * Reserve Output Register pins.
///                                    ###
///               %%        21         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:      24B, bits:     141b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_pll
#define h_pll (){}

    #define     RA_pll_ctrl                                    0x0000

    #define     BA_pll_ctrl_PU                                 0x0000
    #define     B16pll_ctrl_PU                                 0x0000
    #define   LSb32pll_ctrl_PU                                    0
    #define   LSb16pll_ctrl_PU                                    0
    #define       bpll_ctrl_PU                                 1
    #define   MSK32pll_ctrl_PU                                    0x00000001

    #define     BA_pll_ctrl_RESET                              0x0000
    #define     B16pll_ctrl_RESET                              0x0000
    #define   LSb32pll_ctrl_RESET                                 1
    #define   LSb16pll_ctrl_RESET                                 1
    #define       bpll_ctrl_RESET                              1
    #define   MSK32pll_ctrl_RESET                                 0x00000002

    #define     BA_pll_ctrl_AVDD1815_SEL                       0x0000
    #define     B16pll_ctrl_AVDD1815_SEL                       0x0000
    #define   LSb32pll_ctrl_AVDD1815_SEL                          2
    #define   LSb16pll_ctrl_AVDD1815_SEL                          2
    #define       bpll_ctrl_AVDD1815_SEL                       1
    #define   MSK32pll_ctrl_AVDD1815_SEL                          0x00000004

    #define     BA_pll_ctrl_REFDIV                             0x0000
    #define     B16pll_ctrl_REFDIV                             0x0000
    #define   LSb32pll_ctrl_REFDIV                                3
    #define   LSb16pll_ctrl_REFDIV                                3
    #define       bpll_ctrl_REFDIV                             9
    #define   MSK32pll_ctrl_REFDIV                                0x00000FF8

    #define     BA_pll_ctrl_FBDIV                              0x0001
    #define     B16pll_ctrl_FBDIV                              0x0000
    #define   LSb32pll_ctrl_FBDIV                                 12
    #define   LSb16pll_ctrl_FBDIV                                 12
    #define       bpll_ctrl_FBDIV                              9
    #define   MSK32pll_ctrl_FBDIV                                 0x001FF000

    #define     BA_pll_ctrl_VDDM                               0x0002
    #define     B16pll_ctrl_VDDM                               0x0002
    #define   LSb32pll_ctrl_VDDM                                  21
    #define   LSb16pll_ctrl_VDDM                                  5
    #define       bpll_ctrl_VDDM                               2
    #define   MSK32pll_ctrl_VDDM                                  0x00600000

    #define     BA_pll_ctrl_VDDL                               0x0002
    #define     B16pll_ctrl_VDDL                               0x0002
    #define   LSb32pll_ctrl_VDDL                                  23
    #define   LSb16pll_ctrl_VDDL                                  7
    #define       bpll_ctrl_VDDL                               3
    #define   MSK32pll_ctrl_VDDL                                  0x03800000

    #define     BA_pll_ctrl_ICP                                0x0003
    #define     B16pll_ctrl_ICP                                0x0002
    #define   LSb32pll_ctrl_ICP                                   26
    #define   LSb16pll_ctrl_ICP                                   10
    #define       bpll_ctrl_ICP                                4
    #define   MSK32pll_ctrl_ICP                                   0x3C000000

    #define     BA_pll_ctrl_PLL_BW_SEL                         0x0003
    #define     B16pll_ctrl_PLL_BW_SEL                         0x0002
    #define   LSb32pll_ctrl_PLL_BW_SEL                            30
    #define   LSb16pll_ctrl_PLL_BW_SEL                            14
    #define       bpll_ctrl_PLL_BW_SEL                         1
    #define   MSK32pll_ctrl_PLL_BW_SEL                            0x40000000

    #define     RA_pll_ctrl1                                   0x0004

    #define     BA_pll_ctrl_KVCO                               0x0004
    #define     B16pll_ctrl_KVCO                               0x0004
    #define   LSb32pll_ctrl_KVCO                                  0
    #define   LSb16pll_ctrl_KVCO                                  0
    #define       bpll_ctrl_KVCO                               4
    #define   MSK32pll_ctrl_KVCO                                  0x0000000F

    #define     BA_pll_ctrl_CTUNE                              0x0004
    #define     B16pll_ctrl_CTUNE                              0x0004
    #define   LSb32pll_ctrl_CTUNE                                 4
    #define   LSb16pll_ctrl_CTUNE                                 4
    #define       bpll_ctrl_CTUNE                              2
    #define   MSK32pll_ctrl_CTUNE                                 0x00000030

    #define     BA_pll_ctrl_CLKOUT_DIFF_DIV_SEL                0x0004
    #define     B16pll_ctrl_CLKOUT_DIFF_DIV_SEL                0x0004
    #define   LSb32pll_ctrl_CLKOUT_DIFF_DIV_SEL                   6
    #define   LSb16pll_ctrl_CLKOUT_DIFF_DIV_SEL                   6
    #define       bpll_ctrl_CLKOUT_DIFF_DIV_SEL                3
    #define   MSK32pll_ctrl_CLKOUT_DIFF_DIV_SEL                   0x000001C0

    #define     BA_pll_ctrl_CLKOUT_SE_DIV_SEL                  0x0005
    #define     B16pll_ctrl_CLKOUT_SE_DIV_SEL                  0x0004
    #define   LSb32pll_ctrl_CLKOUT_SE_DIV_SEL                     9
    #define   LSb16pll_ctrl_CLKOUT_SE_DIV_SEL                     9
    #define       bpll_ctrl_CLKOUT_SE_DIV_SEL                  3
    #define   MSK32pll_ctrl_CLKOUT_SE_DIV_SEL                     0x00000E00

    #define     BA_pll_ctrl_CLKOUT_SOURCE_SEL                  0x0005
    #define     B16pll_ctrl_CLKOUT_SOURCE_SEL                  0x0004
    #define   LSb32pll_ctrl_CLKOUT_SOURCE_SEL                     12
    #define   LSb16pll_ctrl_CLKOUT_SOURCE_SEL                     12
    #define       bpll_ctrl_CLKOUT_SOURCE_SEL                  1
    #define   MSK32pll_ctrl_CLKOUT_SOURCE_SEL                     0x00001000

    #define     BA_pll_ctrl_CLKOUT_DIFF_EN                     0x0005
    #define     B16pll_ctrl_CLKOUT_DIFF_EN                     0x0004
    #define   LSb32pll_ctrl_CLKOUT_DIFF_EN                        13
    #define   LSb16pll_ctrl_CLKOUT_DIFF_EN                        13
    #define       bpll_ctrl_CLKOUT_DIFF_EN                     1
    #define   MSK32pll_ctrl_CLKOUT_DIFF_EN                        0x00002000

    #define     BA_pll_ctrl_BYPASS_EN                          0x0005
    #define     B16pll_ctrl_BYPASS_EN                          0x0004
    #define   LSb32pll_ctrl_BYPASS_EN                             14
    #define   LSb16pll_ctrl_BYPASS_EN                             14
    #define       bpll_ctrl_BYPASS_EN                          1
    #define   MSK32pll_ctrl_BYPASS_EN                             0x00004000

    #define     BA_pll_ctrl_CLKOUT_SE_GATING_EN                0x0005
    #define     B16pll_ctrl_CLKOUT_SE_GATING_EN                0x0004
    #define   LSb32pll_ctrl_CLKOUT_SE_GATING_EN                   15
    #define   LSb16pll_ctrl_CLKOUT_SE_GATING_EN                   15
    #define       bpll_ctrl_CLKOUT_SE_GATING_EN                1
    #define   MSK32pll_ctrl_CLKOUT_SE_GATING_EN                   0x00008000

    #define     BA_pll_ctrl_FBCLK_EXT_SEL                      0x0006
    #define     B16pll_ctrl_FBCLK_EXT_SEL                      0x0006
    #define   LSb32pll_ctrl_FBCLK_EXT_SEL                         16
    #define   LSb16pll_ctrl_FBCLK_EXT_SEL                         0
    #define       bpll_ctrl_FBCLK_EXT_SEL                      1
    #define   MSK32pll_ctrl_FBCLK_EXT_SEL                         0x00010000

    #define     BA_pll_ctrl_FBCDLY                             0x0006
    #define     B16pll_ctrl_FBCDLY                             0x0006
    #define   LSb32pll_ctrl_FBCDLY                                17
    #define   LSb16pll_ctrl_FBCDLY                                1
    #define       bpll_ctrl_FBCDLY                             6
    #define   MSK32pll_ctrl_FBCDLY                                0x007E0000

    #define     BA_pll_ctrl_FD                                 0x0006
    #define     B16pll_ctrl_FD                                 0x0006
    #define   LSb32pll_ctrl_FD                                    23
    #define   LSb16pll_ctrl_FD                                    7
    #define       bpll_ctrl_FD                                 3
    #define   MSK32pll_ctrl_FD                                    0x03800000

    #define     BA_pll_ctrl_INTPI                              0x0007
    #define     B16pll_ctrl_INTPI                              0x0006
    #define   LSb32pll_ctrl_INTPI                                 26
    #define   LSb16pll_ctrl_INTPI                                 10
    #define       bpll_ctrl_INTPI                              4
    #define   MSK32pll_ctrl_INTPI                                 0x3C000000

    #define     RA_pll_ctrl2                                   0x0008

    #define     BA_pll_ctrl_INTPR                              0x0008
    #define     B16pll_ctrl_INTPR                              0x0008
    #define   LSb32pll_ctrl_INTPR                                 0
    #define   LSb16pll_ctrl_INTPR                                 0
    #define       bpll_ctrl_INTPR                              3
    #define   MSK32pll_ctrl_INTPR                                 0x00000007

    #define     BA_pll_ctrl_PI_EN                              0x0008
    #define     B16pll_ctrl_PI_EN                              0x0008
    #define   LSb32pll_ctrl_PI_EN                                 3
    #define   LSb16pll_ctrl_PI_EN                                 3
    #define       bpll_ctrl_PI_EN                              1
    #define   MSK32pll_ctrl_PI_EN                                 0x00000008

    #define     BA_pll_ctrl_PI_LOOP_MODE                       0x0008
    #define     B16pll_ctrl_PI_LOOP_MODE                       0x0008
    #define   LSb32pll_ctrl_PI_LOOP_MODE                          4
    #define   LSb16pll_ctrl_PI_LOOP_MODE                          4
    #define       bpll_ctrl_PI_LOOP_MODE                       1
    #define   MSK32pll_ctrl_PI_LOOP_MODE                          0x00000010

    #define     BA_pll_ctrl_CLK_DET_EN                         0x0008
    #define     B16pll_ctrl_CLK_DET_EN                         0x0008
    #define   LSb32pll_ctrl_CLK_DET_EN                            5
    #define   LSb16pll_ctrl_CLK_DET_EN                            5
    #define       bpll_ctrl_CLK_DET_EN                         1
    #define   MSK32pll_ctrl_CLK_DET_EN                            0x00000020

    #define     BA_pll_ctrl_RESET_PI                           0x0008
    #define     B16pll_ctrl_RESET_PI                           0x0008
    #define   LSb32pll_ctrl_RESET_PI                              6
    #define   LSb16pll_ctrl_RESET_PI                              6
    #define       bpll_ctrl_RESET_PI                           1
    #define   MSK32pll_ctrl_RESET_PI                              0x00000040

    #define     BA_pll_ctrl_RESET_SSC                          0x0008
    #define     B16pll_ctrl_RESET_SSC                          0x0008
    #define   LSb32pll_ctrl_RESET_SSC                             7
    #define   LSb16pll_ctrl_RESET_SSC                             7
    #define       bpll_ctrl_RESET_SSC                          1
    #define   MSK32pll_ctrl_RESET_SSC                             0x00000080

    #define     BA_pll_ctrl_FREQ_OFFSET_EN                     0x0009
    #define     B16pll_ctrl_FREQ_OFFSET_EN                     0x0008
    #define   LSb32pll_ctrl_FREQ_OFFSET_EN                        8
    #define   LSb16pll_ctrl_FREQ_OFFSET_EN                        8
    #define       bpll_ctrl_FREQ_OFFSET_EN                     1
    #define   MSK32pll_ctrl_FREQ_OFFSET_EN                        0x00000100

    #define     BA_pll_ctrl_FREQ_OFFSET                        0x0009
    #define     B16pll_ctrl_FREQ_OFFSET                        0x0008
    #define   LSb32pll_ctrl_FREQ_OFFSET                           9
    #define   LSb16pll_ctrl_FREQ_OFFSET                           9
    #define       bpll_ctrl_FREQ_OFFSET                        17
    #define   MSK32pll_ctrl_FREQ_OFFSET                           0x03FFFE00

    #define     BA_pll_ctrl_FREQ_OFFSET_MODE_SELECTION         0x000B
    #define     B16pll_ctrl_FREQ_OFFSET_MODE_SELECTION         0x000A
    #define   LSb32pll_ctrl_FREQ_OFFSET_MODE_SELECTION            26
    #define   LSb16pll_ctrl_FREQ_OFFSET_MODE_SELECTION            10
    #define       bpll_ctrl_FREQ_OFFSET_MODE_SELECTION         1
    #define   MSK32pll_ctrl_FREQ_OFFSET_MODE_SELECTION            0x04000000

    #define     BA_pll_ctrl_FREQ_OFFSET_VALID                  0x000B
    #define     B16pll_ctrl_FREQ_OFFSET_VALID                  0x000A
    #define   LSb32pll_ctrl_FREQ_OFFSET_VALID                     27
    #define   LSb16pll_ctrl_FREQ_OFFSET_VALID                     11
    #define       bpll_ctrl_FREQ_OFFSET_VALID                  1
    #define   MSK32pll_ctrl_FREQ_OFFSET_VALID                     0x08000000

    #define     BA_pll_ctrl_SSC_CLK_EN                         0x000B
    #define     B16pll_ctrl_SSC_CLK_EN                         0x000A
    #define   LSb32pll_ctrl_SSC_CLK_EN                            28
    #define   LSb16pll_ctrl_SSC_CLK_EN                            12
    #define       bpll_ctrl_SSC_CLK_EN                         1
    #define   MSK32pll_ctrl_SSC_CLK_EN                            0x10000000

    #define     BA_pll_ctrl_SSC_MODE                           0x000B
    #define     B16pll_ctrl_SSC_MODE                           0x000A
    #define   LSb32pll_ctrl_SSC_MODE                              29
    #define   LSb16pll_ctrl_SSC_MODE                              13
    #define       bpll_ctrl_SSC_MODE                           1
    #define   MSK32pll_ctrl_SSC_MODE                              0x20000000

    #define     RA_pll_ctrl3                                   0x000C

    #define     BA_pll_ctrl_SSC_FREQ_DIV                       0x000C
    #define     B16pll_ctrl_SSC_FREQ_DIV                       0x000C
    #define   LSb32pll_ctrl_SSC_FREQ_DIV                          0
    #define   LSb16pll_ctrl_SSC_FREQ_DIV                          0
    #define       bpll_ctrl_SSC_FREQ_DIV                       16
    #define   MSK32pll_ctrl_SSC_FREQ_DIV                          0x0000FFFF

    #define     BA_pll_ctrl_SSC_RNGE                           0x000E
    #define     B16pll_ctrl_SSC_RNGE                           0x000E
    #define   LSb32pll_ctrl_SSC_RNGE                              16
    #define   LSb16pll_ctrl_SSC_RNGE                              0
    #define       bpll_ctrl_SSC_RNGE                           11
    #define   MSK32pll_ctrl_SSC_RNGE                              0x07FF0000

    #define     BA_pll_ctrl_TEST_ANA                           0x000F
    #define     B16pll_ctrl_TEST_ANA                           0x000E
    #define   LSb32pll_ctrl_TEST_ANA                              27
    #define   LSb16pll_ctrl_TEST_ANA                              11
    #define       bpll_ctrl_TEST_ANA                           4
    #define   MSK32pll_ctrl_TEST_ANA                              0x78000000

    #define     RA_pll_ctrl4                                   0x0010

    #define     BA_pll_ctrl_RESERVE_IN                         0x0010
    #define     B16pll_ctrl_RESERVE_IN                         0x0010
    #define   LSb32pll_ctrl_RESERVE_IN                            0
    #define   LSb16pll_ctrl_RESERVE_IN                            0
    #define       bpll_ctrl_RESERVE_IN                         8
    #define   MSK32pll_ctrl_RESERVE_IN                            0x000000FF
    ///////////////////////////////////////////////////////////
    #define     RA_pll_status                                  0x0014

    #define     BA_pll_status_PLL_LOCK                         0x0014
    #define     B16pll_status_PLL_LOCK                         0x0014
    #define   LSb32pll_status_PLL_LOCK                            0
    #define   LSb16pll_status_PLL_LOCK                            0
    #define       bpll_status_PLL_LOCK                         1
    #define   MSK32pll_status_PLL_LOCK                            0x00000001

    #define     BA_pll_status_CLK_CFMOD                        0x0014
    #define     B16pll_status_CLK_CFMOD                        0x0014
    #define   LSb32pll_status_CLK_CFMOD                           1
    #define   LSb16pll_status_CLK_CFMOD                           1
    #define       bpll_status_CLK_CFMOD                        1
    #define   MSK32pll_status_CLK_CFMOD                           0x00000002

    #define     BA_pll_status_CLK_FMOD                         0x0014
    #define     B16pll_status_CLK_FMOD                         0x0014
    #define   LSb32pll_status_CLK_FMOD                            2
    #define   LSb16pll_status_CLK_FMOD                            2
    #define       bpll_status_CLK_FMOD                         1
    #define   MSK32pll_status_CLK_FMOD                            0x00000004

    #define     BA_pll_status_RESERVE_OUT                      0x0014
    #define     B16pll_status_RESERVE_OUT                      0x0014
    #define   LSb32pll_status_RESERVE_OUT                         3
    #define   LSb16pll_status_RESERVE_OUT                         3
    #define       bpll_status_RESERVE_OUT                      8
    #define   MSK32pll_status_RESERVE_OUT                         0x000007F8
    ///////////////////////////////////////////////////////////

    typedef struct SIE_pll {
    ///////////////////////////////////////////////////////////
    #define   GET32pll_ctrl_PU(r32)                            _BFGET_(r32, 0, 0)
    #define   SET32pll_ctrl_PU(r32,v)                          _BFSET_(r32, 0, 0,v)
    #define   GET16pll_ctrl_PU(r16)                            _BFGET_(r16, 0, 0)
    #define   SET16pll_ctrl_PU(r16,v)                          _BFSET_(r16, 0, 0,v)

    #define   GET32pll_ctrl_RESET(r32)                         _BFGET_(r32, 1, 1)
    #define   SET32pll_ctrl_RESET(r32,v)                       _BFSET_(r32, 1, 1,v)
    #define   GET16pll_ctrl_RESET(r16)                         _BFGET_(r16, 1, 1)
    #define   SET16pll_ctrl_RESET(r16,v)                       _BFSET_(r16, 1, 1,v)

    #define   GET32pll_ctrl_AVDD1815_SEL(r32)                  _BFGET_(r32, 2, 2)
    #define   SET32pll_ctrl_AVDD1815_SEL(r32,v)                _BFSET_(r32, 2, 2,v)
    #define   GET16pll_ctrl_AVDD1815_SEL(r16)                  _BFGET_(r16, 2, 2)
    #define   SET16pll_ctrl_AVDD1815_SEL(r16,v)                _BFSET_(r16, 2, 2,v)

    #define   GET32pll_ctrl_REFDIV(r32)                        _BFGET_(r32,11, 3)
    #define   SET32pll_ctrl_REFDIV(r32,v)                      _BFSET_(r32,11, 3,v)
    #define   GET16pll_ctrl_REFDIV(r16)                        _BFGET_(r16,11, 3)
    #define   SET16pll_ctrl_REFDIV(r16,v)                      _BFSET_(r16,11, 3,v)

    #define   GET32pll_ctrl_FBDIV(r32)                         _BFGET_(r32,20,12)
    #define   SET32pll_ctrl_FBDIV(r32,v)                       _BFSET_(r32,20,12,v)

    #define   GET32pll_ctrl_VDDM(r32)                          _BFGET_(r32,22,21)
    #define   SET32pll_ctrl_VDDM(r32,v)                        _BFSET_(r32,22,21,v)
    #define   GET16pll_ctrl_VDDM(r16)                          _BFGET_(r16, 6, 5)
    #define   SET16pll_ctrl_VDDM(r16,v)                        _BFSET_(r16, 6, 5,v)

    #define   GET32pll_ctrl_VDDL(r32)                          _BFGET_(r32,25,23)
    #define   SET32pll_ctrl_VDDL(r32,v)                        _BFSET_(r32,25,23,v)
    #define   GET16pll_ctrl_VDDL(r16)                          _BFGET_(r16, 9, 7)
    #define   SET16pll_ctrl_VDDL(r16,v)                        _BFSET_(r16, 9, 7,v)

    #define   GET32pll_ctrl_ICP(r32)                           _BFGET_(r32,29,26)
    #define   SET32pll_ctrl_ICP(r32,v)                         _BFSET_(r32,29,26,v)
    #define   GET16pll_ctrl_ICP(r16)                           _BFGET_(r16,13,10)
    #define   SET16pll_ctrl_ICP(r16,v)                         _BFSET_(r16,13,10,v)

    #define   GET32pll_ctrl_PLL_BW_SEL(r32)                    _BFGET_(r32,30,30)
    #define   SET32pll_ctrl_PLL_BW_SEL(r32,v)                  _BFSET_(r32,30,30,v)
    #define   GET16pll_ctrl_PLL_BW_SEL(r16)                    _BFGET_(r16,14,14)
    #define   SET16pll_ctrl_PLL_BW_SEL(r16,v)                  _BFSET_(r16,14,14,v)

    #define     w32pll_ctrl                                    {\
            UNSG32 uctrl_PU                                    :  1;\
            UNSG32 uctrl_RESET                                 :  1;\
            UNSG32 uctrl_AVDD1815_SEL                          :  1;\
            UNSG32 uctrl_REFDIV                                :  9;\
            UNSG32 uctrl_FBDIV                                 :  9;\
            UNSG32 uctrl_VDDM                                  :  2;\
            UNSG32 uctrl_VDDL                                  :  3;\
            UNSG32 uctrl_ICP                                   :  4;\
            UNSG32 uctrl_PLL_BW_SEL                            :  1;\
            UNSG32 RSVDx0_b31                                  :  1;\
          }
    union { UNSG32 u32pll_ctrl;
            struct w32pll_ctrl;
          };
    #define   GET32pll_ctrl_KVCO(r32)                          _BFGET_(r32, 3, 0)
    #define   SET32pll_ctrl_KVCO(r32,v)                        _BFSET_(r32, 3, 0,v)
    #define   GET16pll_ctrl_KVCO(r16)                          _BFGET_(r16, 3, 0)
    #define   SET16pll_ctrl_KVCO(r16,v)                        _BFSET_(r16, 3, 0,v)

    #define   GET32pll_ctrl_CTUNE(r32)                         _BFGET_(r32, 5, 4)
    #define   SET32pll_ctrl_CTUNE(r32,v)                       _BFSET_(r32, 5, 4,v)
    #define   GET16pll_ctrl_CTUNE(r16)                         _BFGET_(r16, 5, 4)
    #define   SET16pll_ctrl_CTUNE(r16,v)                       _BFSET_(r16, 5, 4,v)

    #define   GET32pll_ctrl_CLKOUT_DIFF_DIV_SEL(r32)           _BFGET_(r32, 8, 6)
    #define   SET32pll_ctrl_CLKOUT_DIFF_DIV_SEL(r32,v)         _BFSET_(r32, 8, 6,v)
    #define   GET16pll_ctrl_CLKOUT_DIFF_DIV_SEL(r16)           _BFGET_(r16, 8, 6)
    #define   SET16pll_ctrl_CLKOUT_DIFF_DIV_SEL(r16,v)         _BFSET_(r16, 8, 6,v)

    #define   GET32pll_ctrl_CLKOUT_SE_DIV_SEL(r32)             _BFGET_(r32,11, 9)
    #define   SET32pll_ctrl_CLKOUT_SE_DIV_SEL(r32,v)           _BFSET_(r32,11, 9,v)
    #define   GET16pll_ctrl_CLKOUT_SE_DIV_SEL(r16)             _BFGET_(r16,11, 9)
    #define   SET16pll_ctrl_CLKOUT_SE_DIV_SEL(r16,v)           _BFSET_(r16,11, 9,v)

    #define   GET32pll_ctrl_CLKOUT_SOURCE_SEL(r32)             _BFGET_(r32,12,12)
    #define   SET32pll_ctrl_CLKOUT_SOURCE_SEL(r32,v)           _BFSET_(r32,12,12,v)
    #define   GET16pll_ctrl_CLKOUT_SOURCE_SEL(r16)             _BFGET_(r16,12,12)
    #define   SET16pll_ctrl_CLKOUT_SOURCE_SEL(r16,v)           _BFSET_(r16,12,12,v)

    #define   GET32pll_ctrl_CLKOUT_DIFF_EN(r32)                _BFGET_(r32,13,13)
    #define   SET32pll_ctrl_CLKOUT_DIFF_EN(r32,v)              _BFSET_(r32,13,13,v)
    #define   GET16pll_ctrl_CLKOUT_DIFF_EN(r16)                _BFGET_(r16,13,13)
    #define   SET16pll_ctrl_CLKOUT_DIFF_EN(r16,v)              _BFSET_(r16,13,13,v)

    #define   GET32pll_ctrl_BYPASS_EN(r32)                     _BFGET_(r32,14,14)
    #define   SET32pll_ctrl_BYPASS_EN(r32,v)                   _BFSET_(r32,14,14,v)
    #define   GET16pll_ctrl_BYPASS_EN(r16)                     _BFGET_(r16,14,14)
    #define   SET16pll_ctrl_BYPASS_EN(r16,v)                   _BFSET_(r16,14,14,v)

    #define   GET32pll_ctrl_CLKOUT_SE_GATING_EN(r32)           _BFGET_(r32,15,15)
    #define   SET32pll_ctrl_CLKOUT_SE_GATING_EN(r32,v)         _BFSET_(r32,15,15,v)
    #define   GET16pll_ctrl_CLKOUT_SE_GATING_EN(r16)           _BFGET_(r16,15,15)
    #define   SET16pll_ctrl_CLKOUT_SE_GATING_EN(r16,v)         _BFSET_(r16,15,15,v)

    #define   GET32pll_ctrl_FBCLK_EXT_SEL(r32)                 _BFGET_(r32,16,16)
    #define   SET32pll_ctrl_FBCLK_EXT_SEL(r32,v)               _BFSET_(r32,16,16,v)
    #define   GET16pll_ctrl_FBCLK_EXT_SEL(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16pll_ctrl_FBCLK_EXT_SEL(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32pll_ctrl_FBCDLY(r32)                        _BFGET_(r32,22,17)
    #define   SET32pll_ctrl_FBCDLY(r32,v)                      _BFSET_(r32,22,17,v)
    #define   GET16pll_ctrl_FBCDLY(r16)                        _BFGET_(r16, 6, 1)
    #define   SET16pll_ctrl_FBCDLY(r16,v)                      _BFSET_(r16, 6, 1,v)

    #define   GET32pll_ctrl_FD(r32)                            _BFGET_(r32,25,23)
    #define   SET32pll_ctrl_FD(r32,v)                          _BFSET_(r32,25,23,v)
    #define   GET16pll_ctrl_FD(r16)                            _BFGET_(r16, 9, 7)
    #define   SET16pll_ctrl_FD(r16,v)                          _BFSET_(r16, 9, 7,v)

    #define   GET32pll_ctrl_INTPI(r32)                         _BFGET_(r32,29,26)
    #define   SET32pll_ctrl_INTPI(r32,v)                       _BFSET_(r32,29,26,v)
    #define   GET16pll_ctrl_INTPI(r16)                         _BFGET_(r16,13,10)
    #define   SET16pll_ctrl_INTPI(r16,v)                       _BFSET_(r16,13,10,v)

    #define     w32pll_ctrl1                                   {\
            UNSG32 uctrl_KVCO                                  :  4;\
            UNSG32 uctrl_CTUNE                                 :  2;\
            UNSG32 uctrl_CLKOUT_DIFF_DIV_SEL                   :  3;\
            UNSG32 uctrl_CLKOUT_SE_DIV_SEL                     :  3;\
            UNSG32 uctrl_CLKOUT_SOURCE_SEL                     :  1;\
            UNSG32 uctrl_CLKOUT_DIFF_EN                        :  1;\
            UNSG32 uctrl_BYPASS_EN                             :  1;\
            UNSG32 uctrl_CLKOUT_SE_GATING_EN                   :  1;\
            UNSG32 uctrl_FBCLK_EXT_SEL                         :  1;\
            UNSG32 uctrl_FBCDLY                                :  6;\
            UNSG32 uctrl_FD                                    :  3;\
            UNSG32 uctrl_INTPI                                 :  4;\
            UNSG32 RSVDx4_b30                                  :  2;\
          }
    union { UNSG32 u32pll_ctrl1;
            struct w32pll_ctrl1;
          };
    #define   GET32pll_ctrl_INTPR(r32)                         _BFGET_(r32, 2, 0)
    #define   SET32pll_ctrl_INTPR(r32,v)                       _BFSET_(r32, 2, 0,v)
    #define   GET16pll_ctrl_INTPR(r16)                         _BFGET_(r16, 2, 0)
    #define   SET16pll_ctrl_INTPR(r16,v)                       _BFSET_(r16, 2, 0,v)

    #define   GET32pll_ctrl_PI_EN(r32)                         _BFGET_(r32, 3, 3)
    #define   SET32pll_ctrl_PI_EN(r32,v)                       _BFSET_(r32, 3, 3,v)
    #define   GET16pll_ctrl_PI_EN(r16)                         _BFGET_(r16, 3, 3)
    #define   SET16pll_ctrl_PI_EN(r16,v)                       _BFSET_(r16, 3, 3,v)

    #define   GET32pll_ctrl_PI_LOOP_MODE(r32)                  _BFGET_(r32, 4, 4)
    #define   SET32pll_ctrl_PI_LOOP_MODE(r32,v)                _BFSET_(r32, 4, 4,v)
    #define   GET16pll_ctrl_PI_LOOP_MODE(r16)                  _BFGET_(r16, 4, 4)
    #define   SET16pll_ctrl_PI_LOOP_MODE(r16,v)                _BFSET_(r16, 4, 4,v)

    #define   GET32pll_ctrl_CLK_DET_EN(r32)                    _BFGET_(r32, 5, 5)
    #define   SET32pll_ctrl_CLK_DET_EN(r32,v)                  _BFSET_(r32, 5, 5,v)
    #define   GET16pll_ctrl_CLK_DET_EN(r16)                    _BFGET_(r16, 5, 5)
    #define   SET16pll_ctrl_CLK_DET_EN(r16,v)                  _BFSET_(r16, 5, 5,v)

    #define   GET32pll_ctrl_RESET_PI(r32)                      _BFGET_(r32, 6, 6)
    #define   SET32pll_ctrl_RESET_PI(r32,v)                    _BFSET_(r32, 6, 6,v)
    #define   GET16pll_ctrl_RESET_PI(r16)                      _BFGET_(r16, 6, 6)
    #define   SET16pll_ctrl_RESET_PI(r16,v)                    _BFSET_(r16, 6, 6,v)

    #define   GET32pll_ctrl_RESET_SSC(r32)                     _BFGET_(r32, 7, 7)
    #define   SET32pll_ctrl_RESET_SSC(r32,v)                   _BFSET_(r32, 7, 7,v)
    #define   GET16pll_ctrl_RESET_SSC(r16)                     _BFGET_(r16, 7, 7)
    #define   SET16pll_ctrl_RESET_SSC(r16,v)                   _BFSET_(r16, 7, 7,v)

    #define   GET32pll_ctrl_FREQ_OFFSET_EN(r32)                _BFGET_(r32, 8, 8)
    #define   SET32pll_ctrl_FREQ_OFFSET_EN(r32,v)              _BFSET_(r32, 8, 8,v)
    #define   GET16pll_ctrl_FREQ_OFFSET_EN(r16)                _BFGET_(r16, 8, 8)
    #define   SET16pll_ctrl_FREQ_OFFSET_EN(r16,v)              _BFSET_(r16, 8, 8,v)

    #define   GET32pll_ctrl_FREQ_OFFSET(r32)                   _BFGET_(r32,25, 9)
    #define   SET32pll_ctrl_FREQ_OFFSET(r32,v)                 _BFSET_(r32,25, 9,v)

    #define   GET32pll_ctrl_FREQ_OFFSET_MODE_SELECTION(r32)    _BFGET_(r32,26,26)
    #define   SET32pll_ctrl_FREQ_OFFSET_MODE_SELECTION(r32,v)  _BFSET_(r32,26,26,v)
    #define   GET16pll_ctrl_FREQ_OFFSET_MODE_SELECTION(r16)    _BFGET_(r16,10,10)
    #define   SET16pll_ctrl_FREQ_OFFSET_MODE_SELECTION(r16,v)  _BFSET_(r16,10,10,v)

    #define   GET32pll_ctrl_FREQ_OFFSET_VALID(r32)             _BFGET_(r32,27,27)
    #define   SET32pll_ctrl_FREQ_OFFSET_VALID(r32,v)           _BFSET_(r32,27,27,v)
    #define   GET16pll_ctrl_FREQ_OFFSET_VALID(r16)             _BFGET_(r16,11,11)
    #define   SET16pll_ctrl_FREQ_OFFSET_VALID(r16,v)           _BFSET_(r16,11,11,v)

    #define   GET32pll_ctrl_SSC_CLK_EN(r32)                    _BFGET_(r32,28,28)
    #define   SET32pll_ctrl_SSC_CLK_EN(r32,v)                  _BFSET_(r32,28,28,v)
    #define   GET16pll_ctrl_SSC_CLK_EN(r16)                    _BFGET_(r16,12,12)
    #define   SET16pll_ctrl_SSC_CLK_EN(r16,v)                  _BFSET_(r16,12,12,v)

    #define   GET32pll_ctrl_SSC_MODE(r32)                      _BFGET_(r32,29,29)
    #define   SET32pll_ctrl_SSC_MODE(r32,v)                    _BFSET_(r32,29,29,v)
    #define   GET16pll_ctrl_SSC_MODE(r16)                      _BFGET_(r16,13,13)
    #define   SET16pll_ctrl_SSC_MODE(r16,v)                    _BFSET_(r16,13,13,v)

    #define     w32pll_ctrl2                                   {\
            UNSG32 uctrl_INTPR                                 :  3;\
            UNSG32 uctrl_PI_EN                                 :  1;\
            UNSG32 uctrl_PI_LOOP_MODE                          :  1;\
            UNSG32 uctrl_CLK_DET_EN                            :  1;\
            UNSG32 uctrl_RESET_PI                              :  1;\
            UNSG32 uctrl_RESET_SSC                             :  1;\
            UNSG32 uctrl_FREQ_OFFSET_EN                        :  1;\
            UNSG32 uctrl_FREQ_OFFSET                           : 17;\
            UNSG32 uctrl_FREQ_OFFSET_MODE_SELECTION            :  1;\
            UNSG32 uctrl_FREQ_OFFSET_VALID                     :  1;\
            UNSG32 uctrl_SSC_CLK_EN                            :  1;\
            UNSG32 uctrl_SSC_MODE                              :  1;\
            UNSG32 RSVDx8_b30                                  :  2;\
          }
    union { UNSG32 u32pll_ctrl2;
            struct w32pll_ctrl2;
          };
    #define   GET32pll_ctrl_SSC_FREQ_DIV(r32)                  _BFGET_(r32,15, 0)
    #define   SET32pll_ctrl_SSC_FREQ_DIV(r32,v)                _BFSET_(r32,15, 0,v)
    #define   GET16pll_ctrl_SSC_FREQ_DIV(r16)                  _BFGET_(r16,15, 0)
    #define   SET16pll_ctrl_SSC_FREQ_DIV(r16,v)                _BFSET_(r16,15, 0,v)

    #define   GET32pll_ctrl_SSC_RNGE(r32)                      _BFGET_(r32,26,16)
    #define   SET32pll_ctrl_SSC_RNGE(r32,v)                    _BFSET_(r32,26,16,v)
    #define   GET16pll_ctrl_SSC_RNGE(r16)                      _BFGET_(r16,10, 0)
    #define   SET16pll_ctrl_SSC_RNGE(r16,v)                    _BFSET_(r16,10, 0,v)

    #define   GET32pll_ctrl_TEST_ANA(r32)                      _BFGET_(r32,30,27)
    #define   SET32pll_ctrl_TEST_ANA(r32,v)                    _BFSET_(r32,30,27,v)
    #define   GET16pll_ctrl_TEST_ANA(r16)                      _BFGET_(r16,14,11)
    #define   SET16pll_ctrl_TEST_ANA(r16,v)                    _BFSET_(r16,14,11,v)

    #define     w32pll_ctrl3                                   {\
            UNSG32 uctrl_SSC_FREQ_DIV                          : 16;\
            UNSG32 uctrl_SSC_RNGE                              : 11;\
            UNSG32 uctrl_TEST_ANA                              :  4;\
            UNSG32 RSVDxC_b31                                  :  1;\
          }
    union { UNSG32 u32pll_ctrl3;
            struct w32pll_ctrl3;
          };
    #define   GET32pll_ctrl_RESERVE_IN(r32)                    _BFGET_(r32, 7, 0)
    #define   SET32pll_ctrl_RESERVE_IN(r32,v)                  _BFSET_(r32, 7, 0,v)
    #define   GET16pll_ctrl_RESERVE_IN(r16)                    _BFGET_(r16, 7, 0)
    #define   SET16pll_ctrl_RESERVE_IN(r16,v)                  _BFSET_(r16, 7, 0,v)

    #define     w32pll_ctrl4                                   {\
            UNSG32 uctrl_RESERVE_IN                            :  8;\
            UNSG32 RSVDx10_b8                                  : 24;\
          }
    union { UNSG32 u32pll_ctrl4;
            struct w32pll_ctrl4;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32pll_status_PLL_LOCK(r32)                    _BFGET_(r32, 0, 0)
    #define   SET32pll_status_PLL_LOCK(r32,v)                  _BFSET_(r32, 0, 0,v)
    #define   GET16pll_status_PLL_LOCK(r16)                    _BFGET_(r16, 0, 0)
    #define   SET16pll_status_PLL_LOCK(r16,v)                  _BFSET_(r16, 0, 0,v)

    #define   GET32pll_status_CLK_CFMOD(r32)                   _BFGET_(r32, 1, 1)
    #define   SET32pll_status_CLK_CFMOD(r32,v)                 _BFSET_(r32, 1, 1,v)
    #define   GET16pll_status_CLK_CFMOD(r16)                   _BFGET_(r16, 1, 1)
    #define   SET16pll_status_CLK_CFMOD(r16,v)                 _BFSET_(r16, 1, 1,v)

    #define   GET32pll_status_CLK_FMOD(r32)                    _BFGET_(r32, 2, 2)
    #define   SET32pll_status_CLK_FMOD(r32,v)                  _BFSET_(r32, 2, 2,v)
    #define   GET16pll_status_CLK_FMOD(r16)                    _BFGET_(r16, 2, 2)
    #define   SET16pll_status_CLK_FMOD(r16,v)                  _BFSET_(r16, 2, 2,v)

    #define   GET32pll_status_RESERVE_OUT(r32)                 _BFGET_(r32,10, 3)
    #define   SET32pll_status_RESERVE_OUT(r32,v)               _BFSET_(r32,10, 3,v)
    #define   GET16pll_status_RESERVE_OUT(r16)                 _BFGET_(r16,10, 3)
    #define   SET16pll_status_RESERVE_OUT(r16,v)               _BFSET_(r16,10, 3,v)

    #define     w32pll_status                                  {\
            UNSG32 ustatus_PLL_LOCK                            :  1;\
            UNSG32 ustatus_CLK_CFMOD                           :  1;\
            UNSG32 ustatus_CLK_FMOD                            :  1;\
            UNSG32 ustatus_RESERVE_OUT                         :  8;\
            UNSG32 RSVDx14_b11                                 : 21;\
          }
    union { UNSG32 u32pll_status;
            struct w32pll_status;
          };
    ///////////////////////////////////////////////////////////
    } SIE_pll;

    typedef union  T32pll_ctrl
          { UNSG32 u32;
            struct w32pll_ctrl;
                 } T32pll_ctrl;
    typedef union  T32pll_ctrl1
          { UNSG32 u32;
            struct w32pll_ctrl1;
                 } T32pll_ctrl1;
    typedef union  T32pll_ctrl2
          { UNSG32 u32;
            struct w32pll_ctrl2;
                 } T32pll_ctrl2;
    typedef union  T32pll_ctrl3
          { UNSG32 u32;
            struct w32pll_ctrl3;
                 } T32pll_ctrl3;
    typedef union  T32pll_ctrl4
          { UNSG32 u32;
            struct w32pll_ctrl4;
                 } T32pll_ctrl4;
    typedef union  T32pll_status
          { UNSG32 u32;
            struct w32pll_status;
                 } T32pll_status;
    ///////////////////////////////////////////////////////////

    typedef union  Tpll_ctrl
          { UNSG32 u32[5];
            struct {
            struct w32pll_ctrl;
            struct w32pll_ctrl1;
            struct w32pll_ctrl2;
            struct w32pll_ctrl3;
            struct w32pll_ctrl4;
                   };
                 } Tpll_ctrl;
    typedef union  Tpll_status
          { UNSG32 u32[1];
            struct {
            struct w32pll_status;
                   };
                 } Tpll_status;

    ///////////////////////////////////////////////////////////
     SIGN32 pll_drvrd(SIE_pll *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 pll_drvwr(SIE_pll *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void pll_reset(SIE_pll *p);
     SIGN32 pll_cmp  (SIE_pll *p, SIE_pll *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define pll_check(p,pie,pfx,hLOG) pll_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define pll_print(p,    pfx,hLOG) pll_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: pll
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE avpllCh                 biu              (4,4)
///     ###
///     * AVPLL control signals for one channel
///     ###
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (P-)
///               %unsigned 13 POSTDIV                   0x0
///               %unsigned 1  POSTDIV_0P5               0x0
///                                    ###
///                                    * Audio clock divider program
///                                    * 1, When POSTDIV_CX[12:0]=
///                                    * 0 0000 0000 0000, then disable post divider
///                                    * 2, When POSTDIV_CX[12:0]>0:
///                                    * if POSTDIV_0P5_CX=0:
///                                    * Divider=POSTDIV_CX[12:0],
///                                    * if POSTDIV_0P5_CX=1:
///                                    * Divider=POSTDIV_CX[12:0]+0.5
///                                    * For C1-C7 only
///                                    ###
///               %unsigned 1  EN_DPLL                   0x0
///                                    ###
///                                    * 0: disable channel CX's DPLL
///                                    * 1: enable channel CX's DPLL
///                                    ###
///               %unsigned 2  EN_LP                     0x0
///                                    ###
///                                    * EN_LP_CX[1:0] FREQ_OFFSET   CK_INTG
///                                    * 00        X             CK_SSC
///                                    * 01         X*2          CK_SSC/2
///                                    * 10         X              CK_SSC
///                                    * 11          X*4                CK_SSC/4
///                                    ###
///               %%        15         # Stuffing bits...
///     # 0x00004 ctrl1                
///               %unsigned 19 FREQ_OFFSET               0x0
///                                    ###
///                                    * [18] is sign bit
///                                    * 0: PI's Frequency down
///                                    * 1: PI's Frequency up
///                                    * [17:0]: 1 LSB -> 0.25ppm,
///                                    * up to 5%
///                                    ###
///               %unsigned 1  FREQ_OFFSET_READY         0x0
///                                    ###
///                                    * Frequency offset value readiness
///                                    * indicator for FREQ_OFFSET_CX [18:0],
///                                    * the pulse need to be longer
///                                    * than 320/Fvco. For Fvco=3GHz,
///                                    * the pulse with should > 172ns;
///                                    * For Fvco=1.5GHz, pulse width >344ns
///                                    ###
///               %unsigned 1  PU                        0x0
///                                    ###
///                                    * 0: power down channel CX
///                                    * 1: power up channel CX
///                                    ###
///               %unsigned 1  PU_OFST_CTRL              0x1
///                                    ###
///                                    * 0: power down FREQ_OFFS
///                                    * 1: power up FREQ_OFFSET
///                                    ###
///               %%        10         # Stuffing bits...
///     # 0x00008 ctrl2                
///               %unsigned 20 P_SYNC1                   0x10
///                                    ###
///                                    * Set DPLL's reference divider
///                                    * Divider= P_SYNC1_CX[19:0]
///                                    * It is forbidden when N<16
///                                    ###
///               %%        12         # Stuffing bits...
///     # 0x0000C ctrl3                
///               %unsigned 20 P_SYNC2                   0x10
///                                    ###
///                                    * Set DPLL's feedback divider
///                                    * Divider= P_SYNC2_CX[19:0]
///                                    * It is forbidden when N<16
///                                    ###
///               %unsigned 1  RESET                     0x1
///                                    ###
///                                    * Reset channel CX logic:
///                                    * 0: not reset
///                                    * 1: active reset
///                                    ###
///               %unsigned 2  RESERVE_IN                0x0
///               %%        9          # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:      16B, bits:      82b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_avpllCh
#define h_avpllCh (){}

    #define     RA_avpllCh_ctrl                                0x0000

    #define     BA_avpllCh_ctrl_POSTDIV                        0x0000
    #define     B16avpllCh_ctrl_POSTDIV                        0x0000
    #define   LSb32avpllCh_ctrl_POSTDIV                           0
    #define   LSb16avpllCh_ctrl_POSTDIV                           0
    #define       bavpllCh_ctrl_POSTDIV                        13
    #define   MSK32avpllCh_ctrl_POSTDIV                           0x00001FFF

    #define     BA_avpllCh_ctrl_POSTDIV_0P5                    0x0001
    #define     B16avpllCh_ctrl_POSTDIV_0P5                    0x0000
    #define   LSb32avpllCh_ctrl_POSTDIV_0P5                       13
    #define   LSb16avpllCh_ctrl_POSTDIV_0P5                       13
    #define       bavpllCh_ctrl_POSTDIV_0P5                    1
    #define   MSK32avpllCh_ctrl_POSTDIV_0P5                       0x00002000

    #define     BA_avpllCh_ctrl_EN_DPLL                        0x0001
    #define     B16avpllCh_ctrl_EN_DPLL                        0x0000
    #define   LSb32avpllCh_ctrl_EN_DPLL                           14
    #define   LSb16avpllCh_ctrl_EN_DPLL                           14
    #define       bavpllCh_ctrl_EN_DPLL                        1
    #define   MSK32avpllCh_ctrl_EN_DPLL                           0x00004000

    #define     BA_avpllCh_ctrl_EN_LP                          0x0001
    #define     B16avpllCh_ctrl_EN_LP                          0x0000
    #define   LSb32avpllCh_ctrl_EN_LP                             15
    #define   LSb16avpllCh_ctrl_EN_LP                             15
    #define       bavpllCh_ctrl_EN_LP                          2
    #define   MSK32avpllCh_ctrl_EN_LP                             0x00018000

    #define     RA_avpllCh_ctrl1                               0x0004

    #define     BA_avpllCh_ctrl_FREQ_OFFSET                    0x0004
    #define     B16avpllCh_ctrl_FREQ_OFFSET                    0x0004
    #define   LSb32avpllCh_ctrl_FREQ_OFFSET                       0
    #define   LSb16avpllCh_ctrl_FREQ_OFFSET                       0
    #define       bavpllCh_ctrl_FREQ_OFFSET                    19
    #define   MSK32avpllCh_ctrl_FREQ_OFFSET                       0x0007FFFF

    #define     BA_avpllCh_ctrl_FREQ_OFFSET_READY              0x0006
    #define     B16avpllCh_ctrl_FREQ_OFFSET_READY              0x0006
    #define   LSb32avpllCh_ctrl_FREQ_OFFSET_READY                 19
    #define   LSb16avpllCh_ctrl_FREQ_OFFSET_READY                 3
    #define       bavpllCh_ctrl_FREQ_OFFSET_READY              1
    #define   MSK32avpllCh_ctrl_FREQ_OFFSET_READY                 0x00080000

    #define     BA_avpllCh_ctrl_PU                             0x0006
    #define     B16avpllCh_ctrl_PU                             0x0006
    #define   LSb32avpllCh_ctrl_PU                                20
    #define   LSb16avpllCh_ctrl_PU                                4
    #define       bavpllCh_ctrl_PU                             1
    #define   MSK32avpllCh_ctrl_PU                                0x00100000

    #define     BA_avpllCh_ctrl_PU_OFST_CTRL                   0x0006
    #define     B16avpllCh_ctrl_PU_OFST_CTRL                   0x0006
    #define   LSb32avpllCh_ctrl_PU_OFST_CTRL                      21
    #define   LSb16avpllCh_ctrl_PU_OFST_CTRL                      5
    #define       bavpllCh_ctrl_PU_OFST_CTRL                   1
    #define   MSK32avpllCh_ctrl_PU_OFST_CTRL                      0x00200000

    #define     RA_avpllCh_ctrl2                               0x0008

    #define     BA_avpllCh_ctrl_P_SYNC1                        0x0008
    #define     B16avpllCh_ctrl_P_SYNC1                        0x0008
    #define   LSb32avpllCh_ctrl_P_SYNC1                           0
    #define   LSb16avpllCh_ctrl_P_SYNC1                           0
    #define       bavpllCh_ctrl_P_SYNC1                        20
    #define   MSK32avpllCh_ctrl_P_SYNC1                           0x000FFFFF

    #define     RA_avpllCh_ctrl3                               0x000C

    #define     BA_avpllCh_ctrl_P_SYNC2                        0x000C
    #define     B16avpllCh_ctrl_P_SYNC2                        0x000C
    #define   LSb32avpllCh_ctrl_P_SYNC2                           0
    #define   LSb16avpllCh_ctrl_P_SYNC2                           0
    #define       bavpllCh_ctrl_P_SYNC2                        20
    #define   MSK32avpllCh_ctrl_P_SYNC2                           0x000FFFFF

    #define     BA_avpllCh_ctrl_RESET                          0x000E
    #define     B16avpllCh_ctrl_RESET                          0x000E
    #define   LSb32avpllCh_ctrl_RESET                             20
    #define   LSb16avpllCh_ctrl_RESET                             4
    #define       bavpllCh_ctrl_RESET                          1
    #define   MSK32avpllCh_ctrl_RESET                             0x00100000

    #define     BA_avpllCh_ctrl_RESERVE_IN                     0x000E
    #define     B16avpllCh_ctrl_RESERVE_IN                     0x000E
    #define   LSb32avpllCh_ctrl_RESERVE_IN                        21
    #define   LSb16avpllCh_ctrl_RESERVE_IN                        5
    #define       bavpllCh_ctrl_RESERVE_IN                     2
    #define   MSK32avpllCh_ctrl_RESERVE_IN                        0x00600000
    ///////////////////////////////////////////////////////////

    typedef struct SIE_avpllCh {
    ///////////////////////////////////////////////////////////
    #define   GET32avpllCh_ctrl_POSTDIV(r32)                   _BFGET_(r32,12, 0)
    #define   SET32avpllCh_ctrl_POSTDIV(r32,v)                 _BFSET_(r32,12, 0,v)
    #define   GET16avpllCh_ctrl_POSTDIV(r16)                   _BFGET_(r16,12, 0)
    #define   SET16avpllCh_ctrl_POSTDIV(r16,v)                 _BFSET_(r16,12, 0,v)

    #define   GET32avpllCh_ctrl_POSTDIV_0P5(r32)               _BFGET_(r32,13,13)
    #define   SET32avpllCh_ctrl_POSTDIV_0P5(r32,v)             _BFSET_(r32,13,13,v)
    #define   GET16avpllCh_ctrl_POSTDIV_0P5(r16)               _BFGET_(r16,13,13)
    #define   SET16avpllCh_ctrl_POSTDIV_0P5(r16,v)             _BFSET_(r16,13,13,v)

    #define   GET32avpllCh_ctrl_EN_DPLL(r32)                   _BFGET_(r32,14,14)
    #define   SET32avpllCh_ctrl_EN_DPLL(r32,v)                 _BFSET_(r32,14,14,v)
    #define   GET16avpllCh_ctrl_EN_DPLL(r16)                   _BFGET_(r16,14,14)
    #define   SET16avpllCh_ctrl_EN_DPLL(r16,v)                 _BFSET_(r16,14,14,v)

    #define   GET32avpllCh_ctrl_EN_LP(r32)                     _BFGET_(r32,16,15)
    #define   SET32avpllCh_ctrl_EN_LP(r32,v)                   _BFSET_(r32,16,15,v)

    #define     w32avpllCh_ctrl                                {\
            UNSG32 uctrl_POSTDIV                               : 13;\
            UNSG32 uctrl_POSTDIV_0P5                           :  1;\
            UNSG32 uctrl_EN_DPLL                               :  1;\
            UNSG32 uctrl_EN_LP                                 :  2;\
            UNSG32 RSVDx0_b17                                  : 15;\
          }
    union { UNSG32 u32avpllCh_ctrl;
            struct w32avpllCh_ctrl;
          };
    #define   GET32avpllCh_ctrl_FREQ_OFFSET(r32)               _BFGET_(r32,18, 0)
    #define   SET32avpllCh_ctrl_FREQ_OFFSET(r32,v)             _BFSET_(r32,18, 0,v)

    #define   GET32avpllCh_ctrl_FREQ_OFFSET_READY(r32)         _BFGET_(r32,19,19)
    #define   SET32avpllCh_ctrl_FREQ_OFFSET_READY(r32,v)       _BFSET_(r32,19,19,v)
    #define   GET16avpllCh_ctrl_FREQ_OFFSET_READY(r16)         _BFGET_(r16, 3, 3)
    #define   SET16avpllCh_ctrl_FREQ_OFFSET_READY(r16,v)       _BFSET_(r16, 3, 3,v)

    #define   GET32avpllCh_ctrl_PU(r32)                        _BFGET_(r32,20,20)
    #define   SET32avpllCh_ctrl_PU(r32,v)                      _BFSET_(r32,20,20,v)
    #define   GET16avpllCh_ctrl_PU(r16)                        _BFGET_(r16, 4, 4)
    #define   SET16avpllCh_ctrl_PU(r16,v)                      _BFSET_(r16, 4, 4,v)

    #define   GET32avpllCh_ctrl_PU_OFST_CTRL(r32)              _BFGET_(r32,21,21)
    #define   SET32avpllCh_ctrl_PU_OFST_CTRL(r32,v)            _BFSET_(r32,21,21,v)
    #define   GET16avpllCh_ctrl_PU_OFST_CTRL(r16)              _BFGET_(r16, 5, 5)
    #define   SET16avpllCh_ctrl_PU_OFST_CTRL(r16,v)            _BFSET_(r16, 5, 5,v)

    #define     w32avpllCh_ctrl1                               {\
            UNSG32 uctrl_FREQ_OFFSET                           : 19;\
            UNSG32 uctrl_FREQ_OFFSET_READY                     :  1;\
            UNSG32 uctrl_PU                                    :  1;\
            UNSG32 uctrl_PU_OFST_CTRL                          :  1;\
            UNSG32 RSVDx4_b22                                  : 10;\
          }
    union { UNSG32 u32avpllCh_ctrl1;
            struct w32avpllCh_ctrl1;
          };
    #define   GET32avpllCh_ctrl_P_SYNC1(r32)                   _BFGET_(r32,19, 0)
    #define   SET32avpllCh_ctrl_P_SYNC1(r32,v)                 _BFSET_(r32,19, 0,v)

    #define     w32avpllCh_ctrl2                               {\
            UNSG32 uctrl_P_SYNC1                               : 20;\
            UNSG32 RSVDx8_b20                                  : 12;\
          }
    union { UNSG32 u32avpllCh_ctrl2;
            struct w32avpllCh_ctrl2;
          };
    #define   GET32avpllCh_ctrl_P_SYNC2(r32)                   _BFGET_(r32,19, 0)
    #define   SET32avpllCh_ctrl_P_SYNC2(r32,v)                 _BFSET_(r32,19, 0,v)

    #define   GET32avpllCh_ctrl_RESET(r32)                     _BFGET_(r32,20,20)
    #define   SET32avpllCh_ctrl_RESET(r32,v)                   _BFSET_(r32,20,20,v)
    #define   GET16avpllCh_ctrl_RESET(r16)                     _BFGET_(r16, 4, 4)
    #define   SET16avpllCh_ctrl_RESET(r16,v)                   _BFSET_(r16, 4, 4,v)

    #define   GET32avpllCh_ctrl_RESERVE_IN(r32)                _BFGET_(r32,22,21)
    #define   SET32avpllCh_ctrl_RESERVE_IN(r32,v)              _BFSET_(r32,22,21,v)
    #define   GET16avpllCh_ctrl_RESERVE_IN(r16)                _BFGET_(r16, 6, 5)
    #define   SET16avpllCh_ctrl_RESERVE_IN(r16,v)              _BFSET_(r16, 6, 5,v)

    #define     w32avpllCh_ctrl3                               {\
            UNSG32 uctrl_P_SYNC2                               : 20;\
            UNSG32 uctrl_RESET                                 :  1;\
            UNSG32 uctrl_RESERVE_IN                            :  2;\
            UNSG32 RSVDxC_b23                                  :  9;\
          }
    union { UNSG32 u32avpllCh_ctrl3;
            struct w32avpllCh_ctrl3;
          };
    ///////////////////////////////////////////////////////////
    } SIE_avpllCh;

    typedef union  T32avpllCh_ctrl
          { UNSG32 u32;
            struct w32avpllCh_ctrl;
                 } T32avpllCh_ctrl;
    typedef union  T32avpllCh_ctrl1
          { UNSG32 u32;
            struct w32avpllCh_ctrl1;
                 } T32avpllCh_ctrl1;
    typedef union  T32avpllCh_ctrl2
          { UNSG32 u32;
            struct w32avpllCh_ctrl2;
                 } T32avpllCh_ctrl2;
    typedef union  T32avpllCh_ctrl3
          { UNSG32 u32;
            struct w32avpllCh_ctrl3;
                 } T32avpllCh_ctrl3;
    ///////////////////////////////////////////////////////////

    typedef union  TavpllCh_ctrl
          { UNSG32 u32[4];
            struct {
            struct w32avpllCh_ctrl;
            struct w32avpllCh_ctrl1;
            struct w32avpllCh_ctrl2;
            struct w32avpllCh_ctrl3;
                   };
                 } TavpllCh_ctrl;

    ///////////////////////////////////////////////////////////
     SIGN32 avpllCh_drvrd(SIE_avpllCh *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 avpllCh_drvwr(SIE_avpllCh *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void avpllCh_reset(SIE_avpllCh *p);
     SIGN32 avpllCh_cmp  (SIE_avpllCh *p, SIE_avpllCh *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define avpllCh_check(p,pie,pfx,hLOG) avpllCh_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define avpllCh_print(p,    pfx,hLOG) avpllCh_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: avpllCh
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE avpllCh8                biu              (4,4)
///     ###
///     * AVPLL control signals for channel 8 (Channel inside PLL)
///     ###
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (P-)
///               %unsigned 13 POSTDIV                   0x0
///               %unsigned 1  POSTDIV_0P5               0x0
///                                    ###
///                                    * Audio clock divider program
///                                    * 1, When POSTDIV_CX[12:0]=
///                                    * 0 0000 0000 0000, then disable post divider
///                                    * 2, When POSTDIV_CX[12:0]>0:
///                                    * if POSTDIV_0P5_CX=0:
///                                    * Divider=POSTDIV_CX[12:0],
///                                    * if POSTDIV_0P5_CX=1:
///                                    * Divider=POSTDIV_CX[12:0]+0.5
///                                    * For C1-C7 only
///                                    ###
///               %unsigned 1  EN_DPLL                   0x0
///                                    ###
///                                    * 0: disable channel CX's DPLL
///                                    * 1: enable channel CX's DPLL
///                                    ###
///               %unsigned 2  EN_LP                     0x0
///                                    ###
///                                    * EN_LP_CX[1:0] FREQ_OFFSET   CK_INTG
///                                    * 00        X             CK_SSC
///                                    * 01         X*2          CK_SSC/2
///                                    * 10         X              CK_SSC
///                                    * 11          X*4                CK_SSC/4
///                                    ###
///               %%        15         # Stuffing bits...
///     # 0x00004 ctrl1                
///               %unsigned 19 FREQ_OFFSET               0x0
///                                    ###
///                                    * [18] is sign bit
///                                    * 0: PI's Frequency down
///                                    * 1: PI's Frequency up
///                                    * [17:0]: 1 LSB -> 0.25ppm,
///                                    * up to 5%
///                                    ###
///               %unsigned 1  FREQ_OFFSET_READY         0x0
///                                    ###
///                                    * Frequency offset value readiness
///                                    * indicator for FREQ_OFFSET_CX [18:0],
///                                    * the pulse need to be longer
///                                    * than 320/Fvco. For Fvco=3GHz,
///                                    * the pulse with should > 172ns;
///                                    * For Fvco=1.5GHz, pulse width >344ns
///                                    ###
///               %unsigned 1  PU                        0x0
///                                    ###
///                                    * 0: power down channel CX
///                                    * 1: power up channel CX
///                                    ###
///               %unsigned 1  PU_OFST_CTRL              0x1
///                                    ###
///                                    * 0: power down FREQ_OFFS
///                                    * 1: power up FREQ_OFFSET
///                                    ###
///               %%        10         # Stuffing bits...
///     # 0x00008 ctrl2                
///               %unsigned 20 P_SYNC1                   0x10
///                                    ###
///                                    * Set DPLL's reference divider
///                                    * Divider= P_SYNC1_CX[19:0]
///                                    * It is forbidden when N<16
///                                    ###
///               %%        12         # Stuffing bits...
///     # 0x0000C ctrl3                
///               %unsigned 20 P_SYNC2                   0x10
///                                    ###
///                                    * Set DPLL's feedback divider
///                                    * Divider= P_SYNC2_CX[19:0]
///                                    * It is forbidden when N<16
///                                    ###
///               %unsigned 1  RESET                     0x0
///                                    ###
///                                    * Reset channel CX logic:
///                                    * 0: not reset
///                                    * 1: active reset
///                                    ###
///               %unsigned 2  RESERVE_IN                0x1
///               %%        9          # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:      16B, bits:      82b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_avpllCh8
#define h_avpllCh8 (){}

    #define     RA_avpllCh8_ctrl                               0x0000

    #define     BA_avpllCh8_ctrl_POSTDIV                       0x0000
    #define     B16avpllCh8_ctrl_POSTDIV                       0x0000
    #define   LSb32avpllCh8_ctrl_POSTDIV                          0
    #define   LSb16avpllCh8_ctrl_POSTDIV                          0
    #define       bavpllCh8_ctrl_POSTDIV                       13
    #define   MSK32avpllCh8_ctrl_POSTDIV                          0x00001FFF

    #define     BA_avpllCh8_ctrl_POSTDIV_0P5                   0x0001
    #define     B16avpllCh8_ctrl_POSTDIV_0P5                   0x0000
    #define   LSb32avpllCh8_ctrl_POSTDIV_0P5                      13
    #define   LSb16avpllCh8_ctrl_POSTDIV_0P5                      13
    #define       bavpllCh8_ctrl_POSTDIV_0P5                   1
    #define   MSK32avpllCh8_ctrl_POSTDIV_0P5                      0x00002000

    #define     BA_avpllCh8_ctrl_EN_DPLL                       0x0001
    #define     B16avpllCh8_ctrl_EN_DPLL                       0x0000
    #define   LSb32avpllCh8_ctrl_EN_DPLL                          14
    #define   LSb16avpllCh8_ctrl_EN_DPLL                          14
    #define       bavpllCh8_ctrl_EN_DPLL                       1
    #define   MSK32avpllCh8_ctrl_EN_DPLL                          0x00004000

    #define     BA_avpllCh8_ctrl_EN_LP                         0x0001
    #define     B16avpllCh8_ctrl_EN_LP                         0x0000
    #define   LSb32avpllCh8_ctrl_EN_LP                            15
    #define   LSb16avpllCh8_ctrl_EN_LP                            15
    #define       bavpllCh8_ctrl_EN_LP                         2
    #define   MSK32avpllCh8_ctrl_EN_LP                            0x00018000

    #define     RA_avpllCh8_ctrl1                              0x0004

    #define     BA_avpllCh8_ctrl_FREQ_OFFSET                   0x0004
    #define     B16avpllCh8_ctrl_FREQ_OFFSET                   0x0004
    #define   LSb32avpllCh8_ctrl_FREQ_OFFSET                      0
    #define   LSb16avpllCh8_ctrl_FREQ_OFFSET                      0
    #define       bavpllCh8_ctrl_FREQ_OFFSET                   19
    #define   MSK32avpllCh8_ctrl_FREQ_OFFSET                      0x0007FFFF

    #define     BA_avpllCh8_ctrl_FREQ_OFFSET_READY             0x0006
    #define     B16avpllCh8_ctrl_FREQ_OFFSET_READY             0x0006
    #define   LSb32avpllCh8_ctrl_FREQ_OFFSET_READY                19
    #define   LSb16avpllCh8_ctrl_FREQ_OFFSET_READY                3
    #define       bavpllCh8_ctrl_FREQ_OFFSET_READY             1
    #define   MSK32avpllCh8_ctrl_FREQ_OFFSET_READY                0x00080000

    #define     BA_avpllCh8_ctrl_PU                            0x0006
    #define     B16avpllCh8_ctrl_PU                            0x0006
    #define   LSb32avpllCh8_ctrl_PU                               20
    #define   LSb16avpllCh8_ctrl_PU                               4
    #define       bavpllCh8_ctrl_PU                            1
    #define   MSK32avpllCh8_ctrl_PU                               0x00100000

    #define     BA_avpllCh8_ctrl_PU_OFST_CTRL                  0x0006
    #define     B16avpllCh8_ctrl_PU_OFST_CTRL                  0x0006
    #define   LSb32avpllCh8_ctrl_PU_OFST_CTRL                     21
    #define   LSb16avpllCh8_ctrl_PU_OFST_CTRL                     5
    #define       bavpllCh8_ctrl_PU_OFST_CTRL                  1
    #define   MSK32avpllCh8_ctrl_PU_OFST_CTRL                     0x00200000

    #define     RA_avpllCh8_ctrl2                              0x0008

    #define     BA_avpllCh8_ctrl_P_SYNC1                       0x0008
    #define     B16avpllCh8_ctrl_P_SYNC1                       0x0008
    #define   LSb32avpllCh8_ctrl_P_SYNC1                          0
    #define   LSb16avpllCh8_ctrl_P_SYNC1                          0
    #define       bavpllCh8_ctrl_P_SYNC1                       20
    #define   MSK32avpllCh8_ctrl_P_SYNC1                          0x000FFFFF

    #define     RA_avpllCh8_ctrl3                              0x000C

    #define     BA_avpllCh8_ctrl_P_SYNC2                       0x000C
    #define     B16avpllCh8_ctrl_P_SYNC2                       0x000C
    #define   LSb32avpllCh8_ctrl_P_SYNC2                          0
    #define   LSb16avpllCh8_ctrl_P_SYNC2                          0
    #define       bavpllCh8_ctrl_P_SYNC2                       20
    #define   MSK32avpllCh8_ctrl_P_SYNC2                          0x000FFFFF

    #define     BA_avpllCh8_ctrl_RESET                         0x000E
    #define     B16avpllCh8_ctrl_RESET                         0x000E
    #define   LSb32avpllCh8_ctrl_RESET                            20
    #define   LSb16avpllCh8_ctrl_RESET                            4
    #define       bavpllCh8_ctrl_RESET                         1
    #define   MSK32avpllCh8_ctrl_RESET                            0x00100000

    #define     BA_avpllCh8_ctrl_RESERVE_IN                    0x000E
    #define     B16avpllCh8_ctrl_RESERVE_IN                    0x000E
    #define   LSb32avpllCh8_ctrl_RESERVE_IN                       21
    #define   LSb16avpllCh8_ctrl_RESERVE_IN                       5
    #define       bavpllCh8_ctrl_RESERVE_IN                    2
    #define   MSK32avpllCh8_ctrl_RESERVE_IN                       0x00600000
    ///////////////////////////////////////////////////////////

    typedef struct SIE_avpllCh8 {
    ///////////////////////////////////////////////////////////
    #define   GET32avpllCh8_ctrl_POSTDIV(r32)                  _BFGET_(r32,12, 0)
    #define   SET32avpllCh8_ctrl_POSTDIV(r32,v)                _BFSET_(r32,12, 0,v)
    #define   GET16avpllCh8_ctrl_POSTDIV(r16)                  _BFGET_(r16,12, 0)
    #define   SET16avpllCh8_ctrl_POSTDIV(r16,v)                _BFSET_(r16,12, 0,v)

    #define   GET32avpllCh8_ctrl_POSTDIV_0P5(r32)              _BFGET_(r32,13,13)
    #define   SET32avpllCh8_ctrl_POSTDIV_0P5(r32,v)            _BFSET_(r32,13,13,v)
    #define   GET16avpllCh8_ctrl_POSTDIV_0P5(r16)              _BFGET_(r16,13,13)
    #define   SET16avpllCh8_ctrl_POSTDIV_0P5(r16,v)            _BFSET_(r16,13,13,v)

    #define   GET32avpllCh8_ctrl_EN_DPLL(r32)                  _BFGET_(r32,14,14)
    #define   SET32avpllCh8_ctrl_EN_DPLL(r32,v)                _BFSET_(r32,14,14,v)
    #define   GET16avpllCh8_ctrl_EN_DPLL(r16)                  _BFGET_(r16,14,14)
    #define   SET16avpllCh8_ctrl_EN_DPLL(r16,v)                _BFSET_(r16,14,14,v)

    #define   GET32avpllCh8_ctrl_EN_LP(r32)                    _BFGET_(r32,16,15)
    #define   SET32avpllCh8_ctrl_EN_LP(r32,v)                  _BFSET_(r32,16,15,v)

    #define     w32avpllCh8_ctrl                               {\
            UNSG32 uctrl_POSTDIV                               : 13;\
            UNSG32 uctrl_POSTDIV_0P5                           :  1;\
            UNSG32 uctrl_EN_DPLL                               :  1;\
            UNSG32 uctrl_EN_LP                                 :  2;\
            UNSG32 RSVDx0_b17                                  : 15;\
          }
    union { UNSG32 u32avpllCh8_ctrl;
            struct w32avpllCh8_ctrl;
          };
    #define   GET32avpllCh8_ctrl_FREQ_OFFSET(r32)              _BFGET_(r32,18, 0)
    #define   SET32avpllCh8_ctrl_FREQ_OFFSET(r32,v)            _BFSET_(r32,18, 0,v)

    #define   GET32avpllCh8_ctrl_FREQ_OFFSET_READY(r32)        _BFGET_(r32,19,19)
    #define   SET32avpllCh8_ctrl_FREQ_OFFSET_READY(r32,v)      _BFSET_(r32,19,19,v)
    #define   GET16avpllCh8_ctrl_FREQ_OFFSET_READY(r16)        _BFGET_(r16, 3, 3)
    #define   SET16avpllCh8_ctrl_FREQ_OFFSET_READY(r16,v)      _BFSET_(r16, 3, 3,v)

    #define   GET32avpllCh8_ctrl_PU(r32)                       _BFGET_(r32,20,20)
    #define   SET32avpllCh8_ctrl_PU(r32,v)                     _BFSET_(r32,20,20,v)
    #define   GET16avpllCh8_ctrl_PU(r16)                       _BFGET_(r16, 4, 4)
    #define   SET16avpllCh8_ctrl_PU(r16,v)                     _BFSET_(r16, 4, 4,v)

    #define   GET32avpllCh8_ctrl_PU_OFST_CTRL(r32)             _BFGET_(r32,21,21)
    #define   SET32avpllCh8_ctrl_PU_OFST_CTRL(r32,v)           _BFSET_(r32,21,21,v)
    #define   GET16avpllCh8_ctrl_PU_OFST_CTRL(r16)             _BFGET_(r16, 5, 5)
    #define   SET16avpllCh8_ctrl_PU_OFST_CTRL(r16,v)           _BFSET_(r16, 5, 5,v)

    #define     w32avpllCh8_ctrl1                              {\
            UNSG32 uctrl_FREQ_OFFSET                           : 19;\
            UNSG32 uctrl_FREQ_OFFSET_READY                     :  1;\
            UNSG32 uctrl_PU                                    :  1;\
            UNSG32 uctrl_PU_OFST_CTRL                          :  1;\
            UNSG32 RSVDx4_b22                                  : 10;\
          }
    union { UNSG32 u32avpllCh8_ctrl1;
            struct w32avpllCh8_ctrl1;
          };
    #define   GET32avpllCh8_ctrl_P_SYNC1(r32)                  _BFGET_(r32,19, 0)
    #define   SET32avpllCh8_ctrl_P_SYNC1(r32,v)                _BFSET_(r32,19, 0,v)

    #define     w32avpllCh8_ctrl2                              {\
            UNSG32 uctrl_P_SYNC1                               : 20;\
            UNSG32 RSVDx8_b20                                  : 12;\
          }
    union { UNSG32 u32avpllCh8_ctrl2;
            struct w32avpllCh8_ctrl2;
          };
    #define   GET32avpllCh8_ctrl_P_SYNC2(r32)                  _BFGET_(r32,19, 0)
    #define   SET32avpllCh8_ctrl_P_SYNC2(r32,v)                _BFSET_(r32,19, 0,v)

    #define   GET32avpllCh8_ctrl_RESET(r32)                    _BFGET_(r32,20,20)
    #define   SET32avpllCh8_ctrl_RESET(r32,v)                  _BFSET_(r32,20,20,v)
    #define   GET16avpllCh8_ctrl_RESET(r16)                    _BFGET_(r16, 4, 4)
    #define   SET16avpllCh8_ctrl_RESET(r16,v)                  _BFSET_(r16, 4, 4,v)

    #define   GET32avpllCh8_ctrl_RESERVE_IN(r32)               _BFGET_(r32,22,21)
    #define   SET32avpllCh8_ctrl_RESERVE_IN(r32,v)             _BFSET_(r32,22,21,v)
    #define   GET16avpllCh8_ctrl_RESERVE_IN(r16)               _BFGET_(r16, 6, 5)
    #define   SET16avpllCh8_ctrl_RESERVE_IN(r16,v)             _BFSET_(r16, 6, 5,v)

    #define     w32avpllCh8_ctrl3                              {\
            UNSG32 uctrl_P_SYNC2                               : 20;\
            UNSG32 uctrl_RESET                                 :  1;\
            UNSG32 uctrl_RESERVE_IN                            :  2;\
            UNSG32 RSVDxC_b23                                  :  9;\
          }
    union { UNSG32 u32avpllCh8_ctrl3;
            struct w32avpllCh8_ctrl3;
          };
    ///////////////////////////////////////////////////////////
    } SIE_avpllCh8;

    typedef union  T32avpllCh8_ctrl
          { UNSG32 u32;
            struct w32avpllCh8_ctrl;
                 } T32avpllCh8_ctrl;
    typedef union  T32avpllCh8_ctrl1
          { UNSG32 u32;
            struct w32avpllCh8_ctrl1;
                 } T32avpllCh8_ctrl1;
    typedef union  T32avpllCh8_ctrl2
          { UNSG32 u32;
            struct w32avpllCh8_ctrl2;
                 } T32avpllCh8_ctrl2;
    typedef union  T32avpllCh8_ctrl3
          { UNSG32 u32;
            struct w32avpllCh8_ctrl3;
                 } T32avpllCh8_ctrl3;
    ///////////////////////////////////////////////////////////

    typedef union  TavpllCh8_ctrl
          { UNSG32 u32[4];
            struct {
            struct w32avpllCh8_ctrl;
            struct w32avpllCh8_ctrl1;
            struct w32avpllCh8_ctrl2;
            struct w32avpllCh8_ctrl3;
                   };
                 } TavpllCh8_ctrl;

    ///////////////////////////////////////////////////////////
     SIGN32 avpllCh8_drvrd(SIE_avpllCh8 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 avpllCh8_drvwr(SIE_avpllCh8 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void avpllCh8_reset(SIE_avpllCh8 *p);
     SIGN32 avpllCh8_cmp  (SIE_avpllCh8 *p, SIE_avpllCh8 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define avpllCh8_check(p,pie,pfx,hLOG) avpllCh8_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define avpllCh8_print(p,    pfx,hLOG) avpllCh8_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: avpllCh8
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE avPll                   biu              (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrlPLL              (P-)
///               ###
///               * AVPLL Control Registers
///               * The AVPLL is designed to generate clocks for digital Audio and Video applications. It consists of only one core PLL which generates clock outputs covering the frequency range from 1.5GHz to 2.97GHz. There are totally 8 PIs, with 1 PI used inside PLL, 7 PIs used in output clock channels. The PI used inside PLL is referred to C8.
///               * Other PIs in each channel provides 7 channels output clock signal:
///               * a), The other five channels (C1..C5) can be programmed as audio/video clock. They are single end output clock.
///               * b), In contrast with C1..C5, CHANNEL6 provide clock of lower jitter. They are proposed to be programmed as video DAC or other higher performance clock (Of course, they also can be programmed as audio clock). C6 are differential output clock.
///               * c), CHANNEL7 (C7) is dedicated HDMI clock. C7 is differential output clock.
///               ###
///               %unsigned 1  RESET                     0x1
///                                    ###
///                                    * 0
///                                    * De-asserted
///                                    * 1
///                                    * Asserted
///                                    * Reset PLL
///                                    * Must be de-asserted after 10us from the time when PU is set to 1.
///                                    * Note: Firmware should first set PU then de-assert PLL reset after 10us and then enable the video and audio clocks using the clk enable register.
///                                    ###
///               %unsigned 1  PU                        0x0
///                                    ###
///                                    * Power up signal for AVPLL
///                                    * 0=power down
///                                    * 1=active
///                                    * When PU=0, all circuits including IVREF, INTP, REGULATOR and PLL are POWERED OFF
///                                    ###
///               %unsigned 3  PLL_VDDRA_SEL             0x3
///                                    ###
///                                    * Select gate voltage for
///                                    * VDDBUF
///                                    * 000   1,16v
///                                    * 001   1.18v
///                                    * 010   1.20v
///                                    * 011   1.22v
///                                    * 100      1.24v
///                                    * 101     1.26v
///                                    * 110      1.28v
///                                    * 111   1.30v
///                                    * VGATE=1.22V,
///                                    * range from 1.16-1.3,
///                                    * 20mv/step
///                                    ###
///               %unsigned 1  REG_RING_EXTRA_I_EN       0x0
///                                    ###
///                                    * "1" : turn on extra current for
///                                    * the oscillator of vdda23 charge pump
///                                    ###
///               %unsigned 2  VCO_REF1P45_SEL           0x1
///                                    ###
///                                    * Select VREF1P0V_VCO1P45
///                                    * 00        0.975v
///                                    * 01        1.0v
///                                    * 10        1.025v
///                                    * 11 1.05v
///                                    ###
///               %unsigned 2  VDDA23_PUMP_SEL           0x1
///                                    ###
///                                    * Select VREF0P96_VDDA23PUMP
///                                    * 00 0.925v
///                                    * 01 0.95v
///                                    * 10 1.0v
///                                    * 11 1.05v
///                                    ###
///               %unsigned 3  VDDBUF_ADJ                0x0
///                                    ###
///                                    * Adjust for VDDVDOFBUF
///                                    * VDDBUF_ADJ[2:1] are reserved
///                                    * VDDBUF[0]:
///                                    * 0: vddvcofbuf=vddvco
///                                    * 1: vddvcofbuf=1.08*vddvco
///                                    ###
///               %unsigned 4  VDDL                      0xC
///                                    ###
///                                    * Internal regulated VDD supply
///                                    * 0001:   0.88v
///                                    * 0010:   0.90v
///                                    * 0011:   0.92v
///                                    * 0100:   0.94 v
///                                    * 0101:   0.96 v
///                                    * 0110:   0.98 v
///                                    * 0111:   1.00 v
///                                    * 1000:   1.02 v
///                                    * 1001:   1.04 v
///                                    * 1010:   1.06 v
///                                    * 1011:   1.08 v
///                                    * 1100:   1.10v
///                                    * 1101:   1.12v
///                                    * 1110:   1.14v
///                                    * 1111:   1.16v
///                                    ###
///               %unsigned 9  FBDIV                     0x10
///                                    ###
///                                    * Feedback clock divider select
///                                    * Divider= FBDIV [8:0], start from 16.
///                                    ###
///               %unsigned 4  ICP                       0x5
///                                    ###
///                                    * Charge-pump current con
///                                    * 0000   30uA
///                                    * 0001   37.5uA
///                                    * 0010   45uA
///                                    * 0011   52.5uA
///                                    * 0100   60uA
///                                    * 0101   75uA
///                                    * 0110   90uA
///                                    * 0111   105uA
///                                    * 1000   120uA
///                                    * 1001   150uA
///                                    * 1010   180uA
///                                    * 1011   210uA
///                                    * 1100   240uA
///                                    * 1101   300uA
///                                    * 1110   360uA
///                                    * 1111   420uA
///                                    ###
///               %unsigned 1  PLL_LPFC2_LESS            0x0
///                                    ###
///                                    * PLL_LPFC1=1, C2=1.2pf
///                                    * PLL_LPFC1=0, C2=1.4pf
///                                    ###
///               %%        1          # Stuffing bits...
///     # 0x00004 ctrlPLL1             
///               %unsigned 7  REFDIV                    0x1
///                                    ###
///                                    * Reference clock divider select
///                                    * [5:0]
///                                    * 0000000: not used.
///                                    * 0000001: div1.
///                                    * 0000010: div2
///                                    * 0000011: div3
///                                    * 0000100: div4
///                                    * .
///                                    * .
///                                    * Divider=REFDIV[5:0], for N>=2
///                                    ###
///               %unsigned 6  RESERVE_PLL_IN            0x0
///               %unsigned 4  EXT_SPEED                 0x0
///                                    ###
///                                    * External VCO speed control for
///                                    * different VCO frequencies. The following table is for simulation purpose, it matches the verilog model. The actual VCO speed setting is coming from the calibration result.
///                                    * SPEED[3:0]: typical freq range
///                                    * 0000   reserved
///                                    * 0001   reserved
///                                    * 0010   1.5G~1.7GHz
///                                    * 0011   1.7G~1.9GHz
///                                    * 0100   1.9G~2.1GHz
///                                    * 0101   2.1G~2.3GHz
///                                    * 0110   2.3G~2.45GHz
///                                    * 0111   2.45G~2.6GHz
///                                    * 1000   2.6G~2.75GHz
///                                    * 1001   2.75G~2.9GHz
///                                    * 1010   2.9G~3.0GHz
///                                    * 1011   reserved
///                                    * 1100   reserved
///                                    * 1101   reserved
///                                    * 1110   reserved
///                                    ###
///               %unsigned 4  SPEED_FBRES               0x0
///                                    ###
///                                    * External feedback resistor (VCO ring) set up bits
///                                    ###
///               %unsigned 1  UPDATE_SEL                0x0
///                                    ###
///                                    * Select the PLL update_rate:
///                                    * 0: 19M~26MHz
///                                    * for refclk 19.2M, 38.4M 2
///                                    * 1: 13MHz for refclk 13MHz
///                                    ###
///               %%        10         # Stuffing bits...
///     @ 0x00008 ctrlCAL              (P-)
///               %unsigned 9  CAL_FBDIV                 0x64
///                                    ###
///                                    * During calibration, count Fvco/CAL_FBDIV cycles in 1us, and compare it with SPEED_THRESH[5:0] to decide fvco is higher or lower than the expected frequency, set to dec100.
///                                    ###
///               %unsigned 1  EXT_SLLP_DAC_EN           0x0
///                                    ###
///                                    * 0: use the calibrated code SLLP_DAC_RD[6:0]
///                                    * 1: use the external input EXT_SLLP_DAC[6:0]
///                                    ###
///               %unsigned 1  EXT_SPEED_EN              0x0
///                                    ###
///                                    * 0: use the calibrated code SPEED_RD[3:0]
///                                    * 1: use the external input SPEED[3:0]
///                                    ###
///               %unsigned 1  EXT_SP_FBRES_EN           0x0
///                                    ###
///                                    * External speed enable pin
///                                    * 0: take SPEED_RD[3:0] for feedback resistor
///                                    * 1: take SPEED_FBRES[3:0]
///                                    ###
///               %unsigned 5  PLL_CALCLK_DIV            0x19
///                                    ###
///                                    * Divider to generate around 1MHz calibration clock from the internal update clock:
///                                    * 00000: not used.
///                                    * 00001: div1.
///                                    * 00010: div2
///                                    * 00011: div3
///                                    * 00100: div4
///                                    * .. .
///                                    * Divider=PLL_CALCLK_DIV[4:0], for N>=2
///                                    * D13 for refclk 13MHz
///                                    * D19 for refclk 19.2MHz/38.4MHz
///                                    * D25 for refclk 25MHz
///                                    * D26 for refclk 26MHz
///                                    ###
///               %unsigned 1  PLL_CAL_START             0x0
///                                    ###
///                                    * Rising edge to start PLL calibration
///                                    ###
///               %unsigned 4  REG_SETTLE_LIMIT          0x8
///                                    ###
///                                    * Select waiting time before calibration logic start to take action after PLL_CAL_START is issued, default is 8us
///                                    ###
///               %unsigned 1  SEL_VTHVCOCONT            0x1
///                                    ###
///                                    * Select the source of threshold
///                                    * 0: select IPP+IPTAT generated threshold voltage
///                                    * 1: select IPP generated threshold voltage
///                                    ###
///               %unsigned 6  SPEED_THRESH              0x1E
///                                    ###
///                                    * Digital counter threshold for VCO speed setting calibration loop, threshold value varies with the target VCO frequency.
///                                    * if CAL_FBDIV=dec100,
///                                    * speed_thresh[5:0]   VCO_frequency
///                                    * dec15                    1.5GHz
///                                    * dec20                    2.0GHz
///                                    * dec30                    3.0GHz
///                                    ###
///               %unsigned 2  VCON_SEL                  0x2
///                                    ###
///                                    * Used to set VCON value during PLL Open loop calibration
///                                    * 00: 0.6
///                                    * 01: 0.65
///                                    * 10: 0.7
///                                    * 11: 0.75
///                                    ###
///               %%        1          # Stuffing bits...
///     # 0x0000C ctrlCAL1             
///               %unsigned 7  EXT_SLLP_DAC              0x32
///                                    ###
///                                    * External input used to set VDDVCO value. Used to set Vcon reference value during PLL normal calibration.
///                                    * Vcon: 0.35 + 0.01125*VSET_SLLP_DAC[6:0] default: 01,1011 -------- Vcon=0.697V
///                                    ###
///               %unsigned 2  VTH_VCO_CAL               0x2
///                                    ###
///                                    * 2 bits to select the threshold for calibrated VDDVCO voltage
///                                    * When SEL_VTHVCOCON=1, select IPP generated threshold:
///                                    * 00 1.05v
///                                    * 01 1.075v
///                                    * 10 1.1v
///                                    * 11 1.125v
///                                    * When SEL_VTHVCOCON=0, select IPP portion for IPP+IPTAT generated threshold:
///                                    * 00: 31uA
///                                    * 01: 33uA
///                                    * 10: 35uA
///                                    * 11: 37uA
///                                    ###
///               %unsigned 2  VTH_VCO_PTAT              0x1
///                                    ###
///                                    * 2 bits to select IPTAT curren
///                                    * IPTAT current
///                                    * 00      0uA
///                                    * 01      2uA
///                                    * 10         4uA
///                                    * 11         6uA
///                                    ###
///               %%        21         # Stuffing bits...
///     @ 0x00010 ctrlSlowLoop         (P-)
///               %unsigned 3  PW_SLLP                   0x3
///                                    ###
///                                    * This set of signals define PLL
///                                    * 000: 2T_vco
///                                    * 001: 4T_vco
///                                    * 010: 8T_vco
///                                    * 011: 16T_vco
///                                    * 100: 32T_vco
///                                    * 101: 64T_vco
///                                    * 110:128T_vco
///                                    * 111:256T_vco
///                                    ###
///               %unsigned 1  SLLP_CLK_DIV5EN           0x0
///                                    ###
///                                    * Enable slow loop
///                                    * clock=200KHz, default is 100KHz
///                                    * SLLP_CLK_DIV5EN=0,
///                                    * slow loop clock is 100KHz;
///                                    * SLLP_CLK_DIV5EN=1,
///                                    * slow loop clock is 200KHz
///                                    ###
///               %unsigned 1  SLLP_EN_DIS               0x0
///                                    ###
///                                    * 0: Enable slow loop
///                                    * 1: Disable slow loop
///                                    ###
///               %unsigned 3  SLLP_PSF_LEVEL            0x1
///                                    ###
///                                    * IPP current control to genera
///                                    * SLLP_PSF_LEVEL[2] is re
///                                    * [1:0]   IPP current
///                                    * 00             2uA
///                                    * 01             4uA
///                                    * 10              6uA
///                                    * 11              8uA
///                                    ###
///               %%        24         # Stuffing bits...
///     @ 0x00014 ctrlINTP             (P-)
///               %unsigned 1  CLK_DET_EN                0x1
///                                    ###
///                                    * Enables PI output clock for internal reset circuit.
///                                    * 0: disable
///                                    * 1: enable
///                                    ###
///               %unsigned 2  DPHER_DLY_SEL             0x2
///                                    ###
///                                    * Tuning DPHERCK delay
///                                    * 00: smallest
///                                    * 01
///                                    * 10
///                                    * 11: largest
///                                    ###
///               %unsigned 4  INTPI                     0xB
///                                    ###
///                                    * Select PI bias current:
///                                    * INTPI[3:0] CURRENT VCO's Freq
///                                    * 0000       20uA
///                                    * 0001       22.5uA
///                                    * 0010       25uA     1.5GHz
///                                    * 0011       27.5uA
///                                    * 0100       30uA
///                                    * 0101       32.5uA 2.0GHz
///                                    * 0110       35uA
///                                    * 0111       37.5uA 2.3Ghz
///                                    * 1000       40uA
///                                    * 1001       42.5uA     2.65GHz
///                                    * 1010       45uA
///                                    * 1011       47.5uA     3GHz
///                                    * 1100       50uA
///                                    * 1101       52.5uA     3.3GHz
///                                    * 1110       55uA
///                                    * 1111      57.5uA     3.6GHz
///                                    * Use high frequency band on boarder
///                                    * Default setting is for 3.0GHz
///                                    ###
///               %unsigned 3  INTPR                     0x2
///                                    ###
///                                    * Used for PI Rload resistor se
///                                    * INTPR[2:0]   RES   VCO's Freq
///                                    * 000       650
///                                    * 001      750    3.3~4GHz
///                                    * 010       900   2.65~3.3GHz
///                                    * 011       1150 2.0~2.65GHz
///                                    * 100       1500   1.5~2GHz
///                                    * 101        2300   1~1.5GHz
///                                    * 110        4600
///                                    * 111          RESERVED
///                                    * Use high frequency band on boarder
///                                    * Default setting is for 3.0GHz
///                                    ###
///               %%        22         # Stuffing bits...
///     @ 0x00018 ctrlC8AddOn          (P-)
///               %unsigned 1  MASTER_SLAVEB             0x1
///                                    ###
///                                    * Used to sync frequencies
///                                    * if using 2 PLLs.
///                                    * 1 ' Master PLL
///                                    * 0 ' Slave PLL
///                                    ###
///               %unsigned 2  MODE                      0x0
///                                    ###
///                                    * Mode[1:0] cali_done fbclk
///                                    * 0x         0         fb_vco
///                                    * 0x         1         fb_pi
///                                    * 10         x         fb_vco
///                                    * 11         x         fb_pi
///                                    ###
///               %%        29         # Stuffing bits...
///     @ 0x0001C                      (P)
///     # 0x0001C C1                   
///               $avpllCh             C1                REG          
///     @ 0x0002C                      (P)
///     # 0x0002C C2                   
///               $avpllCh             C2                REG          
///     @ 0x0003C                      (P)
///     # 0x0003C C3                   
///               $avpllCh             C3                REG          
///     @ 0x0004C                      (P)
///     # 0x0004C C4                   
///               $avpllCh             C4                REG          
///     @ 0x0005C                      (P)
///     # 0x0005C C5                   
///               $avpllCh             C5                REG          
///     @ 0x0006C                      (P)
///     # 0x0006C C6                   
///               $avpllCh             C6                REG          
///     @ 0x0007C                      (P)
///     # 0x0007C C7                   
///               $avpllCh             C7                REG          
///     @ 0x0008C                      (P)
///     # 0x0008C C8                   
///               $avpllCh8            C8                REG          
///     @ 0x0009C ctrlTest             (P-)
///               %unsigned 1  CLKOUT_TST_EN             0x0
///                                    ###
///                                    * 0: CLKOUT_TST=0
///                                    * 1: Enable CLKOUT_TST output
///                                    ###
///               %unsigned 6  TEST_MON                  0x0
///                                    ###
///                                    * TEST_MON[5]:
///                                    * 0: TP = high Z
///                                    * 1: enable test point
///                                    * If TEST_MON[5]=1 :
///                                    * TEST_MON[4:0]      TP
///                                    * 0 0000              DVSS
///                                    * 0 0001              AVDD
///                                    * 0 0010              AVSS
///                                    * 0 0011~0 1001       AVSS
///                                    * 0 1010           TP_V0P7
///                                    * 0 1011           TP_VCOVTH
///                                    * 0 1100           VDDR_VCOFBUF
///                                    * 0 1101           TP_CHGPMP_
///                                    * 0 1110           TP_CHGPMP_
///                                    * 0 1111           VDDR_REFDIV
///                                    * 1 0000           VDDR_FBDIV
///                                    * 1 0001           VDDR_INTP_LA
///                                    * 1 0010           VDDR_INTP_LA
///                                    * 1 0011           TP_NBIAS_INTP
///                                    * 1 0100           DVDD
///                                    * 1 0101           PLL_LOCK
///                                    * 1 0110           PLL_CAL_EN
///                                    * 1 0111          PLL_CAL_DONE
///                                    * 1 1000          TP_VCTL_SLOW
///                                    * 1 1001          TP_VDAC_OUT
///                                    * 1 1010          TP_VDDVCO
///                                    * 1 1011          TP_VCON
///                                    * 1 1100~1 1111    AVSS
///                                    ###
///               %%        25         # Stuffing bits...
///     @ 0x000A0 status               (R-)
///               ###
///               * PLL status register
///               ###
///               %unsigned 1  PLL_LOCK                  
///                                    ###
///                                    * PLL Lock
///                                    * 1: PLL locked.
///                                    * 0: PLL not locked.
///                                    ###
///               %unsigned 6  RESERVE_PLL_OUT           
///               %unsigned 9  FBDIV_RD                  
///                                    ###
///                                    * Output register bits for calibrated FBDIV[8:0]
///                                    ###
///               %unsigned 1  PLL_CAL_DONE              
///                                    ###
///                                    * Rising edge indicate the end of PLL calibration
///                                    ###
///               %unsigned 6  SPEED_CNT                 
///                                    ###
///                                    * Output register bits for speed counter in calibration
///                                    ###
///               %unsigned 4  SPEED_RD                  
///                                    ###
///                                    * Output register bits for calibrated SPEED[3:0]
///                                    ###
///               %%        5          # Stuffing bits...
///     # 0x000A4 status1              
///               %unsigned 7  SLLP_DAC_RD               
///                                    ###
///                                    * Output register bits for calibrated SLLP_DAC[6:0]
///                                    ###
///               %%        25         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:     168B, bits:     813b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_avPll
#define h_avPll (){}

    #define     RA_avPll_ctrlPLL                               0x0000

    #define     BA_avPll_ctrlPLL_RESET                         0x0000
    #define     B16avPll_ctrlPLL_RESET                         0x0000
    #define   LSb32avPll_ctrlPLL_RESET                            0
    #define   LSb16avPll_ctrlPLL_RESET                            0
    #define       bavPll_ctrlPLL_RESET                         1
    #define   MSK32avPll_ctrlPLL_RESET                            0x00000001

    #define     BA_avPll_ctrlPLL_PU                            0x0000
    #define     B16avPll_ctrlPLL_PU                            0x0000
    #define   LSb32avPll_ctrlPLL_PU                               1
    #define   LSb16avPll_ctrlPLL_PU                               1
    #define       bavPll_ctrlPLL_PU                            1
    #define   MSK32avPll_ctrlPLL_PU                               0x00000002

    #define     BA_avPll_ctrlPLL_PLL_VDDRA_SEL                 0x0000
    #define     B16avPll_ctrlPLL_PLL_VDDRA_SEL                 0x0000
    #define   LSb32avPll_ctrlPLL_PLL_VDDRA_SEL                    2
    #define   LSb16avPll_ctrlPLL_PLL_VDDRA_SEL                    2
    #define       bavPll_ctrlPLL_PLL_VDDRA_SEL                 3
    #define   MSK32avPll_ctrlPLL_PLL_VDDRA_SEL                    0x0000001C

    #define     BA_avPll_ctrlPLL_REG_RING_EXTRA_I_EN           0x0000
    #define     B16avPll_ctrlPLL_REG_RING_EXTRA_I_EN           0x0000
    #define   LSb32avPll_ctrlPLL_REG_RING_EXTRA_I_EN              5
    #define   LSb16avPll_ctrlPLL_REG_RING_EXTRA_I_EN              5
    #define       bavPll_ctrlPLL_REG_RING_EXTRA_I_EN           1
    #define   MSK32avPll_ctrlPLL_REG_RING_EXTRA_I_EN              0x00000020

    #define     BA_avPll_ctrlPLL_VCO_REF1P45_SEL               0x0000
    #define     B16avPll_ctrlPLL_VCO_REF1P45_SEL               0x0000
    #define   LSb32avPll_ctrlPLL_VCO_REF1P45_SEL                  6
    #define   LSb16avPll_ctrlPLL_VCO_REF1P45_SEL                  6
    #define       bavPll_ctrlPLL_VCO_REF1P45_SEL               2
    #define   MSK32avPll_ctrlPLL_VCO_REF1P45_SEL                  0x000000C0

    #define     BA_avPll_ctrlPLL_VDDA23_PUMP_SEL               0x0001
    #define     B16avPll_ctrlPLL_VDDA23_PUMP_SEL               0x0000
    #define   LSb32avPll_ctrlPLL_VDDA23_PUMP_SEL                  8
    #define   LSb16avPll_ctrlPLL_VDDA23_PUMP_SEL                  8
    #define       bavPll_ctrlPLL_VDDA23_PUMP_SEL               2
    #define   MSK32avPll_ctrlPLL_VDDA23_PUMP_SEL                  0x00000300

    #define     BA_avPll_ctrlPLL_VDDBUF_ADJ                    0x0001
    #define     B16avPll_ctrlPLL_VDDBUF_ADJ                    0x0000
    #define   LSb32avPll_ctrlPLL_VDDBUF_ADJ                       10
    #define   LSb16avPll_ctrlPLL_VDDBUF_ADJ                       10
    #define       bavPll_ctrlPLL_VDDBUF_ADJ                    3
    #define   MSK32avPll_ctrlPLL_VDDBUF_ADJ                       0x00001C00

    #define     BA_avPll_ctrlPLL_VDDL                          0x0001
    #define     B16avPll_ctrlPLL_VDDL                          0x0000
    #define   LSb32avPll_ctrlPLL_VDDL                             13
    #define   LSb16avPll_ctrlPLL_VDDL                             13
    #define       bavPll_ctrlPLL_VDDL                          4
    #define   MSK32avPll_ctrlPLL_VDDL                             0x0001E000

    #define     BA_avPll_ctrlPLL_FBDIV                         0x0002
    #define     B16avPll_ctrlPLL_FBDIV                         0x0002
    #define   LSb32avPll_ctrlPLL_FBDIV                            17
    #define   LSb16avPll_ctrlPLL_FBDIV                            1
    #define       bavPll_ctrlPLL_FBDIV                         9
    #define   MSK32avPll_ctrlPLL_FBDIV                            0x03FE0000

    #define     BA_avPll_ctrlPLL_ICP                           0x0003
    #define     B16avPll_ctrlPLL_ICP                           0x0002
    #define   LSb32avPll_ctrlPLL_ICP                              26
    #define   LSb16avPll_ctrlPLL_ICP                              10
    #define       bavPll_ctrlPLL_ICP                           4
    #define   MSK32avPll_ctrlPLL_ICP                              0x3C000000

    #define     BA_avPll_ctrlPLL_PLL_LPFC2_LESS                0x0003
    #define     B16avPll_ctrlPLL_PLL_LPFC2_LESS                0x0002
    #define   LSb32avPll_ctrlPLL_PLL_LPFC2_LESS                   30
    #define   LSb16avPll_ctrlPLL_PLL_LPFC2_LESS                   14
    #define       bavPll_ctrlPLL_PLL_LPFC2_LESS                1
    #define   MSK32avPll_ctrlPLL_PLL_LPFC2_LESS                   0x40000000

    #define     RA_avPll_ctrlPLL1                              0x0004

    #define     BA_avPll_ctrlPLL_REFDIV                        0x0004
    #define     B16avPll_ctrlPLL_REFDIV                        0x0004
    #define   LSb32avPll_ctrlPLL_REFDIV                           0
    #define   LSb16avPll_ctrlPLL_REFDIV                           0
    #define       bavPll_ctrlPLL_REFDIV                        7
    #define   MSK32avPll_ctrlPLL_REFDIV                           0x0000007F

    #define     BA_avPll_ctrlPLL_RESERVE_PLL_IN                0x0004
    #define     B16avPll_ctrlPLL_RESERVE_PLL_IN                0x0004
    #define   LSb32avPll_ctrlPLL_RESERVE_PLL_IN                   7
    #define   LSb16avPll_ctrlPLL_RESERVE_PLL_IN                   7
    #define       bavPll_ctrlPLL_RESERVE_PLL_IN                6
    #define   MSK32avPll_ctrlPLL_RESERVE_PLL_IN                   0x00001F80

    #define     BA_avPll_ctrlPLL_EXT_SPEED                     0x0005
    #define     B16avPll_ctrlPLL_EXT_SPEED                     0x0004
    #define   LSb32avPll_ctrlPLL_EXT_SPEED                        13
    #define   LSb16avPll_ctrlPLL_EXT_SPEED                        13
    #define       bavPll_ctrlPLL_EXT_SPEED                     4
    #define   MSK32avPll_ctrlPLL_EXT_SPEED                        0x0001E000

    #define     BA_avPll_ctrlPLL_SPEED_FBRES                   0x0006
    #define     B16avPll_ctrlPLL_SPEED_FBRES                   0x0006
    #define   LSb32avPll_ctrlPLL_SPEED_FBRES                      17
    #define   LSb16avPll_ctrlPLL_SPEED_FBRES                      1
    #define       bavPll_ctrlPLL_SPEED_FBRES                   4
    #define   MSK32avPll_ctrlPLL_SPEED_FBRES                      0x001E0000

    #define     BA_avPll_ctrlPLL_UPDATE_SEL                    0x0006
    #define     B16avPll_ctrlPLL_UPDATE_SEL                    0x0006
    #define   LSb32avPll_ctrlPLL_UPDATE_SEL                       21
    #define   LSb16avPll_ctrlPLL_UPDATE_SEL                       5
    #define       bavPll_ctrlPLL_UPDATE_SEL                    1
    #define   MSK32avPll_ctrlPLL_UPDATE_SEL                       0x00200000
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_ctrlCAL                               0x0008

    #define     BA_avPll_ctrlCAL_CAL_FBDIV                     0x0008
    #define     B16avPll_ctrlCAL_CAL_FBDIV                     0x0008
    #define   LSb32avPll_ctrlCAL_CAL_FBDIV                        0
    #define   LSb16avPll_ctrlCAL_CAL_FBDIV                        0
    #define       bavPll_ctrlCAL_CAL_FBDIV                     9
    #define   MSK32avPll_ctrlCAL_CAL_FBDIV                        0x000001FF

    #define     BA_avPll_ctrlCAL_EXT_SLLP_DAC_EN               0x0009
    #define     B16avPll_ctrlCAL_EXT_SLLP_DAC_EN               0x0008
    #define   LSb32avPll_ctrlCAL_EXT_SLLP_DAC_EN                  9
    #define   LSb16avPll_ctrlCAL_EXT_SLLP_DAC_EN                  9
    #define       bavPll_ctrlCAL_EXT_SLLP_DAC_EN               1
    #define   MSK32avPll_ctrlCAL_EXT_SLLP_DAC_EN                  0x00000200

    #define     BA_avPll_ctrlCAL_EXT_SPEED_EN                  0x0009
    #define     B16avPll_ctrlCAL_EXT_SPEED_EN                  0x0008
    #define   LSb32avPll_ctrlCAL_EXT_SPEED_EN                     10
    #define   LSb16avPll_ctrlCAL_EXT_SPEED_EN                     10
    #define       bavPll_ctrlCAL_EXT_SPEED_EN                  1
    #define   MSK32avPll_ctrlCAL_EXT_SPEED_EN                     0x00000400

    #define     BA_avPll_ctrlCAL_EXT_SP_FBRES_EN               0x0009
    #define     B16avPll_ctrlCAL_EXT_SP_FBRES_EN               0x0008
    #define   LSb32avPll_ctrlCAL_EXT_SP_FBRES_EN                  11
    #define   LSb16avPll_ctrlCAL_EXT_SP_FBRES_EN                  11
    #define       bavPll_ctrlCAL_EXT_SP_FBRES_EN               1
    #define   MSK32avPll_ctrlCAL_EXT_SP_FBRES_EN                  0x00000800

    #define     BA_avPll_ctrlCAL_PLL_CALCLK_DIV                0x0009
    #define     B16avPll_ctrlCAL_PLL_CALCLK_DIV                0x0008
    #define   LSb32avPll_ctrlCAL_PLL_CALCLK_DIV                   12
    #define   LSb16avPll_ctrlCAL_PLL_CALCLK_DIV                   12
    #define       bavPll_ctrlCAL_PLL_CALCLK_DIV                5
    #define   MSK32avPll_ctrlCAL_PLL_CALCLK_DIV                   0x0001F000

    #define     BA_avPll_ctrlCAL_PLL_CAL_START                 0x000A
    #define     B16avPll_ctrlCAL_PLL_CAL_START                 0x000A
    #define   LSb32avPll_ctrlCAL_PLL_CAL_START                    17
    #define   LSb16avPll_ctrlCAL_PLL_CAL_START                    1
    #define       bavPll_ctrlCAL_PLL_CAL_START                 1
    #define   MSK32avPll_ctrlCAL_PLL_CAL_START                    0x00020000

    #define     BA_avPll_ctrlCAL_REG_SETTLE_LIMIT              0x000A
    #define     B16avPll_ctrlCAL_REG_SETTLE_LIMIT              0x000A
    #define   LSb32avPll_ctrlCAL_REG_SETTLE_LIMIT                 18
    #define   LSb16avPll_ctrlCAL_REG_SETTLE_LIMIT                 2
    #define       bavPll_ctrlCAL_REG_SETTLE_LIMIT              4
    #define   MSK32avPll_ctrlCAL_REG_SETTLE_LIMIT                 0x003C0000

    #define     BA_avPll_ctrlCAL_SEL_VTHVCOCONT                0x000A
    #define     B16avPll_ctrlCAL_SEL_VTHVCOCONT                0x000A
    #define   LSb32avPll_ctrlCAL_SEL_VTHVCOCONT                   22
    #define   LSb16avPll_ctrlCAL_SEL_VTHVCOCONT                   6
    #define       bavPll_ctrlCAL_SEL_VTHVCOCONT                1
    #define   MSK32avPll_ctrlCAL_SEL_VTHVCOCONT                   0x00400000

    #define     BA_avPll_ctrlCAL_SPEED_THRESH                  0x000A
    #define     B16avPll_ctrlCAL_SPEED_THRESH                  0x000A
    #define   LSb32avPll_ctrlCAL_SPEED_THRESH                     23
    #define   LSb16avPll_ctrlCAL_SPEED_THRESH                     7
    #define       bavPll_ctrlCAL_SPEED_THRESH                  6
    #define   MSK32avPll_ctrlCAL_SPEED_THRESH                     0x1F800000

    #define     BA_avPll_ctrlCAL_VCON_SEL                      0x000B
    #define     B16avPll_ctrlCAL_VCON_SEL                      0x000A
    #define   LSb32avPll_ctrlCAL_VCON_SEL                         29
    #define   LSb16avPll_ctrlCAL_VCON_SEL                         13
    #define       bavPll_ctrlCAL_VCON_SEL                      2
    #define   MSK32avPll_ctrlCAL_VCON_SEL                         0x60000000

    #define     RA_avPll_ctrlCAL1                              0x000C

    #define     BA_avPll_ctrlCAL_EXT_SLLP_DAC                  0x000C
    #define     B16avPll_ctrlCAL_EXT_SLLP_DAC                  0x000C
    #define   LSb32avPll_ctrlCAL_EXT_SLLP_DAC                     0
    #define   LSb16avPll_ctrlCAL_EXT_SLLP_DAC                     0
    #define       bavPll_ctrlCAL_EXT_SLLP_DAC                  7
    #define   MSK32avPll_ctrlCAL_EXT_SLLP_DAC                     0x0000007F

    #define     BA_avPll_ctrlCAL_VTH_VCO_CAL                   0x000C
    #define     B16avPll_ctrlCAL_VTH_VCO_CAL                   0x000C
    #define   LSb32avPll_ctrlCAL_VTH_VCO_CAL                      7
    #define   LSb16avPll_ctrlCAL_VTH_VCO_CAL                      7
    #define       bavPll_ctrlCAL_VTH_VCO_CAL                   2
    #define   MSK32avPll_ctrlCAL_VTH_VCO_CAL                      0x00000180

    #define     BA_avPll_ctrlCAL_VTH_VCO_PTAT                  0x000D
    #define     B16avPll_ctrlCAL_VTH_VCO_PTAT                  0x000C
    #define   LSb32avPll_ctrlCAL_VTH_VCO_PTAT                     9
    #define   LSb16avPll_ctrlCAL_VTH_VCO_PTAT                     9
    #define       bavPll_ctrlCAL_VTH_VCO_PTAT                  2
    #define   MSK32avPll_ctrlCAL_VTH_VCO_PTAT                     0x00000600
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_ctrlSlowLoop                          0x0010

    #define     BA_avPll_ctrlSlowLoop_PW_SLLP                  0x0010
    #define     B16avPll_ctrlSlowLoop_PW_SLLP                  0x0010
    #define   LSb32avPll_ctrlSlowLoop_PW_SLLP                     0
    #define   LSb16avPll_ctrlSlowLoop_PW_SLLP                     0
    #define       bavPll_ctrlSlowLoop_PW_SLLP                  3
    #define   MSK32avPll_ctrlSlowLoop_PW_SLLP                     0x00000007

    #define     BA_avPll_ctrlSlowLoop_SLLP_CLK_DIV5EN          0x0010
    #define     B16avPll_ctrlSlowLoop_SLLP_CLK_DIV5EN          0x0010
    #define   LSb32avPll_ctrlSlowLoop_SLLP_CLK_DIV5EN             3
    #define   LSb16avPll_ctrlSlowLoop_SLLP_CLK_DIV5EN             3
    #define       bavPll_ctrlSlowLoop_SLLP_CLK_DIV5EN          1
    #define   MSK32avPll_ctrlSlowLoop_SLLP_CLK_DIV5EN             0x00000008

    #define     BA_avPll_ctrlSlowLoop_SLLP_EN_DIS              0x0010
    #define     B16avPll_ctrlSlowLoop_SLLP_EN_DIS              0x0010
    #define   LSb32avPll_ctrlSlowLoop_SLLP_EN_DIS                 4
    #define   LSb16avPll_ctrlSlowLoop_SLLP_EN_DIS                 4
    #define       bavPll_ctrlSlowLoop_SLLP_EN_DIS              1
    #define   MSK32avPll_ctrlSlowLoop_SLLP_EN_DIS                 0x00000010

    #define     BA_avPll_ctrlSlowLoop_SLLP_PSF_LEVEL           0x0010
    #define     B16avPll_ctrlSlowLoop_SLLP_PSF_LEVEL           0x0010
    #define   LSb32avPll_ctrlSlowLoop_SLLP_PSF_LEVEL              5
    #define   LSb16avPll_ctrlSlowLoop_SLLP_PSF_LEVEL              5
    #define       bavPll_ctrlSlowLoop_SLLP_PSF_LEVEL           3
    #define   MSK32avPll_ctrlSlowLoop_SLLP_PSF_LEVEL              0x000000E0
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_ctrlINTP                              0x0014

    #define     BA_avPll_ctrlINTP_CLK_DET_EN                   0x0014
    #define     B16avPll_ctrlINTP_CLK_DET_EN                   0x0014
    #define   LSb32avPll_ctrlINTP_CLK_DET_EN                      0
    #define   LSb16avPll_ctrlINTP_CLK_DET_EN                      0
    #define       bavPll_ctrlINTP_CLK_DET_EN                   1
    #define   MSK32avPll_ctrlINTP_CLK_DET_EN                      0x00000001

    #define     BA_avPll_ctrlINTP_DPHER_DLY_SEL                0x0014
    #define     B16avPll_ctrlINTP_DPHER_DLY_SEL                0x0014
    #define   LSb32avPll_ctrlINTP_DPHER_DLY_SEL                   1
    #define   LSb16avPll_ctrlINTP_DPHER_DLY_SEL                   1
    #define       bavPll_ctrlINTP_DPHER_DLY_SEL                2
    #define   MSK32avPll_ctrlINTP_DPHER_DLY_SEL                   0x00000006

    #define     BA_avPll_ctrlINTP_INTPI                        0x0014
    #define     B16avPll_ctrlINTP_INTPI                        0x0014
    #define   LSb32avPll_ctrlINTP_INTPI                           3
    #define   LSb16avPll_ctrlINTP_INTPI                           3
    #define       bavPll_ctrlINTP_INTPI                        4
    #define   MSK32avPll_ctrlINTP_INTPI                           0x00000078

    #define     BA_avPll_ctrlINTP_INTPR                        0x0014
    #define     B16avPll_ctrlINTP_INTPR                        0x0014
    #define   LSb32avPll_ctrlINTP_INTPR                           7
    #define   LSb16avPll_ctrlINTP_INTPR                           7
    #define       bavPll_ctrlINTP_INTPR                        3
    #define   MSK32avPll_ctrlINTP_INTPR                           0x00000380
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_ctrlC8AddOn                           0x0018

    #define     BA_avPll_ctrlC8AddOn_MASTER_SLAVEB             0x0018
    #define     B16avPll_ctrlC8AddOn_MASTER_SLAVEB             0x0018
    #define   LSb32avPll_ctrlC8AddOn_MASTER_SLAVEB                0
    #define   LSb16avPll_ctrlC8AddOn_MASTER_SLAVEB                0
    #define       bavPll_ctrlC8AddOn_MASTER_SLAVEB             1
    #define   MSK32avPll_ctrlC8AddOn_MASTER_SLAVEB                0x00000001

    #define     BA_avPll_ctrlC8AddOn_MODE                      0x0018
    #define     B16avPll_ctrlC8AddOn_MODE                      0x0018
    #define   LSb32avPll_ctrlC8AddOn_MODE                         1
    #define   LSb16avPll_ctrlC8AddOn_MODE                         1
    #define       bavPll_ctrlC8AddOn_MODE                      2
    #define   MSK32avPll_ctrlC8AddOn_MODE                         0x00000006
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_C1                                    0x001C
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_C2                                    0x002C
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_C3                                    0x003C
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_C4                                    0x004C
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_C5                                    0x005C
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_C6                                    0x006C
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_C7                                    0x007C
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_C8                                    0x008C
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_ctrlTest                              0x009C

    #define     BA_avPll_ctrlTest_CLKOUT_TST_EN                0x009C
    #define     B16avPll_ctrlTest_CLKOUT_TST_EN                0x009C
    #define   LSb32avPll_ctrlTest_CLKOUT_TST_EN                   0
    #define   LSb16avPll_ctrlTest_CLKOUT_TST_EN                   0
    #define       bavPll_ctrlTest_CLKOUT_TST_EN                1
    #define   MSK32avPll_ctrlTest_CLKOUT_TST_EN                   0x00000001

    #define     BA_avPll_ctrlTest_TEST_MON                     0x009C
    #define     B16avPll_ctrlTest_TEST_MON                     0x009C
    #define   LSb32avPll_ctrlTest_TEST_MON                        1
    #define   LSb16avPll_ctrlTest_TEST_MON                        1
    #define       bavPll_ctrlTest_TEST_MON                     6
    #define   MSK32avPll_ctrlTest_TEST_MON                        0x0000007E
    ///////////////////////////////////////////////////////////
    #define     RA_avPll_status                                0x00A0

    #define     BA_avPll_status_PLL_LOCK                       0x00A0
    #define     B16avPll_status_PLL_LOCK                       0x00A0
    #define   LSb32avPll_status_PLL_LOCK                          0
    #define   LSb16avPll_status_PLL_LOCK                          0
    #define       bavPll_status_PLL_LOCK                       1
    #define   MSK32avPll_status_PLL_LOCK                          0x00000001

    #define     BA_avPll_status_RESERVE_PLL_OUT                0x00A0
    #define     B16avPll_status_RESERVE_PLL_OUT                0x00A0
    #define   LSb32avPll_status_RESERVE_PLL_OUT                   1
    #define   LSb16avPll_status_RESERVE_PLL_OUT                   1
    #define       bavPll_status_RESERVE_PLL_OUT                6
    #define   MSK32avPll_status_RESERVE_PLL_OUT                   0x0000007E

    #define     BA_avPll_status_FBDIV_RD                       0x00A0
    #define     B16avPll_status_FBDIV_RD                       0x00A0
    #define   LSb32avPll_status_FBDIV_RD                          7
    #define   LSb16avPll_status_FBDIV_RD                          7
    #define       bavPll_status_FBDIV_RD                       9
    #define   MSK32avPll_status_FBDIV_RD                          0x0000FF80

    #define     BA_avPll_status_PLL_CAL_DONE                   0x00A2
    #define     B16avPll_status_PLL_CAL_DONE                   0x00A2
    #define   LSb32avPll_status_PLL_CAL_DONE                      16
    #define   LSb16avPll_status_PLL_CAL_DONE                      0
    #define       bavPll_status_PLL_CAL_DONE                   1
    #define   MSK32avPll_status_PLL_CAL_DONE                      0x00010000

    #define     BA_avPll_status_SPEED_CNT                      0x00A2
    #define     B16avPll_status_SPEED_CNT                      0x00A2
    #define   LSb32avPll_status_SPEED_CNT                         17
    #define   LSb16avPll_status_SPEED_CNT                         1
    #define       bavPll_status_SPEED_CNT                      6
    #define   MSK32avPll_status_SPEED_CNT                         0x007E0000

    #define     BA_avPll_status_SPEED_RD                       0x00A2
    #define     B16avPll_status_SPEED_RD                       0x00A2
    #define   LSb32avPll_status_SPEED_RD                          23
    #define   LSb16avPll_status_SPEED_RD                          7
    #define       bavPll_status_SPEED_RD                       4
    #define   MSK32avPll_status_SPEED_RD                          0x07800000

    #define     RA_avPll_status1                               0x00A4

    #define     BA_avPll_status_SLLP_DAC_RD                    0x00A4
    #define     B16avPll_status_SLLP_DAC_RD                    0x00A4
    #define   LSb32avPll_status_SLLP_DAC_RD                       0
    #define   LSb16avPll_status_SLLP_DAC_RD                       0
    #define       bavPll_status_SLLP_DAC_RD                    7
    #define   MSK32avPll_status_SLLP_DAC_RD                       0x0000007F
    ///////////////////////////////////////////////////////////

    typedef struct SIE_avPll {
    ///////////////////////////////////////////////////////////
    #define   GET32avPll_ctrlPLL_RESET(r32)                    _BFGET_(r32, 0, 0)
    #define   SET32avPll_ctrlPLL_RESET(r32,v)                  _BFSET_(r32, 0, 0,v)
    #define   GET16avPll_ctrlPLL_RESET(r16)                    _BFGET_(r16, 0, 0)
    #define   SET16avPll_ctrlPLL_RESET(r16,v)                  _BFSET_(r16, 0, 0,v)

    #define   GET32avPll_ctrlPLL_PU(r32)                       _BFGET_(r32, 1, 1)
    #define   SET32avPll_ctrlPLL_PU(r32,v)                     _BFSET_(r32, 1, 1,v)
    #define   GET16avPll_ctrlPLL_PU(r16)                       _BFGET_(r16, 1, 1)
    #define   SET16avPll_ctrlPLL_PU(r16,v)                     _BFSET_(r16, 1, 1,v)

    #define   GET32avPll_ctrlPLL_PLL_VDDRA_SEL(r32)            _BFGET_(r32, 4, 2)
    #define   SET32avPll_ctrlPLL_PLL_VDDRA_SEL(r32,v)          _BFSET_(r32, 4, 2,v)
    #define   GET16avPll_ctrlPLL_PLL_VDDRA_SEL(r16)            _BFGET_(r16, 4, 2)
    #define   SET16avPll_ctrlPLL_PLL_VDDRA_SEL(r16,v)          _BFSET_(r16, 4, 2,v)

    #define   GET32avPll_ctrlPLL_REG_RING_EXTRA_I_EN(r32)      _BFGET_(r32, 5, 5)
    #define   SET32avPll_ctrlPLL_REG_RING_EXTRA_I_EN(r32,v)    _BFSET_(r32, 5, 5,v)
    #define   GET16avPll_ctrlPLL_REG_RING_EXTRA_I_EN(r16)      _BFGET_(r16, 5, 5)
    #define   SET16avPll_ctrlPLL_REG_RING_EXTRA_I_EN(r16,v)    _BFSET_(r16, 5, 5,v)

    #define   GET32avPll_ctrlPLL_VCO_REF1P45_SEL(r32)          _BFGET_(r32, 7, 6)
    #define   SET32avPll_ctrlPLL_VCO_REF1P45_SEL(r32,v)        _BFSET_(r32, 7, 6,v)
    #define   GET16avPll_ctrlPLL_VCO_REF1P45_SEL(r16)          _BFGET_(r16, 7, 6)
    #define   SET16avPll_ctrlPLL_VCO_REF1P45_SEL(r16,v)        _BFSET_(r16, 7, 6,v)

    #define   GET32avPll_ctrlPLL_VDDA23_PUMP_SEL(r32)          _BFGET_(r32, 9, 8)
    #define   SET32avPll_ctrlPLL_VDDA23_PUMP_SEL(r32,v)        _BFSET_(r32, 9, 8,v)
    #define   GET16avPll_ctrlPLL_VDDA23_PUMP_SEL(r16)          _BFGET_(r16, 9, 8)
    #define   SET16avPll_ctrlPLL_VDDA23_PUMP_SEL(r16,v)        _BFSET_(r16, 9, 8,v)

    #define   GET32avPll_ctrlPLL_VDDBUF_ADJ(r32)               _BFGET_(r32,12,10)
    #define   SET32avPll_ctrlPLL_VDDBUF_ADJ(r32,v)             _BFSET_(r32,12,10,v)
    #define   GET16avPll_ctrlPLL_VDDBUF_ADJ(r16)               _BFGET_(r16,12,10)
    #define   SET16avPll_ctrlPLL_VDDBUF_ADJ(r16,v)             _BFSET_(r16,12,10,v)

    #define   GET32avPll_ctrlPLL_VDDL(r32)                     _BFGET_(r32,16,13)
    #define   SET32avPll_ctrlPLL_VDDL(r32,v)                   _BFSET_(r32,16,13,v)

    #define   GET32avPll_ctrlPLL_FBDIV(r32)                    _BFGET_(r32,25,17)
    #define   SET32avPll_ctrlPLL_FBDIV(r32,v)                  _BFSET_(r32,25,17,v)
    #define   GET16avPll_ctrlPLL_FBDIV(r16)                    _BFGET_(r16, 9, 1)
    #define   SET16avPll_ctrlPLL_FBDIV(r16,v)                  _BFSET_(r16, 9, 1,v)

    #define   GET32avPll_ctrlPLL_ICP(r32)                      _BFGET_(r32,29,26)
    #define   SET32avPll_ctrlPLL_ICP(r32,v)                    _BFSET_(r32,29,26,v)
    #define   GET16avPll_ctrlPLL_ICP(r16)                      _BFGET_(r16,13,10)
    #define   SET16avPll_ctrlPLL_ICP(r16,v)                    _BFSET_(r16,13,10,v)

    #define   GET32avPll_ctrlPLL_PLL_LPFC2_LESS(r32)           _BFGET_(r32,30,30)
    #define   SET32avPll_ctrlPLL_PLL_LPFC2_LESS(r32,v)         _BFSET_(r32,30,30,v)
    #define   GET16avPll_ctrlPLL_PLL_LPFC2_LESS(r16)           _BFGET_(r16,14,14)
    #define   SET16avPll_ctrlPLL_PLL_LPFC2_LESS(r16,v)         _BFSET_(r16,14,14,v)

    #define     w32avPll_ctrlPLL                               {\
            UNSG32 uctrlPLL_RESET                              :  1;\
            UNSG32 uctrlPLL_PU                                 :  1;\
            UNSG32 uctrlPLL_PLL_VDDRA_SEL                      :  3;\
            UNSG32 uctrlPLL_REG_RING_EXTRA_I_EN                :  1;\
            UNSG32 uctrlPLL_VCO_REF1P45_SEL                    :  2;\
            UNSG32 uctrlPLL_VDDA23_PUMP_SEL                    :  2;\
            UNSG32 uctrlPLL_VDDBUF_ADJ                         :  3;\
            UNSG32 uctrlPLL_VDDL                               :  4;\
            UNSG32 uctrlPLL_FBDIV                              :  9;\
            UNSG32 uctrlPLL_ICP                                :  4;\
            UNSG32 uctrlPLL_PLL_LPFC2_LESS                     :  1;\
            UNSG32 RSVDx0_b31                                  :  1;\
          }
    union { UNSG32 u32avPll_ctrlPLL;
            struct w32avPll_ctrlPLL;
          };
    #define   GET32avPll_ctrlPLL_REFDIV(r32)                   _BFGET_(r32, 6, 0)
    #define   SET32avPll_ctrlPLL_REFDIV(r32,v)                 _BFSET_(r32, 6, 0,v)
    #define   GET16avPll_ctrlPLL_REFDIV(r16)                   _BFGET_(r16, 6, 0)
    #define   SET16avPll_ctrlPLL_REFDIV(r16,v)                 _BFSET_(r16, 6, 0,v)

    #define   GET32avPll_ctrlPLL_RESERVE_PLL_IN(r32)           _BFGET_(r32,12, 7)
    #define   SET32avPll_ctrlPLL_RESERVE_PLL_IN(r32,v)         _BFSET_(r32,12, 7,v)
    #define   GET16avPll_ctrlPLL_RESERVE_PLL_IN(r16)           _BFGET_(r16,12, 7)
    #define   SET16avPll_ctrlPLL_RESERVE_PLL_IN(r16,v)         _BFSET_(r16,12, 7,v)

    #define   GET32avPll_ctrlPLL_EXT_SPEED(r32)                _BFGET_(r32,16,13)
    #define   SET32avPll_ctrlPLL_EXT_SPEED(r32,v)              _BFSET_(r32,16,13,v)

    #define   GET32avPll_ctrlPLL_SPEED_FBRES(r32)              _BFGET_(r32,20,17)
    #define   SET32avPll_ctrlPLL_SPEED_FBRES(r32,v)            _BFSET_(r32,20,17,v)
    #define   GET16avPll_ctrlPLL_SPEED_FBRES(r16)              _BFGET_(r16, 4, 1)
    #define   SET16avPll_ctrlPLL_SPEED_FBRES(r16,v)            _BFSET_(r16, 4, 1,v)

    #define   GET32avPll_ctrlPLL_UPDATE_SEL(r32)               _BFGET_(r32,21,21)
    #define   SET32avPll_ctrlPLL_UPDATE_SEL(r32,v)             _BFSET_(r32,21,21,v)
    #define   GET16avPll_ctrlPLL_UPDATE_SEL(r16)               _BFGET_(r16, 5, 5)
    #define   SET16avPll_ctrlPLL_UPDATE_SEL(r16,v)             _BFSET_(r16, 5, 5,v)

    #define     w32avPll_ctrlPLL1                              {\
            UNSG32 uctrlPLL_REFDIV                             :  7;\
            UNSG32 uctrlPLL_RESERVE_PLL_IN                     :  6;\
            UNSG32 uctrlPLL_EXT_SPEED                          :  4;\
            UNSG32 uctrlPLL_SPEED_FBRES                        :  4;\
            UNSG32 uctrlPLL_UPDATE_SEL                         :  1;\
            UNSG32 RSVDx4_b22                                  : 10;\
          }
    union { UNSG32 u32avPll_ctrlPLL1;
            struct w32avPll_ctrlPLL1;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32avPll_ctrlCAL_CAL_FBDIV(r32)                _BFGET_(r32, 8, 0)
    #define   SET32avPll_ctrlCAL_CAL_FBDIV(r32,v)              _BFSET_(r32, 8, 0,v)
    #define   GET16avPll_ctrlCAL_CAL_FBDIV(r16)                _BFGET_(r16, 8, 0)
    #define   SET16avPll_ctrlCAL_CAL_FBDIV(r16,v)              _BFSET_(r16, 8, 0,v)

    #define   GET32avPll_ctrlCAL_EXT_SLLP_DAC_EN(r32)          _BFGET_(r32, 9, 9)
    #define   SET32avPll_ctrlCAL_EXT_SLLP_DAC_EN(r32,v)        _BFSET_(r32, 9, 9,v)
    #define   GET16avPll_ctrlCAL_EXT_SLLP_DAC_EN(r16)          _BFGET_(r16, 9, 9)
    #define   SET16avPll_ctrlCAL_EXT_SLLP_DAC_EN(r16,v)        _BFSET_(r16, 9, 9,v)

    #define   GET32avPll_ctrlCAL_EXT_SPEED_EN(r32)             _BFGET_(r32,10,10)
    #define   SET32avPll_ctrlCAL_EXT_SPEED_EN(r32,v)           _BFSET_(r32,10,10,v)
    #define   GET16avPll_ctrlCAL_EXT_SPEED_EN(r16)             _BFGET_(r16,10,10)
    #define   SET16avPll_ctrlCAL_EXT_SPEED_EN(r16,v)           _BFSET_(r16,10,10,v)

    #define   GET32avPll_ctrlCAL_EXT_SP_FBRES_EN(r32)          _BFGET_(r32,11,11)
    #define   SET32avPll_ctrlCAL_EXT_SP_FBRES_EN(r32,v)        _BFSET_(r32,11,11,v)
    #define   GET16avPll_ctrlCAL_EXT_SP_FBRES_EN(r16)          _BFGET_(r16,11,11)
    #define   SET16avPll_ctrlCAL_EXT_SP_FBRES_EN(r16,v)        _BFSET_(r16,11,11,v)

    #define   GET32avPll_ctrlCAL_PLL_CALCLK_DIV(r32)           _BFGET_(r32,16,12)
    #define   SET32avPll_ctrlCAL_PLL_CALCLK_DIV(r32,v)         _BFSET_(r32,16,12,v)

    #define   GET32avPll_ctrlCAL_PLL_CAL_START(r32)            _BFGET_(r32,17,17)
    #define   SET32avPll_ctrlCAL_PLL_CAL_START(r32,v)          _BFSET_(r32,17,17,v)
    #define   GET16avPll_ctrlCAL_PLL_CAL_START(r16)            _BFGET_(r16, 1, 1)
    #define   SET16avPll_ctrlCAL_PLL_CAL_START(r16,v)          _BFSET_(r16, 1, 1,v)

    #define   GET32avPll_ctrlCAL_REG_SETTLE_LIMIT(r32)         _BFGET_(r32,21,18)
    #define   SET32avPll_ctrlCAL_REG_SETTLE_LIMIT(r32,v)       _BFSET_(r32,21,18,v)
    #define   GET16avPll_ctrlCAL_REG_SETTLE_LIMIT(r16)         _BFGET_(r16, 5, 2)
    #define   SET16avPll_ctrlCAL_REG_SETTLE_LIMIT(r16,v)       _BFSET_(r16, 5, 2,v)

    #define   GET32avPll_ctrlCAL_SEL_VTHVCOCONT(r32)           _BFGET_(r32,22,22)
    #define   SET32avPll_ctrlCAL_SEL_VTHVCOCONT(r32,v)         _BFSET_(r32,22,22,v)
    #define   GET16avPll_ctrlCAL_SEL_VTHVCOCONT(r16)           _BFGET_(r16, 6, 6)
    #define   SET16avPll_ctrlCAL_SEL_VTHVCOCONT(r16,v)         _BFSET_(r16, 6, 6,v)

    #define   GET32avPll_ctrlCAL_SPEED_THRESH(r32)             _BFGET_(r32,28,23)
    #define   SET32avPll_ctrlCAL_SPEED_THRESH(r32,v)           _BFSET_(r32,28,23,v)
    #define   GET16avPll_ctrlCAL_SPEED_THRESH(r16)             _BFGET_(r16,12, 7)
    #define   SET16avPll_ctrlCAL_SPEED_THRESH(r16,v)           _BFSET_(r16,12, 7,v)

    #define   GET32avPll_ctrlCAL_VCON_SEL(r32)                 _BFGET_(r32,30,29)
    #define   SET32avPll_ctrlCAL_VCON_SEL(r32,v)               _BFSET_(r32,30,29,v)
    #define   GET16avPll_ctrlCAL_VCON_SEL(r16)                 _BFGET_(r16,14,13)
    #define   SET16avPll_ctrlCAL_VCON_SEL(r16,v)               _BFSET_(r16,14,13,v)

    #define     w32avPll_ctrlCAL                               {\
            UNSG32 uctrlCAL_CAL_FBDIV                          :  9;\
            UNSG32 uctrlCAL_EXT_SLLP_DAC_EN                    :  1;\
            UNSG32 uctrlCAL_EXT_SPEED_EN                       :  1;\
            UNSG32 uctrlCAL_EXT_SP_FBRES_EN                    :  1;\
            UNSG32 uctrlCAL_PLL_CALCLK_DIV                     :  5;\
            UNSG32 uctrlCAL_PLL_CAL_START                      :  1;\
            UNSG32 uctrlCAL_REG_SETTLE_LIMIT                   :  4;\
            UNSG32 uctrlCAL_SEL_VTHVCOCONT                     :  1;\
            UNSG32 uctrlCAL_SPEED_THRESH                       :  6;\
            UNSG32 uctrlCAL_VCON_SEL                           :  2;\
            UNSG32 RSVDx8_b31                                  :  1;\
          }
    union { UNSG32 u32avPll_ctrlCAL;
            struct w32avPll_ctrlCAL;
          };
    #define   GET32avPll_ctrlCAL_EXT_SLLP_DAC(r32)             _BFGET_(r32, 6, 0)
    #define   SET32avPll_ctrlCAL_EXT_SLLP_DAC(r32,v)           _BFSET_(r32, 6, 0,v)
    #define   GET16avPll_ctrlCAL_EXT_SLLP_DAC(r16)             _BFGET_(r16, 6, 0)
    #define   SET16avPll_ctrlCAL_EXT_SLLP_DAC(r16,v)           _BFSET_(r16, 6, 0,v)

    #define   GET32avPll_ctrlCAL_VTH_VCO_CAL(r32)              _BFGET_(r32, 8, 7)
    #define   SET32avPll_ctrlCAL_VTH_VCO_CAL(r32,v)            _BFSET_(r32, 8, 7,v)
    #define   GET16avPll_ctrlCAL_VTH_VCO_CAL(r16)              _BFGET_(r16, 8, 7)
    #define   SET16avPll_ctrlCAL_VTH_VCO_CAL(r16,v)            _BFSET_(r16, 8, 7,v)

    #define   GET32avPll_ctrlCAL_VTH_VCO_PTAT(r32)             _BFGET_(r32,10, 9)
    #define   SET32avPll_ctrlCAL_VTH_VCO_PTAT(r32,v)           _BFSET_(r32,10, 9,v)
    #define   GET16avPll_ctrlCAL_VTH_VCO_PTAT(r16)             _BFGET_(r16,10, 9)
    #define   SET16avPll_ctrlCAL_VTH_VCO_PTAT(r16,v)           _BFSET_(r16,10, 9,v)

    #define     w32avPll_ctrlCAL1                              {\
            UNSG32 uctrlCAL_EXT_SLLP_DAC                       :  7;\
            UNSG32 uctrlCAL_VTH_VCO_CAL                        :  2;\
            UNSG32 uctrlCAL_VTH_VCO_PTAT                       :  2;\
            UNSG32 RSVDxC_b11                                  : 21;\
          }
    union { UNSG32 u32avPll_ctrlCAL1;
            struct w32avPll_ctrlCAL1;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32avPll_ctrlSlowLoop_PW_SLLP(r32)             _BFGET_(r32, 2, 0)
    #define   SET32avPll_ctrlSlowLoop_PW_SLLP(r32,v)           _BFSET_(r32, 2, 0,v)
    #define   GET16avPll_ctrlSlowLoop_PW_SLLP(r16)             _BFGET_(r16, 2, 0)
    #define   SET16avPll_ctrlSlowLoop_PW_SLLP(r16,v)           _BFSET_(r16, 2, 0,v)

    #define   GET32avPll_ctrlSlowLoop_SLLP_CLK_DIV5EN(r32)     _BFGET_(r32, 3, 3)
    #define   SET32avPll_ctrlSlowLoop_SLLP_CLK_DIV5EN(r32,v)   _BFSET_(r32, 3, 3,v)
    #define   GET16avPll_ctrlSlowLoop_SLLP_CLK_DIV5EN(r16)     _BFGET_(r16, 3, 3)
    #define   SET16avPll_ctrlSlowLoop_SLLP_CLK_DIV5EN(r16,v)   _BFSET_(r16, 3, 3,v)

    #define   GET32avPll_ctrlSlowLoop_SLLP_EN_DIS(r32)         _BFGET_(r32, 4, 4)
    #define   SET32avPll_ctrlSlowLoop_SLLP_EN_DIS(r32,v)       _BFSET_(r32, 4, 4,v)
    #define   GET16avPll_ctrlSlowLoop_SLLP_EN_DIS(r16)         _BFGET_(r16, 4, 4)
    #define   SET16avPll_ctrlSlowLoop_SLLP_EN_DIS(r16,v)       _BFSET_(r16, 4, 4,v)

    #define   GET32avPll_ctrlSlowLoop_SLLP_PSF_LEVEL(r32)      _BFGET_(r32, 7, 5)
    #define   SET32avPll_ctrlSlowLoop_SLLP_PSF_LEVEL(r32,v)    _BFSET_(r32, 7, 5,v)
    #define   GET16avPll_ctrlSlowLoop_SLLP_PSF_LEVEL(r16)      _BFGET_(r16, 7, 5)
    #define   SET16avPll_ctrlSlowLoop_SLLP_PSF_LEVEL(r16,v)    _BFSET_(r16, 7, 5,v)

    #define     w32avPll_ctrlSlowLoop                          {\
            UNSG32 uctrlSlowLoop_PW_SLLP                       :  3;\
            UNSG32 uctrlSlowLoop_SLLP_CLK_DIV5EN               :  1;\
            UNSG32 uctrlSlowLoop_SLLP_EN_DIS                   :  1;\
            UNSG32 uctrlSlowLoop_SLLP_PSF_LEVEL                :  3;\
            UNSG32 RSVDx10_b8                                  : 24;\
          }
    union { UNSG32 u32avPll_ctrlSlowLoop;
            struct w32avPll_ctrlSlowLoop;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32avPll_ctrlINTP_CLK_DET_EN(r32)              _BFGET_(r32, 0, 0)
    #define   SET32avPll_ctrlINTP_CLK_DET_EN(r32,v)            _BFSET_(r32, 0, 0,v)
    #define   GET16avPll_ctrlINTP_CLK_DET_EN(r16)              _BFGET_(r16, 0, 0)
    #define   SET16avPll_ctrlINTP_CLK_DET_EN(r16,v)            _BFSET_(r16, 0, 0,v)

    #define   GET32avPll_ctrlINTP_DPHER_DLY_SEL(r32)           _BFGET_(r32, 2, 1)
    #define   SET32avPll_ctrlINTP_DPHER_DLY_SEL(r32,v)         _BFSET_(r32, 2, 1,v)
    #define   GET16avPll_ctrlINTP_DPHER_DLY_SEL(r16)           _BFGET_(r16, 2, 1)
    #define   SET16avPll_ctrlINTP_DPHER_DLY_SEL(r16,v)         _BFSET_(r16, 2, 1,v)

    #define   GET32avPll_ctrlINTP_INTPI(r32)                   _BFGET_(r32, 6, 3)
    #define   SET32avPll_ctrlINTP_INTPI(r32,v)                 _BFSET_(r32, 6, 3,v)
    #define   GET16avPll_ctrlINTP_INTPI(r16)                   _BFGET_(r16, 6, 3)
    #define   SET16avPll_ctrlINTP_INTPI(r16,v)                 _BFSET_(r16, 6, 3,v)

    #define   GET32avPll_ctrlINTP_INTPR(r32)                   _BFGET_(r32, 9, 7)
    #define   SET32avPll_ctrlINTP_INTPR(r32,v)                 _BFSET_(r32, 9, 7,v)
    #define   GET16avPll_ctrlINTP_INTPR(r16)                   _BFGET_(r16, 9, 7)
    #define   SET16avPll_ctrlINTP_INTPR(r16,v)                 _BFSET_(r16, 9, 7,v)

    #define     w32avPll_ctrlINTP                              {\
            UNSG32 uctrlINTP_CLK_DET_EN                        :  1;\
            UNSG32 uctrlINTP_DPHER_DLY_SEL                     :  2;\
            UNSG32 uctrlINTP_INTPI                             :  4;\
            UNSG32 uctrlINTP_INTPR                             :  3;\
            UNSG32 RSVDx14_b10                                 : 22;\
          }
    union { UNSG32 u32avPll_ctrlINTP;
            struct w32avPll_ctrlINTP;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32avPll_ctrlC8AddOn_MASTER_SLAVEB(r32)        _BFGET_(r32, 0, 0)
    #define   SET32avPll_ctrlC8AddOn_MASTER_SLAVEB(r32,v)      _BFSET_(r32, 0, 0,v)
    #define   GET16avPll_ctrlC8AddOn_MASTER_SLAVEB(r16)        _BFGET_(r16, 0, 0)
    #define   SET16avPll_ctrlC8AddOn_MASTER_SLAVEB(r16,v)      _BFSET_(r16, 0, 0,v)

    #define   GET32avPll_ctrlC8AddOn_MODE(r32)                 _BFGET_(r32, 2, 1)
    #define   SET32avPll_ctrlC8AddOn_MODE(r32,v)               _BFSET_(r32, 2, 1,v)
    #define   GET16avPll_ctrlC8AddOn_MODE(r16)                 _BFGET_(r16, 2, 1)
    #define   SET16avPll_ctrlC8AddOn_MODE(r16,v)               _BFSET_(r16, 2, 1,v)

    #define     w32avPll_ctrlC8AddOn                           {\
            UNSG32 uctrlC8AddOn_MASTER_SLAVEB                  :  1;\
            UNSG32 uctrlC8AddOn_MODE                           :  2;\
            UNSG32 RSVDx18_b3                                  : 29;\
          }
    union { UNSG32 u32avPll_ctrlC8AddOn;
            struct w32avPll_ctrlC8AddOn;
          };
    ///////////////////////////////////////////////////////////
              SIE_avpllCh                                      ie_C1;
    ///////////////////////////////////////////////////////////
              SIE_avpllCh                                      ie_C2;
    ///////////////////////////////////////////////////////////
              SIE_avpllCh                                      ie_C3;
    ///////////////////////////////////////////////////////////
              SIE_avpllCh                                      ie_C4;
    ///////////////////////////////////////////////////////////
              SIE_avpllCh                                      ie_C5;
    ///////////////////////////////////////////////////////////
              SIE_avpllCh                                      ie_C6;
    ///////////////////////////////////////////////////////////
              SIE_avpllCh                                      ie_C7;
    ///////////////////////////////////////////////////////////
              SIE_avpllCh8                                     ie_C8;
    ///////////////////////////////////////////////////////////
    #define   GET32avPll_ctrlTest_CLKOUT_TST_EN(r32)           _BFGET_(r32, 0, 0)
    #define   SET32avPll_ctrlTest_CLKOUT_TST_EN(r32,v)         _BFSET_(r32, 0, 0,v)
    #define   GET16avPll_ctrlTest_CLKOUT_TST_EN(r16)           _BFGET_(r16, 0, 0)
    #define   SET16avPll_ctrlTest_CLKOUT_TST_EN(r16,v)         _BFSET_(r16, 0, 0,v)

    #define   GET32avPll_ctrlTest_TEST_MON(r32)                _BFGET_(r32, 6, 1)
    #define   SET32avPll_ctrlTest_TEST_MON(r32,v)              _BFSET_(r32, 6, 1,v)
    #define   GET16avPll_ctrlTest_TEST_MON(r16)                _BFGET_(r16, 6, 1)
    #define   SET16avPll_ctrlTest_TEST_MON(r16,v)              _BFSET_(r16, 6, 1,v)

    #define     w32avPll_ctrlTest                              {\
            UNSG32 uctrlTest_CLKOUT_TST_EN                     :  1;\
            UNSG32 uctrlTest_TEST_MON                          :  6;\
            UNSG32 RSVDx9C_b7                                  : 25;\
          }
    union { UNSG32 u32avPll_ctrlTest;
            struct w32avPll_ctrlTest;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32avPll_status_PLL_LOCK(r32)                  _BFGET_(r32, 0, 0)
    #define   SET32avPll_status_PLL_LOCK(r32,v)                _BFSET_(r32, 0, 0,v)
    #define   GET16avPll_status_PLL_LOCK(r16)                  _BFGET_(r16, 0, 0)
    #define   SET16avPll_status_PLL_LOCK(r16,v)                _BFSET_(r16, 0, 0,v)

    #define   GET32avPll_status_RESERVE_PLL_OUT(r32)           _BFGET_(r32, 6, 1)
    #define   SET32avPll_status_RESERVE_PLL_OUT(r32,v)         _BFSET_(r32, 6, 1,v)
    #define   GET16avPll_status_RESERVE_PLL_OUT(r16)           _BFGET_(r16, 6, 1)
    #define   SET16avPll_status_RESERVE_PLL_OUT(r16,v)         _BFSET_(r16, 6, 1,v)

    #define   GET32avPll_status_FBDIV_RD(r32)                  _BFGET_(r32,15, 7)
    #define   SET32avPll_status_FBDIV_RD(r32,v)                _BFSET_(r32,15, 7,v)
    #define   GET16avPll_status_FBDIV_RD(r16)                  _BFGET_(r16,15, 7)
    #define   SET16avPll_status_FBDIV_RD(r16,v)                _BFSET_(r16,15, 7,v)

    #define   GET32avPll_status_PLL_CAL_DONE(r32)              _BFGET_(r32,16,16)
    #define   SET32avPll_status_PLL_CAL_DONE(r32,v)            _BFSET_(r32,16,16,v)
    #define   GET16avPll_status_PLL_CAL_DONE(r16)              _BFGET_(r16, 0, 0)
    #define   SET16avPll_status_PLL_CAL_DONE(r16,v)            _BFSET_(r16, 0, 0,v)

    #define   GET32avPll_status_SPEED_CNT(r32)                 _BFGET_(r32,22,17)
    #define   SET32avPll_status_SPEED_CNT(r32,v)               _BFSET_(r32,22,17,v)
    #define   GET16avPll_status_SPEED_CNT(r16)                 _BFGET_(r16, 6, 1)
    #define   SET16avPll_status_SPEED_CNT(r16,v)               _BFSET_(r16, 6, 1,v)

    #define   GET32avPll_status_SPEED_RD(r32)                  _BFGET_(r32,26,23)
    #define   SET32avPll_status_SPEED_RD(r32,v)                _BFSET_(r32,26,23,v)
    #define   GET16avPll_status_SPEED_RD(r16)                  _BFGET_(r16,10, 7)
    #define   SET16avPll_status_SPEED_RD(r16,v)                _BFSET_(r16,10, 7,v)

    #define     w32avPll_status                                {\
            UNSG32 ustatus_PLL_LOCK                            :  1;\
            UNSG32 ustatus_RESERVE_PLL_OUT                     :  6;\
            UNSG32 ustatus_FBDIV_RD                            :  9;\
            UNSG32 ustatus_PLL_CAL_DONE                        :  1;\
            UNSG32 ustatus_SPEED_CNT                           :  6;\
            UNSG32 ustatus_SPEED_RD                            :  4;\
            UNSG32 RSVDxA0_b27                                 :  5;\
          }
    union { UNSG32 u32avPll_status;
            struct w32avPll_status;
          };
    #define   GET32avPll_status_SLLP_DAC_RD(r32)               _BFGET_(r32, 6, 0)
    #define   SET32avPll_status_SLLP_DAC_RD(r32,v)             _BFSET_(r32, 6, 0,v)
    #define   GET16avPll_status_SLLP_DAC_RD(r16)               _BFGET_(r16, 6, 0)
    #define   SET16avPll_status_SLLP_DAC_RD(r16,v)             _BFSET_(r16, 6, 0,v)

    #define     w32avPll_status1                               {\
            UNSG32 ustatus_SLLP_DAC_RD                         :  7;\
            UNSG32 RSVDxA4_b7                                  : 25;\
          }
    union { UNSG32 u32avPll_status1;
            struct w32avPll_status1;
          };
    ///////////////////////////////////////////////////////////
    } SIE_avPll;

    typedef union  T32avPll_ctrlPLL
          { UNSG32 u32;
            struct w32avPll_ctrlPLL;
                 } T32avPll_ctrlPLL;
    typedef union  T32avPll_ctrlPLL1
          { UNSG32 u32;
            struct w32avPll_ctrlPLL1;
                 } T32avPll_ctrlPLL1;
    typedef union  T32avPll_ctrlCAL
          { UNSG32 u32;
            struct w32avPll_ctrlCAL;
                 } T32avPll_ctrlCAL;
    typedef union  T32avPll_ctrlCAL1
          { UNSG32 u32;
            struct w32avPll_ctrlCAL1;
                 } T32avPll_ctrlCAL1;
    typedef union  T32avPll_ctrlSlowLoop
          { UNSG32 u32;
            struct w32avPll_ctrlSlowLoop;
                 } T32avPll_ctrlSlowLoop;
    typedef union  T32avPll_ctrlINTP
          { UNSG32 u32;
            struct w32avPll_ctrlINTP;
                 } T32avPll_ctrlINTP;
    typedef union  T32avPll_ctrlC8AddOn
          { UNSG32 u32;
            struct w32avPll_ctrlC8AddOn;
                 } T32avPll_ctrlC8AddOn;
    typedef union  T32avPll_ctrlTest
          { UNSG32 u32;
            struct w32avPll_ctrlTest;
                 } T32avPll_ctrlTest;
    typedef union  T32avPll_status
          { UNSG32 u32;
            struct w32avPll_status;
                 } T32avPll_status;
    typedef union  T32avPll_status1
          { UNSG32 u32;
            struct w32avPll_status1;
                 } T32avPll_status1;
    ///////////////////////////////////////////////////////////

    typedef union  TavPll_ctrlPLL
          { UNSG32 u32[2];
            struct {
            struct w32avPll_ctrlPLL;
            struct w32avPll_ctrlPLL1;
                   };
                 } TavPll_ctrlPLL;
    typedef union  TavPll_ctrlCAL
          { UNSG32 u32[2];
            struct {
            struct w32avPll_ctrlCAL;
            struct w32avPll_ctrlCAL1;
                   };
                 } TavPll_ctrlCAL;
    typedef union  TavPll_ctrlSlowLoop
          { UNSG32 u32[1];
            struct {
            struct w32avPll_ctrlSlowLoop;
                   };
                 } TavPll_ctrlSlowLoop;
    typedef union  TavPll_ctrlINTP
          { UNSG32 u32[1];
            struct {
            struct w32avPll_ctrlINTP;
                   };
                 } TavPll_ctrlINTP;
    typedef union  TavPll_ctrlC8AddOn
          { UNSG32 u32[1];
            struct {
            struct w32avPll_ctrlC8AddOn;
                   };
                 } TavPll_ctrlC8AddOn;
    typedef union  TavPll_ctrlTest
          { UNSG32 u32[1];
            struct {
            struct w32avPll_ctrlTest;
                   };
                 } TavPll_ctrlTest;
    typedef union  TavPll_status
          { UNSG32 u32[2];
            struct {
            struct w32avPll_status;
            struct w32avPll_status1;
                   };
                 } TavPll_status;

    ///////////////////////////////////////////////////////////
     SIGN32 avPll_drvrd(SIE_avPll *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 avPll_drvwr(SIE_avPll *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void avPll_reset(SIE_avPll *p);
     SIGN32 avPll_cmp  (SIE_avPll *p, SIE_avPll *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define avPll_check(p,pie,pfx,hLOG) avPll_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define avPll_print(p,    pfx,hLOG) avPll_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: avPll
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE pwrOff                                   (4,4)
///     ###
///     * Register for the Power domain which is OFF by default
///     ###
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (RW-)
///               ###
///               * Power Domain Control Register
///               ###
///               %unsigned 1  iso_eN                    0x0
///                                    : enable                    0x0
///                                    : disable                   0x1
///                                                 ###
///                                                 * Isolation control bit. Active low
///                                                 * 0 : Isolation is enabled
///                                                 * 1 : Isolation is disabled (default)
///                                                 ###
///               %unsigned 2  pwrSwitchCtrl             0x0
///                                    : PWROFF                    0x0
///                                    : PWRON                     0x3
///                                                 ###
///                                                 * Power Switch control
///                                                 * Bit 1 : SLP1B
///                                                 * Bit 0 : SLP2B
///                                                 * SLP1B SLP2B
///                                                 * 0               X               Switch is turned off
///                                                 * 1               0               PMOS switch in current mirror configuration. Constant current charging to limit in-rush current
///                                                 * 1               1               PMOS switch is fully turned on to reduce Ron
///                                                 ###
///               %unsigned 1  pwrDomainRstN             0x0
///                                    : enable                    0x0
///                                    : disable                   0x1
///                                                 ###
///                                                 * Power Domain Reset. Active low.
///                                                 * 0 : Reset the power domain
///                                                 * 1:   De-assert the reset for the power domain
///                                                 ###
///               %%        28         # Stuffing bits...
///     @ 0x00004 status               (R-)
///               %unsigned 2  pwrStatus                 
///                                    ###
///                                    * Power domain Status output from the power domain module
///                                    * Bit 1 : SLP1B
///                                    * Bit 0 : SLP2B
///                                    * SLP1B SLP2B
///                                    * 0               X               Switch is turned off
///                                    * 1               0               PMOS switch in current mirror configuration. Constant current charging to limit in-rush current
///                                    * 1               1               PMOS switch is fully turned on to reduce Ron
///                                    ###
///               %%        30         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:       8B, bits:       6b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_pwrOff
#define h_pwrOff (){}

    #define     RA_pwrOff_ctrl                                 0x0000

    #define     BA_pwrOff_ctrl_iso_eN                          0x0000
    #define     B16pwrOff_ctrl_iso_eN                          0x0000
    #define   LSb32pwrOff_ctrl_iso_eN                             0
    #define   LSb16pwrOff_ctrl_iso_eN                             0
    #define       bpwrOff_ctrl_iso_eN                          1
    #define   MSK32pwrOff_ctrl_iso_eN                             0x00000001
    #define        pwrOff_ctrl_iso_eN_enable                                0x0
    #define        pwrOff_ctrl_iso_eN_disable                               0x1

    #define     BA_pwrOff_ctrl_pwrSwitchCtrl                   0x0000
    #define     B16pwrOff_ctrl_pwrSwitchCtrl                   0x0000
    #define   LSb32pwrOff_ctrl_pwrSwitchCtrl                      1
    #define   LSb16pwrOff_ctrl_pwrSwitchCtrl                      1
    #define       bpwrOff_ctrl_pwrSwitchCtrl                   2
    #define   MSK32pwrOff_ctrl_pwrSwitchCtrl                      0x00000006
    #define        pwrOff_ctrl_pwrSwitchCtrl_PWROFF                         0x0
    #define        pwrOff_ctrl_pwrSwitchCtrl_PWRON                          0x3

    #define     BA_pwrOff_ctrl_pwrDomainRstN                   0x0000
    #define     B16pwrOff_ctrl_pwrDomainRstN                   0x0000
    #define   LSb32pwrOff_ctrl_pwrDomainRstN                      3
    #define   LSb16pwrOff_ctrl_pwrDomainRstN                      3
    #define       bpwrOff_ctrl_pwrDomainRstN                   1
    #define   MSK32pwrOff_ctrl_pwrDomainRstN                      0x00000008
    #define        pwrOff_ctrl_pwrDomainRstN_enable                         0x0
    #define        pwrOff_ctrl_pwrDomainRstN_disable                        0x1
    ///////////////////////////////////////////////////////////
    #define     RA_pwrOff_status                               0x0004

    #define     BA_pwrOff_status_pwrStatus                     0x0004
    #define     B16pwrOff_status_pwrStatus                     0x0004
    #define   LSb32pwrOff_status_pwrStatus                        0
    #define   LSb16pwrOff_status_pwrStatus                        0
    #define       bpwrOff_status_pwrStatus                     2
    #define   MSK32pwrOff_status_pwrStatus                        0x00000003
    ///////////////////////////////////////////////////////////

    typedef struct SIE_pwrOff {
    ///////////////////////////////////////////////////////////
    #define   GET32pwrOff_ctrl_iso_eN(r32)                     _BFGET_(r32, 0, 0)
    #define   SET32pwrOff_ctrl_iso_eN(r32,v)                   _BFSET_(r32, 0, 0,v)
    #define   GET16pwrOff_ctrl_iso_eN(r16)                     _BFGET_(r16, 0, 0)
    #define   SET16pwrOff_ctrl_iso_eN(r16,v)                   _BFSET_(r16, 0, 0,v)

    #define   GET32pwrOff_ctrl_pwrSwitchCtrl(r32)              _BFGET_(r32, 2, 1)
    #define   SET32pwrOff_ctrl_pwrSwitchCtrl(r32,v)            _BFSET_(r32, 2, 1,v)
    #define   GET16pwrOff_ctrl_pwrSwitchCtrl(r16)              _BFGET_(r16, 2, 1)
    #define   SET16pwrOff_ctrl_pwrSwitchCtrl(r16,v)            _BFSET_(r16, 2, 1,v)

    #define   GET32pwrOff_ctrl_pwrDomainRstN(r32)              _BFGET_(r32, 3, 3)
    #define   SET32pwrOff_ctrl_pwrDomainRstN(r32,v)            _BFSET_(r32, 3, 3,v)
    #define   GET16pwrOff_ctrl_pwrDomainRstN(r16)              _BFGET_(r16, 3, 3)
    #define   SET16pwrOff_ctrl_pwrDomainRstN(r16,v)            _BFSET_(r16, 3, 3,v)

    #define     w32pwrOff_ctrl                                 {\
            UNSG32 uctrl_iso_eN                                :  1;\
            UNSG32 uctrl_pwrSwitchCtrl                         :  2;\
            UNSG32 uctrl_pwrDomainRstN                         :  1;\
            UNSG32 RSVDx0_b4                                   : 28;\
          }
    union { UNSG32 u32pwrOff_ctrl;
            struct w32pwrOff_ctrl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32pwrOff_status_pwrStatus(r32)                _BFGET_(r32, 1, 0)
    #define   SET32pwrOff_status_pwrStatus(r32,v)              _BFSET_(r32, 1, 0,v)
    #define   GET16pwrOff_status_pwrStatus(r16)                _BFGET_(r16, 1, 0)
    #define   SET16pwrOff_status_pwrStatus(r16,v)              _BFSET_(r16, 1, 0,v)

    #define     w32pwrOff_status                               {\
            UNSG32 ustatus_pwrStatus                           :  2;\
            UNSG32 RSVDx4_b2                                   : 30;\
          }
    union { UNSG32 u32pwrOff_status;
            struct w32pwrOff_status;
          };
    ///////////////////////////////////////////////////////////
    } SIE_pwrOff;

    typedef union  T32pwrOff_ctrl
          { UNSG32 u32;
            struct w32pwrOff_ctrl;
                 } T32pwrOff_ctrl;
    typedef union  T32pwrOff_status
          { UNSG32 u32;
            struct w32pwrOff_status;
                 } T32pwrOff_status;
    ///////////////////////////////////////////////////////////

    typedef union  TpwrOff_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32pwrOff_ctrl;
                   };
                 } TpwrOff_ctrl;
    typedef union  TpwrOff_status
          { UNSG32 u32[1];
            struct {
            struct w32pwrOff_status;
                   };
                 } TpwrOff_status;

    ///////////////////////////////////////////////////////////
     SIGN32 pwrOff_drvrd(SIE_pwrOff *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 pwrOff_drvwr(SIE_pwrOff *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void pwrOff_reset(SIE_pwrOff *p);
     SIGN32 pwrOff_cmp  (SIE_pwrOff *p, SIE_pwrOff *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define pwrOff_check(p,pie,pfx,hLOG) pwrOff_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define pwrOff_print(p,    pfx,hLOG) pwrOff_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: pwrOff
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE pwrOn                                    (4,4)
///     ###
///     * Register for the Power domain which is ON by default
///     ###
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (RW-)
///               ###
///               * Power Domain Control Register
///               ###
///               %unsigned 1  iso_eN                    0x1
///                                    : enable                    0x0
///                                    : disable                   0x1
///                                                 ###
///                                                 * Isolation control bit. Active low
///                                                 * 0 : Isolation is enabled
///                                                 * 1 : Isolation is disabled (default)
///                                                 ###
///               %unsigned 2  pwrSwitchCtrl             0x3
///                                    ###
///                                    * Power Switch control
///                                    * Bit 1 : SLP1B
///                                    * Bit 0 : SLP2B
///                                    * SLP1B SLP2B
///                                    * 0               X               Switch is turned off
///                                    * 1               0               PMOS switch in current mirror configuration. Constant current charging to limit in-rush current
///                                    * 1               1               PMOS switch is fully turned on to reduce Ron
///                                    ###
///               %unsigned 1  pwrDomainRstN             0x1
///                                    ###
///                                    * Power Domain Reset. Active low.
///                                    * 0 : Reset the power domain
///                                    * 1:   De-assert the reset for the power domain
///                                    ###
///               %%        28         # Stuffing bits...
///     @ 0x00004 status               (R-)
///               %unsigned 2  pwrStatus                 
///                                    ###
///                                    * Power domain Status output from the power domain module
///                                    * Bit 1 : SLP1B
///                                    * Bit 0 : SLP2B
///                                    * SLP1B SLP2B
///                                    * 0               X               Switch is turned off
///                                    * 1               0               PMOS switch in current mirror configuration. Constant current charging to limit in-rush current
///                                    * 1               1               PMOS switch is fully turned on to reduce Ron
///                                    ###
///               %%        30         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:       8B, bits:       6b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_pwrOn
#define h_pwrOn (){}

    #define     RA_pwrOn_ctrl                                  0x0000

    #define     BA_pwrOn_ctrl_iso_eN                           0x0000
    #define     B16pwrOn_ctrl_iso_eN                           0x0000
    #define   LSb32pwrOn_ctrl_iso_eN                              0
    #define   LSb16pwrOn_ctrl_iso_eN                              0
    #define       bpwrOn_ctrl_iso_eN                           1
    #define   MSK32pwrOn_ctrl_iso_eN                              0x00000001
    #define        pwrOn_ctrl_iso_eN_enable                                 0x0
    #define        pwrOn_ctrl_iso_eN_disable                                0x1

    #define     BA_pwrOn_ctrl_pwrSwitchCtrl                    0x0000
    #define     B16pwrOn_ctrl_pwrSwitchCtrl                    0x0000
    #define   LSb32pwrOn_ctrl_pwrSwitchCtrl                       1
    #define   LSb16pwrOn_ctrl_pwrSwitchCtrl                       1
    #define       bpwrOn_ctrl_pwrSwitchCtrl                    2
    #define   MSK32pwrOn_ctrl_pwrSwitchCtrl                       0x00000006

    #define     BA_pwrOn_ctrl_pwrDomainRstN                    0x0000
    #define     B16pwrOn_ctrl_pwrDomainRstN                    0x0000
    #define   LSb32pwrOn_ctrl_pwrDomainRstN                       3
    #define   LSb16pwrOn_ctrl_pwrDomainRstN                       3
    #define       bpwrOn_ctrl_pwrDomainRstN                    1
    #define   MSK32pwrOn_ctrl_pwrDomainRstN                       0x00000008
    ///////////////////////////////////////////////////////////
    #define     RA_pwrOn_status                                0x0004

    #define     BA_pwrOn_status_pwrStatus                      0x0004
    #define     B16pwrOn_status_pwrStatus                      0x0004
    #define   LSb32pwrOn_status_pwrStatus                         0
    #define   LSb16pwrOn_status_pwrStatus                         0
    #define       bpwrOn_status_pwrStatus                      2
    #define   MSK32pwrOn_status_pwrStatus                         0x00000003
    ///////////////////////////////////////////////////////////

    typedef struct SIE_pwrOn {
    ///////////////////////////////////////////////////////////
    #define   GET32pwrOn_ctrl_iso_eN(r32)                      _BFGET_(r32, 0, 0)
    #define   SET32pwrOn_ctrl_iso_eN(r32,v)                    _BFSET_(r32, 0, 0,v)
    #define   GET16pwrOn_ctrl_iso_eN(r16)                      _BFGET_(r16, 0, 0)
    #define   SET16pwrOn_ctrl_iso_eN(r16,v)                    _BFSET_(r16, 0, 0,v)

    #define   GET32pwrOn_ctrl_pwrSwitchCtrl(r32)               _BFGET_(r32, 2, 1)
    #define   SET32pwrOn_ctrl_pwrSwitchCtrl(r32,v)             _BFSET_(r32, 2, 1,v)
    #define   GET16pwrOn_ctrl_pwrSwitchCtrl(r16)               _BFGET_(r16, 2, 1)
    #define   SET16pwrOn_ctrl_pwrSwitchCtrl(r16,v)             _BFSET_(r16, 2, 1,v)

    #define   GET32pwrOn_ctrl_pwrDomainRstN(r32)               _BFGET_(r32, 3, 3)
    #define   SET32pwrOn_ctrl_pwrDomainRstN(r32,v)             _BFSET_(r32, 3, 3,v)
    #define   GET16pwrOn_ctrl_pwrDomainRstN(r16)               _BFGET_(r16, 3, 3)
    #define   SET16pwrOn_ctrl_pwrDomainRstN(r16,v)             _BFSET_(r16, 3, 3,v)

    #define     w32pwrOn_ctrl                                  {\
            UNSG32 uctrl_iso_eN                                :  1;\
            UNSG32 uctrl_pwrSwitchCtrl                         :  2;\
            UNSG32 uctrl_pwrDomainRstN                         :  1;\
            UNSG32 RSVDx0_b4                                   : 28;\
          }
    union { UNSG32 u32pwrOn_ctrl;
            struct w32pwrOn_ctrl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32pwrOn_status_pwrStatus(r32)                 _BFGET_(r32, 1, 0)
    #define   SET32pwrOn_status_pwrStatus(r32,v)               _BFSET_(r32, 1, 0,v)
    #define   GET16pwrOn_status_pwrStatus(r16)                 _BFGET_(r16, 1, 0)
    #define   SET16pwrOn_status_pwrStatus(r16,v)               _BFSET_(r16, 1, 0,v)

    #define     w32pwrOn_status                                {\
            UNSG32 ustatus_pwrStatus                           :  2;\
            UNSG32 RSVDx4_b2                                   : 30;\
          }
    union { UNSG32 u32pwrOn_status;
            struct w32pwrOn_status;
          };
    ///////////////////////////////////////////////////////////
    } SIE_pwrOn;

    typedef union  T32pwrOn_ctrl
          { UNSG32 u32;
            struct w32pwrOn_ctrl;
                 } T32pwrOn_ctrl;
    typedef union  T32pwrOn_status
          { UNSG32 u32;
            struct w32pwrOn_status;
                 } T32pwrOn_status;
    ///////////////////////////////////////////////////////////

    typedef union  TpwrOn_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32pwrOn_ctrl;
                   };
                 } TpwrOn_ctrl;
    typedef union  TpwrOn_status
          { UNSG32 u32[1];
            struct {
            struct w32pwrOn_status;
                   };
                 } TpwrOn_status;

    ///////////////////////////////////////////////////////////
     SIGN32 pwrOn_drvrd(SIE_pwrOn *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 pwrOn_drvwr(SIE_pwrOn *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void pwrOn_reset(SIE_pwrOn *p);
     SIGN32 pwrOn_cmp  (SIE_pwrOn *p, SIE_pwrOn *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define pwrOn_check(p,pie,pfx,hLOG) pwrOn_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define pwrOn_print(p,    pfx,hLOG) pwrOn_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: pwrOn
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE clkD1                                    (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (P-)
///               ###
///               * Control register
///               ###
///               %unsigned 1  ClkEn                     0x1
///                                    : enable                    0x1
///                                    : disable                   0x0
///                                                 ###
///                                                 * Clock enable register
///                                                 * 0: Disable
///                                                 * 1: Enable   (default)
///                                                 ###
///               %unsigned 3  ClkPllSel                 0x4
///                                    : AVPllB4                   0x0
///                                    : AVPllB5                   0x1
///                                    : AVPllB6                   0x2
///                                    : AVPllB7                   0x3
///                                    : SYSPLL                    0x4
///                                                 ###
///                                                 * Clock source selection
///                                                 * 0: AVPLL B[4]
///                                                 * 1: AVPLL B[5]
///                                                 * 2: AVPLL B[6]
///                                                 * 3: AVPLL B[7]
///                                                 * 4: SYSPLL   (default)
///                                                 * 5-7: Reserved
///                                                 ###
///               %unsigned 1  ClkPllSwitch              0x0
///                                    : SYSPLL                    0x0
///                                    : AVPLL                     0x1
///                                                 ###
///                                                 * Switch to select between SYSPLL or AVPLL as a clock source
///                                                 * 0: SYSPLL (default)
///                                                 * 1: AVPLL
///                                                 ###
///               %unsigned 1  ClkSwitch                 0x0
///                                    : SrcClk                    0x0
///                                    : DivClk                    0x1
///                                                 ###
///                                                 * Clock divider switch select
///                                                 * 0:   No divider (default) for Divide by 1
///                                                 * 1:   Use Divider
///                                                 ###
///               %unsigned 1  ClkD3Switch               0x0
///                                    : NonDiv3Clk                0x0
///                                    : Div3Clk                   0x1
///                                                 ###
///                                                 * Divide by 3 clock switch
///                                                 * 0: No Divide by 3 (default)
///                                                 * 1: Use Divide by 3
///                                                 ###
///               %unsigned 3  ClkSel                    0x1
///                                    : d2                        0x1
///                                    : d4                        0x2
///                                    : d6                        0x3
///                                    : d8                        0x4
///                                    : d12                       0x5
///                                                 ###
///                                                 * Clock divider Selection
///                                                 * 0: Reserved
///                                                 * 1: Divide by 2 ( default)
///                                                 * 2: Divide by 4
///                                                 * 3: Divide by 6
///                                                 * 4: Divide by 8
///                                                 * 5: Divide by 12
///                                                 * 6-7: Reserved
///                                                 * Note: Not used for Divide by 1
///                                                 ###
///               %%        22         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:       4B, bits:      10b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_clkD1
#define h_clkD1 (){}

    #define     RA_clkD1_ctrl                                  0x0000

    #define     BA_clkD1_ctrl_ClkEn                            0x0000
    #define     B16clkD1_ctrl_ClkEn                            0x0000
    #define   LSb32clkD1_ctrl_ClkEn                               0
    #define   LSb16clkD1_ctrl_ClkEn                               0
    #define       bclkD1_ctrl_ClkEn                            1
    #define   MSK32clkD1_ctrl_ClkEn                               0x00000001
    #define        clkD1_ctrl_ClkEn_enable                                  0x1
    #define        clkD1_ctrl_ClkEn_disable                                 0x0

    #define     BA_clkD1_ctrl_ClkPllSel                        0x0000
    #define     B16clkD1_ctrl_ClkPllSel                        0x0000
    #define   LSb32clkD1_ctrl_ClkPllSel                           1
    #define   LSb16clkD1_ctrl_ClkPllSel                           1
    #define       bclkD1_ctrl_ClkPllSel                        3
    #define   MSK32clkD1_ctrl_ClkPllSel                           0x0000000E
    #define        clkD1_ctrl_ClkPllSel_AVPllB4                             0x0
    #define        clkD1_ctrl_ClkPllSel_AVPllB5                             0x1
    #define        clkD1_ctrl_ClkPllSel_AVPllB6                             0x2
    #define        clkD1_ctrl_ClkPllSel_AVPllB7                             0x3
    #define        clkD1_ctrl_ClkPllSel_SYSPLL                              0x4

    #define     BA_clkD1_ctrl_ClkPllSwitch                     0x0000
    #define     B16clkD1_ctrl_ClkPllSwitch                     0x0000
    #define   LSb32clkD1_ctrl_ClkPllSwitch                        4
    #define   LSb16clkD1_ctrl_ClkPllSwitch                        4
    #define       bclkD1_ctrl_ClkPllSwitch                     1
    #define   MSK32clkD1_ctrl_ClkPllSwitch                        0x00000010
    #define        clkD1_ctrl_ClkPllSwitch_SYSPLL                           0x0
    #define        clkD1_ctrl_ClkPllSwitch_AVPLL                            0x1

    #define     BA_clkD1_ctrl_ClkSwitch                        0x0000
    #define     B16clkD1_ctrl_ClkSwitch                        0x0000
    #define   LSb32clkD1_ctrl_ClkSwitch                           5
    #define   LSb16clkD1_ctrl_ClkSwitch                           5
    #define       bclkD1_ctrl_ClkSwitch                        1
    #define   MSK32clkD1_ctrl_ClkSwitch                           0x00000020
    #define        clkD1_ctrl_ClkSwitch_SrcClk                              0x0
    #define        clkD1_ctrl_ClkSwitch_DivClk                              0x1

    #define     BA_clkD1_ctrl_ClkD3Switch                      0x0000
    #define     B16clkD1_ctrl_ClkD3Switch                      0x0000
    #define   LSb32clkD1_ctrl_ClkD3Switch                         6
    #define   LSb16clkD1_ctrl_ClkD3Switch                         6
    #define       bclkD1_ctrl_ClkD3Switch                      1
    #define   MSK32clkD1_ctrl_ClkD3Switch                         0x00000040
    #define        clkD1_ctrl_ClkD3Switch_NonDiv3Clk                        0x0
    #define        clkD1_ctrl_ClkD3Switch_Div3Clk                           0x1

    #define     BA_clkD1_ctrl_ClkSel                           0x0000
    #define     B16clkD1_ctrl_ClkSel                           0x0000
    #define   LSb32clkD1_ctrl_ClkSel                              7
    #define   LSb16clkD1_ctrl_ClkSel                              7
    #define       bclkD1_ctrl_ClkSel                           3
    #define   MSK32clkD1_ctrl_ClkSel                              0x00000380
    #define        clkD1_ctrl_ClkSel_d2                                     0x1
    #define        clkD1_ctrl_ClkSel_d4                                     0x2
    #define        clkD1_ctrl_ClkSel_d6                                     0x3
    #define        clkD1_ctrl_ClkSel_d8                                     0x4
    #define        clkD1_ctrl_ClkSel_d12                                    0x5
    ///////////////////////////////////////////////////////////

    typedef struct SIE_clkD1 {
    ///////////////////////////////////////////////////////////
    #define   GET32clkD1_ctrl_ClkEn(r32)                       _BFGET_(r32, 0, 0)
    #define   SET32clkD1_ctrl_ClkEn(r32,v)                     _BFSET_(r32, 0, 0,v)
    #define   GET16clkD1_ctrl_ClkEn(r16)                       _BFGET_(r16, 0, 0)
    #define   SET16clkD1_ctrl_ClkEn(r16,v)                     _BFSET_(r16, 0, 0,v)

    #define   GET32clkD1_ctrl_ClkPllSel(r32)                   _BFGET_(r32, 3, 1)
    #define   SET32clkD1_ctrl_ClkPllSel(r32,v)                 _BFSET_(r32, 3, 1,v)
    #define   GET16clkD1_ctrl_ClkPllSel(r16)                   _BFGET_(r16, 3, 1)
    #define   SET16clkD1_ctrl_ClkPllSel(r16,v)                 _BFSET_(r16, 3, 1,v)

    #define   GET32clkD1_ctrl_ClkPllSwitch(r32)                _BFGET_(r32, 4, 4)
    #define   SET32clkD1_ctrl_ClkPllSwitch(r32,v)              _BFSET_(r32, 4, 4,v)
    #define   GET16clkD1_ctrl_ClkPllSwitch(r16)                _BFGET_(r16, 4, 4)
    #define   SET16clkD1_ctrl_ClkPllSwitch(r16,v)              _BFSET_(r16, 4, 4,v)

    #define   GET32clkD1_ctrl_ClkSwitch(r32)                   _BFGET_(r32, 5, 5)
    #define   SET32clkD1_ctrl_ClkSwitch(r32,v)                 _BFSET_(r32, 5, 5,v)
    #define   GET16clkD1_ctrl_ClkSwitch(r16)                   _BFGET_(r16, 5, 5)
    #define   SET16clkD1_ctrl_ClkSwitch(r16,v)                 _BFSET_(r16, 5, 5,v)

    #define   GET32clkD1_ctrl_ClkD3Switch(r32)                 _BFGET_(r32, 6, 6)
    #define   SET32clkD1_ctrl_ClkD3Switch(r32,v)               _BFSET_(r32, 6, 6,v)
    #define   GET16clkD1_ctrl_ClkD3Switch(r16)                 _BFGET_(r16, 6, 6)
    #define   SET16clkD1_ctrl_ClkD3Switch(r16,v)               _BFSET_(r16, 6, 6,v)

    #define   GET32clkD1_ctrl_ClkSel(r32)                      _BFGET_(r32, 9, 7)
    #define   SET32clkD1_ctrl_ClkSel(r32,v)                    _BFSET_(r32, 9, 7,v)
    #define   GET16clkD1_ctrl_ClkSel(r16)                      _BFGET_(r16, 9, 7)
    #define   SET16clkD1_ctrl_ClkSel(r16,v)                    _BFSET_(r16, 9, 7,v)

    #define     w32clkD1_ctrl                                  {\
            UNSG32 uctrl_ClkEn                                 :  1;\
            UNSG32 uctrl_ClkPllSel                             :  3;\
            UNSG32 uctrl_ClkPllSwitch                          :  1;\
            UNSG32 uctrl_ClkSwitch                             :  1;\
            UNSG32 uctrl_ClkD3Switch                           :  1;\
            UNSG32 uctrl_ClkSel                                :  3;\
            UNSG32 RSVDx0_b10                                  : 22;\
          }
    union { UNSG32 u32clkD1_ctrl;
            struct w32clkD1_ctrl;
          };
    ///////////////////////////////////////////////////////////
    } SIE_clkD1;

    typedef union  T32clkD1_ctrl
          { UNSG32 u32;
            struct w32clkD1_ctrl;
                 } T32clkD1_ctrl;
    ///////////////////////////////////////////////////////////

    typedef union  TclkD1_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32clkD1_ctrl;
                   };
                 } TclkD1_ctrl;

    ///////////////////////////////////////////////////////////
     SIGN32 clkD1_drvrd(SIE_clkD1 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 clkD1_drvwr(SIE_clkD1 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void clkD1_reset(SIE_clkD1 *p);
     SIGN32 clkD1_cmp  (SIE_clkD1 *p, SIE_clkD1 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define clkD1_check(p,pie,pfx,hLOG) clkD1_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define clkD1_print(p,    pfx,hLOG) clkD1_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: clkD1
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE clkD2                                    (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (P-)
///               ###
///               * Control register
///               ###
///               %unsigned 1  ClkEn                     0x1
///                                    : enable                    0x1
///                                    : disable                   0x0
///                                                 ###
///                                                 * Clock enable register
///                                                 * 0: Disable
///                                                 * 1: Enable   (default)
///                                                 ###
///               %unsigned 3  ClkPllSel                 0x4
///                                    : AVPllB4                   0x0
///                                    : AVPllB5                   0x1
///                                    : AVPllB6                   0x2
///                                    : AVPllB7                   0x3
///                                    : SYSPLL                    0x4
///                                                 ###
///                                                 * Clock source selection
///                                                 * 0: AVPLL B[4]
///                                                 * 1: AVPLL B[5]
///                                                 * 2: AVPLL B[6]
///                                                 * 3: AVPLL B[7]
///                                                 * 4: SYSPLL   (default)
///                                                 * 5-7: Reserved
///                                                 ###
///               %unsigned 1  ClkPllSwitch              0x0
///                                    : SYSPLL                    0x0
///                                    : AVPLL                     0x1
///                                                 ###
///                                                 * Switch to select between SYSPLL or AVPLL as a clock source
///                                                 * 0: SYSPLL (default)
///                                                 * 1: AVPLL
///                                                 ###
///               %unsigned 1  ClkSwitch                 0x1
///                                    : SrcClk                    0x0
///                                    : DivClk                    0x1
///                                                 ###
///                                                 * Clock divider switch select
///                                                 * 0:   No divider
///                                                 * 1:   Use Divider (default)
///                                                 ###
///               %unsigned 1  ClkD3Switch               0x0
///                                    : NonDiv3Clk                0x0
///                                    : Div3Clk                   0x1
///                                                 ###
///                                                 * Divide by 3 clock switch
///                                                 * 0: No Divide by 3 (default)
///                                                 * 1: Use Divide by 3
///                                                 ###
///               %unsigned 3  ClkSel                    0x1
///                                    : d2                        0x1
///                                    : d4                        0x2
///                                    : d6                        0x3
///                                    : d8                        0x4
///                                    : d12                       0x5
///                                                 ###
///                                                 * Clock divider Selection
///                                                 * 0: Reserved
///                                                 * 1: Divide by 2 ( default)
///                                                 * 2: Divide by 4
///                                                 * 3: Divide by 6
///                                                 * 4: Divide by 8
///                                                 * 5: Divide by 12
///                                                 * 6-7: Reserved
///                                                 ###
///               %%        22         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:       4B, bits:      10b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_clkD2
#define h_clkD2 (){}

    #define     RA_clkD2_ctrl                                  0x0000

    #define     BA_clkD2_ctrl_ClkEn                            0x0000
    #define     B16clkD2_ctrl_ClkEn                            0x0000
    #define   LSb32clkD2_ctrl_ClkEn                               0
    #define   LSb16clkD2_ctrl_ClkEn                               0
    #define       bclkD2_ctrl_ClkEn                            1
    #define   MSK32clkD2_ctrl_ClkEn                               0x00000001
    #define        clkD2_ctrl_ClkEn_enable                                  0x1
    #define        clkD2_ctrl_ClkEn_disable                                 0x0

    #define     BA_clkD2_ctrl_ClkPllSel                        0x0000
    #define     B16clkD2_ctrl_ClkPllSel                        0x0000
    #define   LSb32clkD2_ctrl_ClkPllSel                           1
    #define   LSb16clkD2_ctrl_ClkPllSel                           1
    #define       bclkD2_ctrl_ClkPllSel                        3
    #define   MSK32clkD2_ctrl_ClkPllSel                           0x0000000E
    #define        clkD2_ctrl_ClkPllSel_AVPllB4                             0x0
    #define        clkD2_ctrl_ClkPllSel_AVPllB5                             0x1
    #define        clkD2_ctrl_ClkPllSel_AVPllB6                             0x2
    #define        clkD2_ctrl_ClkPllSel_AVPllB7                             0x3
    #define        clkD2_ctrl_ClkPllSel_SYSPLL                              0x4

    #define     BA_clkD2_ctrl_ClkPllSwitch                     0x0000
    #define     B16clkD2_ctrl_ClkPllSwitch                     0x0000
    #define   LSb32clkD2_ctrl_ClkPllSwitch                        4
    #define   LSb16clkD2_ctrl_ClkPllSwitch                        4
    #define       bclkD2_ctrl_ClkPllSwitch                     1
    #define   MSK32clkD2_ctrl_ClkPllSwitch                        0x00000010
    #define        clkD2_ctrl_ClkPllSwitch_SYSPLL                           0x0
    #define        clkD2_ctrl_ClkPllSwitch_AVPLL                            0x1

    #define     BA_clkD2_ctrl_ClkSwitch                        0x0000
    #define     B16clkD2_ctrl_ClkSwitch                        0x0000
    #define   LSb32clkD2_ctrl_ClkSwitch                           5
    #define   LSb16clkD2_ctrl_ClkSwitch                           5
    #define       bclkD2_ctrl_ClkSwitch                        1
    #define   MSK32clkD2_ctrl_ClkSwitch                           0x00000020
    #define        clkD2_ctrl_ClkSwitch_SrcClk                              0x0
    #define        clkD2_ctrl_ClkSwitch_DivClk                              0x1

    #define     BA_clkD2_ctrl_ClkD3Switch                      0x0000
    #define     B16clkD2_ctrl_ClkD3Switch                      0x0000
    #define   LSb32clkD2_ctrl_ClkD3Switch                         6
    #define   LSb16clkD2_ctrl_ClkD3Switch                         6
    #define       bclkD2_ctrl_ClkD3Switch                      1
    #define   MSK32clkD2_ctrl_ClkD3Switch                         0x00000040
    #define        clkD2_ctrl_ClkD3Switch_NonDiv3Clk                        0x0
    #define        clkD2_ctrl_ClkD3Switch_Div3Clk                           0x1

    #define     BA_clkD2_ctrl_ClkSel                           0x0000
    #define     B16clkD2_ctrl_ClkSel                           0x0000
    #define   LSb32clkD2_ctrl_ClkSel                              7
    #define   LSb16clkD2_ctrl_ClkSel                              7
    #define       bclkD2_ctrl_ClkSel                           3
    #define   MSK32clkD2_ctrl_ClkSel                              0x00000380
    #define        clkD2_ctrl_ClkSel_d2                                     0x1
    #define        clkD2_ctrl_ClkSel_d4                                     0x2
    #define        clkD2_ctrl_ClkSel_d6                                     0x3
    #define        clkD2_ctrl_ClkSel_d8                                     0x4
    #define        clkD2_ctrl_ClkSel_d12                                    0x5
    ///////////////////////////////////////////////////////////

    typedef struct SIE_clkD2 {
    ///////////////////////////////////////////////////////////
    #define   GET32clkD2_ctrl_ClkEn(r32)                       _BFGET_(r32, 0, 0)
    #define   SET32clkD2_ctrl_ClkEn(r32,v)                     _BFSET_(r32, 0, 0,v)
    #define   GET16clkD2_ctrl_ClkEn(r16)                       _BFGET_(r16, 0, 0)
    #define   SET16clkD2_ctrl_ClkEn(r16,v)                     _BFSET_(r16, 0, 0,v)

    #define   GET32clkD2_ctrl_ClkPllSel(r32)                   _BFGET_(r32, 3, 1)
    #define   SET32clkD2_ctrl_ClkPllSel(r32,v)                 _BFSET_(r32, 3, 1,v)
    #define   GET16clkD2_ctrl_ClkPllSel(r16)                   _BFGET_(r16, 3, 1)
    #define   SET16clkD2_ctrl_ClkPllSel(r16,v)                 _BFSET_(r16, 3, 1,v)

    #define   GET32clkD2_ctrl_ClkPllSwitch(r32)                _BFGET_(r32, 4, 4)
    #define   SET32clkD2_ctrl_ClkPllSwitch(r32,v)              _BFSET_(r32, 4, 4,v)
    #define   GET16clkD2_ctrl_ClkPllSwitch(r16)                _BFGET_(r16, 4, 4)
    #define   SET16clkD2_ctrl_ClkPllSwitch(r16,v)              _BFSET_(r16, 4, 4,v)

    #define   GET32clkD2_ctrl_ClkSwitch(r32)                   _BFGET_(r32, 5, 5)
    #define   SET32clkD2_ctrl_ClkSwitch(r32,v)                 _BFSET_(r32, 5, 5,v)
    #define   GET16clkD2_ctrl_ClkSwitch(r16)                   _BFGET_(r16, 5, 5)
    #define   SET16clkD2_ctrl_ClkSwitch(r16,v)                 _BFSET_(r16, 5, 5,v)

    #define   GET32clkD2_ctrl_ClkD3Switch(r32)                 _BFGET_(r32, 6, 6)
    #define   SET32clkD2_ctrl_ClkD3Switch(r32,v)               _BFSET_(r32, 6, 6,v)
    #define   GET16clkD2_ctrl_ClkD3Switch(r16)                 _BFGET_(r16, 6, 6)
    #define   SET16clkD2_ctrl_ClkD3Switch(r16,v)               _BFSET_(r16, 6, 6,v)

    #define   GET32clkD2_ctrl_ClkSel(r32)                      _BFGET_(r32, 9, 7)
    #define   SET32clkD2_ctrl_ClkSel(r32,v)                    _BFSET_(r32, 9, 7,v)
    #define   GET16clkD2_ctrl_ClkSel(r16)                      _BFGET_(r16, 9, 7)
    #define   SET16clkD2_ctrl_ClkSel(r16,v)                    _BFSET_(r16, 9, 7,v)

    #define     w32clkD2_ctrl                                  {\
            UNSG32 uctrl_ClkEn                                 :  1;\
            UNSG32 uctrl_ClkPllSel                             :  3;\
            UNSG32 uctrl_ClkPllSwitch                          :  1;\
            UNSG32 uctrl_ClkSwitch                             :  1;\
            UNSG32 uctrl_ClkD3Switch                           :  1;\
            UNSG32 uctrl_ClkSel                                :  3;\
            UNSG32 RSVDx0_b10                                  : 22;\
          }
    union { UNSG32 u32clkD2_ctrl;
            struct w32clkD2_ctrl;
          };
    ///////////////////////////////////////////////////////////
    } SIE_clkD2;

    typedef union  T32clkD2_ctrl
          { UNSG32 u32;
            struct w32clkD2_ctrl;
                 } T32clkD2_ctrl;
    ///////////////////////////////////////////////////////////

    typedef union  TclkD2_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32clkD2_ctrl;
                   };
                 } TclkD2_ctrl;

    ///////////////////////////////////////////////////////////
     SIGN32 clkD2_drvrd(SIE_clkD2 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 clkD2_drvwr(SIE_clkD2 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void clkD2_reset(SIE_clkD2 *p);
     SIGN32 clkD2_cmp  (SIE_clkD2 *p, SIE_clkD2 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define clkD2_check(p,pie,pfx,hLOG) clkD2_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define clkD2_print(p,    pfx,hLOG) clkD2_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: clkD2
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE clkD4                                    (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (P-)
///               ###
///               * Control register
///               ###
///               %unsigned 1  ClkEn                     0x1
///                                    : enable                    0x1
///                                    : disable                   0x0
///                                                 ###
///                                                 * Clock enable register
///                                                 * 0: Disable
///                                                 * 1: Enable   (default)
///                                                 ###
///               %unsigned 3  ClkPllSel                 0x4
///                                    : AVPllB4                   0x0
///                                    : AVPllB5                   0x1
///                                    : AVPllB6                   0x2
///                                    : AVPllB7                   0x3
///                                    : SYSPLL                    0x4
///                                                 ###
///                                                 * Clock source selection
///                                                 * 0: AVPLL B[4]
///                                                 * 1: AVPLL B[5]
///                                                 * 2: AVPLL B[6]
///                                                 * 3: AVPLL B[7]
///                                                 * 4: SYSPLL   (default)
///                                                 * 5-7: Reserved
///                                                 ###
///               %unsigned 1  ClkPllSwitch              0x0
///                                    : SYSPLL                    0x0
///                                    : AVPLL                     0x1
///                                                 ###
///                                                 * Switch to select between SYSPLL or AVPLL as a clock source
///                                                 * 0: SYSPLL (default)
///                                                 * 1: AVPLL
///                                                 ###
///               %unsigned 1  ClkSwitch                 0x1
///                                    : SrcClk                    0x0
///                                    : DivClk                    0x1
///                                                 ###
///                                                 * Clock divider switch select
///                                                 * 0:   No divider
///                                                 * 1:   Use Divider (default)
///                                                 ###
///               %unsigned 1  ClkD3Switch               0x0
///                                    : NonDiv3Clk                0x0
///                                    : Div3Clk                   0x1
///                                                 ###
///                                                 * Divide by 3 clock switch
///                                                 * 0: No Divide by 3 (default)
///                                                 * 1: Use Divide by 3
///                                                 ###
///               %unsigned 3  ClkSel                    0x2
///                                    : d2                        0x1
///                                    : d4                        0x2
///                                    : d6                        0x3
///                                    : d8                        0x4
///                                    : d12                       0x5
///                                                 ###
///                                                 * Clock divider Selection
///                                                 * 0: Reserved
///                                                 * 1: Divide by 2 ( default)
///                                                 * 2: Divide by 4
///                                                 * 3: Divide by 6
///                                                 * 4: Divide by 8
///                                                 * 5: Divide by 12
///                                                 * 6-7: Reserved
///                                                 ###
///               %%        22         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:       4B, bits:      10b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_clkD4
#define h_clkD4 (){}

    #define     RA_clkD4_ctrl                                  0x0000

    #define     BA_clkD4_ctrl_ClkEn                            0x0000
    #define     B16clkD4_ctrl_ClkEn                            0x0000
    #define   LSb32clkD4_ctrl_ClkEn                               0
    #define   LSb16clkD4_ctrl_ClkEn                               0
    #define       bclkD4_ctrl_ClkEn                            1
    #define   MSK32clkD4_ctrl_ClkEn                               0x00000001
    #define        clkD4_ctrl_ClkEn_enable                                  0x1
    #define        clkD4_ctrl_ClkEn_disable                                 0x0

    #define     BA_clkD4_ctrl_ClkPllSel                        0x0000
    #define     B16clkD4_ctrl_ClkPllSel                        0x0000
    #define   LSb32clkD4_ctrl_ClkPllSel                           1
    #define   LSb16clkD4_ctrl_ClkPllSel                           1
    #define       bclkD4_ctrl_ClkPllSel                        3
    #define   MSK32clkD4_ctrl_ClkPllSel                           0x0000000E
    #define        clkD4_ctrl_ClkPllSel_AVPllB4                             0x0
    #define        clkD4_ctrl_ClkPllSel_AVPllB5                             0x1
    #define        clkD4_ctrl_ClkPllSel_AVPllB6                             0x2
    #define        clkD4_ctrl_ClkPllSel_AVPllB7                             0x3
    #define        clkD4_ctrl_ClkPllSel_SYSPLL                              0x4

    #define     BA_clkD4_ctrl_ClkPllSwitch                     0x0000
    #define     B16clkD4_ctrl_ClkPllSwitch                     0x0000
    #define   LSb32clkD4_ctrl_ClkPllSwitch                        4
    #define   LSb16clkD4_ctrl_ClkPllSwitch                        4
    #define       bclkD4_ctrl_ClkPllSwitch                     1
    #define   MSK32clkD4_ctrl_ClkPllSwitch                        0x00000010
    #define        clkD4_ctrl_ClkPllSwitch_SYSPLL                           0x0
    #define        clkD4_ctrl_ClkPllSwitch_AVPLL                            0x1

    #define     BA_clkD4_ctrl_ClkSwitch                        0x0000
    #define     B16clkD4_ctrl_ClkSwitch                        0x0000
    #define   LSb32clkD4_ctrl_ClkSwitch                           5
    #define   LSb16clkD4_ctrl_ClkSwitch                           5
    #define       bclkD4_ctrl_ClkSwitch                        1
    #define   MSK32clkD4_ctrl_ClkSwitch                           0x00000020
    #define        clkD4_ctrl_ClkSwitch_SrcClk                              0x0
    #define        clkD4_ctrl_ClkSwitch_DivClk                              0x1

    #define     BA_clkD4_ctrl_ClkD3Switch                      0x0000
    #define     B16clkD4_ctrl_ClkD3Switch                      0x0000
    #define   LSb32clkD4_ctrl_ClkD3Switch                         6
    #define   LSb16clkD4_ctrl_ClkD3Switch                         6
    #define       bclkD4_ctrl_ClkD3Switch                      1
    #define   MSK32clkD4_ctrl_ClkD3Switch                         0x00000040
    #define        clkD4_ctrl_ClkD3Switch_NonDiv3Clk                        0x0
    #define        clkD4_ctrl_ClkD3Switch_Div3Clk                           0x1

    #define     BA_clkD4_ctrl_ClkSel                           0x0000
    #define     B16clkD4_ctrl_ClkSel                           0x0000
    #define   LSb32clkD4_ctrl_ClkSel                              7
    #define   LSb16clkD4_ctrl_ClkSel                              7
    #define       bclkD4_ctrl_ClkSel                           3
    #define   MSK32clkD4_ctrl_ClkSel                              0x00000380
    #define        clkD4_ctrl_ClkSel_d2                                     0x1
    #define        clkD4_ctrl_ClkSel_d4                                     0x2
    #define        clkD4_ctrl_ClkSel_d6                                     0x3
    #define        clkD4_ctrl_ClkSel_d8                                     0x4
    #define        clkD4_ctrl_ClkSel_d12                                    0x5
    ///////////////////////////////////////////////////////////

    typedef struct SIE_clkD4 {
    ///////////////////////////////////////////////////////////
    #define   GET32clkD4_ctrl_ClkEn(r32)                       _BFGET_(r32, 0, 0)
    #define   SET32clkD4_ctrl_ClkEn(r32,v)                     _BFSET_(r32, 0, 0,v)
    #define   GET16clkD4_ctrl_ClkEn(r16)                       _BFGET_(r16, 0, 0)
    #define   SET16clkD4_ctrl_ClkEn(r16,v)                     _BFSET_(r16, 0, 0,v)

    #define   GET32clkD4_ctrl_ClkPllSel(r32)                   _BFGET_(r32, 3, 1)
    #define   SET32clkD4_ctrl_ClkPllSel(r32,v)                 _BFSET_(r32, 3, 1,v)
    #define   GET16clkD4_ctrl_ClkPllSel(r16)                   _BFGET_(r16, 3, 1)
    #define   SET16clkD4_ctrl_ClkPllSel(r16,v)                 _BFSET_(r16, 3, 1,v)

    #define   GET32clkD4_ctrl_ClkPllSwitch(r32)                _BFGET_(r32, 4, 4)
    #define   SET32clkD4_ctrl_ClkPllSwitch(r32,v)              _BFSET_(r32, 4, 4,v)
    #define   GET16clkD4_ctrl_ClkPllSwitch(r16)                _BFGET_(r16, 4, 4)
    #define   SET16clkD4_ctrl_ClkPllSwitch(r16,v)              _BFSET_(r16, 4, 4,v)

    #define   GET32clkD4_ctrl_ClkSwitch(r32)                   _BFGET_(r32, 5, 5)
    #define   SET32clkD4_ctrl_ClkSwitch(r32,v)                 _BFSET_(r32, 5, 5,v)
    #define   GET16clkD4_ctrl_ClkSwitch(r16)                   _BFGET_(r16, 5, 5)
    #define   SET16clkD4_ctrl_ClkSwitch(r16,v)                 _BFSET_(r16, 5, 5,v)

    #define   GET32clkD4_ctrl_ClkD3Switch(r32)                 _BFGET_(r32, 6, 6)
    #define   SET32clkD4_ctrl_ClkD3Switch(r32,v)               _BFSET_(r32, 6, 6,v)
    #define   GET16clkD4_ctrl_ClkD3Switch(r16)                 _BFGET_(r16, 6, 6)
    #define   SET16clkD4_ctrl_ClkD3Switch(r16,v)               _BFSET_(r16, 6, 6,v)

    #define   GET32clkD4_ctrl_ClkSel(r32)                      _BFGET_(r32, 9, 7)
    #define   SET32clkD4_ctrl_ClkSel(r32,v)                    _BFSET_(r32, 9, 7,v)
    #define   GET16clkD4_ctrl_ClkSel(r16)                      _BFGET_(r16, 9, 7)
    #define   SET16clkD4_ctrl_ClkSel(r16,v)                    _BFSET_(r16, 9, 7,v)

    #define     w32clkD4_ctrl                                  {\
            UNSG32 uctrl_ClkEn                                 :  1;\
            UNSG32 uctrl_ClkPllSel                             :  3;\
            UNSG32 uctrl_ClkPllSwitch                          :  1;\
            UNSG32 uctrl_ClkSwitch                             :  1;\
            UNSG32 uctrl_ClkD3Switch                           :  1;\
            UNSG32 uctrl_ClkSel                                :  3;\
            UNSG32 RSVDx0_b10                                  : 22;\
          }
    union { UNSG32 u32clkD4_ctrl;
            struct w32clkD4_ctrl;
          };
    ///////////////////////////////////////////////////////////
    } SIE_clkD4;

    typedef union  T32clkD4_ctrl
          { UNSG32 u32;
            struct w32clkD4_ctrl;
                 } T32clkD4_ctrl;
    ///////////////////////////////////////////////////////////

    typedef union  TclkD4_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32clkD4_ctrl;
                   };
                 } TclkD4_ctrl;

    ///////////////////////////////////////////////////////////
     SIGN32 clkD4_drvrd(SIE_clkD4 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 clkD4_drvwr(SIE_clkD4 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void clkD4_reset(SIE_clkD4 *p);
     SIGN32 clkD4_cmp  (SIE_clkD4 *p, SIE_clkD4 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define clkD4_check(p,pie,pfx,hLOG) clkD4_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define clkD4_print(p,    pfx,hLOG) clkD4_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: clkD4
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE clkD6                                    (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (P-)
///               ###
///               * Control register
///               ###
///               %unsigned 1  ClkEn                     0x1
///                                    : enable                    0x1
///                                    : disable                   0x0
///                                                 ###
///                                                 * Clock enable register
///                                                 * 0: Disable
///                                                 * 1: Enable   (default)
///                                                 ###
///               %unsigned 3  ClkPllSel                 0x4
///                                    : AVPllB4                   0x0
///                                    : AVPllB5                   0x1
///                                    : AVPllB6                   0x2
///                                    : AVPllB7                   0x3
///                                    : SYSPLL                    0x4
///                                                 ###
///                                                 * Clock source selection
///                                                 * 0: AVPLL B[4]
///                                                 * 1: AVPLL B[5]
///                                                 * 2: AVPLL B[6]
///                                                 * 3: AVPLL B[7]
///                                                 * 4: SYSPLL   (default)
///                                                 * 5-7: Reserved
///                                                 ###
///               %unsigned 1  ClkPllSwitch              0x0
///                                    : SYSPLL                    0x0
///                                    : AVPLL                     0x1
///                                                 ###
///                                                 * Switch to select between SYSPLL or AVPLL as a clock source
///                                                 * 0: SYSPLL (default)
///                                                 * 1: AVPLL
///                                                 ###
///               %unsigned 1  ClkSwitch                 0x1
///                                    : SrcClk                    0x0
///                                    : DivClk                    0x1
///                                                 ###
///                                                 * Clock divider switch select
///                                                 * 0:   No divider
///                                                 * 1:   Use Divider (default)
///                                                 ###
///               %unsigned 1  ClkD3Switch               0x0
///                                    : NonDiv3Clk                0x0
///                                    : Div3Clk                   0x1
///                                                 ###
///                                                 * Divide by 3 clock switch
///                                                 * 0: No Divide by 3 (default)
///                                                 * 1: Use Divide by 3
///                                                 ###
///               %unsigned 3  ClkSel                    0x3
///                                    : d2                        0x1
///                                    : d4                        0x2
///                                    : d6                        0x3
///                                    : d8                        0x4
///                                    : d12                       0x5
///                                                 ###
///                                                 * Clock divider Selection
///                                                 * 0: Reserved
///                                                 * 1: Divide by 2 ( default)
///                                                 * 2: Divide by 4
///                                                 * 3: Divide by 6
///                                                 * 4: Divide by 8
///                                                 * 5: Divide by 12
///                                                 * 6-7: Reserved
///                                                 ###
///               %%        22         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:       4B, bits:      10b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_clkD6
#define h_clkD6 (){}

    #define     RA_clkD6_ctrl                                  0x0000

    #define     BA_clkD6_ctrl_ClkEn                            0x0000
    #define     B16clkD6_ctrl_ClkEn                            0x0000
    #define   LSb32clkD6_ctrl_ClkEn                               0
    #define   LSb16clkD6_ctrl_ClkEn                               0
    #define       bclkD6_ctrl_ClkEn                            1
    #define   MSK32clkD6_ctrl_ClkEn                               0x00000001
    #define        clkD6_ctrl_ClkEn_enable                                  0x1
    #define        clkD6_ctrl_ClkEn_disable                                 0x0

    #define     BA_clkD6_ctrl_ClkPllSel                        0x0000
    #define     B16clkD6_ctrl_ClkPllSel                        0x0000
    #define   LSb32clkD6_ctrl_ClkPllSel                           1
    #define   LSb16clkD6_ctrl_ClkPllSel                           1
    #define       bclkD6_ctrl_ClkPllSel                        3
    #define   MSK32clkD6_ctrl_ClkPllSel                           0x0000000E
    #define        clkD6_ctrl_ClkPllSel_AVPllB4                             0x0
    #define        clkD6_ctrl_ClkPllSel_AVPllB5                             0x1
    #define        clkD6_ctrl_ClkPllSel_AVPllB6                             0x2
    #define        clkD6_ctrl_ClkPllSel_AVPllB7                             0x3
    #define        clkD6_ctrl_ClkPllSel_SYSPLL                              0x4

    #define     BA_clkD6_ctrl_ClkPllSwitch                     0x0000
    #define     B16clkD6_ctrl_ClkPllSwitch                     0x0000
    #define   LSb32clkD6_ctrl_ClkPllSwitch                        4
    #define   LSb16clkD6_ctrl_ClkPllSwitch                        4
    #define       bclkD6_ctrl_ClkPllSwitch                     1
    #define   MSK32clkD6_ctrl_ClkPllSwitch                        0x00000010
    #define        clkD6_ctrl_ClkPllSwitch_SYSPLL                           0x0
    #define        clkD6_ctrl_ClkPllSwitch_AVPLL                            0x1

    #define     BA_clkD6_ctrl_ClkSwitch                        0x0000
    #define     B16clkD6_ctrl_ClkSwitch                        0x0000
    #define   LSb32clkD6_ctrl_ClkSwitch                           5
    #define   LSb16clkD6_ctrl_ClkSwitch                           5
    #define       bclkD6_ctrl_ClkSwitch                        1
    #define   MSK32clkD6_ctrl_ClkSwitch                           0x00000020
    #define        clkD6_ctrl_ClkSwitch_SrcClk                              0x0
    #define        clkD6_ctrl_ClkSwitch_DivClk                              0x1

    #define     BA_clkD6_ctrl_ClkD3Switch                      0x0000
    #define     B16clkD6_ctrl_ClkD3Switch                      0x0000
    #define   LSb32clkD6_ctrl_ClkD3Switch                         6
    #define   LSb16clkD6_ctrl_ClkD3Switch                         6
    #define       bclkD6_ctrl_ClkD3Switch                      1
    #define   MSK32clkD6_ctrl_ClkD3Switch                         0x00000040
    #define        clkD6_ctrl_ClkD3Switch_NonDiv3Clk                        0x0
    #define        clkD6_ctrl_ClkD3Switch_Div3Clk                           0x1

    #define     BA_clkD6_ctrl_ClkSel                           0x0000
    #define     B16clkD6_ctrl_ClkSel                           0x0000
    #define   LSb32clkD6_ctrl_ClkSel                              7
    #define   LSb16clkD6_ctrl_ClkSel                              7
    #define       bclkD6_ctrl_ClkSel                           3
    #define   MSK32clkD6_ctrl_ClkSel                              0x00000380
    #define        clkD6_ctrl_ClkSel_d2                                     0x1
    #define        clkD6_ctrl_ClkSel_d4                                     0x2
    #define        clkD6_ctrl_ClkSel_d6                                     0x3
    #define        clkD6_ctrl_ClkSel_d8                                     0x4
    #define        clkD6_ctrl_ClkSel_d12                                    0x5
    ///////////////////////////////////////////////////////////

    typedef struct SIE_clkD6 {
    ///////////////////////////////////////////////////////////
    #define   GET32clkD6_ctrl_ClkEn(r32)                       _BFGET_(r32, 0, 0)
    #define   SET32clkD6_ctrl_ClkEn(r32,v)                     _BFSET_(r32, 0, 0,v)
    #define   GET16clkD6_ctrl_ClkEn(r16)                       _BFGET_(r16, 0, 0)
    #define   SET16clkD6_ctrl_ClkEn(r16,v)                     _BFSET_(r16, 0, 0,v)

    #define   GET32clkD6_ctrl_ClkPllSel(r32)                   _BFGET_(r32, 3, 1)
    #define   SET32clkD6_ctrl_ClkPllSel(r32,v)                 _BFSET_(r32, 3, 1,v)
    #define   GET16clkD6_ctrl_ClkPllSel(r16)                   _BFGET_(r16, 3, 1)
    #define   SET16clkD6_ctrl_ClkPllSel(r16,v)                 _BFSET_(r16, 3, 1,v)

    #define   GET32clkD6_ctrl_ClkPllSwitch(r32)                _BFGET_(r32, 4, 4)
    #define   SET32clkD6_ctrl_ClkPllSwitch(r32,v)              _BFSET_(r32, 4, 4,v)
    #define   GET16clkD6_ctrl_ClkPllSwitch(r16)                _BFGET_(r16, 4, 4)
    #define   SET16clkD6_ctrl_ClkPllSwitch(r16,v)              _BFSET_(r16, 4, 4,v)

    #define   GET32clkD6_ctrl_ClkSwitch(r32)                   _BFGET_(r32, 5, 5)
    #define   SET32clkD6_ctrl_ClkSwitch(r32,v)                 _BFSET_(r32, 5, 5,v)
    #define   GET16clkD6_ctrl_ClkSwitch(r16)                   _BFGET_(r16, 5, 5)
    #define   SET16clkD6_ctrl_ClkSwitch(r16,v)                 _BFSET_(r16, 5, 5,v)

    #define   GET32clkD6_ctrl_ClkD3Switch(r32)                 _BFGET_(r32, 6, 6)
    #define   SET32clkD6_ctrl_ClkD3Switch(r32,v)               _BFSET_(r32, 6, 6,v)
    #define   GET16clkD6_ctrl_ClkD3Switch(r16)                 _BFGET_(r16, 6, 6)
    #define   SET16clkD6_ctrl_ClkD3Switch(r16,v)               _BFSET_(r16, 6, 6,v)

    #define   GET32clkD6_ctrl_ClkSel(r32)                      _BFGET_(r32, 9, 7)
    #define   SET32clkD6_ctrl_ClkSel(r32,v)                    _BFSET_(r32, 9, 7,v)
    #define   GET16clkD6_ctrl_ClkSel(r16)                      _BFGET_(r16, 9, 7)
    #define   SET16clkD6_ctrl_ClkSel(r16,v)                    _BFSET_(r16, 9, 7,v)

    #define     w32clkD6_ctrl                                  {\
            UNSG32 uctrl_ClkEn                                 :  1;\
            UNSG32 uctrl_ClkPllSel                             :  3;\
            UNSG32 uctrl_ClkPllSwitch                          :  1;\
            UNSG32 uctrl_ClkSwitch                             :  1;\
            UNSG32 uctrl_ClkD3Switch                           :  1;\
            UNSG32 uctrl_ClkSel                                :  3;\
            UNSG32 RSVDx0_b10                                  : 22;\
          }
    union { UNSG32 u32clkD6_ctrl;
            struct w32clkD6_ctrl;
          };
    ///////////////////////////////////////////////////////////
    } SIE_clkD6;

    typedef union  T32clkD6_ctrl
          { UNSG32 u32;
            struct w32clkD6_ctrl;
                 } T32clkD6_ctrl;
    ///////////////////////////////////////////////////////////

    typedef union  TclkD6_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32clkD6_ctrl;
                   };
                 } TclkD6_ctrl;

    ///////////////////////////////////////////////////////////
     SIGN32 clkD6_drvrd(SIE_clkD6 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 clkD6_drvwr(SIE_clkD6 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void clkD6_reset(SIE_clkD6 *p);
     SIGN32 clkD6_cmp  (SIE_clkD6 *p, SIE_clkD6 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define clkD6_check(p,pie,pfx,hLOG) clkD6_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define clkD6_print(p,    pfx,hLOG) clkD6_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: clkD6
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE clkD8                                    (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (P-)
///               ###
///               * Control register
///               ###
///               %unsigned 1  ClkEn                     0x1
///                                    : enable                    0x1
///                                    : disable                   0x0
///                                                 ###
///                                                 * Clock enable register
///                                                 * 0: Disable
///                                                 * 1: Enable   (default)
///                                                 ###
///               %unsigned 3  ClkPllSel                 0x4
///                                    : AVPllB4                   0x0
///                                    : AVPllB5                   0x1
///                                    : AVPllB6                   0x2
///                                    : AVPllB7                   0x3
///                                    : SYSPLL                    0x4
///                                                 ###
///                                                 * Clock source selection
///                                                 * 0: AVPLL B[4]
///                                                 * 1: AVPLL B[5]
///                                                 * 2: AVPLL B[6]
///                                                 * 3: AVPLL B[7]
///                                                 * 4: SYSPLL   (default)
///                                                 * 5-7: Reserved
///                                                 ###
///               %unsigned 1  ClkPllSwitch              0x0
///                                    : SYSPLL                    0x0
///                                    : AVPLL                     0x1
///                                                 ###
///                                                 * Switch to select between SYSPLL or AVPLL as a clock source
///                                                 * 0: SYSPLL (default)
///                                                 * 1: AVPLL
///                                                 ###
///               %unsigned 1  ClkSwitch                 0x1
///                                    : SrcClk                    0x0
///                                    : DivClk                    0x1
///                                                 ###
///                                                 * Clock divider switch select
///                                                 * 0:   No divider
///                                                 * 1:   Use Divider (default)
///                                                 ###
///               %unsigned 1  ClkD3Switch               0x0
///                                    : NonDiv3Clk                0x0
///                                    : Div3Clk                   0x1
///                                                 ###
///                                                 * Divide by 3 clock switch
///                                                 * 0: No Divide by 3 (default)
///                                                 * 1: Use Divide by 3
///                                                 ###
///               %unsigned 3  ClkSel                    0x4
///                                    : d2                        0x1
///                                    : d4                        0x2
///                                    : d6                        0x3
///                                    : d8                        0x4
///                                    : d12                       0x5
///                                                 ###
///                                                 * Clock divider Selection
///                                                 * 0: Reserved
///                                                 * 1: Divide by 2 ( default)
///                                                 * 2: Divide by 4
///                                                 * 3: Divide by 6
///                                                 * 4: Divide by 8
///                                                 * 5: Divide by 12
///                                                 * 6-7: Reserved
///                                                 ###
///               %%        22         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:       4B, bits:      10b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_clkD8
#define h_clkD8 (){}

    #define     RA_clkD8_ctrl                                  0x0000

    #define     BA_clkD8_ctrl_ClkEn                            0x0000
    #define     B16clkD8_ctrl_ClkEn                            0x0000
    #define   LSb32clkD8_ctrl_ClkEn                               0
    #define   LSb16clkD8_ctrl_ClkEn                               0
    #define       bclkD8_ctrl_ClkEn                            1
    #define   MSK32clkD8_ctrl_ClkEn                               0x00000001
    #define        clkD8_ctrl_ClkEn_enable                                  0x1
    #define        clkD8_ctrl_ClkEn_disable                                 0x0

    #define     BA_clkD8_ctrl_ClkPllSel                        0x0000
    #define     B16clkD8_ctrl_ClkPllSel                        0x0000
    #define   LSb32clkD8_ctrl_ClkPllSel                           1
    #define   LSb16clkD8_ctrl_ClkPllSel                           1
    #define       bclkD8_ctrl_ClkPllSel                        3
    #define   MSK32clkD8_ctrl_ClkPllSel                           0x0000000E
    #define        clkD8_ctrl_ClkPllSel_AVPllB4                             0x0
    #define        clkD8_ctrl_ClkPllSel_AVPllB5                             0x1
    #define        clkD8_ctrl_ClkPllSel_AVPllB6                             0x2
    #define        clkD8_ctrl_ClkPllSel_AVPllB7                             0x3
    #define        clkD8_ctrl_ClkPllSel_SYSPLL                              0x4

    #define     BA_clkD8_ctrl_ClkPllSwitch                     0x0000
    #define     B16clkD8_ctrl_ClkPllSwitch                     0x0000
    #define   LSb32clkD8_ctrl_ClkPllSwitch                        4
    #define   LSb16clkD8_ctrl_ClkPllSwitch                        4
    #define       bclkD8_ctrl_ClkPllSwitch                     1
    #define   MSK32clkD8_ctrl_ClkPllSwitch                        0x00000010
    #define        clkD8_ctrl_ClkPllSwitch_SYSPLL                           0x0
    #define        clkD8_ctrl_ClkPllSwitch_AVPLL                            0x1

    #define     BA_clkD8_ctrl_ClkSwitch                        0x0000
    #define     B16clkD8_ctrl_ClkSwitch                        0x0000
    #define   LSb32clkD8_ctrl_ClkSwitch                           5
    #define   LSb16clkD8_ctrl_ClkSwitch                           5
    #define       bclkD8_ctrl_ClkSwitch                        1
    #define   MSK32clkD8_ctrl_ClkSwitch                           0x00000020
    #define        clkD8_ctrl_ClkSwitch_SrcClk                              0x0
    #define        clkD8_ctrl_ClkSwitch_DivClk                              0x1

    #define     BA_clkD8_ctrl_ClkD3Switch                      0x0000
    #define     B16clkD8_ctrl_ClkD3Switch                      0x0000
    #define   LSb32clkD8_ctrl_ClkD3Switch                         6
    #define   LSb16clkD8_ctrl_ClkD3Switch                         6
    #define       bclkD8_ctrl_ClkD3Switch                      1
    #define   MSK32clkD8_ctrl_ClkD3Switch                         0x00000040
    #define        clkD8_ctrl_ClkD3Switch_NonDiv3Clk                        0x0
    #define        clkD8_ctrl_ClkD3Switch_Div3Clk                           0x1

    #define     BA_clkD8_ctrl_ClkSel                           0x0000
    #define     B16clkD8_ctrl_ClkSel                           0x0000
    #define   LSb32clkD8_ctrl_ClkSel                              7
    #define   LSb16clkD8_ctrl_ClkSel                              7
    #define       bclkD8_ctrl_ClkSel                           3
    #define   MSK32clkD8_ctrl_ClkSel                              0x00000380
    #define        clkD8_ctrl_ClkSel_d2                                     0x1
    #define        clkD8_ctrl_ClkSel_d4                                     0x2
    #define        clkD8_ctrl_ClkSel_d6                                     0x3
    #define        clkD8_ctrl_ClkSel_d8                                     0x4
    #define        clkD8_ctrl_ClkSel_d12                                    0x5
    ///////////////////////////////////////////////////////////

    typedef struct SIE_clkD8 {
    ///////////////////////////////////////////////////////////
    #define   GET32clkD8_ctrl_ClkEn(r32)                       _BFGET_(r32, 0, 0)
    #define   SET32clkD8_ctrl_ClkEn(r32,v)                     _BFSET_(r32, 0, 0,v)
    #define   GET16clkD8_ctrl_ClkEn(r16)                       _BFGET_(r16, 0, 0)
    #define   SET16clkD8_ctrl_ClkEn(r16,v)                     _BFSET_(r16, 0, 0,v)

    #define   GET32clkD8_ctrl_ClkPllSel(r32)                   _BFGET_(r32, 3, 1)
    #define   SET32clkD8_ctrl_ClkPllSel(r32,v)                 _BFSET_(r32, 3, 1,v)
    #define   GET16clkD8_ctrl_ClkPllSel(r16)                   _BFGET_(r16, 3, 1)
    #define   SET16clkD8_ctrl_ClkPllSel(r16,v)                 _BFSET_(r16, 3, 1,v)

    #define   GET32clkD8_ctrl_ClkPllSwitch(r32)                _BFGET_(r32, 4, 4)
    #define   SET32clkD8_ctrl_ClkPllSwitch(r32,v)              _BFSET_(r32, 4, 4,v)
    #define   GET16clkD8_ctrl_ClkPllSwitch(r16)                _BFGET_(r16, 4, 4)
    #define   SET16clkD8_ctrl_ClkPllSwitch(r16,v)              _BFSET_(r16, 4, 4,v)

    #define   GET32clkD8_ctrl_ClkSwitch(r32)                   _BFGET_(r32, 5, 5)
    #define   SET32clkD8_ctrl_ClkSwitch(r32,v)                 _BFSET_(r32, 5, 5,v)
    #define   GET16clkD8_ctrl_ClkSwitch(r16)                   _BFGET_(r16, 5, 5)
    #define   SET16clkD8_ctrl_ClkSwitch(r16,v)                 _BFSET_(r16, 5, 5,v)

    #define   GET32clkD8_ctrl_ClkD3Switch(r32)                 _BFGET_(r32, 6, 6)
    #define   SET32clkD8_ctrl_ClkD3Switch(r32,v)               _BFSET_(r32, 6, 6,v)
    #define   GET16clkD8_ctrl_ClkD3Switch(r16)                 _BFGET_(r16, 6, 6)
    #define   SET16clkD8_ctrl_ClkD3Switch(r16,v)               _BFSET_(r16, 6, 6,v)

    #define   GET32clkD8_ctrl_ClkSel(r32)                      _BFGET_(r32, 9, 7)
    #define   SET32clkD8_ctrl_ClkSel(r32,v)                    _BFSET_(r32, 9, 7,v)
    #define   GET16clkD8_ctrl_ClkSel(r16)                      _BFGET_(r16, 9, 7)
    #define   SET16clkD8_ctrl_ClkSel(r16,v)                    _BFSET_(r16, 9, 7,v)

    #define     w32clkD8_ctrl                                  {\
            UNSG32 uctrl_ClkEn                                 :  1;\
            UNSG32 uctrl_ClkPllSel                             :  3;\
            UNSG32 uctrl_ClkPllSwitch                          :  1;\
            UNSG32 uctrl_ClkSwitch                             :  1;\
            UNSG32 uctrl_ClkD3Switch                           :  1;\
            UNSG32 uctrl_ClkSel                                :  3;\
            UNSG32 RSVDx0_b10                                  : 22;\
          }
    union { UNSG32 u32clkD8_ctrl;
            struct w32clkD8_ctrl;
          };
    ///////////////////////////////////////////////////////////
    } SIE_clkD8;

    typedef union  T32clkD8_ctrl
          { UNSG32 u32;
            struct w32clkD8_ctrl;
                 } T32clkD8_ctrl;
    ///////////////////////////////////////////////////////////

    typedef union  TclkD8_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32clkD8_ctrl;
                   };
                 } TclkD8_ctrl;

    ///////////////////////////////////////////////////////////
     SIGN32 clkD8_drvrd(SIE_clkD8 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 clkD8_drvwr(SIE_clkD8 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void clkD8_reset(SIE_clkD8 *p);
     SIGN32 clkD8_cmp  (SIE_clkD8 *p, SIE_clkD8 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define clkD8_check(p,pie,pfx,hLOG) clkD8_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define clkD8_print(p,    pfx,hLOG) clkD8_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: clkD8
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE clkD12                                   (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (P-)
///               ###
///               * Control register
///               ###
///               %unsigned 1  ClkEn                     0x1
///                                    : enable                    0x1
///                                    : disable                   0x0
///                                                 ###
///                                                 * Clock enable register
///                                                 * 0: Disable
///                                                 * 1: Enable   (default)
///                                                 ###
///               %unsigned 3  ClkPllSel                 0x4
///                                    : AVPllB4                   0x0
///                                    : AVPllB5                   0x1
///                                    : AVPllB6                   0x2
///                                    : AVPllB7                   0x3
///                                    : SYSPLL                    0x4
///                                                 ###
///                                                 * Clock source selection
///                                                 * 0: AVPLL B[4]
///                                                 * 1: AVPLL B[5]
///                                                 * 2: AVPLL B[6]
///                                                 * 3: AVPLL B[7]
///                                                 * 4: SYSPLL   (default)
///                                                 * 5-7: Reserved
///                                                 ###
///               %unsigned 1  ClkPllSwitch              0x0
///                                    : SYSPLL                    0x0
///                                    : AVPLL                     0x1
///                                                 ###
///                                                 * Switch to select between SYSPLL or AVPLL as a clock source
///                                                 * 0: SYSPLL (default)
///                                                 * 1: AVPLL
///                                                 ###
///               %unsigned 1  ClkSwitch                 0x1
///                                    : SrcClk                    0x0
///                                    : DivClk                    0x1
///                                                 ###
///                                                 * Clock divider switch select
///                                                 * 0:   No divider
///                                                 * 1:   Use Divider (default)
///                                                 ###
///               %unsigned 1  ClkD3Switch               0x0
///                                    : NonDiv3Clk                0x0
///                                    : Div3Clk                   0x1
///                                                 ###
///                                                 * Divide by 3 clock switch
///                                                 * 0: No Divide by 3 (default)
///                                                 * 1: Use Divide by 3
///                                                 ###
///               %unsigned 3  ClkSel                    0x5
///                                    : d2                        0x1
///                                    : d4                        0x2
///                                    : d6                        0x3
///                                    : d8                        0x4
///                                    : d12                       0x5
///                                                 ###
///                                                 * Clock divider Selection
///                                                 * 0: Reserved
///                                                 * 1: Divide by 2 ( default)
///                                                 * 2: Divide by 4
///                                                 * 3: Divide by 6
///                                                 * 4: Divide by 8
///                                                 * 5: Divide by 12
///                                                 * 6-7: Reserved
///                                                 ###
///               %%        22         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:       4B, bits:      10b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_clkD12
#define h_clkD12 (){}

    #define     RA_clkD12_ctrl                                 0x0000

    #define     BA_clkD12_ctrl_ClkEn                           0x0000
    #define     B16clkD12_ctrl_ClkEn                           0x0000
    #define   LSb32clkD12_ctrl_ClkEn                              0
    #define   LSb16clkD12_ctrl_ClkEn                              0
    #define       bclkD12_ctrl_ClkEn                           1
    #define   MSK32clkD12_ctrl_ClkEn                              0x00000001
    #define        clkD12_ctrl_ClkEn_enable                                 0x1
    #define        clkD12_ctrl_ClkEn_disable                                0x0

    #define     BA_clkD12_ctrl_ClkPllSel                       0x0000
    #define     B16clkD12_ctrl_ClkPllSel                       0x0000
    #define   LSb32clkD12_ctrl_ClkPllSel                          1
    #define   LSb16clkD12_ctrl_ClkPllSel                          1
    #define       bclkD12_ctrl_ClkPllSel                       3
    #define   MSK32clkD12_ctrl_ClkPllSel                          0x0000000E
    #define        clkD12_ctrl_ClkPllSel_AVPllB4                            0x0
    #define        clkD12_ctrl_ClkPllSel_AVPllB5                            0x1
    #define        clkD12_ctrl_ClkPllSel_AVPllB6                            0x2
    #define        clkD12_ctrl_ClkPllSel_AVPllB7                            0x3
    #define        clkD12_ctrl_ClkPllSel_SYSPLL                             0x4

    #define     BA_clkD12_ctrl_ClkPllSwitch                    0x0000
    #define     B16clkD12_ctrl_ClkPllSwitch                    0x0000
    #define   LSb32clkD12_ctrl_ClkPllSwitch                       4
    #define   LSb16clkD12_ctrl_ClkPllSwitch                       4
    #define       bclkD12_ctrl_ClkPllSwitch                    1
    #define   MSK32clkD12_ctrl_ClkPllSwitch                       0x00000010
    #define        clkD12_ctrl_ClkPllSwitch_SYSPLL                          0x0
    #define        clkD12_ctrl_ClkPllSwitch_AVPLL                           0x1

    #define     BA_clkD12_ctrl_ClkSwitch                       0x0000
    #define     B16clkD12_ctrl_ClkSwitch                       0x0000
    #define   LSb32clkD12_ctrl_ClkSwitch                          5
    #define   LSb16clkD12_ctrl_ClkSwitch                          5
    #define       bclkD12_ctrl_ClkSwitch                       1
    #define   MSK32clkD12_ctrl_ClkSwitch                          0x00000020
    #define        clkD12_ctrl_ClkSwitch_SrcClk                             0x0
    #define        clkD12_ctrl_ClkSwitch_DivClk                             0x1

    #define     BA_clkD12_ctrl_ClkD3Switch                     0x0000
    #define     B16clkD12_ctrl_ClkD3Switch                     0x0000
    #define   LSb32clkD12_ctrl_ClkD3Switch                        6
    #define   LSb16clkD12_ctrl_ClkD3Switch                        6
    #define       bclkD12_ctrl_ClkD3Switch                     1
    #define   MSK32clkD12_ctrl_ClkD3Switch                        0x00000040
    #define        clkD12_ctrl_ClkD3Switch_NonDiv3Clk                       0x0
    #define        clkD12_ctrl_ClkD3Switch_Div3Clk                          0x1

    #define     BA_clkD12_ctrl_ClkSel                          0x0000
    #define     B16clkD12_ctrl_ClkSel                          0x0000
    #define   LSb32clkD12_ctrl_ClkSel                             7
    #define   LSb16clkD12_ctrl_ClkSel                             7
    #define       bclkD12_ctrl_ClkSel                          3
    #define   MSK32clkD12_ctrl_ClkSel                             0x00000380
    #define        clkD12_ctrl_ClkSel_d2                                    0x1
    #define        clkD12_ctrl_ClkSel_d4                                    0x2
    #define        clkD12_ctrl_ClkSel_d6                                    0x3
    #define        clkD12_ctrl_ClkSel_d8                                    0x4
    #define        clkD12_ctrl_ClkSel_d12                                   0x5
    ///////////////////////////////////////////////////////////

    typedef struct SIE_clkD12 {
    ///////////////////////////////////////////////////////////
    #define   GET32clkD12_ctrl_ClkEn(r32)                      _BFGET_(r32, 0, 0)
    #define   SET32clkD12_ctrl_ClkEn(r32,v)                    _BFSET_(r32, 0, 0,v)
    #define   GET16clkD12_ctrl_ClkEn(r16)                      _BFGET_(r16, 0, 0)
    #define   SET16clkD12_ctrl_ClkEn(r16,v)                    _BFSET_(r16, 0, 0,v)

    #define   GET32clkD12_ctrl_ClkPllSel(r32)                  _BFGET_(r32, 3, 1)
    #define   SET32clkD12_ctrl_ClkPllSel(r32,v)                _BFSET_(r32, 3, 1,v)
    #define   GET16clkD12_ctrl_ClkPllSel(r16)                  _BFGET_(r16, 3, 1)
    #define   SET16clkD12_ctrl_ClkPllSel(r16,v)                _BFSET_(r16, 3, 1,v)

    #define   GET32clkD12_ctrl_ClkPllSwitch(r32)               _BFGET_(r32, 4, 4)
    #define   SET32clkD12_ctrl_ClkPllSwitch(r32,v)             _BFSET_(r32, 4, 4,v)
    #define   GET16clkD12_ctrl_ClkPllSwitch(r16)               _BFGET_(r16, 4, 4)
    #define   SET16clkD12_ctrl_ClkPllSwitch(r16,v)             _BFSET_(r16, 4, 4,v)

    #define   GET32clkD12_ctrl_ClkSwitch(r32)                  _BFGET_(r32, 5, 5)
    #define   SET32clkD12_ctrl_ClkSwitch(r32,v)                _BFSET_(r32, 5, 5,v)
    #define   GET16clkD12_ctrl_ClkSwitch(r16)                  _BFGET_(r16, 5, 5)
    #define   SET16clkD12_ctrl_ClkSwitch(r16,v)                _BFSET_(r16, 5, 5,v)

    #define   GET32clkD12_ctrl_ClkD3Switch(r32)                _BFGET_(r32, 6, 6)
    #define   SET32clkD12_ctrl_ClkD3Switch(r32,v)              _BFSET_(r32, 6, 6,v)
    #define   GET16clkD12_ctrl_ClkD3Switch(r16)                _BFGET_(r16, 6, 6)
    #define   SET16clkD12_ctrl_ClkD3Switch(r16,v)              _BFSET_(r16, 6, 6,v)

    #define   GET32clkD12_ctrl_ClkSel(r32)                     _BFGET_(r32, 9, 7)
    #define   SET32clkD12_ctrl_ClkSel(r32,v)                   _BFSET_(r32, 9, 7,v)
    #define   GET16clkD12_ctrl_ClkSel(r16)                     _BFGET_(r16, 9, 7)
    #define   SET16clkD12_ctrl_ClkSel(r16,v)                   _BFSET_(r16, 9, 7,v)

    #define     w32clkD12_ctrl                                 {\
            UNSG32 uctrl_ClkEn                                 :  1;\
            UNSG32 uctrl_ClkPllSel                             :  3;\
            UNSG32 uctrl_ClkPllSwitch                          :  1;\
            UNSG32 uctrl_ClkSwitch                             :  1;\
            UNSG32 uctrl_ClkD3Switch                           :  1;\
            UNSG32 uctrl_ClkSel                                :  3;\
            UNSG32 RSVDx0_b10                                  : 22;\
          }
    union { UNSG32 u32clkD12_ctrl;
            struct w32clkD12_ctrl;
          };
    ///////////////////////////////////////////////////////////
    } SIE_clkD12;

    typedef union  T32clkD12_ctrl
          { UNSG32 u32;
            struct w32clkD12_ctrl;
                 } T32clkD12_ctrl;
    ///////////////////////////////////////////////////////////

    typedef union  TclkD12_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32clkD12_ctrl;
                   };
                 } TclkD12_ctrl;

    ///////////////////////////////////////////////////////////
     SIGN32 clkD12_drvrd(SIE_clkD12 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 clkD12_drvwr(SIE_clkD12 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void clkD12_reset(SIE_clkD12 *p);
     SIGN32 clkD12_cmp  (SIE_clkD12 *p, SIE_clkD12 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define clkD12_check(p,pie,pfx,hLOG) clkD12_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define clkD12_print(p,    pfx,hLOG) clkD12_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: clkD12
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE efuse                                    (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (RW)
///               ###
///               * EFUSE Control register
///               ###
///               %unsigned 1  PROG_SEQ_CODE             0x0
///                                    ###
///                                    * Program code
///                                    ###
///               %unsigned 1  PROG_SEQ_CODE_CLK         0x0
///                                    ###
///                                    * Clock needed to latch in the 10/60bit serial code on the rising edge prior to programming.
///                                    ###
///               %unsigned 1  SCLK                      0x0
///                                    ###
///                                    * Serial Clock. High period for program. Falling edge clocks out data to Dout
///                                    ###
///               %unsigned 1  PRDT                      0x1
///                                    ###
///                                    * Parallel read trigger. For alternative read protocol. Performs parallel read at rising edge. This parallel read operation is required prior to programming .
///                                    ###
///               %unsigned 1  POR_B                     0x1
///                                    ###
///                                    * Power-On-Reset. Active LOW.
///                                    ###
///               %unsigned 1  CSB                       0x1
///                                    ###
///                                    * Macro select
///                                    ###
///               %unsigned 1  PGM                       0x0
///                                    ###
///                                    * Programming mode control and selective bit program control.
///                                    ###
///               %unsigned 1  WPROT                     0x1
///                                    ###
///                                    * Programming protection signal.
///                                    * Must remain level in program/read state. For id_efuse_msb_sfb, if the number of match code bits is 60 bits, WPROT LOW enables the loading of PROG_SEQ_CODE into the match code register, WPROT HIGH resets the match code register. For id_efuse_lsb, if the number of match code bits is 60 bits, WPROT LOW enables the loading of PROG_SEQ_CODE into the match code register, WPROT HIGH keeps the old value of the match code register.
///                                    ###
///               %unsigned 4  TEST                      0xA
///                                    ###
///                                    * These control internal circuit settings for optimum VDD min/ VHV min performance. They are similar to RTC settings in SRAM. TEST[3:0] should be registered and modifiable by firmware or software.
///                                    * Default settings: GSVT 0101, GHVT 1101, LPSVT1010, LPHVT 1010, LPMSVT 1010, LPMHVT 1010.
///                                    ###
///               %%        20         # Stuffing bits...
///     @ 0x00004 status_match         (R-)
///               ###
///               * EFUSE status0 register
///               ###
///               %unsigned 1  MATCH_VALUE               
///                                    ###
///                                    * MATCH signal is available when the number of match code bits is 60 bits. MATCH=HIGH indicates that the input code is matched. MATCH=LOW indicates that the input code is not matched.
///                                    ###
///               %%        31         # Stuffing bits...
///     @ 0x00008 status_qout          (R-)
///               ###
///               * EFUSE status1 register: 257-bits Parallel Data out register
///               ###
///               %unsigned 32 QOUT_31_0                 
///     # 0x0000C status_qout1         
///               %unsigned 32 QOUT_63_32                
///     # 0x00010 status_qout2         
///               %unsigned 32 QOUT_95_64                
///     # 0x00014 status_qout3         
///               %unsigned 32 QOUT_127_96               
///     # 0x00018 status_qout4         
///               %unsigned 32 QOUT_159_128              
///     # 0x0001C status_qout5         
///               %unsigned 32 QOUT_191_160              
///     # 0x00020 status_qout6         
///               %unsigned 32 QOUT_223_192              
///     # 0x00024 status_qout7         
///               %unsigned 32 QOUT_255_224              
///     # 0x00028 status_qout8         
///               %unsigned 17 QOUT_272_256              
///               %%        15         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:      44B, bits:     286b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_efuse
#define h_efuse (){}

    #define     RA_efuse_ctrl                                  0x0000

    #define     BA_efuse_ctrl_PROG_SEQ_CODE                    0x0000
    #define     B16efuse_ctrl_PROG_SEQ_CODE                    0x0000
    #define   LSb32efuse_ctrl_PROG_SEQ_CODE                       0
    #define   LSb16efuse_ctrl_PROG_SEQ_CODE                       0
    #define       befuse_ctrl_PROG_SEQ_CODE                    1
    #define   MSK32efuse_ctrl_PROG_SEQ_CODE                       0x00000001

    #define     BA_efuse_ctrl_PROG_SEQ_CODE_CLK                0x0000
    #define     B16efuse_ctrl_PROG_SEQ_CODE_CLK                0x0000
    #define   LSb32efuse_ctrl_PROG_SEQ_CODE_CLK                   1
    #define   LSb16efuse_ctrl_PROG_SEQ_CODE_CLK                   1
    #define       befuse_ctrl_PROG_SEQ_CODE_CLK                1
    #define   MSK32efuse_ctrl_PROG_SEQ_CODE_CLK                   0x00000002

    #define     BA_efuse_ctrl_SCLK                             0x0000
    #define     B16efuse_ctrl_SCLK                             0x0000
    #define   LSb32efuse_ctrl_SCLK                                2
    #define   LSb16efuse_ctrl_SCLK                                2
    #define       befuse_ctrl_SCLK                             1
    #define   MSK32efuse_ctrl_SCLK                                0x00000004

    #define     BA_efuse_ctrl_PRDT                             0x0000
    #define     B16efuse_ctrl_PRDT                             0x0000
    #define   LSb32efuse_ctrl_PRDT                                3
    #define   LSb16efuse_ctrl_PRDT                                3
    #define       befuse_ctrl_PRDT                             1
    #define   MSK32efuse_ctrl_PRDT                                0x00000008

    #define     BA_efuse_ctrl_POR_B                            0x0000
    #define     B16efuse_ctrl_POR_B                            0x0000
    #define   LSb32efuse_ctrl_POR_B                               4
    #define   LSb16efuse_ctrl_POR_B                               4
    #define       befuse_ctrl_POR_B                            1
    #define   MSK32efuse_ctrl_POR_B                               0x00000010

    #define     BA_efuse_ctrl_CSB                              0x0000
    #define     B16efuse_ctrl_CSB                              0x0000
    #define   LSb32efuse_ctrl_CSB                                 5
    #define   LSb16efuse_ctrl_CSB                                 5
    #define       befuse_ctrl_CSB                              1
    #define   MSK32efuse_ctrl_CSB                                 0x00000020

    #define     BA_efuse_ctrl_PGM                              0x0000
    #define     B16efuse_ctrl_PGM                              0x0000
    #define   LSb32efuse_ctrl_PGM                                 6
    #define   LSb16efuse_ctrl_PGM                                 6
    #define       befuse_ctrl_PGM                              1
    #define   MSK32efuse_ctrl_PGM                                 0x00000040

    #define     BA_efuse_ctrl_WPROT                            0x0000
    #define     B16efuse_ctrl_WPROT                            0x0000
    #define   LSb32efuse_ctrl_WPROT                               7
    #define   LSb16efuse_ctrl_WPROT                               7
    #define       befuse_ctrl_WPROT                            1
    #define   MSK32efuse_ctrl_WPROT                               0x00000080

    #define     BA_efuse_ctrl_TEST                             0x0001
    #define     B16efuse_ctrl_TEST                             0x0000
    #define   LSb32efuse_ctrl_TEST                                8
    #define   LSb16efuse_ctrl_TEST                                8
    #define       befuse_ctrl_TEST                             4
    #define   MSK32efuse_ctrl_TEST                                0x00000F00
    ///////////////////////////////////////////////////////////
    #define     RA_efuse_status_match                          0x0004

    #define     BA_efuse_status_match_MATCH_VALUE              0x0004
    #define     B16efuse_status_match_MATCH_VALUE              0x0004
    #define   LSb32efuse_status_match_MATCH_VALUE                 0
    #define   LSb16efuse_status_match_MATCH_VALUE                 0
    #define       befuse_status_match_MATCH_VALUE              1
    #define   MSK32efuse_status_match_MATCH_VALUE                 0x00000001
    ///////////////////////////////////////////////////////////
    #define     RA_efuse_status_qout                           0x0008

    #define     BA_efuse_status_qout_QOUT_31_0                 0x0008
    #define     B16efuse_status_qout_QOUT_31_0                 0x0008
    #define   LSb32efuse_status_qout_QOUT_31_0                    0
    #define   LSb16efuse_status_qout_QOUT_31_0                    0
    #define       befuse_status_qout_QOUT_31_0                 32
    #define   MSK32efuse_status_qout_QOUT_31_0                    0xFFFFFFFF

    #define     RA_efuse_status_qout1                          0x000C

    #define     BA_efuse_status_qout_QOUT_63_32                0x000C
    #define     B16efuse_status_qout_QOUT_63_32                0x000C
    #define   LSb32efuse_status_qout_QOUT_63_32                   0
    #define   LSb16efuse_status_qout_QOUT_63_32                   0
    #define       befuse_status_qout_QOUT_63_32                32
    #define   MSK32efuse_status_qout_QOUT_63_32                   0xFFFFFFFF

    #define     RA_efuse_status_qout2                          0x0010

    #define     BA_efuse_status_qout_QOUT_95_64                0x0010
    #define     B16efuse_status_qout_QOUT_95_64                0x0010
    #define   LSb32efuse_status_qout_QOUT_95_64                   0
    #define   LSb16efuse_status_qout_QOUT_95_64                   0
    #define       befuse_status_qout_QOUT_95_64                32
    #define   MSK32efuse_status_qout_QOUT_95_64                   0xFFFFFFFF

    #define     RA_efuse_status_qout3                          0x0014

    #define     BA_efuse_status_qout_QOUT_127_96               0x0014
    #define     B16efuse_status_qout_QOUT_127_96               0x0014
    #define   LSb32efuse_status_qout_QOUT_127_96                  0
    #define   LSb16efuse_status_qout_QOUT_127_96                  0
    #define       befuse_status_qout_QOUT_127_96               32
    #define   MSK32efuse_status_qout_QOUT_127_96                  0xFFFFFFFF

    #define     RA_efuse_status_qout4                          0x0018

    #define     BA_efuse_status_qout_QOUT_159_128              0x0018
    #define     B16efuse_status_qout_QOUT_159_128              0x0018
    #define   LSb32efuse_status_qout_QOUT_159_128                 0
    #define   LSb16efuse_status_qout_QOUT_159_128                 0
    #define       befuse_status_qout_QOUT_159_128              32
    #define   MSK32efuse_status_qout_QOUT_159_128                 0xFFFFFFFF

    #define     RA_efuse_status_qout5                          0x001C

    #define     BA_efuse_status_qout_QOUT_191_160              0x001C
    #define     B16efuse_status_qout_QOUT_191_160              0x001C
    #define   LSb32efuse_status_qout_QOUT_191_160                 0
    #define   LSb16efuse_status_qout_QOUT_191_160                 0
    #define       befuse_status_qout_QOUT_191_160              32
    #define   MSK32efuse_status_qout_QOUT_191_160                 0xFFFFFFFF

    #define     RA_efuse_status_qout6                          0x0020

    #define     BA_efuse_status_qout_QOUT_223_192              0x0020
    #define     B16efuse_status_qout_QOUT_223_192              0x0020
    #define   LSb32efuse_status_qout_QOUT_223_192                 0
    #define   LSb16efuse_status_qout_QOUT_223_192                 0
    #define       befuse_status_qout_QOUT_223_192              32
    #define   MSK32efuse_status_qout_QOUT_223_192                 0xFFFFFFFF

    #define     RA_efuse_status_qout7                          0x0024

    #define     BA_efuse_status_qout_QOUT_255_224              0x0024
    #define     B16efuse_status_qout_QOUT_255_224              0x0024
    #define   LSb32efuse_status_qout_QOUT_255_224                 0
    #define   LSb16efuse_status_qout_QOUT_255_224                 0
    #define       befuse_status_qout_QOUT_255_224              32
    #define   MSK32efuse_status_qout_QOUT_255_224                 0xFFFFFFFF

    #define     RA_efuse_status_qout8                          0x0028

    #define     BA_efuse_status_qout_QOUT_272_256              0x0028
    #define     B16efuse_status_qout_QOUT_272_256              0x0028
    #define   LSb32efuse_status_qout_QOUT_272_256                 0
    #define   LSb16efuse_status_qout_QOUT_272_256                 0
    #define       befuse_status_qout_QOUT_272_256              17
    #define   MSK32efuse_status_qout_QOUT_272_256                 0x0001FFFF
    ///////////////////////////////////////////////////////////

    typedef struct SIE_efuse {
    ///////////////////////////////////////////////////////////
    #define   GET32efuse_ctrl_PROG_SEQ_CODE(r32)               _BFGET_(r32, 0, 0)
    #define   SET32efuse_ctrl_PROG_SEQ_CODE(r32,v)             _BFSET_(r32, 0, 0,v)
    #define   GET16efuse_ctrl_PROG_SEQ_CODE(r16)               _BFGET_(r16, 0, 0)
    #define   SET16efuse_ctrl_PROG_SEQ_CODE(r16,v)             _BFSET_(r16, 0, 0,v)

    #define   GET32efuse_ctrl_PROG_SEQ_CODE_CLK(r32)           _BFGET_(r32, 1, 1)
    #define   SET32efuse_ctrl_PROG_SEQ_CODE_CLK(r32,v)         _BFSET_(r32, 1, 1,v)
    #define   GET16efuse_ctrl_PROG_SEQ_CODE_CLK(r16)           _BFGET_(r16, 1, 1)
    #define   SET16efuse_ctrl_PROG_SEQ_CODE_CLK(r16,v)         _BFSET_(r16, 1, 1,v)

    #define   GET32efuse_ctrl_SCLK(r32)                        _BFGET_(r32, 2, 2)
    #define   SET32efuse_ctrl_SCLK(r32,v)                      _BFSET_(r32, 2, 2,v)
    #define   GET16efuse_ctrl_SCLK(r16)                        _BFGET_(r16, 2, 2)
    #define   SET16efuse_ctrl_SCLK(r16,v)                      _BFSET_(r16, 2, 2,v)

    #define   GET32efuse_ctrl_PRDT(r32)                        _BFGET_(r32, 3, 3)
    #define   SET32efuse_ctrl_PRDT(r32,v)                      _BFSET_(r32, 3, 3,v)
    #define   GET16efuse_ctrl_PRDT(r16)                        _BFGET_(r16, 3, 3)
    #define   SET16efuse_ctrl_PRDT(r16,v)                      _BFSET_(r16, 3, 3,v)

    #define   GET32efuse_ctrl_POR_B(r32)                       _BFGET_(r32, 4, 4)
    #define   SET32efuse_ctrl_POR_B(r32,v)                     _BFSET_(r32, 4, 4,v)
    #define   GET16efuse_ctrl_POR_B(r16)                       _BFGET_(r16, 4, 4)
    #define   SET16efuse_ctrl_POR_B(r16,v)                     _BFSET_(r16, 4, 4,v)

    #define   GET32efuse_ctrl_CSB(r32)                         _BFGET_(r32, 5, 5)
    #define   SET32efuse_ctrl_CSB(r32,v)                       _BFSET_(r32, 5, 5,v)
    #define   GET16efuse_ctrl_CSB(r16)                         _BFGET_(r16, 5, 5)
    #define   SET16efuse_ctrl_CSB(r16,v)                       _BFSET_(r16, 5, 5,v)

    #define   GET32efuse_ctrl_PGM(r32)                         _BFGET_(r32, 6, 6)
    #define   SET32efuse_ctrl_PGM(r32,v)                       _BFSET_(r32, 6, 6,v)
    #define   GET16efuse_ctrl_PGM(r16)                         _BFGET_(r16, 6, 6)
    #define   SET16efuse_ctrl_PGM(r16,v)                       _BFSET_(r16, 6, 6,v)

    #define   GET32efuse_ctrl_WPROT(r32)                       _BFGET_(r32, 7, 7)
    #define   SET32efuse_ctrl_WPROT(r32,v)                     _BFSET_(r32, 7, 7,v)
    #define   GET16efuse_ctrl_WPROT(r16)                       _BFGET_(r16, 7, 7)
    #define   SET16efuse_ctrl_WPROT(r16,v)                     _BFSET_(r16, 7, 7,v)

    #define   GET32efuse_ctrl_TEST(r32)                        _BFGET_(r32,11, 8)
    #define   SET32efuse_ctrl_TEST(r32,v)                      _BFSET_(r32,11, 8,v)
    #define   GET16efuse_ctrl_TEST(r16)                        _BFGET_(r16,11, 8)
    #define   SET16efuse_ctrl_TEST(r16,v)                      _BFSET_(r16,11, 8,v)

    #define     w32efuse_ctrl                                  {\
            UNSG32 uctrl_PROG_SEQ_CODE                         :  1;\
            UNSG32 uctrl_PROG_SEQ_CODE_CLK                     :  1;\
            UNSG32 uctrl_SCLK                                  :  1;\
            UNSG32 uctrl_PRDT                                  :  1;\
            UNSG32 uctrl_POR_B                                 :  1;\
            UNSG32 uctrl_CSB                                   :  1;\
            UNSG32 uctrl_PGM                                   :  1;\
            UNSG32 uctrl_WPROT                                 :  1;\
            UNSG32 uctrl_TEST                                  :  4;\
            UNSG32 RSVDx0_b12                                  : 20;\
          }
    union { UNSG32 u32efuse_ctrl;
            struct w32efuse_ctrl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32efuse_status_match_MATCH_VALUE(r32)         _BFGET_(r32, 0, 0)
    #define   SET32efuse_status_match_MATCH_VALUE(r32,v)       _BFSET_(r32, 0, 0,v)
    #define   GET16efuse_status_match_MATCH_VALUE(r16)         _BFGET_(r16, 0, 0)
    #define   SET16efuse_status_match_MATCH_VALUE(r16,v)       _BFSET_(r16, 0, 0,v)

    #define     w32efuse_status_match                          {\
            UNSG32 ustatus_match_MATCH_VALUE                   :  1;\
            UNSG32 RSVDx4_b1                                   : 31;\
          }
    union { UNSG32 u32efuse_status_match;
            struct w32efuse_status_match;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32efuse_status_qout_QOUT_31_0(r32)            _BFGET_(r32,31, 0)
    #define   SET32efuse_status_qout_QOUT_31_0(r32,v)          _BFSET_(r32,31, 0,v)

    #define     w32efuse_status_qout                           {\
            UNSG32 ustatus_qout_QOUT_31_0                      : 32;\
          }
    union { UNSG32 u32efuse_status_qout;
            struct w32efuse_status_qout;
          };
    #define   GET32efuse_status_qout_QOUT_63_32(r32)           _BFGET_(r32,31, 0)
    #define   SET32efuse_status_qout_QOUT_63_32(r32,v)         _BFSET_(r32,31, 0,v)

    #define     w32efuse_status_qout1                          {\
            UNSG32 ustatus_qout_QOUT_63_32                     : 32;\
          }
    union { UNSG32 u32efuse_status_qout1;
            struct w32efuse_status_qout1;
          };
    #define   GET32efuse_status_qout_QOUT_95_64(r32)           _BFGET_(r32,31, 0)
    #define   SET32efuse_status_qout_QOUT_95_64(r32,v)         _BFSET_(r32,31, 0,v)

    #define     w32efuse_status_qout2                          {\
            UNSG32 ustatus_qout_QOUT_95_64                     : 32;\
          }
    union { UNSG32 u32efuse_status_qout2;
            struct w32efuse_status_qout2;
          };
    #define   GET32efuse_status_qout_QOUT_127_96(r32)          _BFGET_(r32,31, 0)
    #define   SET32efuse_status_qout_QOUT_127_96(r32,v)        _BFSET_(r32,31, 0,v)

    #define     w32efuse_status_qout3                          {\
            UNSG32 ustatus_qout_QOUT_127_96                    : 32;\
          }
    union { UNSG32 u32efuse_status_qout3;
            struct w32efuse_status_qout3;
          };
    #define   GET32efuse_status_qout_QOUT_159_128(r32)         _BFGET_(r32,31, 0)
    #define   SET32efuse_status_qout_QOUT_159_128(r32,v)       _BFSET_(r32,31, 0,v)

    #define     w32efuse_status_qout4                          {\
            UNSG32 ustatus_qout_QOUT_159_128                   : 32;\
          }
    union { UNSG32 u32efuse_status_qout4;
            struct w32efuse_status_qout4;
          };
    #define   GET32efuse_status_qout_QOUT_191_160(r32)         _BFGET_(r32,31, 0)
    #define   SET32efuse_status_qout_QOUT_191_160(r32,v)       _BFSET_(r32,31, 0,v)

    #define     w32efuse_status_qout5                          {\
            UNSG32 ustatus_qout_QOUT_191_160                   : 32;\
          }
    union { UNSG32 u32efuse_status_qout5;
            struct w32efuse_status_qout5;
          };
    #define   GET32efuse_status_qout_QOUT_223_192(r32)         _BFGET_(r32,31, 0)
    #define   SET32efuse_status_qout_QOUT_223_192(r32,v)       _BFSET_(r32,31, 0,v)

    #define     w32efuse_status_qout6                          {\
            UNSG32 ustatus_qout_QOUT_223_192                   : 32;\
          }
    union { UNSG32 u32efuse_status_qout6;
            struct w32efuse_status_qout6;
          };
    #define   GET32efuse_status_qout_QOUT_255_224(r32)         _BFGET_(r32,31, 0)
    #define   SET32efuse_status_qout_QOUT_255_224(r32,v)       _BFSET_(r32,31, 0,v)

    #define     w32efuse_status_qout7                          {\
            UNSG32 ustatus_qout_QOUT_255_224                   : 32;\
          }
    union { UNSG32 u32efuse_status_qout7;
            struct w32efuse_status_qout7;
          };
    #define   GET32efuse_status_qout_QOUT_272_256(r32)         _BFGET_(r32,16, 0)
    #define   SET32efuse_status_qout_QOUT_272_256(r32,v)       _BFSET_(r32,16, 0,v)

    #define     w32efuse_status_qout8                          {\
            UNSG32 ustatus_qout_QOUT_272_256                   : 17;\
            UNSG32 RSVDx28_b17                                 : 15;\
          }
    union { UNSG32 u32efuse_status_qout8;
            struct w32efuse_status_qout8;
          };
    ///////////////////////////////////////////////////////////
    } SIE_efuse;

    typedef union  T32efuse_ctrl
          { UNSG32 u32;
            struct w32efuse_ctrl;
                 } T32efuse_ctrl;
    typedef union  T32efuse_status_match
          { UNSG32 u32;
            struct w32efuse_status_match;
                 } T32efuse_status_match;
    typedef union  T32efuse_status_qout
          { UNSG32 u32;
            struct w32efuse_status_qout;
                 } T32efuse_status_qout;
    typedef union  T32efuse_status_qout1
          { UNSG32 u32;
            struct w32efuse_status_qout1;
                 } T32efuse_status_qout1;
    typedef union  T32efuse_status_qout2
          { UNSG32 u32;
            struct w32efuse_status_qout2;
                 } T32efuse_status_qout2;
    typedef union  T32efuse_status_qout3
          { UNSG32 u32;
            struct w32efuse_status_qout3;
                 } T32efuse_status_qout3;
    typedef union  T32efuse_status_qout4
          { UNSG32 u32;
            struct w32efuse_status_qout4;
                 } T32efuse_status_qout4;
    typedef union  T32efuse_status_qout5
          { UNSG32 u32;
            struct w32efuse_status_qout5;
                 } T32efuse_status_qout5;
    typedef union  T32efuse_status_qout6
          { UNSG32 u32;
            struct w32efuse_status_qout6;
                 } T32efuse_status_qout6;
    typedef union  T32efuse_status_qout7
          { UNSG32 u32;
            struct w32efuse_status_qout7;
                 } T32efuse_status_qout7;
    typedef union  T32efuse_status_qout8
          { UNSG32 u32;
            struct w32efuse_status_qout8;
                 } T32efuse_status_qout8;
    ///////////////////////////////////////////////////////////

    typedef union  Tefuse_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32efuse_ctrl;
                   };
                 } Tefuse_ctrl;
    typedef union  Tefuse_status_match
          { UNSG32 u32[1];
            struct {
            struct w32efuse_status_match;
                   };
                 } Tefuse_status_match;
    typedef union  Tefuse_status_qout
          { UNSG32 u32[9];
            struct {
            struct w32efuse_status_qout;
            struct w32efuse_status_qout1;
            struct w32efuse_status_qout2;
            struct w32efuse_status_qout3;
            struct w32efuse_status_qout4;
            struct w32efuse_status_qout5;
            struct w32efuse_status_qout6;
            struct w32efuse_status_qout7;
            struct w32efuse_status_qout8;
                   };
                 } Tefuse_status_qout;

    ///////////////////////////////////////////////////////////
     SIGN32 efuse_drvrd(SIE_efuse *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 efuse_drvwr(SIE_efuse *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void efuse_reset(SIE_efuse *p);
     SIGN32 efuse_cmp  (SIE_efuse *p, SIE_efuse *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define efuse_check(p,pie,pfx,hLOG) efuse_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define efuse_print(p,    pfx,hLOG) efuse_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: efuse
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE PERIF                   biu              (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 PHY_DBG_CTRL         (P)
///               %unsigned 1  USB0_SATA_PHY_DBG         0x0
///                                    ###
///                                    * 0 : USB0 PHY MON selected
///                                    * 1: COMPHY PHY_DBG_TEST_BUS [9:0] selected for SATA/PCIE
///                                    ###
///               %%        31         # Stuffing bits...
///     @ 0x00004 USB_CTRL             (P)
///               %unsigned 1  DISABLE_EL16              0x0
///                                    ###
///                                    * 0: Not disable EL16 compliance
///                                    * 1: Disable EL 16 compliance
///                                    ###
///               %unsigned 2  CTRL_MODE                 0x0
///                                    ###
///                                    * 00 : For OTG mode
///                                    ###
///               %%        29         # Stuffing bits...
///     @ 0x00008 RSERVED_CTRL0        (P)
///               ###
///               * Not used, may be used for ECOs
///               * *INTERNAL_ONLY**
///               ###
///               %unsigned 32 ctrl                      0x0
///                                    ###
///                                    * Not used.
///                                    ###
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:      12B, bits:      36b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_PERIF
#define h_PERIF (){}

    #define     RA_PERIF_PHY_DBG_CTRL                          0x0000

    #define     BA_PERIF_PHY_DBG_CTRL_USB0_SATA_PHY_DBG        0x0000
    #define     B16PERIF_PHY_DBG_CTRL_USB0_SATA_PHY_DBG        0x0000
    #define   LSb32PERIF_PHY_DBG_CTRL_USB0_SATA_PHY_DBG           0
    #define   LSb16PERIF_PHY_DBG_CTRL_USB0_SATA_PHY_DBG           0
    #define       bPERIF_PHY_DBG_CTRL_USB0_SATA_PHY_DBG        1
    #define   MSK32PERIF_PHY_DBG_CTRL_USB0_SATA_PHY_DBG           0x00000001
    ///////////////////////////////////////////////////////////
    #define     RA_PERIF_USB_CTRL                              0x0004

    #define     BA_PERIF_USB_CTRL_DISABLE_EL16                 0x0004
    #define     B16PERIF_USB_CTRL_DISABLE_EL16                 0x0004
    #define   LSb32PERIF_USB_CTRL_DISABLE_EL16                    0
    #define   LSb16PERIF_USB_CTRL_DISABLE_EL16                    0
    #define       bPERIF_USB_CTRL_DISABLE_EL16                 1
    #define   MSK32PERIF_USB_CTRL_DISABLE_EL16                    0x00000001

    #define     BA_PERIF_USB_CTRL_CTRL_MODE                    0x0004
    #define     B16PERIF_USB_CTRL_CTRL_MODE                    0x0004
    #define   LSb32PERIF_USB_CTRL_CTRL_MODE                       1
    #define   LSb16PERIF_USB_CTRL_CTRL_MODE                       1
    #define       bPERIF_USB_CTRL_CTRL_MODE                    2
    #define   MSK32PERIF_USB_CTRL_CTRL_MODE                       0x00000006
    ///////////////////////////////////////////////////////////
    #define     RA_PERIF_RSERVED_CTRL0                         0x0008

    #define     BA_PERIF_RSERVED_CTRL0_ctrl                    0x0008
    #define     B16PERIF_RSERVED_CTRL0_ctrl                    0x0008
    #define   LSb32PERIF_RSERVED_CTRL0_ctrl                       0
    #define   LSb16PERIF_RSERVED_CTRL0_ctrl                       0
    #define       bPERIF_RSERVED_CTRL0_ctrl                    32
    #define   MSK32PERIF_RSERVED_CTRL0_ctrl                       0xFFFFFFFF
    ///////////////////////////////////////////////////////////

    typedef struct SIE_PERIF {
    ///////////////////////////////////////////////////////////
    #define   GET32PERIF_PHY_DBG_CTRL_USB0_SATA_PHY_DBG(r32)   _BFGET_(r32, 0, 0)
    #define   SET32PERIF_PHY_DBG_CTRL_USB0_SATA_PHY_DBG(r32,v) _BFSET_(r32, 0, 0,v)
    #define   GET16PERIF_PHY_DBG_CTRL_USB0_SATA_PHY_DBG(r16)   _BFGET_(r16, 0, 0)
    #define   SET16PERIF_PHY_DBG_CTRL_USB0_SATA_PHY_DBG(r16,v) _BFSET_(r16, 0, 0,v)

    #define     w32PERIF_PHY_DBG_CTRL                          {\
            UNSG32 uPHY_DBG_CTRL_USB0_SATA_PHY_DBG             :  1;\
            UNSG32 RSVDx0_b1                                   : 31;\
          }
    union { UNSG32 u32PERIF_PHY_DBG_CTRL;
            struct w32PERIF_PHY_DBG_CTRL;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32PERIF_USB_CTRL_DISABLE_EL16(r32)            _BFGET_(r32, 0, 0)
    #define   SET32PERIF_USB_CTRL_DISABLE_EL16(r32,v)          _BFSET_(r32, 0, 0,v)
    #define   GET16PERIF_USB_CTRL_DISABLE_EL16(r16)            _BFGET_(r16, 0, 0)
    #define   SET16PERIF_USB_CTRL_DISABLE_EL16(r16,v)          _BFSET_(r16, 0, 0,v)

    #define   GET32PERIF_USB_CTRL_CTRL_MODE(r32)               _BFGET_(r32, 2, 1)
    #define   SET32PERIF_USB_CTRL_CTRL_MODE(r32,v)             _BFSET_(r32, 2, 1,v)
    #define   GET16PERIF_USB_CTRL_CTRL_MODE(r16)               _BFGET_(r16, 2, 1)
    #define   SET16PERIF_USB_CTRL_CTRL_MODE(r16,v)             _BFSET_(r16, 2, 1,v)

    #define     w32PERIF_USB_CTRL                              {\
            UNSG32 uUSB_CTRL_DISABLE_EL16                      :  1;\
            UNSG32 uUSB_CTRL_CTRL_MODE                         :  2;\
            UNSG32 RSVDx4_b3                                   : 29;\
          }
    union { UNSG32 u32PERIF_USB_CTRL;
            struct w32PERIF_USB_CTRL;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32PERIF_RSERVED_CTRL0_ctrl(r32)               _BFGET_(r32,31, 0)
    #define   SET32PERIF_RSERVED_CTRL0_ctrl(r32,v)             _BFSET_(r32,31, 0,v)

    #define     w32PERIF_RSERVED_CTRL0                         {\
            UNSG32 uRSERVED_CTRL0_ctrl                         : 32;\
          }
    union { UNSG32 u32PERIF_RSERVED_CTRL0;
            struct w32PERIF_RSERVED_CTRL0;
          };
    ///////////////////////////////////////////////////////////
    } SIE_PERIF;

    typedef union  T32PERIF_PHY_DBG_CTRL
          { UNSG32 u32;
            struct w32PERIF_PHY_DBG_CTRL;
                 } T32PERIF_PHY_DBG_CTRL;
    typedef union  T32PERIF_USB_CTRL
          { UNSG32 u32;
            struct w32PERIF_USB_CTRL;
                 } T32PERIF_USB_CTRL;
    typedef union  T32PERIF_RSERVED_CTRL0
          { UNSG32 u32;
            struct w32PERIF_RSERVED_CTRL0;
                 } T32PERIF_RSERVED_CTRL0;
    ///////////////////////////////////////////////////////////

    typedef union  TPERIF_PHY_DBG_CTRL
          { UNSG32 u32[1];
            struct {
            struct w32PERIF_PHY_DBG_CTRL;
                   };
                 } TPERIF_PHY_DBG_CTRL;
    typedef union  TPERIF_USB_CTRL
          { UNSG32 u32[1];
            struct {
            struct w32PERIF_USB_CTRL;
                   };
                 } TPERIF_USB_CTRL;
    typedef union  TPERIF_RSERVED_CTRL0
          { UNSG32 u32[1];
            struct {
            struct w32PERIF_RSERVED_CTRL0;
                   };
                 } TPERIF_RSERVED_CTRL0;

    ///////////////////////////////////////////////////////////
     SIGN32 PERIF_drvrd(SIE_PERIF *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 PERIF_drvwr(SIE_PERIF *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void PERIF_reset(SIE_PERIF *p);
     SIGN32 PERIF_cmp  (SIE_PERIF *p, SIE_PERIF *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define PERIF_check(p,pie,pfx,hLOG) PERIF_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define PERIF_print(p,    pfx,hLOG) PERIF_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: PERIF
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE padRing                                  (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (P-)
///               %unsigned 1  REG_PDB_CORE              0x1
///                                    : NORMAL                    0x1
///                                    : PWRDN                     0x0
///                                                 ###
///                                                 * When REG_PDB_CORE is logic '1', the regulator works in normal mode and consumes ~60uA current at typical 25degC. When REG_PDB_CORE is logic '0', the regulator works in power-down mode and consumes ~6uA current at typical 25degC.
///                                                 ###
///               %unsigned 1  REF_INT_EN                0x1
///                                    : NORMAL                    0x1
///                                    : REF_DOWN                  0x0
///                                                 ###
///                                                 * When REF_INT_EN='1', REF/REF_FT is generated internally. When REF_INT_EN='0', the internal REF circuit is powered down and the REF signal is brought down to 0.
///                                                 * Since we do not use HSIN pads in bg2dtv, we do not use this setting.
///                                                 ###
///               %unsigned 1  V18EN_CORE                0x0
///               %unsigned 1  V25EN_CORE                0x0
///                                    ###
///                                    * V18EN_CORE and V25EN_CORE are settings for different IO supply level
///                                    * V18EN_CORE=0,V25EN_CORE=0 : 3.3V
///                                    * V18EN_CORE=0,V25EN_CORE=1 : 2.5V
///                                    * V18EN_CORE=1,V25EN_CORE=X : 1.5V, 1.5V or 1.8V
///                                    ###
///               %unsigned 4  ZP                        0x0
///                                    ###
///                                    * ZP[3:0] is used to program PMOS output driver strength for PADXDC_HSIOB. ZP[3:0]='1111' is the strongest setting.
///                                    ###
///               %unsigned 4  ZN                        0x0
///                                    ###
///                                    * ZN[3:0] is used to program NMOS output driver strength for PADXDC_HSIOB. ZN[3:0]='1111' is the strongest setting.
///                                    ###
///               %unsigned 4  CAL_ZP                    0x0
///                                    ###
///                                    * ZN / ZP signals for calibration pad.
///                                    * ZN / ZP signals of the output impedance calibration pad and the functional I/O pad should be separated.
///                                    ###
///               %unsigned 4  CAL_ZN                    0x0
///                                    ###
///                                    * ZN / ZP signals for calibration pad.
///                                    * ZN / ZP signals of the output impedance calibration pad and the functional I/O pad should be separated.
///                                    ###
///               %unsigned 1  CAL_P_EN                  0x0
///                                    ###
///                                    * CAL_P_EN is active high core signal. Needs to be asserted high to start the PMOS driver calibration
///                                    ###
///               %unsigned 1  CAL_N_EN                  0x0
///                                    ###
///                                    * CAL_N_EN is active high core signal. Needs to be asserted high to start the NMOS driver calibration. PMOS driver has to be calibrated first, and ZP_AFT_CAL[3:0] need to be set to the calibrated PMOS settings before CAL_N_EN is asserted high
///                                    ###
///               %unsigned 1  ODR_EN                    0x1
///                                    ###
///                                    * When off-chip resistor is used, please set ODR_EN=0. When internal resistor is used for calibration, please set ODR_EN=1 and choose a proper ODR[2:0] setting to achieve desired driver strength.
///                                    ###
///               %unsigned 3  ODR                       0x0
///                                    ###
///                                    * ODR[2:0] is used to adjust the internal reference resistor value for calibration without external resistor. ODR_EN need to be set to '1' to enable internal resistor.
///                                    ###
///               %unsigned 4  ZP_AFT_CAL                0x0
///                                    ###
///                                    * ZP_AFT_CAL[3:0] are active high signals at the core signal level. They should be fed in by the registers that stores the settings after the PMOS driver calibration
///                                    ###
///               %%        2          # Stuffing bits...
///     @ 0x00004 status               (R-)
///               %unsigned 1  CAL_P_INC                 
///                                    ###
///                                    * CAL_P_INC is the output of the comparator. When the pad voltage is lower than the internal reference voltage, CAL_P_INC is high (i.e. the output impedance of PMOS is higher than the desired impedance).
///                                    * In a calibration loop, CAL_P_INC high can be interpreted as a signal to increment ZP[3:0].
///                                    ###
///               %unsigned 1  CAL_N_INC                 
///                                    ###
///                                    * CAL_N_INC is the output of the comparator. When the pad voltage is higher than the internal reference voltage, CAL_N_INC is high (i.e. the output impedance of NMOS is higher than the desired impedance). In a calibration loop, CAL_N_INC high can be interpreted as a signal to increment ZN[3:0].
///                                    ###
///               %%        30         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:       8B, bits:      32b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_padRing
#define h_padRing (){}

    #define     RA_padRing_ctrl                                0x0000

    #define     BA_padRing_ctrl_REG_PDB_CORE                   0x0000
    #define     B16padRing_ctrl_REG_PDB_CORE                   0x0000
    #define   LSb32padRing_ctrl_REG_PDB_CORE                      0
    #define   LSb16padRing_ctrl_REG_PDB_CORE                      0
    #define       bpadRing_ctrl_REG_PDB_CORE                   1
    #define   MSK32padRing_ctrl_REG_PDB_CORE                      0x00000001
    #define        padRing_ctrl_REG_PDB_CORE_NORMAL                         0x1
    #define        padRing_ctrl_REG_PDB_CORE_PWRDN                          0x0

    #define     BA_padRing_ctrl_REF_INT_EN                     0x0000
    #define     B16padRing_ctrl_REF_INT_EN                     0x0000
    #define   LSb32padRing_ctrl_REF_INT_EN                        1
    #define   LSb16padRing_ctrl_REF_INT_EN                        1
    #define       bpadRing_ctrl_REF_INT_EN                     1
    #define   MSK32padRing_ctrl_REF_INT_EN                        0x00000002
    #define        padRing_ctrl_REF_INT_EN_NORMAL                           0x1
    #define        padRing_ctrl_REF_INT_EN_REF_DOWN                         0x0

    #define     BA_padRing_ctrl_V18EN_CORE                     0x0000
    #define     B16padRing_ctrl_V18EN_CORE                     0x0000
    #define   LSb32padRing_ctrl_V18EN_CORE                        2
    #define   LSb16padRing_ctrl_V18EN_CORE                        2
    #define       bpadRing_ctrl_V18EN_CORE                     1
    #define   MSK32padRing_ctrl_V18EN_CORE                        0x00000004

    #define     BA_padRing_ctrl_V25EN_CORE                     0x0000
    #define     B16padRing_ctrl_V25EN_CORE                     0x0000
    #define   LSb32padRing_ctrl_V25EN_CORE                        3
    #define   LSb16padRing_ctrl_V25EN_CORE                        3
    #define       bpadRing_ctrl_V25EN_CORE                     1
    #define   MSK32padRing_ctrl_V25EN_CORE                        0x00000008

    #define     BA_padRing_ctrl_ZP                             0x0000
    #define     B16padRing_ctrl_ZP                             0x0000
    #define   LSb32padRing_ctrl_ZP                                4
    #define   LSb16padRing_ctrl_ZP                                4
    #define       bpadRing_ctrl_ZP                             4
    #define   MSK32padRing_ctrl_ZP                                0x000000F0

    #define     BA_padRing_ctrl_ZN                             0x0001
    #define     B16padRing_ctrl_ZN                             0x0000
    #define   LSb32padRing_ctrl_ZN                                8
    #define   LSb16padRing_ctrl_ZN                                8
    #define       bpadRing_ctrl_ZN                             4
    #define   MSK32padRing_ctrl_ZN                                0x00000F00

    #define     BA_padRing_ctrl_CAL_ZP                         0x0001
    #define     B16padRing_ctrl_CAL_ZP                         0x0000
    #define   LSb32padRing_ctrl_CAL_ZP                            12
    #define   LSb16padRing_ctrl_CAL_ZP                            12
    #define       bpadRing_ctrl_CAL_ZP                         4
    #define   MSK32padRing_ctrl_CAL_ZP                            0x0000F000

    #define     BA_padRing_ctrl_CAL_ZN                         0x0002
    #define     B16padRing_ctrl_CAL_ZN                         0x0002
    #define   LSb32padRing_ctrl_CAL_ZN                            16
    #define   LSb16padRing_ctrl_CAL_ZN                            0
    #define       bpadRing_ctrl_CAL_ZN                         4
    #define   MSK32padRing_ctrl_CAL_ZN                            0x000F0000

    #define     BA_padRing_ctrl_CAL_P_EN                       0x0002
    #define     B16padRing_ctrl_CAL_P_EN                       0x0002
    #define   LSb32padRing_ctrl_CAL_P_EN                          20
    #define   LSb16padRing_ctrl_CAL_P_EN                          4
    #define       bpadRing_ctrl_CAL_P_EN                       1
    #define   MSK32padRing_ctrl_CAL_P_EN                          0x00100000

    #define     BA_padRing_ctrl_CAL_N_EN                       0x0002
    #define     B16padRing_ctrl_CAL_N_EN                       0x0002
    #define   LSb32padRing_ctrl_CAL_N_EN                          21
    #define   LSb16padRing_ctrl_CAL_N_EN                          5
    #define       bpadRing_ctrl_CAL_N_EN                       1
    #define   MSK32padRing_ctrl_CAL_N_EN                          0x00200000

    #define     BA_padRing_ctrl_ODR_EN                         0x0002
    #define     B16padRing_ctrl_ODR_EN                         0x0002
    #define   LSb32padRing_ctrl_ODR_EN                            22
    #define   LSb16padRing_ctrl_ODR_EN                            6
    #define       bpadRing_ctrl_ODR_EN                         1
    #define   MSK32padRing_ctrl_ODR_EN                            0x00400000

    #define     BA_padRing_ctrl_ODR                            0x0002
    #define     B16padRing_ctrl_ODR                            0x0002
    #define   LSb32padRing_ctrl_ODR                               23
    #define   LSb16padRing_ctrl_ODR                               7
    #define       bpadRing_ctrl_ODR                            3
    #define   MSK32padRing_ctrl_ODR                               0x03800000

    #define     BA_padRing_ctrl_ZP_AFT_CAL                     0x0003
    #define     B16padRing_ctrl_ZP_AFT_CAL                     0x0002
    #define   LSb32padRing_ctrl_ZP_AFT_CAL                        26
    #define   LSb16padRing_ctrl_ZP_AFT_CAL                        10
    #define       bpadRing_ctrl_ZP_AFT_CAL                     4
    #define   MSK32padRing_ctrl_ZP_AFT_CAL                        0x3C000000
    ///////////////////////////////////////////////////////////
    #define     RA_padRing_status                              0x0004

    #define     BA_padRing_status_CAL_P_INC                    0x0004
    #define     B16padRing_status_CAL_P_INC                    0x0004
    #define   LSb32padRing_status_CAL_P_INC                       0
    #define   LSb16padRing_status_CAL_P_INC                       0
    #define       bpadRing_status_CAL_P_INC                    1
    #define   MSK32padRing_status_CAL_P_INC                       0x00000001

    #define     BA_padRing_status_CAL_N_INC                    0x0004
    #define     B16padRing_status_CAL_N_INC                    0x0004
    #define   LSb32padRing_status_CAL_N_INC                       1
    #define   LSb16padRing_status_CAL_N_INC                       1
    #define       bpadRing_status_CAL_N_INC                    1
    #define   MSK32padRing_status_CAL_N_INC                       0x00000002
    ///////////////////////////////////////////////////////////

    typedef struct SIE_padRing {
    ///////////////////////////////////////////////////////////
    #define   GET32padRing_ctrl_REG_PDB_CORE(r32)              _BFGET_(r32, 0, 0)
    #define   SET32padRing_ctrl_REG_PDB_CORE(r32,v)            _BFSET_(r32, 0, 0,v)
    #define   GET16padRing_ctrl_REG_PDB_CORE(r16)              _BFGET_(r16, 0, 0)
    #define   SET16padRing_ctrl_REG_PDB_CORE(r16,v)            _BFSET_(r16, 0, 0,v)

    #define   GET32padRing_ctrl_REF_INT_EN(r32)                _BFGET_(r32, 1, 1)
    #define   SET32padRing_ctrl_REF_INT_EN(r32,v)              _BFSET_(r32, 1, 1,v)
    #define   GET16padRing_ctrl_REF_INT_EN(r16)                _BFGET_(r16, 1, 1)
    #define   SET16padRing_ctrl_REF_INT_EN(r16,v)              _BFSET_(r16, 1, 1,v)

    #define   GET32padRing_ctrl_V18EN_CORE(r32)                _BFGET_(r32, 2, 2)
    #define   SET32padRing_ctrl_V18EN_CORE(r32,v)              _BFSET_(r32, 2, 2,v)
    #define   GET16padRing_ctrl_V18EN_CORE(r16)                _BFGET_(r16, 2, 2)
    #define   SET16padRing_ctrl_V18EN_CORE(r16,v)              _BFSET_(r16, 2, 2,v)

    #define   GET32padRing_ctrl_V25EN_CORE(r32)                _BFGET_(r32, 3, 3)
    #define   SET32padRing_ctrl_V25EN_CORE(r32,v)              _BFSET_(r32, 3, 3,v)
    #define   GET16padRing_ctrl_V25EN_CORE(r16)                _BFGET_(r16, 3, 3)
    #define   SET16padRing_ctrl_V25EN_CORE(r16,v)              _BFSET_(r16, 3, 3,v)

    #define   GET32padRing_ctrl_ZP(r32)                        _BFGET_(r32, 7, 4)
    #define   SET32padRing_ctrl_ZP(r32,v)                      _BFSET_(r32, 7, 4,v)
    #define   GET16padRing_ctrl_ZP(r16)                        _BFGET_(r16, 7, 4)
    #define   SET16padRing_ctrl_ZP(r16,v)                      _BFSET_(r16, 7, 4,v)

    #define   GET32padRing_ctrl_ZN(r32)                        _BFGET_(r32,11, 8)
    #define   SET32padRing_ctrl_ZN(r32,v)                      _BFSET_(r32,11, 8,v)
    #define   GET16padRing_ctrl_ZN(r16)                        _BFGET_(r16,11, 8)
    #define   SET16padRing_ctrl_ZN(r16,v)                      _BFSET_(r16,11, 8,v)

    #define   GET32padRing_ctrl_CAL_ZP(r32)                    _BFGET_(r32,15,12)
    #define   SET32padRing_ctrl_CAL_ZP(r32,v)                  _BFSET_(r32,15,12,v)
    #define   GET16padRing_ctrl_CAL_ZP(r16)                    _BFGET_(r16,15,12)
    #define   SET16padRing_ctrl_CAL_ZP(r16,v)                  _BFSET_(r16,15,12,v)

    #define   GET32padRing_ctrl_CAL_ZN(r32)                    _BFGET_(r32,19,16)
    #define   SET32padRing_ctrl_CAL_ZN(r32,v)                  _BFSET_(r32,19,16,v)
    #define   GET16padRing_ctrl_CAL_ZN(r16)                    _BFGET_(r16, 3, 0)
    #define   SET16padRing_ctrl_CAL_ZN(r16,v)                  _BFSET_(r16, 3, 0,v)

    #define   GET32padRing_ctrl_CAL_P_EN(r32)                  _BFGET_(r32,20,20)
    #define   SET32padRing_ctrl_CAL_P_EN(r32,v)                _BFSET_(r32,20,20,v)
    #define   GET16padRing_ctrl_CAL_P_EN(r16)                  _BFGET_(r16, 4, 4)
    #define   SET16padRing_ctrl_CAL_P_EN(r16,v)                _BFSET_(r16, 4, 4,v)

    #define   GET32padRing_ctrl_CAL_N_EN(r32)                  _BFGET_(r32,21,21)
    #define   SET32padRing_ctrl_CAL_N_EN(r32,v)                _BFSET_(r32,21,21,v)
    #define   GET16padRing_ctrl_CAL_N_EN(r16)                  _BFGET_(r16, 5, 5)
    #define   SET16padRing_ctrl_CAL_N_EN(r16,v)                _BFSET_(r16, 5, 5,v)

    #define   GET32padRing_ctrl_ODR_EN(r32)                    _BFGET_(r32,22,22)
    #define   SET32padRing_ctrl_ODR_EN(r32,v)                  _BFSET_(r32,22,22,v)
    #define   GET16padRing_ctrl_ODR_EN(r16)                    _BFGET_(r16, 6, 6)
    #define   SET16padRing_ctrl_ODR_EN(r16,v)                  _BFSET_(r16, 6, 6,v)

    #define   GET32padRing_ctrl_ODR(r32)                       _BFGET_(r32,25,23)
    #define   SET32padRing_ctrl_ODR(r32,v)                     _BFSET_(r32,25,23,v)
    #define   GET16padRing_ctrl_ODR(r16)                       _BFGET_(r16, 9, 7)
    #define   SET16padRing_ctrl_ODR(r16,v)                     _BFSET_(r16, 9, 7,v)

    #define   GET32padRing_ctrl_ZP_AFT_CAL(r32)                _BFGET_(r32,29,26)
    #define   SET32padRing_ctrl_ZP_AFT_CAL(r32,v)              _BFSET_(r32,29,26,v)
    #define   GET16padRing_ctrl_ZP_AFT_CAL(r16)                _BFGET_(r16,13,10)
    #define   SET16padRing_ctrl_ZP_AFT_CAL(r16,v)              _BFSET_(r16,13,10,v)

    #define     w32padRing_ctrl                                {\
            UNSG32 uctrl_REG_PDB_CORE                          :  1;\
            UNSG32 uctrl_REF_INT_EN                            :  1;\
            UNSG32 uctrl_V18EN_CORE                            :  1;\
            UNSG32 uctrl_V25EN_CORE                            :  1;\
            UNSG32 uctrl_ZP                                    :  4;\
            UNSG32 uctrl_ZN                                    :  4;\
            UNSG32 uctrl_CAL_ZP                                :  4;\
            UNSG32 uctrl_CAL_ZN                                :  4;\
            UNSG32 uctrl_CAL_P_EN                              :  1;\
            UNSG32 uctrl_CAL_N_EN                              :  1;\
            UNSG32 uctrl_ODR_EN                                :  1;\
            UNSG32 uctrl_ODR                                   :  3;\
            UNSG32 uctrl_ZP_AFT_CAL                            :  4;\
            UNSG32 RSVDx0_b30                                  :  2;\
          }
    union { UNSG32 u32padRing_ctrl;
            struct w32padRing_ctrl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32padRing_status_CAL_P_INC(r32)               _BFGET_(r32, 0, 0)
    #define   SET32padRing_status_CAL_P_INC(r32,v)             _BFSET_(r32, 0, 0,v)
    #define   GET16padRing_status_CAL_P_INC(r16)               _BFGET_(r16, 0, 0)
    #define   SET16padRing_status_CAL_P_INC(r16,v)             _BFSET_(r16, 0, 0,v)

    #define   GET32padRing_status_CAL_N_INC(r32)               _BFGET_(r32, 1, 1)
    #define   SET32padRing_status_CAL_N_INC(r32,v)             _BFSET_(r32, 1, 1,v)
    #define   GET16padRing_status_CAL_N_INC(r16)               _BFGET_(r16, 1, 1)
    #define   SET16padRing_status_CAL_N_INC(r16,v)             _BFSET_(r16, 1, 1,v)

    #define     w32padRing_status                              {\
            UNSG32 ustatus_CAL_P_INC                           :  1;\
            UNSG32 ustatus_CAL_N_INC                           :  1;\
            UNSG32 RSVDx4_b2                                   : 30;\
          }
    union { UNSG32 u32padRing_status;
            struct w32padRing_status;
          };
    ///////////////////////////////////////////////////////////
    } SIE_padRing;

    typedef union  T32padRing_ctrl
          { UNSG32 u32;
            struct w32padRing_ctrl;
                 } T32padRing_ctrl;
    typedef union  T32padRing_status
          { UNSG32 u32;
            struct w32padRing_status;
                 } T32padRing_status;
    ///////////////////////////////////////////////////////////

    typedef union  TpadRing_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32padRing_ctrl;
                   };
                 } TpadRing_ctrl;
    typedef union  TpadRing_status
          { UNSG32 u32[1];
            struct {
            struct w32padRing_status;
                   };
                 } TpadRing_status;

    ///////////////////////////////////////////////////////////
     SIGN32 padRing_drvrd(SIE_padRing *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 padRing_drvwr(SIE_padRing *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void padRing_reset(SIE_padRing *p);
     SIGN32 padRing_cmp  (SIE_padRing *p, SIE_padRing *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define padRing_check(p,pie,pfx,hLOG) padRing_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define padRing_print(p,    pfx,hLOG) padRing_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: padRing
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE padRingHS                                (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (P-)
///               %unsigned 1  PDB_LV                    0x1
///                                    : NORMAL                    0x1
///                                    : PWRDN                     0x0
///               %unsigned 1  V18EN_CORE                0x0
///               %unsigned 1  V25EN_CORE                0x0
///                                    ###
///                                    * V18EN_CORE and V25EN_CORE are settings for different IO supply level
///                                    * V18EN_CORE=0,V25EN_CORE=0 : 3.3V
///                                    * V18EN_CORE=0,V25EN_CORE=1 : 2.5V
///                                    * V18EN_CORE=1,V25EN_CORE=X : 1.5V, 1.5V or 1.8V
///                                    ###
///               %unsigned 3  ZP                        0x0
///               %unsigned 3  ZN                        0x0
///               %unsigned 3  CAL_ZP                    0x0
///               %unsigned 3  CAL_ZN                    0x0
///               %unsigned 3  CAL_RON_ADJ               0x0
///               %unsigned 1  CAL_EN                    0x0
///               %unsigned 1  CAL_DO                    0x0
///               %%        12         # Stuffing bits...
///     @ 0x00004 status               (R-)
///               %unsigned 1  CAL_INC                   
///               %%        31         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:       8B, bits:      21b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_padRingHS
#define h_padRingHS (){}

    #define     RA_padRingHS_ctrl                              0x0000

    #define     BA_padRingHS_ctrl_PDB_LV                       0x0000
    #define     B16padRingHS_ctrl_PDB_LV                       0x0000
    #define   LSb32padRingHS_ctrl_PDB_LV                          0
    #define   LSb16padRingHS_ctrl_PDB_LV                          0
    #define       bpadRingHS_ctrl_PDB_LV                       1
    #define   MSK32padRingHS_ctrl_PDB_LV                          0x00000001
    #define        padRingHS_ctrl_PDB_LV_NORMAL                             0x1
    #define        padRingHS_ctrl_PDB_LV_PWRDN                              0x0

    #define     BA_padRingHS_ctrl_V18EN_CORE                   0x0000
    #define     B16padRingHS_ctrl_V18EN_CORE                   0x0000
    #define   LSb32padRingHS_ctrl_V18EN_CORE                      1
    #define   LSb16padRingHS_ctrl_V18EN_CORE                      1
    #define       bpadRingHS_ctrl_V18EN_CORE                   1
    #define   MSK32padRingHS_ctrl_V18EN_CORE                      0x00000002

    #define     BA_padRingHS_ctrl_V25EN_CORE                   0x0000
    #define     B16padRingHS_ctrl_V25EN_CORE                   0x0000
    #define   LSb32padRingHS_ctrl_V25EN_CORE                      2
    #define   LSb16padRingHS_ctrl_V25EN_CORE                      2
    #define       bpadRingHS_ctrl_V25EN_CORE                   1
    #define   MSK32padRingHS_ctrl_V25EN_CORE                      0x00000004

    #define     BA_padRingHS_ctrl_ZP                           0x0000
    #define     B16padRingHS_ctrl_ZP                           0x0000
    #define   LSb32padRingHS_ctrl_ZP                              3
    #define   LSb16padRingHS_ctrl_ZP                              3
    #define       bpadRingHS_ctrl_ZP                           3
    #define   MSK32padRingHS_ctrl_ZP                              0x00000038

    #define     BA_padRingHS_ctrl_ZN                           0x0000
    #define     B16padRingHS_ctrl_ZN                           0x0000
    #define   LSb32padRingHS_ctrl_ZN                              6
    #define   LSb16padRingHS_ctrl_ZN                              6
    #define       bpadRingHS_ctrl_ZN                           3
    #define   MSK32padRingHS_ctrl_ZN                              0x000001C0

    #define     BA_padRingHS_ctrl_CAL_ZP                       0x0001
    #define     B16padRingHS_ctrl_CAL_ZP                       0x0000
    #define   LSb32padRingHS_ctrl_CAL_ZP                          9
    #define   LSb16padRingHS_ctrl_CAL_ZP                          9
    #define       bpadRingHS_ctrl_CAL_ZP                       3
    #define   MSK32padRingHS_ctrl_CAL_ZP                          0x00000E00

    #define     BA_padRingHS_ctrl_CAL_ZN                       0x0001
    #define     B16padRingHS_ctrl_CAL_ZN                       0x0000
    #define   LSb32padRingHS_ctrl_CAL_ZN                          12
    #define   LSb16padRingHS_ctrl_CAL_ZN                          12
    #define       bpadRingHS_ctrl_CAL_ZN                       3
    #define   MSK32padRingHS_ctrl_CAL_ZN                          0x00007000

    #define     BA_padRingHS_ctrl_CAL_RON_ADJ                  0x0001
    #define     B16padRingHS_ctrl_CAL_RON_ADJ                  0x0000
    #define   LSb32padRingHS_ctrl_CAL_RON_ADJ                     15
    #define   LSb16padRingHS_ctrl_CAL_RON_ADJ                     15
    #define       bpadRingHS_ctrl_CAL_RON_ADJ                  3
    #define   MSK32padRingHS_ctrl_CAL_RON_ADJ                     0x00038000

    #define     BA_padRingHS_ctrl_CAL_EN                       0x0002
    #define     B16padRingHS_ctrl_CAL_EN                       0x0002
    #define   LSb32padRingHS_ctrl_CAL_EN                          18
    #define   LSb16padRingHS_ctrl_CAL_EN                          2
    #define       bpadRingHS_ctrl_CAL_EN                       1
    #define   MSK32padRingHS_ctrl_CAL_EN                          0x00040000

    #define     BA_padRingHS_ctrl_CAL_DO                       0x0002
    #define     B16padRingHS_ctrl_CAL_DO                       0x0002
    #define   LSb32padRingHS_ctrl_CAL_DO                          19
    #define   LSb16padRingHS_ctrl_CAL_DO                          3
    #define       bpadRingHS_ctrl_CAL_DO                       1
    #define   MSK32padRingHS_ctrl_CAL_DO                          0x00080000
    ///////////////////////////////////////////////////////////
    #define     RA_padRingHS_status                            0x0004

    #define     BA_padRingHS_status_CAL_INC                    0x0004
    #define     B16padRingHS_status_CAL_INC                    0x0004
    #define   LSb32padRingHS_status_CAL_INC                       0
    #define   LSb16padRingHS_status_CAL_INC                       0
    #define       bpadRingHS_status_CAL_INC                    1
    #define   MSK32padRingHS_status_CAL_INC                       0x00000001
    ///////////////////////////////////////////////////////////

    typedef struct SIE_padRingHS {
    ///////////////////////////////////////////////////////////
    #define   GET32padRingHS_ctrl_PDB_LV(r32)                  _BFGET_(r32, 0, 0)
    #define   SET32padRingHS_ctrl_PDB_LV(r32,v)                _BFSET_(r32, 0, 0,v)
    #define   GET16padRingHS_ctrl_PDB_LV(r16)                  _BFGET_(r16, 0, 0)
    #define   SET16padRingHS_ctrl_PDB_LV(r16,v)                _BFSET_(r16, 0, 0,v)

    #define   GET32padRingHS_ctrl_V18EN_CORE(r32)              _BFGET_(r32, 1, 1)
    #define   SET32padRingHS_ctrl_V18EN_CORE(r32,v)            _BFSET_(r32, 1, 1,v)
    #define   GET16padRingHS_ctrl_V18EN_CORE(r16)              _BFGET_(r16, 1, 1)
    #define   SET16padRingHS_ctrl_V18EN_CORE(r16,v)            _BFSET_(r16, 1, 1,v)

    #define   GET32padRingHS_ctrl_V25EN_CORE(r32)              _BFGET_(r32, 2, 2)
    #define   SET32padRingHS_ctrl_V25EN_CORE(r32,v)            _BFSET_(r32, 2, 2,v)
    #define   GET16padRingHS_ctrl_V25EN_CORE(r16)              _BFGET_(r16, 2, 2)
    #define   SET16padRingHS_ctrl_V25EN_CORE(r16,v)            _BFSET_(r16, 2, 2,v)

    #define   GET32padRingHS_ctrl_ZP(r32)                      _BFGET_(r32, 5, 3)
    #define   SET32padRingHS_ctrl_ZP(r32,v)                    _BFSET_(r32, 5, 3,v)
    #define   GET16padRingHS_ctrl_ZP(r16)                      _BFGET_(r16, 5, 3)
    #define   SET16padRingHS_ctrl_ZP(r16,v)                    _BFSET_(r16, 5, 3,v)

    #define   GET32padRingHS_ctrl_ZN(r32)                      _BFGET_(r32, 8, 6)
    #define   SET32padRingHS_ctrl_ZN(r32,v)                    _BFSET_(r32, 8, 6,v)
    #define   GET16padRingHS_ctrl_ZN(r16)                      _BFGET_(r16, 8, 6)
    #define   SET16padRingHS_ctrl_ZN(r16,v)                    _BFSET_(r16, 8, 6,v)

    #define   GET32padRingHS_ctrl_CAL_ZP(r32)                  _BFGET_(r32,11, 9)
    #define   SET32padRingHS_ctrl_CAL_ZP(r32,v)                _BFSET_(r32,11, 9,v)
    #define   GET16padRingHS_ctrl_CAL_ZP(r16)                  _BFGET_(r16,11, 9)
    #define   SET16padRingHS_ctrl_CAL_ZP(r16,v)                _BFSET_(r16,11, 9,v)

    #define   GET32padRingHS_ctrl_CAL_ZN(r32)                  _BFGET_(r32,14,12)
    #define   SET32padRingHS_ctrl_CAL_ZN(r32,v)                _BFSET_(r32,14,12,v)
    #define   GET16padRingHS_ctrl_CAL_ZN(r16)                  _BFGET_(r16,14,12)
    #define   SET16padRingHS_ctrl_CAL_ZN(r16,v)                _BFSET_(r16,14,12,v)

    #define   GET32padRingHS_ctrl_CAL_RON_ADJ(r32)             _BFGET_(r32,17,15)
    #define   SET32padRingHS_ctrl_CAL_RON_ADJ(r32,v)           _BFSET_(r32,17,15,v)

    #define   GET32padRingHS_ctrl_CAL_EN(r32)                  _BFGET_(r32,18,18)
    #define   SET32padRingHS_ctrl_CAL_EN(r32,v)                _BFSET_(r32,18,18,v)
    #define   GET16padRingHS_ctrl_CAL_EN(r16)                  _BFGET_(r16, 2, 2)
    #define   SET16padRingHS_ctrl_CAL_EN(r16,v)                _BFSET_(r16, 2, 2,v)

    #define   GET32padRingHS_ctrl_CAL_DO(r32)                  _BFGET_(r32,19,19)
    #define   SET32padRingHS_ctrl_CAL_DO(r32,v)                _BFSET_(r32,19,19,v)
    #define   GET16padRingHS_ctrl_CAL_DO(r16)                  _BFGET_(r16, 3, 3)
    #define   SET16padRingHS_ctrl_CAL_DO(r16,v)                _BFSET_(r16, 3, 3,v)

    #define     w32padRingHS_ctrl                              {\
            UNSG32 uctrl_PDB_LV                                :  1;\
            UNSG32 uctrl_V18EN_CORE                            :  1;\
            UNSG32 uctrl_V25EN_CORE                            :  1;\
            UNSG32 uctrl_ZP                                    :  3;\
            UNSG32 uctrl_ZN                                    :  3;\
            UNSG32 uctrl_CAL_ZP                                :  3;\
            UNSG32 uctrl_CAL_ZN                                :  3;\
            UNSG32 uctrl_CAL_RON_ADJ                           :  3;\
            UNSG32 uctrl_CAL_EN                                :  1;\
            UNSG32 uctrl_CAL_DO                                :  1;\
            UNSG32 RSVDx0_b20                                  : 12;\
          }
    union { UNSG32 u32padRingHS_ctrl;
            struct w32padRingHS_ctrl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32padRingHS_status_CAL_INC(r32)               _BFGET_(r32, 0, 0)
    #define   SET32padRingHS_status_CAL_INC(r32,v)             _BFSET_(r32, 0, 0,v)
    #define   GET16padRingHS_status_CAL_INC(r16)               _BFGET_(r16, 0, 0)
    #define   SET16padRingHS_status_CAL_INC(r16,v)             _BFSET_(r16, 0, 0,v)

    #define     w32padRingHS_status                            {\
            UNSG32 ustatus_CAL_INC                             :  1;\
            UNSG32 RSVDx4_b1                                   : 31;\
          }
    union { UNSG32 u32padRingHS_status;
            struct w32padRingHS_status;
          };
    ///////////////////////////////////////////////////////////
    } SIE_padRingHS;

    typedef union  T32padRingHS_ctrl
          { UNSG32 u32;
            struct w32padRingHS_ctrl;
                 } T32padRingHS_ctrl;
    typedef union  T32padRingHS_status
          { UNSG32 u32;
            struct w32padRingHS_status;
                 } T32padRingHS_status;
    ///////////////////////////////////////////////////////////

    typedef union  TpadRingHS_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32padRingHS_ctrl;
                   };
                 } TpadRingHS_ctrl;
    typedef union  TpadRingHS_status
          { UNSG32 u32[1];
            struct {
            struct w32padRingHS_status;
                   };
                 } TpadRingHS_status;

    ///////////////////////////////////////////////////////////
     SIGN32 padRingHS_drvrd(SIE_padRingHS *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 padRingHS_drvwr(SIE_padRingHS *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void padRingHS_reset(SIE_padRingHS *p);
     SIGN32 padRingHS_cmp  (SIE_padRingHS *p, SIE_padRingHS *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define padRingHS_check(p,pie,pfx,hLOG) padRingHS_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define padRingHS_print(p,    pfx,hLOG) padRingHS_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: padRingHS
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE vtr                                      (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 ctrl                 (P-)
///               %unsigned 1  SWITCH_ON                 0x0
///                                    : TRISTATE                  0x0
///                                    : ENABLE                    0x1
///                                                 ###
///                                                 * Enables or tristates VHV_OUT
///                                                 ###
///               %unsigned 2  VOLT_SEL                  0x0
///                                    ###
///                                    * if SV[1:0] = 2'b00,       VHV_OUT steps down to 1.8v
///                                    * if SV[1:0] = 2'b01,       VHV_OUT steps down to 2.0v
///                                    * if SV[1:0] = 2'b10,       VHV_OUT steps down to 2.2v
///                                    * if SV[1:0] = 2'b11,       VHV_OUT steps down to 2.3v
///                                    ###
///               %unsigned 1  PROG_SEQ_CODE             0x0
///                                    ###
///                                    * 60 bit serial code, 1011000110 1011000110 1011000110 1011000110 1011000110 1011000110,
///                                    * is required prior to programming.
///                                    * Clock cycle 0 = 1, cycle 1 = 0, cycle 2 = 1, ... cycle 9 = 0.
///                                    * Clock cycle 10 = 1, cycle 11 = 0, cycle 12 = 1, ... cycle 19 = 0.
///                                    * Clock cycle 20 = 1, cycle 21 = 0, cycle 22 = 1, ... cycle 29 = 0.
///                                    * Clock cycle 30 = 1, cycle 31 = 0, cycle 32 = 1, ... cycle 39 = 0.
///                                    * Clock cycle 40 = 1, cycle 41 = 0, cycle 42 = 1, ... cycle 49 = 0.
///                                    * Clock cycle 50 = 1, cycle 51 = 0, cycle 52 = 1, ... cycle 59 = 0.
///                                    ###
///               %unsigned 1  PROG_SEQ_CODE_CLK         0x0
///                                    ###
///                                    * Clock needed to latch in the 60bit serial code on the rising edge prior to programming.
///                                    * After latching in the last bit, this clock must not provide any additional rising edges while programming.
///                                    * It is gated by SWITCH_ON. SWITCH_ON MUST be 1 before PROG* signals are latched into VTR.
///                                    * If SWITCH_ON = 0, it will not allow PROG_SEQ_CODE to be loaded into internal flops and force MATCH to be 0.
///                                    * Min clock period = 20nS, min clock HIGH time = 2ns, min clock LOW time = 2ns
///                                    ###
///               %%        27         # Stuffing bits...
///     @ 0x00004 status               (R-)
///               %unsigned 1  MATCH                     0x0
///                                    ###
///                                    * MATCH = 1 indicates the current values of code matches the 60bit code specified above.
///                                    ###
///               %%        31         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:       8B, bits:       6b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_vtr
#define h_vtr (){}

    #define     RA_vtr_ctrl                                    0x0000

    #define     BA_vtr_ctrl_SWITCH_ON                          0x0000
    #define     B16vtr_ctrl_SWITCH_ON                          0x0000
    #define   LSb32vtr_ctrl_SWITCH_ON                             0
    #define   LSb16vtr_ctrl_SWITCH_ON                             0
    #define       bvtr_ctrl_SWITCH_ON                          1
    #define   MSK32vtr_ctrl_SWITCH_ON                             0x00000001
    #define        vtr_ctrl_SWITCH_ON_TRISTATE                              0x0
    #define        vtr_ctrl_SWITCH_ON_ENABLE                                0x1

    #define     BA_vtr_ctrl_VOLT_SEL                           0x0000
    #define     B16vtr_ctrl_VOLT_SEL                           0x0000
    #define   LSb32vtr_ctrl_VOLT_SEL                              1
    #define   LSb16vtr_ctrl_VOLT_SEL                              1
    #define       bvtr_ctrl_VOLT_SEL                           2
    #define   MSK32vtr_ctrl_VOLT_SEL                              0x00000006

    #define     BA_vtr_ctrl_PROG_SEQ_CODE                      0x0000
    #define     B16vtr_ctrl_PROG_SEQ_CODE                      0x0000
    #define   LSb32vtr_ctrl_PROG_SEQ_CODE                         3
    #define   LSb16vtr_ctrl_PROG_SEQ_CODE                         3
    #define       bvtr_ctrl_PROG_SEQ_CODE                      1
    #define   MSK32vtr_ctrl_PROG_SEQ_CODE                         0x00000008

    #define     BA_vtr_ctrl_PROG_SEQ_CODE_CLK                  0x0000
    #define     B16vtr_ctrl_PROG_SEQ_CODE_CLK                  0x0000
    #define   LSb32vtr_ctrl_PROG_SEQ_CODE_CLK                     4
    #define   LSb16vtr_ctrl_PROG_SEQ_CODE_CLK                     4
    #define       bvtr_ctrl_PROG_SEQ_CODE_CLK                  1
    #define   MSK32vtr_ctrl_PROG_SEQ_CODE_CLK                     0x00000010
    ///////////////////////////////////////////////////////////
    #define     RA_vtr_status                                  0x0004

    #define     BA_vtr_status_MATCH                            0x0004
    #define     B16vtr_status_MATCH                            0x0004
    #define   LSb32vtr_status_MATCH                               0
    #define   LSb16vtr_status_MATCH                               0
    #define       bvtr_status_MATCH                            1
    #define   MSK32vtr_status_MATCH                               0x00000001
    ///////////////////////////////////////////////////////////

    typedef struct SIE_vtr {
    ///////////////////////////////////////////////////////////
    #define   GET32vtr_ctrl_SWITCH_ON(r32)                     _BFGET_(r32, 0, 0)
    #define   SET32vtr_ctrl_SWITCH_ON(r32,v)                   _BFSET_(r32, 0, 0,v)
    #define   GET16vtr_ctrl_SWITCH_ON(r16)                     _BFGET_(r16, 0, 0)
    #define   SET16vtr_ctrl_SWITCH_ON(r16,v)                   _BFSET_(r16, 0, 0,v)

    #define   GET32vtr_ctrl_VOLT_SEL(r32)                      _BFGET_(r32, 2, 1)
    #define   SET32vtr_ctrl_VOLT_SEL(r32,v)                    _BFSET_(r32, 2, 1,v)
    #define   GET16vtr_ctrl_VOLT_SEL(r16)                      _BFGET_(r16, 2, 1)
    #define   SET16vtr_ctrl_VOLT_SEL(r16,v)                    _BFSET_(r16, 2, 1,v)

    #define   GET32vtr_ctrl_PROG_SEQ_CODE(r32)                 _BFGET_(r32, 3, 3)
    #define   SET32vtr_ctrl_PROG_SEQ_CODE(r32,v)               _BFSET_(r32, 3, 3,v)
    #define   GET16vtr_ctrl_PROG_SEQ_CODE(r16)                 _BFGET_(r16, 3, 3)
    #define   SET16vtr_ctrl_PROG_SEQ_CODE(r16,v)               _BFSET_(r16, 3, 3,v)

    #define   GET32vtr_ctrl_PROG_SEQ_CODE_CLK(r32)             _BFGET_(r32, 4, 4)
    #define   SET32vtr_ctrl_PROG_SEQ_CODE_CLK(r32,v)           _BFSET_(r32, 4, 4,v)
    #define   GET16vtr_ctrl_PROG_SEQ_CODE_CLK(r16)             _BFGET_(r16, 4, 4)
    #define   SET16vtr_ctrl_PROG_SEQ_CODE_CLK(r16,v)           _BFSET_(r16, 4, 4,v)

    #define     w32vtr_ctrl                                    {\
            UNSG32 uctrl_SWITCH_ON                             :  1;\
            UNSG32 uctrl_VOLT_SEL                              :  2;\
            UNSG32 uctrl_PROG_SEQ_CODE                         :  1;\
            UNSG32 uctrl_PROG_SEQ_CODE_CLK                     :  1;\
            UNSG32 RSVDx0_b5                                   : 27;\
          }
    union { UNSG32 u32vtr_ctrl;
            struct w32vtr_ctrl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32vtr_status_MATCH(r32)                       _BFGET_(r32, 0, 0)
    #define   SET32vtr_status_MATCH(r32,v)                     _BFSET_(r32, 0, 0,v)
    #define   GET16vtr_status_MATCH(r16)                       _BFGET_(r16, 0, 0)
    #define   SET16vtr_status_MATCH(r16,v)                     _BFSET_(r16, 0, 0,v)

    #define     w32vtr_status                                  {\
            UNSG32 ustatus_MATCH                               :  1;\
            UNSG32 RSVDx4_b1                                   : 31;\
          }
    union { UNSG32 u32vtr_status;
            struct w32vtr_status;
          };
    ///////////////////////////////////////////////////////////
    } SIE_vtr;

    typedef union  T32vtr_ctrl
          { UNSG32 u32;
            struct w32vtr_ctrl;
                 } T32vtr_ctrl;
    typedef union  T32vtr_status
          { UNSG32 u32;
            struct w32vtr_status;
                 } T32vtr_status;
    ///////////////////////////////////////////////////////////

    typedef union  Tvtr_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32vtr_ctrl;
                   };
                 } Tvtr_ctrl;
    typedef union  Tvtr_status
          { UNSG32 u32[1];
            struct {
            struct w32vtr_status;
                   };
                 } Tvtr_status;

    ///////////////////////////////////////////////////////////
     SIGN32 vtr_drvrd(SIE_vtr *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 vtr_drvwr(SIE_vtr *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void vtr_reset(SIE_vtr *p);
     SIGN32 vtr_cmp  (SIE_vtr *p, SIE_vtr *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define vtr_check(p,pie,pfx,hLOG) vtr_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define vtr_print(p,    pfx,hLOG) vtr_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: vtr
////////////////////////////////////////////////////////////

//////
/// 
/// $INTERFACE Gbl                     biu              (4,4)
///     # # ----------------------------------------------------------
///     @ 0x00000 ProductId            (R-)
///               ###
///               * Product ID register
///               ###
///               %unsigned 32 Id                        
///                                    ###
///                                    * Product ID:
///                                    * [31:28]     : Revision Id (0x0)/P
///                                    * [27:12]     : Part Number (0x3108)
///                                    * [11:1]       : Manufacture Id (0x588)
///                                    * [0]            : Reserved (0x1)
///                                    ###
///     @ 0x00004 ProductId_ext        (R-)
///               ###
///               * Product ID Extension
///               ###
///               %unsigned 8  ID_EXT                    
///                                    ###
///                                    * ID extension value
///                                    ###
///               %%        24         # Stuffing bits...
///     @ 0x00008 INT_ID               (R-)
///               ###
///               * **INTERNAL_ONLY**
///               * Internal ID register
///               ###
///               %unsigned 8  VALUE                     
///                                    ###
///                                    * Internal ID
///                                    ###
///               %%        24         # Stuffing bits...
///     @ 0x0000C bootStrap            (R-)
///               ###
///               * Boot Strap Register (Read Only). Boot straps are latched on Power On and stored in this register.
///               * This register can be reset only by PAD reset.
///               ###
///               %unsigned 2  softwareStrap             0x0
///                                    ###
///                                    * Straps for software usage
///                                    ###
///               %unsigned 2  bootSrc                   0x0
///                                    : ROM_SPI_BOOT              0x0
///                                    : ROM_NAND_BOOT             0x1
///                                    : ROM_EMMC_BOOT             0x2
///                                    : ROM_SPI_DIRECT_BOOT       0x3
///                                                 ###
///                                                 * CPU boot source
///                                                 * 00: ROM boot from SPI
///                                                 * 01: ROM boot from NAND
///                                                 * 10: ROM boot from EMMC
///                                                 * 11: Direct boot from SPI (Only available when ENG_EN=1)
///                                                 * Note: When direct boot from SPI (SPI clear boot), pwrCntlByps and cpuRstByps should be set to 1
///                                                 ###
///               %unsigned 1  cpuRstByps                0x1
///                                    : CPU_INT_RST_BYPS          0x1
///                                    : CPU_INT_RST_EN            0x0
///                                                 ###
///                                                 * CPU reset bypass strap
///                                                 * 1: Bypass reset logic inside CPU partition
///                                                 * 0: Enable reset logic inside CPU partition
///                                                 ###
///               %unsigned 1  pwrCntlByps               0x0
///                                    : PWR_SWITCH_ON             0x1
///                                    : PWR_SWITCH_OFF            0x0
///                                                 ###
///                                                 * Power domain Power Switch control
///                                                 * 1: Power Switch ON. Turn on all power domains during boot up
///                                                 * 0: Power Switch OFF . Only turn on top-module (including BCM) during boot up. All other modules are OFF (AVIO, CPU,MC5, GFX3D, V2G, G1)
///                                                 ###
///               %unsigned 1  pllPwrDown                0x1
///                                    : PWR_DOWN                  0x1
///                                    : PWR_UP                    0x0
///                                                 ###
///                                                 * PLL Power Down
///                                                 * SYS/MEM/CPU PLL Power Down
///                                                 * 1: Power Down
///                                                 * 0: Power UP
///                                                 ###
///               %unsigned 1  sysPllByps                0x0
///                                    : PLL_OUT                   0x0
///                                    : BYPS                      0x1
///                                                 ###
///                                                 * SYSPLL Bypass
///                                                 * 0: No Bypass
///                                                 * 1: System PLL Bypassed
///                                                 ###
///               %unsigned 1  memPllByps                0x0
///                                    : PLL_OUT                   0x0
///                                    : BYPS                      0x1
///                                                 ###
///                                                 * MEMPLL Bypass indicator
///                                                 * 0: No Bypass
///                                                 * 1: Memory PLL Bypassed
///                                                 ###
///               %unsigned 1  cpuPllByps                0x0
///                                    : PLL_OUT                   0x0
///                                    : BYPS                      0x1
///                                                 ###
///                                                 * CPUPLL Bypass indicator
///                                                 * 0: No Bypass
///                                                 * 1: CPUPLL Bypassed
///                                                 ###
///               %unsigned 1  nandV18Enable             0x0
///                                    : V1R8                      0x0
///                                    : V3R3                      0x1
///                                                 ###
///                                                 * NAND pads power selection
///                                                 * 0: NAND pad ring is 3.3V
///                                                 * 1: NAND pad ring is 1.8V
///                                                 ###
///               %unsigned 1  dftStrap                  0x0
///                                    ###
///                                    * DFT Strap
///                                    ###
///               %unsigned 1  ENG_EN                    0x0
///                                    : PRODUCTION_MODE           0x0
///                                    : DEVELOPE_MODE             0x1
///                                                 ###
///                                                 * Production or development mode. This is not a boot strap bit. It's a bonding option and only read by AHB.
///                                                 * *INTERNAL_ONLY**
///                                                 ###
///               %%        19         # Stuffing bits...
///     @ 0x00010 bootStrapEn          (RW)
///               ###
///               * Boot Strap Enable register
///               * This register provides the option to over write the Bootstraps using CPU register write
///               ###
///               %unsigned 1  cpuRstBypsEn              0x1
///                                    : ENABLE                    0x1
///                                    : DISABLE                   0x0
///                                                 ###
///                                                 * CPU Reset Bypass Strap Enable
///                                                 * 1 : Allow bootstrap
///                                                 * 0 : Disable bootstrap
///                                                 ###
///               %unsigned 1  pwrCntlBypsEn             0x1
///                                    : ENABLE                    0x1
///                                    : DISABLE                   0x0
///                                                 ###
///                                                 * Power Switch Control Strap Enable
///                                                 * 1 : Allow bootstrap
///                                                 * 0 : Disable bootstrap
///                                                 ###
///               %unsigned 1  pllPwrDownEn              0x1
///                                    : ENABLE                    0x1
///                                    : DISABLE                   0x0
///                                                 ###
///                                                 * PLL Power Down Strap Enable
///                                                 * 1 : Allow bootstrap
///                                                 * 0 : Disable bootstrap
///                                                 ###
///               %unsigned 1  sysPLLBypsEn              0x1
///                                    : ENABLE                    0x1
///                                    : DISABLE                   0x0
///                                                 ###
///                                                 * System PLL Bypass Strap Enable
///                                                 * 1 : Allow bootstrap
///                                                 * 0 : Disable bootstrap
///                                                 ###
///               %unsigned 1  memPLLBypsEn              0x1
///                                    : ENABLE                    0x1
///                                    : DISABLE                   0x0
///                                                 ###
///                                                 * Memory PLL Bypass Strap Enable
///                                                 * 1 : Allow bootstrap
///                                                 * 0 : Disable bootstrap
///                                                 ###
///               %unsigned 1  cpuPLLBypsEn              0x1
///                                    : ENABLE                    0x1
///                                    : DISABLE                   0x0
///                                                 ###
///                                                 * CPU PLL Bypass Strap Enable
///                                                 * 1 : Allow bootstrap
///                                                 * 0 : Disable bootstrap
///                                                 ###
///               %%        26         # Stuffing bits...
///     @ 0x00014 chipCntl             (P-)
///               ###
///               * Misc Chip Control bits
///               * *INTERNAL_ONLY**
///               ###
///               %unsigned 1  SD0_CLK_LPBK_EN           0x1
///                                    ###
///                                    * SD0 CLK Loop Back enable bit
///                                    ###
///               %unsigned 1  EMMC_CLK_LPBK_EN          0x1
///                                    ###
///                                    * EMMC CLK Loop Back enable bit
///                                    ###
///               %unsigned 1  FE_MDIO_SEL               0x0
///                                    ###
///                                    * Select FE_PHY MDIO control source
///                                    * 0: eth1
///                                    * 1: FE_MDC/FE_MDIO pinMux
///                                    ###
///               %unsigned 1  eth1_PHY_SEL              0x0
///                                    ###
///                                    * Select eth1 PHY
///                                    * 0: use FE_PHY in SM
///                                    * 1: use external PHY through MII pinMux(ET_*)
///                                    ###
///               %%        28         # Stuffing bits...
///     @ 0x00018 sw_generic0          (P-)
///               ###
///               * Generic software register.
///               ###
///               %unsigned 32 swReg0                    0x0
///     @ 0x0001C sw_generic1          (P-)
///               ###
///               * Generic software register.
///               ###
///               %unsigned 32 swReg1                    0x0
///     @ 0x00020 sw_generic2          (P-)
///               ###
///               * Generic software register.
///               ###
///               %unsigned 32 swReg2                    0x0
///     @ 0x00024 sw_generic3          (P-)
///               ###
///               * Generic software register. This register can be reset only by PAD reset.
///               ###
///               %unsigned 32 swReg3                    0x0
///     @ 0x00028 RWTC_gfx3D31to0      (P)
///               %unsigned 32 value                     0xAAAA99AA
///                                    ###
///                                    * RTWC [31:0] value for Perif
///                                    * *INTERNAL_ONLY**
///                                    ###
///     @ 0x0002C RWTC_gfx3D57to32     (P)
///               %unsigned 26 value                     0x2A95B5A
///                                    ###
///                                    * RWTC [57:32] value for Perif
///                                    * *INTERNAL_ONLY**
///                                    ###
///               %%        6          # Stuffing bits...
///     @ 0x00030 RWTC_top31to0        (P)
///               %unsigned 32 value                     0xAAAA99AA
///                                    ###
///                                    * RTWC [31:0] value for TOP level
///                                    * *INTERNAL_ONLY**
///                                    ###
///     @ 0x00034 RWTC_top57to32       (P)
///               %unsigned 26 value                     0x2A95B5A
///                                    ###
///                                    * RTWC [57:32] value for Top level
///                                    * *INTERNAL_ONLY**
///                                    ###
///               %%        6          # Stuffing bits...
///     @ 0x00038 RWTC_vPro31to0       (P)
///               %unsigned 32 value                     0xAAAA99AA
///                                    ###
///                                    * RTWC [31:0] value for v2gZsp
///                                    * *INTERNAL_ONLY**
///                                    ###
///     @ 0x0003C RWTC_vPro57to32      (P)
///               %unsigned 26 value                     0x2A95B5A
///                                    ###
///                                    * RTWC [57:32] value for v2gZsp
///                                    * *INTERNAL_ONLY**
///                                    ###
///               %%        6          # Stuffing bits...
///     @ 0x00040 RWTC_g1Wrap31to0     (P)
///               %unsigned 32 value                     0xAAAA99AA
///                                    ###
///                                    * RTWC [31:0] value for g1Wrap
///                                    * *INTERNAL_ONLY**
///                                    ###
///     @ 0x00044 RWTC_g1Wrap57to32    (P)
///               %unsigned 26 value                     0x2A95B5A
///                                    ###
///                                    * RTWC [57:32] value for g1Wrap
///                                    * *INTERNAL_ONLY**
///                                    ###
///               %%        6          # Stuffing bits...
///     @ 0x00048 RWTC_mr7to0          (P)
///               %unsigned 8  value                     0xAA
///                                    ###
///                                    * RTWC [7:0] value for mbist repair
///                                    * *INTERNAL_ONLY**
///                                    ###
///               %%        24         # Stuffing bits...
///     @ 0x0004C FPGAR                (R-)
///               ###
///               * FPGA Revision ID Read only register
///               * *INTERNAL_ONLY**
///               ###
///               %unsigned 32 FPGAR                     0xB3A9FA72
///                                    ###
///                                    * FPGA Revision ID register
///                                    ###
///     @ 0x00050 FPGARW               (RW)
///               ###
///               * FPGA General Purpose RW register
///               * *INTERNAL_ONLY**
///               ###
///               %unsigned 32 FPGARW                    0x0
///                                    ###
///                                    * FPGA General purpose RW register
///                                    * PLL Control Region
///                                    ###
///     @ 0x00054                      (W-)
///     #         # Stuffing bytes...
///               %% 3424
///     @ 0x00200                      (P)
///     # 0x00200 sysPll               
///               $pll                 sysPll            REG          
///     @ 0x00218                      (W-)
///     #         # Stuffing bytes...
///               %% 1856
///     @ 0x00300                      (P)
///     # 0x00300 AVPLLB               
///               $avPll               AVPLLB            REG          
///                                    ###
///                                    * Clock and Reset Control Region
///                                    ###
///     @ 0x003A8                      (W-)
///     #         # Stuffing bytes...
///               %% 4800
///     @ 0x00600 ResetTrigger         (RW-)
///               ###
///               * Software reset trigger register. Using this register software can reset particular module of the chip. Writing 1 to this register will trigger 16 reference clock (640ns) reset to the corresponding module (except for PCIe for PCIe user has all the reset duration control so writing 1 will trigger the reset and writing 0 will de-assert the reset).
///               * In the following register:
///               * 0 : No Reset
///               * 1 : Reset
///               ###
///               %unsigned 1  chipReset                 0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset all registers in the chip.
///                                                 * Note: When this bit is set then there is no reset sequence followed to de-assert the reset to CPU in the end as done in case of boot-up. So using this bit is not suggested as CPU will come out of the reset earlier than modules which are running on slow clocks as compared to CPU.
///                                                 * *INTERNAL_ONLY**
///                                                 ###
///               %unsigned 1  socDdrSyncReset           0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset memory controller
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  avioSyncReset             0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset whole AVIO unit
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  zspSyncReset              0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset Audio DSP
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  perifSyncReset            0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset whole Peripheral unit
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  ethSyncReset              0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset Peripheral Ethernet module
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  ahbApbSyncReset           0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset Peripheral AHB-APB module (includes GPIO, Two wire Serial interface, Interrupt controller, Timers and SPI)
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  nanfSyncReset             0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset Peripheral NAND Flash module
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  usb0SyncReset             0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset peripheral USB0 module
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  pBridgeSyncReset          0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset peripheral pBridge module
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  sdioSyncReset             0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset peripheral SDIO module
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  tspSyncReset              0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset TSP module
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  v2gSyncReset              0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset V2G
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  g1SyncReset               0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset Hantro
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  bcmSyncReset              0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset BCM
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %unsigned 1  atbSyncReset              0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset CoreSight
///                                                 * 0 : No Reset
///                                                 * 1 : Reset
///                                                 ###
///               %%        16         # Stuffing bits...
///     @ 0x00604 ResetStatus          (RW-)
///               ###
///               * Reset Status register indicates whether reset is triggered or not to the corresponding module.
///               * 0 : Reset not issued
///               * 1 : Reset issued
///               * Note: Software need to write 0 to clear this register.
///               ###
///               %unsigned 1  ChipResetStatus           0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * **INTERNAL_ONLY**
///                                                 ###
///               %unsigned 1  wd0Status                 0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Watch dog timer 0 reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  wd1Status                 0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Watch dog timer 1 reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  wd2Status                 0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Watch dog timer 2 reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  socDdrSyncResetStatus     0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Memory controller reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  avioSyncResetStatus       0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * AVIO unit reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  zspSyncResetStatus        0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Audio DSP reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  perifSyncResetStatus      0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Peripheral unit reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  ethSyncResetStatus        0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Peripheral Ethernet module reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  ahbApbSyncResetStatus     0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Peripheral AHB-APB module (includes GPIO, Two wire Serial interface, Interrupt controller, Timers and SPI) reset status:
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  nanfSyncResetStatus       0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Peripheral NAND Flash module reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  usb0SyncResetStatus       0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Peripheral USB0 module reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  pBridgeSyncResetStatus    0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Peripheral pBridge module reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  sdioSyncResetStatus       0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Peripheral SDIO module reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  tspSyncResetStatus        0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * TSP module reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  v2gSyncResetStatus        0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * V2G reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  g1SyncResetStatus         0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * Hantro reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  bcmSyncResetStatus        0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * BCM reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %unsigned 1  atbSyncResetStatus        0x0
///                                    : asserted                  0x1
///                                    : deasserted                0x0
///                                                 ###
///                                                 * ATB (CoreSight) reset status
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %%        13         # Stuffing bits...
///     @ 0x00608 gfx3DReset           (RW-)
///               ###
///               * Graphics 3D reset register
///               ###
///               %unsigned 1  SyncReset                 0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset all registers in Graphics 3D module
///                                                 * 0: No Reset
///                                                 * 1: Reset
///                                                 ###
///               %%        31         # Stuffing bits...
///     @ 0x0060C gfx3DResetStatus     (RW-)
///               %unsigned 1  SyncReset                 0x0
///                                    : assert                    0x1
///                                    : deassert                  0x0
///                                                 ###
///                                                 * Reset status of Graphics 3D
///                                                 * 0 : Reset not issued
///                                                 * 1 : Reset issued
///                                                 ###
///               %%        31         # Stuffing bits...
///     @ 0x00610                      (P)
///     # 0x00610 avioPwrCtrl          
///               $pwrOff              avioPwrCtrl       REG          
///     @ 0x00618                      (P)
///     # 0x00618 gfx3DPwrCtrl         
///               $pwrOff              gfx3DPwrCtrl      REG          
///     @ 0x00620                      (P)
///     # 0x00620 g1PwrCtrl            
///               $pwrOff              g1PwrCtrl         REG          
///     @ 0x00628                      (P)
///     # 0x00628 v2gPwrCtrl           
///               $pwrOff              v2gPwrCtrl        REG          
///     @ 0x00630 clkEnable            (P-)
///               ###
///               * Clock enable register provides the option to switch clocks OFF for power saving.
///               ###
///               %unsigned 1  ethCoreClkEn              0x1
///                                    : enable                    0x1
///                                    : disable                   0x0
///                                                 ###
///                                                 * Ethernet Core Clock enable register
///                                                 * 0 : disable
///                                                 * 1 : enable
///                                                 ###
///               %unsigned 1  ahbApbCoreClkEn           0x1
///                                    : enable                    0x1
///                                    : disable                   0x0
///                                                 ###
///                                                 * *INTERNAL_ONLY**
///                                                 * AHB-APB module (includes GPIO, Two wire Serial interface, Interrupt controller, Timers and SPI) Clock enable register
///                                                 * 0 : disable
///                                                 * 1 : enable
///                                                 ###
///               %unsigned 1  usb0CoreClkEn             0x1
///                                    : enable                    0x1
///                                    : disable                   0x0
///                                                 ###
///                                                 * USB0 Core Clock enable register
///                                                 * 0 : disable
///                                                 * 1 : enable
///                                                 ###
///               %unsigned 1  pBridgeCoreClkEn          0x1
///                                    : enable                    0x1
///                                    : disable                   0x0
///                                                 ###
///                                                 * PBridge module Clock enable register
///                                                 * 0 : disable
///                                                 * 1 : enable
///                                                 ###
///               %unsigned 1  sdioCoreClkEn             0x1
///                                    : enable                    0x1
///                                    : disable                   0x0
///                                                 ###
///                                                 * SDIO Core Clock enable register
///                                                 * 0 : disable
///                                                 * 1 : enable
///                                                 ###
///               %unsigned 1  nfcCoreClkEn              0x1
///                                    : enable                    0x1
///                                    : disable                   0x0
///                                                 ###
///                                                 * Nand Flash Controller core clock enable register
///                                                 * 0 : disable
///                                                 * 1 : enable
///                                                 ###
///               %%        26         # Stuffing bits...
///     @ 0x00634 ClkSwitch            (P-)
///               ###
///               * Clock Switch register. This register is used to select clock between:
///               * PLL clock or reference clock (PLL Bypass option)
///               ###
///               %unsigned 1  sysPLLSWBypass            0x0
///                                    : refClk                    0x1
///                                    : pllClk                    0x0
///                                                 ###
///                                                 * System PLL Bypass switch
///                                                 * 0: Use PLL
///                                                 * 1: Bypass PLL
///                                                 ###
///               %unsigned 1  memPLLSWBypass            0x0
///                                    : refClk                    0x1
///                                    : pllClk                    0x0
///                                                 ###
///                                                 * Memory PLL Bypass switch
///                                                 * 0: Use PLL
///                                                 * 1: Bypass PLL
///                                                 ###
///               %unsigned 1  cpuPLLSWBypass            0x0
///                                    : refClk                    0x1
///                                    : pllClk                    0x0
///                                                 ###
///                                                 * CPU PLL Bypass switch
///                                                 * 0: Use PLL
///                                                 * 1: Bypass PLL
///                                                 ###
///               %%        29         # Stuffing bits...
///     @ 0x00638                      (P)
///     # 0x00638 cpufastRefClk        
///               $clkD2               cpufastRefClk     REG          
///                                    ###
///                                    * Fast backup clock for cpu when cpupll is bypass
///                                    ###
///     @ 0x0063C                      (P)
///     # 0x0063C memfastRefClk        
///               $clkD2               memfastRefClk     REG          
///                                    ###
///                                    * Fast backup clock for mc5 when mempll is bypass
///                                    ###
///     @ 0x00640                      (P)
///     # 0x00640 cfgClk               
///               $clkD8               cfgClk            REG          
///                                    ###
///                                    * System AHB Clock
///                                    ###
///     @ 0x00644                      (P)
///     # 0x00644 sysClk               
///               $clkD2               sysClk            REG          
///                                    ###
///                                    * System AXI Clock
///                                    ###
///     @ 0x00648                      (P)
///     # 0x00648 v2gClk               
///               $clkD4               v2gClk            REG          
///                                    ###
///                                    * V2G Clock
///                                    ###
///     @ 0x0064C                      (P)
///     # 0x0064C v2gM3Clk             
///               $clkD4               v2gM3Clk          REG          
///                                    ###
///                                    * V2GM3 clock
///                                    ###
///     @ 0x00650                      (P)
///     # 0x00650 g1CoreClk            
///               $clkD4               g1CoreClk         REG          
///                                    ###
///                                    * G1 (Hantro) Core Clock
///                                    ###
///     @ 0x00654                      (P)
///     # 0x00654 gfx3DCoreClk         
///               $clkD2               gfx3DCoreClk      REG          
///                                    ###
///                                    * GFX3D Core Clk
///                                    ###
///     @ 0x00658                      (P)
///     # 0x00658 gfx3DSysClk          
///               $clkD2               gfx3DSysClk       REG          
///                                    ###
///                                    * GFX3D AXI Clock
///                                    ###
///     @ 0x0065C                      (P)
///     # 0x0065C avioSysClk           
///               $clkD2               avioSysClk        REG          
///                                    ###
///                                    * AVIO AXI Clock
///                                    ###
///     @ 0x00660                      (P)
///     # 0x00660 appClk               
///               $clkD1               appClk            REG          
///                                    ###
///                                    * AVIO APP Clock
///                                    ###
///     @ 0x00664                      (P)
///     # 0x00664 vppSysClk            
///               $clkD2               vppSysClk         REG          
///                                    ###
///                                    * AVIO VPP Clock
///                                    ###
///     @ 0x00668                      (P)
///     # 0x00668 arcRefClk            
///               $clkD2               arcRefClk         REG          
///                                    ###
///                                    * AVI ARC Ref Clock
///                                    ###
///     @ 0x0066C                      (P)
///     # 0x0066C hdmirxMClk           
///               $clkD8               hdmirxMClk        REG          
///                                    ###
///                                    * HDMI RX M CLOCK
///                                    ###
///     @ 0x00670                      (P)
///     # 0x00670 perifClk             
///               $clkD4               perifClk          REG          
///                                    ###
///                                    * Perif System Clock
///                                    ###
///     @ 0x00674                      (P)
///     # 0x00674 zspClk               
///               $clkD2               zspClk            REG          
///                                    ###
///                                    * ZSP Clock
///                                    ###
///     @ 0x00678                      (P)
///     # 0x00678 tspClk               
///               $clkD2               tspClk            REG          
///                                    ###
///                                    * TSP Clock
///                                    ###
///     @ 0x0067C                      (P)
///     # 0x0067C tspRefClk            
///               $clkD4               tspRefClk         REG          
///                                    ###
///                                    * TSP Reference Clock
///                                    ###
///     @ 0x00680                      (P)
///     # 0x00680 atbClk               
///               $clkD4               atbClk            REG          
///                                    ###
///                                    * ATB (CoreSight) Clock
///                                    ###
///     @ 0x00684                      (P)
///     # 0x00684 bcmClk               
///               $clkD4               bcmClk            REG          
///                                    ###
///                                    * BCM Clock
///                                    ###
///     @ 0x00688                      (P)
///     # 0x00688 nfcEccClk            
///               $clkD2               nfcEccClk         REG          
///                                    ###
///                                    * NFC ECC Clock
///                                    ###
///     @ 0x0068C                      (P)
///     # 0x0068C sd0Clk               
///               $clkD8               sd0Clk            REG          
///                                    ###
///                                    * SDIO0 Clock
///                                    ###
///     @ 0x00690                      (P)
///     # 0x00690 usb2TestClk          
///               $clkD12              usb2TestClk       REG          
///                                    ###
///                                    * Test Mode clock for USB2 (60Mhz Max)
///                                    ###
///     @ 0x00694                      (P)
///     # 0x00694 sdio3DllMstRefClk    
///               $clkD4               sdio3DllMstRefClk REG          
///                                    ###
///                                    * SDIO DLL Master Ref Clock
///                                    * MISC Register Control Region
///                                    ###
///     @ 0x00698                      (W-)
///     #         # Stuffing bytes...
///               %% 4928
///     @ 0x00900 SECURE_SCAN_EN       (RW)
///               ###
///               * Enable secure scan, should write 1 to it immediately during boot up to disable scan
///               * *INTERNAL_ONLY**
///               ###
///               %unsigned 1  SET                       0x0
///                                    ###
///                                    * 1: scan is disabled
///                                    * 0: scan is enabled
///                                    ###
///               %%        31         # Stuffing bits...
///     @ 0x00904 NandCtrl             (RW)
///               ###
///               * NAND Write Protect pin control register.
///               ###
///               %unsigned 1  NAND_WPn_Sel              0x1
///                                    ###
///                                    * 0 : Write protected
///                                    * 1: Not Write Protected
///                                    ###
///               %unsigned 1  NAND_CLE_OE               0x1
///                                    ###
///                                    * 0 : Output Disabled (drive Zero)
///                                    * 1: Output Enabled
///                                    ###
///               %unsigned 1  NAND_ALE_OE               0x1
///                                    ###
///                                    * 0 : Output Disabled (drive Zero)
///                                    * 1: Output Enabled
///                                    ###
///               %%        29         # Stuffing bits...
///     @ 0x00908 sdioDllMstCtrl       (RW-)
///               ###
///               * SDIO DLL Master Control register
///               ###
///               %unsigned 6  PH_SEL1                   0x1F
///                                    ###
///                                    * Channel 1 Delay Phase Selections. Default setting is 90 degree phase shift.
///                                    ###
///               %unsigned 6  PH_SEL2                   0x1F
///                                    ###
///                                    * Channel 2 Delay Phase Selections. Default setting is 90 degree phase shift.
///                                    ###
///               %unsigned 6  PH_SEL3                   0x1F
///                                    ###
///                                    * Channel 3 Delay Phase Selections. Default setting is 90 degree phase shift.
///                                    ###
///               %unsigned 6  PH_SEL4                   0x1F
///                                    ###
///                                    * Channel 4 Delay Phase Selections. Default setting is 90 degree phase shift.
///                                    ###
///               %unsigned 1  RESET                     0x1
///                                    ###
///                                    * DLL reset signal. Active high.
///                                    ###
///               %unsigned 1  GAIN2X                    0x1
///                                    ###
///                                    * 1: 55~ 300Mhz and 0 > 300-480 Mhz
///                                    * This bit controls frequency range.
///                                    * Note that GAIN2X=1, the frequency range is lower.
///                                    ###
///               %unsigned 1  TEST_EN                   0x0
///                                    ###
///                                    * DLL test mode enable signal. When=1 disable Master. When=0 normal operation
///                                    ###
///               %unsigned 5  RESERVE                   0x0
///                                    ###
///                                    * Reserve debug bits
///                                    ###
///     # 0x0090C sdioDllMstCtrl1      
///               %unsigned 1  FAST_LOCK                 0x1
///                                    ###
///                                    * When=1 Master lock faster, counter skips 16 counts before comparison. When=0 counter goes 1 count at a time.
///                                    ###
///               %%        31         # Stuffing bits...
///     @ 0x00910 sdioDllMstStatus     (R-)
///               ###
///               * SDIO DLL Master Status register
///               ###
///               %unsigned 10 DELAY_CTRL1               
///                                    ###
///                                    * Control bits for channel 1 slave block
///                                    ###
///               %unsigned 10 DELAY_CTRL2               
///                                    ###
///                                    * Control bits for channel 2 slave block
///                                    ###
///               %unsigned 10 DELAY_CTRL3               
///                                    ###
///                                    * Control bits for channel 3 slave block
///                                    ###
///               %%        2          # Stuffing bits...
///     # 0x00914 sdioDllMstStatus1    
///               %unsigned 10 DELAY_CTRL4               
///                                    ###
///                                    * Control bits for channel 4 slave block
///                                    ###
///               %unsigned 1  DLL_LOCK                  
///                                    ###
///                                    * DLL ready when DLL_LOCK is high. Maximum DLL lock time is 4096 reference clock cycles.
///                                    ###
///               %unsigned 10 DELAY_OUT                 
///                                    ###
///                                    * Delay information from the DLL
///                                    ###
///               %%        11         # Stuffing bits...
///     @ 0x00918 gfx3DDisRamClkGate   (P-)
///               ###
///               * **INTERNAL_ONLY**
///               ###
///               %unsigned 1  drcg                      0x0
///                                    : drcgActive                0x1
///                                    : drcgInactive              0x0
///                                                 ###
///                                                 * Disable RAM clock gating in Graphics 3D when in BIST mode.
///                                                 * Graphics 3D disable RAM CG register bit
///                                                 ###
///               %%        31         # Stuffing bits...
///     @ 0x0091C DroEn                (P-)
///               %unsigned 1  Start                     0x0
///                                    : dro_en_start              0x1
///                                                 ###
///                                                 * Write 1 to this bit will generate a pulse which start the dro_ctl to assert dro_en
///                                                 ###
///               %unsigned 16 CountVal                  0x10
///                                    ###
///                                    * DRO EN counter value
///                                    ###
///               %%        15         # Stuffing bits...
///     # 0x00920 DroEn1               
///               %unsigned 16 WaitVal                   0x20
///                                    ###
///                                    * Dro_en keep 0 for WaitVal cycles after dro_clk start
///                                    ###
///               %%        16         # Stuffing bits...
///     @ 0x00924 DroShift             (P-)
///               %unsigned 1  Start                     0x0
///                                    : dro_shift_start           0x1
///                                                 ###
///                                                 * Write 1 to this bit will generate a pulse which start the dro_ctl to shift out data from dro cells
///                                                 ###
///               %unsigned 16 CountVal                  0x20
///                                    ###
///                                    * DRO Shift counter value
///                                    ###
///               %%        15         # Stuffing bits...
///     @ 0x00928 DroStatus            (R-)
///               %unsigned 1  En                        0x0
///                                    ###
///                                    * dro_en_out of the last dro cell
///                                    ###
///               %unsigned 1  Shift_Done                0x0
///                                    ###
///                                    * Shift Done signal from dro_ctl
///                                    ###
///               %%        30         # Stuffing bits...
///     @ 0x0092C DroCounter           (R-)
///               %unsigned 32 Out                       0x0
///     @ 0x00930                      (P)
///     # 0x00930 vtr                  
///               $vtr                 vtr               REG          
///     @ 0x00938 gic400_ctrl          (RW-)
///               %unsigned 1  cgfsdisable               0x0
///                                    ###
///                                    * GIC400 secure disable control
///                                    ###
///               %%        31         # Stuffing bits...
///     @ 0x0093C SPARE_CTRL_0         (P-)
///               ###
///               * Not used. May be used for any ECOs.
///               * *INTERNAL_ONLY**
///               ###
///               %unsigned 32 ctrl                      0x0
///     @ 0x00940 SPARE_CTRL_1         (P-)
///               ###
///               * Not used. May be used for any ECOs.
///               * *INTERNAL_ONLY**
///               ###
///               %unsigned 32 ctrl                      0x0
///     @ 0x00944 SPARE_CTRL_2         (P-)
///               ###
///               * Not used. May be used for any ECOs.
///               * *INTERNAL_ONLY**
///               ###
///               %unsigned 32 ctrl                      0x0
///     @ 0x00948 SPARE_CTRL_3         (P-)
///               ###
///               * Not used. May be used for any ECOs.
///               * *INTERNAL_ONLY**
///               ###
///               %unsigned 32 ctrl                      0x0
///     @ 0x0094C                      (P)
///     # 0x0094C efuse0               
///               $efuse               efuse0            REG          
///                                    ###
///                                    * EFUSE for ATE inside Global module
///                                    ###
///     @ 0x00978                      (P)
///     # 0x00978 efuse1               
///               $efuse               efuse1            REG          
///                                    ###
///                                    * EFUSE for Memory Repair in MBIST Repair module in Top
///                                    ###
///     @ 0x009A4                      (P)
///     # 0x009A4 PERIF                
///               $PERIF               PERIF             REG          
///                                    ###
///                                    * PAD Control Region
///                                    ###
///     @ 0x009B0                      (W-)
///     #         # Stuffing bytes...
///               %% 111232
///     @ 0x04000 PadSelect            (P-)
///               ###
///               * IO Pad Selection
///               * *INTERNAL_ONLY**
///               ###
///               %unsigned 1  DVIO_OEN                  0x0
///                                    : Enable                    0x1
///                                    : Disable                   0x0
///                                                 ###
///                                                 * For DVIO output enable; Active high
///                                                 ###
///               %%        31         # Stuffing bits...
///     @ 0x04004                      (P)
///     # 0x04004 I2C_PADRING          
///               $padRing             I2C_PADRING       REG          
///                                    ###
///                                    * padRing2 NO CALP pad for HSIOB pad voltage fixed at 3.3V
///                                    ###
///     @ 0x0400C                      (P)
///     # 0x0400C SD0_PADRING          
///               $padRing             SD0_PADRING       REG          
///                                    ###
///                                    * padRing5
///                                    ###
///     @ 0x04014                      (P)
///     # 0x04014 TSI_PADRING          
///               $padRing             TSI_PADRING       REG          
///                                    ###
///                                    * padRing6
///                                    ###
///     @ 0x0401C                      (P)
///     # 0x0401C SPI_PADRING          
///               $padRing             SPI_PADRING       REG          
///                                    ###
///                                    * padRing7 NO CALP pad for HSIOB pad voltage fixed at 3.3V
///                                    ###
///     @ 0x04024                      (P)
///     # 0x04024 NAND_PADRING         
///               $padRing             NAND_PADRING      REG          
///                                    ###
///                                    * padRing8 pad voltage select by boot strap
///                                    ###
///     @ 0x0402C DDC_PAD_CTRL         (P-)
///               %unsigned 3  ZN_TW1_SCL                0x0
///                                    ###
///                                    * slew rate control for TW1_SCL
///                                    ###
///               %unsigned 3  ZN_TW1_SDA                0x0
///                                    ###
///                                    * slew rate control for TW1_SDA
///                                    * The below are the Pad Control Registers starting at 32KB boundary. Please do not change this offset and add any register that is needed before this.
///                                    ###
///               %%        26         # Stuffing bits...
///     @ 0x04030                      (W-)
///     #         # Stuffing bytes...
///               %% 130688
///     @ 0x08000 pinMuxCntlBus        (P-)
///               %unsigned 3  URT0_RXD                  0x0
///                                    ###
///                                    * pinMuxCntlBus[0*3+2:0*3]	 pinMux Control for URT0_RXD
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///               %unsigned 3  URT0_TXD                  0x0
///                                    ###
///                                    * pinMuxCntlBus[1*3+2:1*3]	 pinMux Control for URT0_TXD
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///               %unsigned 3  SPI1_SS0n                 0x0
///                                    ###
///                                    * pinMuxCntlBus[2*3+2:2*3]	 pinMux Control for SPI1_SS0n
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///               %unsigned 3  SPI1_SS1n                 0x0
///                                    ###
///                                    * pinMuxCntlBus[3*3+2:3*3]	 pinMux Control for SPI1_SS1n
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///                                    : MODE_5                    0x5
///               %unsigned 3  SPI1_SS2n                 0x0
///                                    ###
///                                    * pinMuxCntlBus[4*3+2:4*3]	 pinMux Control for SPI1_SS2n
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///                                    : MODE_5                    0x5
///               %unsigned 3  SPI1_SCLK                 0x0
///                                    ###
///                                    * pinMuxCntlBus[5*3+2:5*3]	 pinMux Control for SPI1_SCLK
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///               %unsigned 3  SPI1_SDO                  0x0
///                                    ###
///                                    * pinMuxCntlBus[6*3+2:6*3]	 pinMux Control for SPI1_SDO
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///               %unsigned 3  SPI1_SDI                  0x0
///                                    ###
///                                    * pinMuxCntlBus[7*3+2:7*3]	 pinMux Control for SPI1_SDI
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///               %unsigned 3  USB1_DRV_VBUS             0x0
///                                    ###
///                                    * pinMuxCntlBus[8*3+2:8*3]	 pinMux Control for USB1_DRV_VBUS
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///               %unsigned 3  TW1_SCL                   0x0
///                                    ###
///                                    * pinMuxCntlBus[9*3+2:9*3]	 pinMux Control for TW1_SCL
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///               %%        2          # Stuffing bits...
///     # 0x08004 pinMuxCntlBus1       
///               %unsigned 3  TW1_SDA                   0x0
///                                    ###
///                                    * pinMuxCntlBus[10*3+2:10*3]	 pinMux Control for TW1_SDA
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///               %unsigned 3  HDMI_CEC                  0x0
///                                    ###
///                                    * pinMuxCntlBus[11*3+2:11*3]	 pinMux Control for HDMI_CEC
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///               %unsigned 3  HDMI_HPD                  0x0
///                                    ###
///                                    * pinMuxCntlBus[12*3+2:12*3]	 pinMux Control for HDMI_HPD
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///               %unsigned 3  NAND_IO0                  0x0
///                                    ###
///                                    * pinMuxCntlBus[13*3+2:13*3]	 pinMux Control for NAND_IO[0]
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///               %unsigned 3  NAND_IO1                  0x0
///                                    ###
///                                    * pinMuxCntlBus[14*3+2:14*3]	 pinMux Control for NAND_IO[1]
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///               %unsigned 3  NAND_IO2                  0x0
///                                    ###
///                                    * pinMuxCntlBus[15*3+2:15*3]	 pinMux Control for NAND_IO[2]
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///               %unsigned 3  NAND_IO3                  0x0
///                                    ###
///                                    * pinMuxCntlBus[16*3+2:16*3]	 pinMux Control for NAND_IO[3]
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///               %unsigned 3  NAND_IO4                  0x0
///                                    ###
///                                    * pinMuxCntlBus[17*3+2:17*3]	 pinMux Control for NAND_IO[4]
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///               %unsigned 3  NAND_IO5                  0x0
///                                    ###
///                                    * pinMuxCntlBus[18*3+2:18*3]	 pinMux Control for NAND_IO[5]
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///               %unsigned 3  NAND_IO6                  0x0
///                                    ###
///                                    * pinMuxCntlBus[19*3+2:19*3]	 pinMux Control for NAND_IO[6]
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///               %%        2          # Stuffing bits...
///     # 0x08008 pinMuxCntlBus2       
///               %unsigned 3  NAND_IO7                  0x0
///                                    ###
///                                    * pinMuxCntlBus[20*3+2:20*3]	 pinMux Control for NAND_IO[7]
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///               %unsigned 3  NAND_ALE                  0x0
///                                    ###
///                                    * pinMuxCntlBus[21*3+2:21*3]	 pinMux Control for NAND_ALE
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///               %unsigned 3  NAND_CLE                  0x0
///                                    ###
///                                    * pinMuxCntlBus[22*3+2:22*3]	 pinMux Control for NAND_CLE
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///               %unsigned 3  NAND_WEn                  0x0
///                                    ###
///                                    * pinMuxCntlBus[23*3+2:23*3]	 pinMux Control for NAND_WEn
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_3                    0x3
///               %unsigned 3  NAND_REn                  0x0
///                                    ###
///                                    * pinMuxCntlBus[24*3+2:24*3]	 pinMux Control for NAND_REn
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_3                    0x3
///               %unsigned 3  NAND_WPn                  0x0
///                                    ###
///                                    * pinMuxCntlBus[25*3+2:25*3]	 pinMux Control for NAND_WPn
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_3                    0x3
///               %unsigned 3  NAND_CEn                  0x0
///                                    ###
///                                    * pinMuxCntlBus[26*3+2:26*3]	 pinMux Control for NAND_CEn
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_3                    0x3
///               %unsigned 3  NAND_RDY                  0x0
///                                    ###
///                                    * pinMuxCntlBus[27*3+2:27*3]	 pinMux Control for NAND_RDY
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_3                    0x3
///               %unsigned 3  SD0_CLK                   0x0
///                                    ###
///                                    * pinMuxCntlBus[28*3+2:28*3]	 pinMux Control for SD0_CLK
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_7                    0x7
///               %unsigned 3  SD0_DAT0                  0x0
///                                    ###
///                                    * pinMuxCntlBus[29*3+2:29*3]	 pinMux Control for SD0_DAT0
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_5                    0x5
///                                    : MODE_7                    0x7
///               %%        2          # Stuffing bits...
///     # 0x0800C pinMuxCntlBus3       
///               %unsigned 3  SD0_DAT1                  0x0
///                                    ###
///                                    * pinMuxCntlBus[30*3+2:30*3]	 pinMux Control for SD0_DAT1
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_5                    0x5
///                                    : MODE_7                    0x7
///               %unsigned 3  SD0_DAT2                  0x0
///                                    ###
///                                    * pinMuxCntlBus[31*3+2:31*3]	 pinMux Control for SD0_DAT2
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_4                    0x4
///                                    : MODE_5                    0x5
///                                    : MODE_7                    0x7
///               %unsigned 3  SD0_DAT3                  0x0
///                                    ###
///                                    * pinMuxCntlBus[32*3+2:32*3]	 pinMux Control for SD0_DAT3
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_4                    0x4
///                                    : MODE_5                    0x5
///                                    : MODE_7                    0x7
///               %unsigned 3  SD0_CDn                   0x0
///                                    ###
///                                    * pinMuxCntlBus[33*3+2:33*3]	 pinMux Control for SD0_CDn
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///                                    : MODE_5                    0x5
///                                    : MODE_7                    0x7
///               %unsigned 3  SD0_CMD                   0x0
///                                    ###
///                                    * pinMuxCntlBus[34*3+2:34*3]	 pinMux Control for SD0_CMD
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_7                    0x7
///               %unsigned 3  SD0_WP                    0x0
///                                    ###
///                                    * pinMuxCntlBus[35*3+2:35*3]	 pinMux Control for SD0_WP
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///                                    : MODE_4                    0x4
///                                    : MODE_5                    0x5
///                                    : MODE_7                    0x7
///               %unsigned 3  STS0_CLK                  0x0
///                                    ###
///                                    * pinMuxCntlBus[36*3+2:36*3]	 pinMux Control for STS0_CLK
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_4                    0x4
///               %unsigned 3  STS0_SOP                  0x0
///                                    ###
///                                    * pinMuxCntlBus[37*3+2:37*3]	 pinMux Control for STS0_SOP
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///               %unsigned 3  STS0_VALD                 0x0
///                                    ###
///                                    * pinMuxCntlBus[38*3+2:38*3]	 pinMux Control for STS0_VALD
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///               %unsigned 3  STS0_SD                   0x0
///                                    ###
///                                    * pinMuxCntlBus[39*3+2:39*3]	 pinMux Control for STS0_SD
///                                    ###
///                                    : MODE_0                    0x0
///                                    : MODE_1                    0x1
///                                    : MODE_2                    0x2
///                                    : MODE_3                    0x3
///               %%        2          # Stuffing bits...
///     @ 0x08010 URT0_RXDCntl         (P-)
///               ###
///               * Pad Control for URT0_RXD
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08014 URT0_TXDCntl         (P-)
///               ###
///               * Pad Control for URT0_TXD
///               ###
///               %unsigned 1  PD_EN                     0x1
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08018 SPI1_SS0nCntl        (P-)
///               ###
///               * Pad Control for SPI1_SS0n
///               ###
///               %unsigned 1  PD_EN                     0x1
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x0801C SPI1_SS1nCntl        (P-)
///               ###
///               * Pad Control for SPI1_SS1n
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08020 SPI1_SS2nCntl        (P-)
///               ###
///               * Pad Control for SPI1_SS2n
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08024 SPI1_SCLKCntl        (P-)
///               ###
///               * Pad Control for SPI1_SCLK
///               ###
///               %unsigned 1  PD_EN                     0x1
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08028 SPI1_SDOCntl         (P-)
///               ###
///               * Pad Control for SPI1_SDO
///               ###
///               %unsigned 1  PD_EN                     0x1
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x0802C SPI1_SDICntl         (P-)
///               ###
///               * Pad Control for SPI1_SDI
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08030 USB1_DRV_VBUSCntl    (P-)
///               ###
///               * Pad Control for USB1_DRV_VBUS
///               ###
///               %unsigned 1  PD_EN                     0x1
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08034 NAND_IO0Cntl         (P-)
///               ###
///               * Pad Control for NAND_IO[0]
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08038 NAND_IO1Cntl         (P-)
///               ###
///               * Pad Control for NAND_IO[1]
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x0803C NAND_IO2Cntl         (P-)
///               ###
///               * Pad Control for NAND_IO[2]
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08040 NAND_IO3Cntl         (P-)
///               ###
///               * Pad Control for NAND_IO[3]
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08044 NAND_IO4Cntl         (P-)
///               ###
///               * Pad Control for NAND_IO[4]
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08048 NAND_IO5Cntl         (P-)
///               ###
///               * Pad Control for NAND_IO[5]
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x0804C NAND_IO6Cntl         (P-)
///               ###
///               * Pad Control for NAND_IO[6]
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08050 NAND_IO7Cntl         (P-)
///               ###
///               * Pad Control for NAND_IO[7]
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08054 NAND_ALECntl         (P-)
///               ###
///               * Pad Control for NAND_ALE
///               ###
///               %unsigned 1  PD_EN                     0x1
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08058 NAND_CLECntl         (P-)
///               ###
///               * Pad Control for NAND_CLE
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x1
///               %%        30         # Stuffing bits...
///     @ 0x0805C NAND_WEnCntl         (P-)
///               ###
///               * Pad Control for NAND_WEn
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08060 NAND_REnCntl         (P-)
///               ###
///               * Pad Control for NAND_REn
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08064 NAND_WPnCntl         (P-)
///               ###
///               * Pad Control for NAND_WPn
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x1
///               %%        30         # Stuffing bits...
///     @ 0x08068 NAND_CEnCntl         (P-)
///               ###
///               * Pad Control for NAND_CEn
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x1
///               %%        30         # Stuffing bits...
///     @ 0x0806C NAND_RDYCntl         (P-)
///               ###
///               * Pad Control for NAND_RDY
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x1
///               %%        30         # Stuffing bits...
///     @ 0x08070 SD0_CLKCntl          (P-)
///               ###
///               * Pad Control for SD0_CLK
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08074 SD0_DAT0Cntl         (P-)
///               ###
///               * Pad Control for SD0_DAT0
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08078 SD0_DAT1Cntl         (P-)
///               ###
///               * Pad Control for SD0_DAT1
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x0807C SD0_DAT2Cntl         (P-)
///               ###
///               * Pad Control for SD0_DAT2
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08080 SD0_DAT3Cntl         (P-)
///               ###
///               * Pad Control for SD0_DAT3
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08084 SD0_CDnCntl          (P-)
///               ###
///               * Pad Control for SD0_CDn
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08088 SD0_CMDCntl          (P-)
///               ###
///               * Pad Control for SD0_CMD
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x0808C SD0_WPCntl           (P-)
///               ###
///               * Pad Control for SD0_WP
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08090 STS0_CLKCntl         (P-)
///               ###
///               * Pad Control for STS0_CLK
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08094 STS0_SOPCntl         (P-)
///               ###
///               * Pad Control for STS0_SOP
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x08098 STS0_VALDCntl        (P-)
///               ###
///               * Pad Control for STS0_VALD
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     @ 0x0809C STS0_SDCntl          (P-)
///               ###
///               * Pad Control for STS0_SD
///               ###
///               %unsigned 1  PD_EN                     0x0
///               %unsigned 1  PU_EN                     0x0
///               %%        30         # Stuffing bits...
///     # # ----------------------------------------------------------
/// $ENDOFINTERFACE  # size:   32928B, bits:    3042b, padding:     0B
////////////////////////////////////////////////////////////
#ifndef h_Gbl
#define h_Gbl (){}

    #define     RA_Gbl_ProductId                               0x0000

    #define     BA_Gbl_ProductId_Id                            0x0000
    #define     B16Gbl_ProductId_Id                            0x0000
    #define   LSb32Gbl_ProductId_Id                               0
    #define   LSb16Gbl_ProductId_Id                               0
    #define       bGbl_ProductId_Id                            32
    #define   MSK32Gbl_ProductId_Id                               0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_ProductId_ext                           0x0004

    #define     BA_Gbl_ProductId_ext_ID_EXT                    0x0004
    #define     B16Gbl_ProductId_ext_ID_EXT                    0x0004
    #define   LSb32Gbl_ProductId_ext_ID_EXT                       0
    #define   LSb16Gbl_ProductId_ext_ID_EXT                       0
    #define       bGbl_ProductId_ext_ID_EXT                    8
    #define   MSK32Gbl_ProductId_ext_ID_EXT                       0x000000FF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_INT_ID                                  0x0008

    #define     BA_Gbl_INT_ID_VALUE                            0x0008
    #define     B16Gbl_INT_ID_VALUE                            0x0008
    #define   LSb32Gbl_INT_ID_VALUE                               0
    #define   LSb16Gbl_INT_ID_VALUE                               0
    #define       bGbl_INT_ID_VALUE                            8
    #define   MSK32Gbl_INT_ID_VALUE                               0x000000FF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_bootStrap                               0x000C

    #define     BA_Gbl_bootStrap_softwareStrap                 0x000C
    #define     B16Gbl_bootStrap_softwareStrap                 0x000C
    #define   LSb32Gbl_bootStrap_softwareStrap                    0
    #define   LSb16Gbl_bootStrap_softwareStrap                    0
    #define       bGbl_bootStrap_softwareStrap                 2
    #define   MSK32Gbl_bootStrap_softwareStrap                    0x00000003

    #define     BA_Gbl_bootStrap_bootSrc                       0x000C
    #define     B16Gbl_bootStrap_bootSrc                       0x000C
    #define   LSb32Gbl_bootStrap_bootSrc                          2
    #define   LSb16Gbl_bootStrap_bootSrc                          2
    #define       bGbl_bootStrap_bootSrc                       2
    #define   MSK32Gbl_bootStrap_bootSrc                          0x0000000C
    #define        Gbl_bootStrap_bootSrc_ROM_SPI_BOOT                       0x0
    #define        Gbl_bootStrap_bootSrc_ROM_NAND_BOOT                      0x1
    #define        Gbl_bootStrap_bootSrc_ROM_EMMC_BOOT                      0x2
    #define        Gbl_bootStrap_bootSrc_ROM_SPI_DIRECT_BOOT                0x3

    #define     BA_Gbl_bootStrap_cpuRstByps                    0x000C
    #define     B16Gbl_bootStrap_cpuRstByps                    0x000C
    #define   LSb32Gbl_bootStrap_cpuRstByps                       4
    #define   LSb16Gbl_bootStrap_cpuRstByps                       4
    #define       bGbl_bootStrap_cpuRstByps                    1
    #define   MSK32Gbl_bootStrap_cpuRstByps                       0x00000010
    #define        Gbl_bootStrap_cpuRstByps_CPU_INT_RST_BYPS                0x1
    #define        Gbl_bootStrap_cpuRstByps_CPU_INT_RST_EN                  0x0

    #define     BA_Gbl_bootStrap_pwrCntlByps                   0x000C
    #define     B16Gbl_bootStrap_pwrCntlByps                   0x000C
    #define   LSb32Gbl_bootStrap_pwrCntlByps                      5
    #define   LSb16Gbl_bootStrap_pwrCntlByps                      5
    #define       bGbl_bootStrap_pwrCntlByps                   1
    #define   MSK32Gbl_bootStrap_pwrCntlByps                      0x00000020
    #define        Gbl_bootStrap_pwrCntlByps_PWR_SWITCH_ON                  0x1
    #define        Gbl_bootStrap_pwrCntlByps_PWR_SWITCH_OFF                 0x0

    #define     BA_Gbl_bootStrap_pllPwrDown                    0x000C
    #define     B16Gbl_bootStrap_pllPwrDown                    0x000C
    #define   LSb32Gbl_bootStrap_pllPwrDown                       6
    #define   LSb16Gbl_bootStrap_pllPwrDown                       6
    #define       bGbl_bootStrap_pllPwrDown                    1
    #define   MSK32Gbl_bootStrap_pllPwrDown                       0x00000040
    #define        Gbl_bootStrap_pllPwrDown_PWR_DOWN                        0x1
    #define        Gbl_bootStrap_pllPwrDown_PWR_UP                          0x0

    #define     BA_Gbl_bootStrap_sysPllByps                    0x000C
    #define     B16Gbl_bootStrap_sysPllByps                    0x000C
    #define   LSb32Gbl_bootStrap_sysPllByps                       7
    #define   LSb16Gbl_bootStrap_sysPllByps                       7
    #define       bGbl_bootStrap_sysPllByps                    1
    #define   MSK32Gbl_bootStrap_sysPllByps                       0x00000080
    #define        Gbl_bootStrap_sysPllByps_PLL_OUT                         0x0
    #define        Gbl_bootStrap_sysPllByps_BYPS                            0x1

    #define     BA_Gbl_bootStrap_memPllByps                    0x000D
    #define     B16Gbl_bootStrap_memPllByps                    0x000C
    #define   LSb32Gbl_bootStrap_memPllByps                       8
    #define   LSb16Gbl_bootStrap_memPllByps                       8
    #define       bGbl_bootStrap_memPllByps                    1
    #define   MSK32Gbl_bootStrap_memPllByps                       0x00000100
    #define        Gbl_bootStrap_memPllByps_PLL_OUT                         0x0
    #define        Gbl_bootStrap_memPllByps_BYPS                            0x1

    #define     BA_Gbl_bootStrap_cpuPllByps                    0x000D
    #define     B16Gbl_bootStrap_cpuPllByps                    0x000C
    #define   LSb32Gbl_bootStrap_cpuPllByps                       9
    #define   LSb16Gbl_bootStrap_cpuPllByps                       9
    #define       bGbl_bootStrap_cpuPllByps                    1
    #define   MSK32Gbl_bootStrap_cpuPllByps                       0x00000200
    #define        Gbl_bootStrap_cpuPllByps_PLL_OUT                         0x0
    #define        Gbl_bootStrap_cpuPllByps_BYPS                            0x1

    #define     BA_Gbl_bootStrap_nandV18Enable                 0x000D
    #define     B16Gbl_bootStrap_nandV18Enable                 0x000C
    #define   LSb32Gbl_bootStrap_nandV18Enable                    10
    #define   LSb16Gbl_bootStrap_nandV18Enable                    10
    #define       bGbl_bootStrap_nandV18Enable                 1
    #define   MSK32Gbl_bootStrap_nandV18Enable                    0x00000400
    #define        Gbl_bootStrap_nandV18Enable_V1R8                         0x0
    #define        Gbl_bootStrap_nandV18Enable_V3R3                         0x1

    #define     BA_Gbl_bootStrap_dftStrap                      0x000D
    #define     B16Gbl_bootStrap_dftStrap                      0x000C
    #define   LSb32Gbl_bootStrap_dftStrap                         11
    #define   LSb16Gbl_bootStrap_dftStrap                         11
    #define       bGbl_bootStrap_dftStrap                      1
    #define   MSK32Gbl_bootStrap_dftStrap                         0x00000800

    #define     BA_Gbl_bootStrap_ENG_EN                        0x000D
    #define     B16Gbl_bootStrap_ENG_EN                        0x000C
    #define   LSb32Gbl_bootStrap_ENG_EN                           12
    #define   LSb16Gbl_bootStrap_ENG_EN                           12
    #define       bGbl_bootStrap_ENG_EN                        1
    #define   MSK32Gbl_bootStrap_ENG_EN                           0x00001000
    #define        Gbl_bootStrap_ENG_EN_PRODUCTION_MODE                     0x0
    #define        Gbl_bootStrap_ENG_EN_DEVELOPE_MODE                       0x1
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_bootStrapEn                             0x0010

    #define     BA_Gbl_bootStrapEn_cpuRstBypsEn                0x0010
    #define     B16Gbl_bootStrapEn_cpuRstBypsEn                0x0010
    #define   LSb32Gbl_bootStrapEn_cpuRstBypsEn                   0
    #define   LSb16Gbl_bootStrapEn_cpuRstBypsEn                   0
    #define       bGbl_bootStrapEn_cpuRstBypsEn                1
    #define   MSK32Gbl_bootStrapEn_cpuRstBypsEn                   0x00000001
    #define        Gbl_bootStrapEn_cpuRstBypsEn_ENABLE                      0x1
    #define        Gbl_bootStrapEn_cpuRstBypsEn_DISABLE                     0x0

    #define     BA_Gbl_bootStrapEn_pwrCntlBypsEn               0x0010
    #define     B16Gbl_bootStrapEn_pwrCntlBypsEn               0x0010
    #define   LSb32Gbl_bootStrapEn_pwrCntlBypsEn                  1
    #define   LSb16Gbl_bootStrapEn_pwrCntlBypsEn                  1
    #define       bGbl_bootStrapEn_pwrCntlBypsEn               1
    #define   MSK32Gbl_bootStrapEn_pwrCntlBypsEn                  0x00000002
    #define        Gbl_bootStrapEn_pwrCntlBypsEn_ENABLE                     0x1
    #define        Gbl_bootStrapEn_pwrCntlBypsEn_DISABLE                    0x0

    #define     BA_Gbl_bootStrapEn_pllPwrDownEn                0x0010
    #define     B16Gbl_bootStrapEn_pllPwrDownEn                0x0010
    #define   LSb32Gbl_bootStrapEn_pllPwrDownEn                   2
    #define   LSb16Gbl_bootStrapEn_pllPwrDownEn                   2
    #define       bGbl_bootStrapEn_pllPwrDownEn                1
    #define   MSK32Gbl_bootStrapEn_pllPwrDownEn                   0x00000004
    #define        Gbl_bootStrapEn_pllPwrDownEn_ENABLE                      0x1
    #define        Gbl_bootStrapEn_pllPwrDownEn_DISABLE                     0x0

    #define     BA_Gbl_bootStrapEn_sysPLLBypsEn                0x0010
    #define     B16Gbl_bootStrapEn_sysPLLBypsEn                0x0010
    #define   LSb32Gbl_bootStrapEn_sysPLLBypsEn                   3
    #define   LSb16Gbl_bootStrapEn_sysPLLBypsEn                   3
    #define       bGbl_bootStrapEn_sysPLLBypsEn                1
    #define   MSK32Gbl_bootStrapEn_sysPLLBypsEn                   0x00000008
    #define        Gbl_bootStrapEn_sysPLLBypsEn_ENABLE                      0x1
    #define        Gbl_bootStrapEn_sysPLLBypsEn_DISABLE                     0x0

    #define     BA_Gbl_bootStrapEn_memPLLBypsEn                0x0010
    #define     B16Gbl_bootStrapEn_memPLLBypsEn                0x0010
    #define   LSb32Gbl_bootStrapEn_memPLLBypsEn                   4
    #define   LSb16Gbl_bootStrapEn_memPLLBypsEn                   4
    #define       bGbl_bootStrapEn_memPLLBypsEn                1
    #define   MSK32Gbl_bootStrapEn_memPLLBypsEn                   0x00000010
    #define        Gbl_bootStrapEn_memPLLBypsEn_ENABLE                      0x1
    #define        Gbl_bootStrapEn_memPLLBypsEn_DISABLE                     0x0

    #define     BA_Gbl_bootStrapEn_cpuPLLBypsEn                0x0010
    #define     B16Gbl_bootStrapEn_cpuPLLBypsEn                0x0010
    #define   LSb32Gbl_bootStrapEn_cpuPLLBypsEn                   5
    #define   LSb16Gbl_bootStrapEn_cpuPLLBypsEn                   5
    #define       bGbl_bootStrapEn_cpuPLLBypsEn                1
    #define   MSK32Gbl_bootStrapEn_cpuPLLBypsEn                   0x00000020
    #define        Gbl_bootStrapEn_cpuPLLBypsEn_ENABLE                      0x1
    #define        Gbl_bootStrapEn_cpuPLLBypsEn_DISABLE                     0x0
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_chipCntl                                0x0014

    #define     BA_Gbl_chipCntl_SD0_CLK_LPBK_EN                0x0014
    #define     B16Gbl_chipCntl_SD0_CLK_LPBK_EN                0x0014
    #define   LSb32Gbl_chipCntl_SD0_CLK_LPBK_EN                   0
    #define   LSb16Gbl_chipCntl_SD0_CLK_LPBK_EN                   0
    #define       bGbl_chipCntl_SD0_CLK_LPBK_EN                1
    #define   MSK32Gbl_chipCntl_SD0_CLK_LPBK_EN                   0x00000001

    #define     BA_Gbl_chipCntl_EMMC_CLK_LPBK_EN               0x0014
    #define     B16Gbl_chipCntl_EMMC_CLK_LPBK_EN               0x0014
    #define   LSb32Gbl_chipCntl_EMMC_CLK_LPBK_EN                  1
    #define   LSb16Gbl_chipCntl_EMMC_CLK_LPBK_EN                  1
    #define       bGbl_chipCntl_EMMC_CLK_LPBK_EN               1
    #define   MSK32Gbl_chipCntl_EMMC_CLK_LPBK_EN                  0x00000002

    #define     BA_Gbl_chipCntl_FE_MDIO_SEL                    0x0014
    #define     B16Gbl_chipCntl_FE_MDIO_SEL                    0x0014
    #define   LSb32Gbl_chipCntl_FE_MDIO_SEL                       2
    #define   LSb16Gbl_chipCntl_FE_MDIO_SEL                       2
    #define       bGbl_chipCntl_FE_MDIO_SEL                    1
    #define   MSK32Gbl_chipCntl_FE_MDIO_SEL                       0x00000004

    #define     BA_Gbl_chipCntl_eth1_PHY_SEL                   0x0014
    #define     B16Gbl_chipCntl_eth1_PHY_SEL                   0x0014
    #define   LSb32Gbl_chipCntl_eth1_PHY_SEL                      3
    #define   LSb16Gbl_chipCntl_eth1_PHY_SEL                      3
    #define       bGbl_chipCntl_eth1_PHY_SEL                   1
    #define   MSK32Gbl_chipCntl_eth1_PHY_SEL                      0x00000008
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_sw_generic0                             0x0018

    #define     BA_Gbl_sw_generic0_swReg0                      0x0018
    #define     B16Gbl_sw_generic0_swReg0                      0x0018
    #define   LSb32Gbl_sw_generic0_swReg0                         0
    #define   LSb16Gbl_sw_generic0_swReg0                         0
    #define       bGbl_sw_generic0_swReg0                      32
    #define   MSK32Gbl_sw_generic0_swReg0                         0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_sw_generic1                             0x001C

    #define     BA_Gbl_sw_generic1_swReg1                      0x001C
    #define     B16Gbl_sw_generic1_swReg1                      0x001C
    #define   LSb32Gbl_sw_generic1_swReg1                         0
    #define   LSb16Gbl_sw_generic1_swReg1                         0
    #define       bGbl_sw_generic1_swReg1                      32
    #define   MSK32Gbl_sw_generic1_swReg1                         0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_sw_generic2                             0x0020

    #define     BA_Gbl_sw_generic2_swReg2                      0x0020
    #define     B16Gbl_sw_generic2_swReg2                      0x0020
    #define   LSb32Gbl_sw_generic2_swReg2                         0
    #define   LSb16Gbl_sw_generic2_swReg2                         0
    #define       bGbl_sw_generic2_swReg2                      32
    #define   MSK32Gbl_sw_generic2_swReg2                         0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_sw_generic3                             0x0024

    #define     BA_Gbl_sw_generic3_swReg3                      0x0024
    #define     B16Gbl_sw_generic3_swReg3                      0x0024
    #define   LSb32Gbl_sw_generic3_swReg3                         0
    #define   LSb16Gbl_sw_generic3_swReg3                         0
    #define       bGbl_sw_generic3_swReg3                      32
    #define   MSK32Gbl_sw_generic3_swReg3                         0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_RWTC_gfx3D31to0                         0x0028

    #define     BA_Gbl_RWTC_gfx3D31to0_value                   0x0028
    #define     B16Gbl_RWTC_gfx3D31to0_value                   0x0028
    #define   LSb32Gbl_RWTC_gfx3D31to0_value                      0
    #define   LSb16Gbl_RWTC_gfx3D31to0_value                      0
    #define       bGbl_RWTC_gfx3D31to0_value                   32
    #define   MSK32Gbl_RWTC_gfx3D31to0_value                      0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_RWTC_gfx3D57to32                        0x002C

    #define     BA_Gbl_RWTC_gfx3D57to32_value                  0x002C
    #define     B16Gbl_RWTC_gfx3D57to32_value                  0x002C
    #define   LSb32Gbl_RWTC_gfx3D57to32_value                     0
    #define   LSb16Gbl_RWTC_gfx3D57to32_value                     0
    #define       bGbl_RWTC_gfx3D57to32_value                  26
    #define   MSK32Gbl_RWTC_gfx3D57to32_value                     0x03FFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_RWTC_top31to0                           0x0030

    #define     BA_Gbl_RWTC_top31to0_value                     0x0030
    #define     B16Gbl_RWTC_top31to0_value                     0x0030
    #define   LSb32Gbl_RWTC_top31to0_value                        0
    #define   LSb16Gbl_RWTC_top31to0_value                        0
    #define       bGbl_RWTC_top31to0_value                     32
    #define   MSK32Gbl_RWTC_top31to0_value                        0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_RWTC_top57to32                          0x0034

    #define     BA_Gbl_RWTC_top57to32_value                    0x0034
    #define     B16Gbl_RWTC_top57to32_value                    0x0034
    #define   LSb32Gbl_RWTC_top57to32_value                       0
    #define   LSb16Gbl_RWTC_top57to32_value                       0
    #define       bGbl_RWTC_top57to32_value                    26
    #define   MSK32Gbl_RWTC_top57to32_value                       0x03FFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_RWTC_vPro31to0                          0x0038

    #define     BA_Gbl_RWTC_vPro31to0_value                    0x0038
    #define     B16Gbl_RWTC_vPro31to0_value                    0x0038
    #define   LSb32Gbl_RWTC_vPro31to0_value                       0
    #define   LSb16Gbl_RWTC_vPro31to0_value                       0
    #define       bGbl_RWTC_vPro31to0_value                    32
    #define   MSK32Gbl_RWTC_vPro31to0_value                       0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_RWTC_vPro57to32                         0x003C

    #define     BA_Gbl_RWTC_vPro57to32_value                   0x003C
    #define     B16Gbl_RWTC_vPro57to32_value                   0x003C
    #define   LSb32Gbl_RWTC_vPro57to32_value                      0
    #define   LSb16Gbl_RWTC_vPro57to32_value                      0
    #define       bGbl_RWTC_vPro57to32_value                   26
    #define   MSK32Gbl_RWTC_vPro57to32_value                      0x03FFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_RWTC_g1Wrap31to0                        0x0040

    #define     BA_Gbl_RWTC_g1Wrap31to0_value                  0x0040
    #define     B16Gbl_RWTC_g1Wrap31to0_value                  0x0040
    #define   LSb32Gbl_RWTC_g1Wrap31to0_value                     0
    #define   LSb16Gbl_RWTC_g1Wrap31to0_value                     0
    #define       bGbl_RWTC_g1Wrap31to0_value                  32
    #define   MSK32Gbl_RWTC_g1Wrap31to0_value                     0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_RWTC_g1Wrap57to32                       0x0044

    #define     BA_Gbl_RWTC_g1Wrap57to32_value                 0x0044
    #define     B16Gbl_RWTC_g1Wrap57to32_value                 0x0044
    #define   LSb32Gbl_RWTC_g1Wrap57to32_value                    0
    #define   LSb16Gbl_RWTC_g1Wrap57to32_value                    0
    #define       bGbl_RWTC_g1Wrap57to32_value                 26
    #define   MSK32Gbl_RWTC_g1Wrap57to32_value                    0x03FFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_RWTC_mr7to0                             0x0048

    #define     BA_Gbl_RWTC_mr7to0_value                       0x0048
    #define     B16Gbl_RWTC_mr7to0_value                       0x0048
    #define   LSb32Gbl_RWTC_mr7to0_value                          0
    #define   LSb16Gbl_RWTC_mr7to0_value                          0
    #define       bGbl_RWTC_mr7to0_value                       8
    #define   MSK32Gbl_RWTC_mr7to0_value                          0x000000FF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_FPGAR                                   0x004C

    #define     BA_Gbl_FPGAR_FPGAR                             0x004C
    #define     B16Gbl_FPGAR_FPGAR                             0x004C
    #define   LSb32Gbl_FPGAR_FPGAR                                0
    #define   LSb16Gbl_FPGAR_FPGAR                                0
    #define       bGbl_FPGAR_FPGAR                             32
    #define   MSK32Gbl_FPGAR_FPGAR                                0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_FPGARW                                  0x0050

    #define     BA_Gbl_FPGARW_FPGARW                           0x0050
    #define     B16Gbl_FPGARW_FPGARW                           0x0050
    #define   LSb32Gbl_FPGARW_FPGARW                              0
    #define   LSb16Gbl_FPGARW_FPGARW                              0
    #define       bGbl_FPGARW_FPGARW                           32
    #define   MSK32Gbl_FPGARW_FPGARW                              0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_sysPll                                  0x0200
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_AVPLLB                                  0x0300
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_ResetTrigger                            0x0600

    #define     BA_Gbl_ResetTrigger_chipReset                  0x0600
    #define     B16Gbl_ResetTrigger_chipReset                  0x0600
    #define   LSb32Gbl_ResetTrigger_chipReset                     0
    #define   LSb16Gbl_ResetTrigger_chipReset                     0
    #define       bGbl_ResetTrigger_chipReset                  1
    #define   MSK32Gbl_ResetTrigger_chipReset                     0x00000001
    #define        Gbl_ResetTrigger_chipReset_assert                        0x1
    #define        Gbl_ResetTrigger_chipReset_deassert                      0x0

    #define     BA_Gbl_ResetTrigger_socDdrSyncReset            0x0600
    #define     B16Gbl_ResetTrigger_socDdrSyncReset            0x0600
    #define   LSb32Gbl_ResetTrigger_socDdrSyncReset               1
    #define   LSb16Gbl_ResetTrigger_socDdrSyncReset               1
    #define       bGbl_ResetTrigger_socDdrSyncReset            1
    #define   MSK32Gbl_ResetTrigger_socDdrSyncReset               0x00000002
    #define        Gbl_ResetTrigger_socDdrSyncReset_assert                  0x1
    #define        Gbl_ResetTrigger_socDdrSyncReset_deassert                0x0

    #define     BA_Gbl_ResetTrigger_avioSyncReset              0x0600
    #define     B16Gbl_ResetTrigger_avioSyncReset              0x0600
    #define   LSb32Gbl_ResetTrigger_avioSyncReset                 2
    #define   LSb16Gbl_ResetTrigger_avioSyncReset                 2
    #define       bGbl_ResetTrigger_avioSyncReset              1
    #define   MSK32Gbl_ResetTrigger_avioSyncReset                 0x00000004
    #define        Gbl_ResetTrigger_avioSyncReset_assert                    0x1
    #define        Gbl_ResetTrigger_avioSyncReset_deassert                  0x0

    #define     BA_Gbl_ResetTrigger_zspSyncReset               0x0600
    #define     B16Gbl_ResetTrigger_zspSyncReset               0x0600
    #define   LSb32Gbl_ResetTrigger_zspSyncReset                  3
    #define   LSb16Gbl_ResetTrigger_zspSyncReset                  3
    #define       bGbl_ResetTrigger_zspSyncReset               1
    #define   MSK32Gbl_ResetTrigger_zspSyncReset                  0x00000008
    #define        Gbl_ResetTrigger_zspSyncReset_assert                     0x1
    #define        Gbl_ResetTrigger_zspSyncReset_deassert                   0x0

    #define     BA_Gbl_ResetTrigger_perifSyncReset             0x0600
    #define     B16Gbl_ResetTrigger_perifSyncReset             0x0600
    #define   LSb32Gbl_ResetTrigger_perifSyncReset                4
    #define   LSb16Gbl_ResetTrigger_perifSyncReset                4
    #define       bGbl_ResetTrigger_perifSyncReset             1
    #define   MSK32Gbl_ResetTrigger_perifSyncReset                0x00000010
    #define        Gbl_ResetTrigger_perifSyncReset_assert                   0x1
    #define        Gbl_ResetTrigger_perifSyncReset_deassert                 0x0

    #define     BA_Gbl_ResetTrigger_ethSyncReset               0x0600
    #define     B16Gbl_ResetTrigger_ethSyncReset               0x0600
    #define   LSb32Gbl_ResetTrigger_ethSyncReset                  5
    #define   LSb16Gbl_ResetTrigger_ethSyncReset                  5
    #define       bGbl_ResetTrigger_ethSyncReset               1
    #define   MSK32Gbl_ResetTrigger_ethSyncReset                  0x00000020
    #define        Gbl_ResetTrigger_ethSyncReset_assert                     0x1
    #define        Gbl_ResetTrigger_ethSyncReset_deassert                   0x0

    #define     BA_Gbl_ResetTrigger_ahbApbSyncReset            0x0600
    #define     B16Gbl_ResetTrigger_ahbApbSyncReset            0x0600
    #define   LSb32Gbl_ResetTrigger_ahbApbSyncReset               6
    #define   LSb16Gbl_ResetTrigger_ahbApbSyncReset               6
    #define       bGbl_ResetTrigger_ahbApbSyncReset            1
    #define   MSK32Gbl_ResetTrigger_ahbApbSyncReset               0x00000040
    #define        Gbl_ResetTrigger_ahbApbSyncReset_assert                  0x1
    #define        Gbl_ResetTrigger_ahbApbSyncReset_deassert                0x0

    #define     BA_Gbl_ResetTrigger_nanfSyncReset              0x0600
    #define     B16Gbl_ResetTrigger_nanfSyncReset              0x0600
    #define   LSb32Gbl_ResetTrigger_nanfSyncReset                 7
    #define   LSb16Gbl_ResetTrigger_nanfSyncReset                 7
    #define       bGbl_ResetTrigger_nanfSyncReset              1
    #define   MSK32Gbl_ResetTrigger_nanfSyncReset                 0x00000080
    #define        Gbl_ResetTrigger_nanfSyncReset_assert                    0x1
    #define        Gbl_ResetTrigger_nanfSyncReset_deassert                  0x0

    #define     BA_Gbl_ResetTrigger_usb0SyncReset              0x0601
    #define     B16Gbl_ResetTrigger_usb0SyncReset              0x0600
    #define   LSb32Gbl_ResetTrigger_usb0SyncReset                 8
    #define   LSb16Gbl_ResetTrigger_usb0SyncReset                 8
    #define       bGbl_ResetTrigger_usb0SyncReset              1
    #define   MSK32Gbl_ResetTrigger_usb0SyncReset                 0x00000100
    #define        Gbl_ResetTrigger_usb0SyncReset_assert                    0x1
    #define        Gbl_ResetTrigger_usb0SyncReset_deassert                  0x0

    #define     BA_Gbl_ResetTrigger_pBridgeSyncReset           0x0601
    #define     B16Gbl_ResetTrigger_pBridgeSyncReset           0x0600
    #define   LSb32Gbl_ResetTrigger_pBridgeSyncReset              9
    #define   LSb16Gbl_ResetTrigger_pBridgeSyncReset              9
    #define       bGbl_ResetTrigger_pBridgeSyncReset           1
    #define   MSK32Gbl_ResetTrigger_pBridgeSyncReset              0x00000200
    #define        Gbl_ResetTrigger_pBridgeSyncReset_assert                 0x1
    #define        Gbl_ResetTrigger_pBridgeSyncReset_deassert               0x0

    #define     BA_Gbl_ResetTrigger_sdioSyncReset              0x0601
    #define     B16Gbl_ResetTrigger_sdioSyncReset              0x0600
    #define   LSb32Gbl_ResetTrigger_sdioSyncReset                 10
    #define   LSb16Gbl_ResetTrigger_sdioSyncReset                 10
    #define       bGbl_ResetTrigger_sdioSyncReset              1
    #define   MSK32Gbl_ResetTrigger_sdioSyncReset                 0x00000400
    #define        Gbl_ResetTrigger_sdioSyncReset_assert                    0x1
    #define        Gbl_ResetTrigger_sdioSyncReset_deassert                  0x0

    #define     BA_Gbl_ResetTrigger_tspSyncReset               0x0601
    #define     B16Gbl_ResetTrigger_tspSyncReset               0x0600
    #define   LSb32Gbl_ResetTrigger_tspSyncReset                  11
    #define   LSb16Gbl_ResetTrigger_tspSyncReset                  11
    #define       bGbl_ResetTrigger_tspSyncReset               1
    #define   MSK32Gbl_ResetTrigger_tspSyncReset                  0x00000800
    #define        Gbl_ResetTrigger_tspSyncReset_assert                     0x1
    #define        Gbl_ResetTrigger_tspSyncReset_deassert                   0x0

    #define     BA_Gbl_ResetTrigger_v2gSyncReset               0x0601
    #define     B16Gbl_ResetTrigger_v2gSyncReset               0x0600
    #define   LSb32Gbl_ResetTrigger_v2gSyncReset                  12
    #define   LSb16Gbl_ResetTrigger_v2gSyncReset                  12
    #define       bGbl_ResetTrigger_v2gSyncReset               1
    #define   MSK32Gbl_ResetTrigger_v2gSyncReset                  0x00001000
    #define        Gbl_ResetTrigger_v2gSyncReset_assert                     0x1
    #define        Gbl_ResetTrigger_v2gSyncReset_deassert                   0x0

    #define     BA_Gbl_ResetTrigger_g1SyncReset                0x0601
    #define     B16Gbl_ResetTrigger_g1SyncReset                0x0600
    #define   LSb32Gbl_ResetTrigger_g1SyncReset                   13
    #define   LSb16Gbl_ResetTrigger_g1SyncReset                   13
    #define       bGbl_ResetTrigger_g1SyncReset                1
    #define   MSK32Gbl_ResetTrigger_g1SyncReset                   0x00002000
    #define        Gbl_ResetTrigger_g1SyncReset_assert                      0x1
    #define        Gbl_ResetTrigger_g1SyncReset_deassert                    0x0

    #define     BA_Gbl_ResetTrigger_bcmSyncReset               0x0601
    #define     B16Gbl_ResetTrigger_bcmSyncReset               0x0600
    #define   LSb32Gbl_ResetTrigger_bcmSyncReset                  14
    #define   LSb16Gbl_ResetTrigger_bcmSyncReset                  14
    #define       bGbl_ResetTrigger_bcmSyncReset               1
    #define   MSK32Gbl_ResetTrigger_bcmSyncReset                  0x00004000
    #define        Gbl_ResetTrigger_bcmSyncReset_assert                     0x1
    #define        Gbl_ResetTrigger_bcmSyncReset_deassert                   0x0

    #define     BA_Gbl_ResetTrigger_atbSyncReset               0x0601
    #define     B16Gbl_ResetTrigger_atbSyncReset               0x0600
    #define   LSb32Gbl_ResetTrigger_atbSyncReset                  15
    #define   LSb16Gbl_ResetTrigger_atbSyncReset                  15
    #define       bGbl_ResetTrigger_atbSyncReset               1
    #define   MSK32Gbl_ResetTrigger_atbSyncReset                  0x00008000
    #define        Gbl_ResetTrigger_atbSyncReset_assert                     0x1
    #define        Gbl_ResetTrigger_atbSyncReset_deassert                   0x0
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_ResetStatus                             0x0604

    #define     BA_Gbl_ResetStatus_ChipResetStatus             0x0604
    #define     B16Gbl_ResetStatus_ChipResetStatus             0x0604
    #define   LSb32Gbl_ResetStatus_ChipResetStatus                0
    #define   LSb16Gbl_ResetStatus_ChipResetStatus                0
    #define       bGbl_ResetStatus_ChipResetStatus             1
    #define   MSK32Gbl_ResetStatus_ChipResetStatus                0x00000001
    #define        Gbl_ResetStatus_ChipResetStatus_asserted                 0x1
    #define        Gbl_ResetStatus_ChipResetStatus_deasserted               0x0

    #define     BA_Gbl_ResetStatus_wd0Status                   0x0604
    #define     B16Gbl_ResetStatus_wd0Status                   0x0604
    #define   LSb32Gbl_ResetStatus_wd0Status                      1
    #define   LSb16Gbl_ResetStatus_wd0Status                      1
    #define       bGbl_ResetStatus_wd0Status                   1
    #define   MSK32Gbl_ResetStatus_wd0Status                      0x00000002
    #define        Gbl_ResetStatus_wd0Status_asserted                       0x1
    #define        Gbl_ResetStatus_wd0Status_deasserted                     0x0

    #define     BA_Gbl_ResetStatus_wd1Status                   0x0604
    #define     B16Gbl_ResetStatus_wd1Status                   0x0604
    #define   LSb32Gbl_ResetStatus_wd1Status                      2
    #define   LSb16Gbl_ResetStatus_wd1Status                      2
    #define       bGbl_ResetStatus_wd1Status                   1
    #define   MSK32Gbl_ResetStatus_wd1Status                      0x00000004
    #define        Gbl_ResetStatus_wd1Status_asserted                       0x1
    #define        Gbl_ResetStatus_wd1Status_deasserted                     0x0

    #define     BA_Gbl_ResetStatus_wd2Status                   0x0604
    #define     B16Gbl_ResetStatus_wd2Status                   0x0604
    #define   LSb32Gbl_ResetStatus_wd2Status                      3
    #define   LSb16Gbl_ResetStatus_wd2Status                      3
    #define       bGbl_ResetStatus_wd2Status                   1
    #define   MSK32Gbl_ResetStatus_wd2Status                      0x00000008
    #define        Gbl_ResetStatus_wd2Status_asserted                       0x1
    #define        Gbl_ResetStatus_wd2Status_deasserted                     0x0

    #define     BA_Gbl_ResetStatus_socDdrSyncResetStatus       0x0604
    #define     B16Gbl_ResetStatus_socDdrSyncResetStatus       0x0604
    #define   LSb32Gbl_ResetStatus_socDdrSyncResetStatus          4
    #define   LSb16Gbl_ResetStatus_socDdrSyncResetStatus          4
    #define       bGbl_ResetStatus_socDdrSyncResetStatus       1
    #define   MSK32Gbl_ResetStatus_socDdrSyncResetStatus          0x00000010
    #define        Gbl_ResetStatus_socDdrSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_socDdrSyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_avioSyncResetStatus         0x0604
    #define     B16Gbl_ResetStatus_avioSyncResetStatus         0x0604
    #define   LSb32Gbl_ResetStatus_avioSyncResetStatus            5
    #define   LSb16Gbl_ResetStatus_avioSyncResetStatus            5
    #define       bGbl_ResetStatus_avioSyncResetStatus         1
    #define   MSK32Gbl_ResetStatus_avioSyncResetStatus            0x00000020
    #define        Gbl_ResetStatus_avioSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_avioSyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_zspSyncResetStatus          0x0604
    #define     B16Gbl_ResetStatus_zspSyncResetStatus          0x0604
    #define   LSb32Gbl_ResetStatus_zspSyncResetStatus             6
    #define   LSb16Gbl_ResetStatus_zspSyncResetStatus             6
    #define       bGbl_ResetStatus_zspSyncResetStatus          1
    #define   MSK32Gbl_ResetStatus_zspSyncResetStatus             0x00000040
    #define        Gbl_ResetStatus_zspSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_zspSyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_perifSyncResetStatus        0x0604
    #define     B16Gbl_ResetStatus_perifSyncResetStatus        0x0604
    #define   LSb32Gbl_ResetStatus_perifSyncResetStatus           7
    #define   LSb16Gbl_ResetStatus_perifSyncResetStatus           7
    #define       bGbl_ResetStatus_perifSyncResetStatus        1
    #define   MSK32Gbl_ResetStatus_perifSyncResetStatus           0x00000080
    #define        Gbl_ResetStatus_perifSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_perifSyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_ethSyncResetStatus          0x0605
    #define     B16Gbl_ResetStatus_ethSyncResetStatus          0x0604
    #define   LSb32Gbl_ResetStatus_ethSyncResetStatus             8
    #define   LSb16Gbl_ResetStatus_ethSyncResetStatus             8
    #define       bGbl_ResetStatus_ethSyncResetStatus          1
    #define   MSK32Gbl_ResetStatus_ethSyncResetStatus             0x00000100
    #define        Gbl_ResetStatus_ethSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_ethSyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_ahbApbSyncResetStatus       0x0605
    #define     B16Gbl_ResetStatus_ahbApbSyncResetStatus       0x0604
    #define   LSb32Gbl_ResetStatus_ahbApbSyncResetStatus          9
    #define   LSb16Gbl_ResetStatus_ahbApbSyncResetStatus          9
    #define       bGbl_ResetStatus_ahbApbSyncResetStatus       1
    #define   MSK32Gbl_ResetStatus_ahbApbSyncResetStatus          0x00000200
    #define        Gbl_ResetStatus_ahbApbSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_ahbApbSyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_nanfSyncResetStatus         0x0605
    #define     B16Gbl_ResetStatus_nanfSyncResetStatus         0x0604
    #define   LSb32Gbl_ResetStatus_nanfSyncResetStatus            10
    #define   LSb16Gbl_ResetStatus_nanfSyncResetStatus            10
    #define       bGbl_ResetStatus_nanfSyncResetStatus         1
    #define   MSK32Gbl_ResetStatus_nanfSyncResetStatus            0x00000400
    #define        Gbl_ResetStatus_nanfSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_nanfSyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_usb0SyncResetStatus         0x0605
    #define     B16Gbl_ResetStatus_usb0SyncResetStatus         0x0604
    #define   LSb32Gbl_ResetStatus_usb0SyncResetStatus            11
    #define   LSb16Gbl_ResetStatus_usb0SyncResetStatus            11
    #define       bGbl_ResetStatus_usb0SyncResetStatus         1
    #define   MSK32Gbl_ResetStatus_usb0SyncResetStatus            0x00000800
    #define        Gbl_ResetStatus_usb0SyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_usb0SyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_pBridgeSyncResetStatus      0x0605
    #define     B16Gbl_ResetStatus_pBridgeSyncResetStatus      0x0604
    #define   LSb32Gbl_ResetStatus_pBridgeSyncResetStatus         12
    #define   LSb16Gbl_ResetStatus_pBridgeSyncResetStatus         12
    #define       bGbl_ResetStatus_pBridgeSyncResetStatus      1
    #define   MSK32Gbl_ResetStatus_pBridgeSyncResetStatus         0x00001000
    #define        Gbl_ResetStatus_pBridgeSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_pBridgeSyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_sdioSyncResetStatus         0x0605
    #define     B16Gbl_ResetStatus_sdioSyncResetStatus         0x0604
    #define   LSb32Gbl_ResetStatus_sdioSyncResetStatus            13
    #define   LSb16Gbl_ResetStatus_sdioSyncResetStatus            13
    #define       bGbl_ResetStatus_sdioSyncResetStatus         1
    #define   MSK32Gbl_ResetStatus_sdioSyncResetStatus            0x00002000
    #define        Gbl_ResetStatus_sdioSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_sdioSyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_tspSyncResetStatus          0x0605
    #define     B16Gbl_ResetStatus_tspSyncResetStatus          0x0604
    #define   LSb32Gbl_ResetStatus_tspSyncResetStatus             14
    #define   LSb16Gbl_ResetStatus_tspSyncResetStatus             14
    #define       bGbl_ResetStatus_tspSyncResetStatus          1
    #define   MSK32Gbl_ResetStatus_tspSyncResetStatus             0x00004000
    #define        Gbl_ResetStatus_tspSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_tspSyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_v2gSyncResetStatus          0x0605
    #define     B16Gbl_ResetStatus_v2gSyncResetStatus          0x0604
    #define   LSb32Gbl_ResetStatus_v2gSyncResetStatus             15
    #define   LSb16Gbl_ResetStatus_v2gSyncResetStatus             15
    #define       bGbl_ResetStatus_v2gSyncResetStatus          1
    #define   MSK32Gbl_ResetStatus_v2gSyncResetStatus             0x00008000
    #define        Gbl_ResetStatus_v2gSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_v2gSyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_g1SyncResetStatus           0x0606
    #define     B16Gbl_ResetStatus_g1SyncResetStatus           0x0606
    #define   LSb32Gbl_ResetStatus_g1SyncResetStatus              16
    #define   LSb16Gbl_ResetStatus_g1SyncResetStatus              0
    #define       bGbl_ResetStatus_g1SyncResetStatus           1
    #define   MSK32Gbl_ResetStatus_g1SyncResetStatus              0x00010000
    #define        Gbl_ResetStatus_g1SyncResetStatus_asserted               0x1
    #define        Gbl_ResetStatus_g1SyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_bcmSyncResetStatus          0x0606
    #define     B16Gbl_ResetStatus_bcmSyncResetStatus          0x0606
    #define   LSb32Gbl_ResetStatus_bcmSyncResetStatus             17
    #define   LSb16Gbl_ResetStatus_bcmSyncResetStatus             1
    #define       bGbl_ResetStatus_bcmSyncResetStatus          1
    #define   MSK32Gbl_ResetStatus_bcmSyncResetStatus             0x00020000
    #define        Gbl_ResetStatus_bcmSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_bcmSyncResetStatus_deasserted              0x0

    #define     BA_Gbl_ResetStatus_atbSyncResetStatus          0x0606
    #define     B16Gbl_ResetStatus_atbSyncResetStatus          0x0606
    #define   LSb32Gbl_ResetStatus_atbSyncResetStatus             18
    #define   LSb16Gbl_ResetStatus_atbSyncResetStatus             2
    #define       bGbl_ResetStatus_atbSyncResetStatus          1
    #define   MSK32Gbl_ResetStatus_atbSyncResetStatus             0x00040000
    #define        Gbl_ResetStatus_atbSyncResetStatus_asserted              0x1
    #define        Gbl_ResetStatus_atbSyncResetStatus_deasserted              0x0
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_gfx3DReset                              0x0608

    #define     BA_Gbl_gfx3DReset_SyncReset                    0x0608
    #define     B16Gbl_gfx3DReset_SyncReset                    0x0608
    #define   LSb32Gbl_gfx3DReset_SyncReset                       0
    #define   LSb16Gbl_gfx3DReset_SyncReset                       0
    #define       bGbl_gfx3DReset_SyncReset                    1
    #define   MSK32Gbl_gfx3DReset_SyncReset                       0x00000001
    #define        Gbl_gfx3DReset_SyncReset_assert                          0x1
    #define        Gbl_gfx3DReset_SyncReset_deassert                        0x0
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_gfx3DResetStatus                        0x060C

    #define     BA_Gbl_gfx3DResetStatus_SyncReset              0x060C
    #define     B16Gbl_gfx3DResetStatus_SyncReset              0x060C
    #define   LSb32Gbl_gfx3DResetStatus_SyncReset                 0
    #define   LSb16Gbl_gfx3DResetStatus_SyncReset                 0
    #define       bGbl_gfx3DResetStatus_SyncReset              1
    #define   MSK32Gbl_gfx3DResetStatus_SyncReset                 0x00000001
    #define        Gbl_gfx3DResetStatus_SyncReset_assert                    0x1
    #define        Gbl_gfx3DResetStatus_SyncReset_deassert                  0x0
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_avioPwrCtrl                             0x0610
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_gfx3DPwrCtrl                            0x0618
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_g1PwrCtrl                               0x0620
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_v2gPwrCtrl                              0x0628
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_clkEnable                               0x0630

    #define     BA_Gbl_clkEnable_ethCoreClkEn                  0x0630
    #define     B16Gbl_clkEnable_ethCoreClkEn                  0x0630
    #define   LSb32Gbl_clkEnable_ethCoreClkEn                     0
    #define   LSb16Gbl_clkEnable_ethCoreClkEn                     0
    #define       bGbl_clkEnable_ethCoreClkEn                  1
    #define   MSK32Gbl_clkEnable_ethCoreClkEn                     0x00000001
    #define        Gbl_clkEnable_ethCoreClkEn_enable                        0x1
    #define        Gbl_clkEnable_ethCoreClkEn_disable                       0x0

    #define     BA_Gbl_clkEnable_ahbApbCoreClkEn               0x0630
    #define     B16Gbl_clkEnable_ahbApbCoreClkEn               0x0630
    #define   LSb32Gbl_clkEnable_ahbApbCoreClkEn                  1
    #define   LSb16Gbl_clkEnable_ahbApbCoreClkEn                  1
    #define       bGbl_clkEnable_ahbApbCoreClkEn               1
    #define   MSK32Gbl_clkEnable_ahbApbCoreClkEn                  0x00000002
    #define        Gbl_clkEnable_ahbApbCoreClkEn_enable                     0x1
    #define        Gbl_clkEnable_ahbApbCoreClkEn_disable                    0x0

    #define     BA_Gbl_clkEnable_usb0CoreClkEn                 0x0630
    #define     B16Gbl_clkEnable_usb0CoreClkEn                 0x0630
    #define   LSb32Gbl_clkEnable_usb0CoreClkEn                    2
    #define   LSb16Gbl_clkEnable_usb0CoreClkEn                    2
    #define       bGbl_clkEnable_usb0CoreClkEn                 1
    #define   MSK32Gbl_clkEnable_usb0CoreClkEn                    0x00000004
    #define        Gbl_clkEnable_usb0CoreClkEn_enable                       0x1
    #define        Gbl_clkEnable_usb0CoreClkEn_disable                      0x0

    #define     BA_Gbl_clkEnable_pBridgeCoreClkEn              0x0630
    #define     B16Gbl_clkEnable_pBridgeCoreClkEn              0x0630
    #define   LSb32Gbl_clkEnable_pBridgeCoreClkEn                 3
    #define   LSb16Gbl_clkEnable_pBridgeCoreClkEn                 3
    #define       bGbl_clkEnable_pBridgeCoreClkEn              1
    #define   MSK32Gbl_clkEnable_pBridgeCoreClkEn                 0x00000008
    #define        Gbl_clkEnable_pBridgeCoreClkEn_enable                    0x1
    #define        Gbl_clkEnable_pBridgeCoreClkEn_disable                   0x0

    #define     BA_Gbl_clkEnable_sdioCoreClkEn                 0x0630
    #define     B16Gbl_clkEnable_sdioCoreClkEn                 0x0630
    #define   LSb32Gbl_clkEnable_sdioCoreClkEn                    4
    #define   LSb16Gbl_clkEnable_sdioCoreClkEn                    4
    #define       bGbl_clkEnable_sdioCoreClkEn                 1
    #define   MSK32Gbl_clkEnable_sdioCoreClkEn                    0x00000010
    #define        Gbl_clkEnable_sdioCoreClkEn_enable                       0x1
    #define        Gbl_clkEnable_sdioCoreClkEn_disable                      0x0

    #define     BA_Gbl_clkEnable_nfcCoreClkEn                  0x0630
    #define     B16Gbl_clkEnable_nfcCoreClkEn                  0x0630
    #define   LSb32Gbl_clkEnable_nfcCoreClkEn                     5
    #define   LSb16Gbl_clkEnable_nfcCoreClkEn                     5
    #define       bGbl_clkEnable_nfcCoreClkEn                  1
    #define   MSK32Gbl_clkEnable_nfcCoreClkEn                     0x00000020
    #define        Gbl_clkEnable_nfcCoreClkEn_enable                        0x1
    #define        Gbl_clkEnable_nfcCoreClkEn_disable                       0x0
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_ClkSwitch                               0x0634

    #define     BA_Gbl_ClkSwitch_sysPLLSWBypass                0x0634
    #define     B16Gbl_ClkSwitch_sysPLLSWBypass                0x0634
    #define   LSb32Gbl_ClkSwitch_sysPLLSWBypass                   0
    #define   LSb16Gbl_ClkSwitch_sysPLLSWBypass                   0
    #define       bGbl_ClkSwitch_sysPLLSWBypass                1
    #define   MSK32Gbl_ClkSwitch_sysPLLSWBypass                   0x00000001
    #define        Gbl_ClkSwitch_sysPLLSWBypass_refClk                      0x1
    #define        Gbl_ClkSwitch_sysPLLSWBypass_pllClk                      0x0

    #define     BA_Gbl_ClkSwitch_memPLLSWBypass                0x0634
    #define     B16Gbl_ClkSwitch_memPLLSWBypass                0x0634
    #define   LSb32Gbl_ClkSwitch_memPLLSWBypass                   1
    #define   LSb16Gbl_ClkSwitch_memPLLSWBypass                   1
    #define       bGbl_ClkSwitch_memPLLSWBypass                1
    #define   MSK32Gbl_ClkSwitch_memPLLSWBypass                   0x00000002
    #define        Gbl_ClkSwitch_memPLLSWBypass_refClk                      0x1
    #define        Gbl_ClkSwitch_memPLLSWBypass_pllClk                      0x0

    #define     BA_Gbl_ClkSwitch_cpuPLLSWBypass                0x0634
    #define     B16Gbl_ClkSwitch_cpuPLLSWBypass                0x0634
    #define   LSb32Gbl_ClkSwitch_cpuPLLSWBypass                   2
    #define   LSb16Gbl_ClkSwitch_cpuPLLSWBypass                   2
    #define       bGbl_ClkSwitch_cpuPLLSWBypass                1
    #define   MSK32Gbl_ClkSwitch_cpuPLLSWBypass                   0x00000004
    #define        Gbl_ClkSwitch_cpuPLLSWBypass_refClk                      0x1
    #define        Gbl_ClkSwitch_cpuPLLSWBypass_pllClk                      0x0
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_cpufastRefClk                           0x0638
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_memfastRefClk                           0x063C
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_cfgClk                                  0x0640
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_sysClk                                  0x0644
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_v2gClk                                  0x0648
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_v2gM3Clk                                0x064C
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_g1CoreClk                               0x0650
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_gfx3DCoreClk                            0x0654
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_gfx3DSysClk                             0x0658
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_avioSysClk                              0x065C
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_appClk                                  0x0660
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_vppSysClk                               0x0664
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_arcRefClk                               0x0668
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_hdmirxMClk                              0x066C
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_perifClk                                0x0670
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_zspClk                                  0x0674
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_tspClk                                  0x0678
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_tspRefClk                               0x067C
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_atbClk                                  0x0680
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_bcmClk                                  0x0684
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_nfcEccClk                               0x0688
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_sd0Clk                                  0x068C
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_usb2TestClk                             0x0690
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_sdio3DllMstRefClk                       0x0694
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SECURE_SCAN_EN                          0x0900

    #define     BA_Gbl_SECURE_SCAN_EN_SET                      0x0900
    #define     B16Gbl_SECURE_SCAN_EN_SET                      0x0900
    #define   LSb32Gbl_SECURE_SCAN_EN_SET                         0
    #define   LSb16Gbl_SECURE_SCAN_EN_SET                         0
    #define       bGbl_SECURE_SCAN_EN_SET                      1
    #define   MSK32Gbl_SECURE_SCAN_EN_SET                         0x00000001
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NandCtrl                                0x0904

    #define     BA_Gbl_NandCtrl_NAND_WPn_Sel                   0x0904
    #define     B16Gbl_NandCtrl_NAND_WPn_Sel                   0x0904
    #define   LSb32Gbl_NandCtrl_NAND_WPn_Sel                      0
    #define   LSb16Gbl_NandCtrl_NAND_WPn_Sel                      0
    #define       bGbl_NandCtrl_NAND_WPn_Sel                   1
    #define   MSK32Gbl_NandCtrl_NAND_WPn_Sel                      0x00000001

    #define     BA_Gbl_NandCtrl_NAND_CLE_OE                    0x0904
    #define     B16Gbl_NandCtrl_NAND_CLE_OE                    0x0904
    #define   LSb32Gbl_NandCtrl_NAND_CLE_OE                       1
    #define   LSb16Gbl_NandCtrl_NAND_CLE_OE                       1
    #define       bGbl_NandCtrl_NAND_CLE_OE                    1
    #define   MSK32Gbl_NandCtrl_NAND_CLE_OE                       0x00000002

    #define     BA_Gbl_NandCtrl_NAND_ALE_OE                    0x0904
    #define     B16Gbl_NandCtrl_NAND_ALE_OE                    0x0904
    #define   LSb32Gbl_NandCtrl_NAND_ALE_OE                       2
    #define   LSb16Gbl_NandCtrl_NAND_ALE_OE                       2
    #define       bGbl_NandCtrl_NAND_ALE_OE                    1
    #define   MSK32Gbl_NandCtrl_NAND_ALE_OE                       0x00000004
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_sdioDllMstCtrl                          0x0908

    #define     BA_Gbl_sdioDllMstCtrl_PH_SEL1                  0x0908
    #define     B16Gbl_sdioDllMstCtrl_PH_SEL1                  0x0908
    #define   LSb32Gbl_sdioDllMstCtrl_PH_SEL1                     0
    #define   LSb16Gbl_sdioDllMstCtrl_PH_SEL1                     0
    #define       bGbl_sdioDllMstCtrl_PH_SEL1                  6
    #define   MSK32Gbl_sdioDllMstCtrl_PH_SEL1                     0x0000003F

    #define     BA_Gbl_sdioDllMstCtrl_PH_SEL2                  0x0908
    #define     B16Gbl_sdioDllMstCtrl_PH_SEL2                  0x0908
    #define   LSb32Gbl_sdioDllMstCtrl_PH_SEL2                     6
    #define   LSb16Gbl_sdioDllMstCtrl_PH_SEL2                     6
    #define       bGbl_sdioDllMstCtrl_PH_SEL2                  6
    #define   MSK32Gbl_sdioDllMstCtrl_PH_SEL2                     0x00000FC0

    #define     BA_Gbl_sdioDllMstCtrl_PH_SEL3                  0x0909
    #define     B16Gbl_sdioDllMstCtrl_PH_SEL3                  0x0908
    #define   LSb32Gbl_sdioDllMstCtrl_PH_SEL3                     12
    #define   LSb16Gbl_sdioDllMstCtrl_PH_SEL3                     12
    #define       bGbl_sdioDllMstCtrl_PH_SEL3                  6
    #define   MSK32Gbl_sdioDllMstCtrl_PH_SEL3                     0x0003F000

    #define     BA_Gbl_sdioDllMstCtrl_PH_SEL4                  0x090A
    #define     B16Gbl_sdioDllMstCtrl_PH_SEL4                  0x090A
    #define   LSb32Gbl_sdioDllMstCtrl_PH_SEL4                     18
    #define   LSb16Gbl_sdioDllMstCtrl_PH_SEL4                     2
    #define       bGbl_sdioDllMstCtrl_PH_SEL4                  6
    #define   MSK32Gbl_sdioDllMstCtrl_PH_SEL4                     0x00FC0000

    #define     BA_Gbl_sdioDllMstCtrl_RESET                    0x090B
    #define     B16Gbl_sdioDllMstCtrl_RESET                    0x090A
    #define   LSb32Gbl_sdioDllMstCtrl_RESET                       24
    #define   LSb16Gbl_sdioDllMstCtrl_RESET                       8
    #define       bGbl_sdioDllMstCtrl_RESET                    1
    #define   MSK32Gbl_sdioDllMstCtrl_RESET                       0x01000000

    #define     BA_Gbl_sdioDllMstCtrl_GAIN2X                   0x090B
    #define     B16Gbl_sdioDllMstCtrl_GAIN2X                   0x090A
    #define   LSb32Gbl_sdioDllMstCtrl_GAIN2X                      25
    #define   LSb16Gbl_sdioDllMstCtrl_GAIN2X                      9
    #define       bGbl_sdioDllMstCtrl_GAIN2X                   1
    #define   MSK32Gbl_sdioDllMstCtrl_GAIN2X                      0x02000000

    #define     BA_Gbl_sdioDllMstCtrl_TEST_EN                  0x090B
    #define     B16Gbl_sdioDllMstCtrl_TEST_EN                  0x090A
    #define   LSb32Gbl_sdioDllMstCtrl_TEST_EN                     26
    #define   LSb16Gbl_sdioDllMstCtrl_TEST_EN                     10
    #define       bGbl_sdioDllMstCtrl_TEST_EN                  1
    #define   MSK32Gbl_sdioDllMstCtrl_TEST_EN                     0x04000000

    #define     BA_Gbl_sdioDllMstCtrl_RESERVE                  0x090B
    #define     B16Gbl_sdioDllMstCtrl_RESERVE                  0x090A
    #define   LSb32Gbl_sdioDllMstCtrl_RESERVE                     27
    #define   LSb16Gbl_sdioDllMstCtrl_RESERVE                     11
    #define       bGbl_sdioDllMstCtrl_RESERVE                  5
    #define   MSK32Gbl_sdioDllMstCtrl_RESERVE                     0xF8000000

    #define     RA_Gbl_sdioDllMstCtrl1                         0x090C

    #define     BA_Gbl_sdioDllMstCtrl_FAST_LOCK                0x090C
    #define     B16Gbl_sdioDllMstCtrl_FAST_LOCK                0x090C
    #define   LSb32Gbl_sdioDllMstCtrl_FAST_LOCK                   0
    #define   LSb16Gbl_sdioDllMstCtrl_FAST_LOCK                   0
    #define       bGbl_sdioDllMstCtrl_FAST_LOCK                1
    #define   MSK32Gbl_sdioDllMstCtrl_FAST_LOCK                   0x00000001
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_sdioDllMstStatus                        0x0910

    #define     BA_Gbl_sdioDllMstStatus_DELAY_CTRL1            0x0910
    #define     B16Gbl_sdioDllMstStatus_DELAY_CTRL1            0x0910
    #define   LSb32Gbl_sdioDllMstStatus_DELAY_CTRL1               0
    #define   LSb16Gbl_sdioDllMstStatus_DELAY_CTRL1               0
    #define       bGbl_sdioDllMstStatus_DELAY_CTRL1            10
    #define   MSK32Gbl_sdioDllMstStatus_DELAY_CTRL1               0x000003FF

    #define     BA_Gbl_sdioDllMstStatus_DELAY_CTRL2            0x0911
    #define     B16Gbl_sdioDllMstStatus_DELAY_CTRL2            0x0910
    #define   LSb32Gbl_sdioDllMstStatus_DELAY_CTRL2               10
    #define   LSb16Gbl_sdioDllMstStatus_DELAY_CTRL2               10
    #define       bGbl_sdioDllMstStatus_DELAY_CTRL2            10
    #define   MSK32Gbl_sdioDllMstStatus_DELAY_CTRL2               0x000FFC00

    #define     BA_Gbl_sdioDllMstStatus_DELAY_CTRL3            0x0912
    #define     B16Gbl_sdioDllMstStatus_DELAY_CTRL3            0x0912
    #define   LSb32Gbl_sdioDllMstStatus_DELAY_CTRL3               20
    #define   LSb16Gbl_sdioDllMstStatus_DELAY_CTRL3               4
    #define       bGbl_sdioDllMstStatus_DELAY_CTRL3            10
    #define   MSK32Gbl_sdioDllMstStatus_DELAY_CTRL3               0x3FF00000

    #define     RA_Gbl_sdioDllMstStatus1                       0x0914

    #define     BA_Gbl_sdioDllMstStatus_DELAY_CTRL4            0x0914
    #define     B16Gbl_sdioDllMstStatus_DELAY_CTRL4            0x0914
    #define   LSb32Gbl_sdioDllMstStatus_DELAY_CTRL4               0
    #define   LSb16Gbl_sdioDllMstStatus_DELAY_CTRL4               0
    #define       bGbl_sdioDllMstStatus_DELAY_CTRL4            10
    #define   MSK32Gbl_sdioDllMstStatus_DELAY_CTRL4               0x000003FF

    #define     BA_Gbl_sdioDllMstStatus_DLL_LOCK               0x0915
    #define     B16Gbl_sdioDllMstStatus_DLL_LOCK               0x0914
    #define   LSb32Gbl_sdioDllMstStatus_DLL_LOCK                  10
    #define   LSb16Gbl_sdioDllMstStatus_DLL_LOCK                  10
    #define       bGbl_sdioDllMstStatus_DLL_LOCK               1
    #define   MSK32Gbl_sdioDllMstStatus_DLL_LOCK                  0x00000400

    #define     BA_Gbl_sdioDllMstStatus_DELAY_OUT              0x0915
    #define     B16Gbl_sdioDllMstStatus_DELAY_OUT              0x0914
    #define   LSb32Gbl_sdioDllMstStatus_DELAY_OUT                 11
    #define   LSb16Gbl_sdioDllMstStatus_DELAY_OUT                 11
    #define       bGbl_sdioDllMstStatus_DELAY_OUT              10
    #define   MSK32Gbl_sdioDllMstStatus_DELAY_OUT                 0x001FF800
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_gfx3DDisRamClkGate                      0x0918

    #define     BA_Gbl_gfx3DDisRamClkGate_drcg                 0x0918
    #define     B16Gbl_gfx3DDisRamClkGate_drcg                 0x0918
    #define   LSb32Gbl_gfx3DDisRamClkGate_drcg                    0
    #define   LSb16Gbl_gfx3DDisRamClkGate_drcg                    0
    #define       bGbl_gfx3DDisRamClkGate_drcg                 1
    #define   MSK32Gbl_gfx3DDisRamClkGate_drcg                    0x00000001
    #define        Gbl_gfx3DDisRamClkGate_drcg_drcgActive                   0x1
    #define        Gbl_gfx3DDisRamClkGate_drcg_drcgInactive                 0x0
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_DroEn                                   0x091C

    #define     BA_Gbl_DroEn_Start                             0x091C
    #define     B16Gbl_DroEn_Start                             0x091C
    #define   LSb32Gbl_DroEn_Start                                0
    #define   LSb16Gbl_DroEn_Start                                0
    #define       bGbl_DroEn_Start                             1
    #define   MSK32Gbl_DroEn_Start                                0x00000001
    #define        Gbl_DroEn_Start_dro_en_start                             0x1

    #define     BA_Gbl_DroEn_CountVal                          0x091C
    #define     B16Gbl_DroEn_CountVal                          0x091C
    #define   LSb32Gbl_DroEn_CountVal                             1
    #define   LSb16Gbl_DroEn_CountVal                             1
    #define       bGbl_DroEn_CountVal                          16
    #define   MSK32Gbl_DroEn_CountVal                             0x0001FFFE

    #define     RA_Gbl_DroEn1                                  0x0920

    #define     BA_Gbl_DroEn_WaitVal                           0x0920
    #define     B16Gbl_DroEn_WaitVal                           0x0920
    #define   LSb32Gbl_DroEn_WaitVal                              0
    #define   LSb16Gbl_DroEn_WaitVal                              0
    #define       bGbl_DroEn_WaitVal                           16
    #define   MSK32Gbl_DroEn_WaitVal                              0x0000FFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_DroShift                                0x0924

    #define     BA_Gbl_DroShift_Start                          0x0924
    #define     B16Gbl_DroShift_Start                          0x0924
    #define   LSb32Gbl_DroShift_Start                             0
    #define   LSb16Gbl_DroShift_Start                             0
    #define       bGbl_DroShift_Start                          1
    #define   MSK32Gbl_DroShift_Start                             0x00000001
    #define        Gbl_DroShift_Start_dro_shift_start                       0x1

    #define     BA_Gbl_DroShift_CountVal                       0x0924
    #define     B16Gbl_DroShift_CountVal                       0x0924
    #define   LSb32Gbl_DroShift_CountVal                          1
    #define   LSb16Gbl_DroShift_CountVal                          1
    #define       bGbl_DroShift_CountVal                       16
    #define   MSK32Gbl_DroShift_CountVal                          0x0001FFFE
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_DroStatus                               0x0928

    #define     BA_Gbl_DroStatus_En                            0x0928
    #define     B16Gbl_DroStatus_En                            0x0928
    #define   LSb32Gbl_DroStatus_En                               0
    #define   LSb16Gbl_DroStatus_En                               0
    #define       bGbl_DroStatus_En                            1
    #define   MSK32Gbl_DroStatus_En                               0x00000001

    #define     BA_Gbl_DroStatus_Shift_Done                    0x0928
    #define     B16Gbl_DroStatus_Shift_Done                    0x0928
    #define   LSb32Gbl_DroStatus_Shift_Done                       1
    #define   LSb16Gbl_DroStatus_Shift_Done                       1
    #define       bGbl_DroStatus_Shift_Done                    1
    #define   MSK32Gbl_DroStatus_Shift_Done                       0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_DroCounter                              0x092C

    #define     BA_Gbl_DroCounter_Out                          0x092C
    #define     B16Gbl_DroCounter_Out                          0x092C
    #define   LSb32Gbl_DroCounter_Out                             0
    #define   LSb16Gbl_DroCounter_Out                             0
    #define       bGbl_DroCounter_Out                          32
    #define   MSK32Gbl_DroCounter_Out                             0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_vtr                                     0x0930
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_gic400_ctrl                             0x0938

    #define     BA_Gbl_gic400_ctrl_cgfsdisable                 0x0938
    #define     B16Gbl_gic400_ctrl_cgfsdisable                 0x0938
    #define   LSb32Gbl_gic400_ctrl_cgfsdisable                    0
    #define   LSb16Gbl_gic400_ctrl_cgfsdisable                    0
    #define       bGbl_gic400_ctrl_cgfsdisable                 1
    #define   MSK32Gbl_gic400_ctrl_cgfsdisable                    0x00000001
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SPARE_CTRL_0                            0x093C

    #define     BA_Gbl_SPARE_CTRL_0_ctrl                       0x093C
    #define     B16Gbl_SPARE_CTRL_0_ctrl                       0x093C
    #define   LSb32Gbl_SPARE_CTRL_0_ctrl                          0
    #define   LSb16Gbl_SPARE_CTRL_0_ctrl                          0
    #define       bGbl_SPARE_CTRL_0_ctrl                       32
    #define   MSK32Gbl_SPARE_CTRL_0_ctrl                          0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SPARE_CTRL_1                            0x0940

    #define     BA_Gbl_SPARE_CTRL_1_ctrl                       0x0940
    #define     B16Gbl_SPARE_CTRL_1_ctrl                       0x0940
    #define   LSb32Gbl_SPARE_CTRL_1_ctrl                          0
    #define   LSb16Gbl_SPARE_CTRL_1_ctrl                          0
    #define       bGbl_SPARE_CTRL_1_ctrl                       32
    #define   MSK32Gbl_SPARE_CTRL_1_ctrl                          0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SPARE_CTRL_2                            0x0944

    #define     BA_Gbl_SPARE_CTRL_2_ctrl                       0x0944
    #define     B16Gbl_SPARE_CTRL_2_ctrl                       0x0944
    #define   LSb32Gbl_SPARE_CTRL_2_ctrl                          0
    #define   LSb16Gbl_SPARE_CTRL_2_ctrl                          0
    #define       bGbl_SPARE_CTRL_2_ctrl                       32
    #define   MSK32Gbl_SPARE_CTRL_2_ctrl                          0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SPARE_CTRL_3                            0x0948

    #define     BA_Gbl_SPARE_CTRL_3_ctrl                       0x0948
    #define     B16Gbl_SPARE_CTRL_3_ctrl                       0x0948
    #define   LSb32Gbl_SPARE_CTRL_3_ctrl                          0
    #define   LSb16Gbl_SPARE_CTRL_3_ctrl                          0
    #define       bGbl_SPARE_CTRL_3_ctrl                       32
    #define   MSK32Gbl_SPARE_CTRL_3_ctrl                          0xFFFFFFFF
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_efuse0                                  0x094C
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_efuse1                                  0x0978
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_PERIF                                   0x09A4
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_PadSelect                               0x4000

    #define     BA_Gbl_PadSelect_DVIO_OEN                      0x4000
    #define     B16Gbl_PadSelect_DVIO_OEN                      0x4000
    #define   LSb32Gbl_PadSelect_DVIO_OEN                         0
    #define   LSb16Gbl_PadSelect_DVIO_OEN                         0
    #define       bGbl_PadSelect_DVIO_OEN                      1
    #define   MSK32Gbl_PadSelect_DVIO_OEN                         0x00000001
    #define        Gbl_PadSelect_DVIO_OEN_Enable                            0x1
    #define        Gbl_PadSelect_DVIO_OEN_Disable                           0x0
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_I2C_PADRING                             0x4004
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SD0_PADRING                             0x400C
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_TSI_PADRING                             0x4014
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SPI_PADRING                             0x401C
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_PADRING                            0x4024
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_DDC_PAD_CTRL                            0x402C

    #define     BA_Gbl_DDC_PAD_CTRL_ZN_TW1_SCL                 0x402C
    #define     B16Gbl_DDC_PAD_CTRL_ZN_TW1_SCL                 0x402C
    #define   LSb32Gbl_DDC_PAD_CTRL_ZN_TW1_SCL                    0
    #define   LSb16Gbl_DDC_PAD_CTRL_ZN_TW1_SCL                    0
    #define       bGbl_DDC_PAD_CTRL_ZN_TW1_SCL                 3
    #define   MSK32Gbl_DDC_PAD_CTRL_ZN_TW1_SCL                    0x00000007

    #define     BA_Gbl_DDC_PAD_CTRL_ZN_TW1_SDA                 0x402C
    #define     B16Gbl_DDC_PAD_CTRL_ZN_TW1_SDA                 0x402C
    #define   LSb32Gbl_DDC_PAD_CTRL_ZN_TW1_SDA                    3
    #define   LSb16Gbl_DDC_PAD_CTRL_ZN_TW1_SDA                    3
    #define       bGbl_DDC_PAD_CTRL_ZN_TW1_SDA                 3
    #define   MSK32Gbl_DDC_PAD_CTRL_ZN_TW1_SDA                    0x00000038
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_pinMuxCntlBus                           0x8000

    #define     BA_Gbl_pinMuxCntlBus_URT0_RXD                  0x8000
    #define     B16Gbl_pinMuxCntlBus_URT0_RXD                  0x8000
    #define   LSb32Gbl_pinMuxCntlBus_URT0_RXD                     0
    #define   LSb16Gbl_pinMuxCntlBus_URT0_RXD                     0
    #define       bGbl_pinMuxCntlBus_URT0_RXD                  3
    #define   MSK32Gbl_pinMuxCntlBus_URT0_RXD                     0x00000007
    #define        Gbl_pinMuxCntlBus_URT0_RXD_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_URT0_RXD_MODE_1                        0x1

    #define     BA_Gbl_pinMuxCntlBus_URT0_TXD                  0x8000
    #define     B16Gbl_pinMuxCntlBus_URT0_TXD                  0x8000
    #define   LSb32Gbl_pinMuxCntlBus_URT0_TXD                     3
    #define   LSb16Gbl_pinMuxCntlBus_URT0_TXD                     3
    #define       bGbl_pinMuxCntlBus_URT0_TXD                  3
    #define   MSK32Gbl_pinMuxCntlBus_URT0_TXD                     0x00000038
    #define        Gbl_pinMuxCntlBus_URT0_TXD_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_URT0_TXD_MODE_1                        0x1

    #define     BA_Gbl_pinMuxCntlBus_SPI1_SS0n                 0x8000
    #define     B16Gbl_pinMuxCntlBus_SPI1_SS0n                 0x8000
    #define   LSb32Gbl_pinMuxCntlBus_SPI1_SS0n                    6
    #define   LSb16Gbl_pinMuxCntlBus_SPI1_SS0n                    6
    #define       bGbl_pinMuxCntlBus_SPI1_SS0n                 3
    #define   MSK32Gbl_pinMuxCntlBus_SPI1_SS0n                    0x000001C0
    #define        Gbl_pinMuxCntlBus_SPI1_SS0n_MODE_0                       0x0
    #define        Gbl_pinMuxCntlBus_SPI1_SS0n_MODE_1                       0x1

    #define     BA_Gbl_pinMuxCntlBus_SPI1_SS1n                 0x8001
    #define     B16Gbl_pinMuxCntlBus_SPI1_SS1n                 0x8000
    #define   LSb32Gbl_pinMuxCntlBus_SPI1_SS1n                    9
    #define   LSb16Gbl_pinMuxCntlBus_SPI1_SS1n                    9
    #define       bGbl_pinMuxCntlBus_SPI1_SS1n                 3
    #define   MSK32Gbl_pinMuxCntlBus_SPI1_SS1n                    0x00000E00
    #define        Gbl_pinMuxCntlBus_SPI1_SS1n_MODE_0                       0x0
    #define        Gbl_pinMuxCntlBus_SPI1_SS1n_MODE_1                       0x1
    #define        Gbl_pinMuxCntlBus_SPI1_SS1n_MODE_2                       0x2
    #define        Gbl_pinMuxCntlBus_SPI1_SS1n_MODE_3                       0x3
    #define        Gbl_pinMuxCntlBus_SPI1_SS1n_MODE_4                       0x4
    #define        Gbl_pinMuxCntlBus_SPI1_SS1n_MODE_5                       0x5

    #define     BA_Gbl_pinMuxCntlBus_SPI1_SS2n                 0x8001
    #define     B16Gbl_pinMuxCntlBus_SPI1_SS2n                 0x8000
    #define   LSb32Gbl_pinMuxCntlBus_SPI1_SS2n                    12
    #define   LSb16Gbl_pinMuxCntlBus_SPI1_SS2n                    12
    #define       bGbl_pinMuxCntlBus_SPI1_SS2n                 3
    #define   MSK32Gbl_pinMuxCntlBus_SPI1_SS2n                    0x00007000
    #define        Gbl_pinMuxCntlBus_SPI1_SS2n_MODE_0                       0x0
    #define        Gbl_pinMuxCntlBus_SPI1_SS2n_MODE_1                       0x1
    #define        Gbl_pinMuxCntlBus_SPI1_SS2n_MODE_2                       0x2
    #define        Gbl_pinMuxCntlBus_SPI1_SS2n_MODE_3                       0x3
    #define        Gbl_pinMuxCntlBus_SPI1_SS2n_MODE_4                       0x4
    #define        Gbl_pinMuxCntlBus_SPI1_SS2n_MODE_5                       0x5

    #define     BA_Gbl_pinMuxCntlBus_SPI1_SCLK                 0x8001
    #define     B16Gbl_pinMuxCntlBus_SPI1_SCLK                 0x8000
    #define   LSb32Gbl_pinMuxCntlBus_SPI1_SCLK                    15
    #define   LSb16Gbl_pinMuxCntlBus_SPI1_SCLK                    15
    #define       bGbl_pinMuxCntlBus_SPI1_SCLK                 3
    #define   MSK32Gbl_pinMuxCntlBus_SPI1_SCLK                    0x00038000
    #define        Gbl_pinMuxCntlBus_SPI1_SCLK_MODE_0                       0x0
    #define        Gbl_pinMuxCntlBus_SPI1_SCLK_MODE_1                       0x1
    #define        Gbl_pinMuxCntlBus_SPI1_SCLK_MODE_2                       0x2

    #define     BA_Gbl_pinMuxCntlBus_SPI1_SDO                  0x8002
    #define     B16Gbl_pinMuxCntlBus_SPI1_SDO                  0x8002
    #define   LSb32Gbl_pinMuxCntlBus_SPI1_SDO                     18
    #define   LSb16Gbl_pinMuxCntlBus_SPI1_SDO                     2
    #define       bGbl_pinMuxCntlBus_SPI1_SDO                  3
    #define   MSK32Gbl_pinMuxCntlBus_SPI1_SDO                     0x001C0000
    #define        Gbl_pinMuxCntlBus_SPI1_SDO_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_SPI1_SDO_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_SPI1_SDO_MODE_2                        0x2

    #define     BA_Gbl_pinMuxCntlBus_SPI1_SDI                  0x8002
    #define     B16Gbl_pinMuxCntlBus_SPI1_SDI                  0x8002
    #define   LSb32Gbl_pinMuxCntlBus_SPI1_SDI                     21
    #define   LSb16Gbl_pinMuxCntlBus_SPI1_SDI                     5
    #define       bGbl_pinMuxCntlBus_SPI1_SDI                  3
    #define   MSK32Gbl_pinMuxCntlBus_SPI1_SDI                     0x00E00000
    #define        Gbl_pinMuxCntlBus_SPI1_SDI_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_SPI1_SDI_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_SPI1_SDI_MODE_2                        0x2

    #define     BA_Gbl_pinMuxCntlBus_USB1_DRV_VBUS             0x8003
    #define     B16Gbl_pinMuxCntlBus_USB1_DRV_VBUS             0x8002
    #define   LSb32Gbl_pinMuxCntlBus_USB1_DRV_VBUS                24
    #define   LSb16Gbl_pinMuxCntlBus_USB1_DRV_VBUS                8
    #define       bGbl_pinMuxCntlBus_USB1_DRV_VBUS             3
    #define   MSK32Gbl_pinMuxCntlBus_USB1_DRV_VBUS                0x07000000
    #define        Gbl_pinMuxCntlBus_USB1_DRV_VBUS_MODE_0                   0x0
    #define        Gbl_pinMuxCntlBus_USB1_DRV_VBUS_MODE_1                   0x1

    #define     BA_Gbl_pinMuxCntlBus_TW1_SCL                   0x8003
    #define     B16Gbl_pinMuxCntlBus_TW1_SCL                   0x8002
    #define   LSb32Gbl_pinMuxCntlBus_TW1_SCL                      27
    #define   LSb16Gbl_pinMuxCntlBus_TW1_SCL                      11
    #define       bGbl_pinMuxCntlBus_TW1_SCL                   3
    #define   MSK32Gbl_pinMuxCntlBus_TW1_SCL                      0x38000000
    #define        Gbl_pinMuxCntlBus_TW1_SCL_MODE_0                         0x0
    #define        Gbl_pinMuxCntlBus_TW1_SCL_MODE_1                         0x1
    #define        Gbl_pinMuxCntlBus_TW1_SCL_MODE_2                         0x2

    #define     RA_Gbl_pinMuxCntlBus1                          0x8004

    #define     BA_Gbl_pinMuxCntlBus_TW1_SDA                   0x8004
    #define     B16Gbl_pinMuxCntlBus_TW1_SDA                   0x8004
    #define   LSb32Gbl_pinMuxCntlBus_TW1_SDA                      0
    #define   LSb16Gbl_pinMuxCntlBus_TW1_SDA                      0
    #define       bGbl_pinMuxCntlBus_TW1_SDA                   3
    #define   MSK32Gbl_pinMuxCntlBus_TW1_SDA                      0x00000007
    #define        Gbl_pinMuxCntlBus_TW1_SDA_MODE_0                         0x0
    #define        Gbl_pinMuxCntlBus_TW1_SDA_MODE_1                         0x1
    #define        Gbl_pinMuxCntlBus_TW1_SDA_MODE_2                         0x2

    #define     BA_Gbl_pinMuxCntlBus_HDMI_CEC                  0x8004
    #define     B16Gbl_pinMuxCntlBus_HDMI_CEC                  0x8004
    #define   LSb32Gbl_pinMuxCntlBus_HDMI_CEC                     3
    #define   LSb16Gbl_pinMuxCntlBus_HDMI_CEC                     3
    #define       bGbl_pinMuxCntlBus_HDMI_CEC                  3
    #define   MSK32Gbl_pinMuxCntlBus_HDMI_CEC                     0x00000038
    #define        Gbl_pinMuxCntlBus_HDMI_CEC_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_HDMI_CEC_MODE_1                        0x1

    #define     BA_Gbl_pinMuxCntlBus_HDMI_HPD                  0x8004
    #define     B16Gbl_pinMuxCntlBus_HDMI_HPD                  0x8004
    #define   LSb32Gbl_pinMuxCntlBus_HDMI_HPD                     6
    #define   LSb16Gbl_pinMuxCntlBus_HDMI_HPD                     6
    #define       bGbl_pinMuxCntlBus_HDMI_HPD                  3
    #define   MSK32Gbl_pinMuxCntlBus_HDMI_HPD                     0x000001C0
    #define        Gbl_pinMuxCntlBus_HDMI_HPD_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_HDMI_HPD_MODE_1                        0x1

    #define     BA_Gbl_pinMuxCntlBus_NAND_IO0                  0x8005
    #define     B16Gbl_pinMuxCntlBus_NAND_IO0                  0x8004
    #define   LSb32Gbl_pinMuxCntlBus_NAND_IO0                     9
    #define   LSb16Gbl_pinMuxCntlBus_NAND_IO0                     9
    #define       bGbl_pinMuxCntlBus_NAND_IO0                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_IO0                     0x00000E00
    #define        Gbl_pinMuxCntlBus_NAND_IO0_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_IO0_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_IO0_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_NAND_IO0_MODE_3                        0x3
    #define        Gbl_pinMuxCntlBus_NAND_IO0_MODE_4                        0x4

    #define     BA_Gbl_pinMuxCntlBus_NAND_IO1                  0x8005
    #define     B16Gbl_pinMuxCntlBus_NAND_IO1                  0x8004
    #define   LSb32Gbl_pinMuxCntlBus_NAND_IO1                     12
    #define   LSb16Gbl_pinMuxCntlBus_NAND_IO1                     12
    #define       bGbl_pinMuxCntlBus_NAND_IO1                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_IO1                     0x00007000
    #define        Gbl_pinMuxCntlBus_NAND_IO1_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_IO1_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_IO1_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_NAND_IO1_MODE_3                        0x3
    #define        Gbl_pinMuxCntlBus_NAND_IO1_MODE_4                        0x4

    #define     BA_Gbl_pinMuxCntlBus_NAND_IO2                  0x8005
    #define     B16Gbl_pinMuxCntlBus_NAND_IO2                  0x8004
    #define   LSb32Gbl_pinMuxCntlBus_NAND_IO2                     15
    #define   LSb16Gbl_pinMuxCntlBus_NAND_IO2                     15
    #define       bGbl_pinMuxCntlBus_NAND_IO2                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_IO2                     0x00038000
    #define        Gbl_pinMuxCntlBus_NAND_IO2_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_IO2_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_IO2_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_NAND_IO2_MODE_3                        0x3
    #define        Gbl_pinMuxCntlBus_NAND_IO2_MODE_4                        0x4

    #define     BA_Gbl_pinMuxCntlBus_NAND_IO3                  0x8006
    #define     B16Gbl_pinMuxCntlBus_NAND_IO3                  0x8006
    #define   LSb32Gbl_pinMuxCntlBus_NAND_IO3                     18
    #define   LSb16Gbl_pinMuxCntlBus_NAND_IO3                     2
    #define       bGbl_pinMuxCntlBus_NAND_IO3                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_IO3                     0x001C0000
    #define        Gbl_pinMuxCntlBus_NAND_IO3_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_IO3_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_IO3_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_NAND_IO3_MODE_3                        0x3
    #define        Gbl_pinMuxCntlBus_NAND_IO3_MODE_4                        0x4

    #define     BA_Gbl_pinMuxCntlBus_NAND_IO4                  0x8006
    #define     B16Gbl_pinMuxCntlBus_NAND_IO4                  0x8006
    #define   LSb32Gbl_pinMuxCntlBus_NAND_IO4                     21
    #define   LSb16Gbl_pinMuxCntlBus_NAND_IO4                     5
    #define       bGbl_pinMuxCntlBus_NAND_IO4                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_IO4                     0x00E00000
    #define        Gbl_pinMuxCntlBus_NAND_IO4_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_IO4_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_IO4_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_NAND_IO4_MODE_3                        0x3
    #define        Gbl_pinMuxCntlBus_NAND_IO4_MODE_4                        0x4

    #define     BA_Gbl_pinMuxCntlBus_NAND_IO5                  0x8007
    #define     B16Gbl_pinMuxCntlBus_NAND_IO5                  0x8006
    #define   LSb32Gbl_pinMuxCntlBus_NAND_IO5                     24
    #define   LSb16Gbl_pinMuxCntlBus_NAND_IO5                     8
    #define       bGbl_pinMuxCntlBus_NAND_IO5                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_IO5                     0x07000000
    #define        Gbl_pinMuxCntlBus_NAND_IO5_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_IO5_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_IO5_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_NAND_IO5_MODE_3                        0x3
    #define        Gbl_pinMuxCntlBus_NAND_IO5_MODE_4                        0x4

    #define     BA_Gbl_pinMuxCntlBus_NAND_IO6                  0x8007
    #define     B16Gbl_pinMuxCntlBus_NAND_IO6                  0x8006
    #define   LSb32Gbl_pinMuxCntlBus_NAND_IO6                     27
    #define   LSb16Gbl_pinMuxCntlBus_NAND_IO6                     11
    #define       bGbl_pinMuxCntlBus_NAND_IO6                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_IO6                     0x38000000
    #define        Gbl_pinMuxCntlBus_NAND_IO6_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_IO6_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_IO6_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_NAND_IO6_MODE_3                        0x3
    #define        Gbl_pinMuxCntlBus_NAND_IO6_MODE_4                        0x4

    #define     RA_Gbl_pinMuxCntlBus2                          0x8008

    #define     BA_Gbl_pinMuxCntlBus_NAND_IO7                  0x8008
    #define     B16Gbl_pinMuxCntlBus_NAND_IO7                  0x8008
    #define   LSb32Gbl_pinMuxCntlBus_NAND_IO7                     0
    #define   LSb16Gbl_pinMuxCntlBus_NAND_IO7                     0
    #define       bGbl_pinMuxCntlBus_NAND_IO7                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_IO7                     0x00000007
    #define        Gbl_pinMuxCntlBus_NAND_IO7_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_IO7_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_IO7_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_NAND_IO7_MODE_3                        0x3
    #define        Gbl_pinMuxCntlBus_NAND_IO7_MODE_4                        0x4

    #define     BA_Gbl_pinMuxCntlBus_NAND_ALE                  0x8008
    #define     B16Gbl_pinMuxCntlBus_NAND_ALE                  0x8008
    #define   LSb32Gbl_pinMuxCntlBus_NAND_ALE                     3
    #define   LSb16Gbl_pinMuxCntlBus_NAND_ALE                     3
    #define       bGbl_pinMuxCntlBus_NAND_ALE                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_ALE                     0x00000038
    #define        Gbl_pinMuxCntlBus_NAND_ALE_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_ALE_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_ALE_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_NAND_ALE_MODE_3                        0x3
    #define        Gbl_pinMuxCntlBus_NAND_ALE_MODE_4                        0x4

    #define     BA_Gbl_pinMuxCntlBus_NAND_CLE                  0x8008
    #define     B16Gbl_pinMuxCntlBus_NAND_CLE                  0x8008
    #define   LSb32Gbl_pinMuxCntlBus_NAND_CLE                     6
    #define   LSb16Gbl_pinMuxCntlBus_NAND_CLE                     6
    #define       bGbl_pinMuxCntlBus_NAND_CLE                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_CLE                     0x000001C0
    #define        Gbl_pinMuxCntlBus_NAND_CLE_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_CLE_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_CLE_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_NAND_CLE_MODE_3                        0x3

    #define     BA_Gbl_pinMuxCntlBus_NAND_WEn                  0x8009
    #define     B16Gbl_pinMuxCntlBus_NAND_WEn                  0x8008
    #define   LSb32Gbl_pinMuxCntlBus_NAND_WEn                     9
    #define   LSb16Gbl_pinMuxCntlBus_NAND_WEn                     9
    #define       bGbl_pinMuxCntlBus_NAND_WEn                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_WEn                     0x00000E00
    #define        Gbl_pinMuxCntlBus_NAND_WEn_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_WEn_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_WEn_MODE_3                        0x3

    #define     BA_Gbl_pinMuxCntlBus_NAND_REn                  0x8009
    #define     B16Gbl_pinMuxCntlBus_NAND_REn                  0x8008
    #define   LSb32Gbl_pinMuxCntlBus_NAND_REn                     12
    #define   LSb16Gbl_pinMuxCntlBus_NAND_REn                     12
    #define       bGbl_pinMuxCntlBus_NAND_REn                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_REn                     0x00007000
    #define        Gbl_pinMuxCntlBus_NAND_REn_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_REn_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_REn_MODE_3                        0x3

    #define     BA_Gbl_pinMuxCntlBus_NAND_WPn                  0x8009
    #define     B16Gbl_pinMuxCntlBus_NAND_WPn                  0x8008
    #define   LSb32Gbl_pinMuxCntlBus_NAND_WPn                     15
    #define   LSb16Gbl_pinMuxCntlBus_NAND_WPn                     15
    #define       bGbl_pinMuxCntlBus_NAND_WPn                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_WPn                     0x00038000
    #define        Gbl_pinMuxCntlBus_NAND_WPn_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_WPn_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_WPn_MODE_3                        0x3

    #define     BA_Gbl_pinMuxCntlBus_NAND_CEn                  0x800A
    #define     B16Gbl_pinMuxCntlBus_NAND_CEn                  0x800A
    #define   LSb32Gbl_pinMuxCntlBus_NAND_CEn                     18
    #define   LSb16Gbl_pinMuxCntlBus_NAND_CEn                     2
    #define       bGbl_pinMuxCntlBus_NAND_CEn                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_CEn                     0x001C0000
    #define        Gbl_pinMuxCntlBus_NAND_CEn_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_CEn_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_CEn_MODE_3                        0x3

    #define     BA_Gbl_pinMuxCntlBus_NAND_RDY                  0x800A
    #define     B16Gbl_pinMuxCntlBus_NAND_RDY                  0x800A
    #define   LSb32Gbl_pinMuxCntlBus_NAND_RDY                     21
    #define   LSb16Gbl_pinMuxCntlBus_NAND_RDY                     5
    #define       bGbl_pinMuxCntlBus_NAND_RDY                  3
    #define   MSK32Gbl_pinMuxCntlBus_NAND_RDY                     0x00E00000
    #define        Gbl_pinMuxCntlBus_NAND_RDY_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_NAND_RDY_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_NAND_RDY_MODE_3                        0x3

    #define     BA_Gbl_pinMuxCntlBus_SD0_CLK                   0x800B
    #define     B16Gbl_pinMuxCntlBus_SD0_CLK                   0x800A
    #define   LSb32Gbl_pinMuxCntlBus_SD0_CLK                      24
    #define   LSb16Gbl_pinMuxCntlBus_SD0_CLK                      8
    #define       bGbl_pinMuxCntlBus_SD0_CLK                   3
    #define   MSK32Gbl_pinMuxCntlBus_SD0_CLK                      0x07000000
    #define        Gbl_pinMuxCntlBus_SD0_CLK_MODE_0                         0x0
    #define        Gbl_pinMuxCntlBus_SD0_CLK_MODE_1                         0x1
    #define        Gbl_pinMuxCntlBus_SD0_CLK_MODE_2                         0x2
    #define        Gbl_pinMuxCntlBus_SD0_CLK_MODE_7                         0x7

    #define     BA_Gbl_pinMuxCntlBus_SD0_DAT0                  0x800B
    #define     B16Gbl_pinMuxCntlBus_SD0_DAT0                  0x800A
    #define   LSb32Gbl_pinMuxCntlBus_SD0_DAT0                     27
    #define   LSb16Gbl_pinMuxCntlBus_SD0_DAT0                     11
    #define       bGbl_pinMuxCntlBus_SD0_DAT0                  3
    #define   MSK32Gbl_pinMuxCntlBus_SD0_DAT0                     0x38000000
    #define        Gbl_pinMuxCntlBus_SD0_DAT0_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_SD0_DAT0_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_SD0_DAT0_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_SD0_DAT0_MODE_3                        0x3
    #define        Gbl_pinMuxCntlBus_SD0_DAT0_MODE_5                        0x5
    #define        Gbl_pinMuxCntlBus_SD0_DAT0_MODE_7                        0x7

    #define     RA_Gbl_pinMuxCntlBus3                          0x800C

    #define     BA_Gbl_pinMuxCntlBus_SD0_DAT1                  0x800C
    #define     B16Gbl_pinMuxCntlBus_SD0_DAT1                  0x800C
    #define   LSb32Gbl_pinMuxCntlBus_SD0_DAT1                     0
    #define   LSb16Gbl_pinMuxCntlBus_SD0_DAT1                     0
    #define       bGbl_pinMuxCntlBus_SD0_DAT1                  3
    #define   MSK32Gbl_pinMuxCntlBus_SD0_DAT1                     0x00000007
    #define        Gbl_pinMuxCntlBus_SD0_DAT1_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_SD0_DAT1_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_SD0_DAT1_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_SD0_DAT1_MODE_3                        0x3
    #define        Gbl_pinMuxCntlBus_SD0_DAT1_MODE_5                        0x5
    #define        Gbl_pinMuxCntlBus_SD0_DAT1_MODE_7                        0x7

    #define     BA_Gbl_pinMuxCntlBus_SD0_DAT2                  0x800C
    #define     B16Gbl_pinMuxCntlBus_SD0_DAT2                  0x800C
    #define   LSb32Gbl_pinMuxCntlBus_SD0_DAT2                     3
    #define   LSb16Gbl_pinMuxCntlBus_SD0_DAT2                     3
    #define       bGbl_pinMuxCntlBus_SD0_DAT2                  3
    #define   MSK32Gbl_pinMuxCntlBus_SD0_DAT2                     0x00000038
    #define        Gbl_pinMuxCntlBus_SD0_DAT2_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_SD0_DAT2_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_SD0_DAT2_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_SD0_DAT2_MODE_4                        0x4
    #define        Gbl_pinMuxCntlBus_SD0_DAT2_MODE_5                        0x5
    #define        Gbl_pinMuxCntlBus_SD0_DAT2_MODE_7                        0x7

    #define     BA_Gbl_pinMuxCntlBus_SD0_DAT3                  0x800C
    #define     B16Gbl_pinMuxCntlBus_SD0_DAT3                  0x800C
    #define   LSb32Gbl_pinMuxCntlBus_SD0_DAT3                     6
    #define   LSb16Gbl_pinMuxCntlBus_SD0_DAT3                     6
    #define       bGbl_pinMuxCntlBus_SD0_DAT3                  3
    #define   MSK32Gbl_pinMuxCntlBus_SD0_DAT3                     0x000001C0
    #define        Gbl_pinMuxCntlBus_SD0_DAT3_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_SD0_DAT3_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_SD0_DAT3_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_SD0_DAT3_MODE_4                        0x4
    #define        Gbl_pinMuxCntlBus_SD0_DAT3_MODE_5                        0x5
    #define        Gbl_pinMuxCntlBus_SD0_DAT3_MODE_7                        0x7

    #define     BA_Gbl_pinMuxCntlBus_SD0_CDn                   0x800D
    #define     B16Gbl_pinMuxCntlBus_SD0_CDn                   0x800C
    #define   LSb32Gbl_pinMuxCntlBus_SD0_CDn                      9
    #define   LSb16Gbl_pinMuxCntlBus_SD0_CDn                      9
    #define       bGbl_pinMuxCntlBus_SD0_CDn                   3
    #define   MSK32Gbl_pinMuxCntlBus_SD0_CDn                      0x00000E00
    #define        Gbl_pinMuxCntlBus_SD0_CDn_MODE_0                         0x0
    #define        Gbl_pinMuxCntlBus_SD0_CDn_MODE_1                         0x1
    #define        Gbl_pinMuxCntlBus_SD0_CDn_MODE_2                         0x2
    #define        Gbl_pinMuxCntlBus_SD0_CDn_MODE_3                         0x3
    #define        Gbl_pinMuxCntlBus_SD0_CDn_MODE_4                         0x4
    #define        Gbl_pinMuxCntlBus_SD0_CDn_MODE_5                         0x5
    #define        Gbl_pinMuxCntlBus_SD0_CDn_MODE_7                         0x7

    #define     BA_Gbl_pinMuxCntlBus_SD0_CMD                   0x800D
    #define     B16Gbl_pinMuxCntlBus_SD0_CMD                   0x800C
    #define   LSb32Gbl_pinMuxCntlBus_SD0_CMD                      12
    #define   LSb16Gbl_pinMuxCntlBus_SD0_CMD                      12
    #define       bGbl_pinMuxCntlBus_SD0_CMD                   3
    #define   MSK32Gbl_pinMuxCntlBus_SD0_CMD                      0x00007000
    #define        Gbl_pinMuxCntlBus_SD0_CMD_MODE_0                         0x0
    #define        Gbl_pinMuxCntlBus_SD0_CMD_MODE_1                         0x1
    #define        Gbl_pinMuxCntlBus_SD0_CMD_MODE_2                         0x2
    #define        Gbl_pinMuxCntlBus_SD0_CMD_MODE_7                         0x7

    #define     BA_Gbl_pinMuxCntlBus_SD0_WP                    0x800D
    #define     B16Gbl_pinMuxCntlBus_SD0_WP                    0x800C
    #define   LSb32Gbl_pinMuxCntlBus_SD0_WP                       15
    #define   LSb16Gbl_pinMuxCntlBus_SD0_WP                       15
    #define       bGbl_pinMuxCntlBus_SD0_WP                    3
    #define   MSK32Gbl_pinMuxCntlBus_SD0_WP                       0x00038000
    #define        Gbl_pinMuxCntlBus_SD0_WP_MODE_0                          0x0
    #define        Gbl_pinMuxCntlBus_SD0_WP_MODE_1                          0x1
    #define        Gbl_pinMuxCntlBus_SD0_WP_MODE_2                          0x2
    #define        Gbl_pinMuxCntlBus_SD0_WP_MODE_3                          0x3
    #define        Gbl_pinMuxCntlBus_SD0_WP_MODE_4                          0x4
    #define        Gbl_pinMuxCntlBus_SD0_WP_MODE_5                          0x5
    #define        Gbl_pinMuxCntlBus_SD0_WP_MODE_7                          0x7

    #define     BA_Gbl_pinMuxCntlBus_STS0_CLK                  0x800E
    #define     B16Gbl_pinMuxCntlBus_STS0_CLK                  0x800E
    #define   LSb32Gbl_pinMuxCntlBus_STS0_CLK                     18
    #define   LSb16Gbl_pinMuxCntlBus_STS0_CLK                     2
    #define       bGbl_pinMuxCntlBus_STS0_CLK                  3
    #define   MSK32Gbl_pinMuxCntlBus_STS0_CLK                     0x001C0000
    #define        Gbl_pinMuxCntlBus_STS0_CLK_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_STS0_CLK_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_STS0_CLK_MODE_2                        0x2
    #define        Gbl_pinMuxCntlBus_STS0_CLK_MODE_4                        0x4

    #define     BA_Gbl_pinMuxCntlBus_STS0_SOP                  0x800E
    #define     B16Gbl_pinMuxCntlBus_STS0_SOP                  0x800E
    #define   LSb32Gbl_pinMuxCntlBus_STS0_SOP                     21
    #define   LSb16Gbl_pinMuxCntlBus_STS0_SOP                     5
    #define       bGbl_pinMuxCntlBus_STS0_SOP                  3
    #define   MSK32Gbl_pinMuxCntlBus_STS0_SOP                     0x00E00000
    #define        Gbl_pinMuxCntlBus_STS0_SOP_MODE_0                        0x0
    #define        Gbl_pinMuxCntlBus_STS0_SOP_MODE_1                        0x1
    #define        Gbl_pinMuxCntlBus_STS0_SOP_MODE_2                        0x2

    #define     BA_Gbl_pinMuxCntlBus_STS0_VALD                 0x800F
    #define     B16Gbl_pinMuxCntlBus_STS0_VALD                 0x800E
    #define   LSb32Gbl_pinMuxCntlBus_STS0_VALD                    24
    #define   LSb16Gbl_pinMuxCntlBus_STS0_VALD                    8
    #define       bGbl_pinMuxCntlBus_STS0_VALD                 3
    #define   MSK32Gbl_pinMuxCntlBus_STS0_VALD                    0x07000000
    #define        Gbl_pinMuxCntlBus_STS0_VALD_MODE_0                       0x0
    #define        Gbl_pinMuxCntlBus_STS0_VALD_MODE_1                       0x1
    #define        Gbl_pinMuxCntlBus_STS0_VALD_MODE_2                       0x2
    #define        Gbl_pinMuxCntlBus_STS0_VALD_MODE_3                       0x3

    #define     BA_Gbl_pinMuxCntlBus_STS0_SD                   0x800F
    #define     B16Gbl_pinMuxCntlBus_STS0_SD                   0x800E
    #define   LSb32Gbl_pinMuxCntlBus_STS0_SD                      27
    #define   LSb16Gbl_pinMuxCntlBus_STS0_SD                      11
    #define       bGbl_pinMuxCntlBus_STS0_SD                   3
    #define   MSK32Gbl_pinMuxCntlBus_STS0_SD                      0x38000000
    #define        Gbl_pinMuxCntlBus_STS0_SD_MODE_0                         0x0
    #define        Gbl_pinMuxCntlBus_STS0_SD_MODE_1                         0x1
    #define        Gbl_pinMuxCntlBus_STS0_SD_MODE_2                         0x2
    #define        Gbl_pinMuxCntlBus_STS0_SD_MODE_3                         0x3
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_URT0_RXDCntl                            0x8010

    #define     BA_Gbl_URT0_RXDCntl_PD_EN                      0x8010
    #define     B16Gbl_URT0_RXDCntl_PD_EN                      0x8010
    #define   LSb32Gbl_URT0_RXDCntl_PD_EN                         0
    #define   LSb16Gbl_URT0_RXDCntl_PD_EN                         0
    #define       bGbl_URT0_RXDCntl_PD_EN                      1
    #define   MSK32Gbl_URT0_RXDCntl_PD_EN                         0x00000001

    #define     BA_Gbl_URT0_RXDCntl_PU_EN                      0x8010
    #define     B16Gbl_URT0_RXDCntl_PU_EN                      0x8010
    #define   LSb32Gbl_URT0_RXDCntl_PU_EN                         1
    #define   LSb16Gbl_URT0_RXDCntl_PU_EN                         1
    #define       bGbl_URT0_RXDCntl_PU_EN                      1
    #define   MSK32Gbl_URT0_RXDCntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_URT0_TXDCntl                            0x8014

    #define     BA_Gbl_URT0_TXDCntl_PD_EN                      0x8014
    #define     B16Gbl_URT0_TXDCntl_PD_EN                      0x8014
    #define   LSb32Gbl_URT0_TXDCntl_PD_EN                         0
    #define   LSb16Gbl_URT0_TXDCntl_PD_EN                         0
    #define       bGbl_URT0_TXDCntl_PD_EN                      1
    #define   MSK32Gbl_URT0_TXDCntl_PD_EN                         0x00000001

    #define     BA_Gbl_URT0_TXDCntl_PU_EN                      0x8014
    #define     B16Gbl_URT0_TXDCntl_PU_EN                      0x8014
    #define   LSb32Gbl_URT0_TXDCntl_PU_EN                         1
    #define   LSb16Gbl_URT0_TXDCntl_PU_EN                         1
    #define       bGbl_URT0_TXDCntl_PU_EN                      1
    #define   MSK32Gbl_URT0_TXDCntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SPI1_SS0nCntl                           0x8018

    #define     BA_Gbl_SPI1_SS0nCntl_PD_EN                     0x8018
    #define     B16Gbl_SPI1_SS0nCntl_PD_EN                     0x8018
    #define   LSb32Gbl_SPI1_SS0nCntl_PD_EN                        0
    #define   LSb16Gbl_SPI1_SS0nCntl_PD_EN                        0
    #define       bGbl_SPI1_SS0nCntl_PD_EN                     1
    #define   MSK32Gbl_SPI1_SS0nCntl_PD_EN                        0x00000001

    #define     BA_Gbl_SPI1_SS0nCntl_PU_EN                     0x8018
    #define     B16Gbl_SPI1_SS0nCntl_PU_EN                     0x8018
    #define   LSb32Gbl_SPI1_SS0nCntl_PU_EN                        1
    #define   LSb16Gbl_SPI1_SS0nCntl_PU_EN                        1
    #define       bGbl_SPI1_SS0nCntl_PU_EN                     1
    #define   MSK32Gbl_SPI1_SS0nCntl_PU_EN                        0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SPI1_SS1nCntl                           0x801C

    #define     BA_Gbl_SPI1_SS1nCntl_PD_EN                     0x801C
    #define     B16Gbl_SPI1_SS1nCntl_PD_EN                     0x801C
    #define   LSb32Gbl_SPI1_SS1nCntl_PD_EN                        0
    #define   LSb16Gbl_SPI1_SS1nCntl_PD_EN                        0
    #define       bGbl_SPI1_SS1nCntl_PD_EN                     1
    #define   MSK32Gbl_SPI1_SS1nCntl_PD_EN                        0x00000001

    #define     BA_Gbl_SPI1_SS1nCntl_PU_EN                     0x801C
    #define     B16Gbl_SPI1_SS1nCntl_PU_EN                     0x801C
    #define   LSb32Gbl_SPI1_SS1nCntl_PU_EN                        1
    #define   LSb16Gbl_SPI1_SS1nCntl_PU_EN                        1
    #define       bGbl_SPI1_SS1nCntl_PU_EN                     1
    #define   MSK32Gbl_SPI1_SS1nCntl_PU_EN                        0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SPI1_SS2nCntl                           0x8020

    #define     BA_Gbl_SPI1_SS2nCntl_PD_EN                     0x8020
    #define     B16Gbl_SPI1_SS2nCntl_PD_EN                     0x8020
    #define   LSb32Gbl_SPI1_SS2nCntl_PD_EN                        0
    #define   LSb16Gbl_SPI1_SS2nCntl_PD_EN                        0
    #define       bGbl_SPI1_SS2nCntl_PD_EN                     1
    #define   MSK32Gbl_SPI1_SS2nCntl_PD_EN                        0x00000001

    #define     BA_Gbl_SPI1_SS2nCntl_PU_EN                     0x8020
    #define     B16Gbl_SPI1_SS2nCntl_PU_EN                     0x8020
    #define   LSb32Gbl_SPI1_SS2nCntl_PU_EN                        1
    #define   LSb16Gbl_SPI1_SS2nCntl_PU_EN                        1
    #define       bGbl_SPI1_SS2nCntl_PU_EN                     1
    #define   MSK32Gbl_SPI1_SS2nCntl_PU_EN                        0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SPI1_SCLKCntl                           0x8024

    #define     BA_Gbl_SPI1_SCLKCntl_PD_EN                     0x8024
    #define     B16Gbl_SPI1_SCLKCntl_PD_EN                     0x8024
    #define   LSb32Gbl_SPI1_SCLKCntl_PD_EN                        0
    #define   LSb16Gbl_SPI1_SCLKCntl_PD_EN                        0
    #define       bGbl_SPI1_SCLKCntl_PD_EN                     1
    #define   MSK32Gbl_SPI1_SCLKCntl_PD_EN                        0x00000001

    #define     BA_Gbl_SPI1_SCLKCntl_PU_EN                     0x8024
    #define     B16Gbl_SPI1_SCLKCntl_PU_EN                     0x8024
    #define   LSb32Gbl_SPI1_SCLKCntl_PU_EN                        1
    #define   LSb16Gbl_SPI1_SCLKCntl_PU_EN                        1
    #define       bGbl_SPI1_SCLKCntl_PU_EN                     1
    #define   MSK32Gbl_SPI1_SCLKCntl_PU_EN                        0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SPI1_SDOCntl                            0x8028

    #define     BA_Gbl_SPI1_SDOCntl_PD_EN                      0x8028
    #define     B16Gbl_SPI1_SDOCntl_PD_EN                      0x8028
    #define   LSb32Gbl_SPI1_SDOCntl_PD_EN                         0
    #define   LSb16Gbl_SPI1_SDOCntl_PD_EN                         0
    #define       bGbl_SPI1_SDOCntl_PD_EN                      1
    #define   MSK32Gbl_SPI1_SDOCntl_PD_EN                         0x00000001

    #define     BA_Gbl_SPI1_SDOCntl_PU_EN                      0x8028
    #define     B16Gbl_SPI1_SDOCntl_PU_EN                      0x8028
    #define   LSb32Gbl_SPI1_SDOCntl_PU_EN                         1
    #define   LSb16Gbl_SPI1_SDOCntl_PU_EN                         1
    #define       bGbl_SPI1_SDOCntl_PU_EN                      1
    #define   MSK32Gbl_SPI1_SDOCntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SPI1_SDICntl                            0x802C

    #define     BA_Gbl_SPI1_SDICntl_PD_EN                      0x802C
    #define     B16Gbl_SPI1_SDICntl_PD_EN                      0x802C
    #define   LSb32Gbl_SPI1_SDICntl_PD_EN                         0
    #define   LSb16Gbl_SPI1_SDICntl_PD_EN                         0
    #define       bGbl_SPI1_SDICntl_PD_EN                      1
    #define   MSK32Gbl_SPI1_SDICntl_PD_EN                         0x00000001

    #define     BA_Gbl_SPI1_SDICntl_PU_EN                      0x802C
    #define     B16Gbl_SPI1_SDICntl_PU_EN                      0x802C
    #define   LSb32Gbl_SPI1_SDICntl_PU_EN                         1
    #define   LSb16Gbl_SPI1_SDICntl_PU_EN                         1
    #define       bGbl_SPI1_SDICntl_PU_EN                      1
    #define   MSK32Gbl_SPI1_SDICntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_USB1_DRV_VBUSCntl                       0x8030

    #define     BA_Gbl_USB1_DRV_VBUSCntl_PD_EN                 0x8030
    #define     B16Gbl_USB1_DRV_VBUSCntl_PD_EN                 0x8030
    #define   LSb32Gbl_USB1_DRV_VBUSCntl_PD_EN                    0
    #define   LSb16Gbl_USB1_DRV_VBUSCntl_PD_EN                    0
    #define       bGbl_USB1_DRV_VBUSCntl_PD_EN                 1
    #define   MSK32Gbl_USB1_DRV_VBUSCntl_PD_EN                    0x00000001

    #define     BA_Gbl_USB1_DRV_VBUSCntl_PU_EN                 0x8030
    #define     B16Gbl_USB1_DRV_VBUSCntl_PU_EN                 0x8030
    #define   LSb32Gbl_USB1_DRV_VBUSCntl_PU_EN                    1
    #define   LSb16Gbl_USB1_DRV_VBUSCntl_PU_EN                    1
    #define       bGbl_USB1_DRV_VBUSCntl_PU_EN                 1
    #define   MSK32Gbl_USB1_DRV_VBUSCntl_PU_EN                    0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_IO0Cntl                            0x8034

    #define     BA_Gbl_NAND_IO0Cntl_PD_EN                      0x8034
    #define     B16Gbl_NAND_IO0Cntl_PD_EN                      0x8034
    #define   LSb32Gbl_NAND_IO0Cntl_PD_EN                         0
    #define   LSb16Gbl_NAND_IO0Cntl_PD_EN                         0
    #define       bGbl_NAND_IO0Cntl_PD_EN                      1
    #define   MSK32Gbl_NAND_IO0Cntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_IO0Cntl_PU_EN                      0x8034
    #define     B16Gbl_NAND_IO0Cntl_PU_EN                      0x8034
    #define   LSb32Gbl_NAND_IO0Cntl_PU_EN                         1
    #define   LSb16Gbl_NAND_IO0Cntl_PU_EN                         1
    #define       bGbl_NAND_IO0Cntl_PU_EN                      1
    #define   MSK32Gbl_NAND_IO0Cntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_IO1Cntl                            0x8038

    #define     BA_Gbl_NAND_IO1Cntl_PD_EN                      0x8038
    #define     B16Gbl_NAND_IO1Cntl_PD_EN                      0x8038
    #define   LSb32Gbl_NAND_IO1Cntl_PD_EN                         0
    #define   LSb16Gbl_NAND_IO1Cntl_PD_EN                         0
    #define       bGbl_NAND_IO1Cntl_PD_EN                      1
    #define   MSK32Gbl_NAND_IO1Cntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_IO1Cntl_PU_EN                      0x8038
    #define     B16Gbl_NAND_IO1Cntl_PU_EN                      0x8038
    #define   LSb32Gbl_NAND_IO1Cntl_PU_EN                         1
    #define   LSb16Gbl_NAND_IO1Cntl_PU_EN                         1
    #define       bGbl_NAND_IO1Cntl_PU_EN                      1
    #define   MSK32Gbl_NAND_IO1Cntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_IO2Cntl                            0x803C

    #define     BA_Gbl_NAND_IO2Cntl_PD_EN                      0x803C
    #define     B16Gbl_NAND_IO2Cntl_PD_EN                      0x803C
    #define   LSb32Gbl_NAND_IO2Cntl_PD_EN                         0
    #define   LSb16Gbl_NAND_IO2Cntl_PD_EN                         0
    #define       bGbl_NAND_IO2Cntl_PD_EN                      1
    #define   MSK32Gbl_NAND_IO2Cntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_IO2Cntl_PU_EN                      0x803C
    #define     B16Gbl_NAND_IO2Cntl_PU_EN                      0x803C
    #define   LSb32Gbl_NAND_IO2Cntl_PU_EN                         1
    #define   LSb16Gbl_NAND_IO2Cntl_PU_EN                         1
    #define       bGbl_NAND_IO2Cntl_PU_EN                      1
    #define   MSK32Gbl_NAND_IO2Cntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_IO3Cntl                            0x8040

    #define     BA_Gbl_NAND_IO3Cntl_PD_EN                      0x8040
    #define     B16Gbl_NAND_IO3Cntl_PD_EN                      0x8040
    #define   LSb32Gbl_NAND_IO3Cntl_PD_EN                         0
    #define   LSb16Gbl_NAND_IO3Cntl_PD_EN                         0
    #define       bGbl_NAND_IO3Cntl_PD_EN                      1
    #define   MSK32Gbl_NAND_IO3Cntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_IO3Cntl_PU_EN                      0x8040
    #define     B16Gbl_NAND_IO3Cntl_PU_EN                      0x8040
    #define   LSb32Gbl_NAND_IO3Cntl_PU_EN                         1
    #define   LSb16Gbl_NAND_IO3Cntl_PU_EN                         1
    #define       bGbl_NAND_IO3Cntl_PU_EN                      1
    #define   MSK32Gbl_NAND_IO3Cntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_IO4Cntl                            0x8044

    #define     BA_Gbl_NAND_IO4Cntl_PD_EN                      0x8044
    #define     B16Gbl_NAND_IO4Cntl_PD_EN                      0x8044
    #define   LSb32Gbl_NAND_IO4Cntl_PD_EN                         0
    #define   LSb16Gbl_NAND_IO4Cntl_PD_EN                         0
    #define       bGbl_NAND_IO4Cntl_PD_EN                      1
    #define   MSK32Gbl_NAND_IO4Cntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_IO4Cntl_PU_EN                      0x8044
    #define     B16Gbl_NAND_IO4Cntl_PU_EN                      0x8044
    #define   LSb32Gbl_NAND_IO4Cntl_PU_EN                         1
    #define   LSb16Gbl_NAND_IO4Cntl_PU_EN                         1
    #define       bGbl_NAND_IO4Cntl_PU_EN                      1
    #define   MSK32Gbl_NAND_IO4Cntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_IO5Cntl                            0x8048

    #define     BA_Gbl_NAND_IO5Cntl_PD_EN                      0x8048
    #define     B16Gbl_NAND_IO5Cntl_PD_EN                      0x8048
    #define   LSb32Gbl_NAND_IO5Cntl_PD_EN                         0
    #define   LSb16Gbl_NAND_IO5Cntl_PD_EN                         0
    #define       bGbl_NAND_IO5Cntl_PD_EN                      1
    #define   MSK32Gbl_NAND_IO5Cntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_IO5Cntl_PU_EN                      0x8048
    #define     B16Gbl_NAND_IO5Cntl_PU_EN                      0x8048
    #define   LSb32Gbl_NAND_IO5Cntl_PU_EN                         1
    #define   LSb16Gbl_NAND_IO5Cntl_PU_EN                         1
    #define       bGbl_NAND_IO5Cntl_PU_EN                      1
    #define   MSK32Gbl_NAND_IO5Cntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_IO6Cntl                            0x804C

    #define     BA_Gbl_NAND_IO6Cntl_PD_EN                      0x804C
    #define     B16Gbl_NAND_IO6Cntl_PD_EN                      0x804C
    #define   LSb32Gbl_NAND_IO6Cntl_PD_EN                         0
    #define   LSb16Gbl_NAND_IO6Cntl_PD_EN                         0
    #define       bGbl_NAND_IO6Cntl_PD_EN                      1
    #define   MSK32Gbl_NAND_IO6Cntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_IO6Cntl_PU_EN                      0x804C
    #define     B16Gbl_NAND_IO6Cntl_PU_EN                      0x804C
    #define   LSb32Gbl_NAND_IO6Cntl_PU_EN                         1
    #define   LSb16Gbl_NAND_IO6Cntl_PU_EN                         1
    #define       bGbl_NAND_IO6Cntl_PU_EN                      1
    #define   MSK32Gbl_NAND_IO6Cntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_IO7Cntl                            0x8050

    #define     BA_Gbl_NAND_IO7Cntl_PD_EN                      0x8050
    #define     B16Gbl_NAND_IO7Cntl_PD_EN                      0x8050
    #define   LSb32Gbl_NAND_IO7Cntl_PD_EN                         0
    #define   LSb16Gbl_NAND_IO7Cntl_PD_EN                         0
    #define       bGbl_NAND_IO7Cntl_PD_EN                      1
    #define   MSK32Gbl_NAND_IO7Cntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_IO7Cntl_PU_EN                      0x8050
    #define     B16Gbl_NAND_IO7Cntl_PU_EN                      0x8050
    #define   LSb32Gbl_NAND_IO7Cntl_PU_EN                         1
    #define   LSb16Gbl_NAND_IO7Cntl_PU_EN                         1
    #define       bGbl_NAND_IO7Cntl_PU_EN                      1
    #define   MSK32Gbl_NAND_IO7Cntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_ALECntl                            0x8054

    #define     BA_Gbl_NAND_ALECntl_PD_EN                      0x8054
    #define     B16Gbl_NAND_ALECntl_PD_EN                      0x8054
    #define   LSb32Gbl_NAND_ALECntl_PD_EN                         0
    #define   LSb16Gbl_NAND_ALECntl_PD_EN                         0
    #define       bGbl_NAND_ALECntl_PD_EN                      1
    #define   MSK32Gbl_NAND_ALECntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_ALECntl_PU_EN                      0x8054
    #define     B16Gbl_NAND_ALECntl_PU_EN                      0x8054
    #define   LSb32Gbl_NAND_ALECntl_PU_EN                         1
    #define   LSb16Gbl_NAND_ALECntl_PU_EN                         1
    #define       bGbl_NAND_ALECntl_PU_EN                      1
    #define   MSK32Gbl_NAND_ALECntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_CLECntl                            0x8058

    #define     BA_Gbl_NAND_CLECntl_PD_EN                      0x8058
    #define     B16Gbl_NAND_CLECntl_PD_EN                      0x8058
    #define   LSb32Gbl_NAND_CLECntl_PD_EN                         0
    #define   LSb16Gbl_NAND_CLECntl_PD_EN                         0
    #define       bGbl_NAND_CLECntl_PD_EN                      1
    #define   MSK32Gbl_NAND_CLECntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_CLECntl_PU_EN                      0x8058
    #define     B16Gbl_NAND_CLECntl_PU_EN                      0x8058
    #define   LSb32Gbl_NAND_CLECntl_PU_EN                         1
    #define   LSb16Gbl_NAND_CLECntl_PU_EN                         1
    #define       bGbl_NAND_CLECntl_PU_EN                      1
    #define   MSK32Gbl_NAND_CLECntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_WEnCntl                            0x805C

    #define     BA_Gbl_NAND_WEnCntl_PD_EN                      0x805C
    #define     B16Gbl_NAND_WEnCntl_PD_EN                      0x805C
    #define   LSb32Gbl_NAND_WEnCntl_PD_EN                         0
    #define   LSb16Gbl_NAND_WEnCntl_PD_EN                         0
    #define       bGbl_NAND_WEnCntl_PD_EN                      1
    #define   MSK32Gbl_NAND_WEnCntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_WEnCntl_PU_EN                      0x805C
    #define     B16Gbl_NAND_WEnCntl_PU_EN                      0x805C
    #define   LSb32Gbl_NAND_WEnCntl_PU_EN                         1
    #define   LSb16Gbl_NAND_WEnCntl_PU_EN                         1
    #define       bGbl_NAND_WEnCntl_PU_EN                      1
    #define   MSK32Gbl_NAND_WEnCntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_REnCntl                            0x8060

    #define     BA_Gbl_NAND_REnCntl_PD_EN                      0x8060
    #define     B16Gbl_NAND_REnCntl_PD_EN                      0x8060
    #define   LSb32Gbl_NAND_REnCntl_PD_EN                         0
    #define   LSb16Gbl_NAND_REnCntl_PD_EN                         0
    #define       bGbl_NAND_REnCntl_PD_EN                      1
    #define   MSK32Gbl_NAND_REnCntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_REnCntl_PU_EN                      0x8060
    #define     B16Gbl_NAND_REnCntl_PU_EN                      0x8060
    #define   LSb32Gbl_NAND_REnCntl_PU_EN                         1
    #define   LSb16Gbl_NAND_REnCntl_PU_EN                         1
    #define       bGbl_NAND_REnCntl_PU_EN                      1
    #define   MSK32Gbl_NAND_REnCntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_WPnCntl                            0x8064

    #define     BA_Gbl_NAND_WPnCntl_PD_EN                      0x8064
    #define     B16Gbl_NAND_WPnCntl_PD_EN                      0x8064
    #define   LSb32Gbl_NAND_WPnCntl_PD_EN                         0
    #define   LSb16Gbl_NAND_WPnCntl_PD_EN                         0
    #define       bGbl_NAND_WPnCntl_PD_EN                      1
    #define   MSK32Gbl_NAND_WPnCntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_WPnCntl_PU_EN                      0x8064
    #define     B16Gbl_NAND_WPnCntl_PU_EN                      0x8064
    #define   LSb32Gbl_NAND_WPnCntl_PU_EN                         1
    #define   LSb16Gbl_NAND_WPnCntl_PU_EN                         1
    #define       bGbl_NAND_WPnCntl_PU_EN                      1
    #define   MSK32Gbl_NAND_WPnCntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_CEnCntl                            0x8068

    #define     BA_Gbl_NAND_CEnCntl_PD_EN                      0x8068
    #define     B16Gbl_NAND_CEnCntl_PD_EN                      0x8068
    #define   LSb32Gbl_NAND_CEnCntl_PD_EN                         0
    #define   LSb16Gbl_NAND_CEnCntl_PD_EN                         0
    #define       bGbl_NAND_CEnCntl_PD_EN                      1
    #define   MSK32Gbl_NAND_CEnCntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_CEnCntl_PU_EN                      0x8068
    #define     B16Gbl_NAND_CEnCntl_PU_EN                      0x8068
    #define   LSb32Gbl_NAND_CEnCntl_PU_EN                         1
    #define   LSb16Gbl_NAND_CEnCntl_PU_EN                         1
    #define       bGbl_NAND_CEnCntl_PU_EN                      1
    #define   MSK32Gbl_NAND_CEnCntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_NAND_RDYCntl                            0x806C

    #define     BA_Gbl_NAND_RDYCntl_PD_EN                      0x806C
    #define     B16Gbl_NAND_RDYCntl_PD_EN                      0x806C
    #define   LSb32Gbl_NAND_RDYCntl_PD_EN                         0
    #define   LSb16Gbl_NAND_RDYCntl_PD_EN                         0
    #define       bGbl_NAND_RDYCntl_PD_EN                      1
    #define   MSK32Gbl_NAND_RDYCntl_PD_EN                         0x00000001

    #define     BA_Gbl_NAND_RDYCntl_PU_EN                      0x806C
    #define     B16Gbl_NAND_RDYCntl_PU_EN                      0x806C
    #define   LSb32Gbl_NAND_RDYCntl_PU_EN                         1
    #define   LSb16Gbl_NAND_RDYCntl_PU_EN                         1
    #define       bGbl_NAND_RDYCntl_PU_EN                      1
    #define   MSK32Gbl_NAND_RDYCntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SD0_CLKCntl                             0x8070

    #define     BA_Gbl_SD0_CLKCntl_PD_EN                       0x8070
    #define     B16Gbl_SD0_CLKCntl_PD_EN                       0x8070
    #define   LSb32Gbl_SD0_CLKCntl_PD_EN                          0
    #define   LSb16Gbl_SD0_CLKCntl_PD_EN                          0
    #define       bGbl_SD0_CLKCntl_PD_EN                       1
    #define   MSK32Gbl_SD0_CLKCntl_PD_EN                          0x00000001

    #define     BA_Gbl_SD0_CLKCntl_PU_EN                       0x8070
    #define     B16Gbl_SD0_CLKCntl_PU_EN                       0x8070
    #define   LSb32Gbl_SD0_CLKCntl_PU_EN                          1
    #define   LSb16Gbl_SD0_CLKCntl_PU_EN                          1
    #define       bGbl_SD0_CLKCntl_PU_EN                       1
    #define   MSK32Gbl_SD0_CLKCntl_PU_EN                          0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SD0_DAT0Cntl                            0x8074

    #define     BA_Gbl_SD0_DAT0Cntl_PD_EN                      0x8074
    #define     B16Gbl_SD0_DAT0Cntl_PD_EN                      0x8074
    #define   LSb32Gbl_SD0_DAT0Cntl_PD_EN                         0
    #define   LSb16Gbl_SD0_DAT0Cntl_PD_EN                         0
    #define       bGbl_SD0_DAT0Cntl_PD_EN                      1
    #define   MSK32Gbl_SD0_DAT0Cntl_PD_EN                         0x00000001

    #define     BA_Gbl_SD0_DAT0Cntl_PU_EN                      0x8074
    #define     B16Gbl_SD0_DAT0Cntl_PU_EN                      0x8074
    #define   LSb32Gbl_SD0_DAT0Cntl_PU_EN                         1
    #define   LSb16Gbl_SD0_DAT0Cntl_PU_EN                         1
    #define       bGbl_SD0_DAT0Cntl_PU_EN                      1
    #define   MSK32Gbl_SD0_DAT0Cntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SD0_DAT1Cntl                            0x8078

    #define     BA_Gbl_SD0_DAT1Cntl_PD_EN                      0x8078
    #define     B16Gbl_SD0_DAT1Cntl_PD_EN                      0x8078
    #define   LSb32Gbl_SD0_DAT1Cntl_PD_EN                         0
    #define   LSb16Gbl_SD0_DAT1Cntl_PD_EN                         0
    #define       bGbl_SD0_DAT1Cntl_PD_EN                      1
    #define   MSK32Gbl_SD0_DAT1Cntl_PD_EN                         0x00000001

    #define     BA_Gbl_SD0_DAT1Cntl_PU_EN                      0x8078
    #define     B16Gbl_SD0_DAT1Cntl_PU_EN                      0x8078
    #define   LSb32Gbl_SD0_DAT1Cntl_PU_EN                         1
    #define   LSb16Gbl_SD0_DAT1Cntl_PU_EN                         1
    #define       bGbl_SD0_DAT1Cntl_PU_EN                      1
    #define   MSK32Gbl_SD0_DAT1Cntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SD0_DAT2Cntl                            0x807C

    #define     BA_Gbl_SD0_DAT2Cntl_PD_EN                      0x807C
    #define     B16Gbl_SD0_DAT2Cntl_PD_EN                      0x807C
    #define   LSb32Gbl_SD0_DAT2Cntl_PD_EN                         0
    #define   LSb16Gbl_SD0_DAT2Cntl_PD_EN                         0
    #define       bGbl_SD0_DAT2Cntl_PD_EN                      1
    #define   MSK32Gbl_SD0_DAT2Cntl_PD_EN                         0x00000001

    #define     BA_Gbl_SD0_DAT2Cntl_PU_EN                      0x807C
    #define     B16Gbl_SD0_DAT2Cntl_PU_EN                      0x807C
    #define   LSb32Gbl_SD0_DAT2Cntl_PU_EN                         1
    #define   LSb16Gbl_SD0_DAT2Cntl_PU_EN                         1
    #define       bGbl_SD0_DAT2Cntl_PU_EN                      1
    #define   MSK32Gbl_SD0_DAT2Cntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SD0_DAT3Cntl                            0x8080

    #define     BA_Gbl_SD0_DAT3Cntl_PD_EN                      0x8080
    #define     B16Gbl_SD0_DAT3Cntl_PD_EN                      0x8080
    #define   LSb32Gbl_SD0_DAT3Cntl_PD_EN                         0
    #define   LSb16Gbl_SD0_DAT3Cntl_PD_EN                         0
    #define       bGbl_SD0_DAT3Cntl_PD_EN                      1
    #define   MSK32Gbl_SD0_DAT3Cntl_PD_EN                         0x00000001

    #define     BA_Gbl_SD0_DAT3Cntl_PU_EN                      0x8080
    #define     B16Gbl_SD0_DAT3Cntl_PU_EN                      0x8080
    #define   LSb32Gbl_SD0_DAT3Cntl_PU_EN                         1
    #define   LSb16Gbl_SD0_DAT3Cntl_PU_EN                         1
    #define       bGbl_SD0_DAT3Cntl_PU_EN                      1
    #define   MSK32Gbl_SD0_DAT3Cntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SD0_CDnCntl                             0x8084

    #define     BA_Gbl_SD0_CDnCntl_PD_EN                       0x8084
    #define     B16Gbl_SD0_CDnCntl_PD_EN                       0x8084
    #define   LSb32Gbl_SD0_CDnCntl_PD_EN                          0
    #define   LSb16Gbl_SD0_CDnCntl_PD_EN                          0
    #define       bGbl_SD0_CDnCntl_PD_EN                       1
    #define   MSK32Gbl_SD0_CDnCntl_PD_EN                          0x00000001

    #define     BA_Gbl_SD0_CDnCntl_PU_EN                       0x8084
    #define     B16Gbl_SD0_CDnCntl_PU_EN                       0x8084
    #define   LSb32Gbl_SD0_CDnCntl_PU_EN                          1
    #define   LSb16Gbl_SD0_CDnCntl_PU_EN                          1
    #define       bGbl_SD0_CDnCntl_PU_EN                       1
    #define   MSK32Gbl_SD0_CDnCntl_PU_EN                          0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SD0_CMDCntl                             0x8088

    #define     BA_Gbl_SD0_CMDCntl_PD_EN                       0x8088
    #define     B16Gbl_SD0_CMDCntl_PD_EN                       0x8088
    #define   LSb32Gbl_SD0_CMDCntl_PD_EN                          0
    #define   LSb16Gbl_SD0_CMDCntl_PD_EN                          0
    #define       bGbl_SD0_CMDCntl_PD_EN                       1
    #define   MSK32Gbl_SD0_CMDCntl_PD_EN                          0x00000001

    #define     BA_Gbl_SD0_CMDCntl_PU_EN                       0x8088
    #define     B16Gbl_SD0_CMDCntl_PU_EN                       0x8088
    #define   LSb32Gbl_SD0_CMDCntl_PU_EN                          1
    #define   LSb16Gbl_SD0_CMDCntl_PU_EN                          1
    #define       bGbl_SD0_CMDCntl_PU_EN                       1
    #define   MSK32Gbl_SD0_CMDCntl_PU_EN                          0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_SD0_WPCntl                              0x808C

    #define     BA_Gbl_SD0_WPCntl_PD_EN                        0x808C
    #define     B16Gbl_SD0_WPCntl_PD_EN                        0x808C
    #define   LSb32Gbl_SD0_WPCntl_PD_EN                           0
    #define   LSb16Gbl_SD0_WPCntl_PD_EN                           0
    #define       bGbl_SD0_WPCntl_PD_EN                        1
    #define   MSK32Gbl_SD0_WPCntl_PD_EN                           0x00000001

    #define     BA_Gbl_SD0_WPCntl_PU_EN                        0x808C
    #define     B16Gbl_SD0_WPCntl_PU_EN                        0x808C
    #define   LSb32Gbl_SD0_WPCntl_PU_EN                           1
    #define   LSb16Gbl_SD0_WPCntl_PU_EN                           1
    #define       bGbl_SD0_WPCntl_PU_EN                        1
    #define   MSK32Gbl_SD0_WPCntl_PU_EN                           0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_STS0_CLKCntl                            0x8090

    #define     BA_Gbl_STS0_CLKCntl_PD_EN                      0x8090
    #define     B16Gbl_STS0_CLKCntl_PD_EN                      0x8090
    #define   LSb32Gbl_STS0_CLKCntl_PD_EN                         0
    #define   LSb16Gbl_STS0_CLKCntl_PD_EN                         0
    #define       bGbl_STS0_CLKCntl_PD_EN                      1
    #define   MSK32Gbl_STS0_CLKCntl_PD_EN                         0x00000001

    #define     BA_Gbl_STS0_CLKCntl_PU_EN                      0x8090
    #define     B16Gbl_STS0_CLKCntl_PU_EN                      0x8090
    #define   LSb32Gbl_STS0_CLKCntl_PU_EN                         1
    #define   LSb16Gbl_STS0_CLKCntl_PU_EN                         1
    #define       bGbl_STS0_CLKCntl_PU_EN                      1
    #define   MSK32Gbl_STS0_CLKCntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_STS0_SOPCntl                            0x8094

    #define     BA_Gbl_STS0_SOPCntl_PD_EN                      0x8094
    #define     B16Gbl_STS0_SOPCntl_PD_EN                      0x8094
    #define   LSb32Gbl_STS0_SOPCntl_PD_EN                         0
    #define   LSb16Gbl_STS0_SOPCntl_PD_EN                         0
    #define       bGbl_STS0_SOPCntl_PD_EN                      1
    #define   MSK32Gbl_STS0_SOPCntl_PD_EN                         0x00000001

    #define     BA_Gbl_STS0_SOPCntl_PU_EN                      0x8094
    #define     B16Gbl_STS0_SOPCntl_PU_EN                      0x8094
    #define   LSb32Gbl_STS0_SOPCntl_PU_EN                         1
    #define   LSb16Gbl_STS0_SOPCntl_PU_EN                         1
    #define       bGbl_STS0_SOPCntl_PU_EN                      1
    #define   MSK32Gbl_STS0_SOPCntl_PU_EN                         0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_STS0_VALDCntl                           0x8098

    #define     BA_Gbl_STS0_VALDCntl_PD_EN                     0x8098
    #define     B16Gbl_STS0_VALDCntl_PD_EN                     0x8098
    #define   LSb32Gbl_STS0_VALDCntl_PD_EN                        0
    #define   LSb16Gbl_STS0_VALDCntl_PD_EN                        0
    #define       bGbl_STS0_VALDCntl_PD_EN                     1
    #define   MSK32Gbl_STS0_VALDCntl_PD_EN                        0x00000001

    #define     BA_Gbl_STS0_VALDCntl_PU_EN                     0x8098
    #define     B16Gbl_STS0_VALDCntl_PU_EN                     0x8098
    #define   LSb32Gbl_STS0_VALDCntl_PU_EN                        1
    #define   LSb16Gbl_STS0_VALDCntl_PU_EN                        1
    #define       bGbl_STS0_VALDCntl_PU_EN                     1
    #define   MSK32Gbl_STS0_VALDCntl_PU_EN                        0x00000002
    ///////////////////////////////////////////////////////////
    #define     RA_Gbl_STS0_SDCntl                             0x809C

    #define     BA_Gbl_STS0_SDCntl_PD_EN                       0x809C
    #define     B16Gbl_STS0_SDCntl_PD_EN                       0x809C
    #define   LSb32Gbl_STS0_SDCntl_PD_EN                          0
    #define   LSb16Gbl_STS0_SDCntl_PD_EN                          0
    #define       bGbl_STS0_SDCntl_PD_EN                       1
    #define   MSK32Gbl_STS0_SDCntl_PD_EN                          0x00000001

    #define     BA_Gbl_STS0_SDCntl_PU_EN                       0x809C
    #define     B16Gbl_STS0_SDCntl_PU_EN                       0x809C
    #define   LSb32Gbl_STS0_SDCntl_PU_EN                          1
    #define   LSb16Gbl_STS0_SDCntl_PU_EN                          1
    #define       bGbl_STS0_SDCntl_PU_EN                       1
    #define   MSK32Gbl_STS0_SDCntl_PU_EN                          0x00000002
    ///////////////////////////////////////////////////////////

    typedef struct SIE_Gbl {
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_ProductId_Id(r32)                       _BFGET_(r32,31, 0)
    #define   SET32Gbl_ProductId_Id(r32,v)                     _BFSET_(r32,31, 0,v)

    #define     w32Gbl_ProductId                               {\
            UNSG32 uProductId_Id                               : 32;\
          }
    union { UNSG32 u32Gbl_ProductId;
            struct w32Gbl_ProductId;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_ProductId_ext_ID_EXT(r32)               _BFGET_(r32, 7, 0)
    #define   SET32Gbl_ProductId_ext_ID_EXT(r32,v)             _BFSET_(r32, 7, 0,v)
    #define   GET16Gbl_ProductId_ext_ID_EXT(r16)               _BFGET_(r16, 7, 0)
    #define   SET16Gbl_ProductId_ext_ID_EXT(r16,v)             _BFSET_(r16, 7, 0,v)

    #define     w32Gbl_ProductId_ext                           {\
            UNSG32 uProductId_ext_ID_EXT                       :  8;\
            UNSG32 RSVDx4_b8                                   : 24;\
          }
    union { UNSG32 u32Gbl_ProductId_ext;
            struct w32Gbl_ProductId_ext;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_INT_ID_VALUE(r32)                       _BFGET_(r32, 7, 0)
    #define   SET32Gbl_INT_ID_VALUE(r32,v)                     _BFSET_(r32, 7, 0,v)
    #define   GET16Gbl_INT_ID_VALUE(r16)                       _BFGET_(r16, 7, 0)
    #define   SET16Gbl_INT_ID_VALUE(r16,v)                     _BFSET_(r16, 7, 0,v)

    #define     w32Gbl_INT_ID                                  {\
            UNSG32 uINT_ID_VALUE                               :  8;\
            UNSG32 RSVDx8_b8                                   : 24;\
          }
    union { UNSG32 u32Gbl_INT_ID;
            struct w32Gbl_INT_ID;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_bootStrap_softwareStrap(r32)            _BFGET_(r32, 1, 0)
    #define   SET32Gbl_bootStrap_softwareStrap(r32,v)          _BFSET_(r32, 1, 0,v)
    #define   GET16Gbl_bootStrap_softwareStrap(r16)            _BFGET_(r16, 1, 0)
    #define   SET16Gbl_bootStrap_softwareStrap(r16,v)          _BFSET_(r16, 1, 0,v)

    #define   GET32Gbl_bootStrap_bootSrc(r32)                  _BFGET_(r32, 3, 2)
    #define   SET32Gbl_bootStrap_bootSrc(r32,v)                _BFSET_(r32, 3, 2,v)
    #define   GET16Gbl_bootStrap_bootSrc(r16)                  _BFGET_(r16, 3, 2)
    #define   SET16Gbl_bootStrap_bootSrc(r16,v)                _BFSET_(r16, 3, 2,v)

    #define   GET32Gbl_bootStrap_cpuRstByps(r32)               _BFGET_(r32, 4, 4)
    #define   SET32Gbl_bootStrap_cpuRstByps(r32,v)             _BFSET_(r32, 4, 4,v)
    #define   GET16Gbl_bootStrap_cpuRstByps(r16)               _BFGET_(r16, 4, 4)
    #define   SET16Gbl_bootStrap_cpuRstByps(r16,v)             _BFSET_(r16, 4, 4,v)

    #define   GET32Gbl_bootStrap_pwrCntlByps(r32)              _BFGET_(r32, 5, 5)
    #define   SET32Gbl_bootStrap_pwrCntlByps(r32,v)            _BFSET_(r32, 5, 5,v)
    #define   GET16Gbl_bootStrap_pwrCntlByps(r16)              _BFGET_(r16, 5, 5)
    #define   SET16Gbl_bootStrap_pwrCntlByps(r16,v)            _BFSET_(r16, 5, 5,v)

    #define   GET32Gbl_bootStrap_pllPwrDown(r32)               _BFGET_(r32, 6, 6)
    #define   SET32Gbl_bootStrap_pllPwrDown(r32,v)             _BFSET_(r32, 6, 6,v)
    #define   GET16Gbl_bootStrap_pllPwrDown(r16)               _BFGET_(r16, 6, 6)
    #define   SET16Gbl_bootStrap_pllPwrDown(r16,v)             _BFSET_(r16, 6, 6,v)

    #define   GET32Gbl_bootStrap_sysPllByps(r32)               _BFGET_(r32, 7, 7)
    #define   SET32Gbl_bootStrap_sysPllByps(r32,v)             _BFSET_(r32, 7, 7,v)
    #define   GET16Gbl_bootStrap_sysPllByps(r16)               _BFGET_(r16, 7, 7)
    #define   SET16Gbl_bootStrap_sysPllByps(r16,v)             _BFSET_(r16, 7, 7,v)

    #define   GET32Gbl_bootStrap_memPllByps(r32)               _BFGET_(r32, 8, 8)
    #define   SET32Gbl_bootStrap_memPllByps(r32,v)             _BFSET_(r32, 8, 8,v)
    #define   GET16Gbl_bootStrap_memPllByps(r16)               _BFGET_(r16, 8, 8)
    #define   SET16Gbl_bootStrap_memPllByps(r16,v)             _BFSET_(r16, 8, 8,v)

    #define   GET32Gbl_bootStrap_cpuPllByps(r32)               _BFGET_(r32, 9, 9)
    #define   SET32Gbl_bootStrap_cpuPllByps(r32,v)             _BFSET_(r32, 9, 9,v)
    #define   GET16Gbl_bootStrap_cpuPllByps(r16)               _BFGET_(r16, 9, 9)
    #define   SET16Gbl_bootStrap_cpuPllByps(r16,v)             _BFSET_(r16, 9, 9,v)

    #define   GET32Gbl_bootStrap_nandV18Enable(r32)            _BFGET_(r32,10,10)
    #define   SET32Gbl_bootStrap_nandV18Enable(r32,v)          _BFSET_(r32,10,10,v)
    #define   GET16Gbl_bootStrap_nandV18Enable(r16)            _BFGET_(r16,10,10)
    #define   SET16Gbl_bootStrap_nandV18Enable(r16,v)          _BFSET_(r16,10,10,v)

    #define   GET32Gbl_bootStrap_dftStrap(r32)                 _BFGET_(r32,11,11)
    #define   SET32Gbl_bootStrap_dftStrap(r32,v)               _BFSET_(r32,11,11,v)
    #define   GET16Gbl_bootStrap_dftStrap(r16)                 _BFGET_(r16,11,11)
    #define   SET16Gbl_bootStrap_dftStrap(r16,v)               _BFSET_(r16,11,11,v)

    #define   GET32Gbl_bootStrap_ENG_EN(r32)                   _BFGET_(r32,12,12)
    #define   SET32Gbl_bootStrap_ENG_EN(r32,v)                 _BFSET_(r32,12,12,v)
    #define   GET16Gbl_bootStrap_ENG_EN(r16)                   _BFGET_(r16,12,12)
    #define   SET16Gbl_bootStrap_ENG_EN(r16,v)                 _BFSET_(r16,12,12,v)

    #define     w32Gbl_bootStrap                               {\
            UNSG32 ubootStrap_softwareStrap                    :  2;\
            UNSG32 ubootStrap_bootSrc                          :  2;\
            UNSG32 ubootStrap_cpuRstByps                       :  1;\
            UNSG32 ubootStrap_pwrCntlByps                      :  1;\
            UNSG32 ubootStrap_pllPwrDown                       :  1;\
            UNSG32 ubootStrap_sysPllByps                       :  1;\
            UNSG32 ubootStrap_memPllByps                       :  1;\
            UNSG32 ubootStrap_cpuPllByps                       :  1;\
            UNSG32 ubootStrap_nandV18Enable                    :  1;\
            UNSG32 ubootStrap_dftStrap                         :  1;\
            UNSG32 ubootStrap_ENG_EN                           :  1;\
            UNSG32 RSVDxC_b13                                  : 19;\
          }
    union { UNSG32 u32Gbl_bootStrap;
            struct w32Gbl_bootStrap;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_bootStrapEn_cpuRstBypsEn(r32)           _BFGET_(r32, 0, 0)
    #define   SET32Gbl_bootStrapEn_cpuRstBypsEn(r32,v)         _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_bootStrapEn_cpuRstBypsEn(r16)           _BFGET_(r16, 0, 0)
    #define   SET16Gbl_bootStrapEn_cpuRstBypsEn(r16,v)         _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_bootStrapEn_pwrCntlBypsEn(r32)          _BFGET_(r32, 1, 1)
    #define   SET32Gbl_bootStrapEn_pwrCntlBypsEn(r32,v)        _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_bootStrapEn_pwrCntlBypsEn(r16)          _BFGET_(r16, 1, 1)
    #define   SET16Gbl_bootStrapEn_pwrCntlBypsEn(r16,v)        _BFSET_(r16, 1, 1,v)

    #define   GET32Gbl_bootStrapEn_pllPwrDownEn(r32)           _BFGET_(r32, 2, 2)
    #define   SET32Gbl_bootStrapEn_pllPwrDownEn(r32,v)         _BFSET_(r32, 2, 2,v)
    #define   GET16Gbl_bootStrapEn_pllPwrDownEn(r16)           _BFGET_(r16, 2, 2)
    #define   SET16Gbl_bootStrapEn_pllPwrDownEn(r16,v)         _BFSET_(r16, 2, 2,v)

    #define   GET32Gbl_bootStrapEn_sysPLLBypsEn(r32)           _BFGET_(r32, 3, 3)
    #define   SET32Gbl_bootStrapEn_sysPLLBypsEn(r32,v)         _BFSET_(r32, 3, 3,v)
    #define   GET16Gbl_bootStrapEn_sysPLLBypsEn(r16)           _BFGET_(r16, 3, 3)
    #define   SET16Gbl_bootStrapEn_sysPLLBypsEn(r16,v)         _BFSET_(r16, 3, 3,v)

    #define   GET32Gbl_bootStrapEn_memPLLBypsEn(r32)           _BFGET_(r32, 4, 4)
    #define   SET32Gbl_bootStrapEn_memPLLBypsEn(r32,v)         _BFSET_(r32, 4, 4,v)
    #define   GET16Gbl_bootStrapEn_memPLLBypsEn(r16)           _BFGET_(r16, 4, 4)
    #define   SET16Gbl_bootStrapEn_memPLLBypsEn(r16,v)         _BFSET_(r16, 4, 4,v)

    #define   GET32Gbl_bootStrapEn_cpuPLLBypsEn(r32)           _BFGET_(r32, 5, 5)
    #define   SET32Gbl_bootStrapEn_cpuPLLBypsEn(r32,v)         _BFSET_(r32, 5, 5,v)
    #define   GET16Gbl_bootStrapEn_cpuPLLBypsEn(r16)           _BFGET_(r16, 5, 5)
    #define   SET16Gbl_bootStrapEn_cpuPLLBypsEn(r16,v)         _BFSET_(r16, 5, 5,v)

    #define     w32Gbl_bootStrapEn                             {\
            UNSG32 ubootStrapEn_cpuRstBypsEn                   :  1;\
            UNSG32 ubootStrapEn_pwrCntlBypsEn                  :  1;\
            UNSG32 ubootStrapEn_pllPwrDownEn                   :  1;\
            UNSG32 ubootStrapEn_sysPLLBypsEn                   :  1;\
            UNSG32 ubootStrapEn_memPLLBypsEn                   :  1;\
            UNSG32 ubootStrapEn_cpuPLLBypsEn                   :  1;\
            UNSG32 RSVDx10_b6                                  : 26;\
          }
    union { UNSG32 u32Gbl_bootStrapEn;
            struct w32Gbl_bootStrapEn;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_chipCntl_SD0_CLK_LPBK_EN(r32)           _BFGET_(r32, 0, 0)
    #define   SET32Gbl_chipCntl_SD0_CLK_LPBK_EN(r32,v)         _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_chipCntl_SD0_CLK_LPBK_EN(r16)           _BFGET_(r16, 0, 0)
    #define   SET16Gbl_chipCntl_SD0_CLK_LPBK_EN(r16,v)         _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_chipCntl_EMMC_CLK_LPBK_EN(r32)          _BFGET_(r32, 1, 1)
    #define   SET32Gbl_chipCntl_EMMC_CLK_LPBK_EN(r32,v)        _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_chipCntl_EMMC_CLK_LPBK_EN(r16)          _BFGET_(r16, 1, 1)
    #define   SET16Gbl_chipCntl_EMMC_CLK_LPBK_EN(r16,v)        _BFSET_(r16, 1, 1,v)

    #define   GET32Gbl_chipCntl_FE_MDIO_SEL(r32)               _BFGET_(r32, 2, 2)
    #define   SET32Gbl_chipCntl_FE_MDIO_SEL(r32,v)             _BFSET_(r32, 2, 2,v)
    #define   GET16Gbl_chipCntl_FE_MDIO_SEL(r16)               _BFGET_(r16, 2, 2)
    #define   SET16Gbl_chipCntl_FE_MDIO_SEL(r16,v)             _BFSET_(r16, 2, 2,v)

    #define   GET32Gbl_chipCntl_eth1_PHY_SEL(r32)              _BFGET_(r32, 3, 3)
    #define   SET32Gbl_chipCntl_eth1_PHY_SEL(r32,v)            _BFSET_(r32, 3, 3,v)
    #define   GET16Gbl_chipCntl_eth1_PHY_SEL(r16)              _BFGET_(r16, 3, 3)
    #define   SET16Gbl_chipCntl_eth1_PHY_SEL(r16,v)            _BFSET_(r16, 3, 3,v)

    #define     w32Gbl_chipCntl                                {\
            UNSG32 uchipCntl_SD0_CLK_LPBK_EN                   :  1;\
            UNSG32 uchipCntl_EMMC_CLK_LPBK_EN                  :  1;\
            UNSG32 uchipCntl_FE_MDIO_SEL                       :  1;\
            UNSG32 uchipCntl_eth1_PHY_SEL                      :  1;\
            UNSG32 RSVDx14_b4                                  : 28;\
          }
    union { UNSG32 u32Gbl_chipCntl;
            struct w32Gbl_chipCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_sw_generic0_swReg0(r32)                 _BFGET_(r32,31, 0)
    #define   SET32Gbl_sw_generic0_swReg0(r32,v)               _BFSET_(r32,31, 0,v)

    #define     w32Gbl_sw_generic0                             {\
            UNSG32 usw_generic0_swReg0                         : 32;\
          }
    union { UNSG32 u32Gbl_sw_generic0;
            struct w32Gbl_sw_generic0;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_sw_generic1_swReg1(r32)                 _BFGET_(r32,31, 0)
    #define   SET32Gbl_sw_generic1_swReg1(r32,v)               _BFSET_(r32,31, 0,v)

    #define     w32Gbl_sw_generic1                             {\
            UNSG32 usw_generic1_swReg1                         : 32;\
          }
    union { UNSG32 u32Gbl_sw_generic1;
            struct w32Gbl_sw_generic1;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_sw_generic2_swReg2(r32)                 _BFGET_(r32,31, 0)
    #define   SET32Gbl_sw_generic2_swReg2(r32,v)               _BFSET_(r32,31, 0,v)

    #define     w32Gbl_sw_generic2                             {\
            UNSG32 usw_generic2_swReg2                         : 32;\
          }
    union { UNSG32 u32Gbl_sw_generic2;
            struct w32Gbl_sw_generic2;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_sw_generic3_swReg3(r32)                 _BFGET_(r32,31, 0)
    #define   SET32Gbl_sw_generic3_swReg3(r32,v)               _BFSET_(r32,31, 0,v)

    #define     w32Gbl_sw_generic3                             {\
            UNSG32 usw_generic3_swReg3                         : 32;\
          }
    union { UNSG32 u32Gbl_sw_generic3;
            struct w32Gbl_sw_generic3;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_RWTC_gfx3D31to0_value(r32)              _BFGET_(r32,31, 0)
    #define   SET32Gbl_RWTC_gfx3D31to0_value(r32,v)            _BFSET_(r32,31, 0,v)

    #define     w32Gbl_RWTC_gfx3D31to0                         {\
            UNSG32 uRWTC_gfx3D31to0_value                      : 32;\
          }
    union { UNSG32 u32Gbl_RWTC_gfx3D31to0;
            struct w32Gbl_RWTC_gfx3D31to0;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_RWTC_gfx3D57to32_value(r32)             _BFGET_(r32,25, 0)
    #define   SET32Gbl_RWTC_gfx3D57to32_value(r32,v)           _BFSET_(r32,25, 0,v)

    #define     w32Gbl_RWTC_gfx3D57to32                        {\
            UNSG32 uRWTC_gfx3D57to32_value                     : 26;\
            UNSG32 RSVDx2C_b26                                 :  6;\
          }
    union { UNSG32 u32Gbl_RWTC_gfx3D57to32;
            struct w32Gbl_RWTC_gfx3D57to32;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_RWTC_top31to0_value(r32)                _BFGET_(r32,31, 0)
    #define   SET32Gbl_RWTC_top31to0_value(r32,v)              _BFSET_(r32,31, 0,v)

    #define     w32Gbl_RWTC_top31to0                           {\
            UNSG32 uRWTC_top31to0_value                        : 32;\
          }
    union { UNSG32 u32Gbl_RWTC_top31to0;
            struct w32Gbl_RWTC_top31to0;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_RWTC_top57to32_value(r32)               _BFGET_(r32,25, 0)
    #define   SET32Gbl_RWTC_top57to32_value(r32,v)             _BFSET_(r32,25, 0,v)

    #define     w32Gbl_RWTC_top57to32                          {\
            UNSG32 uRWTC_top57to32_value                       : 26;\
            UNSG32 RSVDx34_b26                                 :  6;\
          }
    union { UNSG32 u32Gbl_RWTC_top57to32;
            struct w32Gbl_RWTC_top57to32;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_RWTC_vPro31to0_value(r32)               _BFGET_(r32,31, 0)
    #define   SET32Gbl_RWTC_vPro31to0_value(r32,v)             _BFSET_(r32,31, 0,v)

    #define     w32Gbl_RWTC_vPro31to0                          {\
            UNSG32 uRWTC_vPro31to0_value                       : 32;\
          }
    union { UNSG32 u32Gbl_RWTC_vPro31to0;
            struct w32Gbl_RWTC_vPro31to0;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_RWTC_vPro57to32_value(r32)              _BFGET_(r32,25, 0)
    #define   SET32Gbl_RWTC_vPro57to32_value(r32,v)            _BFSET_(r32,25, 0,v)

    #define     w32Gbl_RWTC_vPro57to32                         {\
            UNSG32 uRWTC_vPro57to32_value                      : 26;\
            UNSG32 RSVDx3C_b26                                 :  6;\
          }
    union { UNSG32 u32Gbl_RWTC_vPro57to32;
            struct w32Gbl_RWTC_vPro57to32;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_RWTC_g1Wrap31to0_value(r32)             _BFGET_(r32,31, 0)
    #define   SET32Gbl_RWTC_g1Wrap31to0_value(r32,v)           _BFSET_(r32,31, 0,v)

    #define     w32Gbl_RWTC_g1Wrap31to0                        {\
            UNSG32 uRWTC_g1Wrap31to0_value                     : 32;\
          }
    union { UNSG32 u32Gbl_RWTC_g1Wrap31to0;
            struct w32Gbl_RWTC_g1Wrap31to0;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_RWTC_g1Wrap57to32_value(r32)            _BFGET_(r32,25, 0)
    #define   SET32Gbl_RWTC_g1Wrap57to32_value(r32,v)          _BFSET_(r32,25, 0,v)

    #define     w32Gbl_RWTC_g1Wrap57to32                       {\
            UNSG32 uRWTC_g1Wrap57to32_value                    : 26;\
            UNSG32 RSVDx44_b26                                 :  6;\
          }
    union { UNSG32 u32Gbl_RWTC_g1Wrap57to32;
            struct w32Gbl_RWTC_g1Wrap57to32;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_RWTC_mr7to0_value(r32)                  _BFGET_(r32, 7, 0)
    #define   SET32Gbl_RWTC_mr7to0_value(r32,v)                _BFSET_(r32, 7, 0,v)
    #define   GET16Gbl_RWTC_mr7to0_value(r16)                  _BFGET_(r16, 7, 0)
    #define   SET16Gbl_RWTC_mr7to0_value(r16,v)                _BFSET_(r16, 7, 0,v)

    #define     w32Gbl_RWTC_mr7to0                             {\
            UNSG32 uRWTC_mr7to0_value                          :  8;\
            UNSG32 RSVDx48_b8                                  : 24;\
          }
    union { UNSG32 u32Gbl_RWTC_mr7to0;
            struct w32Gbl_RWTC_mr7to0;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_FPGAR_FPGAR(r32)                        _BFGET_(r32,31, 0)
    #define   SET32Gbl_FPGAR_FPGAR(r32,v)                      _BFSET_(r32,31, 0,v)

    #define     w32Gbl_FPGAR                                   {\
            UNSG32 uFPGAR_FPGAR                                : 32;\
          }
    union { UNSG32 u32Gbl_FPGAR;
            struct w32Gbl_FPGAR;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_FPGARW_FPGARW(r32)                      _BFGET_(r32,31, 0)
    #define   SET32Gbl_FPGARW_FPGARW(r32,v)                    _BFSET_(r32,31, 0,v)

    #define     w32Gbl_FPGARW                                  {\
            UNSG32 uFPGARW_FPGARW                              : 32;\
          }
    union { UNSG32 u32Gbl_FPGARW;
            struct w32Gbl_FPGARW;
          };
    ///////////////////////////////////////////////////////////
             UNSG8 RSVDx54                                     [428];
    ///////////////////////////////////////////////////////////
              SIE_pll                                          ie_sysPll;
    ///////////////////////////////////////////////////////////
             UNSG8 RSVDx218                                    [232];
    ///////////////////////////////////////////////////////////
              SIE_avPll                                        ie_AVPLLB;
    ///////////////////////////////////////////////////////////
             UNSG8 RSVDx3A8                                    [600];
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_ResetTrigger_chipReset(r32)             _BFGET_(r32, 0, 0)
    #define   SET32Gbl_ResetTrigger_chipReset(r32,v)           _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_ResetTrigger_chipReset(r16)             _BFGET_(r16, 0, 0)
    #define   SET16Gbl_ResetTrigger_chipReset(r16,v)           _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_ResetTrigger_socDdrSyncReset(r32)       _BFGET_(r32, 1, 1)
    #define   SET32Gbl_ResetTrigger_socDdrSyncReset(r32,v)     _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_ResetTrigger_socDdrSyncReset(r16)       _BFGET_(r16, 1, 1)
    #define   SET16Gbl_ResetTrigger_socDdrSyncReset(r16,v)     _BFSET_(r16, 1, 1,v)

    #define   GET32Gbl_ResetTrigger_avioSyncReset(r32)         _BFGET_(r32, 2, 2)
    #define   SET32Gbl_ResetTrigger_avioSyncReset(r32,v)       _BFSET_(r32, 2, 2,v)
    #define   GET16Gbl_ResetTrigger_avioSyncReset(r16)         _BFGET_(r16, 2, 2)
    #define   SET16Gbl_ResetTrigger_avioSyncReset(r16,v)       _BFSET_(r16, 2, 2,v)

    #define   GET32Gbl_ResetTrigger_zspSyncReset(r32)          _BFGET_(r32, 3, 3)
    #define   SET32Gbl_ResetTrigger_zspSyncReset(r32,v)        _BFSET_(r32, 3, 3,v)
    #define   GET16Gbl_ResetTrigger_zspSyncReset(r16)          _BFGET_(r16, 3, 3)
    #define   SET16Gbl_ResetTrigger_zspSyncReset(r16,v)        _BFSET_(r16, 3, 3,v)

    #define   GET32Gbl_ResetTrigger_perifSyncReset(r32)        _BFGET_(r32, 4, 4)
    #define   SET32Gbl_ResetTrigger_perifSyncReset(r32,v)      _BFSET_(r32, 4, 4,v)
    #define   GET16Gbl_ResetTrigger_perifSyncReset(r16)        _BFGET_(r16, 4, 4)
    #define   SET16Gbl_ResetTrigger_perifSyncReset(r16,v)      _BFSET_(r16, 4, 4,v)

    #define   GET32Gbl_ResetTrigger_ethSyncReset(r32)          _BFGET_(r32, 5, 5)
    #define   SET32Gbl_ResetTrigger_ethSyncReset(r32,v)        _BFSET_(r32, 5, 5,v)
    #define   GET16Gbl_ResetTrigger_ethSyncReset(r16)          _BFGET_(r16, 5, 5)
    #define   SET16Gbl_ResetTrigger_ethSyncReset(r16,v)        _BFSET_(r16, 5, 5,v)

    #define   GET32Gbl_ResetTrigger_ahbApbSyncReset(r32)       _BFGET_(r32, 6, 6)
    #define   SET32Gbl_ResetTrigger_ahbApbSyncReset(r32,v)     _BFSET_(r32, 6, 6,v)
    #define   GET16Gbl_ResetTrigger_ahbApbSyncReset(r16)       _BFGET_(r16, 6, 6)
    #define   SET16Gbl_ResetTrigger_ahbApbSyncReset(r16,v)     _BFSET_(r16, 6, 6,v)

    #define   GET32Gbl_ResetTrigger_nanfSyncReset(r32)         _BFGET_(r32, 7, 7)
    #define   SET32Gbl_ResetTrigger_nanfSyncReset(r32,v)       _BFSET_(r32, 7, 7,v)
    #define   GET16Gbl_ResetTrigger_nanfSyncReset(r16)         _BFGET_(r16, 7, 7)
    #define   SET16Gbl_ResetTrigger_nanfSyncReset(r16,v)       _BFSET_(r16, 7, 7,v)

    #define   GET32Gbl_ResetTrigger_usb0SyncReset(r32)         _BFGET_(r32, 8, 8)
    #define   SET32Gbl_ResetTrigger_usb0SyncReset(r32,v)       _BFSET_(r32, 8, 8,v)
    #define   GET16Gbl_ResetTrigger_usb0SyncReset(r16)         _BFGET_(r16, 8, 8)
    #define   SET16Gbl_ResetTrigger_usb0SyncReset(r16,v)       _BFSET_(r16, 8, 8,v)

    #define   GET32Gbl_ResetTrigger_pBridgeSyncReset(r32)      _BFGET_(r32, 9, 9)
    #define   SET32Gbl_ResetTrigger_pBridgeSyncReset(r32,v)    _BFSET_(r32, 9, 9,v)
    #define   GET16Gbl_ResetTrigger_pBridgeSyncReset(r16)      _BFGET_(r16, 9, 9)
    #define   SET16Gbl_ResetTrigger_pBridgeSyncReset(r16,v)    _BFSET_(r16, 9, 9,v)

    #define   GET32Gbl_ResetTrigger_sdioSyncReset(r32)         _BFGET_(r32,10,10)
    #define   SET32Gbl_ResetTrigger_sdioSyncReset(r32,v)       _BFSET_(r32,10,10,v)
    #define   GET16Gbl_ResetTrigger_sdioSyncReset(r16)         _BFGET_(r16,10,10)
    #define   SET16Gbl_ResetTrigger_sdioSyncReset(r16,v)       _BFSET_(r16,10,10,v)

    #define   GET32Gbl_ResetTrigger_tspSyncReset(r32)          _BFGET_(r32,11,11)
    #define   SET32Gbl_ResetTrigger_tspSyncReset(r32,v)        _BFSET_(r32,11,11,v)
    #define   GET16Gbl_ResetTrigger_tspSyncReset(r16)          _BFGET_(r16,11,11)
    #define   SET16Gbl_ResetTrigger_tspSyncReset(r16,v)        _BFSET_(r16,11,11,v)

    #define   GET32Gbl_ResetTrigger_v2gSyncReset(r32)          _BFGET_(r32,12,12)
    #define   SET32Gbl_ResetTrigger_v2gSyncReset(r32,v)        _BFSET_(r32,12,12,v)
    #define   GET16Gbl_ResetTrigger_v2gSyncReset(r16)          _BFGET_(r16,12,12)
    #define   SET16Gbl_ResetTrigger_v2gSyncReset(r16,v)        _BFSET_(r16,12,12,v)

    #define   GET32Gbl_ResetTrigger_g1SyncReset(r32)           _BFGET_(r32,13,13)
    #define   SET32Gbl_ResetTrigger_g1SyncReset(r32,v)         _BFSET_(r32,13,13,v)
    #define   GET16Gbl_ResetTrigger_g1SyncReset(r16)           _BFGET_(r16,13,13)
    #define   SET16Gbl_ResetTrigger_g1SyncReset(r16,v)         _BFSET_(r16,13,13,v)

    #define   GET32Gbl_ResetTrigger_bcmSyncReset(r32)          _BFGET_(r32,14,14)
    #define   SET32Gbl_ResetTrigger_bcmSyncReset(r32,v)        _BFSET_(r32,14,14,v)
    #define   GET16Gbl_ResetTrigger_bcmSyncReset(r16)          _BFGET_(r16,14,14)
    #define   SET16Gbl_ResetTrigger_bcmSyncReset(r16,v)        _BFSET_(r16,14,14,v)

    #define   GET32Gbl_ResetTrigger_atbSyncReset(r32)          _BFGET_(r32,15,15)
    #define   SET32Gbl_ResetTrigger_atbSyncReset(r32,v)        _BFSET_(r32,15,15,v)
    #define   GET16Gbl_ResetTrigger_atbSyncReset(r16)          _BFGET_(r16,15,15)
    #define   SET16Gbl_ResetTrigger_atbSyncReset(r16,v)        _BFSET_(r16,15,15,v)

    #define     w32Gbl_ResetTrigger                            {\
            UNSG32 uResetTrigger_chipReset                     :  1;\
            UNSG32 uResetTrigger_socDdrSyncReset               :  1;\
            UNSG32 uResetTrigger_avioSyncReset                 :  1;\
            UNSG32 uResetTrigger_zspSyncReset                  :  1;\
            UNSG32 uResetTrigger_perifSyncReset                :  1;\
            UNSG32 uResetTrigger_ethSyncReset                  :  1;\
            UNSG32 uResetTrigger_ahbApbSyncReset               :  1;\
            UNSG32 uResetTrigger_nanfSyncReset                 :  1;\
            UNSG32 uResetTrigger_usb0SyncReset                 :  1;\
            UNSG32 uResetTrigger_pBridgeSyncReset              :  1;\
            UNSG32 uResetTrigger_sdioSyncReset                 :  1;\
            UNSG32 uResetTrigger_tspSyncReset                  :  1;\
            UNSG32 uResetTrigger_v2gSyncReset                  :  1;\
            UNSG32 uResetTrigger_g1SyncReset                   :  1;\
            UNSG32 uResetTrigger_bcmSyncReset                  :  1;\
            UNSG32 uResetTrigger_atbSyncReset                  :  1;\
            UNSG32 RSVDx600_b16                                : 16;\
          }
    union { UNSG32 u32Gbl_ResetTrigger;
            struct w32Gbl_ResetTrigger;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_ResetStatus_ChipResetStatus(r32)        _BFGET_(r32, 0, 0)
    #define   SET32Gbl_ResetStatus_ChipResetStatus(r32,v)      _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_ResetStatus_ChipResetStatus(r16)        _BFGET_(r16, 0, 0)
    #define   SET16Gbl_ResetStatus_ChipResetStatus(r16,v)      _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_ResetStatus_wd0Status(r32)              _BFGET_(r32, 1, 1)
    #define   SET32Gbl_ResetStatus_wd0Status(r32,v)            _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_ResetStatus_wd0Status(r16)              _BFGET_(r16, 1, 1)
    #define   SET16Gbl_ResetStatus_wd0Status(r16,v)            _BFSET_(r16, 1, 1,v)

    #define   GET32Gbl_ResetStatus_wd1Status(r32)              _BFGET_(r32, 2, 2)
    #define   SET32Gbl_ResetStatus_wd1Status(r32,v)            _BFSET_(r32, 2, 2,v)
    #define   GET16Gbl_ResetStatus_wd1Status(r16)              _BFGET_(r16, 2, 2)
    #define   SET16Gbl_ResetStatus_wd1Status(r16,v)            _BFSET_(r16, 2, 2,v)

    #define   GET32Gbl_ResetStatus_wd2Status(r32)              _BFGET_(r32, 3, 3)
    #define   SET32Gbl_ResetStatus_wd2Status(r32,v)            _BFSET_(r32, 3, 3,v)
    #define   GET16Gbl_ResetStatus_wd2Status(r16)              _BFGET_(r16, 3, 3)
    #define   SET16Gbl_ResetStatus_wd2Status(r16,v)            _BFSET_(r16, 3, 3,v)

    #define   GET32Gbl_ResetStatus_socDdrSyncResetStatus(r32)  _BFGET_(r32, 4, 4)
    #define   SET32Gbl_ResetStatus_socDdrSyncResetStatus(r32,v) _BFSET_(r32, 4, 4,v)
    #define   GET16Gbl_ResetStatus_socDdrSyncResetStatus(r16)  _BFGET_(r16, 4, 4)
    #define   SET16Gbl_ResetStatus_socDdrSyncResetStatus(r16,v) _BFSET_(r16, 4, 4,v)

    #define   GET32Gbl_ResetStatus_avioSyncResetStatus(r32)    _BFGET_(r32, 5, 5)
    #define   SET32Gbl_ResetStatus_avioSyncResetStatus(r32,v)  _BFSET_(r32, 5, 5,v)
    #define   GET16Gbl_ResetStatus_avioSyncResetStatus(r16)    _BFGET_(r16, 5, 5)
    #define   SET16Gbl_ResetStatus_avioSyncResetStatus(r16,v)  _BFSET_(r16, 5, 5,v)

    #define   GET32Gbl_ResetStatus_zspSyncResetStatus(r32)     _BFGET_(r32, 6, 6)
    #define   SET32Gbl_ResetStatus_zspSyncResetStatus(r32,v)   _BFSET_(r32, 6, 6,v)
    #define   GET16Gbl_ResetStatus_zspSyncResetStatus(r16)     _BFGET_(r16, 6, 6)
    #define   SET16Gbl_ResetStatus_zspSyncResetStatus(r16,v)   _BFSET_(r16, 6, 6,v)

    #define   GET32Gbl_ResetStatus_perifSyncResetStatus(r32)   _BFGET_(r32, 7, 7)
    #define   SET32Gbl_ResetStatus_perifSyncResetStatus(r32,v) _BFSET_(r32, 7, 7,v)
    #define   GET16Gbl_ResetStatus_perifSyncResetStatus(r16)   _BFGET_(r16, 7, 7)
    #define   SET16Gbl_ResetStatus_perifSyncResetStatus(r16,v) _BFSET_(r16, 7, 7,v)

    #define   GET32Gbl_ResetStatus_ethSyncResetStatus(r32)     _BFGET_(r32, 8, 8)
    #define   SET32Gbl_ResetStatus_ethSyncResetStatus(r32,v)   _BFSET_(r32, 8, 8,v)
    #define   GET16Gbl_ResetStatus_ethSyncResetStatus(r16)     _BFGET_(r16, 8, 8)
    #define   SET16Gbl_ResetStatus_ethSyncResetStatus(r16,v)   _BFSET_(r16, 8, 8,v)

    #define   GET32Gbl_ResetStatus_ahbApbSyncResetStatus(r32)  _BFGET_(r32, 9, 9)
    #define   SET32Gbl_ResetStatus_ahbApbSyncResetStatus(r32,v) _BFSET_(r32, 9, 9,v)
    #define   GET16Gbl_ResetStatus_ahbApbSyncResetStatus(r16)  _BFGET_(r16, 9, 9)
    #define   SET16Gbl_ResetStatus_ahbApbSyncResetStatus(r16,v) _BFSET_(r16, 9, 9,v)

    #define   GET32Gbl_ResetStatus_nanfSyncResetStatus(r32)    _BFGET_(r32,10,10)
    #define   SET32Gbl_ResetStatus_nanfSyncResetStatus(r32,v)  _BFSET_(r32,10,10,v)
    #define   GET16Gbl_ResetStatus_nanfSyncResetStatus(r16)    _BFGET_(r16,10,10)
    #define   SET16Gbl_ResetStatus_nanfSyncResetStatus(r16,v)  _BFSET_(r16,10,10,v)

    #define   GET32Gbl_ResetStatus_usb0SyncResetStatus(r32)    _BFGET_(r32,11,11)
    #define   SET32Gbl_ResetStatus_usb0SyncResetStatus(r32,v)  _BFSET_(r32,11,11,v)
    #define   GET16Gbl_ResetStatus_usb0SyncResetStatus(r16)    _BFGET_(r16,11,11)
    #define   SET16Gbl_ResetStatus_usb0SyncResetStatus(r16,v)  _BFSET_(r16,11,11,v)

    #define   GET32Gbl_ResetStatus_pBridgeSyncResetStatus(r32) _BFGET_(r32,12,12)
    #define   SET32Gbl_ResetStatus_pBridgeSyncResetStatus(r32,v) _BFSET_(r32,12,12,v)
    #define   GET16Gbl_ResetStatus_pBridgeSyncResetStatus(r16) _BFGET_(r16,12,12)
    #define   SET16Gbl_ResetStatus_pBridgeSyncResetStatus(r16,v) _BFSET_(r16,12,12,v)

    #define   GET32Gbl_ResetStatus_sdioSyncResetStatus(r32)    _BFGET_(r32,13,13)
    #define   SET32Gbl_ResetStatus_sdioSyncResetStatus(r32,v)  _BFSET_(r32,13,13,v)
    #define   GET16Gbl_ResetStatus_sdioSyncResetStatus(r16)    _BFGET_(r16,13,13)
    #define   SET16Gbl_ResetStatus_sdioSyncResetStatus(r16,v)  _BFSET_(r16,13,13,v)

    #define   GET32Gbl_ResetStatus_tspSyncResetStatus(r32)     _BFGET_(r32,14,14)
    #define   SET32Gbl_ResetStatus_tspSyncResetStatus(r32,v)   _BFSET_(r32,14,14,v)
    #define   GET16Gbl_ResetStatus_tspSyncResetStatus(r16)     _BFGET_(r16,14,14)
    #define   SET16Gbl_ResetStatus_tspSyncResetStatus(r16,v)   _BFSET_(r16,14,14,v)

    #define   GET32Gbl_ResetStatus_v2gSyncResetStatus(r32)     _BFGET_(r32,15,15)
    #define   SET32Gbl_ResetStatus_v2gSyncResetStatus(r32,v)   _BFSET_(r32,15,15,v)
    #define   GET16Gbl_ResetStatus_v2gSyncResetStatus(r16)     _BFGET_(r16,15,15)
    #define   SET16Gbl_ResetStatus_v2gSyncResetStatus(r16,v)   _BFSET_(r16,15,15,v)

    #define   GET32Gbl_ResetStatus_g1SyncResetStatus(r32)      _BFGET_(r32,16,16)
    #define   SET32Gbl_ResetStatus_g1SyncResetStatus(r32,v)    _BFSET_(r32,16,16,v)
    #define   GET16Gbl_ResetStatus_g1SyncResetStatus(r16)      _BFGET_(r16, 0, 0)
    #define   SET16Gbl_ResetStatus_g1SyncResetStatus(r16,v)    _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_ResetStatus_bcmSyncResetStatus(r32)     _BFGET_(r32,17,17)
    #define   SET32Gbl_ResetStatus_bcmSyncResetStatus(r32,v)   _BFSET_(r32,17,17,v)
    #define   GET16Gbl_ResetStatus_bcmSyncResetStatus(r16)     _BFGET_(r16, 1, 1)
    #define   SET16Gbl_ResetStatus_bcmSyncResetStatus(r16,v)   _BFSET_(r16, 1, 1,v)

    #define   GET32Gbl_ResetStatus_atbSyncResetStatus(r32)     _BFGET_(r32,18,18)
    #define   SET32Gbl_ResetStatus_atbSyncResetStatus(r32,v)   _BFSET_(r32,18,18,v)
    #define   GET16Gbl_ResetStatus_atbSyncResetStatus(r16)     _BFGET_(r16, 2, 2)
    #define   SET16Gbl_ResetStatus_atbSyncResetStatus(r16,v)   _BFSET_(r16, 2, 2,v)

    #define     w32Gbl_ResetStatus                             {\
            UNSG32 uResetStatus_ChipResetStatus                :  1;\
            UNSG32 uResetStatus_wd0Status                      :  1;\
            UNSG32 uResetStatus_wd1Status                      :  1;\
            UNSG32 uResetStatus_wd2Status                      :  1;\
            UNSG32 uResetStatus_socDdrSyncResetStatus          :  1;\
            UNSG32 uResetStatus_avioSyncResetStatus            :  1;\
            UNSG32 uResetStatus_zspSyncResetStatus             :  1;\
            UNSG32 uResetStatus_perifSyncResetStatus           :  1;\
            UNSG32 uResetStatus_ethSyncResetStatus             :  1;\
            UNSG32 uResetStatus_ahbApbSyncResetStatus          :  1;\
            UNSG32 uResetStatus_nanfSyncResetStatus            :  1;\
            UNSG32 uResetStatus_usb0SyncResetStatus            :  1;\
            UNSG32 uResetStatus_pBridgeSyncResetStatus         :  1;\
            UNSG32 uResetStatus_sdioSyncResetStatus            :  1;\
            UNSG32 uResetStatus_tspSyncResetStatus             :  1;\
            UNSG32 uResetStatus_v2gSyncResetStatus             :  1;\
            UNSG32 uResetStatus_g1SyncResetStatus              :  1;\
            UNSG32 uResetStatus_bcmSyncResetStatus             :  1;\
            UNSG32 uResetStatus_atbSyncResetStatus             :  1;\
            UNSG32 RSVDx604_b19                                : 13;\
          }
    union { UNSG32 u32Gbl_ResetStatus;
            struct w32Gbl_ResetStatus;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_gfx3DReset_SyncReset(r32)               _BFGET_(r32, 0, 0)
    #define   SET32Gbl_gfx3DReset_SyncReset(r32,v)             _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_gfx3DReset_SyncReset(r16)               _BFGET_(r16, 0, 0)
    #define   SET16Gbl_gfx3DReset_SyncReset(r16,v)             _BFSET_(r16, 0, 0,v)

    #define     w32Gbl_gfx3DReset                              {\
            UNSG32 ugfx3DReset_SyncReset                       :  1;\
            UNSG32 RSVDx608_b1                                 : 31;\
          }
    union { UNSG32 u32Gbl_gfx3DReset;
            struct w32Gbl_gfx3DReset;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_gfx3DResetStatus_SyncReset(r32)         _BFGET_(r32, 0, 0)
    #define   SET32Gbl_gfx3DResetStatus_SyncReset(r32,v)       _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_gfx3DResetStatus_SyncReset(r16)         _BFGET_(r16, 0, 0)
    #define   SET16Gbl_gfx3DResetStatus_SyncReset(r16,v)       _BFSET_(r16, 0, 0,v)

    #define     w32Gbl_gfx3DResetStatus                        {\
            UNSG32 ugfx3DResetStatus_SyncReset                 :  1;\
            UNSG32 RSVDx60C_b1                                 : 31;\
          }
    union { UNSG32 u32Gbl_gfx3DResetStatus;
            struct w32Gbl_gfx3DResetStatus;
          };
    ///////////////////////////////////////////////////////////
              SIE_pwrOff                                       ie_avioPwrCtrl;
    ///////////////////////////////////////////////////////////
              SIE_pwrOff                                       ie_gfx3DPwrCtrl;
    ///////////////////////////////////////////////////////////
              SIE_pwrOff                                       ie_g1PwrCtrl;
    ///////////////////////////////////////////////////////////
              SIE_pwrOff                                       ie_v2gPwrCtrl;
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_clkEnable_ethCoreClkEn(r32)             _BFGET_(r32, 0, 0)
    #define   SET32Gbl_clkEnable_ethCoreClkEn(r32,v)           _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_clkEnable_ethCoreClkEn(r16)             _BFGET_(r16, 0, 0)
    #define   SET16Gbl_clkEnable_ethCoreClkEn(r16,v)           _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_clkEnable_ahbApbCoreClkEn(r32)          _BFGET_(r32, 1, 1)
    #define   SET32Gbl_clkEnable_ahbApbCoreClkEn(r32,v)        _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_clkEnable_ahbApbCoreClkEn(r16)          _BFGET_(r16, 1, 1)
    #define   SET16Gbl_clkEnable_ahbApbCoreClkEn(r16,v)        _BFSET_(r16, 1, 1,v)

    #define   GET32Gbl_clkEnable_usb0CoreClkEn(r32)            _BFGET_(r32, 2, 2)
    #define   SET32Gbl_clkEnable_usb0CoreClkEn(r32,v)          _BFSET_(r32, 2, 2,v)
    #define   GET16Gbl_clkEnable_usb0CoreClkEn(r16)            _BFGET_(r16, 2, 2)
    #define   SET16Gbl_clkEnable_usb0CoreClkEn(r16,v)          _BFSET_(r16, 2, 2,v)

    #define   GET32Gbl_clkEnable_pBridgeCoreClkEn(r32)         _BFGET_(r32, 3, 3)
    #define   SET32Gbl_clkEnable_pBridgeCoreClkEn(r32,v)       _BFSET_(r32, 3, 3,v)
    #define   GET16Gbl_clkEnable_pBridgeCoreClkEn(r16)         _BFGET_(r16, 3, 3)
    #define   SET16Gbl_clkEnable_pBridgeCoreClkEn(r16,v)       _BFSET_(r16, 3, 3,v)

    #define   GET32Gbl_clkEnable_sdioCoreClkEn(r32)            _BFGET_(r32, 4, 4)
    #define   SET32Gbl_clkEnable_sdioCoreClkEn(r32,v)          _BFSET_(r32, 4, 4,v)
    #define   GET16Gbl_clkEnable_sdioCoreClkEn(r16)            _BFGET_(r16, 4, 4)
    #define   SET16Gbl_clkEnable_sdioCoreClkEn(r16,v)          _BFSET_(r16, 4, 4,v)

    #define   GET32Gbl_clkEnable_nfcCoreClkEn(r32)             _BFGET_(r32, 5, 5)
    #define   SET32Gbl_clkEnable_nfcCoreClkEn(r32,v)           _BFSET_(r32, 5, 5,v)
    #define   GET16Gbl_clkEnable_nfcCoreClkEn(r16)             _BFGET_(r16, 5, 5)
    #define   SET16Gbl_clkEnable_nfcCoreClkEn(r16,v)           _BFSET_(r16, 5, 5,v)

    #define     w32Gbl_clkEnable                               {\
            UNSG32 uclkEnable_ethCoreClkEn                     :  1;\
            UNSG32 uclkEnable_ahbApbCoreClkEn                  :  1;\
            UNSG32 uclkEnable_usb0CoreClkEn                    :  1;\
            UNSG32 uclkEnable_pBridgeCoreClkEn                 :  1;\
            UNSG32 uclkEnable_sdioCoreClkEn                    :  1;\
            UNSG32 uclkEnable_nfcCoreClkEn                     :  1;\
            UNSG32 RSVDx630_b6                                 : 26;\
          }
    union { UNSG32 u32Gbl_clkEnable;
            struct w32Gbl_clkEnable;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_ClkSwitch_sysPLLSWBypass(r32)           _BFGET_(r32, 0, 0)
    #define   SET32Gbl_ClkSwitch_sysPLLSWBypass(r32,v)         _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_ClkSwitch_sysPLLSWBypass(r16)           _BFGET_(r16, 0, 0)
    #define   SET16Gbl_ClkSwitch_sysPLLSWBypass(r16,v)         _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_ClkSwitch_memPLLSWBypass(r32)           _BFGET_(r32, 1, 1)
    #define   SET32Gbl_ClkSwitch_memPLLSWBypass(r32,v)         _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_ClkSwitch_memPLLSWBypass(r16)           _BFGET_(r16, 1, 1)
    #define   SET16Gbl_ClkSwitch_memPLLSWBypass(r16,v)         _BFSET_(r16, 1, 1,v)

    #define   GET32Gbl_ClkSwitch_cpuPLLSWBypass(r32)           _BFGET_(r32, 2, 2)
    #define   SET32Gbl_ClkSwitch_cpuPLLSWBypass(r32,v)         _BFSET_(r32, 2, 2,v)
    #define   GET16Gbl_ClkSwitch_cpuPLLSWBypass(r16)           _BFGET_(r16, 2, 2)
    #define   SET16Gbl_ClkSwitch_cpuPLLSWBypass(r16,v)         _BFSET_(r16, 2, 2,v)

    #define     w32Gbl_ClkSwitch                               {\
            UNSG32 uClkSwitch_sysPLLSWBypass                   :  1;\
            UNSG32 uClkSwitch_memPLLSWBypass                   :  1;\
            UNSG32 uClkSwitch_cpuPLLSWBypass                   :  1;\
            UNSG32 RSVDx634_b3                                 : 29;\
          }
    union { UNSG32 u32Gbl_ClkSwitch;
            struct w32Gbl_ClkSwitch;
          };
    ///////////////////////////////////////////////////////////
              SIE_clkD2                                        ie_cpufastRefClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD2                                        ie_memfastRefClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD8                                        ie_cfgClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD2                                        ie_sysClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD4                                        ie_v2gClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD4                                        ie_v2gM3Clk;
    ///////////////////////////////////////////////////////////
              SIE_clkD4                                        ie_g1CoreClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD2                                        ie_gfx3DCoreClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD2                                        ie_gfx3DSysClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD2                                        ie_avioSysClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD1                                        ie_appClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD2                                        ie_vppSysClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD2                                        ie_arcRefClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD8                                        ie_hdmirxMClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD4                                        ie_perifClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD2                                        ie_zspClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD2                                        ie_tspClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD4                                        ie_tspRefClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD4                                        ie_atbClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD4                                        ie_bcmClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD2                                        ie_nfcEccClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD8                                        ie_sd0Clk;
    ///////////////////////////////////////////////////////////
              SIE_clkD12                                       ie_usb2TestClk;
    ///////////////////////////////////////////////////////////
              SIE_clkD4                                        ie_sdio3DllMstRefClk;
    ///////////////////////////////////////////////////////////
             UNSG8 RSVDx698                                    [616];
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SECURE_SCAN_EN_SET(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SECURE_SCAN_EN_SET(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SECURE_SCAN_EN_SET(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SECURE_SCAN_EN_SET(r16,v)               _BFSET_(r16, 0, 0,v)

    #define     w32Gbl_SECURE_SCAN_EN                          {\
            UNSG32 uSECURE_SCAN_EN_SET                         :  1;\
            UNSG32 RSVDx900_b1                                 : 31;\
          }
    union { UNSG32 u32Gbl_SECURE_SCAN_EN;
            struct w32Gbl_SECURE_SCAN_EN;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NandCtrl_NAND_WPn_Sel(r32)              _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NandCtrl_NAND_WPn_Sel(r32,v)            _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NandCtrl_NAND_WPn_Sel(r16)              _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NandCtrl_NAND_WPn_Sel(r16,v)            _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NandCtrl_NAND_CLE_OE(r32)               _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NandCtrl_NAND_CLE_OE(r32,v)             _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NandCtrl_NAND_CLE_OE(r16)               _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NandCtrl_NAND_CLE_OE(r16,v)             _BFSET_(r16, 1, 1,v)

    #define   GET32Gbl_NandCtrl_NAND_ALE_OE(r32)               _BFGET_(r32, 2, 2)
    #define   SET32Gbl_NandCtrl_NAND_ALE_OE(r32,v)             _BFSET_(r32, 2, 2,v)
    #define   GET16Gbl_NandCtrl_NAND_ALE_OE(r16)               _BFGET_(r16, 2, 2)
    #define   SET16Gbl_NandCtrl_NAND_ALE_OE(r16,v)             _BFSET_(r16, 2, 2,v)

    #define     w32Gbl_NandCtrl                                {\
            UNSG32 uNandCtrl_NAND_WPn_Sel                      :  1;\
            UNSG32 uNandCtrl_NAND_CLE_OE                       :  1;\
            UNSG32 uNandCtrl_NAND_ALE_OE                       :  1;\
            UNSG32 RSVDx904_b3                                 : 29;\
          }
    union { UNSG32 u32Gbl_NandCtrl;
            struct w32Gbl_NandCtrl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_sdioDllMstCtrl_PH_SEL1(r32)             _BFGET_(r32, 5, 0)
    #define   SET32Gbl_sdioDllMstCtrl_PH_SEL1(r32,v)           _BFSET_(r32, 5, 0,v)
    #define   GET16Gbl_sdioDllMstCtrl_PH_SEL1(r16)             _BFGET_(r16, 5, 0)
    #define   SET16Gbl_sdioDllMstCtrl_PH_SEL1(r16,v)           _BFSET_(r16, 5, 0,v)

    #define   GET32Gbl_sdioDllMstCtrl_PH_SEL2(r32)             _BFGET_(r32,11, 6)
    #define   SET32Gbl_sdioDllMstCtrl_PH_SEL2(r32,v)           _BFSET_(r32,11, 6,v)
    #define   GET16Gbl_sdioDllMstCtrl_PH_SEL2(r16)             _BFGET_(r16,11, 6)
    #define   SET16Gbl_sdioDllMstCtrl_PH_SEL2(r16,v)           _BFSET_(r16,11, 6,v)

    #define   GET32Gbl_sdioDllMstCtrl_PH_SEL3(r32)             _BFGET_(r32,17,12)
    #define   SET32Gbl_sdioDllMstCtrl_PH_SEL3(r32,v)           _BFSET_(r32,17,12,v)

    #define   GET32Gbl_sdioDllMstCtrl_PH_SEL4(r32)             _BFGET_(r32,23,18)
    #define   SET32Gbl_sdioDllMstCtrl_PH_SEL4(r32,v)           _BFSET_(r32,23,18,v)
    #define   GET16Gbl_sdioDllMstCtrl_PH_SEL4(r16)             _BFGET_(r16, 7, 2)
    #define   SET16Gbl_sdioDllMstCtrl_PH_SEL4(r16,v)           _BFSET_(r16, 7, 2,v)

    #define   GET32Gbl_sdioDllMstCtrl_RESET(r32)               _BFGET_(r32,24,24)
    #define   SET32Gbl_sdioDllMstCtrl_RESET(r32,v)             _BFSET_(r32,24,24,v)
    #define   GET16Gbl_sdioDllMstCtrl_RESET(r16)               _BFGET_(r16, 8, 8)
    #define   SET16Gbl_sdioDllMstCtrl_RESET(r16,v)             _BFSET_(r16, 8, 8,v)

    #define   GET32Gbl_sdioDllMstCtrl_GAIN2X(r32)              _BFGET_(r32,25,25)
    #define   SET32Gbl_sdioDllMstCtrl_GAIN2X(r32,v)            _BFSET_(r32,25,25,v)
    #define   GET16Gbl_sdioDllMstCtrl_GAIN2X(r16)              _BFGET_(r16, 9, 9)
    #define   SET16Gbl_sdioDllMstCtrl_GAIN2X(r16,v)            _BFSET_(r16, 9, 9,v)

    #define   GET32Gbl_sdioDllMstCtrl_TEST_EN(r32)             _BFGET_(r32,26,26)
    #define   SET32Gbl_sdioDllMstCtrl_TEST_EN(r32,v)           _BFSET_(r32,26,26,v)
    #define   GET16Gbl_sdioDllMstCtrl_TEST_EN(r16)             _BFGET_(r16,10,10)
    #define   SET16Gbl_sdioDllMstCtrl_TEST_EN(r16,v)           _BFSET_(r16,10,10,v)

    #define   GET32Gbl_sdioDllMstCtrl_RESERVE(r32)             _BFGET_(r32,31,27)
    #define   SET32Gbl_sdioDllMstCtrl_RESERVE(r32,v)           _BFSET_(r32,31,27,v)
    #define   GET16Gbl_sdioDllMstCtrl_RESERVE(r16)             _BFGET_(r16,15,11)
    #define   SET16Gbl_sdioDllMstCtrl_RESERVE(r16,v)           _BFSET_(r16,15,11,v)

    #define     w32Gbl_sdioDllMstCtrl                          {\
            UNSG32 usdioDllMstCtrl_PH_SEL1                     :  6;\
            UNSG32 usdioDllMstCtrl_PH_SEL2                     :  6;\
            UNSG32 usdioDllMstCtrl_PH_SEL3                     :  6;\
            UNSG32 usdioDllMstCtrl_PH_SEL4                     :  6;\
            UNSG32 usdioDllMstCtrl_RESET                       :  1;\
            UNSG32 usdioDllMstCtrl_GAIN2X                      :  1;\
            UNSG32 usdioDllMstCtrl_TEST_EN                     :  1;\
            UNSG32 usdioDllMstCtrl_RESERVE                     :  5;\
          }
    union { UNSG32 u32Gbl_sdioDllMstCtrl;
            struct w32Gbl_sdioDllMstCtrl;
          };
    #define   GET32Gbl_sdioDllMstCtrl_FAST_LOCK(r32)           _BFGET_(r32, 0, 0)
    #define   SET32Gbl_sdioDllMstCtrl_FAST_LOCK(r32,v)         _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_sdioDllMstCtrl_FAST_LOCK(r16)           _BFGET_(r16, 0, 0)
    #define   SET16Gbl_sdioDllMstCtrl_FAST_LOCK(r16,v)         _BFSET_(r16, 0, 0,v)

    #define     w32Gbl_sdioDllMstCtrl1                         {\
            UNSG32 usdioDllMstCtrl_FAST_LOCK                   :  1;\
            UNSG32 RSVDx90C_b1                                 : 31;\
          }
    union { UNSG32 u32Gbl_sdioDllMstCtrl1;
            struct w32Gbl_sdioDllMstCtrl1;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_sdioDllMstStatus_DELAY_CTRL1(r32)       _BFGET_(r32, 9, 0)
    #define   SET32Gbl_sdioDllMstStatus_DELAY_CTRL1(r32,v)     _BFSET_(r32, 9, 0,v)
    #define   GET16Gbl_sdioDllMstStatus_DELAY_CTRL1(r16)       _BFGET_(r16, 9, 0)
    #define   SET16Gbl_sdioDllMstStatus_DELAY_CTRL1(r16,v)     _BFSET_(r16, 9, 0,v)

    #define   GET32Gbl_sdioDllMstStatus_DELAY_CTRL2(r32)       _BFGET_(r32,19,10)
    #define   SET32Gbl_sdioDllMstStatus_DELAY_CTRL2(r32,v)     _BFSET_(r32,19,10,v)

    #define   GET32Gbl_sdioDllMstStatus_DELAY_CTRL3(r32)       _BFGET_(r32,29,20)
    #define   SET32Gbl_sdioDllMstStatus_DELAY_CTRL3(r32,v)     _BFSET_(r32,29,20,v)
    #define   GET16Gbl_sdioDllMstStatus_DELAY_CTRL3(r16)       _BFGET_(r16,13, 4)
    #define   SET16Gbl_sdioDllMstStatus_DELAY_CTRL3(r16,v)     _BFSET_(r16,13, 4,v)

    #define     w32Gbl_sdioDllMstStatus                        {\
            UNSG32 usdioDllMstStatus_DELAY_CTRL1               : 10;\
            UNSG32 usdioDllMstStatus_DELAY_CTRL2               : 10;\
            UNSG32 usdioDllMstStatus_DELAY_CTRL3               : 10;\
            UNSG32 RSVDx910_b30                                :  2;\
          }
    union { UNSG32 u32Gbl_sdioDllMstStatus;
            struct w32Gbl_sdioDllMstStatus;
          };
    #define   GET32Gbl_sdioDllMstStatus_DELAY_CTRL4(r32)       _BFGET_(r32, 9, 0)
    #define   SET32Gbl_sdioDllMstStatus_DELAY_CTRL4(r32,v)     _BFSET_(r32, 9, 0,v)
    #define   GET16Gbl_sdioDllMstStatus_DELAY_CTRL4(r16)       _BFGET_(r16, 9, 0)
    #define   SET16Gbl_sdioDllMstStatus_DELAY_CTRL4(r16,v)     _BFSET_(r16, 9, 0,v)

    #define   GET32Gbl_sdioDllMstStatus_DLL_LOCK(r32)          _BFGET_(r32,10,10)
    #define   SET32Gbl_sdioDllMstStatus_DLL_LOCK(r32,v)        _BFSET_(r32,10,10,v)
    #define   GET16Gbl_sdioDllMstStatus_DLL_LOCK(r16)          _BFGET_(r16,10,10)
    #define   SET16Gbl_sdioDllMstStatus_DLL_LOCK(r16,v)        _BFSET_(r16,10,10,v)

    #define   GET32Gbl_sdioDllMstStatus_DELAY_OUT(r32)         _BFGET_(r32,20,11)
    #define   SET32Gbl_sdioDllMstStatus_DELAY_OUT(r32,v)       _BFSET_(r32,20,11,v)

    #define     w32Gbl_sdioDllMstStatus1                       {\
            UNSG32 usdioDllMstStatus_DELAY_CTRL4               : 10;\
            UNSG32 usdioDllMstStatus_DLL_LOCK                  :  1;\
            UNSG32 usdioDllMstStatus_DELAY_OUT                 : 10;\
            UNSG32 RSVDx914_b21                                : 11;\
          }
    union { UNSG32 u32Gbl_sdioDllMstStatus1;
            struct w32Gbl_sdioDllMstStatus1;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_gfx3DDisRamClkGate_drcg(r32)            _BFGET_(r32, 0, 0)
    #define   SET32Gbl_gfx3DDisRamClkGate_drcg(r32,v)          _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_gfx3DDisRamClkGate_drcg(r16)            _BFGET_(r16, 0, 0)
    #define   SET16Gbl_gfx3DDisRamClkGate_drcg(r16,v)          _BFSET_(r16, 0, 0,v)

    #define     w32Gbl_gfx3DDisRamClkGate                      {\
            UNSG32 ugfx3DDisRamClkGate_drcg                    :  1;\
            UNSG32 RSVDx918_b1                                 : 31;\
          }
    union { UNSG32 u32Gbl_gfx3DDisRamClkGate;
            struct w32Gbl_gfx3DDisRamClkGate;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_DroEn_Start(r32)                        _BFGET_(r32, 0, 0)
    #define   SET32Gbl_DroEn_Start(r32,v)                      _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_DroEn_Start(r16)                        _BFGET_(r16, 0, 0)
    #define   SET16Gbl_DroEn_Start(r16,v)                      _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_DroEn_CountVal(r32)                     _BFGET_(r32,16, 1)
    #define   SET32Gbl_DroEn_CountVal(r32,v)                   _BFSET_(r32,16, 1,v)

    #define     w32Gbl_DroEn                                   {\
            UNSG32 uDroEn_Start                                :  1;\
            UNSG32 uDroEn_CountVal                             : 16;\
            UNSG32 RSVDx91C_b17                                : 15;\
          }
    union { UNSG32 u32Gbl_DroEn;
            struct w32Gbl_DroEn;
          };
    #define   GET32Gbl_DroEn_WaitVal(r32)                      _BFGET_(r32,15, 0)
    #define   SET32Gbl_DroEn_WaitVal(r32,v)                    _BFSET_(r32,15, 0,v)
    #define   GET16Gbl_DroEn_WaitVal(r16)                      _BFGET_(r16,15, 0)
    #define   SET16Gbl_DroEn_WaitVal(r16,v)                    _BFSET_(r16,15, 0,v)

    #define     w32Gbl_DroEn1                                  {\
            UNSG32 uDroEn_WaitVal                              : 16;\
            UNSG32 RSVDx920_b16                                : 16;\
          }
    union { UNSG32 u32Gbl_DroEn1;
            struct w32Gbl_DroEn1;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_DroShift_Start(r32)                     _BFGET_(r32, 0, 0)
    #define   SET32Gbl_DroShift_Start(r32,v)                   _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_DroShift_Start(r16)                     _BFGET_(r16, 0, 0)
    #define   SET16Gbl_DroShift_Start(r16,v)                   _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_DroShift_CountVal(r32)                  _BFGET_(r32,16, 1)
    #define   SET32Gbl_DroShift_CountVal(r32,v)                _BFSET_(r32,16, 1,v)

    #define     w32Gbl_DroShift                                {\
            UNSG32 uDroShift_Start                             :  1;\
            UNSG32 uDroShift_CountVal                          : 16;\
            UNSG32 RSVDx924_b17                                : 15;\
          }
    union { UNSG32 u32Gbl_DroShift;
            struct w32Gbl_DroShift;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_DroStatus_En(r32)                       _BFGET_(r32, 0, 0)
    #define   SET32Gbl_DroStatus_En(r32,v)                     _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_DroStatus_En(r16)                       _BFGET_(r16, 0, 0)
    #define   SET16Gbl_DroStatus_En(r16,v)                     _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_DroStatus_Shift_Done(r32)               _BFGET_(r32, 1, 1)
    #define   SET32Gbl_DroStatus_Shift_Done(r32,v)             _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_DroStatus_Shift_Done(r16)               _BFGET_(r16, 1, 1)
    #define   SET16Gbl_DroStatus_Shift_Done(r16,v)             _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_DroStatus                               {\
            UNSG32 uDroStatus_En                               :  1;\
            UNSG32 uDroStatus_Shift_Done                       :  1;\
            UNSG32 RSVDx928_b2                                 : 30;\
          }
    union { UNSG32 u32Gbl_DroStatus;
            struct w32Gbl_DroStatus;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_DroCounter_Out(r32)                     _BFGET_(r32,31, 0)
    #define   SET32Gbl_DroCounter_Out(r32,v)                   _BFSET_(r32,31, 0,v)

    #define     w32Gbl_DroCounter                              {\
            UNSG32 uDroCounter_Out                             : 32;\
          }
    union { UNSG32 u32Gbl_DroCounter;
            struct w32Gbl_DroCounter;
          };
    ///////////////////////////////////////////////////////////
              SIE_vtr                                          ie_vtr;
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_gic400_ctrl_cgfsdisable(r32)            _BFGET_(r32, 0, 0)
    #define   SET32Gbl_gic400_ctrl_cgfsdisable(r32,v)          _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_gic400_ctrl_cgfsdisable(r16)            _BFGET_(r16, 0, 0)
    #define   SET16Gbl_gic400_ctrl_cgfsdisable(r16,v)          _BFSET_(r16, 0, 0,v)

    #define     w32Gbl_gic400_ctrl                             {\
            UNSG32 ugic400_ctrl_cgfsdisable                    :  1;\
            UNSG32 RSVDx938_b1                                 : 31;\
          }
    union { UNSG32 u32Gbl_gic400_ctrl;
            struct w32Gbl_gic400_ctrl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SPARE_CTRL_0_ctrl(r32)                  _BFGET_(r32,31, 0)
    #define   SET32Gbl_SPARE_CTRL_0_ctrl(r32,v)                _BFSET_(r32,31, 0,v)

    #define     w32Gbl_SPARE_CTRL_0                            {\
            UNSG32 uSPARE_CTRL_0_ctrl                          : 32;\
          }
    union { UNSG32 u32Gbl_SPARE_CTRL_0;
            struct w32Gbl_SPARE_CTRL_0;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SPARE_CTRL_1_ctrl(r32)                  _BFGET_(r32,31, 0)
    #define   SET32Gbl_SPARE_CTRL_1_ctrl(r32,v)                _BFSET_(r32,31, 0,v)

    #define     w32Gbl_SPARE_CTRL_1                            {\
            UNSG32 uSPARE_CTRL_1_ctrl                          : 32;\
          }
    union { UNSG32 u32Gbl_SPARE_CTRL_1;
            struct w32Gbl_SPARE_CTRL_1;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SPARE_CTRL_2_ctrl(r32)                  _BFGET_(r32,31, 0)
    #define   SET32Gbl_SPARE_CTRL_2_ctrl(r32,v)                _BFSET_(r32,31, 0,v)

    #define     w32Gbl_SPARE_CTRL_2                            {\
            UNSG32 uSPARE_CTRL_2_ctrl                          : 32;\
          }
    union { UNSG32 u32Gbl_SPARE_CTRL_2;
            struct w32Gbl_SPARE_CTRL_2;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SPARE_CTRL_3_ctrl(r32)                  _BFGET_(r32,31, 0)
    #define   SET32Gbl_SPARE_CTRL_3_ctrl(r32,v)                _BFSET_(r32,31, 0,v)

    #define     w32Gbl_SPARE_CTRL_3                            {\
            UNSG32 uSPARE_CTRL_3_ctrl                          : 32;\
          }
    union { UNSG32 u32Gbl_SPARE_CTRL_3;
            struct w32Gbl_SPARE_CTRL_3;
          };
    ///////////////////////////////////////////////////////////
              SIE_efuse                                        ie_efuse0;
    ///////////////////////////////////////////////////////////
              SIE_efuse                                        ie_efuse1;
    ///////////////////////////////////////////////////////////
              SIE_PERIF                                        ie_PERIF;
    ///////////////////////////////////////////////////////////
             UNSG8 RSVDx9B0                                    [13904];
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_PadSelect_DVIO_OEN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_PadSelect_DVIO_OEN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_PadSelect_DVIO_OEN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_PadSelect_DVIO_OEN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define     w32Gbl_PadSelect                               {\
            UNSG32 uPadSelect_DVIO_OEN                         :  1;\
            UNSG32 RSVDx4000_b1                                : 31;\
          }
    union { UNSG32 u32Gbl_PadSelect;
            struct w32Gbl_PadSelect;
          };
    ///////////////////////////////////////////////////////////
              SIE_padRing                                      ie_I2C_PADRING;
    ///////////////////////////////////////////////////////////
              SIE_padRing                                      ie_SD0_PADRING;
    ///////////////////////////////////////////////////////////
              SIE_padRing                                      ie_TSI_PADRING;
    ///////////////////////////////////////////////////////////
              SIE_padRing                                      ie_SPI_PADRING;
    ///////////////////////////////////////////////////////////
              SIE_padRing                                      ie_NAND_PADRING;
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_DDC_PAD_CTRL_ZN_TW1_SCL(r32)            _BFGET_(r32, 2, 0)
    #define   SET32Gbl_DDC_PAD_CTRL_ZN_TW1_SCL(r32,v)          _BFSET_(r32, 2, 0,v)
    #define   GET16Gbl_DDC_PAD_CTRL_ZN_TW1_SCL(r16)            _BFGET_(r16, 2, 0)
    #define   SET16Gbl_DDC_PAD_CTRL_ZN_TW1_SCL(r16,v)          _BFSET_(r16, 2, 0,v)

    #define   GET32Gbl_DDC_PAD_CTRL_ZN_TW1_SDA(r32)            _BFGET_(r32, 5, 3)
    #define   SET32Gbl_DDC_PAD_CTRL_ZN_TW1_SDA(r32,v)          _BFSET_(r32, 5, 3,v)
    #define   GET16Gbl_DDC_PAD_CTRL_ZN_TW1_SDA(r16)            _BFGET_(r16, 5, 3)
    #define   SET16Gbl_DDC_PAD_CTRL_ZN_TW1_SDA(r16,v)          _BFSET_(r16, 5, 3,v)

    #define     w32Gbl_DDC_PAD_CTRL                            {\
            UNSG32 uDDC_PAD_CTRL_ZN_TW1_SCL                    :  3;\
            UNSG32 uDDC_PAD_CTRL_ZN_TW1_SDA                    :  3;\
            UNSG32 RSVDx402C_b6                                : 26;\
          }
    union { UNSG32 u32Gbl_DDC_PAD_CTRL;
            struct w32Gbl_DDC_PAD_CTRL;
          };
    ///////////////////////////////////////////////////////////
             UNSG8 RSVDx4030                                   [16336];
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_pinMuxCntlBus_URT0_RXD(r32)             _BFGET_(r32, 2, 0)
    #define   SET32Gbl_pinMuxCntlBus_URT0_RXD(r32,v)           _BFSET_(r32, 2, 0,v)
    #define   GET16Gbl_pinMuxCntlBus_URT0_RXD(r16)             _BFGET_(r16, 2, 0)
    #define   SET16Gbl_pinMuxCntlBus_URT0_RXD(r16,v)           _BFSET_(r16, 2, 0,v)

    #define   GET32Gbl_pinMuxCntlBus_URT0_TXD(r32)             _BFGET_(r32, 5, 3)
    #define   SET32Gbl_pinMuxCntlBus_URT0_TXD(r32,v)           _BFSET_(r32, 5, 3,v)
    #define   GET16Gbl_pinMuxCntlBus_URT0_TXD(r16)             _BFGET_(r16, 5, 3)
    #define   SET16Gbl_pinMuxCntlBus_URT0_TXD(r16,v)           _BFSET_(r16, 5, 3,v)

    #define   GET32Gbl_pinMuxCntlBus_SPI1_SS0n(r32)            _BFGET_(r32, 8, 6)
    #define   SET32Gbl_pinMuxCntlBus_SPI1_SS0n(r32,v)          _BFSET_(r32, 8, 6,v)
    #define   GET16Gbl_pinMuxCntlBus_SPI1_SS0n(r16)            _BFGET_(r16, 8, 6)
    #define   SET16Gbl_pinMuxCntlBus_SPI1_SS0n(r16,v)          _BFSET_(r16, 8, 6,v)

    #define   GET32Gbl_pinMuxCntlBus_SPI1_SS1n(r32)            _BFGET_(r32,11, 9)
    #define   SET32Gbl_pinMuxCntlBus_SPI1_SS1n(r32,v)          _BFSET_(r32,11, 9,v)
    #define   GET16Gbl_pinMuxCntlBus_SPI1_SS1n(r16)            _BFGET_(r16,11, 9)
    #define   SET16Gbl_pinMuxCntlBus_SPI1_SS1n(r16,v)          _BFSET_(r16,11, 9,v)

    #define   GET32Gbl_pinMuxCntlBus_SPI1_SS2n(r32)            _BFGET_(r32,14,12)
    #define   SET32Gbl_pinMuxCntlBus_SPI1_SS2n(r32,v)          _BFSET_(r32,14,12,v)
    #define   GET16Gbl_pinMuxCntlBus_SPI1_SS2n(r16)            _BFGET_(r16,14,12)
    #define   SET16Gbl_pinMuxCntlBus_SPI1_SS2n(r16,v)          _BFSET_(r16,14,12,v)

    #define   GET32Gbl_pinMuxCntlBus_SPI1_SCLK(r32)            _BFGET_(r32,17,15)
    #define   SET32Gbl_pinMuxCntlBus_SPI1_SCLK(r32,v)          _BFSET_(r32,17,15,v)

    #define   GET32Gbl_pinMuxCntlBus_SPI1_SDO(r32)             _BFGET_(r32,20,18)
    #define   SET32Gbl_pinMuxCntlBus_SPI1_SDO(r32,v)           _BFSET_(r32,20,18,v)
    #define   GET16Gbl_pinMuxCntlBus_SPI1_SDO(r16)             _BFGET_(r16, 4, 2)
    #define   SET16Gbl_pinMuxCntlBus_SPI1_SDO(r16,v)           _BFSET_(r16, 4, 2,v)

    #define   GET32Gbl_pinMuxCntlBus_SPI1_SDI(r32)             _BFGET_(r32,23,21)
    #define   SET32Gbl_pinMuxCntlBus_SPI1_SDI(r32,v)           _BFSET_(r32,23,21,v)
    #define   GET16Gbl_pinMuxCntlBus_SPI1_SDI(r16)             _BFGET_(r16, 7, 5)
    #define   SET16Gbl_pinMuxCntlBus_SPI1_SDI(r16,v)           _BFSET_(r16, 7, 5,v)

    #define   GET32Gbl_pinMuxCntlBus_USB1_DRV_VBUS(r32)        _BFGET_(r32,26,24)
    #define   SET32Gbl_pinMuxCntlBus_USB1_DRV_VBUS(r32,v)      _BFSET_(r32,26,24,v)
    #define   GET16Gbl_pinMuxCntlBus_USB1_DRV_VBUS(r16)        _BFGET_(r16,10, 8)
    #define   SET16Gbl_pinMuxCntlBus_USB1_DRV_VBUS(r16,v)      _BFSET_(r16,10, 8,v)

    #define   GET32Gbl_pinMuxCntlBus_TW1_SCL(r32)              _BFGET_(r32,29,27)
    #define   SET32Gbl_pinMuxCntlBus_TW1_SCL(r32,v)            _BFSET_(r32,29,27,v)
    #define   GET16Gbl_pinMuxCntlBus_TW1_SCL(r16)              _BFGET_(r16,13,11)
    #define   SET16Gbl_pinMuxCntlBus_TW1_SCL(r16,v)            _BFSET_(r16,13,11,v)

    #define     w32Gbl_pinMuxCntlBus                           {\
            UNSG32 upinMuxCntlBus_URT0_RXD                     :  3;\
            UNSG32 upinMuxCntlBus_URT0_TXD                     :  3;\
            UNSG32 upinMuxCntlBus_SPI1_SS0n                    :  3;\
            UNSG32 upinMuxCntlBus_SPI1_SS1n                    :  3;\
            UNSG32 upinMuxCntlBus_SPI1_SS2n                    :  3;\
            UNSG32 upinMuxCntlBus_SPI1_SCLK                    :  3;\
            UNSG32 upinMuxCntlBus_SPI1_SDO                     :  3;\
            UNSG32 upinMuxCntlBus_SPI1_SDI                     :  3;\
            UNSG32 upinMuxCntlBus_USB1_DRV_VBUS                :  3;\
            UNSG32 upinMuxCntlBus_TW1_SCL                      :  3;\
            UNSG32 RSVDx8000_b30                               :  2;\
          }
    union { UNSG32 u32Gbl_pinMuxCntlBus;
            struct w32Gbl_pinMuxCntlBus;
          };
    #define   GET32Gbl_pinMuxCntlBus_TW1_SDA(r32)              _BFGET_(r32, 2, 0)
    #define   SET32Gbl_pinMuxCntlBus_TW1_SDA(r32,v)            _BFSET_(r32, 2, 0,v)
    #define   GET16Gbl_pinMuxCntlBus_TW1_SDA(r16)              _BFGET_(r16, 2, 0)
    #define   SET16Gbl_pinMuxCntlBus_TW1_SDA(r16,v)            _BFSET_(r16, 2, 0,v)

    #define   GET32Gbl_pinMuxCntlBus_HDMI_CEC(r32)             _BFGET_(r32, 5, 3)
    #define   SET32Gbl_pinMuxCntlBus_HDMI_CEC(r32,v)           _BFSET_(r32, 5, 3,v)
    #define   GET16Gbl_pinMuxCntlBus_HDMI_CEC(r16)             _BFGET_(r16, 5, 3)
    #define   SET16Gbl_pinMuxCntlBus_HDMI_CEC(r16,v)           _BFSET_(r16, 5, 3,v)

    #define   GET32Gbl_pinMuxCntlBus_HDMI_HPD(r32)             _BFGET_(r32, 8, 6)
    #define   SET32Gbl_pinMuxCntlBus_HDMI_HPD(r32,v)           _BFSET_(r32, 8, 6,v)
    #define   GET16Gbl_pinMuxCntlBus_HDMI_HPD(r16)             _BFGET_(r16, 8, 6)
    #define   SET16Gbl_pinMuxCntlBus_HDMI_HPD(r16,v)           _BFSET_(r16, 8, 6,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_IO0(r32)             _BFGET_(r32,11, 9)
    #define   SET32Gbl_pinMuxCntlBus_NAND_IO0(r32,v)           _BFSET_(r32,11, 9,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_IO0(r16)             _BFGET_(r16,11, 9)
    #define   SET16Gbl_pinMuxCntlBus_NAND_IO0(r16,v)           _BFSET_(r16,11, 9,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_IO1(r32)             _BFGET_(r32,14,12)
    #define   SET32Gbl_pinMuxCntlBus_NAND_IO1(r32,v)           _BFSET_(r32,14,12,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_IO1(r16)             _BFGET_(r16,14,12)
    #define   SET16Gbl_pinMuxCntlBus_NAND_IO1(r16,v)           _BFSET_(r16,14,12,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_IO2(r32)             _BFGET_(r32,17,15)
    #define   SET32Gbl_pinMuxCntlBus_NAND_IO2(r32,v)           _BFSET_(r32,17,15,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_IO3(r32)             _BFGET_(r32,20,18)
    #define   SET32Gbl_pinMuxCntlBus_NAND_IO3(r32,v)           _BFSET_(r32,20,18,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_IO3(r16)             _BFGET_(r16, 4, 2)
    #define   SET16Gbl_pinMuxCntlBus_NAND_IO3(r16,v)           _BFSET_(r16, 4, 2,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_IO4(r32)             _BFGET_(r32,23,21)
    #define   SET32Gbl_pinMuxCntlBus_NAND_IO4(r32,v)           _BFSET_(r32,23,21,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_IO4(r16)             _BFGET_(r16, 7, 5)
    #define   SET16Gbl_pinMuxCntlBus_NAND_IO4(r16,v)           _BFSET_(r16, 7, 5,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_IO5(r32)             _BFGET_(r32,26,24)
    #define   SET32Gbl_pinMuxCntlBus_NAND_IO5(r32,v)           _BFSET_(r32,26,24,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_IO5(r16)             _BFGET_(r16,10, 8)
    #define   SET16Gbl_pinMuxCntlBus_NAND_IO5(r16,v)           _BFSET_(r16,10, 8,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_IO6(r32)             _BFGET_(r32,29,27)
    #define   SET32Gbl_pinMuxCntlBus_NAND_IO6(r32,v)           _BFSET_(r32,29,27,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_IO6(r16)             _BFGET_(r16,13,11)
    #define   SET16Gbl_pinMuxCntlBus_NAND_IO6(r16,v)           _BFSET_(r16,13,11,v)

    #define     w32Gbl_pinMuxCntlBus1                          {\
            UNSG32 upinMuxCntlBus_TW1_SDA                      :  3;\
            UNSG32 upinMuxCntlBus_HDMI_CEC                     :  3;\
            UNSG32 upinMuxCntlBus_HDMI_HPD                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_IO0                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_IO1                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_IO2                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_IO3                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_IO4                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_IO5                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_IO6                     :  3;\
            UNSG32 RSVDx8004_b30                               :  2;\
          }
    union { UNSG32 u32Gbl_pinMuxCntlBus1;
            struct w32Gbl_pinMuxCntlBus1;
          };
    #define   GET32Gbl_pinMuxCntlBus_NAND_IO7(r32)             _BFGET_(r32, 2, 0)
    #define   SET32Gbl_pinMuxCntlBus_NAND_IO7(r32,v)           _BFSET_(r32, 2, 0,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_IO7(r16)             _BFGET_(r16, 2, 0)
    #define   SET16Gbl_pinMuxCntlBus_NAND_IO7(r16,v)           _BFSET_(r16, 2, 0,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_ALE(r32)             _BFGET_(r32, 5, 3)
    #define   SET32Gbl_pinMuxCntlBus_NAND_ALE(r32,v)           _BFSET_(r32, 5, 3,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_ALE(r16)             _BFGET_(r16, 5, 3)
    #define   SET16Gbl_pinMuxCntlBus_NAND_ALE(r16,v)           _BFSET_(r16, 5, 3,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_CLE(r32)             _BFGET_(r32, 8, 6)
    #define   SET32Gbl_pinMuxCntlBus_NAND_CLE(r32,v)           _BFSET_(r32, 8, 6,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_CLE(r16)             _BFGET_(r16, 8, 6)
    #define   SET16Gbl_pinMuxCntlBus_NAND_CLE(r16,v)           _BFSET_(r16, 8, 6,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_WEn(r32)             _BFGET_(r32,11, 9)
    #define   SET32Gbl_pinMuxCntlBus_NAND_WEn(r32,v)           _BFSET_(r32,11, 9,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_WEn(r16)             _BFGET_(r16,11, 9)
    #define   SET16Gbl_pinMuxCntlBus_NAND_WEn(r16,v)           _BFSET_(r16,11, 9,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_REn(r32)             _BFGET_(r32,14,12)
    #define   SET32Gbl_pinMuxCntlBus_NAND_REn(r32,v)           _BFSET_(r32,14,12,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_REn(r16)             _BFGET_(r16,14,12)
    #define   SET16Gbl_pinMuxCntlBus_NAND_REn(r16,v)           _BFSET_(r16,14,12,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_WPn(r32)             _BFGET_(r32,17,15)
    #define   SET32Gbl_pinMuxCntlBus_NAND_WPn(r32,v)           _BFSET_(r32,17,15,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_CEn(r32)             _BFGET_(r32,20,18)
    #define   SET32Gbl_pinMuxCntlBus_NAND_CEn(r32,v)           _BFSET_(r32,20,18,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_CEn(r16)             _BFGET_(r16, 4, 2)
    #define   SET16Gbl_pinMuxCntlBus_NAND_CEn(r16,v)           _BFSET_(r16, 4, 2,v)

    #define   GET32Gbl_pinMuxCntlBus_NAND_RDY(r32)             _BFGET_(r32,23,21)
    #define   SET32Gbl_pinMuxCntlBus_NAND_RDY(r32,v)           _BFSET_(r32,23,21,v)
    #define   GET16Gbl_pinMuxCntlBus_NAND_RDY(r16)             _BFGET_(r16, 7, 5)
    #define   SET16Gbl_pinMuxCntlBus_NAND_RDY(r16,v)           _BFSET_(r16, 7, 5,v)

    #define   GET32Gbl_pinMuxCntlBus_SD0_CLK(r32)              _BFGET_(r32,26,24)
    #define   SET32Gbl_pinMuxCntlBus_SD0_CLK(r32,v)            _BFSET_(r32,26,24,v)
    #define   GET16Gbl_pinMuxCntlBus_SD0_CLK(r16)              _BFGET_(r16,10, 8)
    #define   SET16Gbl_pinMuxCntlBus_SD0_CLK(r16,v)            _BFSET_(r16,10, 8,v)

    #define   GET32Gbl_pinMuxCntlBus_SD0_DAT0(r32)             _BFGET_(r32,29,27)
    #define   SET32Gbl_pinMuxCntlBus_SD0_DAT0(r32,v)           _BFSET_(r32,29,27,v)
    #define   GET16Gbl_pinMuxCntlBus_SD0_DAT0(r16)             _BFGET_(r16,13,11)
    #define   SET16Gbl_pinMuxCntlBus_SD0_DAT0(r16,v)           _BFSET_(r16,13,11,v)

    #define     w32Gbl_pinMuxCntlBus2                          {\
            UNSG32 upinMuxCntlBus_NAND_IO7                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_ALE                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_CLE                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_WEn                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_REn                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_WPn                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_CEn                     :  3;\
            UNSG32 upinMuxCntlBus_NAND_RDY                     :  3;\
            UNSG32 upinMuxCntlBus_SD0_CLK                      :  3;\
            UNSG32 upinMuxCntlBus_SD0_DAT0                     :  3;\
            UNSG32 RSVDx8008_b30                               :  2;\
          }
    union { UNSG32 u32Gbl_pinMuxCntlBus2;
            struct w32Gbl_pinMuxCntlBus2;
          };
    #define   GET32Gbl_pinMuxCntlBus_SD0_DAT1(r32)             _BFGET_(r32, 2, 0)
    #define   SET32Gbl_pinMuxCntlBus_SD0_DAT1(r32,v)           _BFSET_(r32, 2, 0,v)
    #define   GET16Gbl_pinMuxCntlBus_SD0_DAT1(r16)             _BFGET_(r16, 2, 0)
    #define   SET16Gbl_pinMuxCntlBus_SD0_DAT1(r16,v)           _BFSET_(r16, 2, 0,v)

    #define   GET32Gbl_pinMuxCntlBus_SD0_DAT2(r32)             _BFGET_(r32, 5, 3)
    #define   SET32Gbl_pinMuxCntlBus_SD0_DAT2(r32,v)           _BFSET_(r32, 5, 3,v)
    #define   GET16Gbl_pinMuxCntlBus_SD0_DAT2(r16)             _BFGET_(r16, 5, 3)
    #define   SET16Gbl_pinMuxCntlBus_SD0_DAT2(r16,v)           _BFSET_(r16, 5, 3,v)

    #define   GET32Gbl_pinMuxCntlBus_SD0_DAT3(r32)             _BFGET_(r32, 8, 6)
    #define   SET32Gbl_pinMuxCntlBus_SD0_DAT3(r32,v)           _BFSET_(r32, 8, 6,v)
    #define   GET16Gbl_pinMuxCntlBus_SD0_DAT3(r16)             _BFGET_(r16, 8, 6)
    #define   SET16Gbl_pinMuxCntlBus_SD0_DAT3(r16,v)           _BFSET_(r16, 8, 6,v)

    #define   GET32Gbl_pinMuxCntlBus_SD0_CDn(r32)              _BFGET_(r32,11, 9)
    #define   SET32Gbl_pinMuxCntlBus_SD0_CDn(r32,v)            _BFSET_(r32,11, 9,v)
    #define   GET16Gbl_pinMuxCntlBus_SD0_CDn(r16)              _BFGET_(r16,11, 9)
    #define   SET16Gbl_pinMuxCntlBus_SD0_CDn(r16,v)            _BFSET_(r16,11, 9,v)

    #define   GET32Gbl_pinMuxCntlBus_SD0_CMD(r32)              _BFGET_(r32,14,12)
    #define   SET32Gbl_pinMuxCntlBus_SD0_CMD(r32,v)            _BFSET_(r32,14,12,v)
    #define   GET16Gbl_pinMuxCntlBus_SD0_CMD(r16)              _BFGET_(r16,14,12)
    #define   SET16Gbl_pinMuxCntlBus_SD0_CMD(r16,v)            _BFSET_(r16,14,12,v)

    #define   GET32Gbl_pinMuxCntlBus_SD0_WP(r32)               _BFGET_(r32,17,15)
    #define   SET32Gbl_pinMuxCntlBus_SD0_WP(r32,v)             _BFSET_(r32,17,15,v)

    #define   GET32Gbl_pinMuxCntlBus_STS0_CLK(r32)             _BFGET_(r32,20,18)
    #define   SET32Gbl_pinMuxCntlBus_STS0_CLK(r32,v)           _BFSET_(r32,20,18,v)
    #define   GET16Gbl_pinMuxCntlBus_STS0_CLK(r16)             _BFGET_(r16, 4, 2)
    #define   SET16Gbl_pinMuxCntlBus_STS0_CLK(r16,v)           _BFSET_(r16, 4, 2,v)

    #define   GET32Gbl_pinMuxCntlBus_STS0_SOP(r32)             _BFGET_(r32,23,21)
    #define   SET32Gbl_pinMuxCntlBus_STS0_SOP(r32,v)           _BFSET_(r32,23,21,v)
    #define   GET16Gbl_pinMuxCntlBus_STS0_SOP(r16)             _BFGET_(r16, 7, 5)
    #define   SET16Gbl_pinMuxCntlBus_STS0_SOP(r16,v)           _BFSET_(r16, 7, 5,v)

    #define   GET32Gbl_pinMuxCntlBus_STS0_VALD(r32)            _BFGET_(r32,26,24)
    #define   SET32Gbl_pinMuxCntlBus_STS0_VALD(r32,v)          _BFSET_(r32,26,24,v)
    #define   GET16Gbl_pinMuxCntlBus_STS0_VALD(r16)            _BFGET_(r16,10, 8)
    #define   SET16Gbl_pinMuxCntlBus_STS0_VALD(r16,v)          _BFSET_(r16,10, 8,v)

    #define   GET32Gbl_pinMuxCntlBus_STS0_SD(r32)              _BFGET_(r32,29,27)
    #define   SET32Gbl_pinMuxCntlBus_STS0_SD(r32,v)            _BFSET_(r32,29,27,v)
    #define   GET16Gbl_pinMuxCntlBus_STS0_SD(r16)              _BFGET_(r16,13,11)
    #define   SET16Gbl_pinMuxCntlBus_STS0_SD(r16,v)            _BFSET_(r16,13,11,v)

    #define     w32Gbl_pinMuxCntlBus3                          {\
            UNSG32 upinMuxCntlBus_SD0_DAT1                     :  3;\
            UNSG32 upinMuxCntlBus_SD0_DAT2                     :  3;\
            UNSG32 upinMuxCntlBus_SD0_DAT3                     :  3;\
            UNSG32 upinMuxCntlBus_SD0_CDn                      :  3;\
            UNSG32 upinMuxCntlBus_SD0_CMD                      :  3;\
            UNSG32 upinMuxCntlBus_SD0_WP                       :  3;\
            UNSG32 upinMuxCntlBus_STS0_CLK                     :  3;\
            UNSG32 upinMuxCntlBus_STS0_SOP                     :  3;\
            UNSG32 upinMuxCntlBus_STS0_VALD                    :  3;\
            UNSG32 upinMuxCntlBus_STS0_SD                      :  3;\
            UNSG32 RSVDx800C_b30                               :  2;\
          }
    union { UNSG32 u32Gbl_pinMuxCntlBus3;
            struct w32Gbl_pinMuxCntlBus3;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_URT0_RXDCntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_URT0_RXDCntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_URT0_RXDCntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_URT0_RXDCntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_URT0_RXDCntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_URT0_RXDCntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_URT0_RXDCntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_URT0_RXDCntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_URT0_RXDCntl                            {\
            UNSG32 uURT0_RXDCntl_PD_EN                         :  1;\
            UNSG32 uURT0_RXDCntl_PU_EN                         :  1;\
            UNSG32 RSVDx8010_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_URT0_RXDCntl;
            struct w32Gbl_URT0_RXDCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_URT0_TXDCntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_URT0_TXDCntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_URT0_TXDCntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_URT0_TXDCntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_URT0_TXDCntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_URT0_TXDCntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_URT0_TXDCntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_URT0_TXDCntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_URT0_TXDCntl                            {\
            UNSG32 uURT0_TXDCntl_PD_EN                         :  1;\
            UNSG32 uURT0_TXDCntl_PU_EN                         :  1;\
            UNSG32 RSVDx8014_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_URT0_TXDCntl;
            struct w32Gbl_URT0_TXDCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SPI1_SS0nCntl_PD_EN(r32)                _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SPI1_SS0nCntl_PD_EN(r32,v)              _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SPI1_SS0nCntl_PD_EN(r16)                _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SPI1_SS0nCntl_PD_EN(r16,v)              _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SPI1_SS0nCntl_PU_EN(r32)                _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SPI1_SS0nCntl_PU_EN(r32,v)              _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SPI1_SS0nCntl_PU_EN(r16)                _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SPI1_SS0nCntl_PU_EN(r16,v)              _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SPI1_SS0nCntl                           {\
            UNSG32 uSPI1_SS0nCntl_PD_EN                        :  1;\
            UNSG32 uSPI1_SS0nCntl_PU_EN                        :  1;\
            UNSG32 RSVDx8018_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SPI1_SS0nCntl;
            struct w32Gbl_SPI1_SS0nCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SPI1_SS1nCntl_PD_EN(r32)                _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SPI1_SS1nCntl_PD_EN(r32,v)              _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SPI1_SS1nCntl_PD_EN(r16)                _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SPI1_SS1nCntl_PD_EN(r16,v)              _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SPI1_SS1nCntl_PU_EN(r32)                _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SPI1_SS1nCntl_PU_EN(r32,v)              _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SPI1_SS1nCntl_PU_EN(r16)                _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SPI1_SS1nCntl_PU_EN(r16,v)              _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SPI1_SS1nCntl                           {\
            UNSG32 uSPI1_SS1nCntl_PD_EN                        :  1;\
            UNSG32 uSPI1_SS1nCntl_PU_EN                        :  1;\
            UNSG32 RSVDx801C_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SPI1_SS1nCntl;
            struct w32Gbl_SPI1_SS1nCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SPI1_SS2nCntl_PD_EN(r32)                _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SPI1_SS2nCntl_PD_EN(r32,v)              _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SPI1_SS2nCntl_PD_EN(r16)                _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SPI1_SS2nCntl_PD_EN(r16,v)              _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SPI1_SS2nCntl_PU_EN(r32)                _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SPI1_SS2nCntl_PU_EN(r32,v)              _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SPI1_SS2nCntl_PU_EN(r16)                _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SPI1_SS2nCntl_PU_EN(r16,v)              _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SPI1_SS2nCntl                           {\
            UNSG32 uSPI1_SS2nCntl_PD_EN                        :  1;\
            UNSG32 uSPI1_SS2nCntl_PU_EN                        :  1;\
            UNSG32 RSVDx8020_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SPI1_SS2nCntl;
            struct w32Gbl_SPI1_SS2nCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SPI1_SCLKCntl_PD_EN(r32)                _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SPI1_SCLKCntl_PD_EN(r32,v)              _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SPI1_SCLKCntl_PD_EN(r16)                _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SPI1_SCLKCntl_PD_EN(r16,v)              _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SPI1_SCLKCntl_PU_EN(r32)                _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SPI1_SCLKCntl_PU_EN(r32,v)              _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SPI1_SCLKCntl_PU_EN(r16)                _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SPI1_SCLKCntl_PU_EN(r16,v)              _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SPI1_SCLKCntl                           {\
            UNSG32 uSPI1_SCLKCntl_PD_EN                        :  1;\
            UNSG32 uSPI1_SCLKCntl_PU_EN                        :  1;\
            UNSG32 RSVDx8024_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SPI1_SCLKCntl;
            struct w32Gbl_SPI1_SCLKCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SPI1_SDOCntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SPI1_SDOCntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SPI1_SDOCntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SPI1_SDOCntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SPI1_SDOCntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SPI1_SDOCntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SPI1_SDOCntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SPI1_SDOCntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SPI1_SDOCntl                            {\
            UNSG32 uSPI1_SDOCntl_PD_EN                         :  1;\
            UNSG32 uSPI1_SDOCntl_PU_EN                         :  1;\
            UNSG32 RSVDx8028_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SPI1_SDOCntl;
            struct w32Gbl_SPI1_SDOCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SPI1_SDICntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SPI1_SDICntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SPI1_SDICntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SPI1_SDICntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SPI1_SDICntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SPI1_SDICntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SPI1_SDICntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SPI1_SDICntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SPI1_SDICntl                            {\
            UNSG32 uSPI1_SDICntl_PD_EN                         :  1;\
            UNSG32 uSPI1_SDICntl_PU_EN                         :  1;\
            UNSG32 RSVDx802C_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SPI1_SDICntl;
            struct w32Gbl_SPI1_SDICntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_USB1_DRV_VBUSCntl_PD_EN(r32)            _BFGET_(r32, 0, 0)
    #define   SET32Gbl_USB1_DRV_VBUSCntl_PD_EN(r32,v)          _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_USB1_DRV_VBUSCntl_PD_EN(r16)            _BFGET_(r16, 0, 0)
    #define   SET16Gbl_USB1_DRV_VBUSCntl_PD_EN(r16,v)          _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_USB1_DRV_VBUSCntl_PU_EN(r32)            _BFGET_(r32, 1, 1)
    #define   SET32Gbl_USB1_DRV_VBUSCntl_PU_EN(r32,v)          _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_USB1_DRV_VBUSCntl_PU_EN(r16)            _BFGET_(r16, 1, 1)
    #define   SET16Gbl_USB1_DRV_VBUSCntl_PU_EN(r16,v)          _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_USB1_DRV_VBUSCntl                       {\
            UNSG32 uUSB1_DRV_VBUSCntl_PD_EN                    :  1;\
            UNSG32 uUSB1_DRV_VBUSCntl_PU_EN                    :  1;\
            UNSG32 RSVDx8030_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_USB1_DRV_VBUSCntl;
            struct w32Gbl_USB1_DRV_VBUSCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_IO0Cntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_IO0Cntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_IO0Cntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_IO0Cntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_IO0Cntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_IO0Cntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_IO0Cntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_IO0Cntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_IO0Cntl                            {\
            UNSG32 uNAND_IO0Cntl_PD_EN                         :  1;\
            UNSG32 uNAND_IO0Cntl_PU_EN                         :  1;\
            UNSG32 RSVDx8034_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_IO0Cntl;
            struct w32Gbl_NAND_IO0Cntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_IO1Cntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_IO1Cntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_IO1Cntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_IO1Cntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_IO1Cntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_IO1Cntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_IO1Cntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_IO1Cntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_IO1Cntl                            {\
            UNSG32 uNAND_IO1Cntl_PD_EN                         :  1;\
            UNSG32 uNAND_IO1Cntl_PU_EN                         :  1;\
            UNSG32 RSVDx8038_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_IO1Cntl;
            struct w32Gbl_NAND_IO1Cntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_IO2Cntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_IO2Cntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_IO2Cntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_IO2Cntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_IO2Cntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_IO2Cntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_IO2Cntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_IO2Cntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_IO2Cntl                            {\
            UNSG32 uNAND_IO2Cntl_PD_EN                         :  1;\
            UNSG32 uNAND_IO2Cntl_PU_EN                         :  1;\
            UNSG32 RSVDx803C_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_IO2Cntl;
            struct w32Gbl_NAND_IO2Cntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_IO3Cntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_IO3Cntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_IO3Cntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_IO3Cntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_IO3Cntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_IO3Cntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_IO3Cntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_IO3Cntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_IO3Cntl                            {\
            UNSG32 uNAND_IO3Cntl_PD_EN                         :  1;\
            UNSG32 uNAND_IO3Cntl_PU_EN                         :  1;\
            UNSG32 RSVDx8040_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_IO3Cntl;
            struct w32Gbl_NAND_IO3Cntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_IO4Cntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_IO4Cntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_IO4Cntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_IO4Cntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_IO4Cntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_IO4Cntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_IO4Cntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_IO4Cntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_IO4Cntl                            {\
            UNSG32 uNAND_IO4Cntl_PD_EN                         :  1;\
            UNSG32 uNAND_IO4Cntl_PU_EN                         :  1;\
            UNSG32 RSVDx8044_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_IO4Cntl;
            struct w32Gbl_NAND_IO4Cntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_IO5Cntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_IO5Cntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_IO5Cntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_IO5Cntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_IO5Cntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_IO5Cntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_IO5Cntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_IO5Cntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_IO5Cntl                            {\
            UNSG32 uNAND_IO5Cntl_PD_EN                         :  1;\
            UNSG32 uNAND_IO5Cntl_PU_EN                         :  1;\
            UNSG32 RSVDx8048_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_IO5Cntl;
            struct w32Gbl_NAND_IO5Cntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_IO6Cntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_IO6Cntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_IO6Cntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_IO6Cntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_IO6Cntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_IO6Cntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_IO6Cntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_IO6Cntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_IO6Cntl                            {\
            UNSG32 uNAND_IO6Cntl_PD_EN                         :  1;\
            UNSG32 uNAND_IO6Cntl_PU_EN                         :  1;\
            UNSG32 RSVDx804C_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_IO6Cntl;
            struct w32Gbl_NAND_IO6Cntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_IO7Cntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_IO7Cntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_IO7Cntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_IO7Cntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_IO7Cntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_IO7Cntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_IO7Cntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_IO7Cntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_IO7Cntl                            {\
            UNSG32 uNAND_IO7Cntl_PD_EN                         :  1;\
            UNSG32 uNAND_IO7Cntl_PU_EN                         :  1;\
            UNSG32 RSVDx8050_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_IO7Cntl;
            struct w32Gbl_NAND_IO7Cntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_ALECntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_ALECntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_ALECntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_ALECntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_ALECntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_ALECntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_ALECntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_ALECntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_ALECntl                            {\
            UNSG32 uNAND_ALECntl_PD_EN                         :  1;\
            UNSG32 uNAND_ALECntl_PU_EN                         :  1;\
            UNSG32 RSVDx8054_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_ALECntl;
            struct w32Gbl_NAND_ALECntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_CLECntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_CLECntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_CLECntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_CLECntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_CLECntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_CLECntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_CLECntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_CLECntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_CLECntl                            {\
            UNSG32 uNAND_CLECntl_PD_EN                         :  1;\
            UNSG32 uNAND_CLECntl_PU_EN                         :  1;\
            UNSG32 RSVDx8058_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_CLECntl;
            struct w32Gbl_NAND_CLECntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_WEnCntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_WEnCntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_WEnCntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_WEnCntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_WEnCntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_WEnCntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_WEnCntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_WEnCntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_WEnCntl                            {\
            UNSG32 uNAND_WEnCntl_PD_EN                         :  1;\
            UNSG32 uNAND_WEnCntl_PU_EN                         :  1;\
            UNSG32 RSVDx805C_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_WEnCntl;
            struct w32Gbl_NAND_WEnCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_REnCntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_REnCntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_REnCntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_REnCntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_REnCntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_REnCntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_REnCntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_REnCntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_REnCntl                            {\
            UNSG32 uNAND_REnCntl_PD_EN                         :  1;\
            UNSG32 uNAND_REnCntl_PU_EN                         :  1;\
            UNSG32 RSVDx8060_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_REnCntl;
            struct w32Gbl_NAND_REnCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_WPnCntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_WPnCntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_WPnCntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_WPnCntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_WPnCntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_WPnCntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_WPnCntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_WPnCntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_WPnCntl                            {\
            UNSG32 uNAND_WPnCntl_PD_EN                         :  1;\
            UNSG32 uNAND_WPnCntl_PU_EN                         :  1;\
            UNSG32 RSVDx8064_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_WPnCntl;
            struct w32Gbl_NAND_WPnCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_CEnCntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_CEnCntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_CEnCntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_CEnCntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_CEnCntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_CEnCntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_CEnCntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_CEnCntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_CEnCntl                            {\
            UNSG32 uNAND_CEnCntl_PD_EN                         :  1;\
            UNSG32 uNAND_CEnCntl_PU_EN                         :  1;\
            UNSG32 RSVDx8068_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_CEnCntl;
            struct w32Gbl_NAND_CEnCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_NAND_RDYCntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_NAND_RDYCntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_NAND_RDYCntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_NAND_RDYCntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_NAND_RDYCntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_NAND_RDYCntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_NAND_RDYCntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_NAND_RDYCntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_NAND_RDYCntl                            {\
            UNSG32 uNAND_RDYCntl_PD_EN                         :  1;\
            UNSG32 uNAND_RDYCntl_PU_EN                         :  1;\
            UNSG32 RSVDx806C_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_NAND_RDYCntl;
            struct w32Gbl_NAND_RDYCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SD0_CLKCntl_PD_EN(r32)                  _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SD0_CLKCntl_PD_EN(r32,v)                _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SD0_CLKCntl_PD_EN(r16)                  _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SD0_CLKCntl_PD_EN(r16,v)                _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SD0_CLKCntl_PU_EN(r32)                  _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SD0_CLKCntl_PU_EN(r32,v)                _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SD0_CLKCntl_PU_EN(r16)                  _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SD0_CLKCntl_PU_EN(r16,v)                _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SD0_CLKCntl                             {\
            UNSG32 uSD0_CLKCntl_PD_EN                          :  1;\
            UNSG32 uSD0_CLKCntl_PU_EN                          :  1;\
            UNSG32 RSVDx8070_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SD0_CLKCntl;
            struct w32Gbl_SD0_CLKCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SD0_DAT0Cntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SD0_DAT0Cntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SD0_DAT0Cntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SD0_DAT0Cntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SD0_DAT0Cntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SD0_DAT0Cntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SD0_DAT0Cntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SD0_DAT0Cntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SD0_DAT0Cntl                            {\
            UNSG32 uSD0_DAT0Cntl_PD_EN                         :  1;\
            UNSG32 uSD0_DAT0Cntl_PU_EN                         :  1;\
            UNSG32 RSVDx8074_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SD0_DAT0Cntl;
            struct w32Gbl_SD0_DAT0Cntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SD0_DAT1Cntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SD0_DAT1Cntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SD0_DAT1Cntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SD0_DAT1Cntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SD0_DAT1Cntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SD0_DAT1Cntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SD0_DAT1Cntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SD0_DAT1Cntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SD0_DAT1Cntl                            {\
            UNSG32 uSD0_DAT1Cntl_PD_EN                         :  1;\
            UNSG32 uSD0_DAT1Cntl_PU_EN                         :  1;\
            UNSG32 RSVDx8078_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SD0_DAT1Cntl;
            struct w32Gbl_SD0_DAT1Cntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SD0_DAT2Cntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SD0_DAT2Cntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SD0_DAT2Cntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SD0_DAT2Cntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SD0_DAT2Cntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SD0_DAT2Cntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SD0_DAT2Cntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SD0_DAT2Cntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SD0_DAT2Cntl                            {\
            UNSG32 uSD0_DAT2Cntl_PD_EN                         :  1;\
            UNSG32 uSD0_DAT2Cntl_PU_EN                         :  1;\
            UNSG32 RSVDx807C_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SD0_DAT2Cntl;
            struct w32Gbl_SD0_DAT2Cntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SD0_DAT3Cntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SD0_DAT3Cntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SD0_DAT3Cntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SD0_DAT3Cntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SD0_DAT3Cntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SD0_DAT3Cntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SD0_DAT3Cntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SD0_DAT3Cntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SD0_DAT3Cntl                            {\
            UNSG32 uSD0_DAT3Cntl_PD_EN                         :  1;\
            UNSG32 uSD0_DAT3Cntl_PU_EN                         :  1;\
            UNSG32 RSVDx8080_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SD0_DAT3Cntl;
            struct w32Gbl_SD0_DAT3Cntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SD0_CDnCntl_PD_EN(r32)                  _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SD0_CDnCntl_PD_EN(r32,v)                _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SD0_CDnCntl_PD_EN(r16)                  _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SD0_CDnCntl_PD_EN(r16,v)                _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SD0_CDnCntl_PU_EN(r32)                  _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SD0_CDnCntl_PU_EN(r32,v)                _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SD0_CDnCntl_PU_EN(r16)                  _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SD0_CDnCntl_PU_EN(r16,v)                _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SD0_CDnCntl                             {\
            UNSG32 uSD0_CDnCntl_PD_EN                          :  1;\
            UNSG32 uSD0_CDnCntl_PU_EN                          :  1;\
            UNSG32 RSVDx8084_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SD0_CDnCntl;
            struct w32Gbl_SD0_CDnCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SD0_CMDCntl_PD_EN(r32)                  _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SD0_CMDCntl_PD_EN(r32,v)                _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SD0_CMDCntl_PD_EN(r16)                  _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SD0_CMDCntl_PD_EN(r16,v)                _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SD0_CMDCntl_PU_EN(r32)                  _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SD0_CMDCntl_PU_EN(r32,v)                _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SD0_CMDCntl_PU_EN(r16)                  _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SD0_CMDCntl_PU_EN(r16,v)                _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SD0_CMDCntl                             {\
            UNSG32 uSD0_CMDCntl_PD_EN                          :  1;\
            UNSG32 uSD0_CMDCntl_PU_EN                          :  1;\
            UNSG32 RSVDx8088_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SD0_CMDCntl;
            struct w32Gbl_SD0_CMDCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_SD0_WPCntl_PD_EN(r32)                   _BFGET_(r32, 0, 0)
    #define   SET32Gbl_SD0_WPCntl_PD_EN(r32,v)                 _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_SD0_WPCntl_PD_EN(r16)                   _BFGET_(r16, 0, 0)
    #define   SET16Gbl_SD0_WPCntl_PD_EN(r16,v)                 _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_SD0_WPCntl_PU_EN(r32)                   _BFGET_(r32, 1, 1)
    #define   SET32Gbl_SD0_WPCntl_PU_EN(r32,v)                 _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_SD0_WPCntl_PU_EN(r16)                   _BFGET_(r16, 1, 1)
    #define   SET16Gbl_SD0_WPCntl_PU_EN(r16,v)                 _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_SD0_WPCntl                              {\
            UNSG32 uSD0_WPCntl_PD_EN                           :  1;\
            UNSG32 uSD0_WPCntl_PU_EN                           :  1;\
            UNSG32 RSVDx808C_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_SD0_WPCntl;
            struct w32Gbl_SD0_WPCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_STS0_CLKCntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_STS0_CLKCntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_STS0_CLKCntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_STS0_CLKCntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_STS0_CLKCntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_STS0_CLKCntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_STS0_CLKCntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_STS0_CLKCntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_STS0_CLKCntl                            {\
            UNSG32 uSTS0_CLKCntl_PD_EN                         :  1;\
            UNSG32 uSTS0_CLKCntl_PU_EN                         :  1;\
            UNSG32 RSVDx8090_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_STS0_CLKCntl;
            struct w32Gbl_STS0_CLKCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_STS0_SOPCntl_PD_EN(r32)                 _BFGET_(r32, 0, 0)
    #define   SET32Gbl_STS0_SOPCntl_PD_EN(r32,v)               _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_STS0_SOPCntl_PD_EN(r16)                 _BFGET_(r16, 0, 0)
    #define   SET16Gbl_STS0_SOPCntl_PD_EN(r16,v)               _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_STS0_SOPCntl_PU_EN(r32)                 _BFGET_(r32, 1, 1)
    #define   SET32Gbl_STS0_SOPCntl_PU_EN(r32,v)               _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_STS0_SOPCntl_PU_EN(r16)                 _BFGET_(r16, 1, 1)
    #define   SET16Gbl_STS0_SOPCntl_PU_EN(r16,v)               _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_STS0_SOPCntl                            {\
            UNSG32 uSTS0_SOPCntl_PD_EN                         :  1;\
            UNSG32 uSTS0_SOPCntl_PU_EN                         :  1;\
            UNSG32 RSVDx8094_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_STS0_SOPCntl;
            struct w32Gbl_STS0_SOPCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_STS0_VALDCntl_PD_EN(r32)                _BFGET_(r32, 0, 0)
    #define   SET32Gbl_STS0_VALDCntl_PD_EN(r32,v)              _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_STS0_VALDCntl_PD_EN(r16)                _BFGET_(r16, 0, 0)
    #define   SET16Gbl_STS0_VALDCntl_PD_EN(r16,v)              _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_STS0_VALDCntl_PU_EN(r32)                _BFGET_(r32, 1, 1)
    #define   SET32Gbl_STS0_VALDCntl_PU_EN(r32,v)              _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_STS0_VALDCntl_PU_EN(r16)                _BFGET_(r16, 1, 1)
    #define   SET16Gbl_STS0_VALDCntl_PU_EN(r16,v)              _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_STS0_VALDCntl                           {\
            UNSG32 uSTS0_VALDCntl_PD_EN                        :  1;\
            UNSG32 uSTS0_VALDCntl_PU_EN                        :  1;\
            UNSG32 RSVDx8098_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_STS0_VALDCntl;
            struct w32Gbl_STS0_VALDCntl;
          };
    ///////////////////////////////////////////////////////////
    #define   GET32Gbl_STS0_SDCntl_PD_EN(r32)                  _BFGET_(r32, 0, 0)
    #define   SET32Gbl_STS0_SDCntl_PD_EN(r32,v)                _BFSET_(r32, 0, 0,v)
    #define   GET16Gbl_STS0_SDCntl_PD_EN(r16)                  _BFGET_(r16, 0, 0)
    #define   SET16Gbl_STS0_SDCntl_PD_EN(r16,v)                _BFSET_(r16, 0, 0,v)

    #define   GET32Gbl_STS0_SDCntl_PU_EN(r32)                  _BFGET_(r32, 1, 1)
    #define   SET32Gbl_STS0_SDCntl_PU_EN(r32,v)                _BFSET_(r32, 1, 1,v)
    #define   GET16Gbl_STS0_SDCntl_PU_EN(r16)                  _BFGET_(r16, 1, 1)
    #define   SET16Gbl_STS0_SDCntl_PU_EN(r16,v)                _BFSET_(r16, 1, 1,v)

    #define     w32Gbl_STS0_SDCntl                             {\
            UNSG32 uSTS0_SDCntl_PD_EN                          :  1;\
            UNSG32 uSTS0_SDCntl_PU_EN                          :  1;\
            UNSG32 RSVDx809C_b2                                : 30;\
          }
    union { UNSG32 u32Gbl_STS0_SDCntl;
            struct w32Gbl_STS0_SDCntl;
          };
    ///////////////////////////////////////////////////////////
    } SIE_Gbl;

    typedef union  T32Gbl_ProductId
          { UNSG32 u32;
            struct w32Gbl_ProductId;
                 } T32Gbl_ProductId;
    typedef union  T32Gbl_ProductId_ext
          { UNSG32 u32;
            struct w32Gbl_ProductId_ext;
                 } T32Gbl_ProductId_ext;
    typedef union  T32Gbl_INT_ID
          { UNSG32 u32;
            struct w32Gbl_INT_ID;
                 } T32Gbl_INT_ID;
    typedef union  T32Gbl_bootStrap
          { UNSG32 u32;
            struct w32Gbl_bootStrap;
                 } T32Gbl_bootStrap;
    typedef union  T32Gbl_bootStrapEn
          { UNSG32 u32;
            struct w32Gbl_bootStrapEn;
                 } T32Gbl_bootStrapEn;
    typedef union  T32Gbl_chipCntl
          { UNSG32 u32;
            struct w32Gbl_chipCntl;
                 } T32Gbl_chipCntl;
    typedef union  T32Gbl_sw_generic0
          { UNSG32 u32;
            struct w32Gbl_sw_generic0;
                 } T32Gbl_sw_generic0;
    typedef union  T32Gbl_sw_generic1
          { UNSG32 u32;
            struct w32Gbl_sw_generic1;
                 } T32Gbl_sw_generic1;
    typedef union  T32Gbl_sw_generic2
          { UNSG32 u32;
            struct w32Gbl_sw_generic2;
                 } T32Gbl_sw_generic2;
    typedef union  T32Gbl_sw_generic3
          { UNSG32 u32;
            struct w32Gbl_sw_generic3;
                 } T32Gbl_sw_generic3;
    typedef union  T32Gbl_RWTC_gfx3D31to0
          { UNSG32 u32;
            struct w32Gbl_RWTC_gfx3D31to0;
                 } T32Gbl_RWTC_gfx3D31to0;
    typedef union  T32Gbl_RWTC_gfx3D57to32
          { UNSG32 u32;
            struct w32Gbl_RWTC_gfx3D57to32;
                 } T32Gbl_RWTC_gfx3D57to32;
    typedef union  T32Gbl_RWTC_top31to0
          { UNSG32 u32;
            struct w32Gbl_RWTC_top31to0;
                 } T32Gbl_RWTC_top31to0;
    typedef union  T32Gbl_RWTC_top57to32
          { UNSG32 u32;
            struct w32Gbl_RWTC_top57to32;
                 } T32Gbl_RWTC_top57to32;
    typedef union  T32Gbl_RWTC_vPro31to0
          { UNSG32 u32;
            struct w32Gbl_RWTC_vPro31to0;
                 } T32Gbl_RWTC_vPro31to0;
    typedef union  T32Gbl_RWTC_vPro57to32
          { UNSG32 u32;
            struct w32Gbl_RWTC_vPro57to32;
                 } T32Gbl_RWTC_vPro57to32;
    typedef union  T32Gbl_RWTC_g1Wrap31to0
          { UNSG32 u32;
            struct w32Gbl_RWTC_g1Wrap31to0;
                 } T32Gbl_RWTC_g1Wrap31to0;
    typedef union  T32Gbl_RWTC_g1Wrap57to32
          { UNSG32 u32;
            struct w32Gbl_RWTC_g1Wrap57to32;
                 } T32Gbl_RWTC_g1Wrap57to32;
    typedef union  T32Gbl_RWTC_mr7to0
          { UNSG32 u32;
            struct w32Gbl_RWTC_mr7to0;
                 } T32Gbl_RWTC_mr7to0;
    typedef union  T32Gbl_FPGAR
          { UNSG32 u32;
            struct w32Gbl_FPGAR;
                 } T32Gbl_FPGAR;
    typedef union  T32Gbl_FPGARW
          { UNSG32 u32;
            struct w32Gbl_FPGARW;
                 } T32Gbl_FPGARW;
    typedef union  T32Gbl_ResetTrigger
          { UNSG32 u32;
            struct w32Gbl_ResetTrigger;
                 } T32Gbl_ResetTrigger;
    typedef union  T32Gbl_ResetStatus
          { UNSG32 u32;
            struct w32Gbl_ResetStatus;
                 } T32Gbl_ResetStatus;
    typedef union  T32Gbl_gfx3DReset
          { UNSG32 u32;
            struct w32Gbl_gfx3DReset;
                 } T32Gbl_gfx3DReset;
    typedef union  T32Gbl_gfx3DResetStatus
          { UNSG32 u32;
            struct w32Gbl_gfx3DResetStatus;
                 } T32Gbl_gfx3DResetStatus;
    typedef union  T32Gbl_clkEnable
          { UNSG32 u32;
            struct w32Gbl_clkEnable;
                 } T32Gbl_clkEnable;
    typedef union  T32Gbl_ClkSwitch
          { UNSG32 u32;
            struct w32Gbl_ClkSwitch;
                 } T32Gbl_ClkSwitch;
    typedef union  T32Gbl_SECURE_SCAN_EN
          { UNSG32 u32;
            struct w32Gbl_SECURE_SCAN_EN;
                 } T32Gbl_SECURE_SCAN_EN;
    typedef union  T32Gbl_NandCtrl
          { UNSG32 u32;
            struct w32Gbl_NandCtrl;
                 } T32Gbl_NandCtrl;
    typedef union  T32Gbl_sdioDllMstCtrl
          { UNSG32 u32;
            struct w32Gbl_sdioDllMstCtrl;
                 } T32Gbl_sdioDllMstCtrl;
    typedef union  T32Gbl_sdioDllMstCtrl1
          { UNSG32 u32;
            struct w32Gbl_sdioDllMstCtrl1;
                 } T32Gbl_sdioDllMstCtrl1;
    typedef union  T32Gbl_sdioDllMstStatus
          { UNSG32 u32;
            struct w32Gbl_sdioDllMstStatus;
                 } T32Gbl_sdioDllMstStatus;
    typedef union  T32Gbl_sdioDllMstStatus1
          { UNSG32 u32;
            struct w32Gbl_sdioDllMstStatus1;
                 } T32Gbl_sdioDllMstStatus1;
    typedef union  T32Gbl_gfx3DDisRamClkGate
          { UNSG32 u32;
            struct w32Gbl_gfx3DDisRamClkGate;
                 } T32Gbl_gfx3DDisRamClkGate;
    typedef union  T32Gbl_DroEn
          { UNSG32 u32;
            struct w32Gbl_DroEn;
                 } T32Gbl_DroEn;
    typedef union  T32Gbl_DroEn1
          { UNSG32 u32;
            struct w32Gbl_DroEn1;
                 } T32Gbl_DroEn1;
    typedef union  T32Gbl_DroShift
          { UNSG32 u32;
            struct w32Gbl_DroShift;
                 } T32Gbl_DroShift;
    typedef union  T32Gbl_DroStatus
          { UNSG32 u32;
            struct w32Gbl_DroStatus;
                 } T32Gbl_DroStatus;
    typedef union  T32Gbl_DroCounter
          { UNSG32 u32;
            struct w32Gbl_DroCounter;
                 } T32Gbl_DroCounter;
    typedef union  T32Gbl_gic400_ctrl
          { UNSG32 u32;
            struct w32Gbl_gic400_ctrl;
                 } T32Gbl_gic400_ctrl;
    typedef union  T32Gbl_SPARE_CTRL_0
          { UNSG32 u32;
            struct w32Gbl_SPARE_CTRL_0;
                 } T32Gbl_SPARE_CTRL_0;
    typedef union  T32Gbl_SPARE_CTRL_1
          { UNSG32 u32;
            struct w32Gbl_SPARE_CTRL_1;
                 } T32Gbl_SPARE_CTRL_1;
    typedef union  T32Gbl_SPARE_CTRL_2
          { UNSG32 u32;
            struct w32Gbl_SPARE_CTRL_2;
                 } T32Gbl_SPARE_CTRL_2;
    typedef union  T32Gbl_SPARE_CTRL_3
          { UNSG32 u32;
            struct w32Gbl_SPARE_CTRL_3;
                 } T32Gbl_SPARE_CTRL_3;
    typedef union  T32Gbl_PadSelect
          { UNSG32 u32;
            struct w32Gbl_PadSelect;
                 } T32Gbl_PadSelect;
    typedef union  T32Gbl_DDC_PAD_CTRL
          { UNSG32 u32;
            struct w32Gbl_DDC_PAD_CTRL;
                 } T32Gbl_DDC_PAD_CTRL;
    typedef union  T32Gbl_pinMuxCntlBus
          { UNSG32 u32;
            struct w32Gbl_pinMuxCntlBus;
                 } T32Gbl_pinMuxCntlBus;
    typedef union  T32Gbl_pinMuxCntlBus1
          { UNSG32 u32;
            struct w32Gbl_pinMuxCntlBus1;
                 } T32Gbl_pinMuxCntlBus1;
    typedef union  T32Gbl_pinMuxCntlBus2
          { UNSG32 u32;
            struct w32Gbl_pinMuxCntlBus2;
                 } T32Gbl_pinMuxCntlBus2;
    typedef union  T32Gbl_pinMuxCntlBus3
          { UNSG32 u32;
            struct w32Gbl_pinMuxCntlBus3;
                 } T32Gbl_pinMuxCntlBus3;
    typedef union  T32Gbl_URT0_RXDCntl
          { UNSG32 u32;
            struct w32Gbl_URT0_RXDCntl;
                 } T32Gbl_URT0_RXDCntl;
    typedef union  T32Gbl_URT0_TXDCntl
          { UNSG32 u32;
            struct w32Gbl_URT0_TXDCntl;
                 } T32Gbl_URT0_TXDCntl;
    typedef union  T32Gbl_SPI1_SS0nCntl
          { UNSG32 u32;
            struct w32Gbl_SPI1_SS0nCntl;
                 } T32Gbl_SPI1_SS0nCntl;
    typedef union  T32Gbl_SPI1_SS1nCntl
          { UNSG32 u32;
            struct w32Gbl_SPI1_SS1nCntl;
                 } T32Gbl_SPI1_SS1nCntl;
    typedef union  T32Gbl_SPI1_SS2nCntl
          { UNSG32 u32;
            struct w32Gbl_SPI1_SS2nCntl;
                 } T32Gbl_SPI1_SS2nCntl;
    typedef union  T32Gbl_SPI1_SCLKCntl
          { UNSG32 u32;
            struct w32Gbl_SPI1_SCLKCntl;
                 } T32Gbl_SPI1_SCLKCntl;
    typedef union  T32Gbl_SPI1_SDOCntl
          { UNSG32 u32;
            struct w32Gbl_SPI1_SDOCntl;
                 } T32Gbl_SPI1_SDOCntl;
    typedef union  T32Gbl_SPI1_SDICntl
          { UNSG32 u32;
            struct w32Gbl_SPI1_SDICntl;
                 } T32Gbl_SPI1_SDICntl;
    typedef union  T32Gbl_USB1_DRV_VBUSCntl
          { UNSG32 u32;
            struct w32Gbl_USB1_DRV_VBUSCntl;
                 } T32Gbl_USB1_DRV_VBUSCntl;
    typedef union  T32Gbl_NAND_IO0Cntl
          { UNSG32 u32;
            struct w32Gbl_NAND_IO0Cntl;
                 } T32Gbl_NAND_IO0Cntl;
    typedef union  T32Gbl_NAND_IO1Cntl
          { UNSG32 u32;
            struct w32Gbl_NAND_IO1Cntl;
                 } T32Gbl_NAND_IO1Cntl;
    typedef union  T32Gbl_NAND_IO2Cntl
          { UNSG32 u32;
            struct w32Gbl_NAND_IO2Cntl;
                 } T32Gbl_NAND_IO2Cntl;
    typedef union  T32Gbl_NAND_IO3Cntl
          { UNSG32 u32;
            struct w32Gbl_NAND_IO3Cntl;
                 } T32Gbl_NAND_IO3Cntl;
    typedef union  T32Gbl_NAND_IO4Cntl
          { UNSG32 u32;
            struct w32Gbl_NAND_IO4Cntl;
                 } T32Gbl_NAND_IO4Cntl;
    typedef union  T32Gbl_NAND_IO5Cntl
          { UNSG32 u32;
            struct w32Gbl_NAND_IO5Cntl;
                 } T32Gbl_NAND_IO5Cntl;
    typedef union  T32Gbl_NAND_IO6Cntl
          { UNSG32 u32;
            struct w32Gbl_NAND_IO6Cntl;
                 } T32Gbl_NAND_IO6Cntl;
    typedef union  T32Gbl_NAND_IO7Cntl
          { UNSG32 u32;
            struct w32Gbl_NAND_IO7Cntl;
                 } T32Gbl_NAND_IO7Cntl;
    typedef union  T32Gbl_NAND_ALECntl
          { UNSG32 u32;
            struct w32Gbl_NAND_ALECntl;
                 } T32Gbl_NAND_ALECntl;
    typedef union  T32Gbl_NAND_CLECntl
          { UNSG32 u32;
            struct w32Gbl_NAND_CLECntl;
                 } T32Gbl_NAND_CLECntl;
    typedef union  T32Gbl_NAND_WEnCntl
          { UNSG32 u32;
            struct w32Gbl_NAND_WEnCntl;
                 } T32Gbl_NAND_WEnCntl;
    typedef union  T32Gbl_NAND_REnCntl
          { UNSG32 u32;
            struct w32Gbl_NAND_REnCntl;
                 } T32Gbl_NAND_REnCntl;
    typedef union  T32Gbl_NAND_WPnCntl
          { UNSG32 u32;
            struct w32Gbl_NAND_WPnCntl;
                 } T32Gbl_NAND_WPnCntl;
    typedef union  T32Gbl_NAND_CEnCntl
          { UNSG32 u32;
            struct w32Gbl_NAND_CEnCntl;
                 } T32Gbl_NAND_CEnCntl;
    typedef union  T32Gbl_NAND_RDYCntl
          { UNSG32 u32;
            struct w32Gbl_NAND_RDYCntl;
                 } T32Gbl_NAND_RDYCntl;
    typedef union  T32Gbl_SD0_CLKCntl
          { UNSG32 u32;
            struct w32Gbl_SD0_CLKCntl;
                 } T32Gbl_SD0_CLKCntl;
    typedef union  T32Gbl_SD0_DAT0Cntl
          { UNSG32 u32;
            struct w32Gbl_SD0_DAT0Cntl;
                 } T32Gbl_SD0_DAT0Cntl;
    typedef union  T32Gbl_SD0_DAT1Cntl
          { UNSG32 u32;
            struct w32Gbl_SD0_DAT1Cntl;
                 } T32Gbl_SD0_DAT1Cntl;
    typedef union  T32Gbl_SD0_DAT2Cntl
          { UNSG32 u32;
            struct w32Gbl_SD0_DAT2Cntl;
                 } T32Gbl_SD0_DAT2Cntl;
    typedef union  T32Gbl_SD0_DAT3Cntl
          { UNSG32 u32;
            struct w32Gbl_SD0_DAT3Cntl;
                 } T32Gbl_SD0_DAT3Cntl;
    typedef union  T32Gbl_SD0_CDnCntl
          { UNSG32 u32;
            struct w32Gbl_SD0_CDnCntl;
                 } T32Gbl_SD0_CDnCntl;
    typedef union  T32Gbl_SD0_CMDCntl
          { UNSG32 u32;
            struct w32Gbl_SD0_CMDCntl;
                 } T32Gbl_SD0_CMDCntl;
    typedef union  T32Gbl_SD0_WPCntl
          { UNSG32 u32;
            struct w32Gbl_SD0_WPCntl;
                 } T32Gbl_SD0_WPCntl;
    typedef union  T32Gbl_STS0_CLKCntl
          { UNSG32 u32;
            struct w32Gbl_STS0_CLKCntl;
                 } T32Gbl_STS0_CLKCntl;
    typedef union  T32Gbl_STS0_SOPCntl
          { UNSG32 u32;
            struct w32Gbl_STS0_SOPCntl;
                 } T32Gbl_STS0_SOPCntl;
    typedef union  T32Gbl_STS0_VALDCntl
          { UNSG32 u32;
            struct w32Gbl_STS0_VALDCntl;
                 } T32Gbl_STS0_VALDCntl;
    typedef union  T32Gbl_STS0_SDCntl
          { UNSG32 u32;
            struct w32Gbl_STS0_SDCntl;
                 } T32Gbl_STS0_SDCntl;
    ///////////////////////////////////////////////////////////

    typedef union  TGbl_ProductId
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_ProductId;
                   };
                 } TGbl_ProductId;
    typedef union  TGbl_ProductId_ext
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_ProductId_ext;
                   };
                 } TGbl_ProductId_ext;
    typedef union  TGbl_INT_ID
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_INT_ID;
                   };
                 } TGbl_INT_ID;
    typedef union  TGbl_bootStrap
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_bootStrap;
                   };
                 } TGbl_bootStrap;
    typedef union  TGbl_bootStrapEn
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_bootStrapEn;
                   };
                 } TGbl_bootStrapEn;
    typedef union  TGbl_chipCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_chipCntl;
                   };
                 } TGbl_chipCntl;
    typedef union  TGbl_sw_generic0
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_sw_generic0;
                   };
                 } TGbl_sw_generic0;
    typedef union  TGbl_sw_generic1
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_sw_generic1;
                   };
                 } TGbl_sw_generic1;
    typedef union  TGbl_sw_generic2
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_sw_generic2;
                   };
                 } TGbl_sw_generic2;
    typedef union  TGbl_sw_generic3
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_sw_generic3;
                   };
                 } TGbl_sw_generic3;
    typedef union  TGbl_RWTC_gfx3D31to0
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_RWTC_gfx3D31to0;
                   };
                 } TGbl_RWTC_gfx3D31to0;
    typedef union  TGbl_RWTC_gfx3D57to32
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_RWTC_gfx3D57to32;
                   };
                 } TGbl_RWTC_gfx3D57to32;
    typedef union  TGbl_RWTC_top31to0
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_RWTC_top31to0;
                   };
                 } TGbl_RWTC_top31to0;
    typedef union  TGbl_RWTC_top57to32
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_RWTC_top57to32;
                   };
                 } TGbl_RWTC_top57to32;
    typedef union  TGbl_RWTC_vPro31to0
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_RWTC_vPro31to0;
                   };
                 } TGbl_RWTC_vPro31to0;
    typedef union  TGbl_RWTC_vPro57to32
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_RWTC_vPro57to32;
                   };
                 } TGbl_RWTC_vPro57to32;
    typedef union  TGbl_RWTC_g1Wrap31to0
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_RWTC_g1Wrap31to0;
                   };
                 } TGbl_RWTC_g1Wrap31to0;
    typedef union  TGbl_RWTC_g1Wrap57to32
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_RWTC_g1Wrap57to32;
                   };
                 } TGbl_RWTC_g1Wrap57to32;
    typedef union  TGbl_RWTC_mr7to0
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_RWTC_mr7to0;
                   };
                 } TGbl_RWTC_mr7to0;
    typedef union  TGbl_FPGAR
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_FPGAR;
                   };
                 } TGbl_FPGAR;
    typedef union  TGbl_FPGARW
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_FPGARW;
                   };
                 } TGbl_FPGARW;
    typedef union  TGbl_ResetTrigger
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_ResetTrigger;
                   };
                 } TGbl_ResetTrigger;
    typedef union  TGbl_ResetStatus
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_ResetStatus;
                   };
                 } TGbl_ResetStatus;
    typedef union  TGbl_gfx3DReset
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_gfx3DReset;
                   };
                 } TGbl_gfx3DReset;
    typedef union  TGbl_gfx3DResetStatus
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_gfx3DResetStatus;
                   };
                 } TGbl_gfx3DResetStatus;
    typedef union  TGbl_clkEnable
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_clkEnable;
                   };
                 } TGbl_clkEnable;
    typedef union  TGbl_ClkSwitch
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_ClkSwitch;
                   };
                 } TGbl_ClkSwitch;
    typedef union  TGbl_SECURE_SCAN_EN
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SECURE_SCAN_EN;
                   };
                 } TGbl_SECURE_SCAN_EN;
    typedef union  TGbl_NandCtrl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NandCtrl;
                   };
                 } TGbl_NandCtrl;
    typedef union  TGbl_sdioDllMstCtrl
          { UNSG32 u32[2];
            struct {
            struct w32Gbl_sdioDllMstCtrl;
            struct w32Gbl_sdioDllMstCtrl1;
                   };
                 } TGbl_sdioDllMstCtrl;
    typedef union  TGbl_sdioDllMstStatus
          { UNSG32 u32[2];
            struct {
            struct w32Gbl_sdioDllMstStatus;
            struct w32Gbl_sdioDllMstStatus1;
                   };
                 } TGbl_sdioDllMstStatus;
    typedef union  TGbl_gfx3DDisRamClkGate
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_gfx3DDisRamClkGate;
                   };
                 } TGbl_gfx3DDisRamClkGate;
    typedef union  TGbl_DroEn
          { UNSG32 u32[2];
            struct {
            struct w32Gbl_DroEn;
            struct w32Gbl_DroEn1;
                   };
                 } TGbl_DroEn;
    typedef union  TGbl_DroShift
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_DroShift;
                   };
                 } TGbl_DroShift;
    typedef union  TGbl_DroStatus
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_DroStatus;
                   };
                 } TGbl_DroStatus;
    typedef union  TGbl_DroCounter
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_DroCounter;
                   };
                 } TGbl_DroCounter;
    typedef union  TGbl_gic400_ctrl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_gic400_ctrl;
                   };
                 } TGbl_gic400_ctrl;
    typedef union  TGbl_SPARE_CTRL_0
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SPARE_CTRL_0;
                   };
                 } TGbl_SPARE_CTRL_0;
    typedef union  TGbl_SPARE_CTRL_1
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SPARE_CTRL_1;
                   };
                 } TGbl_SPARE_CTRL_1;
    typedef union  TGbl_SPARE_CTRL_2
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SPARE_CTRL_2;
                   };
                 } TGbl_SPARE_CTRL_2;
    typedef union  TGbl_SPARE_CTRL_3
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SPARE_CTRL_3;
                   };
                 } TGbl_SPARE_CTRL_3;
    typedef union  TGbl_PadSelect
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_PadSelect;
                   };
                 } TGbl_PadSelect;
    typedef union  TGbl_DDC_PAD_CTRL
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_DDC_PAD_CTRL;
                   };
                 } TGbl_DDC_PAD_CTRL;
    typedef union  TGbl_pinMuxCntlBus
          { UNSG32 u32[4];
            struct {
            struct w32Gbl_pinMuxCntlBus;
            struct w32Gbl_pinMuxCntlBus1;
            struct w32Gbl_pinMuxCntlBus2;
            struct w32Gbl_pinMuxCntlBus3;
                   };
                 } TGbl_pinMuxCntlBus;
    typedef union  TGbl_URT0_RXDCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_URT0_RXDCntl;
                   };
                 } TGbl_URT0_RXDCntl;
    typedef union  TGbl_URT0_TXDCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_URT0_TXDCntl;
                   };
                 } TGbl_URT0_TXDCntl;
    typedef union  TGbl_SPI1_SS0nCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SPI1_SS0nCntl;
                   };
                 } TGbl_SPI1_SS0nCntl;
    typedef union  TGbl_SPI1_SS1nCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SPI1_SS1nCntl;
                   };
                 } TGbl_SPI1_SS1nCntl;
    typedef union  TGbl_SPI1_SS2nCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SPI1_SS2nCntl;
                   };
                 } TGbl_SPI1_SS2nCntl;
    typedef union  TGbl_SPI1_SCLKCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SPI1_SCLKCntl;
                   };
                 } TGbl_SPI1_SCLKCntl;
    typedef union  TGbl_SPI1_SDOCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SPI1_SDOCntl;
                   };
                 } TGbl_SPI1_SDOCntl;
    typedef union  TGbl_SPI1_SDICntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SPI1_SDICntl;
                   };
                 } TGbl_SPI1_SDICntl;
    typedef union  TGbl_USB1_DRV_VBUSCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_USB1_DRV_VBUSCntl;
                   };
                 } TGbl_USB1_DRV_VBUSCntl;
    typedef union  TGbl_NAND_IO0Cntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_IO0Cntl;
                   };
                 } TGbl_NAND_IO0Cntl;
    typedef union  TGbl_NAND_IO1Cntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_IO1Cntl;
                   };
                 } TGbl_NAND_IO1Cntl;
    typedef union  TGbl_NAND_IO2Cntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_IO2Cntl;
                   };
                 } TGbl_NAND_IO2Cntl;
    typedef union  TGbl_NAND_IO3Cntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_IO3Cntl;
                   };
                 } TGbl_NAND_IO3Cntl;
    typedef union  TGbl_NAND_IO4Cntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_IO4Cntl;
                   };
                 } TGbl_NAND_IO4Cntl;
    typedef union  TGbl_NAND_IO5Cntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_IO5Cntl;
                   };
                 } TGbl_NAND_IO5Cntl;
    typedef union  TGbl_NAND_IO6Cntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_IO6Cntl;
                   };
                 } TGbl_NAND_IO6Cntl;
    typedef union  TGbl_NAND_IO7Cntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_IO7Cntl;
                   };
                 } TGbl_NAND_IO7Cntl;
    typedef union  TGbl_NAND_ALECntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_ALECntl;
                   };
                 } TGbl_NAND_ALECntl;
    typedef union  TGbl_NAND_CLECntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_CLECntl;
                   };
                 } TGbl_NAND_CLECntl;
    typedef union  TGbl_NAND_WEnCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_WEnCntl;
                   };
                 } TGbl_NAND_WEnCntl;
    typedef union  TGbl_NAND_REnCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_REnCntl;
                   };
                 } TGbl_NAND_REnCntl;
    typedef union  TGbl_NAND_WPnCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_WPnCntl;
                   };
                 } TGbl_NAND_WPnCntl;
    typedef union  TGbl_NAND_CEnCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_CEnCntl;
                   };
                 } TGbl_NAND_CEnCntl;
    typedef union  TGbl_NAND_RDYCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_NAND_RDYCntl;
                   };
                 } TGbl_NAND_RDYCntl;
    typedef union  TGbl_SD0_CLKCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SD0_CLKCntl;
                   };
                 } TGbl_SD0_CLKCntl;
    typedef union  TGbl_SD0_DAT0Cntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SD0_DAT0Cntl;
                   };
                 } TGbl_SD0_DAT0Cntl;
    typedef union  TGbl_SD0_DAT1Cntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SD0_DAT1Cntl;
                   };
                 } TGbl_SD0_DAT1Cntl;
    typedef union  TGbl_SD0_DAT2Cntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SD0_DAT2Cntl;
                   };
                 } TGbl_SD0_DAT2Cntl;
    typedef union  TGbl_SD0_DAT3Cntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SD0_DAT3Cntl;
                   };
                 } TGbl_SD0_DAT3Cntl;
    typedef union  TGbl_SD0_CDnCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SD0_CDnCntl;
                   };
                 } TGbl_SD0_CDnCntl;
    typedef union  TGbl_SD0_CMDCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SD0_CMDCntl;
                   };
                 } TGbl_SD0_CMDCntl;
    typedef union  TGbl_SD0_WPCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_SD0_WPCntl;
                   };
                 } TGbl_SD0_WPCntl;
    typedef union  TGbl_STS0_CLKCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_STS0_CLKCntl;
                   };
                 } TGbl_STS0_CLKCntl;
    typedef union  TGbl_STS0_SOPCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_STS0_SOPCntl;
                   };
                 } TGbl_STS0_SOPCntl;
    typedef union  TGbl_STS0_VALDCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_STS0_VALDCntl;
                   };
                 } TGbl_STS0_VALDCntl;
    typedef union  TGbl_STS0_SDCntl
          { UNSG32 u32[1];
            struct {
            struct w32Gbl_STS0_SDCntl;
                   };
                 } TGbl_STS0_SDCntl;

    ///////////////////////////////////////////////////////////
     SIGN32 Gbl_drvrd(SIE_Gbl *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
     SIGN32 Gbl_drvwr(SIE_Gbl *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
       void Gbl_reset(SIE_Gbl *p);
     SIGN32 Gbl_cmp  (SIE_Gbl *p, SIE_Gbl *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
    #define Gbl_check(p,pie,pfx,hLOG) Gbl_cmp(p,pie,pfx,(void*)(hLOG),0,0)
    #define Gbl_print(p,    pfx,hLOG) Gbl_cmp(p,0,  pfx,(void*)(hLOG),0,0)

#endif
//////
/// ENDOFINTERFACE: Gbl
////////////////////////////////////////////////////////////



#ifdef __cplusplus
  }
#endif
#pragma  pack()

#endif
//////
/// ENDOFFILE: global.h
////////////////////////////////////////////////////////////

