#ifndef __gio_defs_h
#define __gio_defs_h

/*
 * This file is autogenerated from
 *   file:           gio.r
 * 
 *   by ../../../tools/rdesc/bin/rdes2c -outfile gio_defs.h gio.r
 * Any changes here will be lost.
 *
 * -*- buffer-read-only: t -*-
 */
/* Main access macros */
#ifndef REG_RD
#define REG_RD( scope, inst, reg ) \
  REG_READ( reg_##scope##_##reg, \
            (inst) + REG_RD_ADDR_##scope##_##reg )
#endif

#ifndef REG_WR
#define REG_WR( scope, inst, reg, val ) \
  REG_WRITE( reg_##scope##_##reg, \
             (inst) + REG_WR_ADDR_##scope##_##reg, (val) )
#endif

#ifndef REG_RD_VECT
#define REG_RD_VECT( scope, inst, reg, index ) \
  REG_READ( reg_##scope##_##reg, \
            (inst) + REG_RD_ADDR_##scope##_##reg + \
	    (index) * STRIDE_##scope##_##reg )
#endif

#ifndef REG_WR_VECT
#define REG_WR_VECT( scope, inst, reg, index, val ) \
  REG_WRITE( reg_##scope##_##reg, \
             (inst) + REG_WR_ADDR_##scope##_##reg + \
	     (index) * STRIDE_##scope##_##reg, (val) )
#endif

#ifndef REG_RD_INT
#define REG_RD_INT( scope, inst, reg ) \
  REG_READ( int, (inst) + REG_RD_ADDR_##scope##_##reg )
#endif

#ifndef REG_WR_INT
#define REG_WR_INT( scope, inst, reg, val ) \
  REG_WRITE( int, (inst) + REG_WR_ADDR_##scope##_##reg, (val) )
#endif

#ifndef REG_RD_INT_VECT
#define REG_RD_INT_VECT( scope, inst, reg, index ) \
  REG_READ( int, (inst) + REG_RD_ADDR_##scope##_##reg + \
	    (index) * STRIDE_##scope##_##reg )
#endif

#ifndef REG_WR_INT_VECT
#define REG_WR_INT_VECT( scope, inst, reg, index, val ) \
  REG_WRITE( int, (inst) + REG_WR_ADDR_##scope##_##reg + \
	     (index) * STRIDE_##scope##_##reg, (val) )
#endif

#ifndef REG_TYPE_CONV
#define REG_TYPE_CONV( type, orgtype, val ) \
  ( { union { orgtype o; type n; } r; r.o = val; r.n; } )
#endif

#ifndef reg_page_size
#define reg_page_size 8192
#endif

#ifndef REG_ADDR
#define REG_ADDR( scope, inst, reg ) \
  ( (inst) + REG_RD_ADDR_##scope##_##reg )
#endif

#ifndef REG_ADDR_VECT
#define REG_ADDR_VECT( scope, inst, reg, index ) \
  ( (inst) + REG_RD_ADDR_##scope##_##reg + \
    (index) * STRIDE_##scope##_##reg )
#endif

/* C-code for register scope gio */

/* Register r_pa_din, scope gio, type r */
typedef struct {
  unsigned int data : 32;
} reg_gio_r_pa_din;
#define REG_RD_ADDR_gio_r_pa_din 0

/* Register rw_pa_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 32;
} reg_gio_rw_pa_dout;
#define REG_RD_ADDR_gio_rw_pa_dout 4
#define REG_WR_ADDR_gio_rw_pa_dout 4

/* Register rw_pa_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 32;
} reg_gio_rw_pa_oe;
#define REG_RD_ADDR_gio_rw_pa_oe 8
#define REG_WR_ADDR_gio_rw_pa_oe 8

/* Register rw_pa_byte0_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pa_byte0_dout;
#define REG_RD_ADDR_gio_rw_pa_byte0_dout 12
#define REG_WR_ADDR_gio_rw_pa_byte0_dout 12

/* Register rw_pa_byte0_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pa_byte0_oe;
#define REG_RD_ADDR_gio_rw_pa_byte0_oe 16
#define REG_WR_ADDR_gio_rw_pa_byte0_oe 16

/* Register rw_pa_byte1_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pa_byte1_dout;
#define REG_RD_ADDR_gio_rw_pa_byte1_dout 20
#define REG_WR_ADDR_gio_rw_pa_byte1_dout 20

/* Register rw_pa_byte1_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pa_byte1_oe;
#define REG_RD_ADDR_gio_rw_pa_byte1_oe 24
#define REG_WR_ADDR_gio_rw_pa_byte1_oe 24

/* Register rw_pa_byte2_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pa_byte2_dout;
#define REG_RD_ADDR_gio_rw_pa_byte2_dout 28
#define REG_WR_ADDR_gio_rw_pa_byte2_dout 28

/* Register rw_pa_byte2_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pa_byte2_oe;
#define REG_RD_ADDR_gio_rw_pa_byte2_oe 32
#define REG_WR_ADDR_gio_rw_pa_byte2_oe 32

/* Register rw_pa_byte3_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pa_byte3_dout;
#define REG_RD_ADDR_gio_rw_pa_byte3_dout 36
#define REG_WR_ADDR_gio_rw_pa_byte3_dout 36

/* Register rw_pa_byte3_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pa_byte3_oe;
#define REG_RD_ADDR_gio_rw_pa_byte3_oe 40
#define REG_WR_ADDR_gio_rw_pa_byte3_oe 40

/* Register r_pb_din, scope gio, type r */
typedef struct {
  unsigned int data : 32;
} reg_gio_r_pb_din;
#define REG_RD_ADDR_gio_r_pb_din 44

/* Register rw_pb_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 32;
} reg_gio_rw_pb_dout;
#define REG_RD_ADDR_gio_rw_pb_dout 48
#define REG_WR_ADDR_gio_rw_pb_dout 48

/* Register rw_pb_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 32;
} reg_gio_rw_pb_oe;
#define REG_RD_ADDR_gio_rw_pb_oe 52
#define REG_WR_ADDR_gio_rw_pb_oe 52

/* Register rw_pb_byte0_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pb_byte0_dout;
#define REG_RD_ADDR_gio_rw_pb_byte0_dout 56
#define REG_WR_ADDR_gio_rw_pb_byte0_dout 56

/* Register rw_pb_byte0_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pb_byte0_oe;
#define REG_RD_ADDR_gio_rw_pb_byte0_oe 60
#define REG_WR_ADDR_gio_rw_pb_byte0_oe 60

/* Register rw_pb_byte1_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pb_byte1_dout;
#define REG_RD_ADDR_gio_rw_pb_byte1_dout 64
#define REG_WR_ADDR_gio_rw_pb_byte1_dout 64

/* Register rw_pb_byte1_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pb_byte1_oe;
#define REG_RD_ADDR_gio_rw_pb_byte1_oe 68
#define REG_WR_ADDR_gio_rw_pb_byte1_oe 68

/* Register rw_pb_byte2_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pb_byte2_dout;
#define REG_RD_ADDR_gio_rw_pb_byte2_dout 72
#define REG_WR_ADDR_gio_rw_pb_byte2_dout 72

/* Register rw_pb_byte2_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pb_byte2_oe;
#define REG_RD_ADDR_gio_rw_pb_byte2_oe 76
#define REG_WR_ADDR_gio_rw_pb_byte2_oe 76

/* Register rw_pb_byte3_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pb_byte3_dout;
#define REG_RD_ADDR_gio_rw_pb_byte3_dout 80
#define REG_WR_ADDR_gio_rw_pb_byte3_dout 80

/* Register rw_pb_byte3_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pb_byte3_oe;
#define REG_RD_ADDR_gio_rw_pb_byte3_oe 84
#define REG_WR_ADDR_gio_rw_pb_byte3_oe 84

/* Register r_pc_din, scope gio, type r */
typedef struct {
  unsigned int data : 16;
  unsigned int dummy1 : 16;
} reg_gio_r_pc_din;
#define REG_RD_ADDR_gio_r_pc_din 88

/* Register rw_pc_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 16;
  unsigned int dummy1 : 16;
} reg_gio_rw_pc_dout;
#define REG_RD_ADDR_gio_rw_pc_dout 92
#define REG_WR_ADDR_gio_rw_pc_dout 92

/* Register rw_pc_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 16;
  unsigned int dummy1 : 16;
} reg_gio_rw_pc_oe;
#define REG_RD_ADDR_gio_rw_pc_oe 96
#define REG_WR_ADDR_gio_rw_pc_oe 96

/* Register rw_pc_byte0_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pc_byte0_dout;
#define REG_RD_ADDR_gio_rw_pc_byte0_dout 100
#define REG_WR_ADDR_gio_rw_pc_byte0_dout 100

/* Register rw_pc_byte0_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pc_byte0_oe;
#define REG_RD_ADDR_gio_rw_pc_byte0_oe 104
#define REG_WR_ADDR_gio_rw_pc_byte0_oe 104

/* Register rw_pc_byte1_dout, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pc_byte1_dout;
#define REG_RD_ADDR_gio_rw_pc_byte1_dout 108
#define REG_WR_ADDR_gio_rw_pc_byte1_dout 108

/* Register rw_pc_byte1_oe, scope gio, type rw */
typedef struct {
  unsigned int oe : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pc_byte1_oe;
#define REG_RD_ADDR_gio_rw_pc_byte1_oe 112
#define REG_WR_ADDR_gio_rw_pc_byte1_oe 112

/* Register r_pd_din, scope gio, type r */
typedef struct {
  unsigned int data : 32;
} reg_gio_r_pd_din;
#define REG_RD_ADDR_gio_r_pd_din 116

/* Register rw_intr_cfg, scope gio, type rw */
typedef struct {
  unsigned int intr0 : 3;
  unsigned int intr1 : 3;
  unsigned int intr2 : 3;
  unsigned int intr3 : 3;
  unsigned int intr4 : 3;
  unsigned int intr5 : 3;
  unsigned int intr6 : 3;
  unsigned int intr7 : 3;
  unsigned int dummy1 : 8;
} reg_gio_rw_intr_cfg;
#define REG_RD_ADDR_gio_rw_intr_cfg 120
#define REG_WR_ADDR_gio_rw_intr_cfg 120

/* Register rw_intr_pins, scope gio, type rw */
typedef struct {
  unsigned int intr0 : 4;
  unsigned int intr1 : 4;
  unsigned int intr2 : 4;
  unsigned int intr3 : 4;
  unsigned int intr4 : 4;
  unsigned int intr5 : 4;
  unsigned int intr6 : 4;
  unsigned int intr7 : 4;
} reg_gio_rw_intr_pins;
#define REG_RD_ADDR_gio_rw_intr_pins 124
#define REG_WR_ADDR_gio_rw_intr_pins 124

/* Register rw_intr_mask, scope gio, type rw */
typedef struct {
  unsigned int intr0     : 1;
  unsigned int intr1     : 1;
  unsigned int intr2     : 1;
  unsigned int intr3     : 1;
  unsigned int intr4     : 1;
  unsigned int intr5     : 1;
  unsigned int intr6     : 1;
  unsigned int intr7     : 1;
  unsigned int i2c0_done : 1;
  unsigned int i2c1_done : 1;
  unsigned int dummy1    : 22;
} reg_gio_rw_intr_mask;
#define REG_RD_ADDR_gio_rw_intr_mask 128
#define REG_WR_ADDR_gio_rw_intr_mask 128

/* Register rw_ack_intr, scope gio, type rw */
typedef struct {
  unsigned int intr0     : 1;
  unsigned int intr1     : 1;
  unsigned int intr2     : 1;
  unsigned int intr3     : 1;
  unsigned int intr4     : 1;
  unsigned int intr5     : 1;
  unsigned int intr6     : 1;
  unsigned int intr7     : 1;
  unsigned int i2c0_done : 1;
  unsigned int i2c1_done : 1;
  unsigned int dummy1    : 22;
} reg_gio_rw_ack_intr;
#define REG_RD_ADDR_gio_rw_ack_intr 132
#define REG_WR_ADDR_gio_rw_ack_intr 132

/* Register r_intr, scope gio, type r */
typedef struct {
  unsigned int intr0     : 1;
  unsigned int intr1     : 1;
  unsigned int intr2     : 1;
  unsigned int intr3     : 1;
  unsigned int intr4     : 1;
  unsigned int intr5     : 1;
  unsigned int intr6     : 1;
  unsigned int intr7     : 1;
  unsigned int i2c0_done : 1;
  unsigned int i2c1_done : 1;
  unsigned int dummy1    : 22;
} reg_gio_r_intr;
#define REG_RD_ADDR_gio_r_intr 136

/* Register r_masked_intr, scope gio, type r */
typedef struct {
  unsigned int intr0     : 1;
  unsigned int intr1     : 1;
  unsigned int intr2     : 1;
  unsigned int intr3     : 1;
  unsigned int intr4     : 1;
  unsigned int intr5     : 1;
  unsigned int intr6     : 1;
  unsigned int intr7     : 1;
  unsigned int i2c0_done : 1;
  unsigned int i2c1_done : 1;
  unsigned int dummy1    : 22;
} reg_gio_r_masked_intr;
#define REG_RD_ADDR_gio_r_masked_intr 140

/* Register rw_i2c0_start, scope gio, type rw */
typedef struct {
  unsigned int run : 1;
  unsigned int dummy1 : 31;
} reg_gio_rw_i2c0_start;
#define REG_RD_ADDR_gio_rw_i2c0_start 144
#define REG_WR_ADDR_gio_rw_i2c0_start 144

/* Register rw_i2c0_cfg, scope gio, type rw */
typedef struct {
  unsigned int en        : 1;
  unsigned int bit_order : 1;
  unsigned int scl_io    : 1;
  unsigned int scl_inv   : 1;
  unsigned int sda_io    : 1;
  unsigned int sda_idle  : 1;
  unsigned int dummy1    : 26;
} reg_gio_rw_i2c0_cfg;
#define REG_RD_ADDR_gio_rw_i2c0_cfg 148
#define REG_WR_ADDR_gio_rw_i2c0_cfg 148

/* Register rw_i2c0_ctrl, scope gio, type rw */
typedef struct {
  unsigned int trf_bits    : 6;
  unsigned int switch_dir  : 6;
  unsigned int extra_start : 3;
  unsigned int early_end   : 1;
  unsigned int start_stop  : 1;
  unsigned int ack_dir0    : 1;
  unsigned int ack_dir1    : 1;
  unsigned int ack_dir2    : 1;
  unsigned int ack_dir3    : 1;
  unsigned int ack_dir4    : 1;
  unsigned int ack_dir5    : 1;
  unsigned int ack_bit     : 1;
  unsigned int start_bit   : 1;
  unsigned int freq        : 2;
  unsigned int dummy1      : 5;
} reg_gio_rw_i2c0_ctrl;
#define REG_RD_ADDR_gio_rw_i2c0_ctrl 152
#define REG_WR_ADDR_gio_rw_i2c0_ctrl 152

/* Register rw_i2c0_data, scope gio, type rw */
typedef struct {
  unsigned int data0 : 8;
  unsigned int data1 : 8;
  unsigned int data2 : 8;
  unsigned int data3 : 8;
} reg_gio_rw_i2c0_data;
#define REG_RD_ADDR_gio_rw_i2c0_data 156
#define REG_WR_ADDR_gio_rw_i2c0_data 156

/* Register rw_i2c0_data2, scope gio, type rw */
typedef struct {
  unsigned int data4     : 8;
  unsigned int data5     : 8;
  unsigned int start_val : 6;
  unsigned int ack_val   : 6;
  unsigned int dummy1    : 4;
} reg_gio_rw_i2c0_data2;
#define REG_RD_ADDR_gio_rw_i2c0_data2 160
#define REG_WR_ADDR_gio_rw_i2c0_data2 160

/* Register rw_i2c1_start, scope gio, type rw */
typedef struct {
  unsigned int run : 1;
  unsigned int dummy1 : 31;
} reg_gio_rw_i2c1_start;
#define REG_RD_ADDR_gio_rw_i2c1_start 164
#define REG_WR_ADDR_gio_rw_i2c1_start 164

/* Register rw_i2c1_cfg, scope gio, type rw */
typedef struct {
  unsigned int en        : 1;
  unsigned int bit_order : 1;
  unsigned int scl_io    : 1;
  unsigned int scl_inv   : 1;
  unsigned int sda0_io   : 1;
  unsigned int sda0_idle : 1;
  unsigned int sda1_io   : 1;
  unsigned int sda1_idle : 1;
  unsigned int sda2_io   : 1;
  unsigned int sda2_idle : 1;
  unsigned int sda3_io   : 1;
  unsigned int sda3_idle : 1;
  unsigned int sda_sel   : 2;
  unsigned int sen_idle  : 1;
  unsigned int sen_inv   : 1;
  unsigned int sen_sel   : 2;
  unsigned int dummy1    : 14;
} reg_gio_rw_i2c1_cfg;
#define REG_RD_ADDR_gio_rw_i2c1_cfg 168
#define REG_WR_ADDR_gio_rw_i2c1_cfg 168

/* Register rw_i2c1_ctrl, scope gio, type rw */
typedef struct {
  unsigned int trf_bits    : 6;
  unsigned int switch_dir  : 6;
  unsigned int extra_start : 3;
  unsigned int early_end   : 1;
  unsigned int start_stop  : 1;
  unsigned int ack_dir0    : 1;
  unsigned int ack_dir1    : 1;
  unsigned int ack_dir2    : 1;
  unsigned int ack_dir3    : 1;
  unsigned int ack_dir4    : 1;
  unsigned int ack_dir5    : 1;
  unsigned int ack_bit     : 1;
  unsigned int start_bit   : 1;
  unsigned int freq        : 2;
  unsigned int dummy1      : 5;
} reg_gio_rw_i2c1_ctrl;
#define REG_RD_ADDR_gio_rw_i2c1_ctrl 172
#define REG_WR_ADDR_gio_rw_i2c1_ctrl 172

/* Register rw_i2c1_data, scope gio, type rw */
typedef struct {
  unsigned int data0 : 8;
  unsigned int data1 : 8;
  unsigned int data2 : 8;
  unsigned int data3 : 8;
} reg_gio_rw_i2c1_data;
#define REG_RD_ADDR_gio_rw_i2c1_data 176
#define REG_WR_ADDR_gio_rw_i2c1_data 176

/* Register rw_i2c1_data2, scope gio, type rw */
typedef struct {
  unsigned int data4     : 8;
  unsigned int data5     : 8;
  unsigned int start_val : 6;
  unsigned int ack_val   : 6;
  unsigned int dummy1    : 4;
} reg_gio_rw_i2c1_data2;
#define REG_RD_ADDR_gio_rw_i2c1_data2 180
#define REG_WR_ADDR_gio_rw_i2c1_data2 180

/* Register r_ppwm_stat, scope gio, type r */
typedef struct {
  unsigned int freq : 2;
  unsigned int dummy1 : 30;
} reg_gio_r_ppwm_stat;
#define REG_RD_ADDR_gio_r_ppwm_stat 184

/* Register rw_ppwm_data, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_ppwm_data;
#define REG_RD_ADDR_gio_rw_ppwm_data 188
#define REG_WR_ADDR_gio_rw_ppwm_data 188

/* Register rw_pwm0_ctrl, scope gio, type rw */
typedef struct {
  unsigned int mode         : 2;
  unsigned int ccd_override : 1;
  unsigned int ccd_val      : 1;
  unsigned int dummy1       : 28;
} reg_gio_rw_pwm0_ctrl;
#define REG_RD_ADDR_gio_rw_pwm0_ctrl 192
#define REG_WR_ADDR_gio_rw_pwm0_ctrl 192

/* Register rw_pwm0_var, scope gio, type rw */
typedef struct {
  unsigned int lo : 13;
  unsigned int hi : 13;
  unsigned int dummy1 : 6;
} reg_gio_rw_pwm0_var;
#define REG_RD_ADDR_gio_rw_pwm0_var 196
#define REG_WR_ADDR_gio_rw_pwm0_var 196

/* Register rw_pwm0_data, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pwm0_data;
#define REG_RD_ADDR_gio_rw_pwm0_data 200
#define REG_WR_ADDR_gio_rw_pwm0_data 200

/* Register rw_pwm1_ctrl, scope gio, type rw */
typedef struct {
  unsigned int mode         : 2;
  unsigned int ccd_override : 1;
  unsigned int ccd_val      : 1;
  unsigned int dummy1       : 28;
} reg_gio_rw_pwm1_ctrl;
#define REG_RD_ADDR_gio_rw_pwm1_ctrl 204
#define REG_WR_ADDR_gio_rw_pwm1_ctrl 204

/* Register rw_pwm1_var, scope gio, type rw */
typedef struct {
  unsigned int lo : 13;
  unsigned int hi : 13;
  unsigned int dummy1 : 6;
} reg_gio_rw_pwm1_var;
#define REG_RD_ADDR_gio_rw_pwm1_var 208
#define REG_WR_ADDR_gio_rw_pwm1_var 208

/* Register rw_pwm1_data, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pwm1_data;
#define REG_RD_ADDR_gio_rw_pwm1_data 212
#define REG_WR_ADDR_gio_rw_pwm1_data 212

/* Register rw_pwm2_ctrl, scope gio, type rw */
typedef struct {
  unsigned int mode         : 2;
  unsigned int ccd_override : 1;
  unsigned int ccd_val      : 1;
  unsigned int dummy1       : 28;
} reg_gio_rw_pwm2_ctrl;
#define REG_RD_ADDR_gio_rw_pwm2_ctrl 216
#define REG_WR_ADDR_gio_rw_pwm2_ctrl 216

/* Register rw_pwm2_var, scope gio, type rw */
typedef struct {
  unsigned int lo : 13;
  unsigned int hi : 13;
  unsigned int dummy1 : 6;
} reg_gio_rw_pwm2_var;
#define REG_RD_ADDR_gio_rw_pwm2_var 220
#define REG_WR_ADDR_gio_rw_pwm2_var 220

/* Register rw_pwm2_data, scope gio, type rw */
typedef struct {
  unsigned int data : 8;
  unsigned int dummy1 : 24;
} reg_gio_rw_pwm2_data;
#define REG_RD_ADDR_gio_rw_pwm2_data 224
#define REG_WR_ADDR_gio_rw_pwm2_data 224

/* Register rw_pwm_in_cfg, scope gio, type rw */
typedef struct {
  unsigned int pin : 3;
  unsigned int dummy1 : 29;
} reg_gio_rw_pwm_in_cfg;
#define REG_RD_ADDR_gio_rw_pwm_in_cfg 228
#define REG_WR_ADDR_gio_rw_pwm_in_cfg 228

/* Register r_pwm_in_lo, scope gio, type r */
typedef struct {
  unsigned int data : 32;
} reg_gio_r_pwm_in_lo;
#define REG_RD_ADDR_gio_r_pwm_in_lo 232

/* Register r_pwm_in_hi, scope gio, type r */
typedef struct {
  unsigned int data : 32;
} reg_gio_r_pwm_in_hi;
#define REG_RD_ADDR_gio_r_pwm_in_hi 236

/* Register r_pwm_in_cnt, scope gio, type r */
typedef struct {
  unsigned int data : 32;
} reg_gio_r_pwm_in_cnt;
#define REG_RD_ADDR_gio_r_pwm_in_cnt 240


/* Constants */
enum {
  regk_gio_anyedge                         = 0x00000007,
  regk_gio_f100k                           = 0x00000000,
  regk_gio_f1562                           = 0x00000000,
  regk_gio_f195                            = 0x00000003,
  regk_gio_f1m                             = 0x00000002,
  regk_gio_f390                            = 0x00000002,
  regk_gio_f400k                           = 0x00000001,
  regk_gio_f5m                             = 0x00000003,
  regk_gio_f781                            = 0x00000001,
  regk_gio_hi                              = 0x00000001,
  regk_gio_in                              = 0x00000000,
  regk_gio_intr_pa0                        = 0x00000000,
  regk_gio_intr_pa1                        = 0x00000000,
  regk_gio_intr_pa10                       = 0x00000001,
  regk_gio_intr_pa11                       = 0x00000001,
  regk_gio_intr_pa12                       = 0x00000001,
  regk_gio_intr_pa13                       = 0x00000001,
  regk_gio_intr_pa14                       = 0x00000001,
  regk_gio_intr_pa15                       = 0x00000001,
  regk_gio_intr_pa16                       = 0x00000002,
  regk_gio_intr_pa17                       = 0x00000002,
  regk_gio_intr_pa18                       = 0x00000002,
  regk_gio_intr_pa19                       = 0x00000002,
  regk_gio_intr_pa2                        = 0x00000000,
  regk_gio_intr_pa20                       = 0x00000002,
  regk_gio_intr_pa21                       = 0x00000002,
  regk_gio_intr_pa22                       = 0x00000002,
  regk_gio_intr_pa23                       = 0x00000002,
  regk_gio_intr_pa24                       = 0x00000003,
  regk_gio_intr_pa25                       = 0x00000003,
  regk_gio_intr_pa26                       = 0x00000003,
  regk_gio_intr_pa27                       = 0x00000003,
  regk_gio_intr_pa28                       = 0x00000003,
  regk_gio_intr_pa29                       = 0x00000003,
  regk_gio_intr_pa3                        = 0x00000000,
  regk_gio_intr_pa30                       = 0x00000003,
  regk_gio_intr_pa31                       = 0x00000003,
  regk_gio_intr_pa4                        = 0x00000000,
  regk_gio_intr_pa5                        = 0x00000000,
  regk_gio_intr_pa6                        = 0x00000000,
  regk_gio_intr_pa7                        = 0x00000000,
  regk_gio_intr_pa8                        = 0x00000001,
  regk_gio_intr_pa9                        = 0x00000001,
  regk_gio_intr_pb0                        = 0x00000004,
  regk_gio_intr_pb1                        = 0x00000004,
  regk_gio_intr_pb10                       = 0x00000005,
  regk_gio_intr_pb11                       = 0x00000005,
  regk_gio_intr_pb12                       = 0x00000005,
  regk_gio_intr_pb13                       = 0x00000005,
  regk_gio_intr_pb14                       = 0x00000005,
  regk_gio_intr_pb15                       = 0x00000005,
  regk_gio_intr_pb16                       = 0x00000006,
  regk_gio_intr_pb17                       = 0x00000006,
  regk_gio_intr_pb18                       = 0x00000006,
  regk_gio_intr_pb19                       = 0x00000006,
  regk_gio_intr_pb2                        = 0x00000004,
  regk_gio_intr_pb20                       = 0x00000006,
  regk_gio_intr_pb21                       = 0x00000006,
  regk_gio_intr_pb22                       = 0x00000006,
  regk_gio_intr_pb23                       = 0x00000006,
  regk_gio_intr_pb24                       = 0x00000007,
  regk_gio_intr_pb25                       = 0x00000007,
  regk_gio_intr_pb26                       = 0x00000007,
  regk_gio_intr_pb27                       = 0x00000007,
  regk_gio_intr_pb28                       = 0x00000007,
  regk_gio_intr_pb29                       = 0x00000007,
  regk_gio_intr_pb3                        = 0x00000004,
  regk_gio_intr_pb30                       = 0x00000007,
  regk_gio_intr_pb31                       = 0x00000007,
  regk_gio_intr_pb4                        = 0x00000004,
  regk_gio_intr_pb5                        = 0x00000004,
  regk_gio_intr_pb6                        = 0x00000004,
  regk_gio_intr_pb7                        = 0x00000004,
  regk_gio_intr_pb8                        = 0x00000005,
  regk_gio_intr_pb9                        = 0x00000005,
  regk_gio_intr_pc0                        = 0x00000008,
  regk_gio_intr_pc1                        = 0x00000008,
  regk_gio_intr_pc10                       = 0x00000009,
  regk_gio_intr_pc11                       = 0x00000009,
  regk_gio_intr_pc12                       = 0x00000009,
  regk_gio_intr_pc13                       = 0x00000009,
  regk_gio_intr_pc14                       = 0x00000009,
  regk_gio_intr_pc15                       = 0x00000009,
  regk_gio_intr_pc2                        = 0x00000008,
  regk_gio_intr_pc3                        = 0x00000008,
  regk_gio_intr_pc4                        = 0x00000008,
  regk_gio_intr_pc5                        = 0x00000008,
  regk_gio_intr_pc6                        = 0x00000008,
  regk_gio_intr_pc7                        = 0x00000008,
  regk_gio_intr_pc8                        = 0x00000009,
  regk_gio_intr_pc9                        = 0x00000009,
  regk_gio_intr_pd0                        = 0x0000000c,
  regk_gio_intr_pd1                        = 0x0000000c,
  regk_gio_intr_pd10                       = 0x0000000d,
  regk_gio_intr_pd11                       = 0x0000000d,
  regk_gio_intr_pd12                       = 0x0000000d,
  regk_gio_intr_pd13                       = 0x0000000d,
  regk_gio_intr_pd14                       = 0x0000000d,
  regk_gio_intr_pd15                       = 0x0000000d,
  regk_gio_intr_pd16                       = 0x0000000e,
  regk_gio_intr_pd17                       = 0x0000000e,
  regk_gio_intr_pd18                       = 0x0000000e,
  regk_gio_intr_pd19                       = 0x0000000e,
  regk_gio_intr_pd2                        = 0x0000000c,
  regk_gio_intr_pd20                       = 0x0000000e,
  regk_gio_intr_pd21                       = 0x0000000e,
  regk_gio_intr_pd22                       = 0x0000000e,
  regk_gio_intr_pd23                       = 0x0000000e,
  regk_gio_intr_pd24                       = 0x0000000f,
  regk_gio_intr_pd25                       = 0x0000000f,
  regk_gio_intr_pd26                       = 0x0000000f,
  regk_gio_intr_pd27                       = 0x0000000f,
  regk_gio_intr_pd28                       = 0x0000000f,
  regk_gio_intr_pd29                       = 0x0000000f,
  regk_gio_intr_pd3                        = 0x0000000c,
  regk_gio_intr_pd30                       = 0x0000000f,
  regk_gio_intr_pd31                       = 0x0000000f,
  regk_gio_intr_pd4                        = 0x0000000c,
  regk_gio_intr_pd5                        = 0x0000000c,
  regk_gio_intr_pd6                        = 0x0000000c,
  regk_gio_intr_pd7                        = 0x0000000c,
  regk_gio_intr_pd8                        = 0x0000000d,
  regk_gio_intr_pd9                        = 0x0000000d,
  regk_gio_lo                              = 0x00000002,
  regk_gio_lsb                             = 0x00000000,
  regk_gio_msb                             = 0x00000001,
  regk_gio_negedge                         = 0x00000006,
  regk_gio_no                              = 0x00000000,
  regk_gio_no_switch                       = 0x0000003f,
  regk_gio_none                            = 0x00000007,
  regk_gio_off                             = 0x00000000,
  regk_gio_opendrain                       = 0x00000000,
  regk_gio_out                             = 0x00000001,
  regk_gio_posedge                         = 0x00000005,
  regk_gio_pwm_hfp                         = 0x00000002,
  regk_gio_pwm_pa0                         = 0x00000001,
  regk_gio_pwm_pa19                        = 0x00000004,
  regk_gio_pwm_pa6                         = 0x00000002,
  regk_gio_pwm_pa7                         = 0x00000003,
  regk_gio_pwm_pb26                        = 0x00000005,
  regk_gio_pwm_pd23                        = 0x00000006,
  regk_gio_pwm_pd31                        = 0x00000007,
  regk_gio_pwm_std                         = 0x00000001,
  regk_gio_pwm_var                         = 0x00000003,
  regk_gio_rw_i2c0_cfg_default             = 0x00000020,
  regk_gio_rw_i2c0_ctrl_default            = 0x00010000,
  regk_gio_rw_i2c0_start_default           = 0x00000000,
  regk_gio_rw_i2c1_cfg_default             = 0x00000aa0,
  regk_gio_rw_i2c1_ctrl_default            = 0x00010000,
  regk_gio_rw_i2c1_start_default           = 0x00000000,
  regk_gio_rw_intr_cfg_default             = 0x00000000,
  regk_gio_rw_intr_mask_default            = 0x00000000,
  regk_gio_rw_pa_oe_default                = 0x00000000,
  regk_gio_rw_pb_oe_default                = 0x00000000,
  regk_gio_rw_pc_oe_default                = 0x00000000,
  regk_gio_rw_ppwm_data_default            = 0x00000000,
  regk_gio_rw_pwm0_ctrl_default            = 0x00000000,
  regk_gio_rw_pwm1_ctrl_default            = 0x00000000,
  regk_gio_rw_pwm2_ctrl_default            = 0x00000000,
  regk_gio_rw_pwm_in_cfg_default           = 0x00000000,
  regk_gio_sda0                            = 0x00000000,
  regk_gio_sda1                            = 0x00000001,
  regk_gio_sda2                            = 0x00000002,
  regk_gio_sda3                            = 0x00000003,
  regk_gio_sen                             = 0x00000000,
  regk_gio_set                             = 0x00000003,
  regk_gio_yes                             = 0x00000001
};
#endif /* __gio_defs_h */
