/****************************************************************************** * Filename: hw_adi.h * Revised: 2015-01-13 16:59:55 +0100 (Tue, 13 Jan 2015) * Revision: 42365 * * Copyright (c) 2015 - 2017, Texas Instruments Incorporated * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1) Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2) Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * 3) Neither the name of the ORGANIZATION nor the names of its contributors may * be used to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * ******************************************************************************/ #ifndef __HW_ADI_H__ #define __HW_ADI_H__ //***************************************************************************** // // This file contains macros for controlling the ADI master and // accessing ADI slave registers via the ADI Master. // There are 3 categories of macros in this file: // - macros that provide an offset to a register // located within the DDI Master itself. // - macros that define bits or bitfields // within the DDI Master Registers. // - macros that provide an "instruction offset" // that are used when accessing a ADI Slave. // // The macros that that provide ADI Master register offsets and // define bits and bitfields for those registers are the typical // macros that appear in most hw_.h header files. In // the following example ADI_O_SLAVECONF is a macro for a // register offset and ADI_SLAVECONF_WAITFORACK is a macro for // a bit in that register. This example code will set the WAITFORACK // bit in register ADI_O_SLAVECONF of the ADI Master. (Note: this // access the Master not the Slave). // // HWREG(ADI3_BASE + ADI_O_SLAVECONF) |= ADI_SLAVECONF_WAITFORACK; // // The "instruction offset" macros are used to pass an instruction to // the ADI Master when accessing ADI slave registers. These macros are // only used when accessing ADI Slave Registers. (Remember ADI // Master Registers are accessed normally). // // The instructions supported when accessing an ADI Slave Register follow: // - Direct Access to an ADI Slave register. I.e. read or // write the register. // - Set the specified bits in a ADI Slave register. // - Clear the specified bits in a ADI Slave register. // - Mask write of 4 bits to the a ADI Slave register. // - Mask write of 8 bits to the a ADI Slave register. // - Mask write of 16 bits to the a ADI Slave register. // // Note: only the "Direct Access" offset should be used when reading // a ADI Slave register. Only 4-bit reads are supported and 8 bits write are // supported natively. If accessing wider bitfields, the read/write operation // will be spread out over a number of transactions. This is hidden for the // user, but can potentially be very timeconsuming. Especially of running // on a slow clock. // // The generic format of using these macros for a read follows: // // Read low 8-bits in ADI_SLAVE_OFF // myushortvar = HWREGB(ADI_MASTER_BASE + ADI_SLAVE_OFF + ADI_O_DIR); // // // Read high 8-bits in ADI_SLAVE_OFF (data[31:16]) // myushortvar = HWREGB(ADI_MASTER_BASE + ADI_SLAVE_OFF + ADI_O_DIR); // // Notes: In the above example: // - ADI_MASTER_BASE is the base address of the ADI Master defined // in the hw_memmap.h header file. // - ADI_SLAVE_OFF is the ADI Slave offset defined in the // hw_.h header file (e.g. hw_adi_3_refsys_top.h for the refsys // module). // - ADI_O_DIR is the "instruction offset" macro defined in this // file that specifies the Direct Access instruction. // // Writes can use any of the "instruction macros". // The following examples do a "direct write" to an ADI Slave register // ADI_SLAVE_OFF using different size operands: // // // ---------- DIRECT WRITES ---------- // // Write 32-bits aligned // HWREG(ADI_MASTER_BASE + ADI_SLAVE_OFF + ADI_O_DIR) = 0x12345678; // // // Write 16-bits aligned to high 16-bits then low 16-bits // // Add 2 to get to high 16-bits. // HWREGH(ADI_MASTER_BASE + ADI_SLAVE_OFF + ADI_O_DIR + 2) = 0xabcd; // HWREGH(ADI_MASTER_BASE + ADI_SLAVE_OFF + ADI_O_DIR) = 0xef01; // // // Write each byte at ADI_SLAVE_OFF, one at a time. // // Add 1,2,or 3 to get to bytes 1,2, or 3. // HWREGB(ADI_MASTER_BASE + ADI_SLAVE_OFF + ADI_O_DIR) = 0x33; // HWREGB(ADI_MASTER_BASE + ADI_SLAVE_OFF + ADI_O_DIR + 1) = 0x44; // HWREGB(ADI_MASTER_BASE + ADI_SLAVE_OFF + ADI_O_DIR + 2) = 0x55; // HWREGB(ADI_MASTER_BASE + ADI_SLAVE_OFF + ADI_O_DIR + 3) = 0x66; // // // ---------- SET/CLR ---------- // The set and clear functions behave similarly to eachother. Each // can be performed on an 8-, 16-, or 32-bit operand. // Examples follow: // // Set all odd bits in a 32-bit words // HWREG(ADI_MASTER_BASE + ADI_SLAVE_OFF + ADI_O_SET) = 0xaaaaaaaa; // // // Clear all bits in byte 2 (data[23:16]) using 32-bit operand // HWREG(DDI_MASTER_BASE + ADI_SLAVE_OFF + ADI_O_CLR) = 0x00ff0000; // // // Set even bits in byte 2 (data[23:16]) using 8-bit operand // HWREGB(ADI_MASTER_BASE + ADI_SLAVE_OFF + 2 + ADI_O_CLR) = 0x55; // // // ---------- MASKED WRITES ---------- // The mask writes are a bit different. They operate on nibbles, // bytes, and 16-bit elements. Two operands are required; a 'mask' // and 'data'; The operands are concatenated and written to the master. // e.g. the mask and data are combined as follows for a 16 bit masked // write: // (mask << 16) | data; // Examples follow: // // // Do an 4 bit masked write (Nibble) of 7 to data[3:0]). // // Byte write is needed. // HWREGB(ADI_MASTER_BASE + ADI_SLAVE_OFF + ADI_O_MASK4B01) = 0xf7; // // // Do an 4 bit masked write of 4 to data[7:4]). // // Add 1 for next nibble // HWREGB(DDI_MASTER_BASE + DDI_SLAVE_OFF + ADI_O_MASK4B01 + 1) = 0xf4; // //***************************************************************************** //***************************************************************************** // // The following are defines for the ADI master instruction offsets. // //***************************************************************************** #define ADI_O_DIR 0x00000000 // Offset for the direct access // instruction #define ADI_O_SET 0x00000010 // Offset for 'Set' instruction. #define ADI_O_CLR 0x00000020 // Offset for 'Clear' instruction. #define ADI_O_MASK4B 0x00000040 // Offset for 4-bit masked access. // Data bit[n] is written if mask // bit[n] is set ('1'). // Bits 7:4 are mask. Bits 3:0 are data. // Requires 'byte' write. #define ADI_O_MASK8B 0x00000060 // Offset for 8-bit masked access. // Data bit[n] is written if mask // bit[n] is set ('1'). Bits 15:8 are // mask. Bits 7:0 are data. Requires // 'short' write. #define ADI_O_MASK16B 0x00000080 // Offset for 16-bit masked access. // Data bit[n] is written if mask // bit[n] is set ('1'). Bits 31:16 // are mask. Bits 15:0 are data. // Requires 'long' write. //***************************************************************************** // // The following are defines for the ADI register offsets. // //***************************************************************************** #define ADI_O_SLAVESTAT 0x00000030 // ADI Slave status register #define ADI_O_SLAVECONF 0x00000038 // ADI Master configuration //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_SLAVESTAT register. // //***************************************************************************** #define ADI_SLAVESTAT_DI_REQ 0x00000002 // Read current value of DI_REQ // signal. Writing 0 to this bit // forces a sync with slave, // ensuring that req will be 0. It // is recommended to write 0 to // this register before power down // of the master. #define ADI_SLAVESTAT_DI_REQ_M 0x00000002 #define ADI_SLAVESTAT_DI_REQ_S 1 #define ADI_SLAVESTAT_DI_ACK 0x00000001 // Read current value of DI_ACK // signal #define ADI_SLAVESTAT_DI_ACK_M 0x00000001 #define ADI_SLAVESTAT_DI_ACK_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_SLAVECONF register. // //***************************************************************************** #define ADI_SLAVECONF_CONFLOCK 0x00000080 // This register is no longer // accessible when this bit is set. // (unless sticky_bit_overwrite is // asserted on top module) #define ADI_SLAVECONF_CONFLOCK_M \ 0x00000080 #define ADI_SLAVECONF_CONFLOCK_S 7 #define ADI_SLAVECONF_WAITFORACK \ 0x00000004 // A transaction on the ADI // interface does not end until ack // has been received from the slave // when this bit is set. #define ADI_SLAVECONF_WAITFORACK_M \ 0x00000004 #define ADI_SLAVECONF_WAITFORACK_S 2 #define ADI_SLAVECONF_ADICLKSPEED_M \ 0x00000003 // Sets the period of an ADI // transactions. All transactions // takes an even number of clock // cycles,- ADI clock rising edge // occurs in the middle of the // period. Data and ctrl to slave // is set up in beginning of cycle, // and data from slave is read in // after the transaction 00: An ADI // transaction takes 2 master clock // cyclkes 01: An ADI transaction // takes 4 master clock cycles 10: // And ADI Transaction takes 8 // master clock cycles 11: An ADI // transaction takes 16 master // clock cycles #define ADI_SLAVECONF_ADICLKSPEED_S 0 //***************************************************************************** // // The following are defines pseudo-magic numbers that should go away. // New code should not use these registers and old code should be ported // to not use these. // //***************************************************************************** #define ADI_O_DIR03 0x00000000 // Direct access for adi byte // offsets 0 to 3 #define ADI_O_DIR47 0x00000004 // Direct access for adi byte // offsets 4 to 7 #define ADI_O_DIR811 0x00000008 // Direct access for adi byte // offsets 8 to 11 #define ADI_O_DIR1215 0x0000000C // Direct access for adi byte // offsets 12 to 15 #define ADI_O_SET03 0x00000010 // Set register for ADI byte // offsets 0 to 3 #define ADI_O_SET47 0x00000014 // Set register for ADI byte // offsets 4 to 7 #define ADI_O_SET811 0x00000018 // Set register for ADI byte // offsets 8 to 11 #define ADI_O_SET1215 0x0000001C // Set register for ADI byte // offsets 12 to 15 #define ADI_O_CLR03 0x00000020 // Clear register for ADI byte // offsets 0 to 3 #define ADI_O_CLR47 0x00000024 // Clear register for ADI byte // offsets 4 to 7 #define ADI_O_CLR811 0x00000028 // Clear register for ADI byte // offsets 8 to 11 #define ADI_O_CLR1215 0x0000002C // Clear register for ADI byte // offsets 12 to 15 #define ADI_O_SLAVESTAT 0x00000030 // ADI Slave status register #define ADI_O_SLAVECONF 0x00000038 // ADI Master configuration // register #define ADI_O_MASK4B01 0x00000040 // Masked access (4m/4d) for ADI // Registers at byte offsets 0 and // 1 #define ADI_O_MASK4B23 0x00000044 // Masked access (4m/4d) for ADI // Registers at byte offsets 2 and // 3 #define ADI_O_MASK4B45 0x00000048 // Masked access (4m/4d) for ADI // Registers at byte offsets 4 and // 5 #define ADI_O_MASK4B67 0x0000004C // Masked access (4m/4d) for ADI // Registers at byte offsets 6 and // 7 #define ADI_O_MASK4B89 0x00000050 // Masked access (4m/4d) for ADI // Registers at byte offsets 8 and // 9 #define ADI_O_MASK4B1011 0x00000054 // Masked access (4m/4d) for ADI // Registers at byte offsets 10 and // 11 #define ADI_O_MASK4B1213 0x00000058 // Masked access (4m/4d) for ADI // Registers at byte offsets 12 and // 13 #define ADI_O_MASK4B1415 0x0000005C // Masked access (4m/4d) for ADI // Registers at byte offsets 14 and // 15 #define ADI_O_MASK8B01 0x00000060 // Masked access (8m/8d) for ADI // Registers at byte offsets 0 and // 1 #define ADI_O_MASK8B23 0x00000064 // Masked access (8m/8d) for ADI // Registers at byte offsets 2 and // 3 #define ADI_O_MASK8B45 0x00000068 // Masked access (8m/8d) for ADI // Registers at byte offsets 4 and // 5 #define ADI_O_MASK8B67 0x0000006C // Masked access (8m/8d) for ADI // Registers at byte offsets 6 and // 7 #define ADI_O_MASK8B89 0x00000070 // Masked access (8m/8d) for ADI // Registers at byte offsets 8 and // 9 #define ADI_O_MASK8B1011 0x00000074 // Masked access (8m/8d) for ADI // Registers at byte offsets 10 and // 11 #define ADI_O_MASK8B1213 0x00000078 // Masked access (8m/8d) for ADI // Registers at byte offsets 12 and // 13 #define ADI_O_MASK8B1415 0x0000007C // Masked access (8m/8d) for ADI // Registers at byte offsets 14 and // 15 #define ADI_O_MASK16B01 0x00000080 // Masked access (16m/16d) for ADI // Registers at byte offsets 0 and // 1 #define ADI_O_MASK16B23 0x00000084 // Masked access (16m/16d) for ADI // Registers at byte offsets 2 and // 3 #define ADI_O_MASK16B45 0x00000088 // Masked access (16m/16d) for ADI // Registers at byte offsets 4 and // 5 #define ADI_O_MASK16B67 0x0000008C // Masked access (16m/16d) for ADI // Registers at byte offsets 6 and // 7 #define ADI_O_MASK16B89 0x00000090 // Masked access (16m/16d) for ADI // Registers at byte offsets 8 and // 9 #define ADI_O_MASK16B1011 0x00000094 // Masked access (16m/16d) for ADI // Registers at byte offsets 10 and // 11 #define ADI_O_MASK16B1213 0x00000098 // Masked access (16m/16d) for ADI // Registers at byte offsets 12 and // 13 #define ADI_O_MASK16B1415 0x0000009C // Masked access (16m/16d) for ADI // Registers at byte offsets 14 and // 15 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_DIR03 register. // //***************************************************************************** #define ADI_DIR03_B3_M 0xFF000000 // Direct access to ADI register 3 #define ADI_DIR03_B3_S 24 #define ADI_DIR03_B2_M 0x00FF0000 // Direct access to ADI register 2 #define ADI_DIR03_B2_S 16 #define ADI_DIR03_B1_M 0x0000FF00 // Direct access to ADI register 1 #define ADI_DIR03_B1_S 8 #define ADI_DIR03_B0_M 0x000000FF // Direct access to ADI register 0 #define ADI_DIR03_B0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_DIR47 register. // //***************************************************************************** #define ADI_DIR47_B3_M 0xFF000000 // Direct access to ADI register 7 #define ADI_DIR47_B3_S 24 #define ADI_DIR47_B2_M 0x00FF0000 // Direct access to ADI register 6 #define ADI_DIR47_B2_S 16 #define ADI_DIR47_B1_M 0x0000FF00 // Direct access to ADI register 5 #define ADI_DIR47_B1_S 8 #define ADI_DIR47_B0_M 0x000000FF // Direct access to ADI register 4 #define ADI_DIR47_B0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_DIR811 register. // //***************************************************************************** #define ADI_DIR811_B3_M 0xFF000000 // Direct access to ADI register // 11 #define ADI_DIR811_B3_S 24 #define ADI_DIR811_B2_M 0x00FF0000 // Direct access to ADI register // 10 #define ADI_DIR811_B2_S 16 #define ADI_DIR811_B1_M 0x0000FF00 // Direct access to ADI register 9 #define ADI_DIR811_B1_S 8 #define ADI_DIR811_B0_M 0x000000FF // Direct access to ADI register 8 #define ADI_DIR811_B0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_DIR1215 register. // //***************************************************************************** #define ADI_DIR1215_B3_M 0xFF000000 // Direct access to ADI register // 15 #define ADI_DIR1215_B3_S 24 #define ADI_DIR1215_B2_M 0x00FF0000 // Direct access to ADI register // 14 #define ADI_DIR1215_B2_S 16 #define ADI_DIR1215_B1_M 0x0000FF00 // Direct access to ADI register // 13 #define ADI_DIR1215_B1_S 8 #define ADI_DIR1215_B0_M 0x000000FF // Direct access to ADI register // 12 #define ADI_DIR1215_B0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_SET03 register. // //***************************************************************************** #define ADI_SET03_S3_M 0xFF000000 // A high bit value will set the // corresponding bit in ADI // register 3. Read returns 0. #define ADI_SET03_S3_S 24 #define ADI_SET03_S2_M 0x00FF0000 // A high bit value will set the // corresponding bit in ADI // register 2. Read returns 0. #define ADI_SET03_S2_S 16 #define ADI_SET03_S1_M 0x0000FF00 // A high bit value will set the // corresponding bit in ADI // register 1. Read returns 0. #define ADI_SET03_S1_S 8 #define ADI_SET03_S0_M 0x000000FF // A high bit value will set the // corresponding bit in ADI // register 0. Read returns 0. #define ADI_SET03_S0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_SET47 register. // //***************************************************************************** #define ADI_SET47_S3_M 0xFF000000 // A high bit value will set the // corresponding bit in ADI // register 7. Read returns 0. #define ADI_SET47_S3_S 24 #define ADI_SET47_S2_M 0x00FF0000 // A high bit value will set the // corresponding bit in ADI // register 6. Read returns 0. #define ADI_SET47_S2_S 16 #define ADI_SET47_S1_M 0x0000FF00 // A high bit value will set the // corresponding bit in ADI // register 5. Read returns 0. #define ADI_SET47_S1_S 8 #define ADI_SET47_S0_M 0x000000FF // A high bit value will set the // corresponding bit in ADI // register 4. Read returns 0. #define ADI_SET47_S0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_SET811 register. // //***************************************************************************** #define ADI_SET811_S3_M 0xFF000000 // A high bit value will set the // corresponding bit in ADI // register 11. Read returns 0. #define ADI_SET811_S3_S 24 #define ADI_SET811_S2_M 0x00FF0000 // A high bit value will set the // corresponding bit in ADI // register 10. Read returns 0. #define ADI_SET811_S2_S 16 #define ADI_SET811_S1_M 0x0000FF00 // A high bit value will set the // corresponding bit in ADI // register 9. Read returns 0. #define ADI_SET811_S1_S 8 #define ADI_SET811_S0_M 0x000000FF // A high bit value will set the // corresponding bit in ADI // register 8. Read returns 0. #define ADI_SET811_S0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_SET1215 register. // //***************************************************************************** #define ADI_SET1215_S3_M 0xFF000000 // A high bit value will set the // corresponding bit in ADI // register 15. Read returns 0. #define ADI_SET1215_S3_S 24 #define ADI_SET1215_S2_M 0x00FF0000 // A high bit value will set the // corresponding bit in ADI // register 14. Read returns 0. #define ADI_SET1215_S2_S 16 #define ADI_SET1215_S1_M 0x0000FF00 // A high bit value will set the // corresponding bit in ADI // register 13. Read returns 0. #define ADI_SET1215_S1_S 8 #define ADI_SET1215_S0_M 0x000000FF // A high bit value will set the // corresponding bit in ADI // register 12. Read returns 0. #define ADI_SET1215_S0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_CLR03 register. // //***************************************************************************** #define ADI_CLR03_S3_M 0xFF000000 // A high bit value will clear the // corresponding bit in ADI // register 3 #define ADI_CLR03_S3_S 24 #define ADI_CLR03_S2_M 0x00FF0000 // A high bit value will clear the // corresponding bit in ADI // register 2 #define ADI_CLR03_S2_S 16 #define ADI_CLR03_S1_M 0x0000FF00 // A high bit value will clear the // corresponding bit in ADI // register 1 #define ADI_CLR03_S1_S 8 #define ADI_CLR03_S0_M 0x000000FF // A high bit value will clear the // corresponding bit in ADI // register 0 #define ADI_CLR03_S0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_CLR47 register. // //***************************************************************************** #define ADI_CLR47_S3_M 0xFF000000 // A high bit value will clear the // corresponding bit in ADI // register 7 #define ADI_CLR47_S3_S 24 #define ADI_CLR47_S2_M 0x00FF0000 // A high bit value will clear the // corresponding bit in ADI // register 6 #define ADI_CLR47_S2_S 16 #define ADI_CLR47_S1_M 0x0000FF00 // A high bit value will clear the // corresponding bit in ADI // register 5 #define ADI_CLR47_S1_S 8 #define ADI_CLR47_S0_M 0x000000FF // A high bit value will clear the // corresponding bit in ADI // register 4 #define ADI_CLR47_S0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_CLR811 register. // //***************************************************************************** #define ADI_CLR811_S3_M 0xFF000000 // A high bit value will clear the // corresponding bit in ADI // register 11 #define ADI_CLR811_S3_S 24 #define ADI_CLR811_S2_M 0x00FF0000 // A high bit value will clear the // corresponding bit in ADI // register 10 #define ADI_CLR811_S2_S 16 #define ADI_CLR811_S1_M 0x0000FF00 // A high bit value will clear the // corresponding bit in ADI // register 9 #define ADI_CLR811_S1_S 8 #define ADI_CLR811_S0_M 0x000000FF // A high bit value will clear the // corresponding bit in ADI // register 8 #define ADI_CLR811_S0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_CLR1215 register. // //***************************************************************************** #define ADI_CLR1215_S3_M 0xFF000000 // A high bit value will clear the // corresponding bit in ADI // register 15 #define ADI_CLR1215_S3_S 24 #define ADI_CLR1215_S2_M 0x00FF0000 // A high bit value will clear the // corresponding bit in ADI // register 14 #define ADI_CLR1215_S2_S 16 #define ADI_CLR1215_S1_M 0x0000FF00 // A high bit value will clear the // corresponding bit in ADI // register 13 #define ADI_CLR1215_S1_S 8 #define ADI_CLR1215_S0_M 0x000000FF // A high bit value will clear the // corresponding bit in ADI // register 12 #define ADI_CLR1215_S0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_SLAVESTAT register. // //***************************************************************************** #define ADI_SLAVESTAT_DI_REQ 0x00000002 // Read current value of DI_REQ // signal. Writing 0 to this bit // forces a sync with slave, // ensuring that req will be 0. It // is recommended to write 0 to // this register before power down // of the master. #define ADI_SLAVESTAT_DI_REQ_M 0x00000002 #define ADI_SLAVESTAT_DI_REQ_S 1 #define ADI_SLAVESTAT_DI_ACK 0x00000001 // Read current value of DI_ACK // signal #define ADI_SLAVESTAT_DI_ACK_M 0x00000001 #define ADI_SLAVESTAT_DI_ACK_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_SLAVECONF register. // //***************************************************************************** #define ADI_SLAVECONF_CONFLOCK 0x00000080 // This register is no longer // accessible when this bit is set. // (unless sticky_bit_overwrite is // asserted on top module) #define ADI_SLAVECONF_CONFLOCK_M \ 0x00000080 #define ADI_SLAVECONF_CONFLOCK_S 7 #define ADI_SLAVECONF_WAITFORACK \ 0x00000004 // A transaction on the ADI // interface does not end until ack // has been received from the slave // when this bit is set. #define ADI_SLAVECONF_WAITFORACK_M \ 0x00000004 #define ADI_SLAVECONF_WAITFORACK_S 2 #define ADI_SLAVECONF_ADICLKSPEED_M \ 0x00000003 // Sets the period of an ADI // transactions. All transactions // takes an even number of clock // cycles,- ADI clock rising edge // occurs in the middle of the // period. Data and ctrl to slave // is set up in beginning of cycle, // and data from slave is read in // after the transaction 00: An ADI // transaction takes 2 master clock // cyclkes 01: An ADI transaction // takes 4 master clock cycles 10: // And ADI Transaction takes 8 // master clock cycles 11: An ADI // transaction takes 16 master // clock cycles #define ADI_SLAVECONF_ADICLKSPEED_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_MASK4B01 register. // //***************************************************************************** #define ADI_MASK4B01_M1H_M 0xF0000000 // Mask for bits [7:4] in ADI // register 1 #define ADI_MASK4B01_M1H_S 28 #define ADI_MASK4B01_D1H_M 0x0F000000 // Data for bits [7:4] in ADI // register 1, - only bits selected // by mask M1H will be affected by // access #define ADI_MASK4B01_D1H_S 24 #define ADI_MASK4B01_M1L_M 0x00F00000 // Mask for bits [3:0] in ADI // register 1 #define ADI_MASK4B01_M1L_S 20 #define ADI_MASK4B01_D1L_M 0x000F0000 // Data for bits [3:0] in ADI // register 1, - only bits selected // by mask M1L will be affected by // access #define ADI_MASK4B01_D1L_S 16 #define ADI_MASK4B01_M0H_M 0x0000F000 // Mask for bits [7:4] in ADI // register 0 #define ADI_MASK4B01_M0H_S 12 #define ADI_MASK4B01_D0H_M 0x00000F00 // Data for bits [7:4] in ADI // register 0, - only bits selected // by mask M0H will be affected by // access #define ADI_MASK4B01_D0H_S 8 #define ADI_MASK4B01_M0L_M 0x000000F0 // Mask for bits [3:0] in ADI // register 0 #define ADI_MASK4B01_M0L_S 4 #define ADI_MASK4B01_D0L_M 0x0000000F // Data for bits [3:0] in ADI // register 0, - only bits selected // by mask M0L will be affected by // access #define ADI_MASK4B01_D0L_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_MASK4B23 register. // //***************************************************************************** #define ADI_MASK4B23_M1H_M 0xF0000000 // Mask for bits [7:4] in ADI // register 3 #define ADI_MASK4B23_M1H_S 28 #define ADI_MASK4B23_D1H_M 0x0F000000 // Data for bits [7:4] in ADI // register 3, - only bits selected // by mask M1H will be affected by // access #define ADI_MASK4B23_D1H_S 24 #define ADI_MASK4B23_M1L_M 0x00F00000 // Mask for bits [3:0] in ADI // register 3 #define ADI_MASK4B23_M1L_S 20 #define ADI_MASK4B23_D1L_M 0x000F0000 // Data for bits [3:0] in ADI // register 3, - only bits selected // by mask M1L will be affected by // access #define ADI_MASK4B23_D1L_S 16 #define ADI_MASK4B23_M0H_M 0x0000F000 // Mask for bits [7:4] in ADI // register 2 #define ADI_MASK4B23_M0H_S 12 #define ADI_MASK4B23_D0H_M 0x00000F00 // Data for bits [7:4] in ADI // register 2, - only bits selected // by mask M0H will be affected by // access #define ADI_MASK4B23_D0H_S 8 #define ADI_MASK4B23_M0L_M 0x000000F0 // Mask for bits [3:0] in ADI // register 2 #define ADI_MASK4B23_M0L_S 4 #define ADI_MASK4B23_D0L_M 0x0000000F // Data for bits [3:0] in ADI // register 2, - only bits selected // by mask M0L will be affected by // access #define ADI_MASK4B23_D0L_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_MASK4B45 register. // //***************************************************************************** #define ADI_MASK4B45_M1H_M 0xF0000000 // Mask for bits [7:4] in ADI // register 5 #define ADI_MASK4B45_M1H_S 28 #define ADI_MASK4B45_D1H_M 0x0F000000 // Data for bits [7:4] in ADI // register 5, - only bits selected // by mask M1H will be affected by // access #define ADI_MASK4B45_D1H_S 24 #define ADI_MASK4B45_M1L_M 0x00F00000 // Mask for bits [3:0] in ADI // register 5 #define ADI_MASK4B45_M1L_S 20 #define ADI_MASK4B45_D1L_M 0x000F0000 // Data for bits [3:0] in ADI // register 5, - only bits selected // by mask M1L will be affected by // access #define ADI_MASK4B45_D1L_S 16 #define ADI_MASK4B45_M0H_M 0x0000F000 // Mask for bits [7:4] in ADI // register 4 #define ADI_MASK4B45_M0H_S 12 #define ADI_MASK4B45_D0H_M 0x00000F00 // Data for bits [7:4] in ADI // register 4, - only bits selected // by mask M0H will be affected by // access #define ADI_MASK4B45_D0H_S 8 #define ADI_MASK4B45_M0L_M 0x000000F0 // Mask for bits [3:0] in ADI // register 4 #define ADI_MASK4B45_M0L_S 4 #define ADI_MASK4B45_D0L_M 0x0000000F // Data for bits [3:0] in ADI // register 4, - only bits selected // by mask M0L will be affected by // access #define ADI_MASK4B45_D0L_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_MASK4B67 register. // //***************************************************************************** #define ADI_MASK4B67_M1H_M 0xF0000000 // Mask for bits [7:4] in ADI // register 7 #define ADI_MASK4B67_M1H_S 28 #define ADI_MASK4B67_D1H_M 0x0F000000 // Data for bits [7:4] in ADI // register 7, - only bits selected // by mask M1H will be affected by // access #define ADI_MASK4B67_D1H_S 24 #define ADI_MASK4B67_M1L_M 0x00F00000 // Mask for bits [3:0] in ADI // register 7 #define ADI_MASK4B67_M1L_S 20 #define ADI_MASK4B67_D1L_M 0x000F0000 // Data for bits [3:0] in ADI // register 7, - only bits selected // by mask M1L will be affected by // access #define ADI_MASK4B67_D1L_S 16 #define ADI_MASK4B67_M0H_M 0x0000F000 // Mask for bits [7:4] in ADI // register 6 #define ADI_MASK4B67_M0H_S 12 #define ADI_MASK4B67_D0H_M 0x00000F00 // Data for bits [7:4] in ADI // register 6, - only bits selected // by mask M0H will be affected by // access #define ADI_MASK4B67_D0H_S 8 #define ADI_MASK4B67_M0L_M 0x000000F0 // Mask for bits [3:0] in ADI // register 6 #define ADI_MASK4B67_M0L_S 4 #define ADI_MASK4B67_D0L_M 0x0000000F // Data for bits [3:0] in ADI // register 6, - only bits selected // by mask M0L will be affected by // access #define ADI_MASK4B67_D0L_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_MASK4B89 register. // //***************************************************************************** #define ADI_MASK4B89_M1H_M 0xF0000000 // Mask for bits [7:4] in ADI // register 9 #define ADI_MASK4B89_M1H_S 28 #define ADI_MASK4B89_D1H_M 0x0F000000 // Data for bits [7:4] in ADI // register 9, - only bits selected // by mask M1H will be affected by // access #define ADI_MASK4B89_D1H_S 24 #define ADI_MASK4B89_M1L_M 0x00F00000 // Mask for bits [3:0] in ADI // register 9 #define ADI_MASK4B89_M1L_S 20 #define ADI_MASK4B89_D1L_M 0x000F0000 // Data for bits [3:0] in ADI // register 9, - only bits selected // by mask M1L will be affected by // access #define ADI_MASK4B89_D1L_S 16 #define ADI_MASK4B89_M0H_M 0x0000F000 // Mask for bits [7:4] in ADI // register 8 #define ADI_MASK4B89_M0H_S 12 #define ADI_MASK4B89_D0H_M 0x00000F00 // Data for bits [7:4] in ADI // register 8, - only bits selected // by mask M0H will be affected by // access #define ADI_MASK4B89_D0H_S 8 #define ADI_MASK4B89_M0L_M 0x000000F0 // Mask for bits [3:0] in ADI // register 8 #define ADI_MASK4B89_M0L_S 4 #define ADI_MASK4B89_D0L_M 0x0000000F // Data for bits [3:0] in ADI // register 8, - only bits selected // by mask M0L will be affected by // access #define ADI_MASK4B89_D0L_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK4B1011 register. // //***************************************************************************** #define ADI_MASK4B1011_M1H_M 0xF0000000 // Mask for bits [7:4] in ADI // register 11 #define ADI_MASK4B1011_M1H_S 28 #define ADI_MASK4B1011_D1H_M 0x0F000000 // Data for bits [7:4] in ADI // register 11, - only bits // selected by mask M1H will be // affected by access #define ADI_MASK4B1011_D1H_S 24 #define ADI_MASK4B1011_M1L_M 0x00F00000 // Mask for bits [3:0] in ADI // register 11 #define ADI_MASK4B1011_M1L_S 20 #define ADI_MASK4B1011_D1L_M 0x000F0000 // Data for bits [3:0] in ADI // register 11, - only bits // selected by mask M1L will be // affected by access #define ADI_MASK4B1011_D1L_S 16 #define ADI_MASK4B1011_M0H_M 0x0000F000 // Mask for bits [7:4] in ADI // register 10 #define ADI_MASK4B1011_M0H_S 12 #define ADI_MASK4B1011_D0H_M 0x00000F00 // Data for bits [7:4] in ADI // register 10, - only bits // selected by mask M0H will be // affected by access #define ADI_MASK4B1011_D0H_S 8 #define ADI_MASK4B1011_M0L_M 0x000000F0 // Mask for bits [3:0] in ADI // register 10 #define ADI_MASK4B1011_M0L_S 4 #define ADI_MASK4B1011_D0L_M 0x0000000F // Data for bits [3:0] in ADI // register 10, - only bits // selected by mask M0L will be // affected by access #define ADI_MASK4B1011_D0L_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK4B1213 register. // //***************************************************************************** #define ADI_MASK4B1213_M1H_M 0xF0000000 // Mask for bits [7:4] in ADI // register 13 #define ADI_MASK4B1213_M1H_S 28 #define ADI_MASK4B1213_D1H_M 0x0F000000 // Data for bits [7:4] in ADI // register 13, - only bits // selected by mask M1H will be // affected by access #define ADI_MASK4B1213_D1H_S 24 #define ADI_MASK4B1213_M1L_M 0x00F00000 // Mask for bits [3:0] in ADI // register 13 #define ADI_MASK4B1213_M1L_S 20 #define ADI_MASK4B1213_D1L_M 0x000F0000 // Data for bits [3:0] in ADI // register 13, - only bits // selected by mask M1L will be // affected by access #define ADI_MASK4B1213_D1L_S 16 #define ADI_MASK4B1213_M0H_M 0x0000F000 // Mask for bits [7:4] in ADI // register 12 #define ADI_MASK4B1213_M0H_S 12 #define ADI_MASK4B1213_D0H_M 0x00000F00 // Data for bits [7:4] in ADI // register 12, - only bits // selected by mask M0H will be // affected by access #define ADI_MASK4B1213_D0H_S 8 #define ADI_MASK4B1213_M0L_M 0x000000F0 // Mask for bits [3:0] in ADI // register 12 #define ADI_MASK4B1213_M0L_S 4 #define ADI_MASK4B1213_D0L_M 0x0000000F // Data for bits [3:0] in ADI // register 12, - only bits // selected by mask M0L will be // affected by access #define ADI_MASK4B1213_D0L_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK4B1415 register. // //***************************************************************************** #define ADI_MASK4B1415_M1H_M 0xF0000000 // Mask for bits [7:4] in ADI // register 15 #define ADI_MASK4B1415_M1H_S 28 #define ADI_MASK4B1415_D1H_M 0x0F000000 // Data for bits [7:4] in ADI // register 15, - only bits // selected by mask M1H will be // affected by access #define ADI_MASK4B1415_D1H_S 24 #define ADI_MASK4B1415_M1L_M 0x00F00000 // Mask for bits [3:0] in ADI // register 15 #define ADI_MASK4B1415_M1L_S 20 #define ADI_MASK4B1415_D1L_M 0x000F0000 // Data for bits [3:0] in ADI // register 15, - only bits // selected by mask M1L will be // affected by access #define ADI_MASK4B1415_D1L_S 16 #define ADI_MASK4B1415_M0H_M 0x0000F000 // Mask for bits [7:4] in ADI // register 14 #define ADI_MASK4B1415_M0H_S 12 #define ADI_MASK4B1415_D0H_M 0x00000F00 // Data for bits [7:4] in ADI // register 14, - only bits // selected by mask M0H will be // affected by access #define ADI_MASK4B1415_D0H_S 8 #define ADI_MASK4B1415_M0L_M 0x000000F0 // Mask for bits [3:0] in ADI // register 14 #define ADI_MASK4B1415_M0L_S 4 #define ADI_MASK4B1415_D0L_M 0x0000000F // Data for bits [3:0] in ADI // register 14, - only bits // selected by mask M0L will be // affected by access #define ADI_MASK4B1415_D0L_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_MASK8B01 register. // //***************************************************************************** #define ADI_MASK8B01_M1_M 0xFF000000 // Mask for ADI register 1 #define ADI_MASK8B01_M1_S 24 #define ADI_MASK8B01_D1_M 0x00FF0000 // Data for ADI register 1, - only // bits selected by mask M1 will be // affected by access #define ADI_MASK8B01_D1_S 16 #define ADI_MASK8B01_M0_M 0x0000FF00 // Mask for ADI register 0 #define ADI_MASK8B01_M0_S 8 #define ADI_MASK8B01_D0_M 0x000000FF // Data for ADI register 0, - only // bits selected by mask M0 will be // affected by access #define ADI_MASK8B01_D0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_MASK8B23 register. // //***************************************************************************** #define ADI_MASK8B23_M1_M 0xFF000000 // Mask for ADI register 3 #define ADI_MASK8B23_M1_S 24 #define ADI_MASK8B23_D1_M 0x00FF0000 // Data for ADI register 3, - only // bits selected by mask M1 will be // affected by access #define ADI_MASK8B23_D1_S 16 #define ADI_MASK8B23_M0_M 0x0000FF00 // Mask for ADI register 2 #define ADI_MASK8B23_M0_S 8 #define ADI_MASK8B23_D0_M 0x000000FF // Data for ADI register 2, - only // bits selected by mask M0 will be // affected by access #define ADI_MASK8B23_D0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_MASK8B45 register. // //***************************************************************************** #define ADI_MASK8B45_M1_M 0xFF000000 // Mask for ADI register 5 #define ADI_MASK8B45_M1_S 24 #define ADI_MASK8B45_D1_M 0x00FF0000 // Data for ADI register 5, - only // bits selected by mask M1 will be // affected by access #define ADI_MASK8B45_D1_S 16 #define ADI_MASK8B45_M0_M 0x0000FF00 // Mask for ADI register 4 #define ADI_MASK8B45_M0_S 8 #define ADI_MASK8B45_D0_M 0x000000FF // Data for ADI register 4, - only // bits selected by mask M0 will be // affected by access #define ADI_MASK8B45_D0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_MASK8B67 register. // //***************************************************************************** #define ADI_MASK8B67_M1_M 0xFF000000 // Mask for ADI register 7 #define ADI_MASK8B67_M1_S 24 #define ADI_MASK8B67_D1_M 0x00FF0000 // Data for ADI register 7, - only // bits selected by mask M1 will be // affected by access #define ADI_MASK8B67_D1_S 16 #define ADI_MASK8B67_M0_M 0x0000FF00 // Mask for ADI register 6 #define ADI_MASK8B67_M0_S 8 #define ADI_MASK8B67_D0_M 0x000000FF // Data for ADI register 6, - only // bits selected by mask M0 will be // affected by access #define ADI_MASK8B67_D0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the ADI_O_MASK8B89 register. // //***************************************************************************** #define ADI_MASK8B89_M1_M 0xFF000000 // Mask for ADI register 9 #define ADI_MASK8B89_M1_S 24 #define ADI_MASK8B89_D1_M 0x00FF0000 // Data for ADI register 9, - only // bits selected by mask M1 will be // affected by access #define ADI_MASK8B89_D1_S 16 #define ADI_MASK8B89_M0_M 0x0000FF00 // Mask for ADI register 8 #define ADI_MASK8B89_M0_S 8 #define ADI_MASK8B89_D0_M 0x000000FF // Data for ADI register 8, - only // bits selected by mask M0 will be // affected by access #define ADI_MASK8B89_D0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK8B1011 register. // //***************************************************************************** #define ADI_MASK8B1011_M1_M 0xFF000000 // Mask for ADI register 11 #define ADI_MASK8B1011_M1_S 24 #define ADI_MASK8B1011_D1_M 0x00FF0000 // Data for ADI register 11, - // only bits selected by mask M1 // will be affected by access #define ADI_MASK8B1011_D1_S 16 #define ADI_MASK8B1011_M0_M 0x0000FF00 // Mask for ADI register 10 #define ADI_MASK8B1011_M0_S 8 #define ADI_MASK8B1011_D0_M 0x000000FF // Data for ADI register 10, - // only bits selected by mask M0 // will be affected by access #define ADI_MASK8B1011_D0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK8B1213 register. // //***************************************************************************** #define ADI_MASK8B1213_M1_M 0xFF000000 // Mask for ADI register 13 #define ADI_MASK8B1213_M1_S 24 #define ADI_MASK8B1213_D1_M 0x00FF0000 // Data for ADI register 13, - // only bits selected by mask M1 // will be affected by access #define ADI_MASK8B1213_D1_S 16 #define ADI_MASK8B1213_M0_M 0x0000FF00 // Mask for ADI register 12 #define ADI_MASK8B1213_M0_S 8 #define ADI_MASK8B1213_D0_M 0x000000FF // Data for ADI register 12, - // only bits selected by mask M0 // will be affected by access #define ADI_MASK8B1213_D0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK8B1415 register. // //***************************************************************************** #define ADI_MASK8B1415_M1_M 0xFF000000 // Mask for ADI register 15 #define ADI_MASK8B1415_M1_S 24 #define ADI_MASK8B1415_D1_M 0x00FF0000 // Data for ADI register 15, - // only bits selected by mask M1 // will be affected by access #define ADI_MASK8B1415_D1_S 16 #define ADI_MASK8B1415_M0_M 0x0000FF00 // Mask for ADI register 14 #define ADI_MASK8B1415_M0_S 8 #define ADI_MASK8B1415_D0_M 0x000000FF // Data for ADI register 14, - // only bits selected by mask M0 // will be affected by access #define ADI_MASK8B1415_D0_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK16B01 register. // //***************************************************************************** #define ADI_MASK16B01_M_M 0xFFFF0000 // Mask for ADI register 0 and 1 #define ADI_MASK16B01_M_S 16 #define ADI_MASK16B01_D_M 0x0000FFFF // Data for ADI register at // offsets 0 and 1, - only bits // selected by mask M will be // affected by access #define ADI_MASK16B01_D_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK16B23 register. // //***************************************************************************** #define ADI_MASK16B23_M_M 0xFFFF0000 // Mask for ADI register 2 and 3 #define ADI_MASK16B23_M_S 16 #define ADI_MASK16B23_D_M 0x0000FFFF // Data for ADI register at // offsets 2 and 3, - only bits // selected by mask M will be // affected by access #define ADI_MASK16B23_D_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK16B45 register. // //***************************************************************************** #define ADI_MASK16B45_M_M 0xFFFF0000 // Mask for ADI register 4 and 5 #define ADI_MASK16B45_M_S 16 #define ADI_MASK16B45_D_M 0x0000FFFF // Data for ADI register at // offsets 4 and 5, - only bits // selected by mask M will be // affected by access #define ADI_MASK16B45_D_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK16B67 register. // //***************************************************************************** #define ADI_MASK16B67_M_M 0xFFFF0000 // Mask for ADI register 6 and 7 #define ADI_MASK16B67_M_S 16 #define ADI_MASK16B67_D_M 0x0000FFFF // Data for ADI register at // offsets 6 and 7, - only bits // selected by mask M will be // affected by access #define ADI_MASK16B67_D_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK16B89 register. // //***************************************************************************** #define ADI_MASK16B89_M_M 0xFFFF0000 // Mask for ADI register 8 and 9 #define ADI_MASK16B89_M_S 16 #define ADI_MASK16B89_D_M 0x0000FFFF // Data for ADI register at // offsets 8 and 9, - only bits // selected by mask M will be // affected by access #define ADI_MASK16B89_D_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK16B1011 register. // //***************************************************************************** #define ADI_MASK16B1011_M_M 0xFFFF0000 // Mask for ADI register 10 and 11 #define ADI_MASK16B1011_M_S 16 #define ADI_MASK16B1011_D_M 0x0000FFFF // Data for ADI register at // offsets 10 and 11, - only bits // selected by mask M will be // affected by access #define ADI_MASK16B1011_D_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK16B1213 register. // //***************************************************************************** #define ADI_MASK16B1213_M_M 0xFFFF0000 // Mask for ADI register 12 and 13 #define ADI_MASK16B1213_M_S 16 #define ADI_MASK16B1213_D_M 0x0000FFFF // Data for ADI register at // offsets 12 and 13, - only bits // selected by mask M will be // affected by access #define ADI_MASK16B1213_D_S 0 //***************************************************************************** // // The following are defines for the bit fields in the // ADI_O_MASK16B1415 register. // //***************************************************************************** #define ADI_MASK16B1415_M_M 0xFFFF0000 // Mask for ADI register 14 and 15 #define ADI_MASK16B1415_M_S 16 #define ADI_MASK16B1415_D_M 0x0000FFFF // Data for ADI register at // offsets 14 and 15, - only bits // selected by mask M will be // affected by access #define ADI_MASK16B1415_D_S 0 #endif // __HW_ADI_H__