fpga: x400: Add GPIO control via ATR and DB state
Original-commit: 9335939b9b3ab85cee5908ff3357f9e7819e3366
This commit is contained in:
committed by
Wade Fife
parent
4edae39d9e
commit
962d01e583
@@ -15,11 +15,26 @@
|
||||
// DIO_DIRECTION_REGISTER : 0x4 (x4xx_dio.v)
|
||||
// DIO_INPUT_REGISTER : 0x8 (x4xx_dio.v)
|
||||
// DIO_OUTPUT_REGISTER : 0xC (x4xx_dio.v)
|
||||
// DIO_SOURCE_REGISTER : 0x10 (x4xx_dio.v)
|
||||
// RADIO_SOURCE_REGISTER : 0x14 (x4xx_dio.v)
|
||||
// INTERFACE_DIO_SELECT : 0x18 (x4xx_dio.v)
|
||||
// DIO_OVERRIDE : 0x1C (x4xx_dio.v)
|
||||
// SW_DIO_CONTROL : 0x20 (x4xx_dio.v)
|
||||
|
||||
//===============================================================================
|
||||
// RegTypes
|
||||
//===============================================================================
|
||||
|
||||
// DIO_CONTROL_REG Type (from x4xx_dio.v)
|
||||
localparam DIO_CONTROL_REG_SIZE = 32;
|
||||
localparam DIO_CONTROL_REG_MASK = 32'hFFF0FFF;
|
||||
localparam DIO_PORT_A_SIZE = 12; //DIO_CONTROL_REG:DIO_PORT_A
|
||||
localparam DIO_PORT_A_MSB = 11; //DIO_CONTROL_REG:DIO_PORT_A
|
||||
localparam DIO_PORT_A = 0; //DIO_CONTROL_REG:DIO_PORT_A
|
||||
localparam DIO_PORT_B_SIZE = 12; //DIO_CONTROL_REG:DIO_PORT_B
|
||||
localparam DIO_PORT_B_MSB = 27; //DIO_CONTROL_REG:DIO_PORT_B
|
||||
localparam DIO_PORT_B = 16; //DIO_CONTROL_REG:DIO_PORT_B
|
||||
|
||||
//===============================================================================
|
||||
// Register Group DIO_REGS
|
||||
//===============================================================================
|
||||
@@ -27,43 +42,35 @@
|
||||
// DIO_MASTER_REGISTER Register (from x4xx_dio.v)
|
||||
localparam DIO_MASTER_REGISTER = 'h0; // Register Offset
|
||||
localparam DIO_MASTER_REGISTER_SIZE = 32; // register width in bits
|
||||
localparam DIO_MASTER_REGISTER_MASK = 32'hFFF0FFF;
|
||||
localparam DIO_MASTER_A_SIZE = 12; //DIO_MASTER_REGISTER:DIO_MASTER_A
|
||||
localparam DIO_MASTER_A_MSB = 11; //DIO_MASTER_REGISTER:DIO_MASTER_A
|
||||
localparam DIO_MASTER_A = 0; //DIO_MASTER_REGISTER:DIO_MASTER_A
|
||||
localparam DIO_MASTER_B_SIZE = 12; //DIO_MASTER_REGISTER:DIO_MASTER_B
|
||||
localparam DIO_MASTER_B_MSB = 27; //DIO_MASTER_REGISTER:DIO_MASTER_B
|
||||
localparam DIO_MASTER_B = 16; //DIO_MASTER_REGISTER:DIO_MASTER_B
|
||||
|
||||
// DIO_DIRECTION_REGISTER Register (from x4xx_dio.v)
|
||||
localparam DIO_DIRECTION_REGISTER = 'h4; // Register Offset
|
||||
localparam DIO_DIRECTION_REGISTER_SIZE = 32; // register width in bits
|
||||
localparam DIO_DIRECTION_REGISTER_MASK = 32'hFFF0FFF;
|
||||
localparam DIO_DIRECTION_A_SIZE = 12; //DIO_DIRECTION_REGISTER:DIO_DIRECTION_A
|
||||
localparam DIO_DIRECTION_A_MSB = 11; //DIO_DIRECTION_REGISTER:DIO_DIRECTION_A
|
||||
localparam DIO_DIRECTION_A = 0; //DIO_DIRECTION_REGISTER:DIO_DIRECTION_A
|
||||
localparam DIO_DIRECTION_B_SIZE = 12; //DIO_DIRECTION_REGISTER:DIO_DIRECTION_B
|
||||
localparam DIO_DIRECTION_B_MSB = 27; //DIO_DIRECTION_REGISTER:DIO_DIRECTION_B
|
||||
localparam DIO_DIRECTION_B = 16; //DIO_DIRECTION_REGISTER:DIO_DIRECTION_B
|
||||
|
||||
// DIO_INPUT_REGISTER Register (from x4xx_dio.v)
|
||||
localparam DIO_INPUT_REGISTER = 'h8; // Register Offset
|
||||
localparam DIO_INPUT_REGISTER_SIZE = 32; // register width in bits
|
||||
localparam DIO_INPUT_REGISTER_MASK = 32'hFFF0FFF;
|
||||
localparam DIO_INPUT_A_SIZE = 12; //DIO_INPUT_REGISTER:DIO_INPUT_A
|
||||
localparam DIO_INPUT_A_MSB = 11; //DIO_INPUT_REGISTER:DIO_INPUT_A
|
||||
localparam DIO_INPUT_A = 0; //DIO_INPUT_REGISTER:DIO_INPUT_A
|
||||
localparam DIO_INPUT_B_SIZE = 12; //DIO_INPUT_REGISTER:DIO_INPUT_B
|
||||
localparam DIO_INPUT_B_MSB = 27; //DIO_INPUT_REGISTER:DIO_INPUT_B
|
||||
localparam DIO_INPUT_B = 16; //DIO_INPUT_REGISTER:DIO_INPUT_B
|
||||
|
||||
// DIO_OUTPUT_REGISTER Register (from x4xx_dio.v)
|
||||
localparam DIO_OUTPUT_REGISTER = 'hC; // Register Offset
|
||||
localparam DIO_OUTPUT_REGISTER_SIZE = 32; // register width in bits
|
||||
localparam DIO_OUTPUT_REGISTER_MASK = 32'hFFF0FFF;
|
||||
localparam DIO_OUTPUT_A_SIZE = 12; //DIO_OUTPUT_REGISTER:DIO_OUTPUT_A
|
||||
localparam DIO_OUTPUT_A_MSB = 11; //DIO_OUTPUT_REGISTER:DIO_OUTPUT_A
|
||||
localparam DIO_OUTPUT_A = 0; //DIO_OUTPUT_REGISTER:DIO_OUTPUT_A
|
||||
localparam DIO_OUTPUT_B_SIZE = 12; //DIO_OUTPUT_REGISTER:DIO_OUTPUT_B
|
||||
localparam DIO_OUTPUT_B_MSB = 27; //DIO_OUTPUT_REGISTER:DIO_OUTPUT_B
|
||||
localparam DIO_OUTPUT_B = 16; //DIO_OUTPUT_REGISTER:DIO_OUTPUT_B
|
||||
|
||||
// DIO_SOURCE_REGISTER Register (from x4xx_dio.v)
|
||||
localparam DIO_SOURCE_REGISTER = 'h10; // Register Offset
|
||||
localparam DIO_SOURCE_REGISTER_SIZE = 32; // register width in bits
|
||||
|
||||
// RADIO_SOURCE_REGISTER Register (from x4xx_dio.v)
|
||||
localparam RADIO_SOURCE_REGISTER = 'h14; // Register Offset
|
||||
localparam RADIO_SOURCE_REGISTER_SIZE = 32; // register width in bits
|
||||
|
||||
// INTERFACE_DIO_SELECT Register (from x4xx_dio.v)
|
||||
localparam INTERFACE_DIO_SELECT = 'h18; // Register Offset
|
||||
localparam INTERFACE_DIO_SELECT_SIZE = 32; // register width in bits
|
||||
|
||||
// DIO_OVERRIDE Register (from x4xx_dio.v)
|
||||
localparam DIO_OVERRIDE = 'h1C; // Register Offset
|
||||
localparam DIO_OVERRIDE_SIZE = 32; // register width in bits
|
||||
|
||||
// SW_DIO_CONTROL Register (from x4xx_dio.v)
|
||||
localparam SW_DIO_CONTROL = 'h20; // Register Offset
|
||||
localparam SW_DIO_CONTROL_SIZE = 32; // register width in bits
|
||||
|
||||
Reference in New Issue
Block a user